G = (V, E) ağırlıklı bir grafik verilmişse, bir kaynak köşe, bir hedef köşe ve bir altküme v ’, grafikte vertex t'den s'ye en kısa döngü dışı yolu nasıl buluruz? Alt kümedeki köşe noktaları yoluna dahil edilmelidir.Özel şartlar altında en kısa yol masrafı nasıl bulunur?
1
A
cevap
1
Bu, Traveling Salesman Problem (TSP)'un bir çeşididir.
Grafiğin ( Floyd Warshall Algorithm) tüm-tüm en kısa yolu çalıştırarak TSP tam örneğine sorununuzu dönüşümü ve sonra yeni bir grafik oluşturmak için: bulma, Şimdi
G'={V' U {s,t}, E'}
V' - the "must go through" subset
E' = { (s,v), (v,t), (u,v) | u,v in V'} (In words: all edges between two nodes in the new graphs)
G'
'daki tüm düğümlerden (TSP) geçen miminal yol, ölçütleri karşılayan en az yoldur (her iki yol arasında geçen her yolun arkasından).
Maalesef TSP NP-Complete sorundur (orada bunu çözmek için bilinen hiçbir polinom zaman algoritması olduğunu ve en fazla bir bile yok inanmak) ve V'
"düğümler geçmesi gerekiyor" nin set nispeten küçük olduğu sürece (ve Algoritmanın üstel zaman çalışma süresini karşılayabiliyorsunuz), optimal olmayabilecek bir "yeterince iyi" algoritmasına yer vermeniz gerekecek. Bu örnekte
---------
| |
v |
s -> a -> b -> c
|
|
t
, kriterlerini karşılamak için tek yol Cevabınız için s->a->b->c->t
İlgili konular
- 1. Normal şartlar altında ÇİFT
- 2. dijkstra algoritmasında en kısa yol nasıl kaydedilir
- 3. Networkx - En kısa yol uzunluğu
- 4. En Kısa/En Ucuz Yol? Dinamik programlama nasıl kullanılır?
- 5. Sözlükleri kullanarak en kısa yol algoritması [Python]
- 6. HDF5 dosyasını pandalara oku Şartlar altında DataFrame
- 7. Dijkstra en kısa yol algoritması kenar maliyeti
- 8. Bir Uçuş Yolunda En Kısa Yol Nasıl Gidilir?-Tablo
- 9. Diziyi bir dizgeye dönüştürmek için en kısa yol C#/LINQ
- 10. Django Şartlar ve Koşullar formu
- 11. Lisp'deki iki düğüm arasındaki en uzun yol nasıl bulunur?
- 12. Bir alan için bir değerin en uzun ve en kısa uzunluğunu mongoDb'de nasıl bulunur?
- 13. Raylar: özel bir veri türü oluşturma/kısa yol oluşturma
- 14. Kenar ağırlıkları iki katına çıkarıldıktan sonra en kısa yol
- 15. Android en kısa yol/mesafe bulmak için herhangi bir algoritma?
- 16. En etkili yol
- 17. Yerelleştirilmiş dizine giden yol nasıl bulunur?
- 18. JTable nasıl en kısa şekilde sıralanır?
- 19. Javascript dizeleri çoğaltmak için kısa yol yolu
- 20. Grafikte en kısa yolların sayısı
- 21. Kısa URL sistemi: Özel URL'leri nasıl yönlendirilir?
- 22. cakephp'deki en son kayıt nasıl bulunur?
- 23. Elasticsearch'te en çok kullanılan deyimler nasıl bulunur?
- 24. En kısa eşleşme kuralını esnek olarak nasıl etkinleştirirsiniz (lexer)?
- 25. R Data.Table Şartlar Katıl
- 26. En kısa satır içi koleksiyon başlatıcısı? C#
- 27. Dizideki en küçük ve en büyük sayı nasıl bulunur?
- 28. OSRM ile tek kaynak en kısa yolları nasıl hesaplanır?
- 29. Köşeleri igraf'ı kullanarak en kısa yoldan nasıl alabilirim?
- 30. Kök UIViewController nasıl bulunur
Teşekkür şudur: örneğin, mümkün olmayan olabileceğini unutmayın - "hayır döngüler" ile ilgili
Sidenote .Bu yöntemle ilgileniyorum. Ama biraz şüphem var. 1.Tüm all to all all kısa yolunu ** aradığımda, her yolun nasıl garanti edileceği diğerlerinden farklıdır (her köşe geçişi sadece bir kez geçer). 2.TSP problemi, tüm problemleri içeren bir döngü yolunu bulmaktır, bu soruna göre, tipik algoritmaları değiştirmek için neye ihtiyaç vardır? – bigboxxx
@bigboxxx Hiçbir döngü olmadığını garanti edemezsiniz, çünkü yukarıda bahsettiğim gibi durumlar var - döngü olmayan bir yol yoktur. – amit
Kitle, min ağırlıklarla yolu bulmaktır, bu arada her bir talep köşe noktası sadece bir kez ziyaret edilmelidir. – bigboxxx