þekking Discovery
/ Knowledge Discovery >> þekking Discovery >> tækni >> tölva >> tölva vélbúnaður >>

Hvernig vegvísun Reiknirit Work

nn V2, leið útdrætti fyrri hnút sitt af stöðu met og er þetta þar til hún kemur á V1. Þessi listi hnúta sýnir bestu leiðina frá V1 til V2

Við munum nota þetta reiknirit sem dæmi á næstu síðu
Dæmi:.. Dijkstra reiknirit
Skref 1
Skref 2
Skref 3
Skref 4

Hér viljum við að finna bestu leiðina milli A og E (sjá hér að neðan). Þú getur séð að það eru sex mögulegar leiðir milli A og E (ABE, ACE, abde, ACDE, ABDCE, ACDBE), og það er augljóst að abde er besta leiðin vegna þess að þyngd hennar er lægst. En lífið er ekki alltaf svo auðvelt, og það eru nokkrar flóknar tilfelli þar sem við þurfum að nota reiknirit til að finna bestu leiðina.

  1. Eins og þú sérð í fyrstu myndinni, sem fengið hnút (A) hefur verið valið sem T-hnút, og svo er merki þess varanleg (að sýna varanleg hnúta með fyllt hringi og T-hnúður með - > tákn).
  2. Í næsta skrefi, þú sérð að Staða met sett af bráðabirgða hnúður sem tengist beint T-hnút (B, C) hefur verið breytt. Einnig, þar sem B hefur minna vægi, það hefur verið valið sem T-hnút og merki þess hefur breyst til varanleg (sjá hér að neðan).
  3. Í þrepi 3, eins og í skrefi 2, staða met mengi bráðabirgða hnúður sem hafa bein tengsl við T-hnút (D, E), hefur verið breytt. Einnig, þar sem D hefur minna vægi, það hefur verið valið sem T-hnút og merki þess hefur breyst til frambúðar.
  4. Í skrefi 4, höfum við engar bráðabirgða hnúður, þannig að við þekkja bara næsta T -node. Þar E hefur minnst vægi, það hefur verið valið sem T-hnút.

    Að lokum, E er áfangastaður, þannig að við hætta hér.

    Við erum á enda! Nú verðum við að þekkja leiðina. Fyrri hnút E er D, og ​​fyrri hnút D er B, og fyrri hnút B er A. Svo er besta leiðin er abde. Í þessu tilviki, alls vega er 4 (1 + 2 + 1).

    Þrátt fyrir að þetta reiknirit virkar vel, það er svo flókið að það getur tekið langan tíma fyrir leið til að vinna úr því, og skilvirkni net mistekst. Einnig, ef leið gefur rangar upplýsingar til önnur leið, allt vegvísun ákvarðanir verður árangurslaus. Til að skilja þetta reiknirit betur, hér er uppspretta program skrifaður af C:

     #define MAX_NODES 1024 /* Hámarksfjöldi hnúta * /# skilgreina óendanleika 1000000000 /* fjöldi stærri en hverjum hámarks slóð * /int n, District [MAX_NODES] [MAX_NODES]; /* Dist [I] [J] er fjarlægðin frá i til j * /ógilt shortest_path (int s, int t, INT slóð []) {struct ríkisins {/* slóðin sem unnið er á * /int forvera; /* fyrri node * /INT le

    Page [1] [2] [3] [4] [5] [6]