FORWARD CHAINING (data driven)

Dalam forward reasoning, proses inferensi dimulai dari seperangkat data yang ada menuju ke kesimpulan. Pada proses ini akan dilakukan pengecekan terhadap setiap rule untuk melihat apakah data yang sedang diobservasi tersebut memenuhi premis dari rule tersebut. Apabila memenuhi, maka rule akan dieksekusi untuk menghasilkan fakta baru yang mungkin akan digunakan oleh rule yang lain. Proses pengecekan rule ini disebut sebagai rule interpretation. Pada sistem berbasis pengetahuan, rule interpretation (interpretasi rule) dilakukan oleh inference engine.

Fungsi masing-masing step untuk gambar di atas dijelaskan sebagai berikut:

  1. Pada step ini, setiap rule yang ada pada basis pengetahuan dibandingkan dengan fakta-fakta yang diketahui untuk mencari rule mana yang memenuhi (istilah ’memenuhi’ berarti: situasi, premis, atau antecedent bernilai benar).
  2. Conflict Resolution. Pada langkah pertama sangat mungkin dihasilkan suatu kondisi dimana beberapa rule Conflict Resolution bertugas untuk mencari rule mana yang memiliki prioritas tertinggi yang berpotensi untuk dieksekusi.
  3. Langkah terakhir dari proses forward reasoning adalah eksekusi (firing) dari rule. Proses ini menghasilkan dua kemungkinan, yaitu: fakta baru diturunkan dan ditambahkah fact base atau rule baru dihasilkan dan ditambahkan ke knowledge base.

BACKWARD CHAINING (goal driven)

Metode Backward Chaining memilih beberapa kesimpulan yang mungkin dan mencoba membuktikan kesimpulan tersebut dari bukti-bukti yang ada. Strategi pengambilan keputusan atau kesimpulan dengan pencocokan fakta atau pernyataan yang dimulai dari bagian sebelah kanan (THEN terlebih dahulu). Dengan kata lain, penalaran dimulai dari hipotesis terlebih dahulu, dan untuk menguji kebenaran hipotesis tersebut harus dicari fakta-fakta yang ada dalam basis pengetahuan.

Faktor-faktor yang mempengaruhi pemilihan Forward Chaining atau Backward Chaining:

  • Banyaknya keadaan awal dan tujuan. Jika keadaan awal lebih kecil dari tujuan, maka digunakan penalaran forward, jika tujuan lebih sedikit dari keadaan awal, maka dipilih penalaran backward.
  • Rata-rata jumlah node yang dapat diraih secara langsung dari suatu node. Lebih baik dipilih node yang memliki cabang lebih sedikit.
  • Apakah program butuh menanyai user untuk melakukan justifikasi proses penalaran?, jika ya, maka lebih baik dipilih arah yang memudahkan user.
  • Bentuk kejadian yang akan memicu penyelesaian masalah. Jika kejadian berupa fakta baru pilih forward. Jika kejadian berupa query pilih backward.