Rabu, 18 Januari 2017

Forward Chaining (Pelacakan ke depan)

Kadang disebut:data-driven karena inference engine menggunakan informasi yang ditentukan oleh user untuk memindahkan ke seluruh jaringan dari logika ‘AND’ dan ‘OR’ sampai sebuah terminal ditentukan sebagai objek. Bila inference engine tidak dapat menentukan objek maka akan meminta informasi lain. Aturan (Rule) di mana menentukan objek, membentuk path (lintasan) yang mengarah ke objek. Oleh karena itu, hanya satu cara untuk mencapai satu objek adalah memenuhi semua aturan.Pencocokan fakta atau pernyataan dimulai dari bagian sebelah kiri (IF) dulu. Dengan perkataan lain, penalaran dimulai dari fakta terlebih dahulu untuk menguji kebenaran hipotesa.
  1.  Contoh-contoh aturan
No.
Aturan
R-1
R-2
R-3
R-4
R-5
R-6
R-7
R-8
R-9
R-10
IF A & B THEN C
IF C THEN D
IF A & E THEN F
IF A THEN G
IF F & G THEN D
IF G & E THEN H
IF C & H THEN I
IF I & A THEN J
IF G THEN J
IF J THEN K
Pada tabel di atas ada 10 aturan (rule) yang tersimpan dalam basis pengetahuan. Fakta awal yang diberikan hanya : A & E (yaitu berarti A dan F bernilai benar). Hipotesanya adalah apakah K bernilai benar ? Untuk itu dilakukan langkah-langkah inferensia sebagai berikut :
    • Start dari R-1. A merupakan fakta sehingga bernilai benar, sedangkan B belum diketahui kebenarannya, sehingga C pun belum diketahui kebenarannya. Oleh karena itu pada R-1 kita tidak mendapatkan informasi apapun. Sehingga kita menuju ke R-2.
    • Pada R-2 juga sama kita tidak dapat memastikan kebenaran D karena C belum diketahui apakah benar atau salah sehingga kita tidak mendapatkan informasi apapun , sehingga kita menuju ke R-3.
    • Pada R-3 A dan E adalah fakta sehingga jelas benar. Dengan demikian F sebagai konsekuensi juga benar. Dari sini kita mendapat fakta baru yaitu F, tetapi karena F bukan hipotesa maka langkah diteruskan ke R-4
    • Pada R-4 A adalah fakta berarti jelas benar, sehingga G sebagai konsekuen juga benar. Jadi terdapat fakta baru yaitu G, tetapi G bukan hipotesa sehingga langkah diteruskan ke R-5.
    • Pada R-5 F dan G benar berdasarkan aturan R-3 dan R-4, sehingga D sebagai konsekuen juga benar. Terdapat fakta baru yaitu D, tetapi D bukan hipotesa sehingga diteruskan ke R-6.
    • Pada R-6, E dan G benar berdasarkan fakta dan R-4, maka H benar. Sehingga terdapat fakta baru yaitu H, tetapi H bukan hipotesa, sehingga diteruskan ke R-7.
    • Pada R-7, karena C belum diketahui, maka I juga belum dapat diketahui kebenarannya, sehingga kita tidak mendapatkan informasi apapun. Diteruskan ke R-8
    • Pada R-8, meskipun A benar karena fakta tetapi I belum diketahui, sehingga J juga belum dapat diketahui kebenarannya. Diteruskan ke R-9.
    • Pada R-9, G benar menurut R-4, sehingga konsekuennya J juga benar, tetapi J bukan hipotesa, maka diteruskan ke R-10.
    • Pada R-10, K benar karena J benar menurut R-9. Karena K merupakan hipotesa yang dibuktikan maka selesai.
      Secara diagram dapat digambarkan sebagai berikut :

      Oval: K

Oval: GOval: JOval: A               R-4                 R-9               R-10
Oval: F                        R-5
Oval: DOval: HOval: E     R-3                               R-6





Backward Chaining (Pelacakan kebelakang)


