Prinsip :” winner takes all” (neuron dipaksa untuk berkompetisi sehinggahanya 1 yang menjadi aktif (sinyal keluaran> 0)
fungsi aktivasi:
x jika x > 0
y =
0 jika x ≤ 0
struktur jaringan:
Algoritma pemrosesan jaringan :
•Inisialisasi є dengan bilangan 0 < є < 1/ m
•Inisialisasi bobot wij = wji =1, jika i = j
= -є jika i ≠ j
•Selama terdapat lebih dari 1 unit yang fungsi aktivasi > 0, lakukan :
Modifikasi aktivasi titik aj(j=1, 2, … m) dg
aj (baru) = f (aj(lama) – є Σ ak(lama) )
clear;
clc;
%jaringan maxnet
disp('------------------------------ ')
disp('Program JST; jaringan MaxNet')
disp(' karya: Mustaghfiri Ramadlan')
disp (' Nim. 07518244016')
disp(' Prodi PT. Mekatronika')
disp(' Pemenuhan tugas PSOI')
disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ')
inp = input('berapa jumlah masukan data : ');
bob = input('masukan nilai bobot : ');
disp (' ')
disp ('pilih jenis masukan :');
disp ('1 manual');
disp ('2 random');
pilih = input ('pilih pilihan anda-(tekan 1 atau 2) ');
if pilih==1
for i=1:inp
a(i)= input('masukan nilai ');
end
else
a = rand (inp,1,[1,100])
end
disp(' ')
bobot=bob;
x=[0];
n=[0];
er=1;
ite=0;
while er~=0;
er =0;
ite=ite+1; % conter untuk jumlah iterasi
dis('nilai a sebelum di aktivasi: ')
for i=inp:inp
bk=0;
for k=1:inp
bk=+a(k); %jumlahkan seluruh matriks
x(i) = bk-a(i); %kurangi total jumlah matriks dgn matriks yang tertentu
end
n(i)=bobot*x; %setela jumlah bobot dikurangi matriks tertentu, lalu dikalidengan bobot
c(i)=a(i)-n; %menghitung nilai a baru (rumus MAXNET)
disp (['a : ', num2str(c(i))])
end
disp ('=============================')
disp ([' nilai maxnet iterasi ke ', num2str(ite)])
d=0;
for i=1:inp %hitung fungsi aktivasi a baru
if c(i)<=0
a(i)=0; % aktivasi =0, jika nilai a baru(c(i))<=0
s(i)=0; %///inisiasi untuk fungsi ulang..(1)
else
a(i)=c(i); % aktivasi =1, jika nilai a baru(c(i))>0
s(i)=1;%///inisiasi untuk fungsi ulang...(2)
end
disp (['a =', num2str(a(i))])%tampilkan hasil fungsi aktivasi per
d=d+s(i); %///inisiasi untuk fungsi ulang...(3)
end
% proses penghitungan fungsi pengulangan while...(4)
if (d==1);
er=0;
else (d>1);
er=1;
end
end
% menampilkan nilai data terbesar
disp(' ')
disp ('))))+++++++++++++++++++((((((')
disp (' ')
for i=1:inp
if a(i)~=0;
disp ('bobot terbesar yang diperoleh adalah:')
disp (['a = ', num2str(a(i))])
disp (['yaitu pada masukan data ke i = ', num2str(i)])
end
k=0;
for i=1:inp;
k=k+a(i);
end
end
if k==0;
disp ('coba lagi bro.. dengan masukan yang lain')
disp ('sampai diperoleh satu nilai bobot saja')
end
clc;
%jaringan maxnet
disp('------------------------------ ')
disp('Program JST; jaringan MaxNet')
disp(' karya: Mustaghfiri Ramadlan')
disp (' Nim. 07518244016')
disp(' Prodi PT. Mekatronika')
disp(' Pemenuhan tugas PSOI')
disp('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ')
inp = input('berapa jumlah masukan data : ');
bob = input('masukan nilai bobot : ');
disp (' ')
disp ('pilih jenis masukan :');
disp ('1 manual');
disp ('2 random');
pilih = input ('pilih pilihan anda-(tekan 1 atau 2) ');
if pilih==1
for i=1:inp
a(i)= input('masukan nilai ');
end
else
a = rand (inp,1,[1,100])
end
disp(' ')
bobot=bob;
x=[0];
n=[0];
er=1;
ite=0;
while er~=0;
er =0;
ite=ite+1; % conter untuk jumlah iterasi
dis('nilai a sebelum di aktivasi: ')
for i=inp:inp
bk=0;
for k=1:inp
bk=+a(k); %jumlahkan seluruh matriks
x(i) = bk-a(i); %kurangi total jumlah matriks dgn matriks yang tertentu
end
n(i)=bobot*x; %setela jumlah bobot dikurangi matriks tertentu, lalu dikalidengan bobot
c(i)=a(i)-n; %menghitung nilai a baru (rumus MAXNET)
disp (['a : ', num2str(c(i))])
end
disp ('=============================')
disp ([' nilai maxnet iterasi ke ', num2str(ite)])
d=0;
for i=1:inp %hitung fungsi aktivasi a baru
if c(i)<=0
a(i)=0; % aktivasi =0, jika nilai a baru(c(i))<=0
s(i)=0; %///inisiasi untuk fungsi ulang..(1)
else
a(i)=c(i); % aktivasi =1, jika nilai a baru(c(i))>0
s(i)=1;%///inisiasi untuk fungsi ulang...(2)
end
disp (['a =', num2str(a(i))])%tampilkan hasil fungsi aktivasi per
d=d+s(i); %///inisiasi untuk fungsi ulang...(3)
end
% proses penghitungan fungsi pengulangan while...(4)
if (d==1);
er=0;
else (d>1);
er=1;
end
end
% menampilkan nilai data terbesar
disp(' ')
disp ('))))+++++++++++++++++++((((((')
disp (' ')
for i=1:inp
if a(i)~=0;
disp ('bobot terbesar yang diperoleh adalah:')
disp (['a = ', num2str(a(i))])
disp (['yaitu pada masukan data ke i = ', num2str(i)])
end
k=0;
for i=1:inp;
k=k+a(i);
end
end
if k==0;
disp ('coba lagi bro.. dengan masukan yang lain')
disp ('sampai diperoleh satu nilai bobot saja')
end
