Membangun pemecah 8 teka-teki
8-puzzle adalah varian dari 15-puzzle. Bisa di cek di https://en.wikipedia.org/wiki/15_puzzle. Teka-teki tersebut disajikan secara acak grid dan tujuan Anda adalah mengembalikannya ke konfigurasi asli yang dipesan. Anda bisa memainkan untuk membiasakan diri dengannya di http://mypuzzle.org/sliding.
Disini akan menggunakan algoritma A * untuk menyelesaikan masalah ini. Ini adalah algoritma yang digunakan untuk mencari jalur ke solusi dalam grafik. Algoritma ini merupakan gabungan dari algoritma Dijkstra dan pencarian terbaik pertama. Alih-alih menebak secara membabi buta ke mana harus pergi selanjutnya, A * algoritma memilih salah satu yang terlihat paling menjanjikan. Di setiap node, kami membuat daftar semua kemungkinan dan kemudian pilih satu dengan biaya minimal yang dibutuhkan untuk mencapai tujuan.
Mari kita lihat bagaimana mendefinisikan fungsi biaya. Pada setiap node, kita perlu menghitung biayanya. Ini cost pada dasarnya adalah jumlah dari dua biaya - biaya pertama adalah biaya untuk sampai ke node saat ini dan biaya kedua adalah biaya untuk mencapai tujuan dari node saat ini.
Kami menggunakan penjumlahan ini sebagai heuristik kami. Seperti yang bisa kita lihat, biaya kedua pada dasarnya adalah memperkirakan itu tidak sempurna. Jika ini sempurna, maka algoritma A * akan menemukan solusinya segera. Tapi biasanya tidak demikian. Butuh beberapa waktu untuk menemukan jalan terbaik menuju solusi.
Tetapi A * sangat efektif dalam menemukan jalur yang optimal dan merupakan salah satu yang paling populer teknik di luar sana.
Mari gunakan algoritma A * untuk membangun pemecah 8 teka-teki. Ini adalah varian dari solusi yang diberikan di perpustakaan simpleai.
1. Buat file Python baru dan ketik kode berikut:
2. Hasil output akan nampak pada terminal;
Referensi:
- Prateek Joshi. 2017. Artificial Intelligence with Python-Build real-world Artificial Intelligence applications with Python to intelligently interact with the world around you. Birmingham, Mumbai.
0 Komentar