Artificial Intelligence – Planning System

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 :

planning1Untuk 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

planning2

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

planning3

www.binus.ac.id

Posted in Uncategorized | Leave a comment

Artificial intelligence – First Order Logic

First Order Logic merupakan logika yang digunakan untuk memecahkan suatu rangkaian argumen, apakah rangkaian argumen tersebut berniali TRUE atau FALSE

Pada First Order Logic, terdapat object, relation, dan function :

  • Object, yaitu hal-hal yang merupakan identitas suatu individu, seperti manusia, rumah, dan sebagainya
  • Relation, yaitu hubungan antara benda yang satu dengan benda yang lainnya
  • Function, yaitu suatu kondisi dari suatu object

Untuk mengerjakan First Order Logic, digunakan beberapa standar logic symbol seperti :

  • connectives : ~(negative), Λ (conjunction), V(disjunction), →(implication)
  • equality (=)
  • quantifiers : ∀(for all), ∃(there exists)

Case Example :

  1. Marcus was a Man
  2. Marcus was a Pompeian
  3. All Pompeian were Roman
  4. Caesar was a ruler
  5. All Roman were either loyal to Caesar or hate him
  6. Everyone is loyal to someone
  7. People only try to assassinate rulers they aren’t loyal to
  8. Marcus tried to assassinate Caesar
  9. All men are People

Prove that Marcus is not loyal to Caesar

Untuk membuktikannya, pertama kita harus mengubah argumen-argumen tersebut ke dalam First Order Logic :

  1. Man(Marcus)
  2. Pompeian(Marcus)
  3. ∀x : Pompeian(x) → Roman(x)
  4. Ruler(Caesar)
  5. ∀x : Roman(x) → loyal(x, Caesar) V hate(x, Caesar)
  6. ∀x : ∃x : loyal(x,y)
  7. ∀x : ∃x : People(x) Λ Ruler(y) Λ assassinate(x,y) → ~loyal(x,y)
  8. assassinate(Marcus, Caesar)
  9. ∀x : Man(x) → People(x)

Setelah selesai mengubahnya menjadi First Order Logic, untuk membuktikan argumen tersebut dapat menggunakan 2 metode yaitu Backward Chaining dan Resolution. Pada setiap metode, kita harus menghubungkan suatu argumen dengan argumen lainnya hingga mendapatkan kondisi NULL

Backward Chaining

fol-bc

Resolution

Pada metode resolution, semua argumen tidak boleh memiliki hubungan implikasi sehingga harus diubah menjadi :

  1. Man(Marcus)
  2. Pompeian(Marcus)
  3. ~Pompeian(x) V Roman(x)
  4. Ruler(Caesar)
  5. ~Roman(x) V loyal(x, Caesar) V hate(x, Caesar)
  6. loyal(x,y)
  7. ~People(x) V ~Ruler(y) V ~assassinate(x,y) V ~loyal(x,y)
  8. assassinate(Marcus, Caesar)
  9. ~Man(x) V People(x)

Kemudian, untuk melakukan pembuktian dengan metode Resolution kita harus membuat negasi dari argumen yang ingin dibuktikan, kemudian kita pasangkan dengan argumen lain yang memiliki negasinya

fol-r

www.binus.ac.id

Posted in Uncategorized | Leave a comment

TESTING BRO….

hai hai semua….

Posted in Uncategorized | Leave a comment