Unatumiaje algorithm fupi ya njia ya Dijkstra?
Unatumiaje algorithm fupi ya njia ya Dijkstra?

Video: Unatumiaje algorithm fupi ya njia ya Dijkstra?

Video: Unatumiaje algorithm fupi ya njia ya Dijkstra?
Video: Я ОДЕРЖИМЫЙ ДЕМОНАМИ 2024, Machi
Anonim

Algorithm ya Dijkstra kupata njia fupi zaidi kati ya a na b. Inachukua vertex isiyotembelewa na ya chini kabisa umbali , huhesabu umbali kupitia hiyo kwa kila jirani ambaye hajatembelewa, na kusasisha ya jirani umbali ikiwa ndogo. Mark alitembelea (iliyowekwa kuwa nyekundu) ilipofanywa na majirani.

Vivyo hivyo, watu huuliza, ni algorithm gani fupi bora zaidi ya njia?

  • Algorithm ya Dijkstra. Algorithm ya Dijkstra inatofautiana kutoka kwa zingine kwa sababu ya uwezo wake wa kupata njia fupi kutoka nodi moja hadi kila nodi nyingine ndani ya muundo sawa wa data ya grafu.
  • Algorithm ya Bellman-Ford.
  • Algorithm ya Floyd-Warshall.
  • Algorithm ya Johnson.
  • Ujumbe wa Mwisho.

Mtu anaweza pia kuuliza, ni nini ugumu wa wakati wa algorithm fupi ya njia ya Dijkstra? Utata wa Muda wa Algorithm ya Dijkstra ni O (V 2) lakini kwa foleni ya kipaumbele kidogo inashuka hadi O (V + E l o g V).

Kwa njia hii, Dijkstra ni BFS au DFS?

ya Dijkstra algorithm ni ya Dijkstra algorithm, sio algorithm kwa sababu BFS na DFS wenyewe sio ya Dijkstra algorithm: BFS haitumii foleni ya kipaumbele (au safu, ikiwa utazingatia kutumia hiyo) kuhifadhi umbali, na. BFS haifanyi mapumziko ya makali.

Je, programu ya Dijkstra ni yenye nguvu?

Nguvu Algorithms inamaanisha kuvunja utaratibu kuwa kazi rahisi. Walakini, kutoka kwa a programu yenye nguvu msimamo, ya Dijkstra algorithm ni mpango wa makadirio unaofuatana ambao hutatua programu yenye nguvu mlinganyo wa utendaji kwa tatizo la njia fupi zaidi kwa njia ya Kufikia.

Ilipendekeza: