Pengenalan Tanda Tangan Menggunakan Metode Jaringan Saraf...

Preview:

Citation preview

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 :