cannontwo / cannon

Lifetime repository
https://cannontwo.com/cannon/
MIT License
0 stars 0 forks source link

Implement Basic Optimization Suite #81

Open cannontwo opened 3 years ago

cannontwo commented 3 years ago
cannontwo commented 3 years ago

May also want to define some canonical tasks in order to test/benchmark.

cannontwo commented 3 years ago

Nealder-Mead is empirically quick but may fail to find a stationary point on some problems. See here---specifically Algorithm 3.2---for information on Generating Set Search (compass search), which I'm implementing for derivative-free deterministic optimization instead. My implementation should use a minimal generating set (n+1 directions, defining a regular simplex in n dimensions) or coordinate search directions (2n sample directions). To accelerate search, periodically rotate the search directions by orienting a primary vector or a la Rosenbrock search (but use Palmer's innovation instead of Gram-Schmidt) respectively.

cannontwo commented 3 years ago

For the SQP solver, implement algorithm 18.3 from Nocedal & Wright. For the QP solver, implement algorithm 16.4, solving the linear system using the projected CG algorithm 16.2.

cannontwo commented 3 years ago

For Linear Programming, implement interior point method in Ch. 14 of Nocedal and Wright

cannontwo commented 3 years ago

For Linear Programming, implement interior point method in Ch. 14 of Nocedal and Wright

Tried this, but implementation is too complex to be worthwhile right now. For now, just using Gurobi.

cannontwo commented 3 years ago

Linear Programming implemented as wrapper around Gurobi in 7626ce8adaa5683000d7e89f54107d4f10dd8e63