遗传算法与非线性规划结合求解函数极值

本文探讨了遗传算法和非线性规划结合在求解函数极值中的应用。由于遗传算法全局搜索能力强但易陷入局部最优,而梯度下降局部搜索强,二者结合能提高找到全局最优解的可能性。通过MATLAB实现,经过固定次数迭代,遗传算法找出可能的解,然后使用梯度下降算法在这些解中寻找最佳解。实验结果显示,对于简单的函数,直接使用遗传算法也能找到最优值。
摘要由CSDN通过智能技术生成

动机

 MATLAB经典非线性规划算法大多采用梯度下降的方法进行求解,局部搜索能力较强,但容易掉入局部极值,而遗传算法采用选择、交叉和变异算子进行搜索,全局搜索能力较强,局部搜索能力较弱
 打个比方的话,大概就是遗传算法可以看到各个山丘,但它不会去分辨哪个才是最高的,很容易随便选一个就爬上去了。而梯度下降算法视野比较窄,但它会在看到的那些里爬到最高的山上去
如果将二者结合,就很有可能能够得到问题的全局最优解

流程

这里写图片描述
 N是个固定的数,先用遗传算法进行N次迭代(即先找出那些山丘),等到了N次,再用梯度下降算法来在这些山丘里寻求最高的那个

MATLAB代码

clc
clear all
close all

%定义自变量的范围
lbx1=0;ubx1=2.8274; 
lbx2=0;ubx2=2.8274;
lbx3=0;ubx3=2.8274;
lbx4=0;ubx4=2.8274;
lbx5=0;ubx5=2.8274;

%% 定义遗传算法参数
NIND=100;        %个体数目
MAXGEN=30;      %最大遗传代数
PRECI=20;       %变量的二进制位数
GGAP=0.95;      %代沟
px=0.6;         %交叉概率
pm=0.1;        %变异概率
trace=zeros(MAXGEN,6);                        %寻优结果的初始值

FieldD=[PRECI PRECI PRECI PRECI PRECI;lbx1 lbx2 lbx3 lbx4 lbx5;ubx1 ubx2 ubx3 ubx4 ub
  • 4
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值