OpenCV 4.5.3(日本語機械翻訳)
|
クラス |
|
class | cv::MinProblemSolver |
すべてのソルバーの基本インターフェース[【詳解】(英語]
|
|
class | cv::DownhillSolver |
このクラスは、関数の非線形非制約最小化を実行するために使用されます。[【詳解】(英語]
|
|
class | cv::ConjGradSolver |
このクラスは,勾配が既知の関数の非線形非制約最小化を行うために使用されます.[【詳解】(英語]
|
|
列挙型 |
|
enum | cv::SolveLPResult { cv::SOLVELP_UNBOUNDED = -2 , cv::SOLVELP_UNFEASIBLE = -1 , cv::SOLVELP_SINGLE = 0 , cv::SOLVELP_MULTI = 1 } |
のリターンコードはcv::solveLP()関数[【詳解】(英語]
|
|
関数 |
|
CV_EXPORTS_W int | cv::solveLP (InputArray Func, InputArray Constr, OutputArray z) |
与えられた(非整数)線形計画問題をシンプレックス法(SimplexAlgorithm(シンプレックス法)を用いて、与えられた(非整数の)線形計画問題を解きます。[【詳解】(英語]
|
|
The algorithms in this section minimize or maximize function value within specified constraints or without any constraints.
enum cv::SolveLPResult |
のリターンコードはcv::solveLP()関数
列挙値 | |
---|---|
solvelp_unbounded |
問題がunboundedである(ターゲット関数が任意の高い値を達成できる)。 |
SOLVELP_UNFEASIBLE |
問題が実行不可能である(課せられた制約をすべて満たす点が存在しない) |
SOLVELP_SINGLE |
対象関数の最大値が1つしかない |
SOLVELP_MULTI |
対象となる関数に複数の最大値が存在する - 任意のものが返される |
CV_EXPORTS_W int cv::solveLP | ( | InputArray | Func, |
InputArray | Constr, | ||
OutputArray | z | ||
) |
与えられた(非整数)線形計画問題をシンプレックス法(SimplexAlgorithm(シンプレックス法)を用いて、与えられた(非整数の)線形計画問題を解きます。
ここでいう「線形計画問題」(略してLP問題)とは、次のように定式化できる。
ここでは固定
1
-by-n
行ベクターは固定
m
-by-n
の行列である。は固定
m
-by-1
列ベクトルとは任意の
n
-by-1
は制約条件を満たす任意の列ベクトルです。
シンプレックス・アルゴリズムは、この種の問題を効率的に処理するために設計された数多くのアルゴリズムの1つである。理論的には最適ではありませんが(上のように書かれた問題を多項式時間で解くことができるアルゴリズムは存在しますが、シンプレックス法はいくつかの特別なケースでは指数時間に縮退します)、よく研究されており、実装も簡単で、実際の目的にもよく機能することが示されています。
具体的な実装方法は、ほぼそのままの形でアルゴリズム入門 第3版T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein著)からほぼそのまま引用しています。特に、ブランドの法則http://en.wikipedia.org/wiki/Bland%27s_ruleは循環を防ぐために使用されます。
Func | この行ベクトルは![]() ![]() |
Constr |
m -by-n+1 行列で,その右端の列は,上の定式化における![]() ![]() |
z | 解答は,ここでは列ベクターとして返されます.![]() |