[32/64bit] 与えられた(非整数)線形計画問題を Simplex Algorithm (Simplex Method) を用いて解きます。
core_solveLP p1,p2,p3,p4
p1 = sptr : IntPtr func p2 = sptr : IntPtr constr p3 = sptr : IntPtr z p4 = var : out int returnValue
(プラグイン / モジュール : OpenCvSharpExtern.dll)
ここでいう「線形計画問題」(略してLP問題)は、次のように定式化できます。ここで、\\は1×nの行ベクトル、A\はm×nの行列、b?はm×1の列ベクトル、x?はn×1の任意の列ベクトルであり、制約条件を満たしている。Simplexアルゴリズムは、この種の問題を効率的に処理するために設計された数多くのアルゴリズムの1つです。理論的には最適ではありませんが(上のように書かれた問題を多項式時間で解くことができるアルゴリズムは存在しますが、シンプレックス法はいくつかの特別なケースでは指数時間に縮退します)、よく研究されており、実装も簡単で、実際の目的にもよく合うことが示されています。特定の実装は、T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein著のIntroduction to Algorithms, third editionからほぼそのまま引用しています。特に、循環を防ぐために、Blandのルールhttp://en.wikipedia.org/wiki/Bland%27s_rule を使用しています。 元関数名(C#): core_solveLP 元DLLエクスポート名: core_solveLP 参照元CSファイル: Internal\PInvoke\NativeMethods\core\NativeMethods_core.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) core_solveLP(cv::_InputArray *Func, cv::_InputArray *Constr, cv::_OutputArray *z, int *returnValue) { BEGIN_WRAP *returnValue = cv::solveLP(*Func, *Constr, *z); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_core |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |