Pag-unawa sa Pinakamaikling Problema sa Landas

Ang problemang all-pairs pinakamaikling landas (posibleP) ay naghahanap ng pinakamaikling distansiya sa pagitan ng bawat pares ng mga vertices sa isang weighted grap. ito ay isang pundamental na hamon sa teoriyang grap na may direktang implikasyon para sa disenyong network, daloy ng trapiko na optimisasyon, pagsusuring social network, at logistics. hindi tulad ng mga problemang pang-isahang-oras, ang paglutas ng HIVP ay nangangailangan ng mga distansiya mula sa bawat vertex sa lahat ng iba pa, na may mga kaliskis na may quadrag quadraftical na may bilang ng mga node.

Ang karaniwang mga paraan ay tumatalakay sa problemang ito ngunit nakaharap sa kalakalan ng mga gloff. Floyd-Warhall, isang dinamikong programang algorithm, ay gumagana sa mga makapal na grap ngunit tumatakbo sa O(V3[)[ oras at hindi kayang pangasiwaan ang negatibong siklo ng timbang.[FLLLLLTUTUTC.[1]3]3], kapag tumatakbo mula sa bawat vertext, na nakamit ang [[T] Ang mga prosesong ito ay hindi na may mga negatibong ⁇ (T] ay hindi na may mga negatibong ⁇ /Tp.[20 ⁇ ], na may mga negatibong mga ⁇ −[20 ⁇ −[20 ⁇ , ngunit ang mga [−20 ⁇ ].

Paghahambing sa Karaniwang mga Algorithm

Upang pahalagahan ang Johnsonisons algorithm, nakatutulong na ipakita ang pagkakaiba ng pinakamadalas gamiting mga REP Soulder:

  • AngFloyd-Warhall – Simpleng ipatupad, ay gumagamit ng 2D distance matrix, updates sa pamamagitan ng triple presipitasyon.works sa negatibong gilid ngunit hindi negatibong siklo.Impraktikal para sa mga graph na may libo libong vertices dahil sa cubic time.
  • Repated Dijkstra[ – Runs Dijkstra mula sa bawat vertex. Mag-ayuno sa mga minimum na grap (]O(V E log V) gamit ang mga buntong Fibonacci), ngunit limitado lamang sa mga hindi-negative weight.
  • Bellman-Ford (repeated)[ – Hawakan ang mga negatibong gilid ngunit tumatakbo sa O(V2E), na mas mabagal kaysa sa parehong alternatibo.
  • Johnsonimen[T ⁇ S Algoritm[[ – Muling binabaybay ang grap upang ang lahat ng gilid ay maging hindi-negative, saka maglalapat ng paulit-ulit na Dijkstra. Ito ay nagbibigay Ang isang binaryong [V E + V[ log ay isang binyon, na mas pinipili ito sa mga ⁇ p.[2][2[[2][[.

Kung Paano Gumagana ang mga Johnsonixis Algorithm

Ang mga Johnsonificles algorithm ay may katalinuhang binabago ang isang grap na naglalaman ng negatibong mga gilid tungo sa isa na may lamang di-kahima - kabilang gilid na mga pabigat, iniingatan ang kayarian ng pinakamaikling mga landas. Ang pagbabagong ito ay umaasal sa isang na may entidad na pang-potensiya na hinango mula sa isang runnifman na Bellman na Forwardd. Minsangbased, ang Dijkstra ⁇ s algorithm ay maaaring gamitin mula sa bawat node. Ang algorithm ay binubuo ng apat na mga hakbang.

Hakbang 1: Pagdaragdag ng Isang Super Source Node

Isang bagong vertex [ ay idinagdag sa grap, na konektado sa bawat umiiral na vertex na may gilid ng bigat 0. Ang ekstrang node na ito ay hindi nagbabago ng pinakamaikling distansiya ng landas dahil ang anumang landas na gumagamit ng s ay maaaring i-append.

Hakbang 2: Pagsama-samahin ang Potensiyal na mga Fuction kasama si Bellman-Ford

Run the Bellmans algorithm from the super source s[. Dahil s Ang mga gilid ng sero-timbang] ay may mga gilid ng lahat ng mga vertica, ang algoritm computes ang pinakamaikling distansiya )[FL]) ay may mga ulat na nasa bawat isa na maaaring mangyari sa mga yugtong ⁇ [T.[T][T][T] Ang [[T] ay isang [[T] ay may mga negatibong ⁇ [8].[T].[T] Ang [[T] ay isang [[T] ay isang [[T] [[[T] [[T] [[T] [[[[T] [[T] [[[T] [[[[T] [[[[[[[[T] [[T] ay isang [[T] [[[[[T] [[[

Hakbang 3: Pagtitimbang - timbang sa Graph

Ginagamit ang mga potensiyal h(v)[, bawat gilid (u, v) na may orihinal na bigat w(u, v)[[[[[5]) Ang timbang ay binabaybay muli sa:

w'(u, v) = w(u, v) + h(u) – h(v)[

Ang pagbabagong ito ay gumagarantiya na ang bawat muling nabigat na gilid ay hindi nangangahulugang ang mga bagay na hindi pantay. Ang patotoo ay nakadepende sa tatsulok na di - pantay na pagkakasunud - sunod: dahil h(v) ⁇ h(u) + w(u, v) (mula sa Bellman[Fordəs output), sumusunod na ang ay nananatiling [[2]w'(u, v) ⁇ [0 ⁇ :3], bukod pa ang kaayusan ng mga landas ay naingatan sa pagitan ng pinakamaikling ⁇ ( ⁇ ) sa pagitan ng mga ⁇ −2].

Hakbang 4: Ang Pagtakbo ng Dajkstrairis Algorithm mula sa Bawat Vertex

Sa pamamagitan ng reflumed grap na naglalaman lamang ng mga hindi grossigative gilid, ang Dijkstraimens algorithm ay tumatakbo minsan mula sa bawat vertex. Ang bawat isa ay nagpapatakbo ng mga compute ng pinakamaikling distansiya sa lahat ng iba pang mga bertiko. Ang mga resultang distansiya ay pagkatapos ay binabago pabalik sa orihinal na gilid na mga pabigat gamit ang pormula:

[orihinal(u, v) = dist[[(u, v) ⁇ ⁇ ⁇ (u) + h(v)[[

Tinitiyak ng huling hakbang na ito na tumpak ang iniulat na distansiya para sa orihinal na graph.

Pagiging Masalimuot at ang Pagsusuri sa mga Kakayahan

Ang Johnsonprocts algorithm ay nakaaabot sa kabuuang haba ng panahon na masalimuot O(V E + V2,[2] log V) kapag ipinatupad sa pamamagitan ng isang binary dual prendant queue.[[[T] [[T] [[FL] [[[[T] [[T] [[T] [[T] [[T] [[T]:[T] [[T] [[T] [[T] [[T]] [[T]] [[T] [[T] [[T]:[C]] [[T]]]] [[T] [[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[C.[

Ang paggamit ng isang bunton ng Fibonacci ay maaaring makabawas sa bahagi ng Dijkstraizers sa O(V E + V2 log V)[[2] amortized, bagaman sa pagsasagawa ay mas simple at kadalasang mabilis. Ang memory footprint ay ([T:[T:2][2][2][2][2][2][2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[T] [[2] [[2] [[2]] [[2]] [[2]]] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2] [[2]] [[2] [[2] [[2

Praktikal na mga Pakinabang

Ang mga Johnsonixis algorithm ay ginagamit sa mga domain kung saan ang mga gilid ng grap ay maaaring magdala ng negatibong mga halaga at lahat ng mga peripoir pinakamaikling distansiya ay kinakailangan.

  • [Network glovating: Ang mga Internet service provider at telekomunikasyon network ay gumagamit ng mga ipinamamahaging surgrounding protocol na kailangang umangkop sa pinakamurang landas sa pagitan ng anumang dalawang storya, kahit na ang link ay nagreresulta ng mga gastos na pabagu-bago o negatibo (hal., dahil sa pagsisikip o mga diskuwento ng patakaran).
  • [[[Talaksan: Ang mga kompanyang Mapping at logistics (e.g., Google Maps, OpenStreetMap surveloping engines) ay nagkokompyuter ng pinakamaikling mga landas sa pagitan ng maraming pinagmulang mga pares ng quartation para sa mga elastic easy equipment.
  • [Suply chain] Maaaring maging negatibo (e.g., rebates) Sa multi-proficancestance working networks, ang halaga mula sa isang node hanggang sa isa pa ay maaaring negatibo (e.g., rebates).[updates algorithm ay nahahanap ang pinaka-kapaki-pakinabang na mga ruta sa buong chain ng suplay.
  • [[Cocial network analysis: Ang pagsukat ng pagiging malapit na sentralidad o pagitan ng sentralidad ay nangangailangan ng lahat ng mga distansiyang antropair. Ang mga negatibong gilid ay maaaring kumatawan sa ⁇ friend na si Equiraof ⁇ friend ⁇ i ⁇ chapter links o mga ugnayang adversarial.
  • Ang Economic input[output na mga modelo: Ang mga modelong Leontief at daloy ng mga pleksiyon ay kadalasang kinasasangkutan ng negatibong mga coficit; Johnsonimen algorithm compume ang netong epekto ng transpormasyon ng mga pagbabago sa pamamagitan ng isang magkakaugnay na ekonomiya.

Para sa higit pang pagbasa sa mga pundasyong matematikal, tingnan Ang Wikipedia ⁇ s detalyadong pagpasok[[ at ang orihinal na papel ni Donald B. Johnson (1977).[isang praktikal na pagpapatupad sa Python ay matatagpuan sa NetworkX ⁇ s GitHub revix, na kinabibilangan ng Johnson ⁇ s algithm bilang isang pamantayan.[2] Para sa pamamaraang pang-unawa:[T ⁇ ][T ⁇ ][T ⁇ C ⁇ ][T ⁇ C ⁇ S ⁇ C ⁇ C ⁇ C ⁇ S ⁇ C ⁇ C ⁇ T ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ S ⁇ S ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C.[T ⁇ C ⁇ S].[T ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C ⁇ C.

Pagsasaayos

Ang Johnsonifics algorithm ay namumukod-tangi bilang isang elegante at praktikal na solusyon sa lahat ng mga glopepairs pinakamaikling problema sa landas kapag ang negatibong mga gilid na mga timbang ay naroroon. sa pagsasama ng route ng Bellman gloomFord (para sa pag-unawa ng mga negatibong siklo at pagkokokodigo ng mga potensiyal na mga potensiyal) na konsepto ng Dijkstra (para sa mga hindi-elegative grap), ito ay nagkamit ng mahusay na pagganap sa mga limitibong mga mahinang pag-intomikong network. Ang paraan mismo ay isang magandang aplikasyon ng mga posibleng worksic na konsepto ng mga adrolecument na umaabot sa mga landas na lampas pathiclytom.

Kapag napaharap sa isang tunay na suliraning STOREworld PEP kung saan kakaunti ang mga graph at maaaring naglalaman ng negatibong mga gilid, ang Johnsoniviers algorithm ay dapat na unang isaalang-alang. Ang teoretikal na mga garantiya at malawakang pagpapatupad nito sa mga aklatan (e.g., ay gumagawa ritong praktikal upang maampon.