KomputilojProgramado

Dijkstra algoritmo kaj ĝia efektivigo

Ekzistas aparta areo nomita grafeteorio en matematiko kaj komputiko. Kiel parto de lia aro kaj por solvi diversajn problemojn, kiel trovi la plej mallonga vojo inter la verticoj. Unu komuna inter matematikistoj manierojn solvi tiun problemon longe estis Dijkstra algoritmo.

Kio estas matematika grafeo

Oni kredas ke la nocio de la grafikaĵo estis metita en uzon en la dekoka jarcento Leonardom Eylerom. Estis li, kiu anoncis la formulación kaj solvo de unu el la klasika problemoj de ĉi tiu teorio - la sep pontoj de Königsberg. Por klarigi la celon de ĉi tiu teorio ofte uzi tiun analogion kiel movado inter diversaj urboj. Tiam la grafikaĵo en la aviadilo estos tuta vojo diagramo, kie verticoj iĝi specifa erojn (ekz, urboj), kaj la randoj - padon de unu vertico al alia (analoga vojo inter urboj). Dijkstra algoritmo, aldone al aliaj metodoj, povas disponigi solvon por ĉi tiu demando.

Trovanta la plej mallonga vojo

Unu el la komunaj taskoj de grafeteorio estas unu en kiu vi devas determini la optimuman kosto vojo inter du punktoj. Eblas redukti la aviadilon al la decido de la grafeo en kiu la verticoj - urboj - estas interkonektitaj ripoj, kio estas ebla vojo. Ĉiu vojo havas propran longon do vojaĝas sur ĝi devos elspezi iom da mono. Tiu kvanto estas ekvivalenta al la pezo de la randoj en la grafeo. Tiam la problemo praktike povas esti formulita tiel: kiel malfermi la vojon de unu urbo al alia, por esti elspezita survoje minimuma rimedoj.

manierojn por solvi

Por solvi tiun problemon ni estas inventita de iuj algoritmoj, kiuj fariĝis vaste konata en la scienca mondo. Ekzemple, Floyd algoritmo - Uorshella, Ford - Bellman. La klasika maniero de trovi solvojn ankaŭ Dijkstra algoritmo. Oni povas uzi ĝin por pezita (konataj pezo de ĉiu rando) de la grafeo kaj dilui. Por trovi la fina vojo vi devas fari pluraj paŝoj.

Dijkstra algoritmo

La punkto de ĉi tiu metodo estas en tio, ke ĉiuj verticoj de kosto, ekde certa, en kiu ĉiu etikedo estas asignita certan valoron. Tiam la rezulto inkludos la verticoj kies etikedoj estas minimumaj. Aldonigxis la unua komenca paŝo estos etikeditaj kun valoro de 0. Do, ĉiuj el la sekvaj pintoj estas konsideritaj, tio estas, tiuj kiu estas atingebla de la fonto. Ili estas markitaj, la valoro de kiu estas difinita kiel la sumo de la fontkodon kaj pezo de la vojoj. De la supro de la sekva paŝo, elekti tiun, kiu havas la plej malgrandan valoron de la etikedo, kaj studis ĉiujn verticojn en tiu de ĝi ni povas iri sen uzi la interaj nodoj. Indiku nova etikedo egala al la etikedon suproj - fontkodon plus la pezo de la vojo. Se la valoro estas malpli ol la supra etikedo, la etikedo estas ŝanĝita. Alie, ĝi restas la originala valoro. Samtempe en aparta tabelo, kies dimensio estas egala al la nombro de verticoj, ĝi stokas la rezulton de optimumigo, en kiu kaj determinita vojo. Por efektivigi metodo kiel Dijkstra algoritmo, Pascal ofertas tre oportuna rimedo. La algoritmo havas la avantaĝon ke ĝi povas facile esti la bazo por programo kiu havas malgrandan grandecon. Ekzemploj de tiaj programaro produktojn facile trovi en la interreto.

Dle solvoj malsamaj iloj vi povas uzi la taskon trovi la optimuman vojon. Por solvoj kiel Dijkstra algoritmo, Delphi kreos oportuna formo de vidaj datumoj enigo kaj eligo la fina rezulto.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 eo.unansea.com. Theme powered by WordPress.