X
تبلیغات
وکیل جرایم سایبری

IDS: Intrusion Detection System

کد برنامه نویسی حل یک معادله ساده ریاضی در زبان متلب

در پست قبل حل یک معادله ساده ریاضی را توسط الگوریتم ژنتیک توضیح دادیم.در این پست کد پیاده سازی این مثال در زبان متلب آورده می شود.زبان متلب یک زبان بسیار قوی برای پیاده سازی مسائل علمی است که با قابلیت های زیاد کار برنامه نویسی را برای کاربر بسیار آسان می نماید.کدها دقیقا پیاده سازی همان چیزی است که در مثال قبل گفته شده است و برای درک آن نیاز به آشنایی با کدنویسی تحت زبان برنامه نیسی متلب می باشد.

global popSize;
global chromosomeLength;
global F_OBJ;
global Fitness;
global arrProbability;
global arrCumulative;
global newPop;
global population;

global xoRate;
global mutRate;
global maxTor;
maxTor=100;
popSize=6;
chromosomeLength=4;
xoRate =0.3;
mutRate = 0.4;


initalPopulation();
for maxTorIndex=1:maxTor
   
    global Fitness;
    calculateFOBJ();
    solution=find(F_OBJ==0);
    if ~(isempty(solution))
        numRuleFound=size(solution,1);
        fprintf("We Finde %d Solution in generation %d \n",numRuleFound,maxTorIndex);
        for i=1:numRuleFound
            ruleIndex=solution(i);
            disp(population(ruleIndex,:))
        end
    return;
    end
    calculateFitness();
   
    calculateprobability();
    calculateCumulative();
    rouletteWheel();
    OnePointCrossOver();
    MutateGens();
   
end
function pop=initalPopulation()
%global population;
global popSize;
global population;
x=popSize;
population(1,:)= [12,05,23,08];
population(2,:)= [02,21,18,03];
population(3,:)= [10,04,13,14];
population(4,:)= [20,01,10,06];
population(5,:)= [01,04,13,19];
population(6,:)= [20,05,17,01];
%pop=population;
end
function calculateFOBJ()
global F_OBJ;
global popSize;
global population;
for i=1:popSize
    a=population(i,1);
    b=population(i,2);
    c=population(i,3);
    d=population(i,4);
    F_OBJ(i)=abs(a+2*b+3*c+4*d-30);
end
end
 

ادامه مطلب