わかりましたので、特に lsqlin 最適化関数を何百万回も実行するスクリプトがあります。このコードを高速化するために、「コード生成」します (基本的に、いくつかの mex ファイルを自動的に作成します)。これは、不等式の線形システムのフォローアップです。
ここでの問題は、lsqlin やその他の最適化関数が変換されず、外部から呼び出す必要があるため、効率が低下することです。
MINQ ツールボックスは既に見つけましたが、lsqlin からこれに変換する方法がわかりませんでした。また、ライセンスが必要な QPC ツールボックスも見つかり、現在待機中です。
別のツールボックスと、lsqlin からそれに変換する方法を提案する人はいますか?
lsqlin スクリプトをコード生成するための一般的な考え方 (完全な変換ではなく、リンクが呼び出されることがわかります)。
コード:
function main_script()
coder.extrinsic('lsqlin_script')
for i=1:10^7
X=lsqlin_script(A,b,X0)
...
end
end
function X=lsqlin_script(A,b,X0)
X=lsqlin(eye(2),X0, A, b,[],[],[],[],X0, optimoptions('lsqlin','Display','Off'));
end
走る:
codegen main_script.m
main_script_mex(INPUTS)