- 在线时间
- 66 小时
- 最后登录
- 2014-1-19
- 注册时间
- 2010-11-4
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 908 点
- 威望
- 0 点
- 阅读权限
- 40
- 积分
- 376
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 196
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 2
升级   25.33% TA的每日心情 | 衰 2014-1-19 21:51 |
|---|
签到天数: 95 天 [LV.6]常住居民II
 |
本帖最后由 江南刹 于 2011-10-21 19:25 编辑
% }# f. ^/ U- n/ Z3 G$ ~7 g' T2 K" X
( a# p1 `% n% t1 k; z5 k5 R. g$ K' H模拟退火法中,在逐次寻找新的属于可行域的点时,有两个筛选的原则:f(x,y) = 3.*sin(xy) +2.*x^2 + y^2的最小值 2 W$ s' D4 Q$ R; W4 M t
1、只要目标函数值小于之前的那个点(prex,prey)的函数值,即:f(xnew,ynew)<f(prex,prey)则此时赋值为:prex=xnew,prey=ynew,只要这样重复好多次,那么找出来的(prex,prey)这个函数值就越来越小,最终达到目标!7 F1 ?1 r0 I4 r5 i1 D3 S
2、用一个metroplis准值;
" d# d. J" O1 e- ]1 t5 F6 l我的疑问就是这个筛选原则是不是多余的,因为只要我们每次都去小于上次的,如1中所述,并重新赋值新的点不就行了吗?最后得出的肯定是最小值啊!而这个metriplis准则(可能写错了,没时间了)可能还会返回原来的值的,就是又返回刚才函数值比较大的那个点的!
. O0 Z0 v- l# u* k6 B5 Q' V下面为我用写的这个没有用到准则2(metroplis准则的程序来说明一个求x,y都在【-2,,2】上f(x,y) = 3.*sin(xy) +2.*x^2 + y^2的最小值 http://www.madio.net/forum.php?mod=attachment&aid=OTg3MzN8NjI4ZWZiMzg4M2ZiNGFhZmMyYmE5MjQ2ZGU4YjUzNjZ8MTc4MTM3MzQ2OQ%3D%3D&request=yes&_f=.rar |
zan
|