一个优化算例的脚本代码
2015-11-16 20:18
387 查看
一个优化算例的脚本代码
// // // This file is generated by SiPESC.Opt // COPYRIGHT (C) , 2009 // // // ALL RIGHTS RESERVED // // // 2011 . 04. 16 ///////////////////////////////////////////////// print("HaloRendezvous 2.5 Using GA algorithm " + "\n") // // // 创建一个优化模型对象,供后续程序使用。 var theModel = new OptModel; // // 设置优化模型的名称。 theModel.setModelName("Halo25"); // // 设置优化模型中优化变量的初始值以及上、下限。 theModel.setVariable( "t0" , 75 ) ; theModel.setVariableLowerLimit( "t0" , 0 ) ; theModel.setVariableUpperLimit( "t0" , 180 ) ; theModel.setVariable( "tf" , 178.6 ) ; theModel.setVariableLowerLimit( "tf" , 0 ) ; theModel.setVariableUpperLimit( "tf" , 180 ) ; // // 计算优化模型中目标函数值和约束函数值。 function eval( ) { var t0 = theModel.getVariable( "t0" ); var tf = theModel.getVariable( "tf" ); // 工作目录 var workingDirectory = "D:/sipopt/bin/" // 生成一个名为parameterFile的FILE对象 parameterFile = new FILE; // 设置文件名为 parameterFile.setFileName( workingDirectory + "Input_Data.txt" ); //以模式2打开文件, state = parameterFile.open(2); // 如果返回值为false,则输出警告信息。 if( !state ) { print("open result file failed."); } // 向文件中写入变量 以及一个换行符\n parameterFile.write( t0 + "\r\n" ); parameterFile.write( tf + "\r\n" ); //将缓冲池中的数据写入文件中。 parameterFile.flush(); //关闭文件result parameterFile.close(); //运行计算软件来得到新的目标函数值 var exeFileName = "HaloRendezvous25.exe" process = new Process; process.setWorkingDirectory( workingDirectory ); process.execute( workingDirectory + exeFileName ); print("=========== " + exeFileName + " finished.=========="); // 文件名 var parameterFilePath = workingDirectory + "Output_Data.txt"; // 生成一个名为fooParser的FileParser对象 var fooParser = new FileParser; // 指定文件名,并尝试打开文件。 fooParser.open( parameterFilePath ); var line = fooParser.readLine(); var energy = parseFloat(line); // 关闭文件 fooParser.close(); print("t0 = " + t0 + "\n") print("tf = " + tf + "\n") print("energy = " + energy + "\n") theModel.setObject( "energy" , energy ); } // // 使用优化变量的初始值对优化模型初始化。 eval( ); // 设置优化算法参数。 GA.setMINMAX( -1 ); GA.setGENERATION( 30 ); GA.setPOPULATIONSIZE( 30 ); GA.setMUTATIONPROBABILITY( 0.1 ); GA.setCROSSOVERPROBABILITY( 0.8 ); var Solver = GA ; /************ SQP.setMINMAX( -1 ); SQP.setMaxIterationNumber( 100 ); var Solver = SQP ; SLP.setMINMAX( -1 ); SLP.setMaxIterationNumber( 100 ); var Solver = SLP ; **********/ // // 使用优化模型初始化优化算法。 Solver.initialize( theModel ); // // 初始化数据库,以备存储优化迭代过程中优化模型数据。 ModelSaver.executeSQLCommand( "DROP TABLE IF EXISTS Halo25" ); ModelSaver.initializeModel( theModel ); // // 开始优化迭代计算。 do{ eval(); ModelSaver.save( theModel ); Solver.renewModel( theModel ); } while( ! Solver.isComplete() )
相关文章推荐
- Struts2-----Ognl表达式语言
- java中为什么要实现序列化,什么时候实现序列化?
- java笔记_Map集合与单列设计模式
- java添加删除cookie
- android开发环境搭建(ubuntu15.04+jdk8+eclipse+android sdk)
- java序列化Serializable
- python之路day4
- Python基本语法
- java断言
- C语言高效编程的几招,你会了几招了?
- thinkphp中U方法调用
- Python学习笔记009_构造与析构
- Java poi读取Excel表格
- yii2 model fields使用说明
- 有时候打开eclipse出现error,让看log
- matlab中的图像类型
- K-Means++的代码 ,写的很好
- java笔记_集合
- Thread的run()与start()的区别
- Java RMI之HelloWorld篇