- globmp/init.py: INIT (Algorithm 3) as one function, the shortest path over the joints for given
per-joint state sets, with exact piece tests, budget pruning (cost-to-go rule by default, plain
budget rule as an argument) and back-pointers.
- globmp/gridstart: instance.py supplies the grid values per joint, the piece cost and the piece
test (GridStates, grid_start); plain_grid.py holds the plain grid; init.py removed. reference/
reproduces (same z_h and test counts in 36 of 36 cases).
- globmp/synthetic: joints.py supplies the per-pair states (positions on a grid, zero derivatives),
piece cost, piece test and route label; init.py removed. Same class and joints as before on all
80 instances; INIT takes 0.5 to 1.3 s per instance (median per robot count).
- The name INIT is used everywhere; the ranking file is N*_i*_init.json.
- gridstart run.py --first-order calls the current Algorithm 2 again.
gridstart exact repair: a solver answer is used only if it is reported solved, or passes the block test and does not raise the cost; descent returns the cheapest feasible iterate; reference rerun (same counts, gaps below 1e-9)
- run.py: default picks one route class with INIT-P (init.py, h = 0.05 m) and runs one first-order
Algorithm 2 solve from it (--top K for more classes); --routes all solves every class and
reproduces reference/. Algorithm 2 uses momentum with monotone restart, Barzilai-Borwein restoration
steps in the middle stages and tolerance continuation; no Newton, SQP or polish.
- reference/: all-class results rerun with these settings (2472/2472 classes feasible and certified;
median 58/76/79/95 s per class for 2/4/6/8 robots); init.csv and init_summary.json for the default
(77/80 instances equal to the all-class best within 1e-5, the other 3 within 0.2-3.0%).
- fig_synth1 (and the project page copy) redrawn from the new results; fig_synth2 and the scaling
study are unchanged.
- READMEs updated; certify.py stays as an optional check.
globmp/gridstart reorganized: init.py holds INIT (Algorithm 3) and the plain grid only, instance.py the instance and the exact piece test, exact_repair.py the repair step and GlobMP with it; READMEs point to Algorithm 3
Grid start of Theorem 1 by a shortest path over the joints (Algorithm INIT): globmp/gridstart with the instance, INIT, the plain grid, the exact repair step and reference results