OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
没有匹配项
| 枚举 | 函数
优化算法

详细说明

本节中的优化算法最小化或最大化函数值,在指定约束下或者没有任何约束。

类  cv::ConjGradSolver
 此类用于对具有已知梯度的函数执行非线性非约束最小化,更多...
 
类  cv::DownhillSolver
 此类用于对函数执行非线性非约束最小化,更多...
 
类  cv::MinProblemSolver
 所有求解器基本接口。更多...
 

枚举

枚举  cv::SolveLPResult {
  cv::SOLVELP_LOST = -3 ,
  cv::SOLVELP_UNBOUNDED = -2 ,
  cv::SOLVELP_UNFEASIBLE = -1 ,
  cv::SOLVELP_SINGLE = 0 ,
  cv::SOLVELP_MULTI = 1
}
 cv::solveLP() 函数的返回代码 更多...
 

函数

int cv::solveLP (InputArray Func, InputArray Constr, OutputArray z)
 
int cv::solveLP (InputArray Func, InputArray Constr, OutputArray z, double constr_eps)
 使用单纯形算法(单纯形方法)来解决给定的(非整数)线性规划问题。
 

枚举类型文档

◆ SolveLPResult

#include <opencv2/core/optim.hpp>

cv::solveLP() 函数的返回代码

枚举器
SOLVELP_LOST 
Python: cv.SOLVELP_LOST

问题可行,但由于浮点数计算错误,求解器失去了解

SOLVELP_UNBOUNDED 
Python:cv.SOLVELP_UNBOUNDED

问题无解(目标函数可以达到任意高值)

SOLVELP_UNFEASIBLE 
Python:cv.SOLVELP_UNFEASIBLE

问题无解(没有点满足所有施加的约束)

SOLVELP_SINGLE 
Python:cv.SOLVELP_SINGLE

目标函数只有一个最大值

SOLVELP_MULTI 
Python:cv.SOLVELP_MULTI

目标函数有多个最大值 - 返回其中一个最大值

函数说明文档

◆ solveLP() [1/2]

int cv::solveLP ( InputArray  Func,
InputArray  Constr,
OutputArray  z 
)
Python
cv.solveLP(Func, Constr, constr_eps[, z]) -> retval, z
cv.solveLP(Func, Constr[, z]) -> retval, z

#include <opencv2/core/optim.hpp>

这是一个重载函数成员,供方便使用。它仅在接受的参数方面与以上函数不同。

◆ solveLP() [2/2]

int cv::solveLP ( InputArray  Func,
InputArray  Constr,
OutputArray  z,
double  constr_eps 
)
Python
cv.solveLP(Func, Constr, constr_eps[, z]) -> retval, z
cv.solveLP(Func, Constr[, z]) -> retval, z

#include <opencv2/core/optim.hpp>

使用单纯形算法(单纯形方法)来解决给定的(非整数)线性规划问题。

在本文中我们所说的“线性规划问题”(或简称“LP 问题”)可以如此表述

\[\mbox{Maximize } c\cdot x\\ \mbox{Subject to:}\\ Ax\leq b\\ x\geq 0\]

其中 \(c\) 是固定的1n列的行向量,\(A\) 是固定的mn列的矩阵,\(b\) 是固定的m1列的列向量,\(x\) 是任意n1列的列向量,满足这些 约束。

单形算法是设计来有效处理此类问题的众多算法之一。虽然从理论上说它并非是最优的(存在可以多项式时间内求解上述问题的算法,而单形法对某些特殊情况会退化为指数时间),但它研究充分、易于实现且事实证明非常适用于实际用途。

具体实现几乎完全取自 T. H. Cormen、C. E. Leiserson、R. L. Rivest 和 Clifford Stein 的算法导论第三版。尤其是,采用布兰德规则 http://en.wikipedia.org/wiki/Bland%27s_rule 来防止循环。

参数
Func此行向量对应于线性规划问题表述中的 \(c\)(请见上文)。它应包含 32 或 64 位浮点数。为方便起见,列向量也可以提交,在后一种情况下它被理解为对应于 \(c^T\)。
Constrm 乘以 n+1 的矩阵,其最右侧列对应于上文表述中的 \(b\),其余的对应于 \(A\)。它应包含 32 或 64 位浮点数。
z解将此处作为列向量返回 - 它对应于上文表述中的 \(c\)。它将包含 64 位浮点数。
constr_eps允许的约束数值差异
返回
其中一个 cv::SolveLPResult