mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-12 23:04:14 -04:00
CuttingHoleOrder proposes the cut order of a part's remaining holes as an OPEN path arrival -> every hole centre exactly once -> the fixed perimeter entry, reusing CuttingPartOrder's bounded nearest-neighbour + 2-opt/Or-opt machinery (no exhaustive permutations, no new routing invention). A proposal only: the search still certifies every rapid and emitted lead; nothing is installed into the search yet. CuttingPartOrder gains an optional endpoint: the terminal edge joins EVERY improvement delta (2-opt tail edge on both sides; OrOpt gap to the open end measures the endpoint distance), so heuristics see route moves that re-point the path at the entry rather than only final scoring. No endpoint keeps whole-part semantics byte-identical (control test); precedence, prerequisites and tie policy unchanged. Tests: empty/one hole; asymmetric fixture where the endpoint changes the ORDER (open route ends at C, entry-facing route ends at B) with each route asserted equal to its brute-force optimum computed from coordinates; permutation integrity excluding the perimeter; random 7-set within 1.05x brute force; deterministic tie order; cancellation; legacy no-endpoint equality. Mutants dropping the terminal edge from OrOpt or TwoOpt deltas are killed.