Planning system dalam artificial intelligence merupakan algoritma untuk menyelesaikan suatu masalah dengan cara memilih jalur terbaik berdasarkan informasi heuristik yang tersedia
Planning dapat digunakan untuk menyelesaikan masalah The Blocks World
Pada The Blocks World terdapat beberapa operator dan predicates
Operator :
-
UNSTACK(A,B) : Mengambil Block A yang berada di atas Block B. Kondisi tangan harus kosong, tidak sedang mengangkat block apapun, dan tidak boleh terdapat block lain di atas Block A
-
STACK(A,B) : Meletakan Block A di atas Block B. Kondisi tangan harus sedang memegang Block A, dan tidak boleh ada block lain di atas Block B
-
PICKUP(A) : Mengambil Block A dari table dan memegangnya. Kondisi tangan harus tidak menggenggam block apapun dan tidak boleh ada block lain di atas Block A
-
PUTDOWN(A) : Menaruh Block A di atas table. Kondisi tangan harus sedang menggenggam Block A
Predicates :
-
ON(A,B) : Block A berada di atas Block B
-
ONTABLE(A) : Block A berada di atas table
-
CLEAR(A) : Tidak terdapat block apapun di atas Block A
-
HOLDING(A) : Tangan sedang menggenggam Block A
-
ARMEMPTY : Tangan dalam kondisi tidak menggenggam apapun (kosong)
CASE EXAMPLE :
Untuk menyelesaikan masalah dengan Planning, dapat menggunakan 2 cara yaitu dengan Linear Planning dan Constraint Posting (Non Linear Planning)
Linear Planning
Untuk memecahkan masalah tersebut, kita harus menuliskan predikat-predikat pada Start State dan Goal State secara berurutan, kemudian setiap predikat dihubungkan menggunakan operator
Constraints Posting (Non Linear Planning)
Masalah yang sulit dapat menciptakan interaksi antar goal, sehingga akan sulit jika diselesaikan menggunakan Linear Planning
Dalam Constraints Posting, beberapa subproblem dikerjaan dalam waktu yang bersamaan. Predikat yang digunakan pada Goal State hanya predikat ON