zicaitang2967 发表于 2008-3-18 10:57:45

7.0版的gatool GUI 怎么解带约束的非线性规划?

小弟最近装了个7.0,想用遗传算法工具箱来做有约束非线性优化。
因为是新手,所以想在GUI上了事,书上介绍的是要把有约束问题无约束化,用到惩罚函数,那么请问,惩罚因子是如何来确定的呢?
另外,我听人说还有一种版本的gatool GUI 是直接把目标函数做一个M文件,约束函数也做一个M文件,在GUI中直接输入两个函数句柄就行了,不知是否当真,那个版本的有呢?
烦劳高人指点!

ansonjimli 发表于 2008-3-18 15:46:18

你这个版本的matlab的GA工具箱应该可以设置约束条件的,嘿嘿。

zicaitang2967 发表于 2008-3-19 16:23:31

回复 2# 的帖子

我的约束条件是非线性的,比较复杂。它的这个版本的只是在对话框内输入线性约束的系数矩阵

feynmand 发表于 2008-3-19 22:06:02

下面是我以前用过的一个遗传算法的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 编辑 ]

pauliu 发表于 2010-11-29 11:22:00

学习了,谢谢
页: [1]
查看完整版本: 7.0版的gatool GUI 怎么解带约束的非线性规划?