Classical Planning
Classical Planning
Kali ini, yang akan kita bahas adalah tentang Classical Planning.
Tujuan Planning adalah kita membuat sebuah computer berpikir apa yang harus ia lakukan dari awal (GOAL STATE), menuju tujuan akhir yang kita inginkan (GOAL STATE)
Ketika kita mendengar kata Planning di dunia AI, maka kita akan bermain dengan Block World.
Berikut adalah beberapa operator yang perlu kita ketahui dalam Block World:
- Unstack (A, B): Mengangkat balok A dari permukaan balok B, dimana posisi balok A berada diatas balok B, dan diatas permukaan balok A harus clear.
- Stack (A, B): Menaruh balok A ke atas permukaan balok B, dimana keadaan diatas permukaan balok B harus clear, dan balok A harus sudah berada di tangan robot.
- Pickup (A): Mengambil balok A dari tanah ke tangan robot, dimana balok A harus berada di atas tanah dan diatas permukaan balok A harus clear.
- Putdown (A): meletakkan balok A ke atas tanah, dimana posisi balok A sudah berada di tangan robot.
Berikut adalah beberapa predicates (kondisi) yang perlu kita pahami dalam Block World:
- ON (A, B): Balok A berada diatas balok B
- ONTABLE (A): Balok A berada diatas tanah
- CLEAR (A): Diatas permukaan balok A tidak ada balok lain
- HOLDING (A): Balok A berada di genggaman tangan robot
- ARMEMPTY: Tangan robot kosong (tidak memengang balok)
Di dalam Planning, terdapat dua jenis planning yaitu:
- Goal Stack Planning / Linear Planning
Pada metode Linear Planning, pertama-tama kita perlu mendefinisikan START STATE dan GOAL STATE nya itu ke dalam bentuk predicates (kondisi) yang valid. Kemudian, dilakukan dengan cara backward, dan dimulai dari paling kiri bawah. Setelah itu, selesaikan setiap langkah-langkah dari GOAL STATE dan akhirnya bisa berakhir di START STATE.
Contoh:
- Constraint Posting / Non Linear Planning
Sama seperti Linear Planing cara penyelesaiannya. Tetapi yang membedakan Goal Stack dengan Constraint Posting adalah GOAL STATE nya itu hanya perlu didefinisikan kedalam bentuk predicates ON(x,y), dimana GOAL STATE menjadi lebih sedikit kondisinya. Selain itu, didalam Constraint Posting juga perlu diperhatikan beberapa langkah yaitu:
- Step Addition: membuat langkah-langkah baru untuk rencana.
- Promotion: Menentukan satu diantara beberapa langkah yang mana harus dijalankan terlebih dahulu (priority proccess)
- Declobbering: Menambahkan langkap baru diantara kedua proses yang sedang berjalan.
- Simple Establishment: menempatkan nilai ke variabel, dalam rangka untuk memastikan prasyarat dari beberapa langkah.
- Separation – mencegah penugasan nilai-nilai tertentu ke variabel.
Contoh:
www.binus.ac.id