mengiau(X)

Transcription

mengiau(X)
Kandungan
Bab 6 Minggu 11 Feb 2005
PENGATURCARAAN
KEPINTARAN BUATAN
Pengenalan
Pengaturcaraan Rekursi
Pengaturcaraan Lisp
Pengaturcaraan Berasaskan
objek
Pengenalan
Pengenalan
http://www.alicebot.org/
http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1
Pengenalan
Pengaturcaraan dalam AI melibatkan:
 Penghasilan
aturcara
yang
melaksanakan jujukan arahan
 Melibatkan penggunaan pengetahuan.
berupaya
Fungsi utama pengaturcaraan dalam AI ialah
membangunkan perwakilan dan struktur kawalan
yang diperlukan dalam penyelesaian masalah (Luger,
2002).
Kebanyakkan
aturcara
AI
ditulis
bagi
memanipulaiskan data simbolik seperti “berat”,
“ringan”, “sederhana” dan sebagainya.
Ciri Aturcara AI (Ulangkaji)
Bukan sahaja mempamerkan ciri pintar pada
komputer.
Melibatkan perwakilan dalaman (atau proses) yang
memproses maklumat dan menterjemahkan semula
ke dalam bentuk yang difahami oleh manusia.
Terjemah kepada perwakilan dalaman
DUNIA SEBENAR
PERWAKILAN DALAMAN
Terjemah kepada perwakilan yang difahami oleh manusia
Struktur Aturcara Kepintaran Buatan
Ciri Aturcara AI (Ulangkaji)
Dua isu utama mesti dipertimbangkan:
• Perwakilan pengetahuan
Dua kategori asas pengetahuan
Pengetahuan Objek
Pengetahuan Meta
Dua jenis:
Pengetahuan mengenai
pengetahuan
• Penaakulan
Dua aspek utama
Pengetahuan Fakta
Pengetahuan mengenai objek
Hubungan diantara objek.
Pengetahuan Penakbiran
Pengetahuan tentang bagaimana
untuk menaakul
Teknik Penakbiran
2)
3)
4)
Penaakulan deduktif
Penaakulan abduktif
Penaakulan induktif
Strategi Kawalan
Menentukan bila untuk menakbir
Ciri Aturcara AI (Ulangkaji)
Ciri khusus aturcara AI
Pemprosesan Simbolik
Penyelesaian non-algoritmik
Penyelesaian Heuristik
Keupayaan Menaakul
Ciri Aturcara AI (Ulangkaji)
Pemprosesan Simbolik
Asas
kepada
kepintaran
manusia
memanipulasi simbol dan nombor.
Teras kepada pengaturcaraan
Kepintaran Buatan
Cth: tinggi, rendah, besar
Teras kepada pengaturcaraan
Kovensional
Cth: 0.29, 100, 23, 5
ialah
Ciri Aturcara AI (Ulangkaji)
Penyelesaian Non-Algoritmik
• Aturcara KB tidak terikat dengan perlaksanaan
algoritma langkah demi langkah
Penyelesaian Heuristik
• Heuristik adalah ‘rules of thumb’, gerak hati,
pertimbangan, ilham, petua yang terbina daripada
pengalaman.
• Panduan untuk menyelesaikan masalah atau
membuat keputusan dengan lebih cepat (berbanding
kaedah rambang)
Ciri Aturcara AI (Ulangkaji)
Keupayaan untuk menaakul
• keupayaan
untuk
menggunakan
pengetahuan yang ada
padanya untuk membuat
keputusan
atau
menyelesaikan masalah.
Lisp
Merupakan bahasa terawal AI.
Dibangunkan oleh kumpulan penyelidik AI dari
Massachusetts Inst. Of Tech. (MIT) pada tahuan
1960an.
Lisp – “LISt Processor”
iaitu pemproses senarai.
Direka utk
pengkomputan
simbolik.
Lisp
Sintak Asas
 Elemen utama Lisp ialah ungkapan sombolik
