Sistem Berbasis Pengetahuan
3 SKS
Eka Dyar W
Outline
 Inferensi II
 Forward chaining
 Backward chaining
Forward chaining
 disebut data-driven
 Rule akan dieksekusi jika premis (bagian dari
IF) terpenuhi
 Penalaran berawal dari semua fakta yang
diketahui untuk menuju ke satu konklusi
 Baik digunakan jika tree melebar dan tidak
dalam, memudahkan pencarian breadth first
(pencarian konklusi berproses level ke level)
Backward chaining
 Disebut juga goal-driven
 Pilih konklusi dan coba buktikan
kebenarannya dengan menganalisa evidence
/ premis yang mendukung konklusi tersebut
berdasarkan fakta yang diberikan
 Memudahkan pencarian depth first, tree yang
baik untuk depth first adalah yang menyempit
dan dalam
Pengkodean yang diperoleh saat
knowledge acquisition
• A1 = suhu tubuh >=
38°C
• A2 = pusing
• A3 = pilek
• A4 = batuk
• A5 = batuk yang terus
menerus dimalam hari
• A6 = nafas berbunyi
• P1 = demam biasa
• P2 = batuk biasa
• P3 = influensa/infeksi
virus
• P4 = batuk rejan
• P5 = infeksi saluran
nafas
Rule yang ada pada knowledge base
 R1 : IF A1 THEN P1
 R2 : IF A4 THEN P2
 R3 : IF (P1 or A2) and (P2 or A3) THEN P3
 R4 : IF P3 and A5 THEN P4
 R5 : IF P3 and A6 THEN P5
 Fakta-fakta yang diperoleh dari user adalah
