Random selection in CLIPS

Intro

CLIPS merupakan shell sistem pakar yang dibuat oleh NASA. Sintaks CLIPS menggunakan syntax yang mirip LISP. Tulisan ini akan membahas bagaimana caranya memrogram dalam CLIPS untuk melakukan pemilihan acak. Salah satu strategi conflict resolution yang dimiliki oleh CLIPS adalah random. Jika strategi ini aktif, maka jika terdapat beberapa kaidah yang memiliki derajat salience yang sama maka kaidah yang diaktivasi akan dipilih secara acak. Pemilihan acak merupakan salah satu pendukung untuk membuat sistem pakar yang bersifat konstruksi, yaitu solusi yang dihasilkan merupakan agregasi dari komponen-komponen yang lebih sederhana.


Untuk mengaktifkan strategi ini maka digunakan fungsi set-strategy. Salah satu contohnya adalah sebagai berikut.

(defrule init-strategy
   (initial-fact)
=>
   (set-strategy random)
)

kaidah ini akan diaktivasi saat awal program CLIPS dijalankan (bila perlu tambahkan salience yang besar).

(deffacts awal
	(task select)
	(selection sel1)
	(selection sel2)
	(selection sel3)
	(selection sel4)
	(selection sel5)
)

(defrule choose
	?r 
	(assert (selected ?s))
	(retract ?r)
	(assert (task done))
)

(defrule show-selection
	(task done)
	(selected ?s)
	=>
	(printout t ?s crlf)
)

Kode di atas akan memilih salah satu dari kandidat selection (sel1, sel2, sel3, sel4) dan menampilkannya.
Kode di atas bisa ditambahkan untuk menangani kasus tidak ada kandidat untuk dipilih dengan beberapa kaidah berikut

(defrule nothing-to-choose
	?r <- (task select)
	(not (selection ?))
	=>
	(retract ?r)
	(assert (task done))
)

(defrule none-selected
	(task done)
	(not (selected ?s))
	=>
	(printout t "nothing is selected" crlf)
)

Jika fakta-fakta selection dalam bagian deffacts dihapus maka kedua rule ini akan aktif.

2 comments

  1. Ping-balik: Propose and Revise in CLIPS « GAIBlog
  2. vincent · Februari 5, 2009

    mas bisa minta sedikit tentang penggunaan clips pada sistem pakar untuk diagnosa penyakit….mas saya ingin sekali dapat menggunakan program clips untuk TA saya….pak ada alamat yang dapat saya gunakan untuk berkomunikasi dengan bapak……sebelumnya saya ucapkan terima kasih atas perhatiannya pak

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s