FIS, Fuzzy Inference System in Matlab

If you want to implement FIS in matlab, you can write down like the code below:


function Result = FISBuah(a,b)

buah= newfis(‘Tingkat_Kematangan’);

buah= addvar(buah, ‘input’, ‘Warna’, [0 20]);
buah= addmf(buah, ‘input’, 1, ‘Hijau’, ‘trapmf’, [10 10 15 20]);
buah= addmf(buah, ‘input’, 1, ‘Hijau_muda’, ‘trimf’, [0 8 15]);

buah= addvar(buah, ‘input’, ‘Tekstur’, [0 20]);
buah= addmf(buah, ‘input’, 2, ‘Lunak’, ‘trapmf’, [0 10 10 20]);
buah= addmf(buah, ‘input’, 2, ‘Keras’, ‘trapmf’, [5 10 15 20]);

buah= addvar(buah, ‘output’, ‘Kematangan’, [0 25]);
buah= addmf(buah, ‘output’, 1, ‘Muda’, ‘trapmf’, [0 10 15 20]);
buah= addmf(buah, ‘output’, 1, ‘Agak_tua’, ‘trapmf’, [10 15 20 22]);
buah= addmf(buah, ‘output’, 1, ‘Tua’, ‘trapmf’, [15 20 25 25]);

rule_buah = [
1 2 1 1 1;
2 1 3 1 1;
2 2 2 1 1;];

buah= addrule(buah, rule_buah);
Result = evalfis([a, b], buah);

Advertisements

PNN, Probabilistic Neural Network in Matlab

If we want to implement the PNN in matlab, we can write down the like code below:

function KikyPNN()

%ini adalah contoh kode program membuat PNN menggunakan fungsi newpnn
%data yang akan di testing disimpan dalam matriks Testdata
%hasil testing akan disimpan dalam matriks Yc.
%bandingkan hasiltestdata dengan yang seharusnya

%gunakan perintah “help newpnn” pada Command Line untuk mempelajari menggunakan fungsi newpnn

Dataasli = [1 2 3 4 5 6 7]
Kelasdataasli = [1 2 3 2 2 3 1]
T = ind2vec(Kelasdataasli)
net = newpnn(Dataasli,T)
testdata=[3 5 7]
Y = sim(net,testdata)
Yc = vec2ind(Y)
hasiltestdata=Yc

%ketiklah “KikyPNN” pada Command Line untuk mencoba menjalankan program ini

Selection Probability in Matlab

if we want to implement the selection probability in matlab, we can write down the code like below:

function probseleksi=cariprobseleksi(A)
probseleksi=[];
uA=size(A);
totaleval=0;
for i=1:uA(2)
totaleval=totaleval+A(i);
end

for i=1:uA(2)
probseleksi(i)=A(i)/totaleval;
end

Genetic Algorithm in Matlab

If we want to implement the genetic algorithm in matlab, we can writedown like the code below:


function hasilGA=GA_QQ_R()
clear;clc;

%populasi awal secara acak
%pastikan fungsi randint tersedia di matlab
popawal=randint(4,5,[0,1])

%peluang terjadi crossover
probkros=0.25

%peluang terjadi mutasi
probmutasi=0.01

jumlahkromosom=size(popawal,1)
jumlahgenperkromosom=size(popawal,2)

disp(‘mencari nilai maksimum fungsi f(x)=x^2 dengan 0<=x<=31 menggunakan GA’);
maxgenerasi=100
generasi=1
pop=popawal

%selama masih kurang dari maksimum generasi
while generasi<=maxgenerasi

%dapatkan nilai x dari kromosom populasi
nilaixpop=konvert(pop);

%dapatkan nilai fitness menggunakan fungsi carifitnes
nilaifitness=carifitnes(nilaixpop);

%cari individu/kromosom yang elit (nilai fitness terbesar)
%hasilnya disimpan dalam variabel elit
%sisa populasi selain yang elit, disimpan divariabel pop
[pop,elit]=elitisme(nilaifitness,pop);

%dapatkan kembali nilai x dari kromosom populasi sisanya
nilaixpop=konvert(pop);

%dapatkan kembali nilai fitness
nilaifitness=carifitnes(nilaixpop);

%cari peluang terseleksi untuk setiap kromosom sisa
%menggunakan roulette wheel
probseleksi=cariprobseleksi(nilaifitness);
probseleksikum=cariprobseleksikum(probseleksi);
hasilrolet=rand(1,jumlahkromosom-1);

%pilih calon orang tua berdasarkan hasil roulette
pop=pilih(hasilrolet,probseleksikum,pop);

%tentukan orang tua yang mengalami cross over, berdasarkan peluangnya
[yangdkros,banyaknyakros]=pilihkros(jumlahkromosom-1,probkros);

%lakukan crossover
pop=kros(yangdkros,banyaknyakros,pop);

%tentukan yang mengalami mutasi, berdasarkan peluang mutasi
pop=mutasi(pop,probmutasi);

%gabungkan kembali kromosom2 baru hasil cross over dan mutasi dengan yang elit
pop=[pop;elit];
nilaixpop=konvert(pop);
nilaifitness=carifitnes(nilaixpop);

%dapatkan nilai fitnes terbesar untuk generasi tersebut
terbesar=max(nilaifitness)
generasi=generasi+1
end
disp(‘nilaimaksimum fungsi tersebut jika dicari dengan GA adalah:’);
disp(terbesar);