224 lines
2.8 KiB
Markdown
224 lines
2.8 KiB
Markdown
# 数学模型 / 优化
|
|
|
|
## `TSOptimizer`
|
|
|
|
声明:class
|
|
|
|
优化类及其扩展
|
|
|
|
<!-- tags: 数学优化 约束求解 最优解 -->
|
|
|
|
### `ff`
|
|
|
|
声明:field
|
|
|
|
线性目标
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fh`
|
|
|
|
声明:field
|
|
|
|
二次型
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fa`
|
|
|
|
声明:field
|
|
|
|
线性约束系数矩阵
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fb`
|
|
|
|
声明:field
|
|
|
|
线性约束右侧向量
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fAeq`
|
|
|
|
声明:field
|
|
|
|
线性等式约束系数矩阵
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fBeq`
|
|
|
|
声明:field
|
|
|
|
线性等式约束右侧向量
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fLb`
|
|
|
|
声明:field
|
|
|
|
变量下界约束
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fUb`
|
|
|
|
声明:field
|
|
|
|
变量上界约束
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fOzarr`
|
|
|
|
声明:field
|
|
|
|
0-1 约束条件
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fIntarr`
|
|
|
|
声明:field
|
|
|
|
整数约束条件
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fx0`
|
|
|
|
声明:field
|
|
|
|
优化初始值
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `foptions`
|
|
|
|
声明:field
|
|
|
|
算法选项设置
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `fresult`
|
|
|
|
声明:field
|
|
|
|
优化后的结果
|
|
|
|
可见性:`public`
|
|
|
|
类型:array
|
|
|
|
### `obj(x)`
|
|
|
|
声明:function
|
|
|
|
计算优化目标
|
|
|
|
<!-- tags: 数学优化 约束求解 -->
|
|
|
|
可见性:`public`
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ---- | ------------------------------------ |
|
|
| `x` | real | 当前优化变量向量,用于计算目标函数值 |
|
|
|
|
返回:float
|
|
|
|
### `con(x)`
|
|
|
|
声明:function
|
|
|
|
增加非线性约束
|
|
|
|
<!-- tags: 定义 非线性约束 优化约束 -->
|
|
|
|
可见性:`public`
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ----- | -------------------------------------- |
|
|
| `x` | array | 当前优化变量向量,用于计算非线性约束值 |
|
|
|
|
返回:array
|
|
|
|
### `prog()`
|
|
|
|
声明:function
|
|
|
|
执行优化并返回 Fresult
|
|
|
|
<!-- tags: 调用 数学优化 约束求解 -->
|
|
|
|
可见性:`public`
|
|
|
|
返回:array
|
|
|
|
### `prog_debug()`
|
|
|
|
声明:function
|
|
|
|
查询优化结果并进行约束校验
|
|
|
|
<!-- tags: 数学优化 约束求解 约束条件 限制条件 -->
|
|
|
|
可见性:`public`
|
|
|
|
返回:array
|
|
|
|
### `prog_debugprint(space)`
|
|
|
|
声明:function
|
|
|
|
打印当前优化结果质量
|
|
|
|
<!-- tags: 输出 数学优化 约束求解 -->
|
|
|
|
可见性:`public`
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ------------------------------------------------- |
|
|
| `space` | int | 可选。默认 0。优化结果打印时使用的缩进/格式控制值 |
|
|
|
|
返回:nil
|
|
|
|
### `prog_consTest_Linear()`
|
|
|
|
声明:function
|
|
|
|
检测当前线性约束是否可行
|
|
|
|
<!-- tags: 检查 线性约束 可行性 -->
|
|
|
|
可见性:`public`
|
|
|
|
返回:array
|