A* ve Dijkstra'nın algoritmaları, navigasyon sistemlerinde yaygın olarak kullanılmaktadır, robotik ve ağ yönlendirmelerinde temeldir. matematiksel temelleri performanslarını ve uygulanabilirliğini optimize etmeye yardımcı olur.

Graph Representation

Her iki algoritma da düğümlerden (vertices) ve kenarlardan oluşan grafikler üzerinde çalışır. Edges maliyetleri, mesafeleri veya zamanları temsil edebilir. Grafik yönlendirilebilir veya yönlendirilemez ve ağırlıklar genellikle non-negative değildir.

Maliyet Fonksiyonlar ve Heuristics

Bu algoritmaların özü, her düğüme ulaşma maliyetini hesaplamayı içerir. Dijkstra'nın algoritması, başlangıç node'dan itibaren genel maliyeti kullanırken, A* kalan maliyetin amacına yönelik bir tahmin ekler.Heuristic'in asla izin verilmemesi gerekir, yani gerçek maliyetin aşırılığı asla.

Matematiksel Formülasyon

G = (V, E), T.C. V ve kenarlarla bir grafik olalım E. Her kenar (u, v) ağırlık w(u, v) Hedef, node t'lerin hedefini bulmaktır.

Dijkstra'nın algoritması her bir vertex v için mesafeyi güncelliyor, ilk olarak d(s) = 0 ve d (v) = v ⁇ s. iteratively seçin the vertex with the small d(v), sonra komşu kenarlarını rahatlatır.

A* Bunu bir heuristic h (v) ile bir heuristic h (v) ileterek, v'dan malı eleştirerek değiştirir. öncelikli işlev f(v) = d (v) + h(v)

Algoritma Verimliliği

Verimlilik, kullanılan veri yapıları bağlıdır. Dijkstra'nın algoritması, O(|E| + |V| log |V|) bir öncelik kuyruğu ile zaman karmaşıklığına sahiptir. A* heuristic iyi tasarlanmışsa daha hızlı olabilir, düğüm sayısını azaltır.

  • Doğru olmayan ağırlıklarla Grafik
  • A* için kabul edilebilir heuristic
  • Node seçimi için önceki kuyruk
  • Güncelleme maliyetlerin düzeltilmesi Maliyetleri güncellemek