maplelab 发表于 2010-4-23 23:02:53

maple优化算法v1.0

此次工作的主要目的是改进maple13的全局优化能力;
当然,如果大家有maple的全局优化工具箱的话,就不用费事了。
这个版本还有很大的改进空间,姑且当作“勇敢的第一步”。


TBE_Legend 发表于 2010-4-24 00:16:59

此次工作的主要目的是改进maple13的全局优化能力;
当然,如果大家有maple的全局优化工具箱的话,就不用费事了。
这个版本还有很大的改进空间,姑且当作“勇敢的第一步”。


241628
maplelab 发表于 2010-4-23 23:02 http://forum.simwe.com/images/common/back.gif

是你自己写的程序?

以下代码转自:http://blog.csdn.net/mmm_zx/archive/2010/04/18/5499756.aspx


以下代码所实现的是无约束全局优化的混沌算法,该算法的效果相当不错。

--------------------------------------------------------------------------------
restart;
ChaosIterationMin:=proc(expr::algebraic,xr::Or(listlist,list),n:=700)
local vl,z,numiter,sol,root,broot,best,numvl,Lx,Ux,nxr;
Digits:=50;
convert(indets(expr,name),list);
vl:=select(x->x<>Pi,%);
numvl:=nops(vl);
   nxr:=Matrix(xr);
   Lx:=nxr[...,1];
   Ux:=nxr[...,2];
numiter:=floor(abs(n));
z:=Vector(numvl,fill=0.9);
###########z不能取为Logistic映射的不动点{0,0.25,0.50,0.75,1}.
broot:=Lx+~(Ux-Lx)*~z;
best:=subs(zip(`=`,vl,convert(broot,list)),expr);
to numiter do
   z:=4*~z*~(1-~z);
   root:=Lx+~(Ux-Lx)*~z;
   if is(subs(zip(`=`,vl,convert(root,list)),expr)-best<=0) then
      broot:=root;
      best:=subs(zip(`=`,vl,convert(root,list)),expr);
   fi;
od;
sol:=zip(`=`,vl,convert(broot,list));
if not hastype(expr,{trig,trigh}) then
   return {best,<sol>};
else
   return {evalf(best),<sol>};
fi;
end proc:

--------------------------------------------------------------------------------
调用方法很简单:
ChaosIterationMin(目标函数,边界条件,迭代次数);
迭代次数默认为700次。

--------------------------------------------------------------------------------
例1:求多峰测试函数sin(x)*x+sin(x)在区间[-3*Pi,3*Pi]内的全局最小值。
输入:
ChaosIterationMin(sin(x)*x+sin(x),[-3*3.14,3*3.14]);
返回
   {-5.7972388494,}

--------------------------------------------------------------------------------
例2:求多峰Shaffer测试函数0.5+(sin(sqrt(x^2+y^2))^2-0.5)/((1.0+0.001*(x^2+y^2))^2)在区间x,y=[-100,100]内的全局最大值。
输入:
ChaosIterationMin(-(0.5+(sin(sqrt(x^2+y^2))^2-0.5)/((1.0+0.001*(x^2+y^2))^2)),[[-100,100],[-100,100.]]);
返回:
{-.9973614376, }

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mmm_zx/archive/2010/04/18/5499756.aspx

maplelab 发表于 2010-4-24 07:08:54

那个博客就是在下开的,程序当然也是在下写的。其中的混沌算法已经重写。当然,原来那个还是可以用的,不过没有这个新改进的强大。
有空的话,大家可以去看看。
http://blog.csdn.net/mmm_zx
其中还有些大家可能兴趣的东西。

TBE_Legend 发表于 2010-4-24 08:54:43

那个博客就是在下开的,程序当然也是在下写的。其中的混沌算法已经重写。当然,原来那个还是可以用的,不过没有这个新改进的强大。
有空的话,大家可以去看看。
http://blog.csdn.net/mmm_zx
其中还有些大家可能兴 ...
maplelab 发表于 2010-4-24 07:08 http://forum.simwe.com/images/common/back.gif

很不错,你可以把你的签名档改为你的博客地址。

ppomyz 发表于 2010-4-24 19:23:08

不错,谢谢分享,下载下来,满满学习

xiaoqiou 发表于 2010-5-14 16:37:15

谢谢分享,下载下来, 学习下

MMMS 发表于 2010-5-17 11:42:50

Maple也在改进Optimization程序包。

maplelab 发表于 2010-5-18 08:03:53

原来希望maple会在下个版本v14中将它的全局优化工具箱合并到maple中,就像maple14已经将Maple Toolbox for MATLAB和Maple NAG® Connector合并在maple中。
现在只好放弃这个希望了。
不知v15会不会这样做。
matlab现在好像是全局优化工具箱的。
希望maple也能如此。

0920140014 发表于 2011-4-5 13:05:48

多谢楼主分享资料
页: [1]
查看完整版本: maple优化算法v1.0