Algoritam dekstra i njegova implementacija
U matematičkoj znanosti i računalnoj znanosti postojiOdvojeni smjer, nazivan teorijom grafikona. U svom okviru postavljaju se i rješavaju razni zadaci, na primjer, pronalaženja najkraćeg puta između vrhova. Jedna od najčešćih metoda za rješavanje ovog problema među matematičarima dugo je bila algoritam Dijkstra.
Vjeruje se da je pojam grafikona uveden uuporabu u osamnaestom stoljeću Leonarda Eulera. On je najavio formulaciju i rješenje jednog od klasičnih problema ove teorije - sedam mostova Königsberg. Da bi se objasnio objekt ove teorije, najčešće koristi takvu analogiju kao kretanje između različitih gradova. Tada je graf u avionu bit će cijeli dijagram put, gdje vrhovi postaju specifični predmeti (na primjer, gradovi), a rubovi - put od jednog vrha na drugi (analogni cesti između gradova). Dijkstraov algoritam, uz druge metode, može dati rješenje za ovo pitanje.
Jedan od standardnih problema teorije grafikona jeonaj u kojem je potrebno utvrditi put optimalnog puta između dvije točke. Može se smanjiti na ravnini do rješenja grafikona u kojoj su gradovi-gradovi-međusobno povezani rubovima, koji predstavljaju moguće ceste. I svaka cesta ima svoju dužinu, stoga će putovati kroz njega morati potrošiti određena sredstva. Ova je suma jednaka težini ruba na grafikonu. Zatim se problem u praksi može formulirati na sljedeći način: kako se utrti put iz jednog grada u drugi, da se na putu troši najmanje sredstava.
načina rješavanja
Da biste riješili taj problem, nekialgoritama koji su postali široko poznati u znanstvenom svijetu. Na primjer, algoritam Floyd - Warshell, Ford - Bellman. Algoritam Dijkstra također je klasičan način pronalaženja rješenja. Također se može koristiti za ponderirani (težina svakog ruba je poznata) graf, a za rijetke. Da biste pronašli konačni put, trebate učiniti nekoliko koraka.
Dijkstra algoritam
Značenje ove metode je tosvi vrhovi se zaobilaze, počevši od datog, svaki od njih dobiva etiketu s određenom vrijednošću. Tada će rezultat uključivati one čije su oznake minimalne. U prvom koraku, izvorni je vrh dodijeljen naljepnici s vrijednosti 0. Tada se uzimaju u obzir svi sljedeći vrhovi, tj. Oni kojima se može pristupiti iz vršnog vrha. Dodjeljuju se oznake čija je vrijednost definirana kao zbroj izvora i težine staze. Od vrhova sljedećeg koraka, odabrana je jedna koja ima najmanju vrijednost oznake i proučavaju se svi vrhovi na kojima se može prevesti bez korištenja srednjih vrhova. Definirana je nova vrijednost oznake koja je jednaka oznaku izvornog vrška plus težinu staze. Ako je dobivena vrijednost manja od oznake vrhova, oznaka se mijenja. Inače, izvorna vrijednost ostaje. U ovom slučaju, u zasebnom nizu, čija je dimenzija jednaka broju vrhova grafikona, očit je rezultat optimizacije, na kojem se određuje put. Da bi se takva metoda implementirala kao algoritam Dijkstra, Pascal nudi vrlo prikladne alate. Algoritam ima prednost da se lako može koristiti kao osnova za program koji ima malu veličinu. Primjeri takvih softverskih proizvoda lako se mogu pronaći na Internetu.