找回密码
 注册
Simdroid-非首页
查看: 131|回复: 6

[modeFRONTIER] 总的计算步数是怎么来的?

[复制链接]
发表于 2010-5-25 11:39:35 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 doublefrank 于 2010-6-3 10:15 编辑

如题,和DOE属性中添加的number of designs不一样。

另外,Num. of Design Samples,帮助里只是说它很重要,数值大精度就高一些,但是要耗费的时间就长。我想知道这个东西究竟是干嘛的?

好像总的步数大体上等于number of designs*Num. of Design Samples。
发表于 2010-6-3 10:01:35 | 显示全部楼层 来自 北京朝阳
Simdroid开发平台
本帖最后由 zxkchina 于 2010-6-3 10:08 编辑

如果没有什么中断标准的话,(比如simplex法里面有一个设置,如果移动点之后计算值和上一次的值相差不超过某个限度就停止迭代),比如用moga为例,各种doe算法doe出的总的数量(不是number of designs),也就是doe的弹出框口中下面显示的那些case的数量会作为moga每一代的数量,moga会迭代算法窗口中设置的Number of generations代,这样总的计算个数就是总的doe数量*number of generations。实际用的时候,有可能会取到重复点,重复点在这里是重复计数的(但是不会重复计算)。doe中的number of designs只是这次添加的doe数量,因为可以多次添加,所以doe的数量并不一定等于number of designs

ps,如果采用Constraint satisfaction作为doe算法的时候,有时候添加的新点数目会小于设置的number of designs,这是为什么,如何做可以减少这种现象,有奖竞猜……
回复 不支持

使用道具 举报

发表于 2010-6-3 10:40:17 | 显示全部楼层 来自 江苏南京
这个我认为是因为新添加的点违反了约束,当违反了约束的点就给去掉了。

例如:x1>x2,这样的一个简单的约束条件,通过初始变量控制可以限制一些违法约束的变量,我想这个算法主要用在对自变量的约束。

个人理解,不一定正确。

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2010-6-3 10:44:01 | 显示全部楼层 来自 江苏南京
有一个疑问,楼上的想法从理论上是对的,但是为什么添加的点不满足约束呢?如果不满足为什么不再次选择新的满足约束的点呢?难道是bug还是有什么玄机?
如果是楼上说的,新的添加的点,需要经过计算才能减少,而不能一开始就减少吧。既然是新选择的点,我想可能是属于简单的处理,不会牵扯到流程中的东西吧。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2010-6-3 10:45:20 | 显示全部楼层 来自 江苏南京
总的计算步数=每一代的种群个数*迭代次数。

例如:种群=10;迭代次数=100,那就计算10*100=1000个,当然,如果提前收敛了,就是收敛时的次数*种群。
回复 不支持

使用道具 举报

 楼主| 发表于 2010-6-3 11:09:14 | 显示全部楼层 来自 江苏南京
总的计算步数=每一代的种群个数*迭代次数。

例如:种群=10;迭代次数=100,那就计算10*100=1000个,当然,如果提前收敛了,就是收敛时的次数*种群。
kongchunyuan 发表于 2010-6-3 10:45


chunyuan兄,我是在用蒙特卡洛做可靠性时遇到的这个问题。
它没有关于迭代次数的设置,和前面的doe在设置上有点差异。
回复 不支持

使用道具 举报

发表于 2010-6-3 11:34:30 | 显示全部楼层 来自 北京朝阳
本帖最后由 zxkchina 于 2010-6-3 11:41 编辑

从mf的帮助文件中可知,doe算法中的CS(constrain satisfaction)法是利用模拟退火法寻找符合约束的点的(这个模拟退火法的使用是软件内部用的和设定的优化没关系)那么当约束比较强的时候,模拟退火法在指定的迭代步数内没有使全部点都符合约束的情况是可能存在的,在这个时候,MF会自动去掉那些不符合约束的点,将剩下的找到的符合约束的点(如果有的话)添加到doe表中,这样doe表中新增的点就没有指定的number of designs多了。实际使用中遇到这种情况,可以把doe设定中的Random Generator Seed换一下,继续生成,直到数量足够为止。

另外,如果想尽量避免这种情况,可以增大doe设定中的number of iterations,这样增大CS法内部计算时候模拟退火法的迭代步数,自然可以以更大的概率减少没有符合约束的点的个数。对于其他doe算法,mf不管是否符合约束都直接生成了,比如sobol算法

最后,我想,寻找一些符合约束的点的过程,实际上也可以看成一个优化过程,比如约束是 f(xi)>0,那么就相当于做f(xi)尽量大的优化。多个约束函数,那么就是一个多目标优化问题,我想CS法的实质,就是用mosa(多目标模拟退火法)进行了寻优,最后就能找到符合约束的点集。所以,我想CS法在充分迭代的情况下,找到的doe点的特点应该是约束函数值都很大,换而言之,找到的都是远离约束边界的点。其中cs法设定中的Minimum Perturbation这个参量,就是其内部做模拟退火法的minimum perturbation。我估计cs的帮助中说的改进的模拟退火法,就是将模拟退火法对这种找约束的问题优化了下。不过有一点我也挺困惑,约束的情况是千差万种的,根据没有免费的午餐理论(就是NFL,看我的个性签名)mosa不一定就好,我估计,可能最后内置在cs法中的mosa的鲁棒性被增强了,因为这种寻优,不需要找到很优(只用优过一个界限就ok)也就是局部寻优速度不用很高,所以对鲁棒性要求高些。呵呵,其实cs就是利用内置的算法,做了一个非常小的优化:)
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 09:15 , Processed in 0.049161 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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