Coba jelasin Penyelesaian Masalah dari Logika pemrograman dong

Dalam kasus proposisional yang disederhanakan di mana program logika dan tujuan atom tingkat atas tidak mengandung variabel, penalaran mundur menentukan AND-OR pohon, yang merupakan ruang pencarian untuk memecahkan tujuan. Sasaran tingkat atas adalah akar pohon. Diberikan node mana pun di pohon dan klausa mana pun yang kepalanya cocok dengan node, ada sekumpulan node anak yang sesuai dengan sub-tujuan di badan klausa. Simpul anak ini dikelompokkan bersama oleh "AND". Himpunan anak-anak alternatif yang sesuai dengan cara-cara alternatif untuk memecahkan simpul dikelompokkan bersama oleh "OR".

Strategi pencarian apa pun dapat digunakan untuk mencari ruang ini. Prolog menggunakan strategi backtracking berurutan, last-in-first-out, di mana hanya satu alternatif dan satu sub-tujuan yang dipertimbangkan pada satu waktu. Strategi pencarian lainnya, seperti pencarian paralel, penelusuran mundur yang cerdas, atau pencarian pertama terbaik untuk menemukan solusi optimal, juga dimungkinkan.

Dalam kasus yang lebih umum, di mana sub-tujuan berbagi variabel, strategi lain dapat digunakan, seperti memilih sub-tujuan yang paling banyak diinstansiasi atau yang cukup diinstansiasi sehingga hanya satu prosedur yang berlaku. Strategi seperti itu digunakan, misalnya, di pemrograman logika konkuren.