KECERDASAN BUATAN
DAFTAR PUSTAKA :
1.
Louis E. Frenzel, Jr., Crash Course in Artificial Intelligence and Expert System, Howard
W. Sams & Co., Indianapolis, USA.
2.
Suparman, Mengenal
Artificial Intelligence, Penerbit Andi Offset Yogyakarta, Edisi pertama, 1991.
3.
Sandi Setiawan, Artificial
Intelligence, Penerbit Andi Offset Yogyakarta, Edisi pertama, 1993.
4.
M. Farid Azis, Belajar
Sendiri Pemrograman Sistem Pakar, PT Elex Media Komputindo, Jakarta, 1994.
5.
Uung Ungkawa, Bahasa
Pemrograman Logika Turbo Prolog, Penerbit Andi Offset Yogyakarta, Edisi
pertama 1992.
6.
Tjendry Harianto, Bahasa
Turbo Prolog, Penerbit Andi Offset Yogyakarta, Edisi pertama 1992.
7.
Sandi Setiawan, Mengenal Network Saraf, Penerbit Aandi
Offset Yogyakarta, 1992.
SILABUS MATA
KULIAH
1.
Pendahuluan
2.
Pengertian Kecerdasan Buatan
3.
Representasi Pengetahuan
4.
Pendekatan Penyelesaian Masalah
5.
Pembahasan Beberapa Bidang Kecerdasan Buatan
6.
Pengenalan Pemrograman Kecerdasan Buatan
TUJUAN PERKULIAHAN
Mempelajari pengertian dan konsep kecerdasan buatan
(artificial intelligence) kemudian menerapkannya dalam berbagai bidang disiplin
ilmu dengan membentuk pemrograman yang spesifik.
1.
PENDAHULUAN
Riwayat Singkat Kecerdasan Buatan
Kecerdasan Buatan sebenarnya sudah
dimulai sejak musim panas tahun 1956.
pada waktu itu sekelompok pakar komputer, pakar dan peneliti dari disiplin ilmu
lain dari berbagai akademi, industri serta berbagai kalangan berkumpul di Dartmouth
College untuk membahas potensi komputer dalam rangka menirukan atau
mensimulasi kepandaian manusia. Beberapa ilmuwan yang terlibat adalah Allen
Newel, Herbert Simon, Marvin Miskey, Oliver Selfridge,
dan John McCarthy.
Sejak saat itu, para ahli mulai
bekerja keras untuk membuat, mendiskusikan, merubah dan mengembangkan sampai
mencapai titik kemajuan yang penuh. Mulai dari laboratorium sampai kepada
pelaksanaan kerja nyata.
Pada mulanya Kecerdasan Buatan
hanya ada di universitas-universitas dan laboratorium-laboratorium penelitian,
dan hanya sedikit sekali – jika ada – produk praktis yang sudah dikembangkan.
Menjelang akhir tahun 1970-an dan
awal tahun 1980-an, mulai dikembangkan secara penuh dan hasilnya secara
berangsur-angsur mulai dipasarkan. Saat ini, sudah banyak hasil penelitian yang
sedang dan sudah dikonversikan menjadi produk nyata yang membawa keuntungan
bagi pemakainya.
Revolusi Pengolahan Data oleh Komputer
Awalnya komputer hanya mengolah
data, kemudian menghasilkan informasi untuk pengambilan keputusan. Seiring dengan perkembangan, saat
ini komputer dapt mengolah pengetahuan sehingga proses pengambilan keputusan
menjadi lebih cepat dan akurat.
Gambar 1. Pengolahan Data,
Informasi dan Pengetahuan
Apabila komputer mengerjakan
pengolahan data, maka manusia harus mengkonversi data tersebut menjadi
informasi yang dapat digunakan dalam mengolah pengetahuan untuk menghasilkan
keputusan.
Apabila komputer mengerjakan
pengolahan informasi – yang berarti juga termasuk pengolahan data – maka
manusia cukup mengerjakan pengolahan pengetahuan untuk menghasilkan keputusan.
Akan tetapi apabila komputer dapat
melakukan pengolahan pengetahuan – juga terkandung di dalamnya pengolahan data
dan ionformasi – maka akan sangat sedikitlah bagian pekerjaan yang harus
dilakukan manusia, termasuk dalam penerapan hasil untuk keperluan tertentu.
Teknik yang membuat komputer mampu
mengolah pengetahuan ini dinamakan teknik
kecerdasan buatan (artificial
intelligence technique). Dengan pendekatan ini manusia mencoba membuat
komputer dapat berpikir seperti cara
yang dipakai manusia dalam memecahkan masalah.
Apakah Komputer Dapat Berpikir ?
Terdapat beberapa tingkat
kecerdasan seperti yang diilustrasikan oleh gambar berikut.
Gambar 2. Spektrum Kecerdasan
atau “kemampuan arah”
Pikiran manusia menduduki tingkat
tertinggi dalam spektrum kecerdasan, rangkaian logika sederhana ada pada
tingkat spektrum terendah, sedangkan Kecerdasan Buatan terletak pada kedua hal
tersebut di atas.
Beberapa
pertanyaan seputar Kecerdasan Buatan yang diterapkan pada komputer:
-
Apakah kemudian komputer menjadi lebih pintar?
-
Apakah benar, komputer sekarang mempunyai kecerdasan
seperti yang dimiliki manusia dalam melaksanakan tugasnya ?
-
Apabila kecepatan dan kemudahan serta peningkatan
produktifitas kerja dan kemampuannya melakukan pekerjaan dengan baik sudah
tercapai, apakah komputer itu sudah bisa dikatakan mempunyai tingkat kecerdasan
tertentu ?
-
Bagaimana kita bisa menyatakan bahwa komputer itu memiliki
kecerdasan ?
-
Kriteria apakah yang bisa digunakan untuk sampai pada
kesimpulan itu ?
Kenyataannya, hampir semua program
Kecerdasan Buatan yang dilaksanakan dengan teknik pelacakan dan pencocokan pola
mengarah kepada suatu kesimpulan bahwa komputer tidak benar-benar pintar.
Kita boleh memberi informasi
sebanyak-banyaknya kepada komputer dan beberapa pengarahan tentang cara
penggunaanya. Dengan menggunakan informasi dan kriteria yang berlaku, komputer
bisa menemukan suatu solusi.
Semua yang dilakukannya itu
merupakan percobaan atas berbagai alternatif dan usaha untuk menemukan beberapa
kombinasi yang cocok dengan kriteria terancang. Bila semua itu sudah
dikerjakan, maka secara tipikal solusi tersebut bisa dicapai.
Dengan demikian, walaupun komputer
itu tidak betul-betul pintar, tetapi kelihatannya seperti “berfikir” dan sering
memberikan solusi yang menakjubkan.
Seorang ahli matematika dan
Kecerdasan Buatan bernama Allan Turing berkebangsaan Inggris
yang memiliki sumbangan besar dalam teori kemampuan penghitungan (computability), bergumul dengan
pertanyaan apakah sebuah mesin dapat berpikir
atau tidak ? dengan melakukan sebuah percobaan yang disebut dengan imitasi
permainan (pseudo game).
Dalam uji ini, dilibatkan seorang
penanya (manusia), dan 2 obyek yang ditanyai (manusia dan mesin). Penanya dan 2
obyek yang ditanyai itu terletak pada jarak yang jauh sehingga tidak dapat
melihat atau berbicara dengan kedua obyek yang ditanyai itu. Penanya hanya
dapat berkomunikasi dengan keduanya lewat suatu alat terminal komputer. Penanya
mengira bahwa ia sedang berhubungan dengan dua operator lainnya.
Dalam mengajukan pertanyaan,
penanya bebas memilih pertanyaan. Misalnya, untuk mengetahui mana obyek yang
benar-benar manusia, penanya dapat mengajukan pertanyaan yang didasarkan pada sifat emosi kedua obyek yang ditanyai,
yakni pertanyaan tentang suatu puisi atau karya seni lain.
Walaupun secara dasar percobaan
itu masih menimbulkan kesangsian manusiawi, tetapi Turing berpendapat bahwa
jika penanya tidak dapat membedakan mana yang manusia dan mana yang mesin, maka
mesin tersebut dapat diasumsikan sebagai cerdas.
Beberapa
hal penting dari uji ini adalah
1.
Memberikan tanda-tanda yang obyektif dari kecerdasan,
yaitu respon tingkahlaku dari kecerdasan yang telah dikenal terhadap sejumlah
pertanyaan tertentu.
Cara ini
memberikan standar dalam menentukan kecerdasan dan menghindarkan beda pendapat
tentang apa itu sifat kecerdasan yang sebenarnya.
2.
Dapat membuat kita mempunyai pedoman dalam menerima
jawaban yang membingungkan dan ketidakmampuan obyek menjawab pertanyaan kita,
terlepas apakah mesin tersebut menggunakan proses internal yang memadai, atau
tidak peduli apakah komputer itu sadar atau tidak dengan responya sendiri.
3.
Menghapus setiap bias yang menguntungkan organisme hidup
(termasuk manusia) dibandingkan mesin cerdas dengan memaksa si penanya agar
hanya memfokuskan perhatiannya pada jawaban-jawaban dari pertanyaan yang
diajukannya.
Uji Turing ini menjadi dasar bagi
banyak strategi yang digunakan dalam menilai program-program Kecerdasan Buatan
modern.
Setiap percobaan untuk
inteligensia mempunyai nilai dan kedayagunaan yang terbatas. Dia mungkin bisa
mengerjakan suatu kasus, tapi belum tentu bisa mengerjakan kasus yang lain.
Faktor Pendorong Perkembangan Kecerdasan Buatan
Faktor
pendorong bagi terlaksananya aplikasi Kecerdasan Buatan adalah
1.
Pesatnya perkembangan teknologi perangkat keras.
Hampir semua
aplikasi Kecerdasan Buatan memerlukan perangkat keras yang memiliki kecepatan
daya tampung yang lebih tinggi, walaupun hanya menjalankan perangkat lunak
Kecerdasan Buatan yang paling sederhana sekalipun. Disamping itu, harga
perangkat keras yang dengan kemampuan lebih memiliki harga yang relatif semakin
murah.
2.
Pengembangan perangkat lunak Kecerdasan Buatan
Dewasa ini
bahasa dan alat pemrograman baru yang lebih canggih sudah banyak dikembangkan
dan dipasarkaan secara luas, termasuk bahasa khusus untuk Kecerdasan Buatan.
3.
Perkembangan khusus komputer pribadi (personal computer /
PC).
Sekarang sudah
sangat banyak orang menggunakan komputer mikro (microcomputer) khususnya komputer pribadi baik di sekolah,
perusahaan, atau bahkan di rumah yang menyebabkan permintaan mereka akan
perangkat lunak yang lebih unggul untuk pekerjaan mereka.
4.
Turut andilnya para investor dalam mendanai penelitian
dan pengembangan teknologi Kecerdasan Buatan.
Hal ini
mengakibatkan terjadinya semacam tekanan di kalnganan masyarakat Kecerdasan
Buatan untuk berlomba-lomba dalam mempercepat gerak dan langkah penelitiannya
dan segera memproduksi Kecerdasan Buatan dalam waktu yang singkat.
Masalah utama Kecerdasan Buatan
adalah sulitnya merumuskan dan memvisualisasi inteligensia itu sendiri, karena
mempunyai arti yang banyak.
Walaupun AI telah banyak membuat
komputer menjadi lebih pintar dan lebih canggih, tapi tampaknya impian manusia
agar bisa membuat komputer yang betul-betul bisa membuat duplikasi otak
manusia, atau bisa menjadi pengganti otak manusia yang sebenarnya masih
jauh dari kenyataan. Mungkin belum bisa terlaksana pada zaman atau masa kini.
Kenyataannya, masih banyak
persoalan-persoalan yang timbul tentang apakah kita akan selamanya bisa membuat
sebuah komputer yang secara akurat dapat melakukan hal-hal yang terbaik seperti
yang dilakukan oleh pikiran manusia.
Hubert Dreyfus – ahli
filsafat dari Universitas California di Berkeley – berpendapat
bahwa masyarakat sekarang ini sedang dikacaukan oleh oleh pengertian Kecerdasan
Buatan yang mengira seolah-olah kegunaannya sangat berlebihan dan tidak mungkin
bisa mencapai tujuan. Dreyfus berkata: Kita tidak akan pernah bisa
membuat suatu kaidah untuk semua cara kita berfikir, karena hal itu sangat
kompleks.
Tentu saja, para peneliti yang
ahli akan lebih bisa mendekati pada komputer pintar, tapi masih banyak masalah
yang harus dijawab. Misalnya, bagaimana kita bisa mencerminkan keterampilan
dalam menangani masalah manusia, kemampuan belajar, selera, imajinasi,
emosi, kreativitas dan ‘rasa berani’. Untuk menjawab
masalah-masalah tersebut di atas, para ahli kembali pada bidang yang berkaitan,
seperti: filosofi, psikologi, linguistik dan sains
syaraf (neuro science) dan tentu saja sains komputernya itu
sendiri. Dengan demikian akan lahir bidang sains kognitif antar disiplin ilmu
tersebut.
Walaupun masih banyak kritik,
metode Kecerdasan Buatan tetap memperlihatkan nilai lebih dibanding dengan yang
lain. Teknik Kecerdasan Buatan menunjukkan bagaimana kita berfikir dan
bagaimana kita menerapkan inteligensia dengan lebih baik. Teknik Kecerdasan
Buatan akan membuat komputer lebih mudah digunakan dan pengetahuan akan semakin
tersebar luas di kalangan masyarakat.
Kita membuat komputer pintar bukan
untuk menggantikan manusia tapi hanya sekedar untuk menjadi alat bantu manusia.
II. PENGERTIAN KECERDASAN BUATAN
Kedudukan Ilmu Kecerdasan Buatan
Gambar 2. Bagan Kedudukan Ilmu
Kecerdasan Buatan.
Apakah Kecerdasan Itu ?
Kecerdasan berasal dari kata dasar
cerdas. Cerdas dapat memiliki konotasi makna lebih baik, cepat,
capable, adapted dengan kondisi umumnya/normal.
Cerdas juga dapat berarti kemampuan untuk mengerti/memahami.
Kecerdasan (intelligence) dimiliki seseorang yang pandai
melaksanakan pengetahuan yang dimilikinya.
Walaupun seseorang memiliki banyak
pengetahuan, tetapi bila ia tidak bisa melaksanakannya dalam praktek, maka ia
tidak bisa digolongkan ke dalam kecerdasan.
Dengan perkataan lain, kecerdasan adalah kemampuan manusia
untuk memperoleh pengetahuan dan pandai melaksanakannya dalam praktek.
Definisi Kecerdasan Buatan
Kecerdasan buatan merupakan upa-bidang ilmu komputer (computer science) yang khusus ditujukan
untuk membuat perangkat lunak dan perangkat keras yang sepenuhnya bisa
menirukan beberapa fungsi otak manusia. Atau cabang ilmu komputer yang
mempelajari otomatisasi tingkah laku cerdas (intelligent).
Kecerdasan harus didasarkan pada
prinsip-prinsip teoritikal dan terapan yang menyangkut :
-
struktur data yang digunakan dalam representasi
pengetahuan (knowledge representation),
-
algoritma yang diperlukan dalam penerapan pengetahuan
itu,
-
teknik-teknik bahasa dan pemrograman yang dipakai dalam
implementasinya.
Kecerdasan buatan menawarkan baik
media maupun uji teori kecerdasan. Teori-teori semacam ini dapat dinyatakan
dalam bahasa program komputer dan dibuktikan melalui eksekusinya pada komputer.
Bagian-bagian Kecerdasan Buatan
Bagian utama aplikasi kecerdasan
buatan adalah pengetahuan (knowledge), yaitu suatu pengertian
tentang beberapa wilayah subyek yang diperoleh melalui pendidikan dan
pengalaman.
Pengetahuan merupakan informasi
terorganisir dan teranalisa agar bisa lebih mudah dimengerti dan bisa
diterapkan pada pemecahan masalah dan pengambilaan keputusan.
Pengetahuan terdiri dari fakta,
pemikiran, teori, prosedur, dan hubungannya satu sama
lain.
Gambar 3. Penerapan konsep
Kecerdasan Buatan dalam komputer.
Komputer tidak mungkin mendapatkan
pengetahuannya sendiri dengan belajar, berpengalaman atau melakukan penelitian,
akan tetapi ia memperolehnya melalui upaya yang diberikan oleh seorang pakar
manusia.
Hampir semua pangkalan pengetahuan
(knowledge base) sangat terbatas,
dalam arti terfokuskan kepada suatu masalah khusus. Pada saat pangkalan
pengetahuan itu sudah terbentuk, teknik Kecerdasan Buatan bisa digunakan untuk
memberi kemampuan baru kepada komputer agar bisa berfikir, menalar, dan membuat
inferensi (mengambil keputusan berdasarkan pengalaman) dan membuat
pertimbangan-pertimbangan yang didasarkan kepada fakta dan hubungan-hubungannya
yang terkandung dalam pangkalan pengetahuan itu.
Dengan pangkalan pengetahuan dan
kemampuan untuk menarik kesimpulan melalui pengalaman (inferensi), komputer
dapat disejajarkan sebgai alat bantu yang bisa digunakan secara praktis dalam
memecahkan masalah dan pengambilan keputusan serta bisa mencapai satu atau
lebih solusi alternatif pada maslah yang diberikan.
Problema Apa Saja yang digumuli oleh Kecerdasan Buatan ?
Yang mula-mula digeluti oleh
Kecerdasan Buatan adalah pembuktian teorema dan permainan (game). Misalnya Newell, ahli teori logika, berusaha untuk membuktikan teorema-teorema
matematika dan Samuel yang membuat
program permainan catur. Kemudian para periset Kecerdasan Buatan terus
mengembangkan berbagai teknik baru untuk menangani sejumlah besar persoalan,
termasuk persepsi, pemahaman bahasa alamiah, dan problema spesifik seperti
diagnosa medis.
Persoalan-persoalam
yang ditangani oleh Kecerdasan Buatan adalah
1.
pembuktian teorema (theorem
proving), misalnya: MACSYMA untuk tugas-tugas matematika.
2.
permainan (game),
seperti: chess, tic (= saraf tak sadar) tac toe (= jari
kaki), othelo, dan sebagainya.
3.
pemecahan problema umum (general problem solving), misalnya pengambilan keputusan otomatis (automated
decision making) dan pemodelan kinerja manusia.
4.
persepsi / perception
(visi / vision dan percakapan / conversation)
5.
pemahaman bahasa alamiah (natural language), misalnya ELIZA yang dapat memberikan saran
psikologis.
6.
pengenalan pola (pattern recognition), seperti
pengolahan citra digital untuk kebutuhan ramalan cuaca, foto (kopi), monitor
tv, dan sebagainya.
7.
pemecahan problema pakar (expert), mencakup bidang matematika simbolik, diagnosa medis,
rekayasa rancang bangun, analisis kimia.
8.
pembuatan perangkat lunak otomatis (automated software
generation).
Bidang-bidang
teknik kecerdasan buatan diantaranya adalah
F sistem
pakar (expert system),
F robot (robotics),
F logika
samar (fuzzy logic),
F jaringan
syaraf (neural networks) tiruan, dan
F pengolahan
bahasa alami (natural language processing)
F pengolahan
citra.
Sifat Penting Kecerdasan Buatan
Beberapa sifat penting Kecerdasan
Buatan yang muncul dalam pelbagai bidang penerapannya :
1.
Digunakannya komputer untuk melakukan pertimbangan dengan
proses yang memakai simbol.
2.
Pemfokusan ditujukan pada persoalan yang tidak memberikan
respon terhadap solusi algoritmik.
Hal inilah yang
mendasari pencarian (search)
heuristik sebagai teknik pemecahan problema Kecerdasan Buatan.
3.
Usaha yang dilakukan lebih ditujukan untuk menangkap dan
memanipulasi sifat-sifat kualitatif penting dari suatu situasi daripada metode
numerik.
4.
Usaha yang dilakukan adalah untuk menangani arti-arti
semantik dan bentuk sintaksis.
5.
Jawaban yang diberikan tidaklah eksak atau optimal, namun
lebih bersifat cukup (sufficient).
Ini merupakan
hasil penting dalam metode pemecahan problema heuristik pada situasi dimana
hasil yang eksak atau optimal akan berharga terlalu mahal atau tidak mungkin
dilakukan.
6.
Penggunaan sejumlah besar pengetahuan khusus dalam
memecahkan persoalan. Ini merupakan dasar bagi sistem pakar.
7.
Penggunaan pengetahuan tingkat meta (meta-level) untuk mempengaruhi pengendalian lebih canggih dari
strategi pemecahan problema.
Meskipuan hal
ini merupakan persoalan yang sangat sulit dan hanya ditujukan pada sejumlah
kecil sistem, namun muncul sebagai obyek riset yang penting.
Proses Komputasi Kecerdasan Buatan
Perangkat lunak Kecerdasan Buatan
didasarkan kepada representasi dan manipulasi simbol (symbol).
Sebuah simbol bisa merupakan
huruf, kata atau bilangan yang digunakan untuk menggambarkan obyek, proses dan
saling hubungannya. Ia bisa merupakan cetakan atau elektronik.
Obyek bisa berupa orang, benda,
ide, pikiran, peristiwa atau pernyataan suatu fakta.
Dengan menggunakan simbol
memungkinkan komputer bisa menciptakan suatu basis data yang menyatakan fakta,
pikiran dan hubungannya satu sama lain.
Berbagai proses digunakan untuk
memanipulasi simbol agar mampu memecahkan masalah. Pengolahannya bersifat kwantitatif, dan bukan kwalitatif seperti halnya komputasi yang
didasarkan kepada algoritma.
Apabila basis pengetahuan, fakta
dan hubungannya sudah dibuat, maka penggunaannya untuk memecahkan masalah harus
sudah dimulai. Teknik dasar untuk melakukan penalaran dan menarik kesimpulan
dari pengalaman melalui basis pengetahuan adalah pelacakan (searching) dan
pencocokan pola (pattern matching). Secara harfiah
komputer terus memburu dan dan mencari pengetahuan yang ada sampai ia menemukan
jawaban yang terbaik atau jawaban yang paling cocok.
Walaupun secara langsung pemecahan
Kecerdasan Buatan tidak didasarkan kepada algoritma, tetapi sebenarnya dalam
implementasi proses pelacakan, algoritma tetap digunakan. Program yang
didasarkan kepada algoritma melaksanakan manipulasi simbolik yang menyebabkan
suatu masalah dapat terpecahkan dengan cara yang sangat mendekati dengan cara
kerja berfikir manusia.
Persamaan dan Perbedaan Konsep Komputasi Antara Kecerdasan Buatan dengan
Komputasi Konvensional
Persamaannya :
1.
Sama-sama mengolah simbol-simbol yang dapat berupa huruf,
kata, atau bilangan yang digunakan untuk menggambarkan obyek, proses, dan saling hubungannya. Obyek dapat berupa
orang, benda, ide, pikiran, peristiwa atau pernyataan suatu fakta.
2.
Menggunakan komputer digital untuk melaksanakan operasi.
Perbedaanya :
KOMPUTASI
KONVENSIONAL
|
KECERDASAN BUATAN
|
Menggunakan fungsi otak manusia.
|
Meniru beberapa fungsi otak manusia.
|
Komputer diperintahkan untuk menyelesaikan suatu masalah.
|
Komputer diberitahu tentang suatu masalah.
|
Hanya dapat ditulis dalam bahasa pemrograman biasa
seperti Assembler, C/C++, Fortran, Basic dan Pascal.
|
Programnya dapat ditulis dalam semua bahasa pemrograman
termasuk bahasa pemrograman khusus untuk aplikasi Kecerdasan Buatan seperti
Prolog dan LISP.
|
Dapat dijalankan pada semua jenis komputer tetapi tidak
dibuatkan hardware khusus.
|
Dapat dibuatkan hardware
khusus dan dapat pula dijalankan pada semua jenis komputer.
|
Komputer diberikan data
dan program yang berisi spesifikasi
langkah demi langkah bagaimana cara data itu digunakan dan diolah untuk
menghasilkan solusi.
|
Komputer diberi pengetahuan
tentang suatu wilayah subyek masalah tertentu dengan ditambah kemampuan inferensi.
|
Didasarkan pada suatu algoritma yang dapat berupa rumus matematika atau prosedur
berurutan yang tersusun jelas.
|
Didasarkan pada repesentasi
dan manipulasi simbol.
|
Pengolahan obyek bersifat kwalitatif.
|
Pengolahan obyek bersifat kwantitatif.
|
Keuntungan dan Kerugian / Kelemahan Kecerdasan Buatan
1.
Komputer masa depan akan memberikan kenikmatan,
kenyamanan, dan kesenangan yang lebih bagi penggunanya, tetapi sebaliknya akan
mendorong harga komputer menjadi semakin mahal.
Hal-hal yang
ditawarkan bagi para pengguna komputer Kecerdasan Buatan :
-
akan bisa berkomunikasi dengan komputer dengan bahasa
alami / bahasa manusia sehari-hari
-
akan terbebas dari keharusan belajar bahasa pemrograman
dan sistem operasi.
-
para pengguna komputer yang tidak terlatih sekalipun akan
menghasilkan karya yang sangat berguna bagi kepentingannya dengan menggunakan
komputer
-
menggunakan komputer akan tidak lebih sulit daripada
menggunakan pesawat telepon
2.
Komputer akan menjadi semakin lebih berguna.
Hal ini karena
bidang-bidang masalah yang tadinya tidak dapat dipecahkan oleh komputer kini
akan dapat dapat dipecahkan dengan teknik Kecerdasan Buatan.
3.
Biaya pengembangan dan penelitian Kecerdasan Buatan
sangat mahal.
4.
Pengembangan aplikasi Kecerdasan Buatan merupakan hal yang
sangat sulit dan diperlukan waktu yang sangat lama.
5.
Masih sedikitnya perangkat lunak khusus untuk Kecerdasan
Buatan.
Padahal dengan
perangkat luinak khusus ini, pekerjaan pembuatan dan pengembangan perangkat
lunak Kecerdasan Buatan menjadi lebih mudah dan cepat.
6.
Belum terciptanya antarmuka (interface) bahasa alami khusus untuk Kecerdasan Buatan.
Perangkat lunak
Sistem Manajemen Basis Data (DataBase
Management System / DBMS) merupakan salah satu tipe perangkat lunak
konvensional pertama yang sudah bisa mengambil keuntungan dari terciptanya
bahasa alami ini.
Perangakat
lunak DBMS ini bisa lebih cepat dan lebih mudah mengambil data yang disimpan
dalam basis data tanpa harus menggunakan teknik pemrograman yang rumit.
III. KONSEP KONSEP DALAM KECERDASAN BUATAN
1.
Agen Cerdas
Agen (agent)
adalah sesuatu yang dapat melihat, merasakan (perceiving), memahami, dan
mengerti lingkungannya melalui detektor (detektor) / sensor (censor)
dan bertindak (acting) atas lingkungan itu pula melalui media sarananya
(effector).
Manusia
mempunyai agen berupa mata, telinga, dan sebagainya yang berupa
detektor/sensor. Sedangkan tangan, kaki, mulut, dan sebagainya merupakan
efektornya. Robot mempunyai kamera, detektor infra merah, dan sebagainya sebagai
sensor; dan motor-motor listrik, lengan mekanik sebagai efektornya.
Tugas dari
Kecerdasan Buatan adalah merancang program agen (agent program),
yaitu suatu fungsi yang mengimplementasikan peta agen dari persepsi hingga
aksi. Sedangkan program yang dijalankan tersebut memerlukan sebuah peralatan
tertentu yang dapat berupa komputer atau perangkat keras khusus untuk menangani
tugas tertentu yang dikenal sebagai arsitektur (architecture).
2.
Komponen Pendukung
Agen Cerdas
Visi (Vision)
Visi merupakan
indera yang paling mengesankan / impresif (impressive). Informasi
tentang dunia luar (environment) diberikan secara detail tanpa butuh
banyak usaha.
Visi merupakan
salah satu obyek studi Kecerdasan Buatan yang paling intensif dan salah satu
cara untuk memasukkan fenomena fisik ke dalam representasi internal (internal
representation). Visi dimulai dari mata, alat untuk menangkap dan
memfokuskan cahaya yang memantul dari obyek, setiap titik dari obyek. Merupakan
problematika bagaimana menciptakan alat yang dapat bekerja seperti mata. Sampai
akhirnya pada tahun 1950-an ditemukannya teori pengenalan pola (pattern
recognition).
Gambar 3.1. Tahapan pemrosesan visual
Bahasa
(Language)
Sebagaimana
pada visi, problematika dalam bahasa adalah bagaimana membawa informasi yang
disediakan dunia luar dan diterjemahkan ke dalam representasi internal dengan
tepat. Dengan adanya penelitian di bidang Kecerdasan Buatan ini telah
menimbulkan kebangkitan bahasa dari model konvensional yang hanya mengandalkan
bilangan (numerical) dan teks (text) ke arah manipulasi entitas
simbolik dan representasi kompleks.
Untuk tingkat
yang lebih luas, studi tentang bahasa ini lebih banyak menggunakan istilah representasi
semantik untuk mewakili representasi internal.
Tabel berikut
memperlihatkan hubungan antara bahasa pemrosesan konvensional dan bahasa
komputasi.
Tabel 3.1. Konsep bahasa pemrograman
konvensional v.s bahasa pemrograman Kecerdasan Buatan.
Bahasa
Pemrograman Konvensional
|
Bahasa
Pemrograman Kecerdasan Buatan
|
Komputasi bersifat manipulasi teks dan bilangan
|
Berupa simbol, konsep, aturan, relasi.
|
Algoritma prosedural sebagai pemecahan masalah
|
Bahasa deskriptif (menggambarkan fakta dan
relasi-relasi yang diketahui).
|
Menentukan urutan langkah kepada pemecahan.
|
Searching/heuristic dipakai untuk pemecahan.
|
Kesimpulan yang deterministik secara keseluruhan
|
Tidak diketahui jika kumpulan algoritma bertemu
|
Tipe data karakter dan angka
|
Tipe data atom, obyek, listing program
|
Peubah terdeklarasi sebelumnya dan bertipe
|
Tidak perlu pendeklarasian sebelumnya (peubah tipe
tertentu dapat dibuat jika diperlukan dalam proses)
|
Peubah berdimensi tetap
|
Dimensi dari struktur data dapat berkembang atau
menyusut menurut proses pemecahan
|
Representasi informasi yang pasti/tepat
|
Representasi informasi yang tidak pasti
|
Jawaban eksak/pasti/tepat yang dicari
|
Jawaban memuaskan seperti apapun dicaris
|
Tahapan
analisis bahasa untuk melakukan pemecahan masalah dalam bidang Kecerdasan
Buatan adalah sebagai berikut:
1.
acoustic-phonetic, yaitu
tanggung jawab membawa suar dan menerjemahkan input ke dalam kata-kata.
2.
morphological-syntactic, adalah
tanggung jawab membawa dan menetapkan bentuk sintak dan ucapan
3.
semantic_pragmatic, adalah
tanggung jawab menyiapkan arti analisis ucapan tersebut.
Gambar 3.2. tiga tingkat analisis linguistik.
Contoh:
Jika kita
menemukan sebuah suara ‘k’ seperti “kite”, diikuti dengan suara ‘a’ seperti
“apple”, diikuti dengan suara ‘t’, maka kita cukup beralasan untuk menyimpulkan
bahwa kita mendengar kata “cat”.
Pada tingkat
selanjutnya, sintaks suatu bahasa membantu memutuskan bagaimana kata
digabungkan untuk membuat makna yang lebih luas. Inilah apa yang disebut dengan
struktur fungsional (functional structure). Hingga kita berusaha
memahamkan suatu kalimat seperti “Sebuah toko menjualkan pedagang seekor
anjing”. Dari kalimat tersebut perlu ketegasan makna siapa atau apa yang dijual
dan kepada siapa.
Untuk mengatasi problem ketegasan makna di atas,
diperlukan sebuah representasi internal yang dapat mengarahkan informasi sesuai
dengan maksud. Level representasi internal ini berada dalam wilayah semantik
dan pragmatik, dan sebagai intermediate structure antara kalimat dengan
representasi internal. Sebagian peneliti Kecerdasan Buatan sepakat untuk
menggunakan parsing. Dalam perancangan parsing ini mutlak
diterapkan suatu aturan gramatikal agar makna informasi tidak terbelah. Aturan
gramatikal yang biasa digunakan dan mungkin terbaik adalah context-free
grammar.
Representasi
Pengetahuan (Knowledge Representation)
Representasi
pengetahuan berbentuk basis pengetahuan (knowledge base), merupakan
sentral komponen dari Kecerdasan Buatan. Secara informal, representasi
pengetahuan adalah himpunan tentang fakta-fakta yang berhubungan dengan lingkungan. Tiap-tiap
fakta yang ada disebut kalimat (sentence). Jadi, kalimat yang
diekspresikan dalam bahasa disebut bahasa representasi pengetahuan (knowledge
representation language).
Ada
tiga tahap pengembangan model Kecerdasan Buatan ini, yaitu:
● Tahap
Konseptual
Definisi
pengetahuan (menunjukkan dunia mikro yang tidak lengkap). Obyek-obyek dengan
ukuran, fungsional dan sifat-sifat deskriptif.
● Tahap
Representasi
Jaringan
semantik untuk merepresentasikan obyek-obyek dan sifat-sifatnya.
● Tahap
Implementasi
Reduksi
representasi untuk menuju tujuan yang memuaskan. Sistem aturan produksi yang
digunakan untuk beroperasi pada obyek-obyek.
Perencanaan
(Planning)
Perencanaan
merupakan suatu teknik penyelesaian masalah yang melibatkan penentuan suatu
aliran (atau urutan) aksi-aksi yang membawa suatu sistem dari suatu keadaan
tertentu kepada keadaan atau tujuan yang diingini.
Perencanaan
berkaitan dengan sistem produksi (production system), kendali (control),
temporal reasoning, frame problem, dan pencarian (searching).
Contoh
perencanaan yang sederhana disajikan sebagai berikut :
A.
Checker Board (Path Planning)
Dalam bentuk
yang umum melibatkan pemilihan bagaimana menggerakkan beberapa obyek dalam dua
atau tiga dimensi tanpa tumbukan.
Dalam dunia
nyata, perencanaan Kecerdasan Buatan diaplikasikan pada navigasi otomatisasi
kendaraan. Skenarionya berisi area, obyek kendaraan, dan lokasi tujuan. Tugas
perencanaan Kecerdasan Buatan adalah mencari jalan terpendek untuk sampai ke
tujuan.
Gambar 3.3. Problem perencanaan untuk
ilustrasi checker board
B.
Block World
Pada gambar di
bawah, lengan manipulator dipakai untuk memindahkan blok-blok di atas meja. Di
sana diberikan mobilitas manipulator, spesifikasi keadaan yang diharapkan dan
keadaan awal tertentu (atau pengenal otomat), kemudian diharapkan adanya suatu
urutan aksi-aksi untuk mewujudkan keadaan tertentu.
Gambar 3.4. Problem perencanaan untuk
ilustrasi block world
Secara umum,
sebuah perencanaan Kecerdasan Buatan dinamakan plan generator,
membutuhkan entitas-entitas seperti diagram berikut:
* bergantung pada representasi keadaan problem yang dipilih
Gambar 3.5. Entitas yang diperlukan untuk
plan generator
Strategi
Pengendalian (Controlling Strategy)
Strategi
pengendalian Kecerdasan Buatan dilakukan dengan pernyataan (statement)
yang merupakan kalimat deklaratif. Pernyataan ini mengandung banyak elemen.
Oleh karena itu harus diolah secara bertingkat sebagaimana diagram pada Gambar
3.6.
Untuk
mengarahkan suatu model Kecerdasan Buatan dapat dilakukan dengan membuat
pernyataan dengan memanfaatkan antara lain: aturan logika (rule of logic),
deduksi (deduction), modus ponen, logika predikat, dan manipulasi well-formed
formulas (wffs).
Gambar 3.6. Tahap-tahap pengendalian model
Aturan logika
berisi hubungan and, or, irisan, gabungan dan lain sebagainya. Aturan deduksi
adalah suatu prosedur penyimpulan yang sistematis atas suatu kondisi dengan
melihat fakta-fakta yang cakupannya lebih luas atau keseluruhan. Modus ponen
adalah aturan logika dimana bila suatu implikasi bernilai benar disertai dengan
diketahui benarnya anteseden maka dapat disimpulkan benarnya konsekuen. Logika
predikat adalah suatu kumpulan logika pemodelan kebenaran pernyataan yang
berdasar pada nilai-nilai yang diterima oleh bagian-bagian tertentu (atau frase)
dari pernyataan tersebut. Misalnya, kita memiliki himpunan bilangan bulat A,
maka kita dapat membuat fungsi predikat bilangan ganjil, Aganjil,
dimana Aganjil dapat bernilai benar jika anggotanya memang ganjil
dan salah untuk selainnya. Manipulasi wffs merupakan strategi yang lebih
kompleks dan melibatkan dua topik, yaitu resolusi dan unifikasi.
Resolusi
Pendekatan resolusi
menghasilkan klausa-klausa baru dari sebuah himpunan inisial. Implementasi
resolusi mempunyai tujuan untuk mengembangkan suatu prosedur sistematis pada
sebuah basis data, dimana wffs-nya tidak memuaaskan, dengan kata lain
tidak ada interpretasi wff yang masuk akal. Untuk itu, hal pertama yang
perlu dilakukan adalah mengonversi pernyataan dalam basis data logika dan
hipotesis ke dalam bentuk klausa (clause) yang melibatkan disjungsi
literal.
Resolusi
diproses dengan menambahkan basis data dengan negasi hipotesis yang diinginkan.
Kemudian klausa diselesaikan dalam basis data tambahan sampai kontradiksinya
ditemukan. Jika tidak ditemukan, kita simpulkan bahwa keadaannya konsisten, dan
berarti hipotesisnya, pada kenyataannya salah (false).
Contoh:
Basis data (D1)
berisi pernyataan-pernyataan di bawah ini (basis data diasumsikan konsisten):
(1).
P1
(2).
P1 → q1
(3).
q1 → q2
Hasil
dibuktikan menggunakan basis data D1, sehingga q2 benar
(true). Kemudian, ¬q2 ditambahkan ke D1,
klausa dikonversi ke sebuah bentuk yang memudahkan resolusi, dan proses
resolusi pasangan dilakukan.
Basis data D2
kemudian termodifikasi menjadi
(1).
P1
(2).
¬P1 È q1
(3).
¬q1 È q2
(4).
¬q2
Resolusi antara
(2) dan (3) adalah sebagai berikut :
q1 È ¬P1
¬q1 È q2
¬P1 È q2
Hasil D3:
(1).
P1
(2).
¬P1 È q1
(3).
¬q1 È q2
(4).
¬q2
(5).
¬P1 È q1
Resolusi antara
(4) dan (5):
¬q2
q2 È ¬q1
¬P1
Hasil D4:
(1).
P1
(2).
¬P1 È q1
(3).
¬q1 È q2
(4).
¬q2
(5).
¬P1 È q1
(6).
¬P1
Perhatikan
bahwa resolusi antara (1) dengan (6) menghasilkan kontradiksi (¬P1 Ç P1).
Sehingga ¬q2 inkonsisten dengan D1; dimana q2 adalah
true.
Unifikasi
Unifikasi
adalah usaha untuk mencoba membuat dua ekspresi menjadi identik
(mempersatukan keduanya) dengan mencari substitusi-substitusi tertentu untuk
mengikuti peubah-peubah dalam ekspresi mereka tersebut. Unifikasi merupakan
suatu prosedur sistematik untuk memperoleh peubah-peubah instan dalam wffs.
Ketika nilai kebenaran predikat adalah sebuah fungsi dari nilai-nilai yang
diasumsikan dengan argumen mereka, keinstanan terkontrol dari nilai-nilai
selanjutnya yang menyediakan cara memvalidasi nilai-nilai kebenaran pernyataan
yang berisi predikat. Unifikasi merupakan dasar atas kebanyakan strategi
inferensi dalam Kecerdasan Buatan. Sedangkan dasar dari unifikasi adalah
substitusi.
Suatu substitusi
(substitution) adalah suatu himpunan penetapan istilah-istilah kepada
peubah, tanpa ada peubah yang ditetapkan lebih dari satu istilah. Sebagai
pengetahuan jantung dari eksekusi Prolog, adalah mekanisme unifikasi.
Aturan-aturan
unifikasi :
1.
Dua atom (konstanta atau peubah) adalah identik.
2.
Dua daftar identik, atau ekspresi dikonversi ke dalam
satu buah daftar.
3.
Sebuah konstanta dan satu peubah terikat dipersatukan,
sehingga peubah menjadi terikat kepada konstanta.
4.
Sebuah peubah tak terikat diperssatukan dengan sebuah
peubah terikat.
5.
Sebuah peubah terikat dipersatukan dengan sebuah
konstanta jika pengikatan pada peubah terikat dengan konstanta tidak ada
konflik.
6.
Dua peubah tidak terikat disatukan. Jika peubah yang satu
lainnya menjadi terikat dalam upa-urutan langkah unifikasi, yang lainnya juga
menjadi terikat ke atom yang sama (peubah atau konstanta).
7.
Dua peubah terikat disatukan jika keduanya terikat
(mungkin melalui pengikatan tengah) ke atom yang sama (peubah atau konstanta).
Pencarian
(Searching)
Hal pertama
yang perlu diperhatikan dalam proses pencarian adalah representasi masalah. Ada
beberapa skenario untuk studi pencarian sebagai fungsi untuk memilih
representasi. Sebagai contoh, kita mungkin memilih untuk memperhatikan ruang
masalah yakni representasi ruang keadaan dalam wilayah representasi graf
(graph).
Sebelum
berjalan jauh, kita perlu mendefinisikan problem pencarian. Sebuah problem
pencarian, P, dinyatakan dengan
P = {D,
S, T, G}
dengan,
D adalah
himpunan keadaan sistem yang mewakili keadaan ruang masalah (problem
sate-space).
Si Î D adalah keadaan awal
T = { t1,
t2, . . . } adalah himpunan transformasi (operator dan aturan)
G Ì D adalah himpunan keadaan tujuan.
Suatu solusi
untuk D dinyatakan dengan Ts, yaitu urutan ti= t1,
t2, . . ., tn; dengan tn . . . (t2(t1(S1)))
Î G.
Catatan:
D dan T dapat
memiliki nilai tertinggi atau tak terhingga namun dapat dihitung (countably
infinite). Kita juga dapat membagi D dengan dua bagian berikut:
1).
Dr Ì D
dimana terdapat Ts, sehingga
tn
. . . (t2(t1(S1))) Î Dr
merupakan
keadaan yang dapat tercapai (reachable state).
2).
Dur Ì D
dimana tidak terdapat Ts, sehingga
tn
. . . (t2(t1(S1))) Î Dur
merupakan
keadaan yang tidak dapat tercapai (unreachable state).
Jika G Ç Dr,
maka dapat diselesaikan.
Metode State
Space Graph (SSG)
Sebuah State
Space Graph (SSG) adalah diagraph yang menjelaskan D dan T. Mode SSG
mewakili elemen D, sedang busur (arc) mewakili elemen T; ti Î T menghasilkan busur dalam SSG antara mode di
dan dj Î D ke dj
– ti (di) yang diketahui.
Contoh:
Suatu graf
representasi dari P mempunyai aturan sebagai berikut:
Fakta (basis
data yang diketahui) : {abg} - Si
Dengan aturan :
1 jika a b, maka c
2 jika b g, maka d
3 jika a c, maka e
4 jika e d, maka f
5 jika d g, maka f
1-2-3-4
|
2-1-3-4
|
1-3-2-4
|
2-1-3-5
|
1-3-2-5
|
1-2-3-5
|
1-2-5
|
2-1-5
|
2-5
|
|
||||
|
||||
Gambar 3.7. (a) jaring inferensi; (b) jalur
pencarian melalui ruang keadaan sistem; (c) kemungkinan urutan aturan menuju Sg
Metode
pencarian lain yang dipakai Kecerdasan Buatan adalah tree search,
dalam hal ini terdapat dua metode, yaitu depth first dan breath
first search.
Pembelajaran
(Learning)
Definisi sistem
pembelajaran dalam Kecerdasan Buatan adalah pengembangan kemampuan
sistem melalui identifikasi dan implementasi algoritma pembelajaran (learning
algorithm) yang dapat meningkatkan kinerja algoritma lain atau untuk
beradaptasi atas dasar informasi atau pengalaman sebelumnya.
Sedangkan
definisi pembelajaran sendiri adalah sistem pembelajaran (induktif)
untuk melakukan deskripsi internal yang masuk akal (plausible) untuk
menjelaskan petunjuk-petunjuk hasil pencarian dan berguna untuk memprediksi
petunjuk-petunjuk baru.
Sistem yang
dapat secara otomatis menerapkan suatu konsep high-level baru (semacam
aturan), memodifikasi konsep, dan meningkatkan kinerja secara gradual melaui
pengalaman merupakan ciri sistem pembelajaran. Generasi sekarang dari sistem
Kecerdasan Buatan hampir semua secara eksklusif menggunakan deduksi sebagai
dasar pembelajaran. Alasannya adalah karena kemampuan deduksi untuk membuktikan
tujuan-tujuan dan fakta-fakta yang beragam. Namun demikian, mereka tak mampu
untuk menghasilkan pengetahuan (fakta-fakta) baru secara otomatis. Dengan kata
lain, mereka tidak dapat melakukan inferensi induktif.
Secara
konseptual, pembelajaran biasanya berhubungan dengan
1.
Self-improvement atau
pengembangan diri.
2.
Adaptasi ke lingkungan yang berbeda atau baru.
3.
Modifikasi perilaku.
4.
Concept formulation and refinement,
termasuk generalisasi atauspesialisai model konseptual.
Beberapa
paradigma pembelajaran yang digunakan dalam Kecerdasan Buatan antara lain adalah
sebagai berikut:
1.
Belajar menghafal (rote learning). Ini sama dengan
mengingat fakta-fakta dan aksi-aksi. Tidak diperlukan pemahaman terhadap
data-data. Dalam konteks ini, lawan kata “learning” adalah “forgetting”.
2.
Memberi nasihat (advice taking), memberi kontrol
informasi. Paradigma ini memudahkan pembuatan representasi aturan-aturan
tambahan. Sebagai contoh saran : “if . . . , then . . . ” .
3.
Mempelajari konsep dari contoh atau bukti (learninng
concept from example or evidence). Ini merupakan paradigma pembelajaran
yang paling powerful dan memungkinkan untuk diimplementasikan dengan banyak
cara.
Beberapa
aspek untuk paradigma ini adalah:
●
Belajar dari contoh secara langsung. Proses induksi
digunakan untuk menghasilkan sebagian dari struktur pengetahuan yang ada dengan
menggunakan informasi ‘contoh’.
●
Belajar dari contoh mungkin digunakan untuk menghasilkan
keseluruhan aturan-aturan baru.
●
Belajar dari contoh hampir sama dengan belajar melaui
analogi-analogi. Ini berarti kesimpulan atau aksi-aksi baru berdasar atau
mempunyai kesamaan struktur dengan kesimpulan atau aksi-aksi sebelumnya.
●
Belajar dari contoh-contoh dapat dibagi dalam dua
kategori, yaitu melibatkan pencarian ruang informasi untuk konsep clustering,
dan pada level yang lebih tinggi, untuk mendeskripsikan konsep.
Gambar 3.8. Paradigma belajar konsep-konsep
dari bukti-bukti
4.
Belajar dengan eksplorasi (learning by exploration).
Alam memberikan contoh terbaik berupa kemampuan adaptasi makhluk hidup,
kemampuan untuk menjaga kehidupan (survival) tercermin dari perilaku
makhluk.
5.
Belajar dari analogi (learning by analogy).
Belajar dari analogi adalah suatu cara untuk menghubungkan pengetahuan dengan
domainnya.
Gambar 3.9. Paradigma belajar analog
IV. ARSITEKTUR DAN LINGKUNGAN
SISTEM KECERDASAN BUATAN
4.1.
Arsitektur Sistem Kecerdasan Buatan
Dalam
mengimplementasi sistem Kecerdasan Buatan, diperlukan algoritma-algoritma
paralel. Algoritma-algoritma tersebut antara lain untuk pencarian, optimasi,
pengukuran kepuasan, sistem produksi, pencocokan pola dan graf. Untuk mendukung
algoritma-algoritma tersebut, diperlukan struktur data untuk merepresentasikan
pengetahuan yang mampu melakukan manipulasi paralel.
Oleh karena
itu, dalam desain arsitektur sistem pengetahuan harus melibatkan
komponen-komponen berikut:
●
Penyederhanaan representasi
●
Struktur pengetahuan
●
Mekanisme inferensi
Perangkat keras
atau arsitektur komputer yang diminta oleh sistem Kecerdasan Buatan adalah
sebuah komputer yang dapat melaksanakan pemrosesan paralel. Sedangkan perangkat
lunaknya harus dikembangkan dengan bahasa yang mempunyai kemampuan paralel dan
logika yang handal, seperti Lisp dan Prolog.
Untuk
meningkatkan kecepatan pemrosesan dan ukuran memori dimungkinkan untuk tidak
melakukan peningkatan kecepatan perangkat keras, tetapi melalui pembuatan
arsitektur perangkat lunak dan perangkat keras yang berbeda secara radikal.
Solusi yang ditawarkan dalam hal ini adalah:
●
Desain pemrograman dengan kemampuan paralel.
●
Keefisienan programer dalam menggunakan bahasa tersebut.
●
Implementasi bahasa tersebut pada arsitektur/perangkat
keras yang tepat.
4.2.
Sistem dan Lingkungan Pengembangan Kecerdasan Buatan
Komputasi
Kecerdasan Buatan adalah komputasi simbolik, dimana dia sangat berbeda dari
komputasi konvensional (numerik). Perbedaan komputasi – seperti juga yang telah
dikemukakan pada “Proses Komputasi Kecerdasan Buatan” – itu dapat dilihat pada Tabel 5.1.
Karena
perbedaan komputasi tersebut, maka sistem pengembangan perangkat lunak
Kecerdasan Buatan dan lingkungannya berbeda dengan sistem komputer
konvensional.
Tabel 5.1. Perbedaan Komputasi Konvensional
dengan Komputasi Kecerdasan Buatan.
Komputasi
Konvensional
|
Komputasi
Kecerdasan Buatan
|
Format
keluaran berupa bit, byte, angka, dan fungsi
|
Hubungan
simbol, konsep, dan aturan-aturan
|
Menggunakan
algoritma prosedural yang menyelesaikan problem
|
Bahasa
deskriptif (menguraikan fakta-fakta yang diketahui dan hubungan)
|
Menggunakan
tahap-tahap urutan tertentu untuk penyelesaian (algoritma).
|
Penggunaan
search untuk menemukan penyelesaian (heuristik).
|
Kesimpulan (conclusion)-nya
bersifat determistik.
|
Tidak tahu
apakah algoritma memusat (converge).
|
Tipe data :
angka dan karakter
|
Tipe data :
atom, obyek, list (program)
|
Perlu
deklarasi awal dan tipe variabel
|
Tidak perlu
deklarasi awal atau tipe data (variabel tipe-tipe tertentu dapat dapat dibuat
apabila ia diperlukan selama proses penyelesaian)
|
Dimensi
variabel yang tetap
|
Dimensi
struktur data dapat tumbuh atau menyusut selama proses
|
Representasi
informasi yang eksak
|
Representasi
informasi yang tidak eksak
|
Jawaban yang
eksak
|
Jawaban yang
memuaskan
|
Sistem
pengembangan perangkat lunak Kecerdasan Buatan membutuhkan fitur-fitur berikut
ini:
1.
Kemungkinan untuk mengembangkan model-model dan mekanisme
penyimpulan secara incemental, dengan dekomposisi penyelesaian problem
ke ukuran yang lebih kecil, unit-unit penyelesaian interelated. Incremental
adalah program dapat dikembangkan pada compiler/interpreter
(sistem) yang berbeda tapi harus dapat dipadukan hasil akhirnya menjadi satu
kesatuan.
2.
(a). Struktur kontrol yang fleksibel untuk memudahkan
pengarahan pemrograman kepada tujuan akhir.
(b). Struktur kontrol yang fleksibel untuk memfasilitasi pengarahan program
data.
(c). Struktur kontrol yang fleksibel untuk memfasilitasi rekursi.
3.
Struktur kontrol yang fleksibel untuk memfasilitasi
pemrograman paralel.
4.
Kemampuan komunikasi sistem yang interaktif.
5.
Debugger untuk mencek program, khususnya untuk unifikasi,
rekursi, dan lain-lain.
6.
Fasilitas representasi data simbolik yang buitl-in, dan
cara untuk memperluas representasi tersebut menuju struktur pengetahuan yang
kompleks.
7.
Fasilitas pattern-matching.
8.
Fasilitas strategi-strategi pengikatan variabel
sebagaimana pendekatan penyelesaian trial and error.
Fitur-fitur
lingkungan perangkat lunak Kecerdasan Buatan yang diharapkan adalah sebagai
berikut:
1.
Pengembangan program bersifat incremental.
2.
Editor yang terpadu (cerdas) sebagai bagian sistem.
3.
Compiler/interpreter yang bersifat
incremental.
4.
Debugger yang user friendly dan cerdas.
5.
Kemampuan layar berkecepatan dan beresolusi yang tinggi.
6.
Antarmuka yang khusus untuk instrumentasinya.
7.
Kapasitas memori yang besar.
V. REPRESENTASI PENGETAHUAN
Hampir semua aplikasi Kecerdasan
Buatan tersusun dari dua bagian pokok, yaitu basis pengetahuan (knowledge base) dan mekanisme inferensi
(inference mechanism).
Basis pengetahuan berisis
fakta-fakta tentang objek dalam domain yang ditentukan dan saling hubungannya
satu sama lain. Basis pengetahuan juga bisa berisi pikiran, teori, prosedur
praktis dan saling hubungannya. Basis pengetahuan membentuk sumber sistem kecerdasan
dan digunakan oleh mekansme inferensi untuk melakukan penalaran dan menarik
kesimpulan.
Mekanisme inferensi adalah suatu
rangkaian prosedur yang digunakan untuk menguji pangkalan pengetahuan dengan
cara yang sistematik pada saat menjawab pertanyaaan, memecahkan persoalan atau
membuat keputusan dalam suatu domain yang telah ditentukan.
Terdapat banyak bentuk representasi pengetahuan dan
basisnya.
5.1.
Skema
Representasi Pengetahuan
Agar komputer
bisa bertingkah laku seperti seorang cerdas, maka ia harus mempunyai
pengetahuan terlebih dahulu tentang sesuatu domain tertentu.
Pengetahuan
dapat diperoleh dari/terdapat dalam otak seorang pakar atau berupa buku,
artikel, jurnal ilmiah, memo, dan prosedur atau apa saja yang penting sudah
terkodifikasi.
Proses pengumpulan
dan pengorganisasian pengetahuan disebut rekayasa
pengetahuan.
Proses ini
barangkali merupakan langkah yang paling sulit dan memerlukan waktu yang banyak
dalam pembuatan program Kecerdasan Buatan.
Representasi
skema pengetahuan memiliki dua karakteristik umum :
1.
Bisa diprogram dengan bahasa komputer yang ada dan
disimpan dalam memori.
2.
Dirancang agar fakta-fakta dan pengetahuan lain yang
terkandung di dalamnya bisa digunakan untuk penalaran.
Skema
representasi pengetahuan secara umum dikategorikan sebagai deklaratif atau prosedural.
Skema
deklaratif digunakan untuk menggambarkan fakta-fakta pernyataan (assertion). Termasuk metoda ini adalah
logika (logic), jaringan semantik (semantic networking), bingkai (frame) dan naskah (script).
Skema prosedural
berhubungan dengan aksi dan prosedur. Skema representasi pengetahuan prosedural
meliputi prosedur atau upa rutin dan kaidah produksi.
Kunci
keberhasilan setiap pembuatan program Kecerdasan Buatan tertelak pada pemilihan
skema representasi pengetahuan yang paling baik dan paling tepat serta yang
sesuai dengan domain pengetahuan serta maslah yang akan dipecahkan.
5.2.
Logika
(Logic)
Merupakan
bentuk representasi pengetahuan yang paling tua.
Logika
merupakan suatu pengkajian ilmiah tentang serangkaian penalaran, sistem kaidah
dan prosedur yang membantu proses penalaran.
Gambar 1. Menggunakan logika menuju
penalaran
Terdapat
dua bentuk dasar penalaran dalam logika untuk membuat inferensi yang diambil
dari premis :
a.
Deduktif
Penalaran ini
bergerak dari prinsip/premis umum menuju konklusi khusus. Proses deduktif
umumnya dimulai dari suatu silogisme atau pernyataan premis dan inferensi.
Proses deduktif
umumnya terdiri dari tiga bagian : premis mayor, premis minor, dan konklusi.
Contoh :
Premis
mayor : Jika Hujan
turun, saya tidak akan lari pagi.
Premis
minor : Pagi ini hujan
turun.
Konklusi :
Oleh karena itu, pagi ini saya tidak akan
lari pagi.
b.
Induktif
Penalaran
induktif dimulai dari masalah khusus menuju ke masalah umum. Atau dengan
perkataan lain, penalaran induktif menggunakan sejumlah fakta atau premis yang
mantap untuk menarik kesimpulan umum.
Contoh:
Premis 1 : Dioda yang salah menyebabkan peralatan elektronik rusak.
Premis 2 : Transistor rusak menyebabkan elektronik rusak.
Premis 3 : Sirkuit terpadu (IC) rusak menyebabkan peralatan
elektronik tidak berfungsi.
Konklusi : Maka, peralatan semi-konduktor rusak merupakan penyebab
utama rusaknya peralatan elektronik.
Satu hal yang
menarik dari penalaran induktif adalah konklusinya tidak pernah final atau
mutlak. Konklusi dapat berubah jika fakta baru sudah ditemukan. Jika semua
fakta yang mungkin tidak dimasukkan ke dalam salah satu premis, maka selalu
akan timbul ketidakpastian di dalam konklusi. Akibatnya, hasil penalaran
induktif akan selalu mengandung beberapa ukuran ketidakpastian. Walaupun
demikian, jika lebih banyak fakta dan premis yang digunakan dalam penalarannya,
maka ketidakpastian konklusi itu akan berkurang. Semakin banyak pengetahuan
yang dimiliki, semakin banyak inferensi konklusi yang akan terjadi.
Dalam
melaksanakan penalaran menggunakan logika, sebuah komputer harus menggunakan
konversi silogisme dan proses penalaran deduktif atau induktif ke dalam bentuk
yang sesuai dengan manipulasi komputer.
Hal ini
merupakan sistem kaidah dan prosedur yang memungkinkan komputer bisa menarik
inferensi dari berbagai premis yang menggunakan berbagai teknik logika. Metoda
ini dikenal dengan logika komputasional
(computational
logic).
Bentuk
logika komputasional ada dua macam :
1.
Logika Proposisional / Kalkulus Proposisional
Suatu proposisi
tidak lebih daripada suatu pernyataan (statement)
yang menyatakan benar atau salah. Ini merupakan premis yang dapat digunakan
untuk memperoleh proposisi baru atau inferensi. Kaidah ini digunakan untuk
menentukan benar atau salah suatu proposisi baru.
Suatu
proposisi, premis atau kaidah disimbolkan denagn mengunakan huruf besar.
Misalnya,
A = Tukang pos
mengantar surat mulai senin sampai Sabtu
B = Hari ini
Hari Minggu
C = Maka, hari
ini tukang pos tidak mengantar surat
Dua atau lebih
proposisi bisa digabungkan dengan menggunakan penghubung logika/operator
logika, yaitu and, or, not dan implies.
Penggunaan
penghubung logika / operator logika ini sama dengan penggunaan aljabar Boolean.
a.
Not
Tabel nilai
kebenaran untuk not
A
|
not A
|
T
|
F
|
F
|
T
|
Contoh :
A = Hari ini
hujan
Not A = Hari ini
tidak hujan
b.
And
Kombinasi dua proposisi menggunakan and akan bernilai benar jika kedua proposisi awal bernilai benar.
Tabel nilai kebenarannya adalah sebagai berikut
A
|
B
|
A and B
|
T
|
T
|
T
|
T
|
F
|
F
|
F
|
T
|
F
|
F
|
F
|
F
|
Contoh :
A = Mobil saya berwarna hitam
B = Mesin mobil berwarna hitam itu 6 silinder
C = A and B
= Mobil saya berwarna hitam dan mesinnya 6
silinder
Contoh lain.
Sebuah perusahaan akan menerima karyawan baru dengan
syarat :
1.
Seorang wanita berusia
tidak lebih dari 25 tahun and
2.
Lulusan Informatika
Dengan demikian, seorang pelamar baru bisa diterima
menjadi karyawan bila kedua syarat tersebut dipenuhi.
c.
Or
Kombinasi dua proposisi menggunakan or akan bernilai benar jika salah satu atau kedua proposisi
awal bernilai benar. Tabel nilai kebenarannya adalah sebagai berikut
A
|
B
|
A or B
|
T
|
T
|
T
|
T
|
F
|
T
|
F
|
T
|
T
|
F
|
F
|
F
|
Jika kita tinjau contoh di atas,
A = Seorang wanita berusia tidak lebih dari 25 tahun
B = Lulusan Informatika
C = A or B
Maka cukup salah satu persyaratan dipenuhi, seseorang
dapat diterima sebagai karyawan.
Bentuk or ini dikenal dengan inclusive or. Bentuk or yang lain adalah
exclusive or. Or eksklusif bernilai
benar jika salah satu prososisi awal bernilai benar tapi tidak keduanya
sekaligus. Notasi yang digunakan untuk eksklusif or adalah xor.
d.
Implies
Penghubung
logika implies dimaksudkan, bahwa jika proposisi A benar, maka
proposisi B pun harus benar. Kebenaran A memasukkan kebenaran B.
Pengertian yang
sama untuk operator logika ini adalah if_then. Tabel nilai
kebenaran untuk operator ini adalah sebagai berikut
A
|
B
|
A ® B
|
T
|
T
|
T
|
T
|
F
|
F
|
F
|
T
|
T
|
F
|
F
|
T
|
Misalnya,
A = Mobil rusak
B = Saya tidak
bisa naik mobil
C = A implies B
= Mobil rusak, ‘karena itu’ saya tidak bisa
naik mobil.
= If mobil rusak, then saya
tidak bisa naik mobil.
Dengan
menggunakan berbagai simbol proposisi dan menghubungkannya dengan penghubung
logika, maka serangkaian premis yang lengkap dengan konklusinya bisa
diekpresikan.
Karena masih
berkaitan dengan pernyataan, kemampuan untuk merepresentasikan pengetahuan
dalam kehidupan nyata dengan benar masih diragukan atau setidaknya masih
terbatas. Sehingga penggunaannya dalam Kecerdasan Buatan tidak begitu berarti.
Oleh karena itu, dalam Kecerdasan Buatan lebih baik menggunakan logika
predikat/kalkulus predikat.
2.
Logika Predikat / Kalkulus Predikat.
Logika predikat
merupakan suatu bentuk logika yang seluruhnya menggunakan konsep dan kaidah
logika proposisional yang sama. Logika predikat dapat memecah pernyataan ke
dalam bagian komponen yang disebut obyek,
karakteristik obyek, atau beberapa keterangan obyek. Logika predikat dapat
menggunakan variabel dan fungsi variabel di dalam pernyataan logika simbolik.
Dengan demikian. Logika simbolik dapat diterapkan untuk pemecahan
masalah-masalah praktis.
Dalam kalkulus
predikat, suatu proposisi atau premis dibagi menjadi 2 bagian, yaitu:
-
argumen (obyek), dan
-
predikat (keterangan / karakteristik)
Argumen adalah individu atau obyek yang membuat keterangan.
Dalam bahasa Inggris, obyek dan individu merupakan kata benda yang berfungsi sebagai subyek dan obyek suatu kalimat (sentence).
Dalam sebuah
kalimat, predikat bisa berupa kata kerja atau bagian kata kerja. Untuk membuat suatu proposisi, keduanya (argumen
dan predikat) digabungkan. Bentuk umumnya sebagai berikut:
predikat
(individu[obyek]_1, individu[obyek]_2)
Contoh:
1.
Proposisi : Jhony mencintai Marry.
Ekspresi
kalkulus predikat : mencintai(Jhony, Mary).
Di
sini,
Mencintai -> produk (keterangan)
Jhony -> argumen (obyek)
Mary -> argumen (obyek)
2.
Proposisi : Baju disimpan di lemari.
Ekspresi
kalkulus predikat : disimpan_di(lemari, baju).
3.
Proposisi : Mobil berada di dalam garasi.
Ekspresi
kalkulus predikat : di_dalam(mobil, garasi).
Dalam banyak
hal, predikat mungkin hanya mempunyai satu argumen saja.
Contoh:
4.
Proposisi : Pintu terbuka.
Ekspresi
kalkulus predikat : buka(pintu).
5.
Proposisi : Ban gembos.
Ekspresi
kalkulus predikat : gembos(ban).
6.
Proposisi : Krishna adalah seorang laki-laki.
Ekspresi
kalkulus predikat : laki-laki(Krishna).
Argumen dapat
juga berupa peubah (variable).
Contoh:
7.
Proposisi : Jhony suka Marry.
Bila Jhony = x, dan Marry = y, maka
ekspresi kalkulus predikatnya : suka(x, y).
Dengan
menggunakan peubah, basis pengetahuan dapat terbentuk. Pada contoh 7 di atas
basis pengetahuannya ialah suka(x, y), yang berarti “x suka
y”. Pengetahuan diekspresikan dalam kalkulus predikat yang bisa dimanipulasi
agar menimbulkan inferensi.
Contoh:
8.
Proposisi : Jhony suka Marry
Ramona suka
Marry
Misalkan Jhony = x, Marry = y, dan Ramona = z.
Maka ekspresi
Suka(x,y) dan
tidak suka(z,y) implies tidak suka(x,z)
menerangkan
bahwa
“Jika Jhony suka
Marry dan Ramona tidak suka Mary, maka
Jhony tidak suka Ramona”.
Pemberian nilai
(assigning) nama individu atau obyek
tertentu kepada suatu peubah dinamakan instantiasi.
Individu atau obyek itu menjadi suatu “instance”
(contoh) variabel tersebut. Pada contoh 8 di atas, varibel untuk Jhony, Marry,
dan Ramona adalah x, y, dan z.
Pengukuraan kuantitas (quantifier)
adalah simbol yang mengijinkan untuk menyatakan suatu rangkaian atau cakrawala
dalam suatu ekspresi logika.
Ada dua
pengukuran kuantitas yang digunakan, yaitu:
-
ukuran kuantitas
universal.
Simbol yang
digunakan ", berarti
“untuk semua” atau “untuk setiap”.
Simbol ini menyatakan bahwa ekspresi berlaku secara universal benar, yaitu
untuk semua nilai.
Contoh:
1.
Semua orang Texas adalah warga negara Amerika Serikat
Dengan
quantifier ditulis
("x)[Orang Texas(x), warga
negara Amerika Serikat(x)]
-
ukuran kuantitas
eksistensial.
Simbol yang
digunakan $, berarti
“terdapat” atau “ada”.
Contoh:
2.
Beberapa mobil berwarna merah
Dengan
quantifier ditulis
($x)[mobil(x)dan
berwarna merah(x)]
Apa yang telah
diuraikan pada bagian di atas merupakan suatu sistem untuk mengekspresikan
pengetahuan (berupa fakta-fakta) ke dalam bentuk simbolik. Yang selanjutnya
dilakukan adalah menggunakan simbol itu untuk membuat inferensi. Yakni
bagaimana cara menggunakan pengetahuan itu untuk menjawab pertanyaan, menalar,
atau menarik kesimpulan.
Berbagai kaidah
digunakan untuk memanipulasi ekspresi logika dalam rangka membuat ekspresi
baru. Kaidah yang dimaksud diantaranya adalah modus ponens, modul tollens,
dan sillogisma. Apabila proposisi
awal benar, maka – dengan langkah-langkah yang correct – akan menghasilkan kesimpulan yang juga benar.
Pengetahuan
prosedural dapat direpresentasikan dalam bentuk logika predikat. Pernyataan a1, a2,
a3, . . ., an -> B dapat
dipandang sebagai prosedur yang digunakan untuk menghasilkan keadaan yang
memenuhi kondisi B.
5.3.
Jaringan
Semantik (Semantic Network)
Jaringan
semantik merupakan penggambaran grafis dari pengetahuan yang melibatkan
hubungan antara obyek-obyek.
Obyek
direpesentasikan sebagai simpul (node)
pada suatu grafik berbentuk lingkaran dan hubungan antara obyek-obyek dan
faktor deskriptif dinyatakan oleh garis penghubung (link) atau garis lengkung (arch)
berlabel.
Obyek dapat
berupa jenis fisik, seperti: buku,
mobil, meja, atau bahkan orang; merupakan pikiran,
seperti: hukum Ohm; suatu peristiwa/kejadian, seperti: piknik atau suatu
pemilihan; atau tindakan, seperti:
membuat rumah atau menulis buku.
Atribut obyek, seperti: ukuran, warna, kelas,
umur, asal-usul, atau karakteristik lainnya bisa digunakan sebagai node. Dalam
hal ini, informasi rinci tentang sesuatu obyek bisa ditampilkan dengan baik.
Contoh
penerapan jaringan semantik yang mudah ditemui adalah struktur kepegawaian dan
garis keturunan.
Gambar 2. Jaringan semantik garis keturunan
5.4.
Skema (Scheme)
Skema adalah
metoda pengorganisasian, presentasi dan penggunaan pengetahuan tiruan (stereotype) agar komputer bisa menalar.
Pengetahuan
tiruan merupakan pengetahuan yang sudah pasti dan sudah dikenal dengan baik.
Hal ini didasarkan kepada berbagai penampilan, situasi, dan obyek-obyek khusus,
seperti: pengalaman biasa yang konvensional dan proses yang tak bervariasi.
Kita
representasikan pengetahuan semacam itu ke dalam sistem skema. Ada dua jenis skema: skema kerangka / bingkai (frame), dan skema naskah (script).
3.4.1. Skema
Kerangka / Bingkai (Frame)
Bingkai adalah
blok-blok atau potongan-potongan yang berisi pengetahuan mengenai obyek-obyek
khusus, kejadian, lokasi, situasi ataupun elemen-elemen lainnya dengan ukuran
yang relatif besar.
Blok-blok ini
menggambarkan obyek-obyek tersebut dengan sangat rinci.
Detail
diberikan dalam bentuk rak (slot)
yang menggambarkan berbagai atribut (attribute)
dan karakteristik dari obyek tersebut.
Sebuah slot
dapat berisi nilai default, yaitu
nilai yang sudah melekat dan menjadi ciri dari suatu obyek. Misalnya bingkai
pengetahuan slot mobil sedan, memiliki nilai untuk slot jumlah ban otomatis 4
buah.
Sebuah slot
juga dapat mempunyai nilai procedural
attachment, yaitu suatu nilai yang besarnya relatif. Akselerasi mesin
misalnya, mempunyai nilai yang relatif terhadap waktu. Contohnya akselerasi
suatu mesin memiliki nilai 0 – 60 km/jam dalam waktu 4 detik. Dalam waktu 2
detik, mesin tersebut memilki akselerasi yang berbeda.
Sebuah slot
dapat berisi bingkai, dimana bingkai ini juga tersusun atas slot-slot. Misalnya
slot mesin berisi sebuah bingkai mesin yang terdiri atas slot-slot rasio kompresi,
sistem pengapian, besarnya daya dan besarnya torsi.
Gambar
3. Pengetahuan yang ditampilkan dalam hirarki
bingkai yang mewariskan property tingkat bingkai pendahuluan.
Diperoleh
kesimpulan,
BINGKAI MOBIL
|
|
Kelas
|
: Transportasi
|
Pabrik
|
: Audi
|
Negara asal
|
: Jerman
|
Model
|
: 5000 Turbo
|
Tipe
|
: Sedan
|
Berat
|
: 3300 lb
|
Jumlah roda
|
: 4
|
BINGKAI MESIN
|
|
Ukuran Silinder
|
: 3.19 inch
|
Rasio Kompresi
|
: 7.9 – 1
|
Tenaga
|
: 140 HP
|
3.4.2. Naskah
(Script)
Naskah
menggambarkan urutan peristiwa. Naskah biasanya direpresentasikan ke dalam
konteks tertentu. Dalam menggambarkan urutan peristiwa, naskah menggunakan
serangkaian slot yang berisi informasi tentang orang, obyek, dan
tindakan-tindakan yang terjadi dalam suatu peristiwa.
Beberapa elemen
naskah yang tipikal meliputi: kondisi
masukan, pendukung (prop),
peran (role) dan adegan (scene).
Kondisi masukan
menggambarkan situasi yang harus dipenuhi sebelum terjadi atau berlaku suatu
peristiwa yang ada dalam naskah. Prop mengacu kepada obyek yang digunakan dalam
urutan peristiwa yang terjadi. Role mengacu kepada orang-orang terlibat dalam
naskah. Hasilnya adalah kondisi yang
ada sesudah peristiwa dalam naskah berlangsung. Jalur (track) mengacu kepada variasi yang mungkin terjadi dalam naskah
tertentu. Dan akhirnya, scene menggambarkan urutan peristiwa aktual yang
terjadi.
Gambaran naskah
tipikal variasi restoran klasik sebagai contoh representasi pengetahuan dalam
format naskah diberikan sebagai berikut.
NASKAH RESTORAN
Jalur : Restoran
swalayan (fast food)
Peran : Tamu,
Pelayan
Pendukung : Counter,
baki, makanan, uang, serbet, garam, merica, kecap, sedotan, dll.
Kondisi Masukan : Tamu lapar –
Tamu punya uang.
Adegan_1 : Masuk
J Tamu parkir
mobil
J Tamu masuk
restoran
J Tamu antri
J Tamu baca menu
dan mengambil keputusan tentang apa yang dipesan
Adegan_2 : Pesanan
J Tamu memberikan
pesanan kepada pelayan
J Pelayan
mengambil pesanan dan meletakkan makanan di atas baki
J Tamu membayar
Adegan_3 : Makan
J Tamu mengambil
serbet, sedotan, garam, dll.
J Tamu membawa
baki makanan ke meja kosong
J Tamu makan
dengan cepat
Adegan_3a
(option) : Membawa pulang
J Tamu membawa
makanan dan pulang
Adegan_4 : Pulang
J Tamu membereskan
meja
J Tamu membuang
sampah
J Tamu
meninggalkan restoran
J Tamu naik mobil
dan pulang
Hasilnya
J Tamu merasa
kenyang
J Uang tamu jadi
berkurang
J Tamu senang
J Tamu kecewa
J Tamu sakit perut
Pergi ke restoran merupakan situasi stereotype yang semua elemennya seperti: kondisi masukan, hasil,
pendukung, peran, dan adegan adalah sama. Tampak bahwa, naskah dapat
menggambarkan dengan akurat situsasi yang terjadi di hampir semua restoran
swalayan (cepat saji / fast food).
Adegan-adegan merupakan naskah mini yang ada di dalam naskah utama yang
melukiskan berbagai upa-bagian dari seluruh proses.
Naskah sangat baik untuk meramalkan apa yang akan terjadi
dalam situasi tertentu. Walaupun peristiwa itu tidak pernah diobservasi
terlebih dahulu, tapi naskah dapat memberikan kemungkinan kepada komputer untuk
meramalkan apa yang akan terjadi, kepada siapa dan kapan. Bila kmputer bisa
‘menembak’ naskah, maka pertanyaan apapun bisa diajukan dan jawaban akurat akan
keluar, walaupun komputer hanya diberi sedikit input pengetahuan orisinil atau
sama sekali tidak diberi input apapun.
VI. PENDEKATAN PENYELESAIAN MASALAH
Tiga langkah utama yang dibutuhkan
untuk membuat sebuah sistem agar dapat menyelesaikan suatu persoalan khusus,
yaitu:
1.
Mendefinisikan problema dengan tepat.
Definisi ini
harus berisi spesifikasi tentang kondisi awal dan situasi akhir yang
menghasilkan solusi yang dapat diterima dari problema tersebut.
2.
Menganalisis problema.
Beberapa sifat
yang sangat penting bisa memiliki dampak yang sangat kuat pada kelayakan banyak
teknik pemecahan problema yang dimungkinkan.
3.
Memilih teknik terbaik dan menerapkannya pada suatu
problema.
6.1.
Hipotesis
Sistem Simbol Fisis
Newell dan Simon
mengemukakan bahwa aktivitas cerdas (intelligent)
dicapai melalui digunakannya :
-
Pola-pola simbol untuk merepresentasikan aspek-aspek
penting dari problema.
-
Operasi pada pola-pola trersebut untuk menghasilkan
solusi potensial dari problema.
-
Proses pencarian untuk memilih sebuah solusi diantara
kemungkinan-kemungkinan yang ada itu.
Asumsi-asumsi
ini membentuk dasar bagi hipotesis sistem
simbol fisis.
Hipotesis
sistem simbol fisis secara implisit membedakan antara pola yang dibentuk oleh susunan simbol-simbol dan media yang dipakai untuk
mengimplementasikannya.
Pendefinisian
struktur dan operasi simbol yang diperlukan dalam pemecahan problema kecerdasan,
serta pengembangan strategi bagi proses pencarian yang bekerja dengan efisien
dan benar untuk mendapatkan solusi yang potensial, dihasilkan oleh struktur dan
operasi semacam ini.
Asumsi-asumsi
hipotesis sistem simbol fisis tetap mendasari hampir semua aspek praktis dan
teoritis dalam sistem pakar, perencanaan, dan pemahaman bahasa alamiah.
6.2.
Representasi
Pengetahuan
Perepresentasian
dimaksud untuk menangkap sifat-sifat penting problema dan membuat informasi itu
dapat diakses oleh prosedur pemecahan problema.
Bahasa
representasi harus dapat membuat seorang pemrogram mampu mnegekspresikan
pengetahuan yang diperlukan untuk mendapatkan solusi problema. Ekspresifitas dan efisiensi merupakan dimensi utama dalam melakukan evaluasi
bahasa-bahasa representasi pengetahuan. Kadang-kadang, ekspresivitas harus
dikorbankan untuk meningkatkan efisiensi. Namun, di lain kesempatan,
representasi yang terlalu ekspresif sangat tidak efisien untuk digunakan dalam
menyelesaikan problema-problema tertentu. Maka yang kemudian harus dilakukan
adalah pengoptimalan keduanya.
Perepresentasian seharusnya :
i.
Memadai untuk mengekspresikan informasi yang diperlukan.
ii. Mendukung
eksekusi yang efisien dari kode yang dihasilkan.
iii. Menghasilkan
sesuatu yang alamiah untuk mengekspresikan pengetahuan yang dibutuhkan.
Pada umumnya,
problema yang diusahakan untuk dapat dipecahkan oleh Kecerdasan Buatan tidak
dapat menyatakan dirinya sendiri menjadi representasi yang ditawarkan oleh
formalisme yang lebih tradisional semacam larik. Kecerdasan Buatan lebih
ditujukan untuk menangani pemecahan problema kualitatif daripada kuantitatif,
lebih dititikberatkan pada pada sebab-akibat daripada penghitungan, serta lebih
diarahkan pada sejumlah pengaturan sejumlah besar pegetahuan yang bervariasi
daripada diimplementasikan pada algoritma tunggal dan mapan (well-defined).
Untuk mendukung
kebutuhan ini, maka bahasa Kecerdasan Buatan
haruslah :
a.
Mampu
menangani pengetahuan kualitatif.
Pemrograman
Kecerdasan Buatan membutuhkan sesuatu untuk menangkap dan menjelaskan alasan
tentang aspek-aspek kualitatif dari suatu problema. Untuk itu biasanya
digunakan suatu bagian dari logika formal yang disebut kalkulus predikat yang
dapat langsung menangkap informasi yang bersifat deskriptif.
b.
Memperbolehkan
dilibatkannya pengetahuan baru dari sejumlah fakta dasar.
Suatu bhs
representasi pengetahuan haruslah memiliki kemampuan untuk melibatkan
pengetahuan tambahan secara sebab-akibat dari suatu deskripsi dasar. Ia dapat
merumuskan dan bernalar dari deskripsi abstrak tentang pelbagai obyek dan
situasi yang ditemui itu.
c.
Memperbolehkan
digunakannya representasi prinsip-prinsip umum dan situasi-situasi khusus.
Karena sebuah
sistem cerdas harus segeneral
mungkin, maka setiap bahasa representasi
membutuhkan peubah. Kebutuhan akan penalaran kualitatif membuat penggunaan dan
implementasi peubah menjadi berbeda dengan yang dipakai dalam bahasa
pemrograman tradisional. Bahasa representasi pengetahuan yang baik mampu
menangani nama-nama peubah, obyek dan niali dengan cara yang dinamis.
d.
Dapat
menangkap arti semantik yang rumit.
Banyak problema
yang disimak oleh Kecerdasan Buatan yang membutuhkan sejumlah besar pengetahuan
yang sangat terstruktur dan saling terhubung. Hubungan semantik merupakan hal
yang penting dalam menggambarkan hubungan sebab-akibat antara peristiwa yang
terjadi sepanjang waktu. Sekalipun dapat digambarkan sebagai sekumpulan
predikat, suatu struktur istilah dengan tingkat yang lebih tinggi diperlukan
untuk membantu baik pemrogram maupun program agar dapat menangani konsep-konsep
rumit secara terpadu.
e.
Memperbolehkan
digunakannya kerangka sebab-akibat meta-level.
Sebuah sistem
cerdas tidak hanya harus mengetahui sesuatu namun juga harus mengetahui apa
yang diketauinya. Ia semestinya tidak hanya dapat menyelesaikan masalah saja
namun juga harus mampu menjelaskan bagaimana ia menyelesaikan masalah dan
mengapa mengambil suatu keputusan tertentu. Selain itu ia juga dapat
menggambarkan pengatahuannya baik dalam istilah yang spesifik maupun yang umum,
menyadari keterbatasan pengetahuannya dan belajar dari interaksinya dengan
dunia luar. Cara seperti inilah yang menghasilkan pengetahuan dengan tingkat
lebih tinggi yang disebut pengetahuan meta.
6.3.
Pendefinisian
Problema Sebagai Proses Pencarian Ruang Keadaan (State Space Search)
Aspek tingkah
laku cerdas yang mendasari teknik penyelesaian problema disebut proses pencarian ruang keadaan (space state search).
Struktur
representasi ruang keadaan bersesuaian dengan struktur pemecahan problema dalam
dua cara penting, yaitu:
1.
Definisi formal dari sebuah problema diperbolehkan untuk
digunakan sebagai kebutuhan untuk mengubah suatu situasi
yang diberikan menjadi suatu situasi yang
diinginkan dengan menggunakan seperangkat operasi yang diperkenankan.
2.
Pendefinisian proses pemecahan problema khusus diijinkan
untuk digunakan sebagai kombinasi teknik-teknik yang telah dikenal dan proses
pencarian, teknik umum dalam mengamati ruang tersebut untuk mencoba menemukan
suatu jalan keluar dari keadaan saat ini menuju keadaan yang dituju.
Proses pencarian
ruang keadaan itu sendiri tidaklah cukup untuk mengotomatisasikan tingkah laku
pemecahan problema secara otomatis.
Proses
pencarian ruang keadaan pencarian
menyeluruh (exhaustive search) melakukan pencarian terhadap seluruh ruang
keadaan serangkaian langkah yang paling dimungkinkan untuk menghasilkan
kemenangan. Metode ini dapat diterapkan pada setiap ruang keadaan, namun ukuran
ruang keadaan yang sangat ‘besar’ membuat pendekatan ini secara praktis tidak
dimungkinkan. Misalnya, dalam permainan catur, terdapat 10120
keadaan atau konfigurasi papan yang berbeda.
Kita tidak
menggunakan exhaustive search tetapi
menjalankan langkah-langkah yang terbukti efektif yang didasarkan pada
aturan-aturan tertentu yang memandu proses pencarian ke arah ruang keadaan yang
paling menjanjikan. Aturan inilah yang dikenal sebagai heuristik (heuristic dari bahasa Yunani yang
artinya menemukan).
A.
Proses Pencarian Heuristik
Heuristik
merupakan strategi untuk melakukan proses pencarian ruang problema secara
selektif, yang memandu proses pencarian di sepanjang jalur yang memiliki
kemungkinan suskses paling besar, dan mengesampingkan usaha yang bodoh dan
memboroskan waktu.
Jika proses
pencarian ruang keadaan merupakan alat untuk memformalkan proses pemecahan
problema, maka heuristik menyuntikkan formalisme tersebut agar dapat
bekerjasama dengan kecerdasan.
Heuristik
mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan
mengorbankan kelengkapan.
Contoh
heuristik adalah algoritma tempat terdekat (shortest
path job), menghasilkan prosedur berikut :
i.
pilih sebuah kota secara sembarang sebagai awal
perjalanan
ii. untuk
memilih kota persinggahan berikutnya, simak seluruh kota yang belum pernah
disinggahi. Pilih kota terdekat dengan kota yang saat ini sedang dikunjungi.
iii. ulangi
langkah kedua sampai semua kota telah dikunjungi.
Eksekusi
prosedur ini membutuhkan waktu n2.
Dalam
heuristik, seringkali dimungkinkan untuk membutktikan adanya batas-batas
kesalahan yang membuat tidak terlalu banyak mengorbankan ketepatan demi kecepatan.
B.
Deskripsi Formal Sebuah Problema
Persoalan
seringkali berisi pernyataan eksplisit atau tersirat dimana di dalamnya dapat
ditemukan rangkaian terpendek atau termurah. Jika hal seperti ini didapati pada
suatu problema, persyaratan ini akan mempunyai pengaruh yang penting dalam
memilih mekanisme yang memadai untuk memandu dalam mencari solusinya.
Secara ringkas
dapat dikatakan bahwa langkah-langkah untuk mendapatkan deskripsi formal dari
sebuah problema menjadi representasi ruang keadaan adalah sebagai berikut :
i.
Definisikan ruang keadaan yang berisi semua konfigurasi
yang dimungkinkan dari obyek-obyek yang relevan (dan bisa pula yang tidak
dimungkinkan). Tentu saja dimungkinkan untuk mendefinisikan ruang seperti ini
tanpa menyebutkan semua ruang yang dikandungnya secara eksplisit.
ii.
Spesifikasikan satu atau lebih keadaan di dalam ruang
keadaan yang menggambarkan situasi-situasi yang dimungkinkan sebagai keadaan
awal proses pemecahan problema. Keadaan-keadaan ini disebut dengan keadaan awal.
iii.
Spesifikasikan satu atau lebih keadaan yang dapat
diterima sebagai solusi problema. Keadaan-keadaan ini disebut dengan keadaan tujuan.
iv.
Spesifikasikan seperangkat aturan yang menggambarkan
sesuatu yang dimungkinkan untuk dilakukan oleh operator.
Untuk hal ini
dibutuhkan pemikiran tentang :
-
asumsi-asumsi tersirat yang terkandung dalam deskripsi
problema informal
-
tingkat generalitas aturan-aturan yang dibuat
-
pekerjaan yang harus dilakukan untuk memecahkan problema
dalam bentuk pra-perhitungan dan tergambarkan dalam aturan-aturan yang ada.
Contoh problema ember air
Kita mempunyai
2 ember. Satu ember bervolume 4 liter dan ember lainnya bervolume 3 liter.
Problemanya adalah bagaimanakah kita bisa mendapatkan air bervolume tepat 2
liter di dalam ember bervolume 4 liter? Proses penakaran hanya dengan memakai
dua ember yang ada.
Ruang
keadaannya dapat digambarkan sebagai himpunan pasangan bilangan bulat (x, y); x
= 0, 1, 2, 3 atau 4, dan y = 0, 1, 2 atau 3; dengan x = jumlah air (liter) pada
ember bervolume 4 liter, dan y = jumlah air (liter) pada ember bervolume 4
liter.
Keadaan awal
adalah (0, 0). Keadaan yang dituju adalah (2, n), untuk sembarang nilai n
(persoalan ini tidak menentukan berapa berapa liter air yang ada di ember
bervolume 3 liter).
Aturan yang
digunakan untuk memecahkan problema ini adalah sebagai berikut:
1.
(x, y ï x <
4) ® (4, y)
2.
(x, y ï y <
3) ® (x, 3)
3.
(x, y ï x >
0) ® (x-D, y)
4.
(x, y ï y >
0) ® (x, y-D)
5.
(x, y ï x >
0) ® (0, y)
6.
(x, y ï y >
0) ® (x, 0)
7.
(x, y ï x+y ³ 4 Ç y >
0) ® (4, y-(4-x))
8.
(x, y ï x+y ³ 3 Ç x >
0) ® (x-(3-y), 3)
9.
(x, y ï x+y £ 4 Ç y >
0) ® (x+y, 0)
10. (x, y ï x+y £ 3 Ç x > 0) ® (0,
x+y)
Arti dari
masing-masing operator aturan di atas adalah
1.
Mengisi ember bervolume 4 liter.
2.
Mengisi ember bervolume 3 liter.
3.
Mengisi sejumlah air dari ember bervolume 4 liter.
4.
Mengisi sejumlah air dari ember bervolume 3 liter.
5.
Mengosongkan/membuang air dari ember bervolume 4 liter.
6.
Mengosongkan/membuang air dari ember bervolume 3 liter.
7.
Menuangkan air dari ember bervolume 3 liter ke ember
bervolume 4 liter sampai ember bervolume 4 liter menjadi penuh.
8.
Menuangkan air dari ember bervolume 4 liter ke ember
bervolume 3 liter sampai ember bervolume 3 liter menjadi penuh.
9.
Menuangkan semua air dari ember bervolume 3 liter ke
ember bervolume 4 liter.
10. Menuangkan
semua air dari ember bervolume 4 liter ke ember bervolume 3 liter.
Asumsi
eksplisit yang diberikan misalnya :
-
ember-ember dapat diisi air dari PAM
-
membuang air dari dalam ember ke luar
-
menuangkan air dari ember yang satu ke ember yang lain,
dan
-
tidak ada alat ukur.
Salah satu
operasi yang dapat memecahkan problema ini adalah sebagai berikut
Jumlah air
(liter) dalam
|
Aturan yang
diterapkan
|
|
ember bervolume 4 liter
|
ember bervolume 3 liter
|
|
0
|
0
|
2
|
0
|
3
|
9
|
3
|
0
|
2
|
3
|
3
|
7
|
4
|
2
|
5
|
0
|
2
|
9
|
2
|
0
|
|
C.
Strategi Pengendalian
Untuk dapat
memecahkan problema, dibutuhkan juga suatu struktur pengendalian/kontrol yang
melakukan pengulangan (looping)
melalui siklus sederhana.
Selama
melakukan proses pencarian untuk mendapatkan solusi dari sebuah problema, kita
tentu akan bertanya-tanya tentang bagaimanakah caranya memutuskan aturan
berikutnya yang akan digunakan kemudian.
Strategi
pengendalian yang baik haruslah
1.
Dapat menimbulkan adanya ‘gerak’.
Strategi
pengendalian yang tidak menyebabkan adanya ‘gerak’ tidak akan pernah sampai
pada sebuah solusi.
Pada problema
ember air, jika kita mulai dengan memilih aturan yang pertama, maka kita tidak
akan pernah dapat menyelesaikan problema.
2.
Sistematik
Strategi
pengendalian yang tidak sistematik akan menyebabkan penggunaan serangkaian
operator aturan beberapa kali sebelum sampai pada sebuah solusi.
Jika kita
memilih aturan-aturan yang dapat digunakan secara acak (random) pada setiap siklus, walaupun akan menimbulkan adanya
‘gerak’ dan akan menghasilkan solusi, namun kita akan sampai pada keadaan yang
sama beberapa kali dan menggunakan lebih banyak langkah yang semestinya
diperlukan.
Strategi
sistematik yang dapat digunakan adalah breadth-first
search, depth-first search, dan best-first search.
D.
Sistem Produksi
Sistem produksi
memiliki struktur proses pencarian. Sistem produksi terdiri dari :
1.
Seperangkat aturan yang masing-masing berisi pola sisi
kiri yang menentukan pemakaian aturan tertentu, dan sisi kanan yang
menggambarkan tindakan yang harus dilakukan jika aturan tertentu tersebut
digunakan.
2.
Satu atau lebih basis data yang berisi informasi tentang
tugas-tugas khusus. Beberapa bagian basis data mungkin bersifat permanen,
sedang yang lain hanya berisi solusi problema yang sedang dihadapi saat ini.
Informasi yang terdapat dalam basis data tersebut mungkin terstruktur dengan
cara tertentu.
3.
Suatu strategi pengendalian yang menentukan urutan
pembandingan suatu aturan dengan basis data dan cara menyelesaikan suatu
konflik yang muncul bila beberapa aturan saling bertumbukan pada saat yang
bersamaan.
6.4.
Penganalisisan
dan Karakteristik Problema
Penganalisisan
problema untuk memilih metode (atau gabungan beberapa metode) yang paling baik
untuk suatu problema tertentu sangatlah penting.
Beberapa
pertanyaan berkenaan dengan penganalisisan suatu problema dapat diajukan
seperti :
1.
Apakah
suatu problema dapat didekomposisi/dipilah-pilah menjadi sejumlah upa-problema
independen yang lebih kecil atau lebih mudah ?
Contoh problema
yang dapat didekomposisi adalah problema menghitung integral tak berbatas.
Misalnya,
ò (x4 + 7x + cos2x) dx
Problema
tersebut didekomposisi menjadi
Untuk problema
yang tidak dapat didekomposisi, ditangani dengan teknik bagi dan taklukan (divide and conquer).
2.
Dapatkah
langkah-langkah penyelesaian yang terbukti tidak tepat, diabaikan atau tidak
perlu dikerjakan ?
Berkaitan
dengan langkah-langkah yang diambil dalam penyelesaian problema, akan muncul 3
problema penting yang berbeda
-
dapat diabaikan, dimana langkah solusi dapat diabaikan,
seperti pada pembuktian teorema.
-
dapat diulang (recoverable),
dimana langkah solusi dapat dibatalkan, seperti pada permainan teka-teki 8 (the 8-puzzle).
-
tidak dapat diulang (irrecoverable),
dimana langkah solusi tidak dapat dibatalkan, seperti pada permainan catur.
Problema yang
dapat diulang dapat dipecahkan dengan strategi pengendalian yang agak rumit
yang kadang-kadang dapat melakukan langkah yang salah. Dibutuhkan pelacakan
kembali untuk mengungkap kesalahan tersebut. Sehingga struktur pengendalian
harus dilakukan dengan memakai pushdown
stack, dimana keputusan-keputusan direkam agar bisa dibatalkan kemudian.
Problema yang
tidak dapat diulang / dibatalkan akan membutuhkan pemecahan oleh suatu sistem
yang mampu melakukan prakiraaan setiap keputusan, karena keputusan yang diambil
merupakan keputusan terakhir.
Beberapa
problema yang tidak dapat diulang dapat dipecahkan dengan cara memakai proses
perencanaan (planning), dimana
seluruh urutan langkah dianalisis terlebih dahulu untuk menemukan apa yang
bakal terjadi bila langkah tersebut benar-benar dilaksanakan.
3.
Apakah
ruang lingkup atau semesta pembicaraan problema dapat diprakirakan ?
Perencanaan
merupakan pemecahan problema tanpa adanya umpan balik (feedback) dari lingkungannya.
Ada jenis
problema yang mempunyai penyelesaian yang pasti dan ada yang tidak pasti.
Untuk
memecahkan problema dengan penyelesaian yang pasti, pendekatan loop terbuka
akan dapat bekerja dengan baik begitu hasil suatu tindakan dapat diprakirakan
dengan sempurna. Di sini, perencanaan dapat digunakan untuk menghasilkan
serangkaian operator (aturan) yang dijamin dapat sampai pada solusi.
Untuk problema
yang penyelesaiannya tidak pasti, perencanaan hanya dapat menghasilkan
serangkaian operator (aturan) yang memiliki probabilitas yang baik untuk sampai
pada solusi. Untuk memecahkan problema semacam ini, dibutuhkan adanya proses
‘revisi rencana’ dengan cara melibatkan adanya proses umpan balik. Perencanaan
seringkali menjadi sangat mahal karena jumlah jalan menuju solusi yang harus
diungkapkan akan naik secara eksponensial terhadap jumlah titik yang
keluarannya tidak dapat diprakirakan.
Memang, jenis
problema yang paling sulit ditangani adalah problema yang tidak dapat
diulang/dibatalkan dan juga dengan keluaran yang tidak pasti.
4.
Apakah
solusi problema yang baik telah dibandingkan dengan semua solusi yang
dimungkinkan ?
Sebuah solusi
problema yang baik dapat bersifat mutlak atau relatif dengan cara dibandingkan
dengan semua solusi yang dimungkinkan.
Sebuah solusi
untuk suatu problema mungkin telah memperoleh jawaban yang diinginkan dengan
mengikuti sebuah lintasan penalaran saja, dengan tidak mempedulikan lintasan
mana yang digunakan.
Contoh sebuah
problema untuk menjawab pertanyaan
“Apakah Agus
hidup?”, berdasarkan pada basis data fakta-fakta sederhana berikut:
1.
Agus adalah seorang laki-laki
2.
Agus adalah seorang berkebangsaan x
3.
Agus dilahirkan pada tahun 140
4.
Semua manusia adalah fana
5.
Semua orang berkebangsaan x meninggal karena adanya
bencana banjir di tahun 179
6.
Tidak ada manusia yang dapat hidup lebih lama dari 170
tahun
7.
Sekarang tahun 1990
Dengan
merepresentasikan setiap fakta dalam bahasa formal, seperti dalam logika predikatif, dan kemudian dengan
memakai metode inferensi
(sebab-akibat), maka akan dapat memperoleh jawaban dari pertanyaan itu.
Dua lintasan (path) penalaran berikut akan sampai pada
jawaban yang benar
Lintasan penalaran 1
|
||
|
|
Pembenaran
|
1.
|
Agus adalah seorang laki-laki
|
Aksioma 1
|
4.
|
Semua manusia adalah fana
|
Aksioma 4
|
8.
|
Agus adalah fana
|
1, 4
|
3.
|
Agus dilahirkan pada tahun 140
|
Aksioma 3
|
7.
|
Sekarang adalah tahun 1990
|
Aksioma 7
|
9.
|
Umur agus adalah 1854 tahun
|
3, 7
|
6.
|
Tidak ada manusia yang dapat hidup lebih lama dari 170
tahun
|
Aksioma 6
|
10.
|
Agus sudah meninggal
|
8, 6, 9
|
Lintasan penalaran 2
|
||
|
|
Pembenaran
|
7.
|
Sekarang adalah tahun 1992
|
Aksioma 7
|
5.
|
Semua orang berkebangsaan x meninggal pada tahun 179
|
Aksioma 5
|
11.
|
Semua orang berkebangsaan x telah meninggal seluruhnya
saat ini
|
7, 5
|
2.
|
Agus adalah seorang
berkebangsaan x
|
Aksioma 2
|
12.
|
Agus sudah meninggal
|
11, 2
|
Karena yang
diinginkan adalah jawaban dari pertanyaan di atas, maka tidak memperdulikan
lintasan mana yang digunakan.
Persoalan di
atas merupakan problema sembarang
lintasan. Untuk problema ini, apabila dengan mengikuti sebuah lintasan
penalaran sudah berhasil memperoleh jawaban yang diinginkan, maka tak ada
alasan untuk melihat adanya kemungkinan suatu lintasan lain yang juga
menghasilkan jawaban yang diharapkan.
Sedangkan
problema wiraniaga yang hendak mencari jarak total terpendek dalam melalui
beberapa kota, merupakan problema lintasan
terbaik. Dalam problema ini, sebuah jawaban tidak dapat dipastikan
kebenarannya kecuali setelah semua lintasan / jalur yang ada dicoba.
Pada umumnya,
problema lintasan terbaik lebih sulit dipecahkan daripada problema sembarang
lintasan. Problema sembarang lintasan seringkali dapat dipecahkan dalam waktu
yang tidak terlalu lama dengan menggunakan heuristik yang menawarkan
lintasan-lintasan mana saja yang sebaiknya ditelusuri. Untuk problema lintasan
terbaik, sebaiknya melibatkan lebih banyak exhaustive
search.
5.
Apakah
basis pengetahuan yang digunakan untuk memecahkan problema bersifat konsisten
secara internal ?
Misalkan
terdapat seperangkat aksioma untuk grup perkalian
1.
XY didefinisikan untuk semua XY
2.
X = Y Ç Y = Z ® X = Z
3.
X = X
4.
(XY)Z = X(YZ)
5.
IX = X
6.
X-1X = I
7.
X = Y ® ZX = ZY
8.
X = Y ® XZ = YZ
Aksioma
tersebut di atas digunakan untuk memecahkan problema
Buktikan bahwa XI = X
Karena
kekonsistenan aksioma yang ada (merupakan basis pengetahuannya), kita dapat
membuktikannya dengan prosedur pembuktian matematika standar.
Sekarang kita
akan memecahkan problema berikut :
“ Seseorang
berdiri pada jarak 50 meter dari sebuah sasaran. Dia merencanakan untuk
menembak sasaran itu dengan sebuah senapan yang pelurunya memiliki kecepatan
500 meter per detik saat keluar dari moncong senapan. Seberapa tinggikah dari
sasaran dia harus mengarahkan senapannya ? “
Karena adannya
ketidak konsistenan dalam basis datanya, maka problema tersebut dipecahkan
sebagai berikut.
Karena adanya
gravitasi yang akan membelokkan arah peluru ke bawah, maka seharusnya dia tidak
mengarahkan senapannya tepat pada sasaran. Akan tetapi jika berasumsi bahwa
peluru tersebut akan menempuh garis lurus, maka hal ini akan bertentangan
dengan yang sesungguhnya terjadi.
6.
Apakah
sebenarnya peranan pengetahuan ?
Yakni, apakah
benar-benar dibutuhkan sejumlah besar informasi untuk memecahkan problema yang
sedang dihadapi, atau pengetahuan hanya penting untuk membatasi proses
pencarian ?
Untuk memcahkan
problema berikut misalnya : “koran-koran mana yang mendukung masalah / isu
tertentu dan mana yang menentangnya ?”. Jelas dibutuhkan banyak pengetahuan
agar dapat memperoleh solusi yang diinginkan.
Berbeda dengan
permainan catur dimana pengetahuan hanya penting untuk membatasi proses
pencarian. Yakni cukup disajikan aturan-aturan untuk menentukan langkah-langkah
yang diperkenankan serta suatu mekanisme pengendalian sederhana yang
mengimplementasikan sebuah prosedur pencarian yang memadai. Pengetahuan
tambahan seperti taktik dan strategi yang baik tentu saja akan membantu untuk
membatasi proses pencarian serta mempercepat eksekusi program.
7.
Apakah
pemecahan suatu problema membutuhkan interaksi antara komputer dan manusia ?
Dengan
perkataan lain, apakah sebuah komputer sendirian dapat diberi problema dan
kemudian menyajikan solusi secara sederhana, atau akankah solusi dari suatu
problema membutuhkan interaksi antara komputer dan manusia ?
Ada 2
jenis problema yang harus dibedakan :
1.
Terkucil (solitary),
Untuk problema
jenis ini, komputer diberi deskripsi problema dan akan menghasilkan sebuah
jawaban, tanpa adanya komunikasi antara dan tanpa penjelasan tentang terjadinya
proses penalaran.
2.
Bercakap-cakap (conversational)
Dimana akan
terjadi komunikasi antara manusia dan komputer, baik itu berupa bantuan tambahan
bagi komputer atau penyajian informasi tambahan bagi pemakai, atau keduanya.
Tentu saja,
perbedaan ini bukanlah merupakan perbedaan yang kaku dalam menggambarkan
problema tertentu.
6.5.
VII. PEMBAHASAN BEBERAPA BIDANG KECERDASAN BUATAN
- Bahasa
Alamiah
- Pengenalan
Suara
- Neural
Networks
- Logika
Samar
- robotic
moving block
5.5.Skema Representasi Pengetahuan
5.6.Logika (Logic)
VIII. PENGENALAN PEMROGRAMAN KECERDASAN BUATAN
Ada dua alat untuk membangun suatu
sistem program aplikasi kecerdasan buatan, yaitu:
1.
Bahasa Pemrograman Khusus
2.
Shell
8.1.
Bahasa
Pemrograman Khusus
Hampir semua
bahasa pemrograman komputer dapat digunakan untuk membuat program aplikasi
kecerdasan buatan. Namun agar lebih mudah dalam implementasi pemrograman dan
akuisisi pengetahuan, umumnya digunakan bahasa pemrograman khusus. Bahasa
pemrograman khusus untuk aplikasi kecerdasan buatandiantaranya adalah Prolog,
Lisp, SmallTalk, Planner, dan sebagainya.
Selain Bahasa
Prolog dan Lisp, sebagian besarnya tidak diperoleh dalam bentuk komersial
(karena tidak diperjualbelikan) hanya untuk kepentingan tertentu, misalnya
hanya untuk kepentingan penelitian (research)
dan pendidikan (education).
Bahasa
pemrograman khusus untuk aplikasi kecerdasan buatan merupakan bahasa
Pemrograman Logika. Pada bagian ini, bahasa pemrograman logika yang akan
dipelajari adalah bahasa Prolog dengan compiler Turbo Prolog 2.0.
8.2.
Bahasa
Prolog
PROLOG
singkatan dari PROgramming in LOGic. Bahasa Prolog merupakan bahasa generasi
kelima, dibangun atas dasar pemrograman alamiah dan logika.
Dari segi
teori, pembangunan gagasan pemrograman dengan logika (programming in logic) yang pertama adalah Kowalski di Edinburgh.
Kemudian didemonstrasikan secara eksperimental oleh Maarten van Emden juga di Edinburgh,
dan diwujudkan oleh Alain Colmerauer
(seorang profesor di Universitas Aix, Marseilles,
Perancis) dengan berhasil membuat interpreter Prolog yang pertama bersama
kelompoknya tahun 1972.
Kelahiran
Prolog sendiri diawali kelika Alain Colmerauer dengan sekelompok peneliti
menghadapi masalah penerjemahan bahasa dengan komputer di Montreal. Hal ini akibat hasil karya Noam Chomsky dalam ilmu bahasa alami dengan bahasa komputer.
Berikut
diuraikan dasar-dasar bahasa pemrograman
Turbo Prolog.
1.
Fakta
Fakta adalah
suatu kenyataan atau kebenaran yang diketahui. Fakta menyatakan hubungan
(relasi) antara dua obyek atau lebih. Fakta dapat juga menunjukkan sifat suatu
obyek. Obyek dapat berupa benda, manusia, hewan, tumbuhan, atau suatu
kejadian/peristiwa.
Bentuk Umum
penulisan fakta di Turbo Prolog:
relasi/sifat(argumen/obyek).
Penulisan fakta
harus diakhiri dengan tanda titik (.).
Contoh:
pedas(cabe).
orangtua(ahmad,hasan).
Orangtua dan pedas
disebut relasi/sifat. Nama relasi,
seperti orangtua, disebut juga predikat. Yang berada di dalam kurung [cabe, ahmad,
dan hasan] menggambarkan obyek dan disebut argumen. Predikat boleh tanpa argumen.
Jadi predikat dapat dapat dikatakan sebagai nama suatu relasi dan menentukan
jenis obyek yang terlibat.
Suatu unsur,
obyek nyata atau konstanta yang tidak tersusun dari obyek lain disebut atom. Jadi cabe, ahmad, dan hasan
merupakan atom-atom.
Misalkan
terdapat fakta berupa relasi yang
diberikan dengan representasi jaringan semantik berikut:
Gambar
4. Sebuah fakta hirarki suatu
keluarga.
Dari gambar jaringan semantic di
atas, kita bisa mengungkapkan hubungan keluarga dengan satu relasi, misalnya orangtua(X,Y); dan dibaca “X adalah
orang tua Y”.
Hubungan ini dituliskan dalam bahasa
Prolog:
orangtua(ahmad,wahyu).
orangtua(siti,wahyu).
orangtua(wahyu,nani).
orangtua(wahyu,iwan).
orangtua(nani,gani).
orangtua(iwan,gina).
Selain
relasi orangtua, dapat juga ditentukan realsi lain seperti anak(Y,Z), kakek(Z,S), cucu(L,M), adik(K,L), dan sebagainya. Sehingga diperoleh:
anak(wahyu,ahmad).
kakek(ahmad,nani).
Contoh
fakta yang berupa sifat:
Gula
berasa manis
Dinyatakan
dalam Prolog:
manis(gula).
2.
Aturan
Misalkan kita ingin agar bisa
menanyakan relasi kakek atau anak dari relasi orangtua tadi, sementara sudah terlanjur menyusun fakta seperti di
atas.
Mungkin terlintas di fikiran kita
untuk membuat saja relasi anak dan kakek sebagai berikut:
anak(wahyu,ahmad).
anak(wahyu,siti).
anak(nani,wahyu).
anak(iwan,wahyu).
anak(gani,nani).
anak(gina,iwan).
kakek(ahmad,nani).
kakek(wahyu,gani).
kakek(wahyu,gina).
Dengan dmk kita mempunyai 3 jenis
predikat untuk menyatakan diagram keluarga itu. Relasi anak disusun terbalik dari fakta untuk relasi orangtua, dan fakta untuk relasi kakek dilacak dari relasi yang ada.
Maka kita dapat mengajukan
pertanyaan seperti: Siapa anak ahmad?
Yang dalam prolog ditulis,
Goal:
anak(X,ahmad)
X
harus huruf besar (karena merupakan variabel), tidak perlu diakhiri dengan tanda
titik.
Prolog akan menjawab,
X = wahyu.
1 Solutions
Untuk pertanyaan : siapa kakek iwan?
Yang dalam Prolog ditulis,
Goal:
kakek(X,iwan)
Prolog akan menjawab,
X = ahmad.
1 Solutions
Cara penulisan fakta baru seperti
itu tentu saja membosankan dan tidak sangkil, apalagi jika kita menghendaki
lebih banyak relasi baru ditambah fakta yang ada sangat banyak.
Untuk itu digunakan cara lain yaitu
dengan membuat aturan, sehingga
dapat memperbesar kemampuan program atau meningkatkan daya nalar program, disamping
sangat sederhana dan mudah.
Untuk membuat suatu aturan kita
hanya perlu suatu rumusan logika sebagai berikut.
Fakta yang ada memperlihatkan realsi
orangtua, maka jika kita ingin
menyatakan relasi anak atau kakek, kita harus merumuskan apa hubungan
antara orangtua dan anak, juga antara orangtua dan kakek.
Secara logika,
A anak B, jika B orangtua A
Dan
A kakek C, jika A orangtua B dan B orangtua C.
Jadi, di sini kita mencari rumusan anak dan kakek dengan relasi yang ada yaitu orangtua.
Dalam relasi orangtua, aturan relasi untuk anak
dalam Prolog ditulis sebagai berikut:
anak(X,Y) if orangtua(X,Y).
Kata if
dapat diganti dengan tanda bagi dan minus (:-),
sehingga menjadi:
anak(Y,X) :- orangtua(X,Y).
sedangkan aturan untuk relasi kakek adalah
kakek(X,Z) if laki_laki(X) and
orangtua(X,Y) and
orangtua(Y,Z).
Dalam aturan di atas ada relasi baru
yang perlu ditambahkan, yaitu laki_laki(X),
untuk memastikan bahwa X bukan seorang nenek.
Kata and
dapat diganti dengan tanda koma (,),
sehingga menjadi:
kakek(X,Z) :- laki_laki(X),
orangtua(X,Y),
orangtua(Y,Z).
Aturan-aturan di atas merupakan klausa.
kakek(X,Z) if laki_laki(X) and orangtua(X,Y) and
orangtua(Y,Z).
Klausa (clause) adalah suatu frase (ungkapan) atau susunan kata yang
dalam Prolog bisa berupa fakta atau aturan yang diakhiri dengan titik.
Klausa dapat merupakan rangkaian upa-klausa-upa-klausa dengan and (konjungsi), or (disjungsi) atau if (implikasi).
Contoh penggunaan disjungsi dalam
suatu aturan berikut:
orangtua(X,Y) :- ibu(X,Y) or ayah(X,Y).
Kata or
dapat diganti dengan tanda titik koma (;),
sehingga menjadi:
orangtua(X,Y) :- ibu(X,Y); ayah(X,Y).
3.
Variabel
Argumen suatu
predikat dapat berupa konstanta (atom) atau variabel atau bahkan obyek lain.
Atom disebut juga obyek nyata (concrete)
sedangkan variabel disebut juga obyek
umum (general). Suatu atom, variabel atau obyek lain dalam prolog
disebut term. Jadi, argumen selalu
berupa term.
Dalam Prolog
terdapat 2 variabel, yaitu:
a.
Variabel bernama.
Yaitu variabel
yang diberi nama, seperti: X, Orang, dan sebagainya.
Karakter
pertama variabel harus huruf besar (capital)
atau garis bawah/underscore (_). Jika
tidak, Prolog akan menganggap sebagai simbol atau konstanta.
Karakter
pertama variabel tidak boleh bilangan.
Nama variabel
juga tidak boleh mengandung suatu karakter khusus, seperti: + (tambah), – (kurang), / (bagi), * (kali) dan sebagainya.
Contoh
pemberian nama variabel yang benar:
Orang
Nama_Orang
_orang
Proyek_01
_Kota
Contoh
pemberian nama variabel yang salah:
2orang /* diawali angka */
nama-orang /* mengandung
operator minus */
tgl/lahir /* mengandung
operator bagi */
proyek_01 /* diawali huruf
kecil */
Untuk
memudahkan pembacaan program, sebaiknya nama variabel menunjukkan (mengandung)
arti yang ditunjuknya. Misalnya:
PendapatanPerKapita
GolonganRuangJabatan
Dalam mencari
jawaban, Prolog melakukan pemadanan (unifikasi). Pada saat pemadanan, variabel
akan mendapatkan nilai. Variabel yang belum mendapatkan nilai disebut variabel bebas (free variable) dan
variabel yang sudah terikat dengan suatu nilai disebut variabel terikat (bound variable). Keterikatan ini
bersifat sementara dan disebut juga instantiasi.
Secara
sederhana, instantiasi berarti berarti proses pengambilan fakta contoh (instance) dari sekumpulan fakta yang ada
dan mengikatkan nilai variabel pada argumen
yang sesuai secara sementara (selama belum ada lacak balik).
Pada Prolog,
keterikatan variabel hanya berlaku pada satu tahap pencarian jawaban. Nilai
suatu variabel tidak dapat dimanfaatkan klausa lain tanpa adanya pemadanan
dengan variabel yang dipakai klausa lain tersebut.
b.
Variabel tak bernama (anonymuous
variable)
Variabel tak
bernama dilambangkan dengan tanda garis bawah/underscore (_).
Variabel ini
digunakan untuk suatu nilai yang diabaikan. Jadi, variabel ini tidak pernah
akan terikat. Jika dipadankan dengan suatu nilai, variabel ini tidak pernah
menyebabkan kegagalan, atau selalu
sepadan (match).
Contoh:
direktur(heru, keuangan).
direktur(joko, produksi).
direktur(syarif, umum).
direktur(didin, operasional).
Jika ingin
menanyakan siapa saja yang jadi direktur, dengan mengabaikan direktoratnya,
dalam Prolog ditulis:
direktur(Orang,_).
maka akan
diperoleh jawaban:
Orang = heru
Orang = joko
Orang = syarif
Orang = didin
Bagaimana jika
dalam Prolog ditanyakan seperti ini:
direktur(_,Direktorat).
Menanyakan
apakah hal itu? Bagaimana pula hasil keluarannya?
Varibel ini
juga bisa dipakai untuk menyatakan kata setiap/semua, seperti: setiap orang mempunyai
nama, dalam Prolog ditulis:
memiliki(_,nama).
4.
Match
Match atau
serasi/sepadan dalam Prolog mengandung beberapa arti dalam perbandingan fakta,
yakni:
a.
Struktur fakta yang sama/identik
orangtua(ali,husein) sepadan/identik dengan orangtua(ali,husein).
b.
Struktur sepadan untuk satu variabel
orangtua(ali,X).
dengan
orangtua(ali,husein).
Di sini, X akan
terikat dengan husein bila X masih bebas. Jika X sudah terikat, misalnya dengan
husein, maka kedua klausa di atas masih match. Ttp jika sudah terikat dengan
nilai lain, tidak akan match atau gagal (fail).
c.
Struktur sepadan untuk dua variabel
orangtua(X,husein).
dengan
orangtua(Y,husein).
Kedua variabel
X dan Y masih bebas, maka akan terjadi penyatuan,n yakni jika nanti Y mendapat
nilai, maka nilai itu pula yang dikandung X, demikian pula sebaliknya.
Keterikatan ini disebut pula dengan freesharing variables, yakni
keduanya masih bebas dan merupakan satu
variabel.
5.
Struktur Program
Lazimnya, struktur program Turbo
Prolog terdiri dari beberapa bagian pokok:
-
Domains
-
Predicates
-
Clauses, dan
-
Goal
Bagian
lain dari struktur program Turbo Prolog: Database,
Constants, Global
dan petunjuk compiler.
F Domains
Bagian domain berisi deklarasi
tipe/jenis data, jadi seperti deklarasi type
dalam Pascal. Di bagian ini, kita menyatan jenis suatu variable atau argument.
Contoh:
Domains
NamaOrang =
symbol
Alamat =
string
PanjangSisi =
integer
LuasLingkaran = real
L_alamat =
alamat*
Deklarasi
L_alamat = alamat* menyatakan bahwa L_alamat merupakan
list dari alamat. Jika ada dua domain
sejenis, maka cara menulisakannya dipisahkan dengan tanda koma (,).
Contoh:
Alamat, Jabatan
= string
Deklarasi domain di atas digunakan
untuk predikat misalnya
data(NamaOrang,Alamat)
Domain dalam suatu predikat adalah
milik argument pada posisi yang ditempati domain dalam predikat tersebut.
Deklarasi domain membedakan suatu domain buatan (yang dideklarasikan) dari
domain buatan yang lain, meskipun berasal dari domain standar yang sama.
Jika kita tidak menggunakan domains
sendiri, kita hanya boleh menggunakan domain standar, seperti:
data(string,string)
Domain standar (baku ) Turbo Prolog adalah sebagai berikut:
a. symbol
Berupa rangkaian huruf asalkan
karakter pertama berupa huruf kecil, angka, dan garis bawah serta tidak
mengandung spasi/karakter khusus.
b. string
Rangkaian karakter yang diapit dalam
tanda petik ganda (”). Panjang maksimum sebuah string adalah 255 karakter. Jika
string tersebut dari file atau terkandung dalam program, bisa mencapai 64
kByte.
Contoh suatu string:
“Fakultas Ilmu Komputer
UNIKU”
c. integer
Bilangan bulat : -32.768 sampai dengan 32.767. Bilangan bulat basis
16 (hexadecimal) diawali dengan tanda
dolar ($).
d. real
Bilangan riil : 1 x 10-307
sampai dengan 1 x 10-308 (1e-307 sampai dengan 1e-308). Jika bilangan bulat diberikan pada argument riil,
maka akan langsung diubah ke riil.
F Predicates
Predikat harus dideklarasikan pada
bagian Predicates dan mendefinisikannya dalam bagian Clauses. Jika tidak, Turbo Prolog tidak
akan mengenalnya.
Nama predikat harus diawali dengan
huruf, boleh huruf besar (tidak dianjurkan) atau huruf kecil, selebihnya bisa huruf, angka, atau garis
bawah. Nama predikat tidak boleh mengandung spasi, tanda minus, asterisk atau
garis miring.
Deklarasi predikat dalam bagian Predicates harus juga disertai argument jika
memang berargumen. Jumlah argument dalam predikat disebut aritas (arity).
Satu predikat boleh memiliki aritas
yang berbeda asal harus dikelompokkan dalam bagian clausesnya.
anggota(Nama)
anggota(Nama,Alamat)
Jenis argument suatu predikat boleh
memiliki domain yang berbeda, seperti:
anggota(nomor,alamat)
anggota(nomor,nama)
Predikat yang sudah didefinisikan berargumen X dengan
domain Xd tidak dapat mengalihkan nilai (nilai X) untuk argument predikat lain
dengan domain Yd meskipun Xd dan Yd berdomain standar sama.
Domains
anggota =
string
nama =
string
nomor =
integer
Predicates
menu(nomor,nama)
tulis(anggota)
clauses
menu(No,Nm):-tulis(Nm),…
Program ini salah karena Nm dalam predikat menu berdomain nama, sedangkan dalam predikat tulis berdomain anggota. Untuk itu salah satu predikat
harus berdomain lebih dari satu, menjadi seperti:
menu(nomor,nama)
menu(nomor,anggota)
Bagian predikat harus ada selama
kita membutuhkan predikat bukan standar.
F Clauses
Merupakan inti program Turbo Prolog.
Boleh juga tanpa Clauses tapi tentunya goal hanya terdiri
dari predikat standar. Jika ada bagian Clauses
harus ada bagian Predicates begitu juga sebaliknya.
Sekumpulan klausa dari predikat yang
sama harus disatukan (dikelompokkan) dalam bagian Clauses dan disebur prosedur (procedure). Bila melakukan
pemanggilan klausa atau matching,
Turbo Prolog melacaknya dari atas ke bawah. Jika Prolog menemukan bandingan
atau kalusa yang match, Prolog
mencatat tempat ditemukannya.
Dengan demikian, urutan prosedur
harus benar untuk menjaga agar Turbo Prolog dapat mencari jawaban dengan benar
dan juga menentukan kecepatan eksekusi program.
F Goal
Goal dalam Turbo Prolog ada dua
macam:
a. Goal eksternal (external goal)
Merupakan goal yang diketikkan
langsung pada prompt Goal:
di jendela Dialog pada compiler
terpadu Turbo Prolog.
b. Goal internal (internal goal)
Goal ini diketikkan pada bagian Goal
di dalam program Turbo Prolog.
Hakekatnya goal ini sama seperti
tubuh suatu kalusa atau dalam hal ini aturan, yang hanya terdiri dari satu atau
lebih upa-goal, tanpa kepala, karenanya tidak menggunakan if (:-).
Cara menuliskan goal contoh:
Goal
write(“Tulis kalimat apa saja, kemudian
Enter\n”),
readln(X),
write(X),
Prolog selalu berusaha agar goal
bisa tercapai, dan sebaliknya kita pun berusaha agar program berhenti dalam
keadaan berhasil.
F Komentar
Komentar satu baris digunakan tanda
persen (%). Sedangkan untuk komentar yang
lebih dari satu baris digunakan paduan tanda garis miring (/) dan asterisk (*).
Contoh:
% ini komentar satu baris, baris pertama
% ini komentar satu baris, baris kedua
/* ini komentar beberapa
baris, awal komentar
*
*
*
* akhir komentar */
/* ini komentar bersarang (nested) /* komentar dalam
komentar */ adalah seperti ini */
8.3.Shell
Shell adalah sebuah program Kecerdasan Buatan yang basis
pengetahuannya masih kosong.
Berdasarkan
pada metode representasi pengetahuan yang dipakai, ada 5 (lima) jenis shell,
yaitu :
1.
Simple rule-base
tools.
Menggunakan if_then dalam
merepresentasikan pengetahuan. Dapat mengelola sampai 5000 kaidah.
Contoh: EXSYS,
INSIGHT 2+, VP EXPERT, dan ESP ADVISOR.
2.
Inductive
tools.
Membangkitkan
kaidah dari contoh-contoh dalam basis pengetahuan.
Ada dua jenis: large inductive yang dijalankan pada
mainframe, dan small inductive yang
dijalankan pada PC.
Contoh: TIMM,
EXPERT-EASE, RULE MASTER, dan SUPER MASTER.
3.
Structured
rule-base tools.
Menggunakan if_then yang
disusun dalam kaidah-set untuk
representasi pengetahuan.
Ada dua jenis: Large-size rule-base tools yang
dijalankan pada mainframe, mesin LISP UNIX, dan small-size rule-base tools yang dijalankan pada PC. Contoh: S.1 dan
OPS5e.
4.
Hybrid
tools.
Menggunakan if_then dalam
representasi pengetahuan. Dikembangkan dengan bahasa LISP, sehingga hanya dapat
menggunakan mesin LISP, VAX, dan UNIX workstation.
Perkembangan
selanjutnya, ada mid-size hybrid tools
yang dapat dijalankan pada PC, dan large-size
hybrid tools yang lebih lengkap dengan jumlah kaidah yang dapat ditangani
lebih dari 1500.
Contoh
mid-size: PC PLUS dan GOLD WORK, large-size: ART dan KEE.
5.
Domain
specific tools.
Mengelola
pengetahuan dengan domain yang sangat spesifik, sehingga dirancang khusus hanya
untuk permasalahan yang dikaji.
bagus banget artikelnya, membantu banget karna besok saya akan mengikuti lomba debat mengenai kecerdasan buatan
BalasHapusbaggus
BalasHapus