精华内容
下载资源
问答
  • 遗传算法求最大值,遗传算法求最小值,实验报告,实验结果分析
  • 你编程有问题可以去matlab论坛上问,那里这方面回答的人多些shu_fyh引用回帖:feifeiyin12 at 2013-11-21 13:28:04可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个...

    noavatar.png

    shu_fyh

    求人来解答啊。。

    68df4c5ee6e518d72dd2ecacf53ec2e4.png

    feifeiyin12

    可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个小时可以搞定。手机不好发代码。你编程有问题可以去matlab论坛上问,那里这方面回答的人多些

    noavatar.png

    shu_fyh

    引用回帖:

    feifeiyin12 at 2013-11-21 13:28:04

    可以实现,代码很简单,这个应该可以用非线性规划,随便找本matlab方面的书,半个小时可以搞定。手机不好发代码。你编程有问题可以去matlab论坛上问,那里这方面回答的人多些

    ...

    额,我说的是能不能用遗传算法搞定。。

    cfdc6361174d9cfc8169daed13483a0c.gif

    月只蓝

    引用回帖:

    shu_fyh at 2013-11-21 14:08:03

    额,我说的是能不能用遗传算法搞定。。...

    可以用遗传算法来求解。

    noavatar.png

    shu_fyh

    引用回帖:

    月只蓝 at 2013-11-21 16:06:11

    可以用遗传算法来求解。...

    遗产算法的过程我已经写出来了,就是不知道怎么用matlab来实现

    cfdc6361174d9cfc8169daed13483a0c.gif

    月只蓝

    引用回帖:

    shu_fyh at 2013-11-21 16:53:14

    遗产算法的过程我已经写出来了,就是不知道怎么用matlab来实现...

    MATLAB有自带的遗传算法函数ga,虽然说MATLAB的内置的遗传算法并不是最优秀的,但求解你的问题应该没问题。

    ga函数调用格式很方便,见MATLAB help:

    GA    Constrained optimization using genetic algorithm.

    GA attempts to solve problems of the form:

    min F(X)  subject to:  A*X  <= B, Aeq*X  = Beq (linear constraints)

    X                     C(X) <= 0, Ceq(X) = 0 (nonlinear constraints)

    LB <= X <= ub

    X = GA(FITNESSFCN,NVARS) finds a local unconstrained minimum X to the

    FITNESSFCN using GA. NVARS is the dimension (number of design

    variables) of the FITNESSFCN. FITNESSFCN accepts a vector X of size

    1-by-NVARS, and returns a scalar evaluated at X.

    X = GA(FITNESSFCN,NVARS,A,b) finds a local minimum X to the function

    FITNESSFCN, subject to the linear inequalities A*X <= B. Linear

    constraints are not satisfied when the PopulationType option is set to

    'bitString' or 'custom'. See the documentation for details.

    X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq) finds a local minimum X to the

    function FITNESSFCN, subject to the linear equalities Aeq*X = beq as

    well as A*X <= B. (Set A=[] and B=[] if no inequalities exist.) Linear

    constraints are not satisfied when the PopulationType option is set to

    'bitString' or 'custom'. See the documentation for details.

    X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub) defines a set of lower and

    upper bounds on the design variables, X, so that a solution is found in

    the range lb <= X <= ub. Use empty matrices for lb and ub if no bounds

    exist. Set lb(i) = -Inf if X(i) is unbounded below;  set ub(i) = Inf if

    X(i) is unbounded above. Linear constraints are not satisfied when the

    PopulationType option is set to 'bitString' or 'custom'. See the

    documentation for details.

    X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON) subjects the

    minimization to the constraints defined in NONLCON. The function

    NONLCON accepts X and returns the vectors C and Ceq, representing the

    nonlinear inequalities and equalities respectively. GA minimizes

    FITNESSFCN such that C(X)<=0 and Ceq(X)=0. (Set lb=[] and/or ub=[] if

    no bounds exist.) Nonlinear constraints are not satisfied when the

    PopulationType option is set to 'bitString' or 'custom'. See the

    documentation for details.

    X = GA(FITNESSFCN,NVARS,A,b,Aeq,beq,lb,ub,NONLCON,options) minimizes

    with the default optimization parameters replaced by values in the

    structure OPTIONS. OPTIONS can be created with the GAOPTIMSET function.

    See GAOPTIMSET for details.

    X = GA(PROBLEM) finds the minimum for PROBLEM. PROBLEM is a structure

    that has the following fields:

    fitnessfcn: <Fitness function>

    nvars: <Number of design variables>

    Aineq: <A matrix for inequality constraints>

    bineq: <b vector for inequality constraints>

    Aeq: <Aeq matrix for equality constraints>

    beq: <beq vector for equality constraints>

    lb: <Lower bound on X>

    ub: <Upper bound on X>

    nonlcon: <nonlinear constraint function>

    options: <Options structure created with GAOPTIMSET>

    rngstate: <State of the random number generator>

    [X,FVAL] = GA(FITNESSFCN, ...) returns FVAL, the value of the fitness

    function FITNESSFCN at the solution X.

    [X,FVAL,EXITFLAG] = GA(FITNESSFCN, ...) returns EXITFLAG which

    describes the exit condition of GA. Possible values of EXITFLAG and the

    corresponding exit conditions are

    1 Average change in value of the fitness function over

    options.StallGenLimit generations less than options.TolFun and

    constraint violation less than options.TolCon.

    3 The value of the fitness function did not change in

    options.StallGenLimit generations and constraint violation less

    than options.TolCon.

    4 Magnitude of step smaller than machine precision and constraint

    violation less than options.TolCon. This exit condition applies

    only to nonlinear constraints.

    5 Fitness limit reached and constraint violation less than

    options.TolCon.

    0 Maximum number of generations exceeded.

    -1 Optimization terminated by the output or plot function.

    -2 No feasible point found.

    -4 Stall time limit exceeded.

    -5 Time limit exceeded.

    [X,FVAL,EXITFLAG,OUTPUT] = GA(FITNESSFCN, ...) returns a

    structure OUTPUT with the following information:

    rngstate: <State of the random number generator before GA started>

    generations: <Total generations, excluding HybridFcn iterations>

    funccount: <Total function evaluations>

    maxconstraint: <Maximum constraint violation>, if any

    message: <GA termination message>

    [X,FVAL,EXITFLAG,OUTPUT,POPULATION] = GA(FITNESSFCN, ...) returns the

    final POPULATION at termination.

    [X,FVAL,EXITFLAG,OUTPUT,POPULATION,SCORES] = GA(FITNESSFCN, ...) returns

    the SCORES of the final POPULATION.

    Example:

    Unconstrained minimization of 'rastriginsfcn' fitness function of

    numberOfVariables = 2

    x = ga(@rastriginsfcn,2)

    Display plotting functions while GA minimizes

    options = gaoptimset('PlotFcns',...

    {@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping});

    [x,fval,exitflag,output] = ga(@rastriginsfcn,2,[],[],[],[],[],[],[],options)

    An example with inequality constraints and lower bounds

    A = [1 1; -1 2; 2 1];  b = [2; 2; 3];  lb = zeros(2,1);

    % Use mutation function which can handle constraints

    options = gaoptimset('MutationFcn',@mutationadaptfeasible);

    [x,fval,exitflag] = ga(@lincontest6,2,A,b,[],[],lb,[],[],options);

    FITNESSFCN can also be an anonymous function:

    x = ga(@(x) 3*sin(x(1))+exp(x(2)),2)

    If FITNESSFCN or NONLCON are parameterized, you can use anonymous

    functions to capture the problem-dependent parameters. Suppose you want

    to minimize the fitness given in the function myfit, subject to the

    nonlinear constraint myconstr, where these two functions are

    parameterized by their second argument a1 and a2, respectively. Here

    myfit and myconstr are M-file functions such as

    function f = myfit(x,a1)

    f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + a1);

    and

    function [c,ceq] = myconstr(x,a2)

    c = [1.5 + x(1)*x(2) - x(1) - x(2);

    -x(1)*x(2) - a2];

    % No nonlinear equality constraints:

    ceq = [];

    To optimize for specific values of a1 and a2, first assign the values

    to these two parameters. Then create two one-argument anonymous

    functions that capture the values of a1 and a2, and call myfit and

    myconstr with two arguments. Finally, pass these anonymous functions to

    GA:

    a1 = 1; a2 = 10; % define parameters first

    % Mutation function for constrained minimization

    options = gaoptimset('MutationFcn',@mutationadaptfeasible);

    x = ga(@(x)myfit(x,a1),2,[],[],[],[],[],[],@(x)myconstr(x,a2),options)

    noavatar.png

    木头919

    在命令窗口输入gatool,调出工具箱,一目了然

    展开全文
  • matlab开发-计算函数遗传算法最小值。函数最小值微积分
  • 这是一种计算函数最小值的简单遗传算法。 它没有任何改进,但我有一些像精英主义、代沟和重整化这样的改进。
  • 用标准遗传算法求函数: 的最小值. 函数图像如图(及程序)所示: clear all; close all; clc; x=0:0.01:10; y=x+10*cos(5*x)+7*sin(4*x); figure plot(x,y) grid on xlabel('x') ylabel('f(x)') title('f(x)=...

    用标准遗传算法求函数:

    x+10*cos(5*x)+7*sin(4*x)

     的最小值.

    函数图像如图(及程序)所示:


    clear all;
    close all;
    clc;
    x=0:0.01:10;
    y=x+10*cos(5*x)+7*sin(4*x);
    figure
    plot(x,y)
    grid on
    xlabel('x')
    ylabel('f(x)')
    title('f(x)=x+10*cos(5*x)+7*sin(4*x)')



    仿真过程如下:

    (1)初始化种群数目NP=50

       染色体二进制编码长度L=20

       最大进化代数G=100

       交叉概率Pc=0.8

       变异概率pm=0.05

    (2)a.产生初始化种群,将二进制编码转化为十进制;

       b.计算个体适应度,并且进行归一化操作;

       c.在选择操作中,选择基于轮盘赌的方式进行;

       d.在交叉和变异过程,选择基于概率的方式进行;

       e.产生新的种群,并把历代的最优个体留在新的种群之中;

       f.重复b——e过程,进行下一步遗传操作。

    (3)遗产算法的终止条件判断:

       I.判断是否满足终止条件,若满足,则终止搜索过程,输出最优值;若不满足则继续进行迭代;

       II.为了防止遗传过程过长,可以设置遗传代数控制搜索过程。


    程序如下:

    function result=func(x)
    fit=x+10*cos(5*x)+7*sin(4*x);
    result=fit;


    %%%%%%%%%%%%%%求最小值%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%参数初始化%%%%%%%%%%%%%%%%%%%%%%
    clear all;%清变量
    close all;%清图
    clc;%清屏

    NP=50;%种群规模为50个
    L=20 ;%二进制字串长度
    Pc=0.8;%交叉概率
    Pm=0.05;%变异概率
    G=100;%max generation
    Xs=10;%上限
    Xx=0;%下限
    f=randint(NP,L);
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%算法循环部分%%%%%%%%%%%%%
    for k =1:G
        for i=1:NP
        U=f(i,:);
        m=0;
        for j=1:L
            m=U(j)*2^(j-1)+m;
        end
        x(i)=Xx+m*(Xs-Xx)/(2^L-1);
        Fit(i)=-func(x(i));
        end
        maxFit=max(Fit);%最大值
        minFit=min(Fit);%最小值
        rr=find(Fit==maxFit);
        fBest=f(rr(1,1),:);%历代最小值
        xBest=x(rr(1,1));
        Fit=(Fit-minFit)/(maxFit-minFit);
        %%%%基于轮盘赌的选择操作%%%%%%%
        sum_Fit=sum(Fit);
        fitvalue=Fit./sum_Fit;
        fitvalue=cumsum(fitvalue);
        ms=sort(rand(NP,1));
        fiti=1;
        newi=1;
        while newi<=NP
            if(ms(newi)<fitvalue(fiti))
                nf(newi,:)=f(fiti,:);
                newi=newi+1  ;   
            else
                fiti=fiti+1;
             end
        end
        %%%%基于概率的交叉操作%%%%%
        for i=1:2:NP
            p=rand;
               if p<Pc
                q=randint(1,L);         
                    for j=1:L
                            if q(j)==1;
                            temp=nf(i+1,j);
                            nf(i+1,j)=nf(i,j);
                            nf(i,j)=temp;
                            end
                
                    end
                end
        end
        %%%%基于概率的变异操作%%%
        
        for m=1:NP
            for n=1:L
                r=rand(1,1);
                if r<Pm
                    nf(m,n)=rand(1,1)*(Xs-Xx)+Xx;
                end
            end
        end
        f=nf;
        f(1,:)=fBest;
        trace(k)=-maxFit;
          
    end
    xBest;
    figure
    plot(trace)
    xlabel('迭代次数')
    ylabel('目标函数值')
    title('适应度进化曲线')
    x=xBest
    y=-maxFit


    运行结果:

             

    展开全文
  • 下列二元函数的最大值,f(x1,x2)=x1^2+x2^2,x1与x2的取值区间为{0,1,2,...,7}
  • 求解函数最小值的自适应遗传算法Matlab程序)
  • 应用遗传算法求函数最小值

    万次阅读 多人点赞 2016-11-25 16:27:00
    1、遗传算法概论  遗传算法(GA)可能是最早开发出来的模拟生物遗传系统的算法模型。它首先由Fraser提出,后来有Bremermann和Reed等人  再次提出。最后,Holland对遗传算法做了大量工作并使之推广,因此被认为是...

    1、遗传算法概论

           遗传算法(GA)可能是最早开发出来的模拟生物遗传系统的算法模型。它首先由Fraser提出,后来有Bremermann和Reed等人

     再次提出。最后,Holland对遗传算法做了大量工作并使之推广,因此被认为是遗传算法的奠基人。遗传算法模拟了基因进化,在这

    个模型中,个体的性状通过基因型表达。选择算子(模拟适者生存)与交叉算子(模拟繁殖),是遗传算法的主要驱动算法。

    2遗传算法的基本运算过程如下:

    a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。
    b)个体评价:计算群体P(t)中各个个体的适应度


    c)选择运算将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。
    d)交叉运算:将交叉算子作用于群体。遗传算法中起核心作用的就是交叉算子。
    e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。
    群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。
    f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。
    3、应用遗传算法求解函数最小值

         使用的函数为f(x)=7*sin(6*x)+6*cos(5*x),x∈[0,2*pi]

        遗传算法的MATLAB实现如下:

      

    L=16;  %编码长度,即用16位二进制表示
    N=32;  %种群数目
    M=48;  %M>=N,M个中间体,运用算子选择出M/2对母体,进行交叉;对M个中间体进行变异
    T=100; %最大繁殖代数
    Pc=0.8;  %交叉概率
    Pm=0.03;  %变异概率
    
    x1=zeros(1,N);
    x2=zeros(1,N);
    x4=zeros(1,N);
    %grayCode=zeros(1,N)';
    grayCode=cell(N,1);
    grayCodeNew=cell(N,1);
    for i=1:1:N %初始化种群N
        x1(1,i)=rand()*2*pi;
        x2(1,i)=uint16(x1(1,i)/(2*pi)*65535);
        %grayCode(i,:)=num2gray(x2(1,i),L); 
        grayCode{i}=num2gray(x2(1,i),L);
    end
    %=========进化,开始进行遗传算子操作
    for t=1:1:T
        y1=7*sin(6*x1)+6*cos(5*x1);
        for i=1:1:M/2    
            [~,b]=min(y1);
            %grayCodeNew(i,:)=grayCode(b,:);
            grayCodeNew{i}=grayCode{b};
            %grayCodeNew(i+M/2,:)=grayCode(b,:);
            grayCodeNew{i+M/2}=grayCode{b};
            y1(1,b)=inf;
        end
        for i=1:1:M/2  
            p=unidrnd(L);    
            if rand()< Pc %rand()产生一个随机数          
                for j=p:1:L               
                    temp=grayCodeNew{i}(j);               
                    grayCodeNew{i}(j)=grayCodeNew{M-i+1}(j);              
                    grayCodeNew{M-i+1}(j)=temp;
                end
            end
        end
        %将全部染色体按概率进行变异
        for i=1:1:M      
            for j=1:1:L
                if rand()< Pm               
                    grayCodeNew{i}(j)=dec2bin(1-bin2dec(grayCodeNew{i}(j)));
                end
            end
        end
        for i=1:1:M
            %x4(1,i)=gray2num(grayCodeNew(i,:));
            x4(1,i)=gray2num(grayCodeNew{i});
        end
        x3=double(x4)*2*pi/65535;
        y3=11*sin(6*x3)+7*cos(5*x3);
        for i=1:1:N  %更新种群
            %[a,b]=min(y3);
            [~,b]=min(y3);
            x1(1,i)=x3(1,b);
            %grayCode(i,:)=grayCodeNew(b,:);
            grayCode{i}=grayCodeNew{b};
            y3(1,b)=inf;
        end
    end
    %经过第T代后,由x1计算出y1,找出最小者
    %x1
    y1=11*sin(6*x1)+7*cos(5*x1);
    [a,b]=min(y1);
    x0=x1(1,b); 
    y0=a;      
    disp(['x0=',num2str(x0)]);
    disp(['y0=',num2str(y0)]);

    运行结果如下:


    展开全文
  • 遗传算法求函数最小值

    万次阅读 2018-02-05 15:45:47
    利用遗传算法寻找函数f(x)=sin(10πx)/x x=[1,2] 解题思路 将自变量在给定范围进行编码,得到种群编码,按照所选择的适应度函数并通过遗传算法中的选择,交叉和变异对个体进行筛选和进化,使适应度值大的个体被...

    利用遗传算法寻找函数f(x)=sin(10πx)/x    x=[1,2]

    解题思路

    将自变量在给定范围进行编码,得到种群编码,按照所选择的适应度函数并通过遗传算法中的选择,交叉和变异对个体进行筛选和进化,使适应度值大的个体被保留,小的个体被淘汰,新的种群继承上一代的信息,又优于下一代,这样反复循环,最后得出最终结果

    注:程序参考<<MATLAB智能智能算法30个案例>>, 依照matlab程序,用python进行了重写

    # -*- coding: utf-8 -*-
    import matplotlib.pyplot as plt
    import numpy as np
    from pylab import *
    import random
    import math
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False 




    #定义遗传算法参数
    pop_size=40
    generation=20
    length=30
    pc=0.65
    pm=0.01




    #编码
    def genEncoding(pop_size,length):
        pop=[[]]
        for i in range(pop_size):
            temp=[]
            for j in range(length):
                temp.append(random.randint(0,1))
            pop.append(temp)
        return pop[1:]


    #解码
    def genDecoding(pop,length):
        temp=[]
        for i in range(len(pop)):
            t=0
            for j in range(length):
                t+=pop[i][j]*math.pow(2,j)
            temp.append(t)
        return temp


    #计算目标值
    def calobjValue(pop,length,lb,ub):
        temp1=[]
        obj_value=[]
        x_value=[]
        temp1=genDecoding(pop,length)
        for i in range(len(temp1)):
            x=lb+(ub-lb)*temp1[i]/((math.pow(2,length))-1)
            x_value.append(x)
            obj_value.append(np.sin(10*pi*x)/x)
        return obj_value


    #计算适应度
    def fitness(pop,length,lb,ub):
        obj_value=[]
        fitness_value=[]
        obj_value=calobjValue(pop,length,lb,ub)
        for i in range(len(obj_value)):
            fitness_value.append(obj_value[i]-1)
        fitness_value=list(map(abs,fitness_value))
        return fitness_value


    #累积适应度
    def cumsum(newfitness_value):
        accumulation_value=[]
        t=0
        for i in range(len(newfitness_value)):
            t+=newfitness_value[i]
            accumulation_value.append(t)
        return accumulation_value


    #选择函数
    def selection(pop,fitness_value):
        newfitness_value=[]
        accumulation_value=[]
        total_fit=np.sum(fitness_value)
        for i in range(len(fitness_value)):
            newfitness_value.append(fitness_value[i]/total_fit)
        accumulation_value=cumsum(newfitness_value)
        ms=[]
        for i in range(len(pop)):
            ms.append(random.random())
        newin=0
        newpop=[]
        for i in range(len(ms)):
            j=0
            for j in range(len(accumulation_value)):
                if ms[i]<accumulation_value[j]:
                    t=pop[j]
                    newpop.append(t)
                    break
        return newpop


    #交叉函数
    def crossover(pop,fitness_value,pc):
        newpop=[]
        newpop=selection(pop,fitness_value)
        for i in range(len(newpop)-1):
            if random.random()<pc:
                temp1=[]
                temp2=[]
                temp1=newpop[i][3:15]
                temp2=newpop[i+1][3:15]
                newpop[i][3:15]=temp2
                newpop[i+1][3:15]=temp1
        return newpop


    def mutation(pop,fitness_value,pc,pm,length):
        newpop=[]
        newpop=crossover(pop,fitness_value,pc)
        for i in range(len(newpop)):
            if random.random()<pm:
                m1=random.randint(0,length-1)
                m2=random.randint(0,length-1)
                m3=random.randint(0,length-1)
                if newpop[i][m1]==1:
                    newpop[i][m1]=0
                else:
                    newpop[i][m1]=1
                if newpop[i][m2]==1:
                    newpop[i][m2]=0
                else:
                    newpop[i][m2]=1
                if newpop[i][m3]==1:
                    newpop[i][m3]=0
                else:
                    newpop[i][m3]=1
        i=0
        return newpop


    if __name__ =='__main__':
        #画出函数图
        plt.figure(1)
        lb=1
        ub=2
        x=np.arange(lb,ub,0.01)
        y=sin(10*pi*x)/x
        plt.plot(x,y)
        plt.xlabel("自变量x")
        plt.ylabel("自变量y")
        plt.title('sin(10*pi*x)/x')
        pop=genEncoding(pop_size,length)
        obj_value=calobjValue(pop,length,lb,ub)
        fitness_value=fitness(pop,length,lb,ub)
        gen=0
        x_value=[]
        best_x=[]
        best_individual=[]
        Generation=[]
        while gen<generation:
            newpop=mutation(pop,fitness_value,pc,pm,length)
            temp=genDecoding(newpop,length)
            for i in range(len(temp)):
                x=lb+(ub-lb)*temp[i]/((math.pow(2,length))-1)
                x_value.append(x)
            obj_value=calobjValue(newpop,length,lb,ub)
            k=0
            j=0
            for i in range(len(obj_value)):
                if k>obj_value[i]:
                    k=obj_value[i]
                    j=i
            best_individual.append(k)
            best_x.append(x_value[j])
            fitness_value=fitness(newpop,length,lb,ub)
            Generation.append(gen)
            gen=gen+1
        k=0
        j=0
        for i in range(len(best_individual)):
            if k>best_individual[i]:
                k=best_individual[i]
                j=i
        print(best_individual[j])
        print(best_x[j])
        best_individual.sort(reverse=True)
        plt.figure(2)
        plt.plot(Generation,best_individual)
        plt.xlabel("遗传代数")
        plt.ylabel("解的变化")
        plt.title("进化过程")
        plt.show()



    展开全文
  • 遗传算法GA函数最小值

    热门讨论 2013-02-25 17:04:19
    遗传算法,GA,求最小值,选择、交叉、变异算子
  • 今天小编就为大家分享一篇使用遗传算法求二元函数的最小值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Matlab实数编码遗传算法求函数极大值-实数编码遗传算法求Rosenbrock函数极大值.rar 所含文件: Figure19.jpg Matlab实数编码遗传算法求函数极大值 运行结果: ...
  • 一、传统遗传算法求解函数最小值 ①对于函数 其最小值位于时,最小值为0 matlab多次结果如下: 从上图能够看到传统能够得到最终结果,但是稳定性较差,不易得到较好的结果 ②对函数做平移,即可得到 其...
  • 问题:y=10cos(5xx)+7sin(x-5)+10xx的最小值要求:(1)用遗传算法编程求解问题(2)编程语言用MATLAB 或C(3)输出问题的最优解及最大值,并绘图显示方法一function.mclear all;close all;clc;x=-1:0.01:0;y=10.*cos(5....
  • 能够求解规定定义域内函数的最值问题,包括负数域,同时进行了一定的改进,使遗传算法的计算更加稳定
  • 遗传算法原理 基本思想 遗传算法(Genetic Algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则,它最初由美国Michigan大学的J. Holland教授于1967年提出。 遗传算法是从...
  • 遗传算法计算函数最小值f(x)=∑xi^2 基于matlib与python对比 采用种群数100,实数编码,进化100代交叉概率0.8,变异概率0.1 # -*- coding: utf-8 -*- """ """ import numpy as np #适应度函数 def func2(x):...
  • 本文基于谢菲尔德大学遗传算法工具箱。...其最小值显然在0处%定义遗传算法参数 NIND=40; %个体数目(Numbe of individuals) MAXGEN=500; %最大遗传代数(Maximum number of generations) NVAR=20; %变量的维数 PRECI
  • 遗传算法是模拟生物在自然环境中的遗传和进化的过程而形成的自适应全局优化搜索算法。 遗传算法能有效的求解NP(非确定行多项式)问题以及非线性、多峰函数优化和多目标优化问题。 其本质是一种并行、高效、全局搜索...
  • 根据上面的例子,首先在...之后就直接还是按着上图的3行再重新运行一遍,之后打开优化工具箱,选择GA遗传算法优化工具箱。输入如下图。 取反就是最大值。在x=10处,得最大值为4100. 之后为取最小值输入 得...
  • 遗传算法用的是matlab实现的,用该算法求得是函数的极小值,并且程序都是底层程序没有用到顶层的工具包,能够更好的理解遗传算法的基本思想。
  • 0. 文章目的本人写这样一篇文章的目的在于提供一张学习遗传算法的地图。实现的主要工具是MATLAB和其自带的全局优化工具箱 Global Optimization Toolbox。无论读者是来自工程、科学或者其他任何领域,希望看完文章...
  • 遗传算法求二元函数的最小值

    万次阅读 2016-11-22 13:42:39
    实值种群的变异(遗传算法育种器的变异算子) NewChrom=mutbga(OldChorm, FieldDR) NewChrom=mubga(OldChorm, FieidDR, MutOpt) MutOpt(1)是在[ 0 1]间的重组概率的标量,默认为1 MutOpt(2)是在[0 1]间的压缩...
  • 标准遗传算法,解决y=x1^2+x2^2+x3^2的最小值,每个变量十位二进制编码
  • Matlab遗传算法公交车路线优化Matlab遗传算法公交车路线优化Matlab遗传算法公交车路线优化1 模型介绍2模型分析2.1整体设计2.2要点分析3结果展示1 模型介绍以乘客出行总时间最小为目标函数,出其最小值即为最终接驳...
  • matlab遗传算法求最优解

    万次阅读 多人点赞 2018-08-29 17:46:48
    首先什么是遗传算法:一个非常好的理解遗传算法的例子 强烈推荐入门  遗传算法的手工模拟计算示例 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各  个主要执行步骤。    例:...
  • 大话遗传算法(含Matlab代码)

    万次阅读 多人点赞 2017-10-09 22:51:28
    一、遗传算法简介 在工程实践中,经常面临多变量、不可微、不连续、有约束等条件下的最优化问题,此时梯度下降法、牛顿法等传统的优化算法难以下手,智能算法却凭借不断迭代、概率变化逐步逼近全局最优解,从而达到...
  • MATLAB中如何使用遗传算法MATLAB中如何使用遗传算法高质量学习资源免费获取,专注但不限于【Linux】【C/C++/Qt】【FPGA】【数据结构与算法】, 根据多年技术经验纯【原创】,纯【干货】,分享【技术心得】,力求【授...
  • 遗传算法详解及matlab代码实现

    万次阅读 多人点赞 2020-04-04 11:34:30
    遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 主要特点 直接对结构对象进行操作,不存在求导和函数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,066
精华内容 426
关键字:

遗传算法求最小值matlab

matlab 订阅