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.