Bölüm 4.2 · Simülasyon

En Kısa Yol Algoritmaları

← Bölüm 4.2

Hazır.

En Kısa Yol Algoritmaları

Bağlantılı, ağırlıklı bir çizge oluşturulur; Dijkstra, Bellman-Ford ve Floyd-Warshall, A düğümünden son düğüme giden yol için karşılaştırılır.

Kullanım

  • Düğüm sayısı (3–10) seçilip Oluştur düğmesine basılınca yeni, rastgele, bağlantılı bir çizge gelir.
  • Üç algoritmadan biri çalıştırılır; o anki düğüm vurgulanır, gevşetilen kenarlar parlar, geçici uzaklıklar düğümlerin üstünde ve yan tabloda görünür.
  • Algoritma bitince A'dan son düğüme giden en kısa yol çizilir ve tablodaki satırları işaretlenir.
  • Düğümler sürüklenerek çizim yeniden düzenlenebilir (yalnızca hiçbir algoritma çalışmıyorken). İptal çalışmayı durdurur.

Dijkstra

Kenar ağırlıkları negatif olmayan çizgelerde verimlidir. Bu yüzden simülatör yalnızca pozitif ağırlıklar üretir.

Bellman-Ford

Tüm kenarları tekrar tekrar gevşetir. Genelde negatif kenarlarla da çalışabilir; ancak bu ortak karşılaştırma çizgesi pozitif ağırlıklar kullanır.

Floyd-Warshall

Tüm düğüm çiftleri arasındaki en kısa yolları dinamik programlamayla O(V³) sürede hesaplar. Tablo, her k ara düğümünden sonra A kaynağının satırını gösterir.

Karmaşıklık

AlgoritmaSüreNot
Dijkstra (dizi)O(V²)İkili heap ile O((V + E) log V)
Bellman-FordO(V·E)Negatif döngüleri saptar
Floyd-WarshallO(V³)Tüm çiftler, O(V²) bellek