/ / Algoritmas ir jo įgyvendinimas

Dextra algoritmas ir jo įgyvendinimas

Matematikos ir kompiuterių mokslo srityje yraAtskira kryptis, vadinama grafikos teorija. Savo ruožtu nustatyti ir išspręsti įvairias užduotis, pavyzdžiui, rasti trumpiausią kelią tarp viršūnių. Vienas iš labiausiai paplitusių šios problemos sprendimo būdų tarp matematikų jau seniai yra Dijkstra algoritmas.

dextree algoritmas
Kas yra matematinė grafika

Manoma, kad į grafiką buvo įtraukta sąvokaLeonardo Eulerio naudojimas XVIII a. Būtent jis išreiškė vienos iš šios teorijos klasikinių problemų formulavimą ir sprendimą - apie septynis Koenigsbergo tiltus. Siekiant paaiškinti šios teorijos objektą, dažniausiai naudojama tokia analogija kaip judėjimas tarp skirtingų miestų. Tada plokštumos grafikas atspindės visą maršrutų schemą, kur viršūnės bus konkrečios taško (pvz., Miestų), o kraštai - kelias nuo vieno piko iki kito (panašus į kelių tarp miestų). Dijkstra algoritmas, be kitų metodų, gali padėti išspręsti šį klausimą.

Delphi dejkstra algoritmas
Rasti trumpiausią kelią

Viena iš standartinių teorijos grafikos problemų yrakur reikia nustatyti sąnaudų atžvilgiu optimalų kelią tarp dviejų taškų. Jis gali būti sumažintas plokštumoje į grafiko, kuriame viršūnės-miestai, sprendimus sujungiami kraštais, kurie yra galimi keliai. Ir kiekvienas kelias turi savo ilgį, todėl per jį turėsite išleisti tam tikras lėšas. Ši suma yra lygi diagramos krašto svoriui. Tada praktiškai problema gali būti formuluojama taip: kaip paruošti dirvą iš vieno miesto į kitą, turi būti išleidžiama kelių minimalių priemonėmis.

Sprendimai

Norėdami išspręsti šią problemą, kai kuriealgoritmai, kurie tapo plačiai žinomi moksliniame pasaulyje. Pavyzdžiui, algoritmas Floyd - Warshell, Ford - Bellman. Dijkstra algoritmas taip pat yra klasikinis būdas rasti sprendimą. Jis taip pat gali būti naudojamas svoriui (žinomas kiekvieno krašto svoris), o atskirai. Norėdami rasti galutinį kelią, turite atlikti keletą žingsnių.

Dijkstra algoritmas

Šio metodo prasmė yra tokiaatsisakyti visų viršūnių iš tam tikros, kur kiekvienas žyma, priskirtas tam tikrą vertę. Tada rezultatas bus tie viršūnių, kurių etiketės yra minimalios. Pirmajame žingsnyje pradinei viršūnei priskiriama etiketė su reikšme 0. Tada laikomi visi šie viršūniai, ty tie, kuriuos galima pasiekti iš pradinės viršūnės. Jie priskiriami etiketėms, kurių vertė apibrėžiama kaip šaltinio suma ir kelio svoris. Iš kito žingsnio viršūnių pasirenkamas tas, kuris turi mažiausią etiketės reikšmę, ir ištirti visi viršūniai, į kuriuos jis gali būti perkeltas, nenaudojant tarpinių viršūnių. Nustatyta nauja etiketės vertė, lygi šaltinio viršūnės etiketei ir kelio svoriui. Jei gautoji vertė yra mažesnė už viršūnės etiketę, etiketė pasikeičia. Priešingu atveju pradinė vertė išlieka. Šiuo atveju atskirame masyve, kurio matmuo lygus diagramos viršūnių skaičiui, išsaugomas optimizavimo rezultatas, kurio metu nustatomas kelias. Įgyvendinti metodą, pavyzdžiui, dijkstros algoritmas Pascal siūlo labai patogi priemonė. Algoritmas turi pranašumą, nes jis gali būti lengvai naudojamas kaip mažo dydžio programos pagrindas. Tokių programinės įrangos pavyzdžių yra lengva rasti internete.

pascal dextra algoritmas
Išspręsti optimalaus kelio paieškos problemągali būti naudojamos įvairios priemonės. Sprendimų, pavyzdžiui, dijkstros algoritmas, Delfai sukurs patogią formą vizualiai duomenų įvesties ir išvesties galutinis rezultatas.

Skaityti daugiau: