整数計画法
整数計画法は、数学的最適化または数学的プログラミングの一分野です。この文脈では、「最適化」とは、ある基準に基づいて、利用可能な代替手段のセットから最良の要素を選択することを意味します。整数計画法は、すべてまたはいくつかの変数が整数に制限される最適化問題に特化しています。
整数計画法の種類
- 純整数計画法(PIP): すべての意思決定変数が整数値を取る必要があります。
- 混合整数計画法(MIP): 変数の一部だけが整数である必要があり、他は非整数であることができます。
- バイナリ整数計画法: 変数が0または1に制限される整数計画法の特別なケースです。これはしばしばはい/いいえの決定に使用されます。
組合せ最適化における重要性
組合せ最適化の多くの問題は、整数計画問題として定式化できます。組合せ最適化は、離散的なオブジェクトやカウントできるオブジェクトに焦点を当てています。整数値は離散的であるため、整数計画法はそのような問題を解決する最良の方法であり、その解決において重要となります。
整数計画問題の定式化
整数計画問題は通常、次のように定式化されます:
最大化(または最小化): c 1 x 1 + c 2 x 2 + ... + c n x n
制約条件:
a 11 x 1 + a 12 x 2 + ... + a 1n x n ≤ b 1
a 21 x 1 + a 22 x 2 + ... + a 2n x n ≤ b 2
...
a m1 x 1 + a m2 x 2 + ... + a mn x n ≤ b m
ただし: x 1 , x 2 , ..., x n は整数
ここで、c i
は最大化または最小化したい目的関数の係数を表し、a ij
は制約の係数を表し、b i
は制約の境界を表します。
例:ナップサック問題
整数計画法の古典的な例としてナップサック問題を考えます。目的は、ナップサックに入れたアイテムの総価値を最大化することです。ただし、ナップサックの運搬能力を超えてはなりません。
ナップサック問題の例:
- アイテム: 重量
w = [2, 3, 4, 5]
、価値v = [3, 4, 5, 6]
の4つのアイテム - 容量: このバッグは最大で5人分の重量を運ぶことができます。
ナップサック問題を整数計画法で定式化:
最大化:3x 1 + 4x 2 + 5x 3 + 6x 4
制約条件:2x 1 + 3x 2 + 4x 3 + 5x 4 ≤ 5
ただし:x 1 , x 2 , x 3 , x 4 ∈ {0, 1}
制約x i ∈ {0, 1}
は、各アイテムをバッグに含めるかどうかを確保します。
視覚表現
このビューは、バッグの重量を降順に詰め込んだ簡略化モデルを示しています。
整数計画問題の解決
整数計画問題は一般にNP困難であり、すべての問題を効率的に(多項式時間で)解決する既知のアルゴリズムはありません。しかし、特定の問題を解決するために、いくつかのアプローチを採ることができます。
1. 分枝限定法
これは整数計画問題を解くための広く使われている手法です。基本的なアイデアは、問題を小さなサブ問題(分枝)に分割し、これらのサブ問題をシステマティックに排除して最適な解を求めること(境界)です。
h3>2. 切削平面法この手法は、問題に整数解が存在しないような領域をフィルタリングするために問題に線形制約(切削平面)を反復的に挿入することにより、整数計画問題の線形緩和を改善します。
整数計画法の実用的応用
- リソースの割り当て: 限られたリソースを競合する活動間で割り当てる。
- スケジューリング: 作業スケジュール、運送スケジュールなど、タスクに時間枠を割り当てる。
- ネットワーク設計: ネットワーク経路の設計、帯域幅の指定など。
- 生産計画: 製品の生産量など、生産活動を計画する。
例題:タスクスケジューリング
特定の処理時間と期限を持ついくつかのタスクのセットを考えます。目的は、タスクが完了するまでの遅延量を最小化するようにタスクをスケジュールすることです。
例:
- ジョブ: ジョブ 1、ジョブ 2、ジョブ 3、処理時間はそれぞれ2, 4, 3、期限はそれぞれ2, 6, 5。
このスケジューリング問題を整数計画法で定式化:
最小化:T 1 + T 2 + T 3
制約条件:
x 1,1 + x 1,2 + x 1,3 = 1
x 2,1 + x 2,2 + x 2,3 = 1
x 3,1 + x 3,2 + x 3,3 = 1
完了制約:
C 1 = 2x 1,1 + 4x 2,1 + 3x 3,1
C 2 = C 1 + 2x 1,2 + 4x 2,2 + 3x 3,2
C 3 = C 2 + 2x 1,3 + 4x 2,3 + 3x 3,3
ただし:
T i = 最大(0, C i - 期限 i )
x i,j ∈ {0, 1}
整数計画法の利点
整数計画法は、多くの複雑な意思決定問題を解決するための強力なフレームワークを提供します。このことは特に、最適化問題内で論理的要件をモデル化する能力があるため、有益です。これは特に以下の場面で有用です:
- 意思決定が自然にオン/オフの用語で表現できる場合(例:投資するかどうか)。
- 解が厳密な論理的制約を遵守する必要がある場合。
- 変数の一部が異なる値を必要とする問題を解決する必要がある場合。
結論
整数計画法は、最適化の広範な分野だけでなく、多くの産業における実際の応用でも重要な役割を果たしています。その複雑さと計算集約性にもかかわらず、現実の問題に対して実行可能な解を得るために利用できる効果的な戦略やヒューリスティックがあります。計算能力が向上し続ける中、整数計画法は複雑な意思決定の課題に対処するための手段としてますます有用で広く利用されています。