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