Pengenalan Tanda Tangan Menggunakan Metode Jaringan Saraf...
Transcript of Pengenalan Tanda Tangan Menggunakan Metode Jaringan Saraf...
LEARNINGARTIFICIAL INTELLIGENT
OUTLINE Decision tree learning
Jaringan Syaraf Tiruan
K-Nearest Neighborhood
Naïve Bayes
JARINGAN SYARAF TIRUAN (JST)
Intro
Definisi ANN
Model Matematis Neuron
Fungsi Aktivasi
Arsitektur ANN
Proses Belajar (Learning)
Perceptron
ANN dengan Supervised Learning
ANN dengan Unsupervised Learning
Permasalahan pada ANN
JARINGAN SARAF TIRUAN (JST)
oOtak terdiri dari neuron-neuron dan penghubung yang disebut sinapsis
oNeuron bekerja berdasarkan sinyal/impuls yang diberikan pada neuron
oNeuron memiliki 3 komponen penting yaitu dendrit, soma dan axon
Treshold
Dendrit Badan Sel
Akson
o jaringan saraf tiruan adalah paradigma pengolahan informasi yangterinspirasi oleh sistem saraf secara biologis
o JST dibentuk sebagai generalisasi model matematika dari jaringan syarafbiologi, dengan asumsi bahwa :
1. Pemrosesan informasi terjadi pada panyak elemen sederhana (neuron).
2. Sinyal dikirim diantara neuron-neuron melalui penghubung-penghubung.
3. Penghubung antar neuron memiliki bobot yang akan memperkuat ataumemperlemah sinyal.
4. Untuk menentukan output, setiap neuron menggunakan fungsi aktivas.Besarnya output ini selanjutnya dibandingkan dengan suatu batas ambang.
o JST juga ditentukan oleh 3 hal :
a. Pola hubungan antar neuron (disebut aritektur jaringan).
b. Metode untuk menentukan bobot penghubung (disebut metodetraining/learning).
c. Fungsi aktivasi, yaitu fungsi yang digunakan untuk menentukan keluaransuatu neuron.
KOMPONEN JST
oJaringan saraf tiruan memiliki komponen yang digunakan dalam membangunsuatu arsitektur-arsitektur jaringan
oNeuron dikelompokkan ke dalam beberapa lapisan yang mana saling memilikihubungan satu dengan yang lainnya yang disebut dengan lapisan (layer)
1. Lapisan Masukan (Input Layer), berisi node-node yang masing-masingmenyimpan sebuah nilai masukan
2. Lapisan Tersembunyi (Hidden Layer), proses pada fase pelatihan dan fasepengenalan dijalankan di lapisan ini
3. Lapisan Keluaran (Output Layer), menampilkan hasil perhitungan sistem
ARSITEKTUR JST
oJaringan dengan lapisan tunggal (single layer network)
oJaringan dengan banyak lapisan (Multi layer network)
PERCEPTRON
Neuron: Sel syaraf biologis
Perceptron: Sel syaraf buatan
Input function
Activation function
Output
Perceptron
w
w
x1
xp
x2.
.
.
y
PERCEPTRON
Jika manusia punya 10 milyar neuron, apa yang bisa dilakukan?
Sangat banyak hal bisa dilakukan
Apalagi jika Multiple Intelligence
Perceptron = MODEL SEDERHANA dari neuron
Apa yang bisa dilakukan oleh satu perceptron?
Klasifikasi
Prediksi
Optimasi, …
AND
0 1
1
x1
x2
x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1
x1 + x2 – 1,5 = 0
w1.x1 + w2.x2 – 1,5 = 0
AND
x1 x2 y
0 0 0
0 1 0
1 0 0
1 1 1
1
0v
vif
vifv
0
1)(
)(v
θ = 1,5
w = 1
w = 1
x1
x2
y
p
i
ii xwv1
y
OR
0 1
1
x1
x2x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 1
x1 + x2 – 0,5 = 0
OR
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 1
θ = 0,5
w = 1
w = 1
x1
x2
y
1
0v
vif
vifv
0
1)(
)(v
p
i
ii xwv1
y
XOR
0 1
1
x1
x2
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 0
x1 - x2 - 0,5 = 0
x1 - x2 + 0,5 = 0
XOR
θ = 0,5
w = -1x1
y
w = -1x2
w = 1
w = 1θ = 0,5
w = 1
w = 1
y
θ = 0,5
y
y
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 0
PERCEPTRON NETWORK
y
y
y
w
w
x1
xp
x2.
.
.
LEARNING
Bagaimana menemukanweights yang tepat?
Meminimumkan error
x1
x2
w1x1 + w2x2 - θ= 0
x1
x2
ACTIVATION FUNCTIONS
Hard Limit
Threshold
Linear (Identity)
Sigmoid
Radial Basis Function (RBF)
…
1
0v
00
01)(
vif
vifv
)(v
HARD LIMIT
1
0v
vif
vifv
0
1)(
)(v
THRESHOLD
SYMETRIC HARD LIMIT
1
-1
v
01
00
01
)(
vif
vif
vif
v
)(v
0
BIPOLAR THRESHOLD
1
0v
)(v
vif
vif
vif
v
1
0
1
)(
-1
LINEAR (IDENTITY)
1
-1
v
vv )()(v
0 1-1
PIECEWISE-LINEAR
5,0jika0
5,05,0jika5,0
5,0jika1
)(
v
vv
v
v
1
0v
0,5-0,5
)(v
SYMETRIC PIECEWISE-LINEAR
1jika1
11jika
1jika1
)(
v
vv
v
v
1v
)(v
1
-1
-1
SIGMOID
avev
1
1)(
1
0v
)(v
SYMETRIC (BIPOLAR) SIGMOID
av
av
e
ev
1
1)(
1
0v
)(v
-1
RADIAL BASIS FUNCTION (RBF)
2
)( avev
1
0v
)(v
ARSITEKTUR ANN
Para ahli memodelkan sel syaraf otak manusia ke dalam berbagai arsitektur ANN (susunan neuron) yang berbeda-beda.
Masing-masing arsitektur menggunakan algoritma belajar khusus.
Input layer
of source node
Output layer
of neurons
SINGLE-LAYER FEEDFORWARD NETWORKS
Input layer
of source
node
Layer of
hidden
neurons
Layer of
output
neurons
MULTI-LAYER FEEDFORWARD NETWORKS
PROSES BELAJAR (LEARNING)
Learning process
Learning algorithm (rules) Learning paradigms
Supervised
learning
Reinforcement
learningSelf-organized
(unsupervised)
learning
Error-correction
learning
Bolzman
learningThorndike's
law of
effect
Hebbian
learning
Competitive
learning
PERCEPTRON: MODEL
PERCEPTRON: SIGNAL-FLOW GRAPH
p
i
iixwv1
01
p
i
iixw Decision boundary
x1
x2
w1x1 + w2x2 - θ= 0
Decision boundary
Pelamar IPK Psikologi Wawancara Diterima
P1 Bagus Tinggi Baik Ya
P2 Bagus Sedang Baik Ya
P3 Bagus Sedang Buruk Ya
P4 Bagus Rendah Buruk Tidak
P5 Cukup Tinggi Baik Ya
P6 Cukup Sedang Baik Ya
P7 Cukup Sedang Buruk Ya
P8 Cukup Rendah Buruk Tidak
P9 Kurang Tinggi Baik Ya
P10 Kurang Sedang Buruk Tidak
P11 Kurang Rendah Baik Ya
Pelamar IPK Psikologi Wawancara Diterima
P1 3 3 2 1
P2 3 2 2 1
P3 3 2 1 1
P4 3 1 1 0
P5 2 3 2 1
P6 2 2 2 1
P7 2 2 1 1
P8 2 1 1 0
P9 1 3 2 1
P10 1 2 1 0
P11 1 1 2 1
01
23
4 0
1
2
3
4
0
1
2
3
IPK
Psikologi
Waw
ancara
PolaPix
1
Pix
2
Pix
3
Pix
4
Pix
5…
Pix
100
E1 0 0 1 1 1 … 0
F1 0 0 1 1 1 … 0
G1 0 1 1 1 1 … 1
O1 0 1 1 1 1 … 1
..
O5 0 1 1 1 1 … 1
MULTI-LAYER PERCEPTRON (MLP)
ALGORITMA BELAJAR PROPAGASI BALIK
Definisikan masalah
Matriks pola masukan (P)
matriks target (T)
Inisialisasi parameter jaringan
Arsitektur jaringan (misalkan I-H-O)
Synaptic weights acak (atau dengan metode tertentu)
Learning rate (lr) laju belajar
Threshold MSE untuk menghentikan learning
ALGORITMA BELAJAR PROPAGASI BALIK
Pelatihan Jaringan
Perhitungan Maju
)1*1(1
11
BPWeA
21*22 BAWA
2ATE
N
EMSE
2
ALGORITMA BELAJAR PROPAGASI BALIK
Pelatihan Jaringan
Perhitungan Mundur
EAD *)21(2 2 )2*2(*)11(1 2 DWAD
)*1*(11 PDlrdWdW )1*(11 DlrdBdB
)*2*(22 PDlrdWdW )2*(22 DlrdBdB
ALGORITMA BELAJAR PROPAGASI BALIK
Pelatihan Jaringan
Perhitungan Mundur
111 dWWW 111 dBBB
222 dWWW 222 dBBB
ALGORITMA BELAJAR PROPAGASI BALIK
Langkah-langkah di atas adalah untuk satu kali siklus pelatihan (satu epoch).
Biasanya, pelatihan harus diulang-ulang lagi hingga jumlah siklus tertentu atau telah tercapai MSE yang diinginkan.
Hasil akhir dari pelatihan jaringan adalah bobot-bobot W1, W2, B1 dan B2.
PolaPix
1
Pix
2
Pix
3
Pix
4
Pix
5…
Pix
100
E1 0 0 1 1 1 … 0
F1 0 0 1 1 1 … 0
G1 0 1 1 1 1 … 1
O1 0 1 1 1 1 … 1
E2 0 0 1 1 1 … 0
… … … … … … … …
O5 0 1 1 1 1 … 1
PENGENALAN KARAKTER E, F, G, O
N1 N2 N3 N4 Kelas
1 0 0 0 E
0 1 0 0 F
0 0 1 0 G
0 0 0 1 O
1 0 0 0 E
… … … … …
0 0 0 1 O
Matriks P Matriks T
0.71
-0.21
0.33
0.97
-0.18
0.62
0.55
-0.12
0.75
W1
-0.52
0.91
0.29
0.97
-0.18
0.62
0.55
-0.12
-0.12
0.68
W2
-0.21
-0.53
0.58
0.32
0.25
-0.17
-0.93
0.45
0.88
0.87
W2
-0.54
0.15
-0.49
0.68
-0.24
-0.95
-0.37
0.89
0.34
W1
0.9
0.1
0.4
0.3
A2
1
0
0
0
T
0.1
-0.1
-0.4
-0.3
E
Training W1 & W2: Random
0.7
0.3
0.9
A1
F2, G2, O2, …
dan seterusnya
hingga pola O5
0.01
-0.83
0.19
0.34
0.22
0.62
0.60
-0.53
-0.38
W1
0.31
-0.38
0.35
0.87
-0.18
0.30
0.03
-0.09
0.98
0.74
W2
0.8
0.2
0.1
0.2
A2
1
0
0
0
Kelas
Testing W1 & W2: Trained
Metode Konvensional
(Template Matching)
Memory besar
Waktu lama !!!
PERMASALAHAN PADA MLP
Bagaimana struktur ANN yang optimal?
Jumlah hidden layer
Jumlah neuron pada hidden layer
Jumlah neuron pada output layer
Fungsi aktivasi yang optimal
Learning Rate
Kapan Menghentikan Learning
ALGORITMA BELAJAR PROPAGASI BALIK
Pelatihan Jaringan
Perhitungan Mundur
EAD *)21(2 2 )2*2(*)11(1 2 DWAD
)*1*(11 PDlrdWdW )1*(11 DlrdBdB
)*2*(22 PDlrdWdW )2*(22 DlrdBdB
PENGENALAN TANDA TANGAN MENGGUNAKAN METODE
JARINGAN SARAF TIRUAN PERCEPTRON DAN BACKPROPAGATION
PENGUMPULAN DATA
oJenis data yang digunakan pada penelitian ini adalah jenis data kuantitatif
oJumlah data sebanyak 500 data tanda tangan dari 10 orang yang terdiri dari 400 data training dan 100 data testing.
ARSITEKTUR PROGRAM
AKUISISI CITRA
oAkuisisi citra digital merupakan prosesmenangkap (capture) atau memindai (scan) citraanalog sehingga diperoleh citra digital.
oAlat yang dapat digunakan untuk mengakuisisicitra digital antara lain: kamera digital, webcam, smart phone, scanner, mikroskop digital,pesawat rontgen, pesawat sinar X, pesawat MRI,pesawat CT Scan, atau pesawat radiodiagnostiklainnya.
PREPROCESSING
oPemotongan (Cropping)
oResize
oCitra keabuan (grayscale)
oCitra biner
PEMOTONGAN (CROPPING)
oProses croping dilakukan untuk mendapatkan masing-masing citra digital dari hasil scanning
RESIZE
oProses resize adalah merubah ukuran piksel pada semua citra
CITRA RGB
o Inputan citra digital awal masih
berbentuk citra RGB. RGB adalah
suatu model warna yang terdiri
dari merah, hijau, dan biru
digabungkan dalam membentuk
suatu susunan warna yang luas.
Setiap warna memiliki range 0 –
255. Dengan cara ini, akan
diperoleh warna campuran
sebanyak 256 x 256 x 256 =
1677726 jenis warna.
CITRA KEBUAN (GRAYSCALE)
CITRA BINER
o Citra biner adalah citra digital
yang hanya memiliki dua
kemungkinan nilai pixel yaitu
hitam dan putih. Hanya dibutuhkan
1 bit untuk mewakili nilai setiap
pixel dari citra biner.
oSetelah nilai warna citra diubah dalam biner, nilai biner tersebutakan diubah yang sebelumnya bernilai 0 menjadi 1 dan 1 menjadi 0.Dengan tujuan mengubah latar gambar menjadi nilai 0 dan objekmenjadi nilai 1, karena pola dari nilai 1 yang akan dipelajarinantinya.
LABELING
oSetelah preprocessing selesai maka akan didapat nilai biner dalambentuk matrix. Sebelum masuk proses pemberian label data matrixdiubah menjadi vector (matrix satu baris).
oProses pemberian label ini adalah proses klasifikasi pada setiap vectordari semua 400 citra latih yang sudah didapatkan
oPemberian label ini bertujuan agar vector yang sudah dilatih dapatdikenali sebagai vector dari citra tanda tangan yang tepat
Citra Tanda Tangan Label Target
1 – 40 Afi 0 0 0 1
41 – 80 Andri 0 0 1 0
81 – 120 Candra 0 0 1 1
121 – 160 Damar 0 1 0 0
161 – 200 Dian 0 1 0 1
201 – 240 Enjang 0 1 1 0
241 – 280 Rama 0 1 1 1
281 – 320 Restu 1 0 0 0
321 – 360 Riqza 1 0 0 1
361 – 400 Rizki 1 0 1 0
PROSES PELATIHAN
oPerceptron
oBackpropagation
PERCEPTRON
oModel jaringan perceptron ditemukan oleh Rosenblatt (1926) danMinsky – Papert (1969). Model tersebut merupakan model yangmemiliki aplikasi dan pelatihan yang paling baik di era tersebut.
ARSITEKTUR JST
oJaringan dengan lapisan tunggal (single layer network)
ACTIVATION FUNCTIONS (FUNGSI AKTIVASI)
Hard Limit
Threshold
Linear (Identity)
Sigmoid
Radial Basis Function (RBF)
…
FUNGSI AKTIVASI PERCEPTRON
PROSES PEMBELAJARAN PERCEPTRON
Misalkan:
•s adalah vektor masukan dan t adalah target keluaran
•α adalah laju pemahaman (learning rate) yang ditentukan.
•Ɵ adalah threshold yang ditentukan.
ket:
y_in = nilai output sebelum dimasukan ke dalam
fungsi aktivasi
y = nilai output
Ket :
Δw = nilai pembaruan bobot
Δb = nilai pembaruan bias
Ada beberapa hal yang perlu diperhatikan dalam algoritma tersebut:
•Iterasi dilakukan terus hingga semua pola memiliki keluaran jaringanyang sama dengan targetnya (jaringan sudah memahami pola).
•Pada langkah 2(c), perubahan bobot hanya dilakukan pada polayang mengandung kesalahan (output ≠ target).
•Kecepatan iterasi ditentukan pula oleh laju pemahaman yangdipakai. Semakin besar harga α, semakin sedikit iterasi yangdiperlukan. Akan tetapi jika α terlalu besar, makan akan merusakpola yang sudah benar sehingga pemahaman menjadi lambat.
BACKPROPAGATION
oKelemahan JST terdiri dari layer tunggal membuat perkembanganJST menjadi berhenti pada sekitar tahhun 1970-an.
o JST dengan layer tunggal memiliki keterbatasan dalam pengenalanpola.
oKelemahan ini bisa ditanggulangi dengan menambahkansatu/beberapa layer tersembunyi diantara layer masukan dankeluaran.
obackpropagation melatih jaringan untuk mendapatkankeseimbangan antara kemampuan jaringan untuk mengenali polayang digunakan selama pelatihan serta kemampuan jaringan untukmemberikan respon yang benar terhadap pola masukan yangserupa (tapi tidak sama) denga pola yang dipakai selamapelatihan.
ARSITEKTUR BACKPROPAGATION
oBackpropagation adalah metode penurunan gradien untukmeminimalkan kuadrat error keluaran.
oAda tiga tahap yang harus dilakukan dalam pelatihan jaringan,yaitu tahap perambatan maju (forward propagation), tahapperambatan balik, dan tahap perubahan bobot dan bias.
FUNGSI AKTIVASI
Dalam backpropagation, fungsi aktivasi yang sering dipakai adalah :
oFungsi sigmoid biner yang memiliki range (0 hingga 1).
o Fungsi sigmoid bipolar yang memiliki range (1 hingga -1).
FUNGSI SIGMOID BINER
FUNGSI SIGMOID BIPOLAR
PROSES PEMBELAJARAN BACKPROPAGATION
Proses ini menggambarkan contoh tiga lapisan dengan dua input dansatu output yang ditampilkan
Ket:
x = input
V = bobot yang menuju hidden layer
Z = hidden layer
W = bobot yang menuju output layer
Y = output layer
Proses perambatan maju / feed forward
(mecari nilai hidden layer)
Ket :
z_net = nilai bayangan hidden layer/nilai hidden layer
yang belum masuk fungsi aktivasi
Z = nilai hidden layer
Ket :
y_net = nilai bayangan output layer/nilai
output layer yang belum masuk fungsi aktivasi
y = nilai hidden layer
Proses perambatan maju / feed forward
(mecari nilai output layer)
Proses perambatan mundur / backpropagation (mecari nilai titik pembaruan bobot output
layer)
Proses perambatan mundur / backpropagation (mecari nilai titik pembaruan bobot
hidden layer)
Proses pembaruan bobot
o Lakukan langkah-langkah tersebut hingga nilai kesalahan terpenuhiatau hingga jumlah iterasi telah mencai batas maksimum.
oSetelah pelatihan selesai dilakukan, jaringan dapat dipakai untutkpengenalan pola.
oApabila fungsi aktivasi yang dipakai bukan sigmoid biner, makalangkah” harus disesuaikan lagi.
MENGHITUNG MSE
Ket :
e = error
n = jumlah data
MODEL PENGETAHUAN
oModel pengetahuan pada dasarnya adalah sebuah wadah yang menyimpan arsitektur jaringan dari kedua algoritma yang sudah dilatih dengan data latih hingga mendapakan akurasi tertentu.
oDi dalam model pengetahuan disimpan pengetahuan berupa jumlah layer, banyaknya neuron, target, bobot, fungsi aktivasi dan error
PROSES PENGUJIAN
oData uji akan melewati proses awal yang sama seperti pada datalatih yaitu proses preprocessing (pemotongan, resize, citra keabuan,citra biner dan vector)
oSetelah vector data uji di dapat,vector tersebut akan dimasukan kedalam model pengetahuan dan selanjutnya akan dilihat seberapaakurat model pengetahuan yang sudah dibuat
HASIL
oPelatihan
oPengujian
okebutuhan jaringan sebagai berikut :
1. Batas epoch / iterasi maksimal adalah 1000 epoch
2. Target error (MSE) sebesar 0,0001
3. Learning rate sebesar 0,1 hingga 0,9
4. Untuk bobot jaringan ditentukan secara acak oleh komputer dengan mengambil nilai acak yang cukup kecil
PELATIHAN
Citra Label TargetTarget
(desimal)
Jumlah
citraCitra dikenali
Citra tidak
dikenali
afi1 – afi40 Afi 0 0 0 1 1 40 40 0
andri1 –
andri40Andri 0 0 1 0 2 40 40 0
candra1 –
candra40Candra 0 0 1 1 3 40 40 0
damar1 –
damar40Damar 0 1 0 0 4 40 40 0
dian1 – dian40 Dian 0 1 0 1 5 40 40 0
enjang1 –
enjang40Enjang 0 1 1 0 6 40 40 0
rama1 –
rama40Rama 0 1 1 1 7 40 40 0
restu1 –
restu40Restu 1 0 0 0 8 40 40 0
riqza1 –
riqza40Riqza 1 0 0 1 9 40 40 0
rizki1 – rizki40 Rizky 1 0 1 0 10 40 40 0
jumlah 400 400 0
Perceptron
Berdasarkan evaluasi hasil latih
terhadap data latih, didapatkan rata –
rata akurasi untuk proses pelatihan
menggunakan algoritma Perceptron
sebesar 100%.
PELATIHAN
Citra Label TargetTarget
(desimal)
Jumlah
citraCitra dikenali
Citra tidak
dikenali
afi1 – afi40 Afi 0 0 0 1 1 40 40 0
andri1 –
andri40Andri 0 0 1 0 2 40 40 0
candra1 –
candra40Candra 0 0 1 1 3 40 40 0
damar1 –
damar40Damar 0 1 0 0 4 40 40 0
dian1 – dian40 Dian 0 1 0 1 5 40 40 0
enjang1 –
enjang40Enjang 0 1 1 0 6 40 40 0
rama1 –
rama40Rama 0 1 1 1 7 40 40 0
restu1 –
restu40Restu 1 0 0 0 8 40 40 0
riqza1 –
riqza40Riqza 1 0 0 1 9 40 40 0
rizki1 – rizki40 Rizky 1 0 1 0 10 40 40 0
jumlah 400 400 0
Backpropagation
Berdasarkan evaluasi hasil latih
terhadap data latih, didapatkan rata
– rata akurasi untuk proses pelatihan
menggunakan algoritma
backpropagation sebesar 100%.
Dengan rata – rata error akhir (MSE)
adalah 0,000099966 pada epoch ke –
1225.
PENGUJIAN
Citra Jumlah Citra dikenali Citra tidak dikenali
Afi41 – afi50 10 10 0
Andri41 – andri50 10 7 3
Candra41 –
candra5010 10 0
Damar41 –
damar5010 6 4
Dian41 – dian50 10 10 0
Enjang41 –
enjang5010 4 6
Rama41 – rama50 10 8 2
Restu41 – restu50 10 9 1
Riqza41 – riqza50 10 2 8
Rizki41 – rizki50 10 10 0
jumlah 100 76 24
Perceptron
didapatkan rata – rata akurasi untuk proses
pengujian terhadap hasil latih yang
menggunakan algoritma Perceptron sebesar
76%. Dan rata- rata kesalahan untuk setiap 10
data uji adalah 2 data.
PENGUJIANBackpropagation
Citra Jumlah Citra dikenali Citra tidak dikenali
Afi41 – afi50 10 10 0
Andri41 – andri50 10 9 1
Candra41 –
candra5010 10 0
Damar41 –
damar5010 9 1
Dian41 – dian50 10 10 0
Enjang41 –
enjang5010 3 7
Rama41 – rama50 10 10 0
Restu41 – restu50 10 10 0
Riqza41 – riqza50 10 5 5
Rizki41 – rizki50 10 10 0
jumlah 100 86 14
didapatkan rata – rata akurasi untuk proses
pengujian terhadap hasil latih yang
menggunakan algoritma Backpropagation
sebesar 86%. Dan rata- rata kesalahan untuk
setiap 10 data uji adalah 1 data.
Suyanto. 2007. Artificial Intelligence: Searching, Reasoning, Planning and Learning. Informatika, Bandung Indonesia. ISBN: 979-1153-05-1.
Russel, Stuart and Norvig, Peter. 1995. Artificial Intelligence: A Modern Approach. Prentice Hall International, Inc.
Referensi :