主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

optimproblem

最適化問題の作成

説明

optimproblemを使用して,最適化問題を作成します。

ヒント

完全なワークフローについては,問題ベースの最適化ワークフローを参照してください。

概率= optimproblemは,既定のプロパティで最適化問題を作成します。

概率= optimproblem (名称,值は1つ以上の名称,值引数ペアによって指定された追加オプションを使用します。たとえば,最小化問題の代わりに最大化問題を指定するには,概率= optimproblem(“ObjectiveSense”、“最大化”)を使用します。

すべて折りたたむ

既定のプロパティで最適化問題を作成します。

概率= optimproblem
prob = optimizationproblems with properties:描述:" ObjectiveSense: 'minimize' Variables: [0x0 struct] containing 0 OptimizationVariables Objective: [0x0 OptimizationExpression] Constraints: [0x0 struct] containing 0 OptimizationConstraints无问题定义。

最大化を目的とする線形計画問題を作成します。問題には2つの正の変数と3つの線形不等式制約があります。

概率= optimproblem (“ObjectiveSense”“马克斯”);

正の変数を作成します。目的関数を問題に含めます。

x = optimvar (“x”、2、1,下界的, 0);概率。x(1) + 2*x(2);

問題の線形不等式制約を作成します。

con1 = x(1) + 5*x(2) <= 100;con2 = x(1) + x(2) <= 40;con3 = 2*x(1) + x(2)/2 <= 60;prob.Constraints。cons1 = cons1;prob.Constraints。cons2 = cons2;prob.Constraints。cons3 = cons3;

問題を確認します。

显示(概率)
优化问题:解:x maximize: x(1) + 2*x(2) subject to con1: x(1) + 5*x(2) <= 100 subject to con2: x(1) + x(2) <= 40 subject to con3: 2*x(1) + 0.5*x(2) <= 60 variable bounds: 0 <= x(1) 0 <= x(2)

問題を解きます。

索尔=解决(问题);
使用linprog解决问题。找到最优解。
sol.x
ans =2×125.0000 - 15.0000

入力引数

すべて折りたたむ

名前と値のペアの引数

引数名称,值のオプションのコンマ区切りペアを指定します。的名字は引数名,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を任意の順番で指定できます。

例:最大化問題を指定するには,概率= optimproblem(“ObjectiveSense”、“最大化”)を使用します。

問題の制約。OptimizationConstraint配列またはフィールドとしてOptimizationConstraint配列をもつ構造体として指定します。

例:/ /最优问题(x,2)

問題のラベル。字符串または文字ベクトルとして指定します。描述はソフトウェアでは計算に使用されません。描述は,あらゆる理由で自由に使用できるラベルです。たとえば,モデルまたは問題を共有,アーカイブ,または提示し,モデルまたは問題に関する説明情報を描述に保存できます。

例:“旅行推销员问题的迭代方法”

データ型:字符|字符串

目的関数。スカラーOptimizationExpressionオブジェクトとして指定します。

例:概率= optimproblem(“目标”,总和(sum (x)))(2 次元変数xについて)

最適化の意味。“最小化”または“最大化”で指定します。“最小值”を指定して“最小化”を,“马克斯”を指定して“最大化”を得ることもできます。関数解决は,ObjectiveSense“最小化”の場合に目的関数を最小化し,ObjectiveSense“最大化”の場合に目的関数を最大化します。

例:概率= optimproblem(“ObjectiveSense”、“max”)

データ型:字符|字符串

出力引数

すべて折りたたむ

最適化問題。OptimizationProblemオブジェクトとして返されます。通常,問題の説明を完了するには,目的関数と制約を指定します。ただし,目的関数のない実行可能性問題を保持したり制約のない問題を保持したりすることができます。解决を呼び出して,完全な問題を解きます。

警告

問題ベースのアプローチでは,目的関数,非線形等式,または非線形不等式における複素数値をサポートしていません。関数の計算に複素数値が含まれていると,それが中間値としてであっても,最終結果が不正確になる場合があります。

R2017bで導入