demam, pusing, batuk dan batuk tersebut
lebih sering di malam hari (A1, A2, A4, A5 
benar
A1 A4
P1 P2A2 A3
P3A6
P5
A5
P4
Tree untuk rule tersebut
Algoritma Forward chaining
1. Catat semua fakta yang diinputkan oleh user
2. Catat semua rule yang bagian premisnya menggunakan fakta
yang sesuai ke dalam queue Q
3. Sampai tidak ada rule pada Q :
a. Analisa rule pertama pada Q
b. Jika premis tidak terpenuhi, hapus rule dari Q dan kembali ke a
c. Jika premis terpenuhi :
- eksekusi rule, catat konklusi dari rule
- Cari rule yang menggunakan konklusi tersebut sebagai
premis
- Jika rule belum ada pada Q, catat rule tersebut meskipun
premis tidak sepenuhnya terpenuhi.
- Hapus rule awal dari Q
1. Konklusi akhir diperoleh
Penyelesaian dengan forward chaining
1. Fakta dari user A1, A2, A3, A4, A5
2. Rule yang sesuai = R1, R2, R3, R4
3. Sampai tidak ada rule pada Q
Q R K
Iterasi 1 R1, R2, R3, R4 R1 P1
Iterasi 2 R2, R3, R4 R2 P2
Iterasi 3 R3, R4 R3 P3
Iterasi 4 R4 R4 P4
Algoritma backward chaining
1. Catat GOAL pada TOS (top of stack)
2. Catat semua rule yang memenuhi GOAL
3. Untuk setiap rule :
a. Jika semua premis terpenuhi, maka eksekusi rule untuk
mendapat konklusi, proses selesai
b. Jika sebuah premis tidak terpenuhi, cari rule yang menurunkan
nilai dari parameter premis tsb. Maka Jika ada, maka asumsi
parameter tsb adalah SUBGOAL, letakkan pada TOS.
c. Jika tidak ada, maka tanyakan kepada user apa nilai dari
parameter tsb. Jika nilai ini sesuai premis, lanjutkan pada
premis berikutnya. Jika premis tidak sesuai lanjutkan ke rule
berikutnya.
4. Jika semua rule sudah dianalisa dan semuanya gagal, maka
GOAL tidak ada. Hapus GOAL dari stack dan kembali ke langkah
2. Jika stack kosong, proses selesai
Penyelesaian dengan backward chaining
1. Goal pada TOS adalah P4 (batuk rejan) atau P5 (infeksi
saluran pernapasan)
2. Rule yang memenuhi goal = R4 dan R5
3. Eksekusi untuk R4
Known fact ()
a. –
b. premis 1 P3  menjadi goal baru pada TOS
a. rule yang memenuhi goal P3  R3
premis 1  P1 or A2  A2 (T)
premis 2  P2 or A3  P2  menjadi goal baru pada
TOS
a. rule yang memenuhi goal P2  R2
premis  A4 (T)
eksekusi R2 didapatkan premis 2 (T)
eksekusi R3 didapatkan P3 (T)
Premis 2  tidak ada rule yang menurunkan A5, tanyakan
ke user nilai dari A5  T
Eksekusi R4  T&T  P4
Stack kosong
Proses selesai
Kesimpulan P4(batuk rejan)
Forward atau backward ?
 Cek hubungan antara rule dengan fakta utk
menghasilkan konklusi
 Sekumpulan fakta  banyak konklusi  backward
chaining
 Sekumpulan hipotesis  banyak pertanyaan  forward
chaining
 Banyak cara utk mendapatkan sedikit konklusi 
forward chaining
 Sedikit cara untuk mendapatkan banyak konklusi 
backward chaining
Latihan
 Z1 IF x has hair THEN X is a mammal
 Z2 IF x gives milk THEN x is a mammal
 Z3 IF x has feathers THEN x is a bird
 Z4 IF x flies AND x lays eggs THEN x is a bird
 Z5 IF x is a mammal AND x eats meat THEN x
is a carnivore
 Z6 IF x is a mammal AND x has pointed teeth
AND x has claws AND x has forward pointing
eyes THEN x is a carnivore
 Z7 IF x is a mammal AND x has hoofs THEN x
is an ungulate
 Z8 IF x is a mammal AND x chews end THEN x
is an ungulate
 Z9 IF x is carnivore AND x has tawny color AND
x has dark spots THEN x is a cheetah
 Z10 IF x is a carnivore AND X has tawny color
AND x has black strips THEN x is a tiger
 Z11 IF x is an ungulate AND x has long neck
AND x has long legs AND x has tawny color
AND x has dark spots THEN x is a giraffe
 Z12 IF x is an ungulate AND x has white color
AND x has black strips THEN x is a zebra
 Z13 IF X is a bird AND x does not fly AND x has
long legs AND x has long neck AND x has
black and white THEN x is a ostrich
 Z14 IF x is a bird AND x does not fly AND x
swims AND x has black and white THEN x is
a penguin
 Z15 IF x is a bird AND x is a good flyer THEN x is
albatross
 Fakta dari user x :
 Gives milk
 Chews
 Has white color
 Has black strips
 Penyelesaian dengan forward dan backward
chaining ?
Minggu depan
 Implementasi forward dan backward chaining
Eka Dyar W eka.dyar@yahoo.com
Sekian

Pertemuan 6

  • 1.
  • 2.
    Outline  Inferensi II Forward chaining  Backward chaining
  • 3.
    Forward chaining  disebutdata-driven  Rule akan dieksekusi jika premis (bagian dari IF) terpenuhi  Penalaran berawal dari semua fakta yang diketahui untuk menuju ke satu konklusi  Baik digunakan jika tree melebar dan tidak dalam, memudahkan pencarian breadth first (pencarian konklusi berproses level ke level)
  • 4.
    Backward chaining  Disebutjuga goal-driven  Pilih konklusi dan coba buktikan kebenarannya dengan menganalisa evidence / premis yang mendukung konklusi tersebut berdasarkan fakta yang diberikan  Memudahkan pencarian depth first, tree yang baik untuk depth first adalah yang menyempit dan dalam
  • 5.
    Pengkodean yang diperolehsaat knowledge acquisition • A1 = suhu tubuh >= 38°C • A2 = pusing • A3 = pilek • A4 = batuk • A5 = batuk yang terus menerus dimalam hari • A6 = nafas berbunyi • P1 = demam biasa • P2 = batuk biasa • P3 = influensa/infeksi virus • P4 = batuk rejan • P5 = infeksi saluran nafas
  • 6.
    Rule yang adapada knowledge base  R1 : IF A1 THEN P1  R2 : IF A4 THEN P2  R3 : IF (P1 or A2) and (P2 or A3) THEN P3  R4 : IF P3 and A5 THEN P4  R5 : IF P3 and A6 THEN P5
  • 7.
     Fakta-fakta yangdiperoleh dari user adalah demam, pusing, batuk dan batuk tersebut lebih sering di malam hari (A1, A2, A4, A5  benar
  • 8.
    A1 A4 P1 P2A2A3 P3A6 P5 A5 P4 Tree untuk rule tersebut
  • 9.
    Algoritma Forward chaining 1.Catat semua fakta yang diinputkan oleh user 2. Catat semua rule yang bagian premisnya menggunakan fakta yang sesuai ke dalam queue Q 3. Sampai tidak ada rule pada Q : a. Analisa rule pertama pada Q b. Jika premis tidak terpenuhi, hapus rule dari Q dan kembali ke a c. Jika premis terpenuhi : - eksekusi rule, catat konklusi dari rule - Cari rule yang menggunakan konklusi tersebut sebagai premis - Jika rule belum ada pada Q, catat rule tersebut meskipun premis tidak sepenuhnya terpenuhi. - Hapus rule awal dari Q 1. Konklusi akhir diperoleh
  • 10.
    Penyelesaian dengan forwardchaining 1. Fakta dari user A1, A2, A3, A4, A5 2. Rule yang sesuai = R1, R2, R3, R4 3. Sampai tidak ada rule pada Q Q R K Iterasi 1 R1, R2, R3, R4 R1 P1 Iterasi 2 R2, R3, R4 R2 P2 Iterasi 3 R3, R4 R3 P3 Iterasi 4 R4 R4 P4
  • 11.
    Algoritma backward chaining 1.Catat GOAL pada TOS (top of stack) 2. Catat semua rule yang memenuhi GOAL 3. Untuk setiap rule : a. Jika semua premis terpenuhi, maka eksekusi rule untuk mendapat konklusi, proses selesai b. Jika sebuah premis tidak terpenuhi, cari rule yang menurunkan nilai dari parameter premis tsb. Maka Jika ada, maka asumsi parameter tsb adalah SUBGOAL, letakkan pada TOS. c. Jika tidak ada, maka tanyakan kepada user apa nilai dari parameter tsb. Jika nilai ini sesuai premis, lanjutkan pada premis berikutnya. Jika premis tidak sesuai lanjutkan ke rule berikutnya. 4. Jika semua rule sudah dianalisa dan semuanya gagal, maka GOAL tidak ada. Hapus GOAL dari stack dan kembali ke langkah 2. Jika stack kosong, proses selesai
  • 12.
    Penyelesaian dengan backwardchaining 1. Goal pada TOS adalah P4 (batuk rejan) atau P5 (infeksi saluran pernapasan) 2. Rule yang memenuhi goal = R4 dan R5 3. Eksekusi untuk R4 Known fact () a. – b. premis 1 P3  menjadi goal baru pada TOS a. rule yang memenuhi goal P3  R3 premis 1  P1 or A2  A2 (T) premis 2  P2 or A3  P2  menjadi goal baru pada TOS
  • 13.
    a. rule yangmemenuhi goal P2  R2 premis  A4 (T) eksekusi R2 didapatkan premis 2 (T) eksekusi R3 didapatkan P3 (T) Premis 2  tidak ada rule yang menurunkan A5, tanyakan ke user nilai dari A5  T Eksekusi R4  T&T  P4 Stack kosong Proses selesai Kesimpulan P4(batuk rejan)
  • 14.
    Forward atau backward?  Cek hubungan antara rule dengan fakta utk menghasilkan konklusi  Sekumpulan fakta  banyak konklusi  backward chaining  Sekumpulan hipotesis  banyak pertanyaan  forward chaining  Banyak cara utk mendapatkan sedikit konklusi  forward chaining  Sedikit cara untuk mendapatkan banyak konklusi  backward chaining
  • 15.
    Latihan  Z1 IFx has hair THEN X is a mammal  Z2 IF x gives milk THEN x is a mammal  Z3 IF x has feathers THEN x is a bird  Z4 IF x flies AND x lays eggs THEN x is a bird  Z5 IF x is a mammal AND x eats meat THEN x is a carnivore  Z6 IF x is a mammal AND x has pointed teeth AND x has claws AND x has forward pointing eyes THEN x is a carnivore
  • 16.
     Z7 IFx is a mammal AND x has hoofs THEN x is an ungulate  Z8 IF x is a mammal AND x chews end THEN x is an ungulate  Z9 IF x is carnivore AND x has tawny color AND x has dark spots THEN x is a cheetah  Z10 IF x is a carnivore AND X has tawny color AND x has black strips THEN x is a tiger  Z11 IF x is an ungulate AND x has long neck AND x has long legs AND x has tawny color AND x has dark spots THEN x is a giraffe
  • 17.
     Z12 IFx is an ungulate AND x has white color AND x has black strips THEN x is a zebra  Z13 IF X is a bird AND x does not fly AND x has long legs AND x has long neck AND x has black and white THEN x is a ostrich  Z14 IF x is a bird AND x does not fly AND x swims AND x has black and white THEN x is a penguin  Z15 IF x is a bird AND x is a good flyer THEN x is albatross
  • 18.
     Fakta dariuser x :  Gives milk  Chews  Has white color  Has black strips  Penyelesaian dengan forward dan backward chaining ?
  • 19.
    Minggu depan  Implementasiforward dan backward chaining
  • 20.
    Eka Dyar Weka.dyar@yahoo.com Sekian