Bir labirentten çıkmayı garanti eden adımlar


14

4 komut "yukarı / aşağı / sağa / sola hareket" verebileceğiniz 2 boyutlu bir labirent verildi. Labirenti bilmek ama kişinin nerede olmadığı, labirentten çıkmayı garanti eden minimum komut sırasını nasıl bulabilirim? Labirentten nereden başlasanız da çalışacak tek bir komut dizisi arıyorum.

Ortağımızın sağında bir duvar varken "sağa hareket et" komutu verilirse, sadece olduğu yerde kalacağını varsayalım.

Başka bir deyişle, bize bir labirent verilir ve bir dizi komut seçmeliyiz. Ardından, ortağımız labirentte bir yere yerleştirilecek ve önceden seçtiğimiz komutların sırasını takip edecek. Bu dizinin, ortağımızın başlangıçta nereye yerleştirildiğine bakılmaksızın ortağımızın kaçmasını sağlamak istiyoruz. İzin verilen komutların koşullu ifadeleri olmadığından, eşinize bağlı olarak farklı bir sırayı izleyemediklerini unutmayın.

Labirent bir açıklama verilen böyle bir dizi oluşturmak için bir polinom-zaman algoritması var mı?

Yuval Filmus, bu durumun senkronize edici bir kelime probleminin özel bir durumu olduğunu ve evrensel çapraz dizilerle ilgili olabileceğini belirtiyor. Ayrıca alakalı görünen bir makale buldum:

Eşzamanlı Labirent Çözme Sorunu . Stefan Funke, André Nusser, Sabine Storandt. AAAI 2017.

Ne yazık ki genel grafikler için bu çözülmemiş bir sorun gibi görünüyor, ancak bu özel durum için iyi bir algoritma olup olmadığını merak ediyorum. Bir aday yaklaşımı buldum: Her pozisyonu çıkmak için gereken minimum adım sayısı ile etiketleyin ve labirentteki her aracıyı takip edin. Bu şekilde bir A * araması yapmak mümkün olabilir.


Yorumlar uzun tartışmalar için değildir; bu görüşme sohbete taşındı .
Ayrık kertenkele

Eppstein'ın monotonik otomata stratejisi, durumları kümelendirmektir, böylece tam güç durum kümesinde bir yol aramak yerine, yalnızca polinom olarak çok köşeye sahip bir grafikte bir yol arar. Düşünebileceğim 2D aralıklarının en doğal genellemesi dışbükey gövdedir, ancak maalesef sayılarının polinom olarak büyüdüğü açık değildir .
Peter Taylor

Yanıtlar:


-1

Duvar izlemesini sabit bir Kardinal yön dizisi olarak kodlayamazsınız. Seçenekler, etrafınızdaki duvarlara bağlıdır, bu da soru tarafından özellikle izin verilmez.
Curtis F

En kısa yolu biliyorsanız, "sola, sonra düz, sonra ..." olarak kodlayabilirsiniz. En kısa yolu bilmiyorsanız, en kısa yol için bu tür talimatlar veremezsiniz. Bir yol bilmiyorsanız, çıkmak için yol tarifi veremezsiniz.
vonbrand
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.