290 likes | 407 Views
Game berbasis Artificial Intelligence. Pemrograman Game. Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2012. Sistem yang menggunakan AI. SOLUSI. MASALAH. Basis Pengetahuan. Inference Engine. Sistem dalam AI.
E N D
Game berbasis Artificial Intelligence Pemrograman Game Eko Prasetyo TeknikInformatika Univ. Pembangunan Nasional Veteran JawaTimur 2012
Sistem yang menggunakan AI SOLUSI MASALAH Basis Pengetahuan Inference Engine Sistemdalam AI • Sistem yang menggunakankecerdasanbuatan, akanmencobauntukmemberikan output berupasolusidarisuatumasalahberdasarkankumpulanpengetahuan yang ada. • Untukmembangunsuatusistem yang mampumenyelesaikanmasalah, perludipertimbangkan 4 hal: • Mendefinisikanmasalahdengantepat. Pendefinisianinimencakupspesifikasi yang tepatmengenaikeadaanawaldansolusi yang diharapkan. • Menganalisismasalahtersebutsertamencaribeberapateknikpenyelesaianmasalah yang sesuai. • Merepresentasikanpengetahuan yang perluuntukmenyelesaikanmasalahtersebut. • Memilihteknikpenyelesaianmasalah yang terbaik.
MendefinisikanMasalahSebagaiSuatuRuangKeadaan Misalkanpermasalahan yang dihadapiadalah “PermainanCatur”, makaharusditentukan: 1. Posisiawalpadapapancatur; • Posisiawalsetiappermainancaturselalusama, yaitusemuabidakdiletakkandiataspapancaturdalam 2 sisi, yaitukubuputihdankubuhitam
MendefinisikanMasalahSebagaiSuatuRuangKeadaan (2) 2. Aturan-aturanuntukmelakukangerakansecara legal; • Aturan-aturaninisangatbergunauntukmenentukangerakansuatubidak, yaitumelangkahdarisatukeadaankekeadaan lain. Misalkanuntukmempermudahmenunjukkanposisibidak, setiapkotakditunjukkandalamhuruf (a, b, c, d, e, f, g) padaarahhorisontal, danangka (1, 2, 3, 4, 5, 6,7 8) padaarahvertikal. Suatuaturanuntukmenggerakkanbidakdariposisi (e,2) ke (e,4), dapatditunjukkandenganaturan: • IF BidakputihpadaKotak(e,2), • And Kotak(e,3) Kosong, • And Kotak(e,4) Kosong • Then Gerakkanbidakdari (e,2) ke (e,4)
MendefinisikanMasalahSebagaiSuatuRuangKeadaan (3) 3. Tujuan (goal); • Tujuan yang ingindicapaiadalahposisipadapapancatur yang menunjukkankemenanganseseorangterhadaplawannya. Kemenanganiniditandaidenganposisi Raja yang sudahtidakdapatbergeraklagi. • ContohdiatasmenunjukkanrepresentasimasalahdalamRuangKeadaan (State Space),yaitusuaturuang yang berisisemuakeadaan yang mungkin. • Kita dapatmemulaibermaincaturdenganmenempatkandiripadakeadaanawal, kemudianbergerakdarisatukeadaankekeadaan yang lain sesuaidenganaturan yang ada, danmengakhiripermainanjikasalahsatutelahmencapaitujuan. • Sehinggasecaraumum, untukmendeskripsikanmasalahdenganbaik, harus: • Mendefinisikansuaturuangkeadaan; • Menetapkansatuataulebihkeadaanawal; • Menetapkansatuataulebihtujuan; • Menetapkankumpulanaturan.
RuangKeadaan • AdabeberapacarauntukmerepresentasikanRuangKeadaan: • Graph Keadaan • PohonPelacakan Graph Keadaan • Graph terdiri-dari node-node yang menunjukkankeadaanyaitukeadaanawaldankeadaanbaru yang akandicapaidenganmenggunakan operator. • Node-node dalam graph keadaansalingdihubungkandenganmenggunakanarc (busur) yang diberipanahuntukmenunjukkanarahdarisuatukeadaankekeadaanberikutnya. • Dalampraktiknya, sangatlahsulituntukmenggambarkan graph keadaan.
1 3 4 4 6 7 M T 2 8 6 5 3 4 2 A H I D E J F C B G Graph Keadaan • Padagambar, adalintasan 4 dari M ke T, yaitu: • M-A-B-C-E-T • M-A-B-C-E-H-T • M-D-C-E-T • M-D-C-E-H-T • Pada graph ini, adajugalintasan yang tidaksampaiketujuanataumenemuijalanbuntu, yaitu: • M-A-B-C-E-F-G • M-A-B-C-E-I-J • M-D-C-E-F-G • M-D-C-E-I-J • M-D-I-J • Tanpamempertimbangkanarah, akandidapatsiklus: D-C-E-I-D, node-node iniakanselaluberulang (pada graph tanpaarah).
M T T T T Level-0 Level-1 Level-2 Level-3 Buntu Level-4 Tujuan A D B C I E E F H F J H C I J G G J I Level-5 Buntu Buntu Tujuan Tujuan Level-6 Buntu Buntu Tujuan PohonPelacakan • Untukmenghindarikemungkinanadanya proses pelacakansuatu node secaraberulang, makadigunakanstrukturpohon.
PohonPelacakan • Strukturpohondigunakanuntukmenggambarkankeadaansecarahirarkis. • Pohonterdiridaribeberapa node. • Node yang terletakpada level-0 disebutdengannama “akar”. • Node akarmenunjukkankeadaanawal yang biasanyamerupakantopikatauobyek. • Node akariniterletakpada level ke nol. • Node akarmemilikibeberapapercabangan yang terdiri-atasbeberapa node successor yang seringdisebutdengannama “anak” danmerupakan node-node perantara. • Namunjikadilakukanpencarianmundur, makadapatdikatakanbahwa node tersebutmemiliki predecessor. • Node-node yang tidakmemilikianakseringdisebutdengannama node “daun” yang menunjukkanakhirdarisuatupencarian, dapatberupatujuan yang diharapkan (goal) ataujalanbuntu (dead end). • Padagambartersebut, sudahtidakterlihatlagiadanyasiklus, karenasetiap node tidakdiperbolehkanmemilikicabangkembalike node dengan level yang lebihrendah.
Air tak terbatas 4 liter (teko A) 3 liter (teko B) Contoh 1: Masalahteko air • Ada 2 buahtekomasing-masingberkapasitas 4 liter (teko A) dan 3 liter (teko B). • Tidakadatanda yang menunjukkanbatasukuranpadakeduatekotersebut. • Adasebuahpompa air yang akandigunakanuntukmengisikan air padakeduatekotersebut. • Permasalahannya: Bagaimanakahkitadapatmengisikantepat 2 liter air kedalamteko yang berkapasitas 4 liter ?
Tujuan Keadaan Awal (2,0) (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) (4,0) (4,1) (4,2) (4,3) Penyelesaian A. Identifikasiruangkeadaan. • Permasalahaninidapatdirepresentasikandengan 2 bilangan integer, yaitu x dan y: • x = air yang diisikanpadateko 4 liter (teko A); • y = air yang diisikanpadateko 3 liter (teko B); • Ruangkeadaan: (x,y) sedemikianhingga x{0,1,2,3,4} dan y{0,1,2,3}. B. Keadaanawal & tujuan. • Keadaanawal, keduatekodalamkeadaankosong: (0,0); • Tujuan, keadaandimanapadateko 4 liter berisitepat 2 liter air: (2,n) untuksembarang n. C. Keadaanteko air. • Keadaankeduatekodapatdilihatpadagambar.
Penyelesaian (2) D. Aturan-aturan
Penyelesaian (3) E. Representasiruangkeadaandenganpohonpelacakan. • Pencariansuatusolusidapatdilukiskandenganmenggunakanpohon. • Tiap-tiap node menunjukkansatukeadaan. • Jalurdari parent ke child menunjukkansatuoperasi. • Tiap-tiap node padapohonpelacakaninimemiliki node-node child yang menunjukkankeadaan yang dapatdicapaioleh parent.
Graph keadaansolusi Contohsolusipadamasalahteko air
Latihan • Bagaimanajikaadateko A berkapasitas 4 liter danteko B berkapasitas 5 liter. Bagaimanacaramengisi 2 liter kesalahsatuteko ? • Bagaimanajikaadateko A berkapasitas 5 liter danteko B berkapasitas 7 liter. Bagaimanacaramengisi 6 liter keteko B? • Bagaimanajikaadateko A berkapasitas 5 liter danteko B berkapasitas 7 liter. Bagaimanacaramengisi 1 liter kesalahsatuteko ?
Contoh 2: Petanidan 3 bawaannya • Seorangpetaniakanmenyeberangbersama 3 bawaannya, yaitu: seekorkambing, seekorserigala, dansayur-sayurandengansebuahperahumelaluisungai. • Perahuhanyabisamemuatpetanidansatupenumpang yang lain (kambing, serigalaatausayur-sayuran). • Jikaditinggalkanolehpetanitersebut, makasayur-sayuranakandimakanolehkambing, dankambingakandimakanolehserigala. • Permasalahan: Bagaimanacarapetanibersama 3 bawaannyasampaidiseberang ?
Penyelesaian A. Identifikasiruangkeadaan. • Permasalahaninidapatdilambangkandengan (Petani, Sayur, Kambing, Srigala.) • Nilai 0 berartididaerahasal, nilai 1 didaerahseberang. B. Keadaanawal & tujuan. • Keadaanawal: • Posisi: (0, 0, 0, 0) • Tujuan: • Posisi: (1,1,1,1)
Penyelesaian (2) C. KeadaanPetanidan 3 bawaannya D. Aturan-aturan Keadaanawal Tujuan
Penyelesaian (3) E. Representasiruangkeadaandenganpohonpelacakan
Graph keadaansolusi optimal Contohsolusi
Latihan: Keluargamenyeberangdenganperahu • Adasatukeluarga yang akanmenyeberangsungaimenggunakanperahu. • Keluargatersebutterdiridari: Ayah, Ibu, dan 2 anak. • Masalahnyakapasitasperahuhanyamampumemuat paling banyak 1 orangdewasaatau 2 anak, jikamelebihikapasitasmaksimalmakaperahuakantenggelam. • Permasalahan: Bagaimanacarasatukeluargatersebutmenyeberansungai ?
Latihan: Missionarisdan Monster • Ada 6 penumpang, terdiridari 3 missionarisdan 3 monster yang bersama-samaakanmenyeberangsungaimenggunakansebuahperahu. • Perahuhanyamampumengangkutmaksimal 2 penumpang. • Jikadisalahsatutepijumlahmissionariskalahbanyakdengan monster makamissionarisakandimakanoleh monster tersebut. • Permasalahan: Bagaimanacaramenyeberangkan 6 penumpangtersebut ?
Latihan: Keluargamenyeberangsungaidenganlampu • Adasebuahkeluargaterdiridarikeponakan, anak, ibu, ayah, kakek. • Merekaakanmenyeberangisungaidengansebuahjembatankayu. Jembatankayutersebuthanyadapatmemuat paling banyak 2 orang. • Suasanasaatitugelapgulitasehinggauntukmenyeberangdibantudenganlampupeneranganberupalamputeplok (oplek). Masalahnya, minyaktanahdalamlamputeploktersebuthanyadapatbertahanuntukmenerangiselama30 menit, terhitungawalsesipenyeberangan. Jikaminyaktersebutsudahhabismakalampuakanmatidanpenyeberangantidakdapatdilanjutkan. • Karenafaktorusiadankebiasaanmenyeberangsungai, setiapanggotakeluargamempunyaikeberanian yang berbedadalammenyeberangisungai. • Keponakandapatmenyeberangdalamwaktu 1 menit. • Anakdapatmenyeberangdalamwaktu 3 menit. • Ibudapatmenyeberangdalamwaktu 6 menit. • Ayah dapatmenyeberangdalamwaktu 8 menit. • Kakekdapatmenyeberangdalamwaktu 12 menit. • Aturannya, jikaduaorangbersama-samamenyeberangmakadurasipenyeberanganakanmengikutiorangdengandurasimenyeberanglebih lama. • Bagaimanacaratersebutmembagitugasuntukbisamenyeberangkansemuaanggotakeluargadenganpersediaanminyakdalamlamputeplok yang terbatastersebut ?
Latihan: Pangeranberkuda • Adaseorangpengeran yang menunggangikudaakanmelompatdarisatumenarakemenara yang lain. • Diantara 2 menaraituadasejumlah spot yang tertatasedemikianrupasehinggapangerandapatmenggunakannyasebagaibatuloncatankemenarakedua, tetapidengansyarat: • Diaharusmelompatisemua spot. • Mulaidarisebuah spot sembarangdanharuskembalike spot awal yang dipilih. • Setiap spot (selain spot awal yang dipilih) hanyabolehdilewatitepatsatu kali. • Karenamenunggangikuda, makapelompatannyaharusmenggunakanlompatankuda (sepertipermainancatur). • Permasalahan: Bagaimanaurutanpelompatanpangerandankudanyapada spot tersebut ?
Tugas 3 Saatnyaandamembuat game