Yakın zamanda Zoombinis'in The Logical Journey (Mantıksal Yolculuğu) ' nun yeniden çıkışını oynuyorum ve çeşitli bulmacaları çözebilecek bazı bilgisayar algoritmaları uygulamaya çalışıyorum. Kaptan Cajun'un feribot bulmacasına nasıl yaklaşacağım üzerine sıkıştım.
Tanıdık olmayanlar için Zoombini 4 özelliği olan bir yaratıktır: saç, gözler, burun ve ayaklar. Bu özelliklerin her birinin 5 olası değeri vardır; örneğin, bir Zoombini'nin ayakları tekerlekler, tekerlekli patenler, spor ayakkabılar, bir yay veya bir pervane olabilir. Dağınık saçlı, gözlüklü, yeşil burunlu ve spor ayakkabılı bir Zoombini örneği:
Feribot yapbozunda görev, bir feribotun 16 koltuğu üzerinde 16 Zoombinis koleksiyonu düzenlemektir. Düzenleme, ortogonal olarak komşu iki koltuğun en az bir özelliği paylaşan Zoombinis tarafından işgal edilmesi gerektiği kuralına uymak zorundadır. İki Zoombinis'in farklı saçları, farklı gözleri, farklı burunları ve birbirinden farklı ayakları varsa, yan yana oturamayabilirler.
Koltukların yerleşimi seviyeye göre değişir; Somutluk için, 16 koltuğun 4'e 4 ızgarada düzenlendiği "Çok Sert" seviyesine odaklanalım. İşte 15 Zoombinis'in yasal olarak oturduğu bir örnek, ancak rıhtımda duran son Zoombini son boş koltuğa yerleştirilemez, çünkü sağındaki Zoombini ile hiçbir özellik paylaşmaz:
16 tane var! Zoom 21 trilyon olası Zoombinis'in koltuklara atanması. Bu nedenle, yasal olup olmadığını görmek için mümkün olan her ödevi yürütmek pratik olmayacaktır. Bu soruna mantıklı yaklaşmak için kullanabileceğim bazı sezgisel yöntemler nelerdir?
Subgraph Isomorphism Problem
. Sorun, başka bir grafikte bir grafik bulmaktır. Sizin durumunuzda alt çizgi oturma (kenarlar bitişiktir) olurken, ana grafik zoombiniler olacaktır, burada bağlantılar paylaşılan bir özelliğin varlığı olacaktır. Genel olarak sorunun NP-tamamlanmış olduğunu ve genellikle geri izleme ile yapıldığını unutmayın, ancak bazı özel durumlar için (grafiğiniz çok iyi olabilir), polinom veya hatta doğrusal çözümler mümkündür.