求解非线性规划问题的遗传算法设计与实现【精品毕业设计】(完整版)
- 格式:doc
- 大小:785.50 KB
- 文档页数:35
摘要非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用.传统的解决非线性规划问题的方法,如梯度法、罚函数法、拉格朗日乘子法等,稳定性差,对函数初值和函数性态要求较高,且容易陷入局部最优解.遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型.遗传算法是一种全局搜索算法,简单、通用、鲁棒性强,对目标函数既不要求连续,也不要求可导,适用于并行分布处理,应用范围广。
本文在分析传统的非线性规划算法的不足和遗传算法的优越性的基础上,将遗传算法应用于非线性规划。
算法引进惩罚函数的概念,构造带有惩罚项的适应度函数;通过实数编码,转轮法选择,双点交叉,均匀变异,形成了求解非线性规划问题的遗传算法.与传统的非线性规划算法——外点罚函数法的比较结果表明该算法在一定程度上有效地克服了传统的非线性规划算法稳定性差,对函数初值和函数性态要求较高,且容易陷入局部最优解的缺陷,收敛更合理,性能更稳定。
关键词:非线性规划;遗传算法;罚函数法ABSTRACTNon—linear programming has a wide range of applications in engineering,management,economic, scientific, and military aspects。
Traditional methods to solve the non-linear programming problem,such as the gradient method,penalty method,Lagrange multiplier method, have poor stability. They are sensitive to the function initial value and request the objective function to be continuous and differential. The results are also easily trapped into local optimal solution.Genetic algorithm is a kind of calculate model which simulates Darwin's genetic selection and biological evolution of natural selection. Genetic algorithm is a global search algorithm. It has simple,universal,robust features,and does not request the objective function to be continuous and differential,and is suitable in parallel distribution processing。
非线性规划算法现代数学算法的发展,使得计算机在解决多种实际问题中发挥出越来越重要的作用。
其中,非线性规划算法作为一种重要的优化算法,被广泛应用于生产、经济、地质和金融等领域。
本文将介绍非线性规划问题的定义、特点、求解方法和应用。
一、非线性规划问题的定义非线性规划问题是指在目标函数和约束条件中至少有一项是非线性函数的数学规划问题。
具体的表示形式可以是以下形式:$$\min f(x)$$$$s.t.\ \ \ \ \ \ \ \ \ \ \ g_i(x) \leq 0, \ \ i=1,2, \cdots, m $$$$h_j(x) =0,\ \ j=1,2, \cdots, n$$其中,$x$为决策变量,$f(x)$为目标函数,$g_i(x)$和$h_j(x)$分别是不等式约束和等式约束条件。
二、非线性规划问题的特点非线性规划问题与线性规划问题相比,具有以下几个特点:1. 非线性规划问题的数学模型较为复杂。
在考虑实际问题时,目标函数中经常包含各种复杂的非线性函数,如三角函数、指数函数、对数函数等等。
同时,约束条件的不等式表达式也可能是非线性函数。
2. 非线性规划问题的求解难度较大。
因为非线性规划问题的目标函数和约束条件不再满足线性性质,导致求解过程中出现很多非线性优化问题。
这也意味着,非线性规划问题中需要用到高级的优化算法,这些算法的计算成本和正确性都需要严格考虑。
3. 非线性规划问题的解可能存在多个局部最优解。
相比线性规划问题,非线性规划问题的解集合往往具有多个局部最优解。
这意味着,解决这类问题时需要针对不同的局部解进行分析,从而找到全局最优解。
三、非线性规划求解方法通常情况下,非线性规划问题的求解方法包括以下几种:1. 梯度方法。
梯度方法是一种基于梯度信息的优化算法,能保证解的收敛性和稳定性。
这种方法的主要思想是通过计算目标函数的梯度信息来确定下一步迭代的方向和步长。
2. 共轭梯度法。
共轭梯度法是在梯度法基础上改进而来的算法,更加高效和优化。
摘要电力系统的接地网是维护电力系统安全可靠运行、保障运行人员和电气设备安全的重要设备,但往往由于接地网的导体腐蚀、断裂等故障,引起或者扩大事故,带来巨大的经济损失和不良的社会影响。
因此,诊断接地网的断点和腐蚀情况已经成为电力部门的一项重大反事故措施。
根据地网接地引下线之间电阻或者转移电阻的测量值,建立合适的模型,求出地网各段导体的电阻值,进而判断地网是否有断裂或者被腐蚀的导体存在以及它们的位置。
但是受到可及节点数目总是小于地网支路数目的限制,得到的故障诊断方程都是欠定的,而且方程还没有显式的解析表达式,直接求解困难很多。
针对上述问题,本文从模型和求解两方面接地网故障诊断方法做了深入详细的分析和研究。
分析了故障诊断模型的特点,根据矩阵分析的基本理论,考虑用基于遗传算法的最小二乘法来求解诊断方程。
避免了由与简化过程所带来的误差,从而使地网故障诊断方程的以直接求解。
本文建立和求解的数学模型的过程可以分为三步:首先,根据可及节点的数目建立非线性隐式方程;其次,求解非线性约束规划问题,以能量达到最小构造目标函数;最后,将遗传算法引入对非线性故障诊断方程的求解过程中,用遗传算法求出满足目标函数的全局最优解,并收到了良好的效果。
关键词:接地网,故障诊断,遗传算法ABSTRACTThe grounding grids of substations are important equipment to keep stable operation of power system and safety to operator and power apparatus. But the grounding faults due to corrosion of substation grounding grid often take place. The corrosion of these grounding grid and electromotive force of grounding current, can induce grounding grid fault. These grounding grid faults often bring huge economical lost and bad society effect. So how to diagnosis the corrosion condition of grounding grid and its location is a very important measure remained to electric power system to guard against grounding faults.If the relationship between port resistances and conductor resistance is given, conductor resistance can be computed from port resistances through mathematical analysis. Comparing these results with the initial values that they are designed to be, the accurate current corrosion status of all grounding conductors under ground can be known. But the number of those touchable nodes is always fewer than that of the branches, the function we obtain according electric circuit theory is a function which number is fewer than its variable, and they have no explicit analytic expression. To solve the function straightly become very difficult.From above problems, this thesis gives some in-depth and detailed analysis about corrosion of substation grounding grid from its model and solution. After analyzing the characteristics of model, and based on matrix analysis theory, one solution is proposed. That is, we can use implicit function to satisfy all demands from optimization a rithmetics, such as differential coefficient, grids or determinant, which makes sure that simplified errors can be prevent and our model can be solved too. The mathematic models in this thesis can be divided into three parts: part one, to sum up solving the implict equation; part two, to sum up solving a nonlinear constrained optimization problem; part three, bring Genetic Algorithms into solving the model of nonlinear implict equation, and get a good result.KEY WORDS: grounding grid,corrosion diagnosis, Genetic Algorithms目录第1章绪论 (1)1.1 研究问题的工程背景 (1)1.2 国内外研究现状 (2)1.3 本文的主要工作 (3)1.3.1 主要研究内容 (3)1.3.2 论文章节编排 (4)第2章矩阵知识和遗传算法概述 (5)2.1 函数矩阵的基本运算及其性质 (5)2.2 函数矩阵的导数 (7)2.3 遗传算法概述 (9)第3章接地网故障诊断原理及其数学模型 (13)3.1 接地网故障诊断原理 (13)3.2 数学模型 (16)3.2.1 约束规划模型 (16)3.2.2 工程简化模型 (17)3.3 模型分析 (18)3.4 基于遗传算法的非线性最小二乘优化算法 (21)3.4.1 遗传算法的主要实现技术 (22)3.4.2 本文中遗传算法的实现 (24)3.3 本章小结 (25)第4章地网故障诊断实例研究 (27)4.1 算例1 (27)4.2 算例2 (33)4.3 算例3 (36)4.4 本章小结 (39)第5章结论与展望 (41)致谢 (42)参考文献 (43)附录 (45)附录1 (45)附录2 (48)附录3 (53)第1章绪论1.1研究问题的工程背景发电厂、变电站的接地网是保证电力系统安全可靠运行的重要措施。
非线性整数规划的遗传算法Matlab程序(附图)通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab 优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。
这时就需要针对问题设计专门的优化算法。
下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考!模型的形式和适应度函数定义如下:这是一个具有200个01决策变量的多目标非线性整数规划,编写优化的目标函数如下,其中将多目标转化为单目标采用简单的加权处理。
function Fitness=FITNESS(x,FARM,e,q,w)%% 适应度函数% 输入参数列表% x 决策变量构成的4×50的0-1矩阵% FARM 细胞结构存储的当前种群,它包含了个体x% e 4×50的系数矩阵% q 4×50的系数矩阵% w 1×50的系数矩阵%%gamma=0.98;N=length(FARM);%种群规模F1=zeros(1,N);F2=zeros(1,N);for i=1:Nxx=FARM{i};ppp=(1-xx)+(1-q).*xx;F1(i)=sum(w.*prod(ppp));F2(i)=sum(sum(e.*xx));endppp=(1-x)+(1-q).*x;f1=sum(w.*prod(ppp));f2=sum(sum(e.*x));Fitness=gamma*sum(min([sign(f1-F1);zeros(1,N)]))+(1-gamma)*sum(mi n([sign(f2-F2);zeros(1,N)]));针对问题设计的遗传算法如下,其中对模型约束的处理是重点考虑的地方function [Xp,LC1,LC2,LC3,LC4]=MYGA(M,N,Pm)%% 求解01整数规划的遗传算法%% 输入参数列表% M 遗传进化迭代次数% N 种群规模% Pm 变异概率%% 输出参数列表% Xp 最优个体% LC1 子目标1的收敛曲线% LC2 子目标2的收敛曲线% LC3 平均适应度函数的收敛曲线% LC4 最优适应度函数的收敛曲线%% 参考调用格式[Xp,LC1,LC2,LC3,LC4]=MYGA(50,40,0.3)%% 第一步:载入数据和变量初始化load eqw;%载入三个系数矩阵e,q,w%输出变量初始化Xp=zeros(4,50);LC1=zeros(1,M);LC2=zeros(1,M);LC3=zeros(1,M);LC4=zeros(1,M);Best=inf;%% 第二步:随机产生初始种群farm=cell(1,N);%用于存储种群的细胞结构k=0;while k %以下是一个合法个体的产生过程x=zeros(4,50);%x每一列的1的个数随机决定for i=1:50R=rand;Col=zeros(4,1);if R<0.7RP=randperm(4);%1的位置也是随机的Col(RP(1))=1;elseif R>0.9RP=randperm(4);Col(RP(1:2))=1;elseRP=randperm(4);Col(RP(1:3))=1;endx(:,i)=Col;end%下面是检查行和是否满足约束的过程,对于不满足约束的予以抛弃 Temp1=sum(x,2);Temp2=find(Temp1>20);if length(Temp2)==0k=k+1;farm{k}=x;endend%% 以下是进化迭代过程counter=0;%设置迭代计数器while counter%% 第三步:交叉%交叉采用双亲双子单点交叉newfarm=cell(1,2*N);%用于存储子代的细胞结构Ser=randperm(N);%两两随机配对的配对表A=farm{Ser(1)};%取出父代AB=farm{Ser(2)};%取出父代BP0=unidrnd(49);%随机选择交叉点a=[A(:,1:P0),B(:,(P0+1):end)];%产生子代ab=[B(:,1:P0),A(:,(P0+1):end)];%产生子代bnewfarm{2*N-1}=a;%加入子代种群newfarm{2*N}=b;%以下循环是重复上述过程for i=1:(N-1)A=farm{Ser(i)};B=farm{Ser(i+1)};P0=unidrnd(49);a=[A(:,1:P0),B(:,(P0+1):end)];b=[B(:,1:P0),A(:,(P0+1):end)];newfarm{2*i-1}=a;newfarm{2*i}=b;endFARM=[farm,newfarm];%新旧种群合并%% 第四步:选择复制FLAG=ones(1,3*N);%标志向量,对是否满足约束进行标记%以下过程是检测新个体是否满足约束for i=1:(3*N)x=FARM{i};sum1=sum(x,1);sum2=sum(x,2);flag1=find(sum1==0);flag2=find(sum1==4);flag3=find(sum2>20);if length(flag1)+length(flag2)+length(flag3)>0FLAG(i)=0;%如果不满足约束,用0加以标记endendNN=length(find(FLAG)==1);%满足约束的个体数目,它一定大于等于N NEWFARM=cell(1,NN);%以下过程是剔除不满主约束的个体kk=0;for i=1:(3*N)if FLAG(i)==1kk=kk+1;NEWFARM{kk}=FARM{i};endend%以下过程是计算并存储当前种群每个个体的适应值SYZ=zeros(1,NN);syz=zeros(1,N);for i=1:NNx=NEWFARM{i};SYZ(i)=FITNESS2(x,NEWFARM,e,q,w);%调用适应值子函数endk=0;%下面是选择复制,选择较优的N个个体复制到下一代while k minSYZ=min(SYZ);posSYZ=find(SYZ==minSYZ);POS=posSYZ(1);k=k+1;farm{k}=NEWFARM{POS};syz(k)=SYZ(POS);SYZ(POS)=inf;end%记录和更新,更新最优个体,记录收敛曲线的数据minsyz=min(syz);meansyz=mean(syz);pos=find(syz==minsyz);LC3(counter+1)=meansyz;if minsyz Best=minsyz;Xp=farm{pos(1)};endLC4(counter+1)=Best;ppp=(1-Xp)+(1-q).*Xp;LC1(counter+1)=sum(w.*prod(ppp));LC2(counter+1)=sum(sum(e.*Xp));%% 第五步:变异for i=1:Nif Pm>rand%是否变异由变异概率Pm控制AA=farm{i};%取出一个个体POS=unidrnd(50);%随机选择变异位R=rand;Col=zeros(4,1);if R<0.7RP=randperm(4);Col(RP(1))=1;elseif R>0.9RP=randperm(4);Col(RP(1:2))=1;elseRP=randperm(4);Col(RP(1:3))=1;end%下面是判断变异产生的新个体是否满足约束,如果不满足,此次变异无效 AA(:,POS)=Col;Temp1=sum(AA,2);Temp2=find(Temp1>20);if length(Temp2)==0farm{i}=AA;endendendcounter=counter+1end%第七步:绘收敛曲线图figure(1);plot(LC1);xlabel('迭代次数');ylabel('子目标1的值');title('子目标1的收敛曲线'); figure(2);plot(LC2);xlabel('迭代次数');ylabel('子目标2的值');title('子目标2的收敛曲线'); figure(3);plot(LC3);xlabel('迭代次数');ylabel('适应度函数的平均值');title('平均适应度函数的收敛曲线'); figure(4);plot(LC4);xlabel('迭代次数');ylabel('适应度函数的最优值');title('最优适应度函数的收敛曲线');贴出一幅运行得到的收敛曲线。
本科毕业论文(设计)论文题目:非线性规划问题的建模与Matlab求解实现的案例分析学生:许富豪学号:1204180137专业:信息与计算科学班级:计科1201指导教师:王培勋完成日期:2015年6月25日非线性规划问题的建模与Matlab求解实现的案例分析容摘要非线性规划问题通常极其抽象,并且求解计算极其复杂,本文举个别非线性规划问题案例,通过对抽象的非线性规划问题先建立数学模型,再利用Matlab软件高效快捷的实现非线性规划问题的求解,最后分析利用Matlab软件得出的案例结果。
关键词:非线性规划建立数学模型Matlab目录(三号黑体居中)空一行空一行一、※※※※※※ (1)(一)※※※※※※ (1)1.※※※※※※※※※※※※※ (1)2.※※※※※※※ (4)(二)※※※※ (7)(三)※※※※※※※※ (12)二、※※※※ (16)(一)※※※※※ (16)(二)※※※※※ (24)1.※※※※ (24)2.※※※※※ (30)3.※※※※ (31)(三)※※※※ (33)三、※※※※ (36)(一)※※※※※ (38)(二)※※※※ (43)四、※※※※ (45)参考文献 (48)附录 (50)(标题顺序号、容及其开始页码均为四号宋体,一级标题为黑体四号)序 言非线性规划问题通常难以用人力计算,所以我们一般利用Matlab 软件代替人去计算抽象的非线性规划问题,解决了耗费时间、耗费精力的问题,快速准确的得出计算结果。
因此,善于利用Matlab 实现非线性规划问题的求解非常重要,而求解非线性规划问题之前必须先对问题进行建立数学模型,才能准确的理解题意并快速的运用Matlab 求解。
一、非现性规划的基本概念(一)定义如果目标函数或约束条件中至少有一个是非线性函数,则最优化问题就叫做非线性规划问题,简记为NP 。
(二)一般形式min (),n f x x E ∈,()=0(=1,2,..()0(j=1,2i jh x j m s t g x l ⋯≤⎩⋯⎧⎨),,)其中:1,2,n =()Tx x x x ⋯称为模型(NP )的决策变量,f 称为目标函数,(=1,...,)i h i m 和(=1,...,)j g j l 称为约束函数;()=0(=1,...,)i h x i m 称为等式约束;()0(=1,...,)j g x j l ≤称为不等式约束。
遗传算法在非线性规划中的应用作者:李欣蔚来源:《电子技术与软件工程》2018年第02期摘要非线性规划问题是如今被应用在各领域中的重要解题方法。
遗传算法作为近年来一种从生物遗传学身上学习到的智能算法,与传统方法相比虽然具有一定的模拟限制,但在解决全局优化问题上已经取得了重大进步。
本文主要通过简要介绍遗传算法的优化过程,以及分析非线性规划中主要存在的问题,通过提出一种新的学习因子来进行改进遗算法在非线性规划中的应用。
【关键词】遗传算法改进适配性非线性规划非线性规划?作为发展历史不久的新型学科,目前其有效算法已经存在多种解法,随着计算机技术的快速发展,非线性规划的方法在其中的编译取得了重要的成果。
而对于应用领域的扩展,遗传算法的研究不仅仅局限于生物学,已经被引用到人工智能等方面,为一定领域上的开发瓶颈带来了新的希望。
遗传算法的优化过程值得在更好的方向上应用,在这其中,如何改进遗传算法在非线性规划中的应用成为了难题之一。
1 遗传算法的优化过程遗传算法是模拟了生物学在基因遗传方面的操作的算法。
因而不难理解,在遗传算法的操作过程中的主要任务就是在群体对象中实现对个体的改进,通过一层一层的遗传算法改进操作,达到对整体的改进目的。
其中最基础的三种遗传优化过程为选择、交叉和变异。
1.1 选择遗传算法的选择过程首先要进行编译,利用编码来对遗传算法中的每一个个体进行分析,并计算其累计的概率。
具体的算法步骤如下:(1)将遗传算法中的数据转换成编码值。
(2)编码过程中对个体进行匹配而后计算其适配值。
(3)将群体个数的总数设定为n,个体为ki,其中i为1到n之间的任意数。
因此每个个体的适配值的函数为f(ki)。
(4)将每个个体的适配值叠加得到群体总数的适配值为(5)分别计算每个遗传算法中的个体 ki(i=1,…,n)的选择概率pi=f(ki)/F。
(6)分别计算每个遗传算法中的个体 ki(i=1,…,n)的选择概率叠加为(7)寻找一个随机概率数,即大于0小于1的数值,记作c。
基于遗传算法的非线性规划问题求解研究随着科技的发展,越来越多的复杂问题需要通过计算机来解决,其中非线性规划问题就是其中之一。
在实际应用中,非线性规划问题往往需要考虑多个约束条件,这使得求解变得更加困难。
因此,寻找一种有效的求解方法变得尤为重要。
遗传算法作为一种基于生物进化思想的优化算法,在求解非线性规划问题中表现出了良好的优化效果。
其求解过程模拟了生物进化的过程,即通过模拟选择、交叉和变异等步骤,筛选出最优解。
由于遗传算法具有全局寻优性、强鲁棒性和易于并行化等特点,在非线性规划问题的求解中被广泛应用。
以下,将从遗传算法的原理、流程以及应用等方面阐述基于遗传算法的非线性规划问题求解研究。
一、遗传算法原理遗传算法的基本思想源于达尔文的进化论和孟德尔的遗传学说,其基本原理是通过人工模拟自然选择和基因遗传的过程来搜索最优解。
具体而言,遗传算法包含三个基本操作:选择、交叉和变异。
其操作包含以下主要步骤:1. 初始化:初始化种群中每个个体的基因型,可以随机生成或使用既有数据集进行初始化。
2. 评估:通过目标函数和约束条件对种群中所有个体进行评估。
3. 选择:选择适应度高的个体进入下一代,遗传算法采用轮盘赌选择法、锦标赛选择法等算法进行选择。
4. 交叉:在选择的个体之间进行基因的交叉操作,产生新的个体。
5. 变异:随机将基因中的某些位置进行变异,产生新的基因。
6. 新一代生成:通过选择、交叉和变异操作,生成新一代种群来代替原来的种群。
以上也是最基本的遗传算法流程,其优点在于针对特定问题可以进行个性化的进一步优化,如改变实数编码、确定适当的交叉种类等等。
在求解非线性规划问题中,需根据对问题特征的认识进行调整,如将约束条件引入选择和变异等操作中。
二、非线性规划问题简介非线性规划(Nonlinear programming)指在目标函数不是线性的情况下,寻找使目标函数最大或最小的决策变量的值的问题。
在实际问题中,非线性约束也是非常重要的,其使问题更具现实意义,但也为问题的求解增加了难度。
非线性规划问题的数学算法设计与优化引言:非线性规划是数学优化领域中的一个重要分支,它研究的是在约束条件下寻找目标函数的最优解。
与线性规划相比,非线性规划问题更加复杂,因为它涉及到非线性函数的优化。
为了解决这类问题,数学家们提出了许多有效的算法,并不断进行改进和优化。
本文将介绍几种常见的非线性规划算法,并探讨它们的优化方法。
一、梯度下降法梯度下降法是一种常用的非线性规划算法,它通过迭代的方式逐步优化目标函数。
该算法的基本思想是沿着目标函数的负梯度方向进行搜索,直到找到最优解为止。
梯度下降法的优化过程可以分为两个步骤:计算目标函数的梯度和更新参数。
在计算梯度时,可以使用数值方法或者解析方法,具体选择取决于问题的复杂程度和计算效率的要求。
在更新参数时,可以采用固定步长或者自适应步长的方式,以控制搜索的速度和精度。
二、牛顿法牛顿法是一种经典的非线性规划算法,它利用目标函数的二阶导数信息进行搜索。
该算法的核心思想是通过构造二次逼近模型来近似目标函数,并求解该模型的最优解。
牛顿法的优化过程可以分为三个步骤:计算目标函数的一阶导数、二阶导数和更新参数。
在计算导数时,可以使用数值方法或者解析方法,具体选择取决于问题的复杂程度和计算效率的要求。
在更新参数时,可以采用精确求解或者近似求解的方式,以控制搜索的速度和精度。
三、拟牛顿法拟牛顿法是一种改进的非线性规划算法,它通过构造目标函数的拟牛顿方程来近似目标函数的二阶导数。
该算法的基本思想是利用历史搜索信息来更新参数,并通过迭代的方式逐步优化目标函数。
拟牛顿法的优化过程可以分为四个步骤:计算目标函数的一阶导数、构造拟牛顿方程、求解拟牛顿方程和更新参数。
在构造拟牛顿方程时,可以使用不同的方法,例如DFP方法、BFGS方法等,以逼近目标函数的二阶导数。
在求解拟牛顿方程时,可以采用精确求解或者近似求解的方式,以控制搜索的速度和精度。
四、全局优化方法除了上述的局部优化方法,全局优化方法也是解决非线性规划问题的一种重要途径。
摘要
非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用。
传统的解决非线性规划问题的方法,如梯度法、罚函数法、拉格朗日乘子法等,稳定性差,对函数初值和函数性态要求较高,且容易陷入局部最优解。
遗传算法是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。
遗传算法是一种全局搜索算法,简单、通用、鲁棒性强,对目标函数既不要求连续,也不要求可导,适用于并行分布处理,应用范围广。
本文在分析传统的非线性规划算法的不足和遗传算法的优越性的基础上,将遗传算法应用于非线性规划。
算法引进惩罚函数的概念,构造带有惩罚项的适应度函数;通过实数编码,转轮法选择,双点交叉,均匀变异,形成了求解非线性规划问题的遗传算法。
与传统的非线性规划算法——外点罚函数法的比较结果表明该算法在一定程度上有效地克服了传统的非线性规划算法稳定性差,对函数初值和函数性态要求较高,且容易陷入局部最优解的缺陷,收敛更合理,性能更稳定。
关键词:非线性规划;遗传算法;罚函数法
ABSTRACT
Non-linear programming has a wide range of applications in engineering, management, economic, scientific, and military aspects. Traditional methods to solve the non-linear programming problem, such as the gradient method, penalty method, Lagrange multiplier method, have poor stability. They are sensitive to the function initial value and request the objective function to be continuous and differential. The results are also easily trapped into local optimal solution.
Genetic algorithm is a kind of calculate model which simulates Darwin's genetic selection and biological evolution of natural selection. Genetic algorithm is a global search algorithm. It has simple, universal, robust features,and does not request the objective function to be continuous and differential, and is suitable in parallel distribution processing. Genetic algorithm is widely applied in many areas.
Based on the analysis of the disadvantage of traditional non-linear programming algorithm and the advantage of genetic algorithm, genetic algorithm is applied to non-linear programming in this paper. The introduction of the concept of penalty function is used to construct the fitness function with punishment. By using real-coded, Roulette Wheel selection method, two-point crossover, uniform mutation, we formed a genetic algorithm to solve the non-linear programming problem. Compared with the most classical and widely used traditional non-linear programming problem algorithm –SUMT algorithm, the results show that the new algorithm could effectively overcome the defect of the traditional algorithm in a certain extent. The new algorithm is more stable, less sensitive to the function initial value and conditions, and always could receive the optimal solution or approximate optimal solution. Its convergence results are more reasonable, the performance is more stable.
Key Words: Non-linear Programming; Genetic Algorithm; SUMT Algorithm
目录
1 概论 (1)
1.1 背景介绍 (1)
1.1.1 非线性规划简介 (1)
1.1.2 遗传算法简介 (1)
1.2 研究内容 (2)
2 非线性规划 (3)
2.1 非线性规划的概念 (3)
2.2 非线性规划的数学模型 (3)
2.3 非线性规划的求解方法 (4)
2.3.1 一维最优化方法 (4)
2.3.2 无约束最优化方法 (4)
2.3.3 约束最优化方法 (5)
2.4 非线性规划的应用 (5)
3 传统非线性规划算法——外点罚函数法 (6)
3.1 算法概述 (6)
3.2 算法描述 (6)
3.3 算法性能分析 (7)
3.4 外点罚函数法的程序设计 (8)
3.4.1程序步骤 (8)
3.4.2程序流程图 (8)
4 遗传算法 (10)
4.1 遗传算法概述 (10)
4.1.1 遗传算法的生物学基础 (10)
4.1.2 遗传算法的一般结构 (10)
4.1.3 遗传算法的特点 (12)
4.1.4 遗传算法的应用 (12)
4.2 遗传算法实现的关键技术 (13)
5 求解非线性规划问题的遗传算法设计 (16)
5.1 实用遗传算法设计 (16)
5.2 求解非线性规划问题的遗传算法程序设计 (21)
5.2.1 算法过程描述 (21)
5.2.2 遗传算法程序流程图 (22)
5.2.3 遗传算法中所设计的辅助算法的设计 (23)
6 算法的结果分析 (24)
6.1 概述 (24)
6.2 结果比较 (24)
7 总结 (28)
致谢 (29)
参考文献 (30)
1 概论
1.1 背景介绍
1.1.1 非线性规划简介
具有非线性约束条件或目标函数的数学规划,称为非线性规划。
非线性规划是20世纪50年代才开始形成的一门新兴学科。
1951年H.W.库恩和A.W.塔克发表的关于最优性条件(后来称为库恩-塔克条件)的论文是非线性规划正式诞生的一个重要标志。
在50年代还得出了可分离规划和二次规划的n种解法,它们大都是以G.B.丹齐克提出的解线性规划的单纯形法为基础的。
50年代末到60年代末出现了许多解非线性规划问题的有效的算法,70年代又得到进一步的发展。
非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优化设计提供了有力的工具。
随着计算机的产生与发展,非线性规划作为一门独立的学科越来越受到人们的重视。
在非线性规划理论研究的基础上,人们日益重视非线性规划问题求解方法的研究。
传统的解决非线性规划问题的方法有多种,如搜索法、梯度法、变尺度法、罚函数法、拉格朗日乘子法、可行方向法等,虽然解法很多,非线性规划目前还没有能适用于各种问题的算法,各个方法都有自己特定的适用范围。
1.1.2 遗传算法简介
遗传算法(Genetic Algorithm),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是由美国Michigan 大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法(SGA)。
遗传算法是一种特别有效的算法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程,从而得到最优解或准最优解。
它的主要特点是简单、通用、鲁棒性强,对目标函数既不要求连续,也不要求可导,适用于并行分布处理,应用范围广。
遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于很多领域,如函数优化、组合优化、生产调度问题、自动控制、机器人智能控制、图像处理,人工生命、遗传编程、机器学习等。
并且取得了令人瞩目的成果。