Bir kaynaktan bir hedefe çok büyük bir ağ ölçeğinde (ağ matrisinde), yani 5000 düğümde olası tüm yolları bulmanın en iyi yolunun ne olduğunu merak ediyorum. Yığınları kullanarak uygulanan bu function'u kullandım, ancak sınırı yaklaşık 60 düğüm görünüyor ve 200 düğümlü ağın yollarını alamıyor. Başka bir yaklaşımda, DFS (derinlik-ilk arama) seçeneklerden biri olabilir, ancak bu algoritma aynı zamanda yığın kullanır, bu yüzden ölçeklenebilirliğinden korkuyorum. Böylece, böyle büyük bir ağdaki iki belirli düğüm arasındaki tüm yolları bulmak için etkili bir yolumuz var mı?Büyük ağlar ölçeğinde iki düğüm arasındaki olası tüm yolları bulmanın en iyi yolu nedir?
cevap
Derinlik-ilk olarak, belirttiğiniz seviyede ölçeklenebilir hale getirmenin tek yolu, en azından kuantum bilişim bize sonsuz işlem gücü verene kadar. Tüm düğümler arasında% 100 komşuluğunuz varsa, yol sayısı, evrendeki atom sayısıyla yaklaşık 2^120 civarındadır.
2^120 çok küçük görünüyor. Eğer tam bir grafikte 200 düğüm varsa, o zaman 198'un üzerinde var! zaten 2^1230 –
@JohnColeman olan belirli bir düğüm çifti arasındaki yollar, haklısınız - onu araştırdım ve ortaya çıkan ilk sayıyı çektim, ancak bu 5000'in küçük bir ilginç alt kümesi içindi! – hoodaticus
- 1. Jmeter'da en iyi yolu bulmanın en iyi yolu nedir?
- 2. Kompakt Çerçevede geliştirirken tüm belleğinizi bulmanın en iyi yolu nedir?
- 3. İki düğüm arasında en kısa yolu bulmanın en iyi yolu Tinkerpop 3.1
- 4. Büyük bir tablodan benzer değer bulmanın en iyi yolu
- 5. Diziler arasındaki eşleşme sayısını bulmanın en hızlı yolu nedir?
- 6. Windows form uygulamasında bellek sızıntılarını bulmanın en iyi yolu nedir?
- 7. TabActivity'deki Sekmelerin sayısını bulmanın en iyi yolu nedir?
- 8. İki düğüm arasındaki döngüsel bir grafikte en uzun yolu nasıl bulabilirim?
- 9. models.py büyük olsun, onu kırmanın en iyi yolu nedir?
- 10. Yönergeler arasındaki iletişim kurmanın en iyi yolu
- 11. Büyük önek ağacını saklamanın en iyi yolu
- 12. Nesneyi opencv ile bulmanın en iyi yöntemi
- 13. Bir dosyanın başlangıcını C cinsinden kırpmanın en iyi yolu nedir?
- 14. Google App Engine'de göreli yollar bulmanın iyi bir yolu nedir?
- 15. Pandalar veri çerçevesindeki tüm değerleri toplamlamanın en iyi yolu nedir?
- 16. İki köşe arasında bir kenar bulmanın doğru yolu nedir?
- 17. İki TimeSpan nesnesini bölmenin en iyi yolu nedir?
- 18. Ana iş parçacığını engelleyen bir kod bulmanın en iyi yolu nedir?
- 19. Bir sınıf özniteliğinin sınıfını bulmanın en iyi yolu
- 20. İki değeri bir yöntemden döndürmenin en iyi yolu nedir?
- 21. GWT'de iki JavaScriptObject öğesini karşılaştırmanın en iyi yolu nedir?
- 22. Kitaplığı zenginleştirmeyi en iyi yolu scala'da nedir?
- 23. Tüm alt görünümleri kendinizden kaldırmanın en iyi yolu nedir?
- 24. Nesneleri kapsayıcılarda paylaşmanın en iyi yolu nedir?
- 25. C# 'da, bir DateTime dizisindeki boşlukları bulmanın en iyi yolu nedir?
- 26. Python'da özdeğerleri/vektörleri bulmanın en hızlı yolu nedir?
- 27. en iyi yolu
- 28. Grafikte 2 düğüm arasındaki tüm yollar
- 29. Listede bir öğeyi bulmanın en hızlı yolu?
- 30. Java yöntemlerini yeniden kullanmanın en iyi yolları
Eğer tam anlamıyla tüm yolları kastediyorsanız - 5000 düğüm noktasına ulaşmadan çok uzun bir kombinatoryal patlamaya gireceksiniz, çok az kenarlı bir grafikiniz olmadıkça –
Evet, tüm olası yolları bulmak yerine, tüm en kısa yollar, bu yüzden daha gerçekçi ve uygulanabilir hale gelir. Ek olarak, grafik tam bir tane olabilir. –
It * daha uygun olabilir, ancak sadece 100 düğümleri olan ancak herhangi iki düğüm arasındaki en kısa yolların sayısı inanılmaz büyük olacak şekilde grafik örnekleri ile ortaya çıkmak için yeterince kolaydır. Ayrıca, grafiğin eksiksiz olduğu şartı, neredeyse kesinlikle fizibiliteden geriye doğru bir adım atmaktadır. Bu, tüm düğümlerin yüksek valansı olduğunu ve patikaların patlamasına neden olan yüksek değerliliğe sahip olmasını sağlıyor. –