声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5737|回复: 12

[人工智能] 遗传算法如何进行整数规划问题?

[复制链接]
发表于 2007-6-10 20:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
看到一个这样的问题,不知道怎样处理,对遗传算法也不熟悉,请各位指教,谢谢!

请问怎么应用matlab遗传算法工具箱解决离散变量的问题?

比如函数以=x+10*sin(5*x)+7*cos(4*x);
如果x是区间(0,9)之间的连续变量,则
%编写目标函数
      function[sol,eval]=fitness(sol,options)
        x=sol(1);
        eval=x+10*sin(5*x)+7*cos(4*x);
%把上述函数存储为fitness.m文件并放在工作目录下
initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
    [x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
      [0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代
  
运算结果为:x =
    7.8562   24.8553(当x为7.8562时,f(x)取最大值24.8553)
  
但是如果x是离散变量,比如x的取值只能是0到9之间的整数,那么该怎样用遗传算法来解决呢?
最近在研究中,但对此很困惑,望懂者帮忙解决,深表感谢!
回复
分享到:

使用道具 举报

发表于 2007-6-10 20:35 | 显示全部楼层
把“1e-6”改成1就行了,这个是优化变量的精度设置项,即设计变量与它之前或之后的变量之间的差。

二进制遗传算法,必须设置精度,才能确定编码的串长。这个过程,实际上相当于对设计变量进行离散化。

[ 本帖最后由 心灯 于 2007-6-10 20:39 编辑 ]
 楼主| 发表于 2007-6-10 20:45 | 显示全部楼层

回复 #2 心灯 的帖子

结果还是
x =

    7.8563   24.8553
:@(
发表于 2007-6-10 21:31 | 显示全部楼层

回复 #3 zhlong 的帖子

你用的好像是gaot5工具箱,还有1个1e-6在前面呢,你找找,在生成初始群体之前。
 楼主| 发表于 2007-6-10 22:19 | 显示全部楼层

回复 #4 心灯 的帖子

心灯元老,我用的确实是gaot5,能直接给出上面这个列子的解答吗?
发表于 2007-6-11 12:33 | 显示全部楼层
哦,我也疏忽了你的问题的特殊性。
看你前面题目中的语句,我看你用的是gaot这个工具箱,所以就顺着你的思路,调整精度来了。 :)
仔细看了一下,gaot工具箱本身不适合整数规划问题,因为采用的是定步长的二进制编码,必然会造成字符串的冗余,而在这里并没有考虑这个问题,所以在b2f和f2b这两个文件里就出现了问题,造成了二进制编码和实数值的不对应。如果仍要处理的话,那么除了把精度给改一下,还要在b2f和f2b两个文件里进行修正,采用遗传操作的时候可能也要相应处理一下。
建议你可以看一些整数规划方面的论文,采用变步长的二进制编码或者别的方式。
因为我没有处理过整数规划问题,所以只能建议一下,考虑可能不周。

[ 本帖最后由 心灯 于 2007-6-11 13:20 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2007-6-11 14:15 | 显示全部楼层

回复 #6 心灯 的帖子

谢谢心灯,我再学习学习!
发表于 2007-6-12 17:01 | 显示全部楼层
答案:
x = 8
Max. = 21.2906951283391

如果图高效、方便,这类问题推荐1stOpt、Lingo

评分

1

查看全部评分

 楼主| 发表于 2007-6-12 18:02 | 显示全部楼层

回复 #8 dingd 的帖子

谢谢!
你是用GA做的吗?如果一定要用GA,那怎么做?
发表于 2007-6-12 22:12 | 显示全部楼层
1stOpt就有GA算法,不用自己编程了。
 楼主| 发表于 2007-6-12 22:27 | 显示全部楼层

回复 #10 dingd 的帖子

谢谢!
发表于 2007-7-29 17:08 | 显示全部楼层
zhlong,你好,我也遇到你说的问题,请问你现在已经解决了吗?
发表于 2007-7-29 17:09 | 显示全部楼层
zhlong,你好,我也遇到跟你同样的问题,请问你现在已经解决了吗?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-20 09:04 , Processed in 0.087458 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表