跳到主要内容

优化问题定义

组件名称优化问题定义
工具集设计分析优化
组件作者雪浪云-古风
文档版本1.0
功能编辑修改优化问题定义
镜像名称suanpan_mdo:latest
开发语言Python

组件原理

本组件为一个定制化“优化问题前端编辑器”,用于生成完整的“优化问题定义”数据。“优化问题定义”数据包含参数输出目标和约束,具体数据格式如下。

输入桩

输入端子1

  • 端口名称:优化问题定义
  • 输入类型:对象
  • 功能描述:接收优化问题定义,并在弹窗界面中加载接收到的内容,如果没有输入则需要在弹窗界面中从0开始定义优化问题。
  • 示例::如下为一个非完整的优化问题定义,只定义了模型输入输出变量名和类型,加载到弹窗界面中后可进一步编辑和修改,生成完整的优化问题定义。
{  
"sets": {},
"inputs": [
{"param": "length",
"type": "Continuous"},
{"param": "width",
"type": "Continuous"},
{"param": "height",
"type": "Continuous"}
],
"outputs": [ "Volume","Surface" ],
"objectives": [],
"constraints":[]
}

输出桩

输出端子1

  • 端口名称:优化问题定义
  • 输入类型:对象
  • 功能描述:输出收优化问题定义给后续节点。
  • 示例:生成完整的优化问题定义,并输出给后续节点。
{
"inputs": [
{"param": "length", "min": 0, "max": 2, "default": 1},
{"param": "width", "min": 0, "max": 2, "default": 1},
{"param": "height", "min": 0, "max": 2, "default": 1}
],
"outputs": ["Volume", "Surface"],
"variables": [
{"param": "Volume_x2", "formula": "Volume * 2"},
{"param": "MyVariable1", "formula": "Volume + abs(Surface)"},
{"param": "MyVariable2", "formula": "Volume * length"}
],
"objectives": [{"objective": "Volume", "option": "MaximizeValue"}],
"constraints": [{"function": "10-Surface"}, {"function": "Surface-2"}]
}

数据接收方式

支持异步模式、同步模式,效果一样。

参数配置

本组件部署前不需要配置任何参数,部署后在弹窗页面中编辑参数取值范围,目标和约束,定义基于公式的变量。


image.png


运行行调优

建议不进行特别配置,按照平台的默认分配运行。

使用方法

未部署状态下的操作

后面板连接

后面板连接如下,公式编辑器将一个待修改的优化问题定义对象数据发送给优化问题定义组件,公式编辑器输出类型为对象。


image.png


右面版配置

激活页面嵌入前面板,弹窗页面可再前面板中显示。

部署状态下的操作

弹窗面板操作

打开公式编辑器的弹窗页面输入待编辑的优化问题定义,如上输入端子1示例。
切换到组件弹窗页面,点击按钮触发公式编辑其输出待编辑的优化问题定义对象数据给优化问题定义组件。在界面中编辑优化问题定义,主要包括:

  1. 修改参数类型和取值范围:

image.png



image.png




支持用户将表格中的参数信息复制到本地Excel表格中,也可以将先在本地Excel表格中将数据整理好,黏贴到组件弹窗中。避免了用户在弹窗中手动逐一输入参数,容易出错。

image.png


  1. 定义目标和约束条件:

image.png


  1. 添加基于公式的变量(可选):

image.png


  1. 点击发送

image.png


在右侧的显示框中可以看到完整的优化问题定义。

image.png


优化问题定义输出内容如下:
{
"sets": {},
"inputs": [
{
"param": "length",
"type": "Continuous",
"min": 0,
"default": 1,
"max": 2
},
{
"param": "width",
"type": "Continuous",
"min": 0,
"default": 1,
"max": 2
},
{
"param": "height",
"type": "Continuous",
"set": "",
"default": 1,
"min": 0,
"max": 2
}
],
"variables": [],
"outputs": [
"Volume",
"Surface",
"Mass",
"R"
],
"objectives": [
{
"objective": "Volume",
"option": "MaximizeValue"
}
],
"constraints": [
{
"function": "Surface-2"
},
{
"function": "10-Surface"
},
{
"function": "R-5"
}
],
"caseName": "Box"
}

弹窗操作

优化问题定义组件接收到输入数据后打开弹窗页面,本示例中弹窗页面已经嵌入前面版,操作描述如上。