yang dikenali sebagai ungkapan-s.
 Ungkapan-s digunakan bagi mewakilkan aturcara
dan data, iaitu boleh terdiri dari atom atau
senarai.
Lisp
Atom terdiri daripada huruf, nombor dan aksara
bukan alphanumerik seperti *-+@$%^&<>~.
Sintak Asas
12357
3510.20
kepintaran-buatan
<prolog>
nil
Lisp
Senarai merupakan jujukan atom atau senarai lain
yang ditulis dalam kurungan dan dipisahkan dengan
ruang kosong.
Merupakan struktur asas bagi Lisp
Elemen sesuatu senarai boleh terdiri daripada atom,
senarai lain, atau senarai kosong.
Sintak Asas
(1 2 3
(a b c
(laici
(laici
()
4 5 6)
d e)
kiwi apple orange)
(kiwi apple) orange)
Lisp
Operasi Ke atas Senarai
Prolog
PROLOG – PROgramming in LOGic.
Sejarah
1970 Diperkenalkan oleh Alain Colmerauer dari University of
Marseille bagi menterjemah bahasa tabii.
1977 David Warren dari Universiti of Edinburgh Perkenalkan
Prolog-10 (Edinburgh Prolog)
1982 Jepun guna Prolog sebagai bahasa asas sistem untuk projek
pembangunan komputer generasi baru.
Prolog
PROLOG ialah bahasa pengaturcaraan bagi
menyelesaikan masalah yang melibatkan objek dan
hubungan diantara objek.
Ia membolehkan proses penaakulan mengenai objek
dan hubungan berlaku.
Ia merupakan bahasa berasaskan simbolik (nonnumerik programming).
PROLOG mempunyai automated inference engine.
Oleh itu, program yang melakukan penaakulan
logikal lebih mudah ditulis menggunakan PROLOG.
Prolog
Kepelbagaian versi Prolog
Arity Prolog
ALS Prolog
Quintus Prolog
SWI Prolog
LPA Prolog
Cogent (Amzi)
Prolog
Edinburgh
Prolog
Prolog
LPA Win-Prolog
Prolog
LPA Win-Prolog (http://www.lpa.co.uk/)
Prolog
LPA Win-Prolog
Prolog
LPA Win-Prolog
Compiling
Prolog
LPA Win-Prolog
Query
Prolog
Komponen Prolog
terdiri daripada
Fakta (facts)
Predikat (atau functor)
Peraturan (rules)
Argumen
Zero, satu atau lebih
Nama predikat dimulai dengan
huruf kecil. Spt: makan, burung
Prolog
Contoh Aturcara
?- kucing(X).
X=comel
binatang(comel).
binatang(tompok).
makan(comel, ikan).
mengiau(comel).
mengiau(tompok).
fakta
kucing(X):binatang(X),
makan(X, ikan),
mengiau(X).
peraturan
pertanyaan
jawapan
Pembolehubah
Prolog
Bahasa PROLOG adalah berasaskan kepada tiga
konsep utama:
Pemadanan corak
(Pattern Matching)
Pengstrukturan data
berasaskan pepohon
(tree-based data structuring)
Patah-balik ke belakang
(automatic backtracking)
Prolog
Struktur Data
Objek Data
Objek Mudah
Pemalar
Atom
Objek Berstruktur
Pembolehubah
Nombor
Prolog
Atoms
Mewakili entiti asas yang spesifik dan tidak boleh
dipecahkan lagi.
Terdiri daripada:
1)
Huruf besar
A,B,…, Z
3)
Huruf kecil
a,b,…, z
5)
Digit
7)
0,1,…, 9
Aksara khas seperti
+-*/<>=:.&_~
Prolog
Atoms
Dihasilkan melalui 3 cara
1)
Jujukan huruf, digit dan underscore – dimulai dengan huruf
kecil.
Cth: saya, b, k21, mohd_azmi, puan_Maznah
3)
Jujukan aksara khas.
Cth: <-->, ===>, …
5)
Jujukan aksara dalam tanda ‘single quotes’.
Cth: `Mat`, `wan ahmad`, `Azmi_Saad`
Cth: Aturcara
kucing(comel).
kucing(tompok).
mengiau(comel).
atom
Prolog
Nombor
Terdiri daripada nombor integer dan nombor nyata
Cth:
-1
12
0
Cth:
Cth: Aturcara
kira(X,Y):XNew is X + 1,
Y is XNnew / 2.
-1.305
0.12
0.0002
Tidak banyak digunakan dalam Prolog
Prolog
Pembolehubah
Adalah jujukan huruf-huruf, digit dan underscore
(_).
Dimulai dengan huruf besar atau underscore.
Cth: Y, Hasil, Pelajar_x, _versi
Anonymous Variable
-Pembolehubah dengan nilai bebas.
-Menggunakan tanda “_” sahaja, tiada nama.
Cth: Aturcara
kira(X,Y):XNew is X + 1,
Y is XNew / 2.
kucing(X):binatang(X),
makan(X, _).
Prolog
Objek Berstruktur
Objek yang terdiri daripada beberapa komponen.
Struktur terdiri daripada atom, kurungan dan
argumen di dalamnya.
Argumen
di_atas(buku, meja, bulat).
di_atas(buku(kepintaran_buatan), meja, bulat).
FUNCTOR
PRINCIPAL FUNCTOR
Prolog
Objek Berstruktur
Contoh:
tarikh(Hari, Bulan, Tahun).
buku(tajuk(kepintaran_buatan), penulis(ahmad)).
Cth: Aturcara
tarikh(1,november,2003).
segitiga(point(4,2), point(6,4), point(7,1)).
Prolog
Objek Berstruktur
Boleh diwakilkan dalam bentuk rajah.
Contoh:
buku(tajuk(kepintaran_buatan), penulis(ahmad)).
buku
tajuk
Kepintaran_buatan
penulis
ahmad
Prolog - Fakta
Apakah fakta?
Menerangkan hubungan diantara objek.
Spt:
makan(arumugam, nasi).
mengiau(tompok).
manusia.
atas(buku_tebal, meja, bulat).
Sintak bagi Fakta
•
•
•
Nama bagi hubungan dan objek adalah atom
Hubungan ditulis terlebih dahulu sebelum objek
Diakhiri dengan titik “.”
atas(buku_tebal, meja, bulat).
Bilangan objek/argumen/hujah iaitu arity boleh jadi
tak terhingga atas/3.
Prolog - Fakta
Apakah fakta?
Susunan bagi objek
•
Mesti konsistent
suka(muthu, palwani).
tidak sama
suka(palwani, muthu).
Interpretasi fakta
Contoh:
Fakta
makan(arumugam, nasi).
mengiau(tompok).
manusia.
atas(buku_tebal, meja, bulat).
Interpretasi
arumugam makan nasi
tompok mengiau
manusia.
buku tebal atas meja bulat
Prolog - Pertanyaan
Pertanyaan berdasarkan fakta
Format pertanyaan
•
•
Bentuk pertanyaan adalah sama seperti fakta dengan
penambahan tanda soal (?) dan simbol sengkang (-) diawal
pertanyaan.
Contoh:
?- mengiau(tompok).
?- mengiau(X).
Prosedur jawapan
•
•
•
PROLOG melakukan pencarian dalam pangkalan data.
PROLOG mencari dan memadankan fakta yang padan dengan
fakta dalam pertanyaan.
Sekiranya jumpa / padan jawapan “yes” dipulangkan dan “no”
jika sebaliknya.
Prolog - Pertanyaan
Pertanyaan berdasarkan fakta
Pemadanan
•
Dua fakta padan jika
1. Nama predikat sama
2. Nilai dan susunan argumen adalah sama
suka(muthu, palwani).
suka(muthu, X).
sama/padan
suka(muthu, palwani).
tidak padan
tidak_suka(muthu, palwani).
suka tidak sama dengan tidak_suka
Prolog - Peraturan
Definisi
Pernyataan yang bergantung kepada sekumpulan
fakta.
kucing(X):binatang(X),
makan(X,ikan), fakta peraturan
mengiau(X).
Prolog - Peraturan
Sintak & Terminologi
Terdiri dari goal dan subgoal.
goal(X):subgoal(X),
subgoal(Y,X),
…,
subgoal(Y).
Kepala (head)
peraturan
Badan (body)
peraturan
head & body
dipisahkan dengan
Tanda “:-”
Subgoal dipisahkan
dengan tanda “,”
Diakhiri dengan
tanda titik “.”
Prolog - Peraturan
Contoh Peraturan
Contoh:
binatang(comel).
binatang(tompok).
makan(comel, ikan).
mengiau(comel).
mengiau(tompok).
kucing(X):binatang(X),
makan(X, ikan),
mengiau(X).
Prolog - Peraturan
Penggunaan Peraturan
1) Digunakan untuk menyatakan definisi (to
definitions).
express
Contoh:
kucing(X):binatang(X),
makan(X,ikan),
mengiau(X).
X ialah seekor kucing jika:
X ialah binatang dan
X makan ikan dan
X mengiau.
Prolog - Peraturan
Penggunaan Peraturan
2) Digunakan untuk menyatakan
kebenaran (truth relationships).
Contoh:
false(X):not(X).
X palsu jika:
X tidak benar.
hubungan
Prolog - Peraturan
Penggunaan Peraturan
3) Digunakan untuk menyatakan hubungan sebab
dan akibat (causal relationships).
Contoh:
lemas(X):mandi(X,Y),
dalam(Y),
not berenang(X).
X lemas jika :
X mandi dalam Y dan
Y dalam dan
X tidak pandai berenang.
Prolog - Peraturan
Penggunaan Peraturan
4) Digunakan untuk menyatakan
mengenai ruang (spatial relationships).
hubungan
Contoh:
on_top(X,Z):above(X,Z).
on_top(X,Z):above(X,Y),
above(Y,Z).
X di atas Z jika:
X di atas Z atau
X di atas Y dan Y di atas Z
Prolog - Penghubung
Conjoined Goals “AND”
Melibatkan lebih dari satu fakta atau pertanyaan.
Menggunakan tanda koma ‘,’ yang bermaksud
‘dan’.
Contoh pertanyaan:
?- kucing(X), makan(X, whiskas).
Kedua-dua mesti benar.
Contoh peraturan:
datuk(X,Y):ayah(X, Z),
ayah(Z,Y).
ayah(X,Z) DAN
ayah(Z,Y) mesti benar
Prolog - Penghubung
Disjoint Goals “OR”
Menggunakan tanda semikolon ‘;’ yang bermaksud
‘or’.
Digunakan jika salah satu fakta sahaja yang
mungkin benar.
Contoh pertanyaan:
?- makan(X, friskies); makan(X, whiskas).
Salah satu mesti benar.
Contoh peraturan:
penjaga(X,Y):ayah(X, Y);
emak(X,Y).
ayah(X,Y) ATAU
emak(X,Y) mesti benar
Prolog - Penghubung
Negative Goals “NOT”
Menggunakan predikat khas ‘\+’ bermaksud ‘not’
Jika g ialah matlamat maka \+ g benar jika g gagal.
Contoh pertanyaan:
?- \+ makan(X, friskies).
* hasilnya ialah semua X yang tidak makan friskies.
Contoh peraturan:
penjaga(X,Y):saudara(X, Y),
\+ jiran(X,Y).
Prolog
Pemadanan Corak
Perwakilan simbol perlu sama.
Menggunakan operator ‘=‘ yang bermaksud
‘sama dengan’.
Contoh:
a=a
kereta = kereta
Pembolehubah juga boleh digunakan.
Contoh:
makan(ali, A)
makan(B, nasi)
A dan B merupakan pembolehubah.
A memegang nilai “nasi” dan B
memegang nilai “ali”
Prolog
Unifikasi
Merupakan suatu proses pemadanan.
Merupakan proses pemadanan dua hala.
Contoh:
X = ayam
kakak = kakak
ayam = maya
Pens = pen
Karim = Amran
P = kucing(boboy)
unify
unify
tidak unify
unify
unify
unify
Prolog
Backtracking
Apabila Prolog menjumpai apa yang dikehendaki,
maklumat tersebut akan disimpan dalam
“ingatan”nya.
Walau bagaimanapun, jika
maklumat
tersebut
tidak
padan
dengan
pertanyaan, carian akan diteruskan ke fakta atau
peraturan yang lain.
Contoh:
makan(minah, nasi).
makan(chong, satay).
makan(palwani, nasi).
fakta
?- makan(palwani, Apa).
pertanyaan
Percubaan pertama
Percubaan kedua
Percubaan ketiga
Guna “;” untuk wujudkan backtracking.
Prolog
“Backtracking always goes back to themost recent alternative”
Backtracking – Bagaimana Prolog bekerja?
Diberi fakta dan peraturan:
binatang(comel).
binatang(tompok).
makan(comel,ikan).
mengiau(tompok).
mengiau(comel).
kucing(X):binatang(X),
makan(X,ikan),
mengiau(X).
Pertanyaan:
?- kucing(comel).
Langkah perlaksanaan:
1. Peraturan kucing(X) akan dipanggil.
2. Matlamat binatang(X) akan dipadankan
dengan binatang(comel).
3. Umpukan berlaku iaitu X = comel.
4. Matlamat
makan(X,ikan)
akan
dipadankan dengan makan(comel,ikan).
5. Matlamat tersebut padan kerana X =
comel dan ikan = ikan.
6. Seterusnya mengiau(X) diuji dengan
mengiau(tompok).
7. Matlamat tersebut gagal kerana X \=
tompok.
8. Padanan
dibuat
dengan
mengiau(comel).
9. Matlamat tersebut padan.
10. Pertanyaan kucing(comel) berjaya.
Examples in Prolog
Examples in Win-Prolog
Piechart
Reversi
Turtle
Salesman
Examples in Prolog
Piechart.pl
?- show_pie(`This is a Pie Chart`,[foo(1),bar(2),sux(3),you(4),too(5)]).
Examples in Prolog
Reversi.pl
?- reversi.
Examples in Prolog
Turtle.pl
?- go, for(X,1,1000,1,(pen(X),draw(X),right(91))).
Examples in Prolog
Salesman.pl
?- salesman.
Examples in Prolog
How to program… learning
Calculator
Congkak
Mine sweeper
Tic Tec Toe
Examples in Prolog
How to program… learning
Calculator
Examples in Prolog
How to program… learning
Congkak
Examples in Prolog
How to program… learning
Mine sweeper
Examples in Prolog
How to program… learning
Tic Tec Toe
Pengaturcaraan Berorentasikan Objek
JAVA
C++
Visual Basic
Pengaturcaraan Berorentasikan Objek
Berasaskan kepada konsep kelas dan perwarisan.
Kelas merupakan satu struktur besar yang mungkin
terdiri daripada beberapa objek.
Sesuatu kelas akan
mempunyai ciri yang
tertentu dan ciri ini
akan diwarisi oleh
setiap objek
didalamnya.
Kelas
Objek 1
Objek 2
Pengaturcaraan Berorentasikan Objek
Akta
Universiti
Malaysia
dikawal
operasi
UPM
ialah
Di bawah
Kementerian
Pendidikan
Tinggi
IPTA
ialah
Pendidikan
Aktiviti
utama
ialah
kendalikan
ada
UTM
Kemasukkan
UUM
Bidang
Pendaftar
sediakan
tawar
ada
Pengurusan
sarjana
HEP
Perkhidmatan
Perkhidmatan
kendalikan
Perkhidmatan
Kaunseling
Penginapan
Kebajikan
pelajar
Kad
pintar
Latihan