Jump to content

Problém obchodný cestujúci


robopol

Recommended Posts

Tak som zobral riadnou okľukou, teraz robim praktickú aplikáciu s viacerými funkciami a chcem doprogramovat viaceré metódy vrátane metódy lineárneho programovania ako ma Concorde TSP, možno v budúcnosti pridám aj neuronovu siet, ako by sa jej darilo nachádzať dobre riešenia. 

Screenshot - 15_ 2.jpg

Link to comment
Share on other sites

  • 2 weeks later...

Pracujem na novom algoritme aj metóde TSP solving, táto metóda bude rýchla a bude mat veľmi dobre výsledky, len pre porovnanie o rozprávkach analytických riešení concorde TSP uvádzam príklad, kde som ručne (zatiaľ) požil metódu a porovnal s Concorde, našiel som kratšiu cestu ako Concorde. Dokaz je na obrázkoch.

 

Screenshot - 27_ 2 002.jpg

Screenshot - 27_ 2 003.jpg

Link to comment
Share on other sites

  • 2 weeks later...

staviam ten exaktný algoritmus a aktuálne sa snažím o jeho optimalizáciu, aby pracoval, čo najrýchlejšie. Concorde je aktuálne rýchlejší ako môj exaktný algoritmus v pythone (python je o dosť pomalší ako c++), avšak zistil som, že Concorde nie je žiaden "exaktný algoritmus". Urobil som jeden pokus na 20 bodov a okamžite som zistil, že moja trasa je kratšia o 1,7 cm merané pri 100% veľkosti priloženého obrázku  - merané na prvom grafe. Je kopu práce na tom algoritme tak zatiaľ neviem kedy bude finálny program so všetkými metódami, ako je metóda mravcov - ACO heuristic, 2 opt. optimalizácia, vylepšený najbližší sused, potom môj algoritmus (možno pridám aj simulované žíhanie, čo je úplne najhorší spôsob) ktorý bude ponúkať exaktne riešenie, alebo v nastavení aj menej presné, ale o dosť rýchlejšie.

Screenshot - 13_ 3.jpg

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

tak finalizujem môj programik a pre ukážku optimálnej cesty cez všetky mesta a mestečka v SR vzdušnou čiarou:

 

293685.jpg

  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...

Tono, 

Ahoj, prosím ta ak chceš môžeš vyskúšať aplikáciu TSP Solver, obsahuje rôzne funkcie, napr. das si neimportovať obrázok, das si create points a miesta, ktoré chceš pospájať, alebo si môžeš dat random points. Su implantovane dve metódy (iné nemajú význam), vylepšená metóda najbližšieho suseda a najkratšia trasa, v programe, ktorý tu dávam dočasne nefunguje akurát: napovedá, uloženie súboru, export obrázka, uloženie súboru, import data, export data. Je to len ukážkový software (intuitívne ovládanie), kam som to dotiahol a ako rýchlo nájde riešenie. tento odkaz bude zmazaný za 3 dni. Okno programu si môžeš zväčšovať ako chceš. Napíš mi, či ti to funguje ako ma. Je to komprimovaný rar súbor. niekde si ho ulož, rozbal, a spusti - traveling_salesman.exe.

LINK:https://www.poling.sk/TSP/traveling_salesman.rar

 

intro.jpg

Screenshot - 24_ 5.jpg

Link to comment
Share on other sites

Ahoj s tým si mal už problém, keď si skúšal konzolovú aplikáciu pre najbližšieho suseda. Nejak si to potom rozchodil, zrejme si to otvoril na PC nie notebooku.

Link to comment
Share on other sites

Bežne robím na PC s Windows7. Musím to otvoriť na Windows10, ten PC momentálne nemám, ale tam to funguje, ozvem sa. 

Link to comment
Share on other sites

Ano presne tak, zaujímavé je, že sa stala mala anomália a v tomto obrázku je jedno kríženie, ktoré program odignoroval, pretože tam nemusí byť, ale ta zmena vzdialenosti je na úrovni 0,01%.

Link to comment
Share on other sites

calculate,   tlačidlo chart ti vykresli samostatný graf so súradnicami bodov,   create points klikáš myškou kam chceš, delete points maze body, clear vymaže všetko z obrazovky, method si volíš metódu, import image vkladáš obrázok, random points spúšťaš cez menu - data. remove lines zrušis spojnice bodov.

Link to comment
Share on other sites

calculate je čo button? Ja tam nič také nevidím, čím by som spustil spájanie bodov. Mám nakreslené body, aký je ďalší krok?

Link to comment
Share on other sites

rozšír si okno programu z nejakých príčin sa ti úvodné okno otvorilo menšie ako malo.

Link to comment
Share on other sites

A podarilo sa ti to zväčšiť? už by si to mal vidieť, problém je možno preto, že používaš nízke rozlíšenie obrazovky. Potrebuješ viac pixelov nastaviť na obrazovke.

Link to comment
Share on other sites

ja používam nastavenie 3840 x 2160, tak som si neuvedomil, že to okno programu sa neotvorí celé pre malé rozlíšenia.

Ak si si to vykúšal, tak sám vidíš silu algoritmu, mravce aj tie umelé sa s tým nedajú porovnať, pretože nenájdu najkratšiu trasu. Čo som prekvapený, že ten optimalizovaný najbližší sused je o niečo málo rýchlejší, ale pri väčšom počte bodov začína strácať na tu najkratšiu trasu. Chcelo by to ešte jeden optimalizačný krok pre ten algoritmus. Ale už sa mi to nechce robiť, všetko to stoji čas a energiu.

Link to comment
Share on other sites

Ak sa pozriem na výsledok, algoritmus máš urobený veľmi dobre. Metódu najnižšieho suseda aplikuješ v každom bode, do ktorého si sa práve dostal, alebo na začiatku programu?

Link to comment
Share on other sites

pred 9 hodinami, robopol napísal:

Ale už sa mi to nechce robiť, všetko to stoji čas a energiu.

Ale naučil si sa  pri tom veci, ktoré môžeš využiť aj inde. Ja som začal riešiť diferenciálne rovnice v Pythone a je to neporovnateľne efektívnejší nástroj, ako C++. Python má veľa knižníc a väčšinu práce, ktorú by si musel napísať v C++, sú už hotové. Nakoniec som to ale vzdal, kvôli tomu, o čom sme sa bavili. Dnes potrebuješ mať aplikáciu na stránke, a aj kvôli sebe. Keď otváraš bránu, kŕmiš mačku, alebo zalievaš záhradu... 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Additional information you can see at Privacy Policy