Sebuah Alogaritma pelatihan untuk neural network McCulloh adalah sebagai berikut
- Langkah 1 : Inisialisasi bobot
bobot setiap weight menggunalan nilai yang telah ditentukan / dirumuskan sebelumnya. - Langkah 2 : Selama clock/error belom mencapai nilai yang diinginkan, lakukan langkah-langkah sebagau berikut :
- Set aktivasi input : x1 dan x2.
- Hitung input jaringan untuk masing-masing unit pada layer 1:
v[k]1 = (x[1]*w[1])
v[k]2 = (x[2]*w[2])
v[k]3 = (x[3]*w[3])
v[k]4 = (x[4]*w[4])
v[k]5 = (x[5]*w[5]) - Total semua ∑v[k]n dari masing-masing unit :
∑v[k]n = v[k]1 +v[k]2+v[k]3+v[k]4+v[k]5 - Setelah semua dijumlah, output dikurangi threshold :
y = ∑v[k]n – Θ
Apabila ,
y >= 0 maka y = 1
y < 0 maka y = 0 - Tes Kondisi berhenti. Jika perubahan clock sudah mendekati nilai yang diinginkan maka stop, jika tidak ulangi langkah 2 sampai mendekati nilai clock/error;
///Inisialisasi Data int num; int w1, w2, w3, w4, w5; int thr1; int vk[100]; int vTot; int w[5]; int y[33]; int x1[]={0,1,0,1, 0,1,0,1, 0,1,0,1, 0,1,0,1, 0,1,0,1, 0,1,0,1, 0,1,0,1, 0,1,0,1}; int x2[]={0,0,1,1, 0,0,1,1, 0,0,1,1, 0,0,1,1, 0,0,1,1, 0,0,1,1, 0,0,1,1, 0,0,1,1}; int x3[]={0,0,0,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0, 1,1,1,1, 0,0,0,0, 1,1,1,1}; int x4[]={0,0,0,0, 0,0,0,0, 1,1,1,1, 1,1,1,1, 0,0,0,0, 0,0,0,0, 1,1,1,1, 1,1,1,1}; int x5[]={0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1}; if(comboBox1->Text == "AND Logic Function"){ w[0] = 1; w[1] = 1; w[2] = 1; w[3] = 1; w[4] = 1; thr1 = 5; for(num=1;num<33;num++){ vk[0]= x1[num-1]*w[0]; vk[1]= x2[num-1]*w[1]; vk[2]= x3[num-1]*w[2]; vk[3]= x4[num-1]*w[3]; vk[4]= x5[num-1]*w[4]; vTot = vk[0]+vk[1]+vk[2]+vk[3]+vk[4]; y[num-1] = vTot-thr1; if(y[num-1]>=0) y[num-1]=1; if(y[num-1]<0) y[num-1]=0; } }///end if AND Logic Function