7.0版的gatool GUI 怎么解带约束的非线性规划?
小弟最近装了个7.0,想用遗传算法工具箱来做有约束非线性优化。因为是新手,所以想在GUI上了事,书上介绍的是要把有约束问题无约束化,用到惩罚函数,那么请问,惩罚因子是如何来确定的呢?
另外,我听人说还有一种版本的gatool GUI 是直接把目标函数做一个M文件,约束函数也做一个M文件,在GUI中直接输入两个函数句柄就行了,不知是否当真,那个版本的有呢?
烦劳高人指点! 你这个版本的matlab的GA工具箱应该可以设置约束条件的,嘿嘿。
回复 2# 的帖子
我的约束条件是非线性的,比较复杂。它的这个版本的只是在对话框内输入线性约束的系数矩阵 下面是我以前用过的一个遗传算法的m文件,就是gatool自动产生的。你只要修改相应部分的数值和函数名称应该就可以用了。
这个7.0版本应该可以用,因为我目前不是在用那个版本所以你自己试试看吧。
unction =youhua5
% This is an auto generated M file to do optimization with the Genetic Algorithm and
% Direct Search Toolbox. Use GAOPTIMSET for default GA options structure.
T=;%d点
R=30;%机械手臂的半径
%%Fitness function
fitnessFunction = @energy5; %%%%%这里输入目标函数名称%%%%%
%%Number of Variables
nvars = 5;
%Linear inequality constraints
Aineq = [];
Bineq = [];
%Linear equality constraints
Aeq = [];
Beq = [];
%Bounds
% LB =[-180;-35;-138;-180;-43.5]/180*pi; %拿工具边界条件
% UB =/180*pi;%拿工具边界条件
LB =[-24.5684;-70;-138;-90;-133.5]/180*pi;
UB =/180*pi;
%Nonlinear constraints
nonlconFunction = @myconstr6; %%%%这里输入编好的非线性约束函数名称%%%%%%
%Start with default options
options = gaoptimset;
%%Modify some parameters
options = gaoptimset(options,'PopulationSize' ,100);
options = gaoptimset(options,'MutationFcn' ,{@mutationgaussian 11});
options = gaoptimset(options,'Display' ,'off');
%%Run GA
tic
= ga(fitnessFunction,nvars,Aineq,Bineq,Aeq,Beq,LB,UB,nonlconFunction,options);
toc
[ 本帖最后由 feynmand 于 2008-3-19 22:10 编辑 ] 学习了,谢谢
页:
[1]