- 积分
- 0
- 注册时间
- 2007-10-28
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2011-5-26 20:05:19
|
显示全部楼层
来自 大连理工大学
本帖最后由 cocoon 于 2011-5-26 20:21 编辑
在SiPESC.OPT的 benchmarks\benchmark_9 中,example9就是一个设计变量使用离散值的例子
- //
- //
- // This file is generated by SiPESC.Opt
- // COPYRIGHT (C) , 2009
- //
- //
- // ALL RIGHTS RESERVED
- //
- //
- // 2010 . 11. 29
- /////////////////////////////////////////////////
-
- //
- // 创建一个优化模型对象,供后续程序使用。
- var theModel = new OptModel;
- //
- // 设置优化模型的名称。
- theModel.setModelName("example9");
- //
- // 设置优化模型中优化变量的初始值以及上、下限。
- theModel.setVariable( "x1" , 5.31 ) ;
- theModel.setVariable( "x1" , Array( 0,2,3,4.5,5.31,6.2,8 ) );
- theModel.setVariable( "x2" , 3.2 ) ;
- theModel.setVariableLowerLimit( "x2" , 0 ) ;
- theModel.setVariableUpperLimit( "x2" , 6 ) ;
- theModel.setVariable( "x3" , -2 ) ;
- theModel.setVariable( "x3" , Array( -6,-5,-3,-2,-1,1 ) );
- //
- // 计算优化模型中目标函数值和约束函数值。
- function eval( )
- {
- var x1 = theModel.getVariable( "x1" );
- var x2 = theModel.getVariable( "x2" );
- var x3 = theModel.getVariable( "x3" );
- var obj = (x1-5.5)*(x1-5.5)+Math.cos(x2)+(x3+2.15)*(x3+2.15);
- theModel.setObject( "obj" , obj );
- }
- //
- // 使用优化变量的初始值对优化模型初始化。
- eval( );
-
- //
- // 设置优化算法参数。
- DGA.setMINMAX( -1 );
- DGA.setGENERATION( 150 );
- DGA.setPOPULATIONSIZE( 30 );
- DGA.setMUTATIONPROBABILITY( 0.1 );
- DGA.setCROSSOVERPROBABILITY( 0.8 );
-
- var Solver = DGA ;
- //
- // 使用优化模型初始化优化算法。
- Solver.initialize( theModel );
- //
- // 初始化数据库,以备存储优化迭代过程中优化模型数据。
- ModelSaver.executeSQLCommand( "DROP TABLE IF EXISTS example9" );
- ModelSaver.initializeModel( theModel );
- //
- // 开始优化迭代计算。
- do{
- eval();
- ModelSaver.save( theModel );
- Solver.renewModel( theModel );
- } while( ! Solver.isComplete() )
复制代码 参看 第26行 和第33行
设计变量是离散值时,只能使用 DGA算法也就是能处理离散变量的遗传算法。
如有疑问,欢迎继续探讨。
关于SiPESC.OPT软件,可以参考
http://forum.simwe.com/thread-976523-1-1.html
http://forum.simwe.com/thread-972046-1-1.html |
|