JSSP Refined-Hybrid a TSP Solver 3.0: dve veľké aktualizácie solverov RoboPol
JSSP Refined-Hybrid and TSP Solver 3.0: Two Major RoboPol Updates
Počas júla 2026 prešli dva hlavné optimalizačné produkty RoboPol zásadnou vnútornou prestavbou. JSSP Solver dnes používa RoboPol Refined-Hybrid s riadenou spoluprácou CP-SAT a TSP Solver 3.0 prešiel na kompilované natívne jadro v Ruste. V oboch prípadoch nejde iba o nové názvy alebo upravené rozhranie, ale o zmenu práce so seedmi, profilmi, workermi, validáciou a výpočtovým rozpočtom.
CP-SAT seedy, exact repair vybraných fragmentov a nezávislé overenie každého výsledku.
Natívne jadro v Ruste, tri metódy a profily Fast, Balanced a Heavy.
Spoločné vyhľadávacie jadro, ale doménové pohyby, skóre, opravy a verifier pre každý problém.
Aktuálne Windows a Linux aplikácie aj online verzie používajú zosúladené solver jadrá.
JSSP: Refined už nebeží vedľa CP-SAT, ale spolupracuje s ním
RoboPol Refined-Hybrid kombinuje všeobecné Refined jadro s JSSP adapterom. Na začiatku používa portfólio CP-SAT seedov a počas vyhľadávania môže presne opravovať vybrané fragmenty rozvrhu. Každý CP seed aj finálny harmonogram prejde validáciou. Ak úvodný plný CP-SAT beh zároveň preukáže optimum, solver vráti tento výsledok a neplytvá časom na ďalšie heuristické hľadanie.
Dôležitou opravou je aj riadenie procesora. Refined behy a vnútorné CP úlohy dnes zdieľajú jeden rozpočet workerov, takže počet seedov nevytvára nekontrolovanú ďalšiu vrstvu paralelizmu. Po skončení zvoleného profilu sa už nespúšťa skrytý koncový CP verifier, ktorý by predlžoval výpočet mimo nastaveného času. Výsledok nesie dolnú hranicu a informáciu, či bolo optimum preukázané hranicou, CP-SATom alebo zatiaľ preukázané nebolo.
Profily a nastavenia, ktoré zodpovedajú tomu, čo solver naozaj robí
- Normal používa 4 Refined behy ako praktický východiskový profil.
- Strong používa 8 behov a väčší rozpočet vyhľadávania pre náročnejšie úlohy.
- Custom začína z hodnôt Strong profilu vrátane exact repair, kým ich používateľ nezmení.
- Vlastné hodnoty aj CP-SAT čas a workeri sa ukladajú; súhrn pre používateľa pritom nesypie desiatky interných metrík.
Refined-Hybrid sa naďalej zameriava na najkratšiu celkovú dĺžku harmonogramu. Vážené omeškanie podľa termínov zákaziek zostáva samostatnou úlohou pre CP-SAT Exact. Licencie desktopovej verzie neobmedzujú trvanie výpočtu, počet workerov ani profily; edície sa odlišujú povolenou veľkosťou vlastnej alebo importovanej factory. Online Demo má obmedzený rozsah vstavaných testov, platené edície sprístupňujú aktuálnu sadu až po la35.
TSP Solver 3.0: jeden natívny základ pre desktop aj web
TSP Solver 3.0 nahradil pôvodný produkčný Python/Numba backend kompilovaným Rust jadrom. Desktop a online verzia tak používajú rovnakú aktuálnu implementáciu troch metód: LKH + Robopol Refined, samostatný Robopol Refined a LKH-3.0.10. LKH spolupráca beží v izolovaných natívnych workeroch a každá vrátená trasa sa znovu skóruje a nezávisle overí.
Profily Fast, Balanced a Heavy teraz predstavujú reálne odlišné výpočtové rozpočty. Každý profil si pamätá vlastné používateľské hodnoty a možno obnoviť iba aktuálny profil. Heavy rozširuje vyhľadávanie Refined oproti Balanced; nie je to iba premenovaný rovnaký beh. Opravené profily a release binárky boli zosúladené pre Windows, Linux aj online nasadenie.
Čo ukázal aktuálny TSPLIB benchmark
Reprodukovateľný test z 19. júla 2026 obsahuje 21 podporovaných TSPLIB EUC_2D inštancií. Všetky štyri porovnávané konfigurácie dostali rovnaké súradnice, trasy boli nezávisle vyhodnotené podľa oficiálnych TSPLIB EUC_2D pravidiel a všetkých 84 z 84 behov skončilo validnou trasou bez timeoutu alebo zlyhania.
| Metóda a profil | Optimum | Priemerný gap | Max. gap | Priemerný čas |
|---|---|---|---|---|
| LKH + Robopol Refined, Balanced | 17 / 21 | 0,005382 % | 0,080707 % | 3,131 s |
| Robopol Refined, Heavy | 15 / 21 | 0,016995 % | 0,114171 % | 3,497 s |
| Robopol Refined, Balanced | 14 / 21 | 0,029008 % | 0,222437 % | 2,222 s |
| LKH-3.0.10, 10 behov | 14 / 21 | 0,024068 % | 0,212594 % | 0,721 s |
Najzaujímavejší výsledok nie je iba priemerný gap. V siedmich prípadoch, keď samostatné LKH minulo publikované optimum, hybrid našiel kratšiu trasu v presnej EXACT_2D metrike vo všetkých 7 zo 7 prípadov. Keď LKH trafí publikované optimum, hybrid môže oficiálne skóre už iba vyrovnať. Heavy bol v jednom seedovanom porovnaní lepší než Balanced na 4 inštanciách, rovnaký na 15 a horší na 2.
Toto je transparentný snapshot jedného behu na metódu a inštanciu, nie tvrdenie, že každý ďalší náhodný beh dopadne rovnako. Presná konfigurácia, všetky riadky výsledkov aj vysvetlenie metrík sú zverejnené na stránke TSP Solver 3.0.
Spoločný menovateľ: adapterový prístup
JSSP a TSP vyzerajú ako úplne odlišné problémy, ale ich architektúra má spoločnú logiku. Refined jadro riadi viac behov, rozpočet, učenie a výber kandidátov. Doménový adapter definuje stav, susedné pohyby, skóre, opravy a verifier. JSSP adapter vie spolupracovať s CP-SATom, TSP adapter s LKH. Solver preto nie je jedna obrovská heuristika natvrdo napísaná iba pre jeden problém, no zároveň si každý produkt zachováva doménové operátory a presnú kontrolu platnosti.
Čo bude nasledovať
TSP má po tejto aktualizácii aktuálny verejný TSPLIB benchmark. Veľký JSSP benchmark proti CP-SAT na rozsiahlejších sadách bude samostatná práca; niekoľko FT15 seedov by po zmene architektúry nestačilo na poctivý záver. Preto tu netvrdíme, že Refined CP-SAT prekonáva. Cieľom je silný, robustný doplnkový solver s vlastnými algoritmami a overiteľnými výsledkami.
Obe produktové línie teraz vstupujú do fázy stabilizácie. Ďalší výskum solverov, nové operátory a väčšie benchmarky budú pokračovať podľa reálneho záujmu používateľov a konkrétnych nasadení.
During July 2026, two of RoboPol's main optimization products underwent a substantial internal rebuild. JSSP Solver now uses RoboPol Refined-Hybrid with controlled CP-SAT cooperation, while TSP Solver 3.0 moved to a compiled native Rust core. These are not merely new names or interface changes: seed handling, profiles, workers, validation and compute-budget control have all changed.
CP-SAT seeds, exact repair of selected fragments and independent validation of every result.
A native Rust core, three methods and Fast, Balanced and Heavy profiles.
A shared search core with domain-specific moves, scoring, repair and verification.
Current Windows, Linux and online versions use synchronized solver cores.
JSSP: Refined no longer runs beside CP-SAT, but cooperates with it
RoboPol Refined-Hybrid combines the general Refined core with a JSSP adapter. It begins with a portfolio of CP-SAT seeds and can exactly repair selected schedule fragments during search. Every CP seed and final schedule is validated. If the initial full CP-SAT run also proves optimality, the solver returns that result and avoids spending time on unnecessary heuristic search.
CPU control is another important fix. Refined runs and internal CP tasks now share one worker budget, so a larger seed count does not create an uncontrolled extra layer of parallelism. Once the selected profile finishes, there is no hidden final CP verifier extending computation beyond the selected time. The result includes a lower bound and states whether optimality was proved by that bound, by CP-SAT, or has not been proved yet.
Profiles and settings that match what the solver actually does
- Normal uses 4 Refined runs as the practical default profile.
- Strong uses 8 runs and a larger search budget for harder instances.
- Custom starts from the Strong values, including exact repair, until the user changes them.
- Custom values, CP-SAT time and worker settings persist, while the user summary stays free of dozens of internal metrics.
Refined-Hybrid continues to target the shortest total schedule length. Weighted tardiness based on job due dates remains a separate CP-SAT Exact objective. Desktop licenses do not cap solve duration, worker count or profiles; editions differ by the permitted size of a custom or imported factory. The online Demo limits the range of built-in tests, while paid editions expose the current set through la35.
TSP Solver 3.0: one native foundation for desktop and web
TSP Solver 3.0 replaced the former production Python/Numba backend with a compiled Rust core. Desktop and online versions therefore use the same current implementations of three methods: LKH + Robopol Refined, standalone Robopol Refined and LKH-3.0.10. LKH cooperation runs in isolated native workers, and each returned route is rescored and independently validated.
Fast, Balanced and Heavy now represent genuinely different compute budgets. Each profile remembers its own user values and only the current profile can be reset. Heavy expands Refined search beyond Balanced; it is not merely the same run under a different name. Corrected profiles and release binaries were synchronized for Windows, Linux and online deployment.
What the current TSPLIB benchmark showed
The reproducible test from July 19, 2026 covers 21 supported TSPLIB EUC_2D instances. All four compared configurations received the same coordinates, routes were independently evaluated under official TSPLIB EUC_2D rules, and all 84 of 84 runs returned a valid route with no timeout or failure.
| Method and profile | Optimum | Mean gap | Maximum gap | Mean time |
|---|---|---|---|---|
| LKH + Robopol Refined, Balanced | 17 / 21 | 0.005382% | 0.080707% | 3.131 s |
| Robopol Refined, Heavy | 15 / 21 | 0.016995% | 0.114171% | 3.497 s |
| Robopol Refined, Balanced | 14 / 21 | 0.029008% | 0.222437% | 2.222 s |
| LKH-3.0.10, 10 runs | 14 / 21 | 0.024068% | 0.212594% | 0.721 s |
The most interesting result is not just the mean gap. In the seven cases where standalone LKH missed the published optimum, the hybrid found a shorter route in the exact EXACT_2D metric in all 7 of 7 cases. When LKH reaches the published optimum, the hybrid can only tie the official score. In one seeded comparison, Heavy beat Balanced on 4 instances, tied on 15 and was worse on 2.
This is a transparent snapshot with one run per method and instance, not a claim that every future randomized run will finish identically. The exact configuration, every result row and an explanation of the metrics are published on the TSP Solver 3.0 page.
The common denominator: an adapter architecture
JSSP and TSP look like completely different problems, but their architecture follows the same logic. The Refined core manages multiple runs, budgets, learning and candidate selection. The domain adapter defines state, neighborhood moves, scoring, repair and verification. The JSSP adapter can cooperate with CP-SAT; the TSP adapter can cooperate with LKH. The solver is not one giant heuristic hard-coded for a single problem, while each product still retains domain-specific operators and exact validity checks.
What comes next
TSP now has a current public TSPLIB benchmark. A large-set JSSP comparison against CP-SAT will be separate work; a handful of FT15 seeds would not support an honest conclusion after the architectural changes. We therefore do not claim here that Refined beats CP-SAT. The goal is a strong, robust complementary solver with original algorithms and verifiable results.
Both product lines are now entering a consolidation phase. Further solver research, new operators and larger benchmark rounds will continue according to real user interest and concrete deployments.