com
Pertanyaan
Fakta
PengetahuanBasis Peng
guna
Kesimpulan
Pada dasarnya, ada dua filosofi yang berbeda dari forward chaining. Dalam satu, kami mengirimkan semua data
yang diketahui ke sistem pakar pada awal sesi konsultasi. Pada pendekatan kedua, kami menyediakan sistem pakar
dengan hanya elemen data spesifik yang diminta selama konsultasi. Kedua pendekatan tersebut memiliki kelebihan
dan kekurangannya masing-masing. Pendekatan pertama sering bekerja dengan baik ketika sistem pakar tertanam
dalam beberapa proses otomatis dan menerima datanya langsung dari database penduduk komputer-atau dari satu
set sensor. Pendekatan kedua mencari ke mengurangi jumlah data yang diminta untuk itu mutlak diperlukan untuk
mencapai suatu kesimpulan. Jika pembuatan data membutuhkan waktu dan biaya yang lama, filosofi khusus ini bisa
sangat menarik. Prosedur kami, yang akan dijelaskan, akan menggunakan pendekatan yang terakhir.
Mari kita pertimbangkan hanya satu algoritma yang dengannya prosedur pencarian rantai maju dapat dilakukan.
Untuk lebih memahami dan menghargai algoritme, kami akan menyajikannya dalam bentuk yang memungkinkan
implementasi manual. Tentu saja, sebelum implementasi algoritme, diasumsikan bahwa aturan, nomor aturan, dan
petunjuk terkait (yaitu, kueri pengguna) untuk setiap atribut telah terdaftar. Selanjutnya, ingatlah bahwa kita masih
berurusan dengan basis aturan deterministik.
3. Pemindaian aturan dan periksa konvergensi. Periksa tabel Status Aturan/Premis. Jika tidak ada aturan yang aktif,
STOP Jika tidak, pindai klausa premis kumpulan aturan aktif untuk semua kemunculan atribut di bagian atas
tabel Antrean Atribut, dan catat setiap perubahan status klausa premis kumpulan aturan aktif.
(a)Jika premis2 aturan apa pun salah, lalu tandai aturan terkait sebagai dibuang. Ulangi ini untuk semua aturan
yang memiliki premis salah. Setelah selesai, lanjutkan ke langkah 3b.
(b)Jika premis3aturan apa pun benar, lalu tandai aturan terkait sebagai dipicu dan tempatkan atribut
kesimpulannya (dan nomor aturan) di bagian bawah tabel Atribut-Antrian. Ulangi ini untuk semua aturan
yang memiliki premis yang benar. Setelah selesai, lanjutkan ke langkah 3c.
(c)Jika tidak ada aturan yang saat ini di dipicu status (yaitu, melalui pemeriksaan tabel Status Aturan),
lanjutkan ke langkah 5. Jika tidak (yaitu, jika satu atau lebih aturan dipicu), lanjutkan ke langkah 4.
4. Penembakan aturan. Coret atribut paling atas pada tabel Atribut-Antrian. Ubah status aturan yang terkait
dengan atribut paling atas baru dari dipicu menjadi diaktifkan. Tempatkan kesimpulan yang terkait dengan
aturan yang diaktifkan di bagian bawah tabel Memori Kerja. Kembali ke langkah 3.
5. Status antrian. Coret atribut paling atas pada tabel Attribute-Queue dan lanjutkan ke langkah 6.
6. Pemeriksaan konvergensi dan penandaan aturan. Pindai kumpulan aturan aktif untuk menemukan aturan aktif
yang tidak ditandai. Jika tidak ada aturan seperti itu yang dapat ditemukan, STOP Jika tidak, tandai aturan
pertama yang ditemukan (yaitu, dalam tabel Status Aturan/Premis) dan lanjutkan ke langkah 7.
7. Pertanyaan. Untukaturan yang paling baru ditandai, kueri pengguna untuk nilai atribut di salah satu klausa premis
gratis aturan. Jika pengguna memiliki respons, lanjutkan ke langkah 8. Jika tidak (yaitu, jika pengguna tidak
memiliki respons atau jika atribut tidak memiliki prompt terkait), lanjutkan langkah ini untuk semua klausa
premis bebas yang tersisa dari aturan yang ditandai. Jika semua klausa tersebut telah diperiksa tanpa tanggapan
pengguna, kembali ke langkah 6.
8. Penghapusan tanda aturan. Tempatkan atribut terkait (dan nomor aturan) di atas tabel Atribut-Antrian.Tempatkan
juga atribut ini, ditambah nilainya, di bagian bawah tabel Working Memory. Hapus tanda aturan yang paling
baru ditandai dan kembali ke langkah 3.
1Pilihan,
sejauh menyangkut algoritma ini, dari premisatribut yang dipilih adalah arbitrer. Kita hanya harus menjadi
sukarelawan setidaknya satu bagian data sebelum proses inferensi dapat dimulai.
2Dengan "premis", kami mengacu pada seluruh premis aturan, yang mungkin terdiri dari beberapa klausa premis.
3Komentar yang sama seperti untuk catatan kaki 2, di atas.
4Kami akan menggunakan set aturan yang relatif tidak efisien ini (ingat Gambar 5.3) hanya untuk mengilustrasikan algoritma.
Kita juga perlu mengaitkan prompt untuk semua atribut yang tidak muncul dalam klausa kesimpulan. Perintah ini tercantum
di bawah ini:
• Jenis mesin: "Apakah mesin pesawat jet atau baling-baling didorong?"
• Posisi sayap: "Apakah sayap diposisikan tinggi atau rendah di badan pesawat?"
• Tonjolan: "Di mana, di badan pesawat, ada tonjolan yang diucapkan?"
Jadi ada empat aturan dengan satu, dua, tiga, dan tiga klausa premis per aturan, masing-masing. Tabel awal yang
terkait dengan set aturan produksi ini ditunjukkan pada Tabel 6.1.
Tabel 6.1
Tabel awal untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U (1)-1 FR
(2) A, U (2)-1 FR
(2)-2 FR
(3) A, U (3)-1 FR
(3)-2 FR
(3)-3 FR
(4) A, U (4)-1 FR
(4)-2 FR
(4)-3 FR
Seperti yang dapat dilihat, semua aturan aktif (A) dan tidak bertanda (U) sementara semua klausa premis tidak
ditentukan atau bebas (FR); dan dengan demikian kita telah menyelesaikan langkah 1 dari algoritma forward
chaining. Pindah ke langkah 2, kita harus memulai proses inferensi dengan menetapkan nilai ke premis tertentu
atribut, di mana atribut yang dipilih tidak muncul dalam klausa kesimpulan apa pun. Langkah 2 agak mirip dengan
memutar kunci kontak mobil; berfungsi untuk memulai proses inferensi. Meneliti set aturan, kita melihat bahwa
atribut tipe mesin, posisi sayap, dan tonjolan adalah semua kemungkinan. Mari kita pilih jenis mesin secara
sewenang-wenang untuk memulai proses. Kita kemudian harus menetapkan nilai ke tipe mesin atribut. Hanya ada
dua nilai, jet atau baling-baling. Untuk menentukan nilai mana yang akan ditetapkan, kita harus mengasumsikan
jenis pesawat tertentu. Membiarkan
Dicetak untuk Proyek Shell Sistem
Pakar yang disutradarai
oleh
kami berasumsi bahwa pengguna telah melihat C5A. Dalam hal ini, nilai untuk jenis mesin akan menjadi jet. Jadi,
kami menempatkan tipe mesin atribut di bagian atas tabel Atribut-Antrian dan juga menempatkan atribut ini,
ditambah jet nilai, pada tabel Memori Kerja. Hasilnya ditunjukkan pada Tabel 6.2.
Kami sekarang melanjutkan ke langkah 3. Karena ada aturan aktif (semuanya sebenarnya aktif), kami tidak
dapat menghentikan algoritme. Jadi kami memindai klausa premis dari kumpulan aturan aktif (aturan 1
hingga 4) mencari semua kemunculan tipe mesin atribut. Atribut ini muncul di klausa premis dari semua
aturan di mana, untuk aturan 1, klausa premis pertama sekarang salah dan, untuk sisa aturan, klausa premis
pertama mereka benar. Kami memasukkan informasi ini dalam kolom klausa premis dari tabel Status
Aturan/Premis. Pindah ke langkah 3a, kita melihat bahwa aturan 1 salah
Tabel 6.2
Kumpulan tabel kedua untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U (1)-1 FR
(2) A, U (2)-1 FR
(2)-2 FR
(3) A, U (3)-1 FR
(3)-2 FR
(3)-3 FR
(4) A, U (4)-1 FR
(4)-2 FR
(4)-3 FR
Tabel 6.3
Kumpulan tabel ketiga untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U, D (1)-1 FR, FA
(2) A, U (2)-1 FR, TU
(2)-2 FR
(3) A, U (3)-1 FR, TU
(3)-2 FR
(3)-3 FR
(4) A, U (4)-1 FR, TU
(4)-2 FR
(4)-3 FR
Kami sekarang mencoret atribut paling atas (yaitu, jenis mesin) pada tabel AttributeQueue dan melanjutkan ke langkah 6.
Pada langkah 6, pertama-tama kita memindai set aturan aktif untuk setiap aturan yang tidak ditandai. Aturan 2, 3, dan 4
semuanya aktif dan tidak ditandai. Kami menandai yang pertama (yaitu, aturan 2) dan melanjutkan ke langkah 7. Hasil
tindakan yang terlibat dalam langkah 5 dan 6 ditunjukkan pada Tabel 6.4.
Pada langkah 7, kita harus meminta masukan dari pengguna. Aturan yang paling baru ditandai adalah aturan 2 dan
satu-satunya klausa premis gratis adalah yang kedua. Karena ada prompt untuk klausa ini, kami bertanya kepada
pengguna: "Apakah sayap diposisikan tinggi atau rendah di badan pesawat?" Karena kami berasumsi bahwa
pesawat tersebut adalah C5A, pengguna akan menjawab dengan jawaban, "tinggi". Dengan demikian kita pindah ke
langkah 8.
Pada langkah 8, kami menempatkan posisi sayap atribut (dan menentukan bahwa ini dari aturan 2) di atas Atribut-Meja
antrian. Kami menempatkan atribut yang sama dan nilainya (yaitu, tinggi) di bagian bawah tabel Memori Kerja. Kami
kemudian menghapus tanda aturan 2 dan kembali ke langkah 3. Pada langkah 3, kami mencatat bahwa masih ada aturan
aktif dan dengan demikian kami melanjutkan untuk memindai set aturan aktif (aturan 2 hingga 4) untuk semua kemunculan
posisi sayap atribut. Karena posisi sayap diketahui tinggi, kita perhatikan bahwa premis 2 dari aturan 2 salah sedangkan
premis kedua dari aturan 3 dan 4 benar. Pindah ke langkah 3a, kita melihat bahwa aturan 2 salah dan dapat dibuang
sementara dua aturan lainnya
Tabel 6.4
Kumpulan tabel keempat untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U, D (1)-1 FR, FA
(2) A, U, M (2)-1 FR, TU
(2)-2 FR
(3) A, U (3)-1 FR, TU
(3)-2 FR
(3)-3 FR
(4) A, U (4)-1 FR, TU
(4)-2 FR
(4)-3 FR
masih aktif. Hasil dari semua tindakan dalam paragraf ini diringkas dalam Tabel 6.5. Karena tidak ada aturan dalam status
terpicu, kami melanjutkan ke langkah 5.
Pada langkah 5, kami mencoret atribut paling atas (posisi sayap) dari tabel AttributeQueue dan melanjutkan ke langkah
6. Pada langkah 6, kami memindai tarif aktif yang tidak ditandai. Aturan 3 dan 4 keduanya aktif dan tidak ditandai. Kami
menandai aturan 3 dan melanjutkan ke langkah 7. Hasil tindakan kami selama langkah 5 hingga 7 ini ditunjukkan pada Tabel
Dicetak untuk Proyek Shell Sistem
Pakar yang disutradarai
oleh
6.6.
Tabel 6.6
Kumpulan tabel keenam untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U, D (1)-1 FR, FA
(2) SEBUAH,kamu,M, U, D (2)-1 FR, TU
(2)-2 FR, FA
(3) A, U, M (3)-1 FR, TU
(3)-2 FR, TU
(3)-3 FR
(4) A, U (4)-1 FR, TU
(4)-2 FR, TU
(4)-3 FR
Kita sekali lagi berada di langkah 7. Satu-satunya premis bebas dari aturan bertanda (aturan 3) adalah premis ketiga, di
manaatribut yang terkait adalah tonjolan. Prompt untuk tonjolan adalah, "Di mana di badan pesawat ada tonjolan
yang diucapkan?" Dan jawabannya harus "tidak ada". Kami selanjutnya pindah ke langkah S di mana kami
menempatkan tonjolan atribut (dan nomor aturan yang terkait) di atas tabel Atribut-Antrian dan menempatkan
atribut yang sama, dan nilainya, di bagian bawah tabel Memori Kerja. Aturan 3 kemudian tidak ditandai. Hasil
tindakan langkah 7 dan S ditunjukkan pada Tabel 6.7. Kita kembali ke langkah 3.
Tabel 6.7
Kumpulan tabel ketujuh untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U, D (1)-1 FR, FA
(2) SEBUAH,kamu,M, U, D (2)-1 FR, TU
(2)-2 FR, FA
(3) A, U, M, U (3)-1 FR, TU
(3)-2 FR, TU
(3)-3 FR
(4) A, U (4)-1 FR, TU
(4)-2 FR, TU
(4)-3 FR
Hasilnya ditunjukkan pada Tabel 6.8. Dari 3c, kami mencatat bahwa karena kami memiliki aturan dalam keadaan
terpicu, kami melanjutkan ke langkah 4.
Ini adalah pertama kalinya kami mencapai langkah 4. Melanjutkan per arah, kami mencoret atribut paling atas
(yaitu, tonjolan) pada tabel Atribut-Antrian dan mengubah status aturan yang terkait dengan atribut paling atas baru
(yaitu, bidang dan aturan 3) dari dipicu menjadi dipecat. Kami kemudian menempatkan kesimpulan dari aturan yang
ditembakkan (yaitu, bahwa pesawat adalah C5A) di bagian bawah tabel Memori Kerja. Kami kemudian kembali ke
langkah 3. Selanjutnya, karena tidak ada aturan yang sekarang aktif, kami dapat menghentikan pencarian-dengan
hasil yang diringkas dalam Tabel 6.9.
Hasil utama yang menarik, dari Tabel 6.9, adalah yang ditunjukkan dalam tabel Memori Kerja, dan khususnya entri
terakhir dalam tabel itu. Artinya, kami akhirnya menentukan bahwa pesawat yang terlihat adalah C5A. Selain itu, kami
memiliki kumpulan semua fakta mengenai penampakan ini di tabel Working Memory (yaitu, tipe mesin jet, posisi sayap
tinggi, tidak ada tonjolan di badan pesawat, dan pesawat adalah C5A), apakah disediakan oleh pengguna atau
dikembangkan oleh proses inferensi.
Tabel 6.9
Kumpulan tabel terakhir untuk Contoh 6.1
Tabel Aturan/Premis
Nomor aturan Status Aturan Premis klausa Status Klausa
Nomor Premis
(1) A, U, D (1)-1 FR, FA
(2) SEBUAH,kamu,M, U, D (2)-1 FR, TU
(2)-2 FR, FA
(3) A, U, M, U, TD, FD (3)-1 FR, TU
(3)-2 FR, TU
(3)-3 FR, TU
(4) A, U, D (4)-1 FR, TU
(4)-2 FR, TU
(4)-3 FR, FA