Matlab (ソース コード + データ) に基づいて標準的な計画問題を解決する

Matlab は、さまざまな数学的問題を解決するための高い効率と柔軟性を備えた強力な数値計算およびデータ分析ソフトウェアです。その中で、Matlab は標準的なプログラミング問題、つまり線形計画問題を解くためにも使用できます。

標準プログラミング問題は、与えられた制約の下で目的関数を最大化 (または最小化) する変数値を見つけることを目的とする一般的な最適化問題です。標準的な計画問題の一般的な形式は次のとおりです。

目的関数を最小化 (または最大化) します。

f(x) = c'x

制限:

Ax ≤ b
x ≥ 0

このうち、x は解くべき変数ベクトル、c は目的関数の係数ベクトル、A は制約条件の係数行列、b は制約条件の右辺ベクトルです。

Matlab では、最適化ツールボックスの関数 linprog を使用して、標準的な計画問題を解決できます。linprog 関数の基本的な構文は次のとおりです。

[x, fval, exitflag, output] = linprog(c, A, b)

このうち、c は目的関数の係数ベクトル、A は制約条件の係数行列、b は制約条件の右辺ベクトルです。関数の出力には、最適解x、最適解に対応する目的関数値fval、解の終了フラグ、解法プロセスの出力情報が含まれる。

以下では、Matlab で標準計画問題を解決する方法を示すために、単純な標準計画問題を例として取り上げます。

次の標準的な計画問題を想定します。

目的関数を最小化します。

f(x) = 2x1 + 3x2

制限:

2x1 + x2 ≤ 10
x1 + 3x2 ≤ 12
x1, x2 ≥ 0

まず、標準計画問題を Matlab の関数 linprog の入力形式に変換する必要があります。上記の質問に基づいて、次のような入力を得ることができます。

c = [2; 3];
A = [2, 1; 1, 3];
b = [10; 12];

次に、linprog 関数を呼び出して最適な解決策を見つけることができます。

[x, fval, exitflag, output] = linprog(c, A, b);

最後に、ソリューションの結果を出力できます。

disp('最优解:');
disp(x);
disp('最优解对应的目标函数值:');
disp(fval);

上記のコードを実行すると、最適解 x=[3; 2] と、最適解に対応する目的関数値 fval=12 を取得できます。

要約すると、Matlab は、標準的な計画問題を解決するための強力なツールと機能を提供します。関数 linprog を使用すると、さまざまな標準計画問題を簡単に解き、最適解とそれに対応する目的関数値を得ることができます。このため、Matlab は最適化問題を解決するための理想的なツールになります。

ケース+データ

Matlab に基づく標準的な計画問題の解決 (ソース コード + データ): https://download.csdn.net/download/m0_62143653/88366383

おすすめ

転載: blog.csdn.net/m0_62143653/article/details/133497181