了解如何使用Compose或Python优化2D Rosenbrock functions。
在开始之前,请将本教程中使用的模型文件从/HS-1050/ 复 制到您的工作目录。
本教程定义了两个输入变量,分别标记为x和y。
优化的目标是最小化f(x,y)= 100*(y-x^2)^2 +(1-x)^2。x和y的范围设置为[-2 ; -2],起点为[-1 ; -1]。
1.启动HyperStudy。
2.通过以下方式开始新研究:
a)在菜单栏中,单击File>New。
b)在功能区上,单击。
3.在Add Study对话框中,输入研究名称,选择研究的位置,然后单击OK。
4.转到Define Models步骤。
5.添加Parameterized File模型。
a)从Directory中,将相应的.tpl文件拖放到工作区中。
i.如果您使用的是Python,请使用rosenbrock_py.tpl文件。
ii.如果您使用的是Compose,请使用rosenbrock_oml.tpl文件。
b)在Solver input file列中,输入HyperStudy在任何评估期间写入的求解器输入文件的名称。
i.如果您使用的是Python,请输入rosenbrock.py。
ii.如果您使用的是Compose,请输入rosenbrock.oml。
c)在Solver execution script列中,相应地选择Python(py)或Compose(oml)。
Note:如果你把Compose作为HyperWorks套件的一部分来使用,那么HyperStudy应该会自动指向正确的.bat文件。如果您将Compose作为单独的安装,则在Register Solver Script步骤中,您应该指向Compose_batch.bat。
d)如果您使用Compose作为规划求解执行脚本,请在Solver input arguments列中输入-f infront ${file}。
Note:对于在Linux上运行的求解器脚本,请在Solver input arguments列中输入-f ${file} -nobg以确保Compose批处理模式在前台运行,而不是在后台运行。
6.单击Import Variables。从.tpl文件导入两个输入变量。
7.转到Define Input Variables步骤。
8.将Input Variable的下限、初始和上限更改为图2中指示的值。
1.转到Test Models步骤。
2.单击Run Define。在study Directory中创建approaches/setup_1-def/ 目录。approaches/setup_1-def/run__00001/m_1目录包含输入文件,该文件是试运行的结果。
在此步骤中,您将创建一个输出响应。
1.转到Define Output Responses步骤。
2.从目录中,将位于approaches/setup_1-def/run__00001/m_1目录中的rosenbrock.res文件拖放到工作区中。
3.在File Assistant对话框中,将Reading技术设置为Altair® HyperWorks®,然后单击Next。
4.选择Single Item in a Time Series,然后单击Next。
5.定义以下选项,然后单击Next。
a)将Type设置为Unknown。
b)将Request设置为Block 1。
c)将Component设置为Column 1。
6.Optional:输入数据源和输出响应的标签。
7.将表达式设置为First Element。表达式更改为m_1_ds_1[0]。
8.单击Finish。
Output response 1将添加到工作区。
9.单击Evaluate。表达式m_1_ds_1[0] 的值应为404.0。
1.添加优化。
a)在Explorer中,右键单击并从上下文菜单中选择Add。
b)在Add对话框中,选择Optimization。
c)对于Definition from,选择一种方法,然后单击OK。
2.转到Optimization>Definition>Define Output Responses步骤。
3.单击Objectives/Constraints - Goals选项卡。
4.将目标添加到Responses 1。
a)单击Add Goal。
b)在Type列中,选择Minimize。
5.转到Optimization>Specifications步骤。
6.在工作区中,将Mode设置为Adaptive Response Surface Method(ARSM)。
Note:只启用对问题表述有效的方法。
7.单击Apply。
8.转到Evaluate步骤。
9.单击Evaluate Tasks。
10.Optional:点击Iteration Plot选项卡以监控优化进度。
迭代历程记录显示objective值显著减少。Rosenbrock functions有一个全局最小值,任何优化器都很难找到,因为它在真正最优区域是平坦的,并且ARSM没有找到(x,y)=(1,1) 的理论解。