Agung Toto Wibowo Bourg, David M., dan Seeman, Glenn, ”AI for Game Developers “, O'Reilly, 2004 Russell, Stuart and Norvig, Peter, “Artificial Intelligence a Modern Approach – Second Edition”, Prentice Hall, 2003
Learning pada game Learning : belajar dari data sebelumnya, bisa history Fungsi untuk mengontrol strategi, pergerakan NPC Beberapa algoritma yang bisa dipergunakan Fuzzy Logic (knowledge based) Bayesian Neural Network
Fuzzy Logic Digunakan untuk : mengontrol NPC, menilai/ mengklasifikasikan ancaman pemain, penentuan tingkat, dan sebagainya Contoh pada perhitungan ancaman tim berdasar jarak, dan ukuran. Jarak bisa dibagi menjadi dekat, jauh, dan sangat jauh Ukuran bisa dibagi menjadi kecil, sedang, menengah, dan besar Tingkat ancaman musuh bisa dibagi menjadi bukan ancaman, ancaman sedang, dan ancaman tinggi
Variabel Fuzzy Variabel dalam suatu sistem fuzzy. Contoh : berat badan, tinggi badan, dsb Himpunan Fuzzy (Fuzzy set) Himpunan fuzzy yang mewakili suatu kondisi pada suatu variabel fuzzy. Contoh : Variabel suhu terbagi menjadi 3 himpunan fuzzy, yaitu : panas, hangat, dingin. Variabel nilai terbagi menjadi : tinggi, sedang, rendah Himpunan fuzzy memiliki 2 atribut, yaitu : - Linguistik, yaitu penamaan suatu group yang mewakili suatu kondisi, misalnya panas, hangat, dingin - Numeris, yaitu ukuran dari suatu variabel seperti : 17,19, 21, 33, dst Himpunan Fuzzy
Himpunan Semesta keseluruhan nilai yang boleh dioperasikan dalam suatu variabel fuzzy. Contoh: Semesta untuk variabel berat badan : [1, 150] Semesta untuk variabel suhu : [0,100]. Domain Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkan dalam Semesta dan boleh dioperasikan dalam suatu himpunan fuzzy. Contoh : DINGIN =[0,60] HANGAT=[50,80] PANAS=[80, + ) Himpunan Fuzzy
[x]= 0; x a (x-a)/(b-a); a x b 1; x b [x]= (b-x)/(b-a); a x b 0; x b Fungsi Keanggotaan : Fungsi Linier
[x] = 0; x a atau x c (x-a)/(b-a); a x b (c-x)/(c-b); b x c Fungsi Keanggotaan: Segitiga
[x]= 0; x a atau x d (x-a)/(b-a); a x b 1; b x c (d-x)/(d-c); c x d Fungsi Keanggotaan: Trapesium
[x;a,b,c] sigmoid = 0; x a 2 ((x - a)/(c - a)) 2 ; a x b 1 - 2((c - x)/(c - a)) 2 ; b x c 1; x c Fungsi Keanggotaan: Sigmoid
[x;a,b,c] phi = [x;c-b,c-b/2,c] sigmoid ; x c [x;c,c+b/2,c+b] sigmoid ; x > c Fungsi Keanggotaan: Phi
Fuzzy Logical Operator double FuzzyAND(double A, double B) { return MIN(A, B); } double FuzzyOR(double A, double B) { return MAX(A, B); } double FuzzyNOT(double A) { return A; }
Contoh : Menentukan Ancaman Fuzzy Set JarakFuzzy Set Kekuatan
Rule Matrix Proses : Fuzzification derajat keanggotaan Rule Evaluation inferensi rule dari konsekuen ke antisenden Defuzzyfication penentuan hasil fuzzy Contoh : Jarak = 55, Kekuatan 18 Rule Matrik Ancaman
More Fuzzy : Baca referensi AI, metode-metode Fuzzy yang lain seperti Mamdani, Sugeno, Tsukamoto
Naïve Bayes NoAksi 1Aksi 2Aksi 3 Aksi 4 (class label) 1Memukul MenendangMemukul 2 MenendangMemukulJurus 3MenendangMemukulJurusMemukul 4 JurusMemukulMenendang 5JurusMemukulMenendangJurus 6MemukulMenendangJurusMemukul 7MenendangJurusMemukulMenendang 8JurusMemukulMenendang 9 Memukul 10Menendang MemukulJurus 11JurusMemukul 12Menendang JurusMenendang
P(h|D) = P(D|h) P(h) / P(D) h:hypothesis D: data P(h): probabilitas independen dari h P(D): probabilitas independen dari D P(D|h): probabilitas kondisional D jika diberikan h P(h|D): probabilitas kondisional h jika diberikan D h = arg max P(h|D) map hHhH = arg max P(D|h) P(h)/P(D) hHhH = arg max P(D|h) P(h) {P(D) konstan} hHhH Bayes Rule
Naïve Bayes Aksi apa yang dilakukan jika pemain berturutan melakukan “Menendang, Memukul, dan Memukul”?? Dihitung semua probabilitasnya terlebih dahulu : P(memukul) = 5/12 P(jurus) = 3/12 P(menendang)= 4/12 Hitung probabilitas lain yang terkait dengan P(B|A) contoh pada aksi 1, aksi 2, dan aksi3.
Naïve Bayes
Aksi yang dilakukan : menendang, memukul, memukul (T1P2P3) Probabilitas menendang pada aksi 4 P(Th| T1P2P3) = P(T1|Th) P(P2|Th) P(P3|Th) P(Th) = 1/4 * 1/4 * 2/4 * 4/12 Probabilitas pukul pada aksi 4 P(Ph| T1P2P3) = P(T1|Ph) P(P2|Ph) P(P3|Ph) P(Ph) = 2/5 * 3/5 * 1/5 * 5/12 Probabilitas jurus pada aksi 4 P(Jh| T1P2P3) = P(T1|Jh) P(P2|Jh) P(P3|Jh) P(Jh) = 1/3 * 1/3 * 2/3 * 3/12 Note : T=Tendang, P = Pukul, J=Jurus Seharusnya dibagi dengan P(D), tapi karena P(D) konstant, maka diabaikan.