2009-07-04 14 views
9

Algoritma Giriş kitabındaki breadth-first search algoritmasını okudum ve algoritmayı kağıt üzerinde simüle ettim. Şimdi yapmak istediğim şey, ekstra uygulama için kodda uygulamak.Grafik teorisi algoritmalarını uygulamada etkili bir yol

sıfırdan ( adjacency list, "renk", "mesafe" ve "üst" diziler) ama sonra Boost grafik gibi orada şu anda grafik kütüphaneleri olduğunu hatırladı tüm veri yapılarının uygulanması düşünüyordum

kütüphanesi ve Python'da başka bir graph APIs. Ayrıca, UVA ve Sphere Judge Online ile ilgili bazı BFS ile ilgili sorunları aramayı denedim, ancak hangi sorunların BFS çözümü gerektireceğini anlayamıyorum.

Sorum (ben, vs DFS, Dijkstra, Floyd-Warshall uygulamak istediğinizde sadece BFS ile sınırlı değildir, aynı zamanda yararlı bir gelecek) bu grafiği algoritmaları uygulamaya en acısız bir yol olacağını budur. Uygulama problemi olan siteler kabul edilir.

cevap

9

Kişisel olarak, bunları anlamanın en iyi yolunun, grafik sunumunu sıfırdan başlayarak gerçekleştireceğini düşünüyorum.

Bir yandan, 'u öğrendiğiniz gerçek uygulama uyarılarını gösterebiliriz. Neden veya neden olmasın belirli bir algoritma ilginç/iyi/verimli/ne olursa olsun. Öte yandan, grafiklerin ve gerçek hayattaki kullanımının, imaları (tekrarlama, performans/ölçeklenebilirlik, uygulamalar, alternatifler, ...) dahil, aşağıdan yukarıya yaklaşımla daha kolay anlaşıldığını düşünüyorum.

Ama belki de bu sadece benim. Yukarıdaki çok kişisel bir zevktir.

1

Sorunuzu ilginç buldum, biraz araştırdım ve JGraphEd'u buldum.

Tüm grafik algoritmalarını kapsamaz ancak deneme için iyi bir araç gibi görünür.

1

Balpha'ya katılıyorum. Algoritmaları gerçekten öğrenmenin ve anlamanın en iyi yolu, uygulamayı yapmaktır. Sadece bir algoritma seçin ve uygulayın. Takılı kaldığınız veya emin olmadığınız bir noktaya ulaştığınızda, mevcut birkaç örneğe bakın. Daha sonra, kendi düşüncenizi, sadece teklif edilenleri kabul etmek yerine, başkalarının anlayışıyla bir anlayış konumundan karşılaştırabileceksiniz.

Neyi istediğinizi öğrendikten sonra, anlayışınızı sağlamlaştırmanın en iyi yolu öğretmeyi veya başka birine anlatmayı denemektir. Sizi dinlemeye istekli bazı kişileriniz olabilir ya da en azından, üzerinde çalışmış olduğunuz algoritma için yeni bir blog girişi yazabilirsiniz. Eğer "ağrısız" arıyorsanız

Ama, belki de burada ;-)

+0

sadece kayıt için, alıntı civarında olmalıdır " En ağrısız " – Steve

+0

Ben düzeltilmiş duruyorum. Birçok özür. – user108687

0

This site could help you

Eğer acm problemset her sorunun tanımı var tamamen algoritmaların açık kalmalıdır. Her problemin kategorisini görebilir ve çözmek için ipucu verebilirsin. Sadece grafikle ilgili sorunlara göz atın. İyi tavsiyeler, bu ipuçlarını sadece problemi çözmeyi denediyseniz ve başarısız olursanız kullanmaktır.