标准形(IPM/单纯形的工作对象)
StandardForm
01 Syntax
Microsoft.VisualBasic.Math.LinearAlgebra.LinearProgramming.IPMCrossover.StandardForm
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| ToOriginal | 1 | 把标准形解映射回问题空间:v = lb + x |
| MapShadowPrice | 1 | 影子价映射回原始方向:σ·flipSign_i·y_i = ∂(原始目标)/∂b_i |
| FromProblem | 1 | 由 LppProblem 构造标准形(中小规模) |
| FromSparse | 1 | 由 CSR 化学计量矩阵直接构造标准形(不做任何变量名匹配、不物化稠密矩阵) |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| IsSparse | 1 | 稀疏路径(无稠密矩阵,跳过 crossover / 单纯形收尾) |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| A | 2 | 稠密工作矩阵(含松弛列、已翻转);稀疏路径为 Nothing |
| Mat | 2 | 矩阵抽象:IPM 只通过该接口访问 A(稠密或稀疏) |
| b | 2 | m(已保证 ≥ 0) |
| c | 2 | n + nSlack(内部 min 方向) |
| U | 2 | 工作变量上界,+∞ 表示无上界 |
| MatOrig | 2 | 原始 A(未平移、未翻转、不含松弛列) |
| LbShift | 2 | 下界平移量:v = LbShift + ColScale∘x |
| ColScale | 2 | 列缩放:x(工作变量)→ 问题空间时乘的因子,默认全 1。 稀疏入口用它把变量盒归一化到 [0,1],避免 Θ = x/s 跨越多达 1e7 的量级。 |
| ObjOffset | 2 | 平移引入的目标常数 cᵀlb |
| M | 1 | |
| N | 1 | |
| NSlack | 1 | |
| Sigma | 1 | |
| FlipSign | 1 | |
| VarNames | 1 | |
| ConstraintTypeList | 1 | |
| BOrig | 1 | |
| COrig | 1 |
05 Members
ToOriginal(
Double())把标准形解映射回问题空间:v = lb + x
MapShadowPrice(
Int32, Double())影子价映射回原始方向:σ·flipSign_i·y_i = ∂(原始目标)/∂b_i
FromProblem(LppProblem)
由 LppProblem 构造标准形(中小规模)
FromSparse(LpSparseMatrix,
Double(), Double(), Double(), Double(), String(), String, String(), Boolean)由 CSR 化学计量矩阵直接构造标准形(不做任何变量名匹配、不物化稠密矩阵)
Remarks
目前只支持全 "=" 约束(FBA 的质量平衡约束即为此形式); 混合 <= / >= 的问题请走 StandardForm.FromProblem()。
Parameters
| Name | Type | Description |
|---|---|---|
csr | LpSparseMatrix | 约束矩阵(m 行 × n 列) |
rhs | Double() | 约束右端项(FBA 的稳态方程右端为 0) |
obj | Double() | 目标系数(原始方向) |
lb | Double() | 变量下界(Nothing 视为全 0) |
ub | Double() | 变量上界(Nothing 视为全 +∞) |
sense | String() | "min" / "max" |
IsSparse
稀疏路径(无稠密矩阵,跳过 crossover / 单纯形收尾)
A
稠密工作矩阵(含松弛列、已翻转);稀疏路径为 Nothing
Mat
矩阵抽象:IPM 只通过该接口访问 A(稠密或稀疏)
b
m(已保证 ≥ 0)
c
n + nSlack(内部 min 方向)
U
工作变量上界,+∞ 表示无上界
MatOrig
原始 A(未平移、未翻转、不含松弛列)
LbShift
下界平移量:v = LbShift + ColScale∘x
ColScale
列缩放:x(工作变量)→ 问题空间时乘的因子,默认全 1。 稀疏入口用它把变量盒归一化到 [0,1],避免 Θ = x/s 跨越多达 1e7 的量级。
ObjOffset
平移引入的目标常数 cᵀlb
A
Mat
b
c
U
M
N
NSlack
Sigma
FlipSign
VarNames
ConstraintTypeList
MatOrig
BOrig
COrig
LbShift
ColScale
ObjOffset