Aşağıdaki grafik için Johnson algoritmasını açıklayabilir mi? Algoritmanın nasıl çalıştığı konusunda gerçekten kafam karıştı. Bunun Bellman Ford
ve Dijkstra's
'un bir kombinasyonu olduğunu biliyorum.Johnson Algoritması grafiği açıklaması
Ancak, iyi bir grafik açıklaması bulamıyorum, bu çözüm adım adım açıklıyor.
İşte grafik.
Mesafelerle ilgili not: f'den b'ye -5 (değil 5); e'ye e3 (3 değil); d, -5 (değil 5)
Çok teşekkür ederim. İlk önce ağırlıkları değiştirmem gerektiğini biliyorum, ancak ağırlıkların nasıl değiştirileceğine gerçekten emin değilim.
Soru: b - c arasındaki en kısa yolu bulmak istiyorum.
Anladığım kadarıyla, Johnson'ın üç adımı vardır: 1) yeni bir düğüm tanıtmak ve yeni düğümden tüm eski düğümlere en kısa yolları hesaplamak, 2) ağırlıkları değiştirmek, 3) b'den c'ye en kısa yolu bulmak. 2. adım) sorun yaşadığınız şey mi? – Beta
@Beta evet. Ağırlıkları değiştirmek için sorun yaşıyorum. Formülün w (u, v) = w (u, v) + h (u) - h (v) olduğunu bilmeme rağmen, nasıl değiştirileceğimi gerçekten kafam karıştı. Ama Cormen'in Johnson algoritması örneği ile ilgili Algoritma bölümüne girişini okuduğumda, kendimle anlayamadım. Umarım birisi bana yardım edebilir. – JavaLeave