Saya telah memainkan rerelease The Logical Journey of the Zoombinis baru-baru ini, dan mencoba menerapkan beberapa algoritma komputer yang dapat menyelesaikan berbagai teka-teki. Saya terjebak pada cara mendekati teka-teki kapal feri Kapten Cajun.
Bagi mereka yang tidak terbiasa, Zoombini adalah makhluk dengan 4 atribut: rambut, mata, hidung, dan kaki. Masing-masing atribut tersebut memiliki 5 nilai yang memungkinkan; misalnya, kaki Zoombini dapat berupa roda, sepatu roda, sepatu kets, pegas, atau baling-baling. Berikut adalah contoh Zoombini dengan rambut berantakan, kacamata, hidung hijau, dan sepatu kets:
Dalam puzzle kapal feri, tugasnya adalah mengatur koleksi 16 Zoombinis di 16 kursi kapal feri. Pengaturan ini harus mematuhi aturan bahwa setiap dua kursi yang bertetanggaan secara orthogonal harus ditempati oleh Zoombinis yang memiliki setidaknya satu fitur. Jika dua Zoombinis memiliki rambut yang berbeda, mata berbeda, hidung berbeda, dan kaki berbeda satu sama lain, mereka mungkin tidak duduk bersebelahan.
Susunan kursi berubah berdasarkan level; untuk konkret, mari kita fokus pada level "Sangat Keras", di mana 16 kursi diatur dalam kotak 4-oleh-4. Berikut adalah contoh di mana 15 Zoombini telah duduk secara legal, tetapi Zoombini akhir yang berdiri di dermaga tidak dapat ditempatkan di kursi kosong terakhir, karena ia tidak akan berbagi fitur dengan Zoombini di sebelah kanannya:
Ada 16! ≈ 21 triliun kemungkinan tugas Zoombinis untuk kursi. Jadi hanya menjalankan setiap tugas yang mungkin untuk melihat apakah itu legal tidak akan praktis. Apa beberapa heuristik yang mungkin saya terapkan untuk mendekati masalah ini secara masuk akal?
Subgraph Isomorphism Problem
. Masalahnya adalah menemukan satu grafik di grafik lain. Dalam kasus Anda, subgraph akan menjadi tempat duduk (tepi adalah kedekatan), sedangkan grafik induk akan menjadi zoombinis, di mana koneksi akan menjadi keberadaan sifat bersama. Perhatikan bahwa secara umum masalahnya adalah NP-lengkap dan biasanya dilakukan dengan menelusuri ulang juga, namun untuk beberapa kasus khusus (yang grafiknya mungkin sangat baik), solusi polinomial atau bahkan linear mungkin.