Algoritma yang digunakan ialah menggunakan proses iterasi dari nilai bobot yang didapat .
Pada postingan Kali ini saya akan membahas mengenai Algoritma Hebb Rule 1 bit Biner.
Algoritma yang digunakan ialah menggunakan proses iterasi dari nilai bobot yang didapat .
Berikut Algoritma Hebb Rule yang saya dapatkan
1. Inisialisasi nilai input (Xij)
2. Mendapatkan nilai Target(T) dari nilai Input. Sesuai dengan tugas saya nilai input di OR kan baru kita dapatkan nilai target.
contoh,
input OR Target
0 0 0
0 1 1
1 0 1
1 1 1
3. mendapatkan nilai bobot Wij= W_old+ Xij* Target
4. Mendapatkan nilai bias bias= bias_old+Target
5. Ulangi sampai Proses iterasi selesai
Berikut Source Code yang saya buat di Mic. Visual C# Express 2010
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using Microsoft.VisualBasic;
- namespace JST_Hebbrule_6bit_
- {
- public partial class Form1 : Form
- {
- int[] w_old = { 0, 0 };
- int u, c, d, r;
- int b_lamo=0;
- int[] y = new int[4];
- int[,] X = { { 0, 0 }, { 0, 1 }, { 1, 0 }, { 1, 1 } };
- int[] T = { 0, 1, 1, 1 };
- int[] b=new int[4];
- int[,] W= new int[8,3];
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- private void button1_Click(object sender, EventArgs e)
- {
- listBox1.Items.Clear();
- listBox1.Items.Add("Nilai bobot");
- listBox1.Items.Add("");
- for (d = 0; d <= 3; d++)
- {
- for (r = 0; r <= 1; r++)
- {
- W[d, r] = w_old[r] + (X[d, r] * y[d]);
- listBox1.Items.Add("w[" + (d) + "]" + "[" + (r) + "] = " + W[d, r]);
- b[d] = b_lamo + y[d];
- }
- b_lamo = b[d];
- w_old[0] = W[d, 0];
- w_old[1] = W[d, 1];
- }
- listBox1.Items.Add("");
- listBox1.Items.Add("Nilai bobot");
- listBox1.Items.Add("");
- for (d = 0; d <= 3; d++)
- {
- listBox1.Items.Add("Nilai bias ["+d+"]="+b[d]);
- }
- }
- private void button2_Click(object sender, EventArgs e)
- {
- listBox2.Items.Clear();
- int[] Y= new int[4];
- int[] Y_convert = new int[4];
- listBox2.Items.Add("Nilai Output Sebelum di Convert 0 & 1");
- listBox2.Items.Add("");
- for (d = 0; d <= 3; d++)
- {
- for (r = 0; r <= 0; r++)
- {
- Y[d] = X[d, r] * W[d, r] + X[d, r+1] * W[d, r+1]+ b[d];
- if (Y[d] > 0)
- { Y_convert[d] = 1; }
- }
- listBox2.Items.Add("Y non convert[" + d + "]=" + Y[d]);
- }
- listBox2.Items.Add("");
- listBox2.Items.Add("Nilai Output Sesudah di Convert 0 & 1");
- listBox2.Items.Add("");
- for (d = 0; d <= 3; d++)
- {
- listBox2.Items.Add("Y convert["+d+"]="+Y_convert[d]);
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- listBox3.Items.Clear();
- listBox2.Items.Add("Nilai Target");
- for (d = 0; d <= 3; d++)
- {
- for (r = 0; r <= 1; r++)
- {
- y[d] |= X[d,r];
- }
- listBox3.Items.Add("Target T[" + d + "]=" + y[d]);
- }
- }
- }
- }
No comments:
Post a Comment