IDE pre solver lp_solve vo Windows

Prerekvizity

Pred čítaním tohto návodu odporúčame prečítať text o použití lp_solve vo Windows z príkazového riadku, Tento návod naň bude nadväzovať.

Inštalácia

Aktuálnu verziu balíčku s Windowsovým IDE pre lp_solve nájdeš tu: https://github.com/lp-solve/lp_solve/releases/download/5.5.2.14/lp_solve_5.5.2.14_IDE_Setup.exe.

IDE je pohodlné použiť napríklad na postupné testovanie a debugovanie vyvíjaných programov.

Neodporúčame ho však používať na seriózne riešenie. Najväčšou nevýhodou pre nás je prílišné zjednodušovanie výstupu: napr. pri zapnutom presolvingu sa nevieme v IDE dozvedieť hodnoty premenných, ktoré boli optimalizáciami odstránené. Častokrát teda len zistíme hodnotu optimálneho riešenia ale už nie to, ako vyzerá.

Samozrejme, vždy je tu možnosť použiť IDE pri vývoji a následne si hotový program uložiť a spustiť na ňom samostatný solver z príkazového riadku.

Príklad použitia: kuracie nugetky

Spustíme si LPSolve IDE. V záložke "Source" vložíme program riešiaci úlohu s nugetkami:

max: 6x_1 + 9x_2 + 20x_3;
200x_1 + 290x_2 + 610x_3 <= 3200;
int x_1, x_2, x_3;

(Môžeme si ho následne uložiť do súboru nugetky.lp.)

Kliknutím na zelenú šípku alebo stlačením F9 si vyberieme príkaz Solve.

V záložke "Result" sa dozvieme priebežne nájdené riešenia. V poslednom stĺpci (tiež nazvanom "result") bude to optimálne: má hodnotu 102 a jednotlivé premenné majú pri ňom hodnoty x_1 = 1, x_2 = 4 a x_3 = 3.

Zapnutie presolvingu

Ak používame IDE, presolving vieme zapnúť v záložke Options / Advanced. Odporúčame zapnúť aspoň prvé tri (Rows, Cols, Lindep), toto by malo zodpovedať prepínaču -presolve pri použití solveru z príkazového riadku.

(Ak si vygeneruješ program pre sudoku, môžeš si ho načítať do IDE a vyskúšať si, že po zapnutí presolvingu ho rýchlo vyrieši. Ako sme ale spomínali vyššie, dozvieš sa len, že optimálne riešenie existuje a má hodnotu 0.)