SORU
26 NİSAN 2012, PERŞEMBE


Kule savunma labirent (sınırlı duvarları ile en uzun labirent) oluşturma - yakın-optimal sezgisel?

Bir kule savunma oyunu, bir başlangıç, bir bitiş, ve duvarlar bir dizi bu yüzden olmak üzere bir ızgara var.

Image1

Düşman baştan en kısa yol duvarlardan geçmeden bitirmek için(genellikle ızgara kısıtlı değiller, ama basitlik aşkına hadi söylüyorlar. Her iki durumda da, çapraz hareket edemezler "delik")

Image2

Sorun(bu soru için en azından)yerkadarDüşmanları almak için yolunu uzatmak için K ek duvarlar. K örneğin,=14

Image3

Benim sezgi bu problem NP-zor olduğunu söylüyorböyle devam etmeyi umuyorumbiz bu yol işaretleri olmadan bitirmek için, ve belki de taşımadan önce ziyaret edilmesi gereken yol işaretleri dahil et.

Ama,orada herhangi bir iyi bir keşif vardıryakın-optimal çözüm?


[Düzenle]3* *ile ilgili bir soru attılar.

CEVAP
1 Mayıs 2012, Salı


Açgözlü bir yaklaşım var ve (ama yaklaşım faktörü bulamadım) yakınlarındaki için en uygun olduğunu düşünüyorum. Fikir basit olan hücreleri engellemelisinizkritiksenin Labirent yerine, Bu yerler normalde labirent bağlantısı için ölçmek. Bu bağlantı köşe bağlantı olarak görülebilir ve motivasyon minimum tepe noktası başlangıç yolunu ve son kesim bulma(s,f). Bundan sonra bazı kritik hücreleri kaldırabilirsiniz.

Algoritma başlamadan önce, labirent ızgara çift, muhabiri grafik bulmak için zaman ayırın. Şimdi asgari bulabilirsiniz(s,f)köşe, bu kesim her köşe incelemek, arasındaki maksimum uzunluk yola çıkarma nedenleri gibi tepe kaldırdıktan sonra, grafikteki kess,fya f nin minimum yolunda. yine asgari (s,f) köşe, ... bulmak kesilmiş ve bu k düğümleri ortadan kaldırmak için devam ediyor.

Sorun olduğunda istediğiniz Kaldır bir düğüm olan nedenler kesim arasında s,f, önlenmesi için bu ağırlık kesme düğümü olabildiğince yüksek, demek ilk hesaplama asgari (s,f) kesme, kesme sonucu sadece bir düğüm, ağırlıklı ve set ağırlığı için n^3, şimdi tekrar hesaplamak minimum sf kes emin tek kesim düğüm önceki hesaplama değil ait olduğu için yeni kesilmiş. Ama eğer s,f arasında sadece bir yol varsa (bazı tekrarlamalar sonra) geliştirebilirsin. Bu durumda herhangi bir kesme ait olmayan f s en kısa yol bir düğüm kaldırma gibi normal açgözlü algoritmalar kullanabilirsiniz. ondan sonra yine en az köşe kesme ile başa çıkabilirim.

Algoritma her adımda zaman çalışıyor:

min-cut   path finding for all nodes in min-cut
O(min cut)   O(n^2)*O(number of nodes in min-cut)

Ve çünkü sayısı düğümleri min kesemezsiniz olmak bir büyüktür O(n^2) çok çok kötü bir durum bu algoritma O(k)*n^4) ama normalde bazen işe yaramaz daha O(k)*n^3), çünkü normalde min-kesme algoritması hakim yol bulma, normalde, yol bulma yok alır O(n^2).

Ayrıca bu açgözlü seçim tavlama benzetimi algoritmaları için iyi bir motivasyon olabilir bence.


P. S: kesme kenarı asgari benzer asgari köşe kesme,ve max-flow/dak-kesme benzer bir yaklaşım gibi minimum köşe kesme uygulanabilir,sadece farz iki tepe noktası olarak her köşe,bir Vben,bir VÇ,demek giriş ve çıkışları,ayrıca yönetmen bir yönsüz grafik dönüştürme zor değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • TechSmartt

    TechSmartt

    29 Aralık 2010
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008