Merupakan kebalikan dari forward chaining dimana mulai dengan sebuah hipotesa (sebuah objek) dan meminta informasi untuk meyakinkan atau mengabaikan. Backward chaining inference engine sering disebut: ‘Object-Driven/Goal-Driven‘. Melalui penalaranya dari sekumpulan hipotesis menuju fakta-fakta yang mendukung tersebut, jadi proses pelacakan berjalan mundur dimulai dengan menentukan kesimpulan yang akan dicari baru kemudian fakta-fakta pembangun kesimpulan atau a Goal Driven. Atau dengan kata lain pencocokan fakta atau pernyataan dimulai dari sebelah kanan (THEN) dulu.
  1. Kita lihat lagi tabel aturan sebelumnya. Terlihat ada 10 aturan yang tersimpan dalam basis pengetahuan. Fakta awal A dan E. Hipotesa adalah K. Langkah-langkahnya adalah :
    • Pertama-tama dicari terlebih dahulu mulai dari R-1 aturan yang memiliki konsekuen K, dan ternyata ada di R-10. Dari R-10, untuk membuktikan K benar harus dibuktikan dahulu bahwa J benar.
    • Dicari aturan yang mempunyai J sebagai konsekuen mulai dari R-1 dan ternyata di R-8. Pada R-8 A benar tetapi I belum diketahui kebenarannya, maka mulai R-1 perlu dicari aturan dengan konsekuen I yaitu di R-7.
    • Untuk membuktikan I benar di R-7, perlu dibuktikan C dan H benar. Untuk itu dicari aturan dengan konsekuen C yaitu di R-1.
    • Untuk membuktikan C benar di R-1 haruslah A dan B benar. A jelas benar karena fakta, tetapi B belum diketahui kebenarannya, dan dalam basis pengetahuan tidak ada aturan yang konsekuennya B. Dengan demikian penalaran ini tidak bisa membuktikan kebenaran K. Namun demikian, masih punya alternatif lain untuk melakukan penalaran, yaitu dengan backtracking.
    • Backtracking. Diulangi lagi dengan langkah dengan pembuktian kebenaran C dengan mencari aturan lain yang konsekuennya C. Ternyata tidak ditemukan.
    • Lakukan backtracking lagi dengan mencari aturan dengan konsekuen I, ternyata tidak ada.
    • Lakukan backtracking lagi mencari aturan dengan konsekuen J, ditemukan di R-9, tetapi harus membuktikan bahwa G benar, maka dicari aturan dengan konsekuen G yaitu di R-4
    • R-4, A adalah fakta jadi jelas benar maka G juga benar. Jadi berdasarkan penalaran ini dapat dibuktikan bahwa hipotesa K benar.
      Oval: COval: IOval: JOval: AOval: KR-10                   



Oval: BOval: HOval: A                                           R-8                    R-7                R-1


                   Gagal

                      R-10                  R-9                      R-4             fakta

Oval: AOval: GOval: JOval: K          

                  Sukses.



Contoh : Misal diketahui sistem pakar dengan aturan-aturan sbb :

R-1      : IF suku bunga turun THEN harga obligasi naik.

R-2      : IF suku bunga naik THEN harga obligasi turun.

R-3      : IF suku bunga tidak berubah THEN harga obligasi tidak

              berubah.

R-4      : IF nilai dolar naik THEN suku bunga turun.

R-5      : IF nilai dolar turun THEN suku bunga naik.

R-6      : IF harga obligasi turun THEN beli obligasi.

Sekarang apabila diketahui bahwa nilai dolar turun, maka untuk memutuskan apakah akan membeli obligasi atau tidak, dapat ditunjukkan sebagai berikut :

 Forward Chaining (Pelacakan ke depan/Maju). Dari fakta nilai dolar turun,berdasarkan R-5 diperoleh bahwa suku bunga naik, dari R-2 diperoleh suku bunga naik menyebabkan harga obligasi turun, kemudian dengan R-6 jika harga obligasi turun, maka beli obligasi. Jadi kesimpulan beli obligasi.






 Nilai Dolar Turun



                                                    





Suku bunga naik
 

                                                    R-5










Harga obligasi turun
 

                                                    R-2






                                                    R-6






 Beli obligasi




Backward Chaining (Pelacakan kebelakang/Mundur). Berangkat dari membeli obligasi, dengan R-6 diperoleh anteseden harga obligasi turun. Dari R-2 dapat dibuktikan bahwa harga obligasi turun bernilai benar jika suku bunga naikbernilai benar. Dari R-5, suku bunga naik memang bernilai benar karena diketahui fakta bahwa nilai dolar turun.











Suku bunga naik
 

                                                           R-5 










Harga obligasi turun
 

                                                       R-2










Beli obligasi
 

                                                   R-6