整数計画問題(せいすうけいかくもんだい)は、線型計画問題において、解ベクトル の各要素を整数に限定した問題をいう。これはNP困難な問題に該当する。線型計画問題には多項式時間アルゴリズムが存在するのに対し、整数計画問題ではまだ見つかっていない。

解ベクトル の各要素を または のみに限定したものを、特に0-1整数計画問題という。

整数計画問題の基準形と標準形

編集

整数計画問題では、定式化を標準形(standard form)および基準形(canonical form)に従った形式で表される。基準形の整数計画問題は次のように書き表される(このときベクトル について求める問題である)[1]:

また標準形の整数計画問題は次のように書き表される:

ここで は行列、 は列ベクトルである。線形計画問題と同様に、不等式の制約式に対して非負の制約をもつスラック変数英語版 を不等式制約式の小さな項に対して導入することで等式の制約式に書き換えられ、 という非負の条件を持たない自由変数に対しては、非負の変数 , を用いて、 と書き直すことで、整数計画問題を標準形に表すことができる。

編集
IPとLP緩和後の多面体

右の図に対する整数計画問題は以下の通りである:

ここで赤点は実行可能な整数点を表しており、赤の破線は実行可能な点をすべて含む最小の多面体(凸包)を表している。青い線と座標軸によって定義されるのが、制約条件から整数制約を除いた線形計画(LP)緩和の多面体を表している。最適化の目標としては、黒の破線が多面体に接した状態を維持したまま可能な限り上方に移動させることである。整数問題の最適解は , で、目的関数値が である。一方、変数の整数条件を取り除いた線形計画緩和の最適解は で、目的関数値は である。この線形計画緩和の最適解に対して小数部分を最も近い整数に丸めると、 となり、整数計画問題の実行可能解ではない。

類似の問題

編集

混合整数線形計画問題(Mixed-integer linear programming: MILP)とは、変数の一部分に対して整数条件が課された問題である。

0-1整数計画問題(Zero–one linear programming、binary integer programming)とは、変数の取り得る値が 0 または 1 に限定された問題である。整数変数が有界の場合はバイナリ変数英語版を用いて表現することができる[2][3]。具体例として、整数変数が の範囲であるとき、変数は 個のバイナリ変数を用いて:

もしくは、 個のバイナリ変数を用いて:

もしくは、 個のバイナリ変数を用いて:

と書き換えられる。

整数計画問題として解かれる問題の例

編集

脚注

編集
  1. ^ Papadimitriou, C. H.; Steiglitz, K. (1998). Combinatorial optimization: algorithms and complexity. Mineola, NY: Dover. ISBN 0486402584 
  2. ^ Williams, H.P. (2009). Logic and integer programming. International Series in Operations Research & Management Science. 130. ISBN 978-0-387-92280-5 
  3. ^ 藤江哲也「整数計画法による定式化入門」『オペレーションズ・リサーチ : 経営の科学』第57巻第4号、日本オペレーションズ・リサーチ学会、2012年、190-197頁、CRID 1520290883136073600ISSN 0030-3674NAID 110009426124NCID AN00364999オリジナルの2025年3月18日時点におけるアーカイブ、2025年4月1日閲覧 

関連文献

編集
  • 今野浩:「整数計画法」,産業図書,1981.
  • 今野浩・鈴木久敏編:「整数計画と組合せ最適化」,日科技連,1982.
  • 久保幹雄,田村明久,松井知己(編):「応用数理計画ハンドブック」,朝倉書店,2002.

📚 Artikel Terkait di Wikipedia

ユニモジュラ行列

Points of Convex Polyhedra”, in M. Jünger et al. (eds.), 50 Years of Integer Programming, 1958-2008, Springer-Verlag, pp. 49–50 。 ^ Heller, I.; Tompkins,

線形計画法

Polynomial Algorithms in Convex Programming, SIAM, Philadelphia, 1994. A. Schrijver: Theory of Linear and Integer Programming, John Wiley and Sons, New York

可変長配列

90の機能を利用する場合)。 function read_and_process(n) result(o) integer,intent(in)::n real::o real,dimension(n)::vals integer::i do i = 1,n vals(i) = read_val() end do o

制御構造

when文のみで条件分岐と脱出を行う。 with Ada.Text IO; with Ada.Integer Text IO; procedure Print_Squares is X : Integer; begin Read_Data : loop Ada.Integer Text IO.Get(X); exit Read_Data

タブーサーチ

をタブーリストのサイズにすることなども提案されている。 [脚注の使い方] ^ Glover, Fred (1986). “Future Paths for Integer Programming and Links to Artificial Intelligence”. Computers and Operations Research

ボックス化

以前ではコンパイルエラー。 list.add(Integer.valueOf(5)); // Integer 型にボックス化してリストに追加する。 Integer iw = (Integer)list.get(0); // Object 型から Integer 型にダウンキャスト。 int iv = iw

IP

イメージングプレートの略称。放射線の定量的な観測に用いるフィルム状の検出機。 イオンプレーティング (Ion Plating) の略称。 整数計画問題 (Integer Programming problem) の略 - 線形計画問題のうち、解ベクトルの各要素を整数に限定したもの。 屈折句 (Inflection Phrase)

佐藤信秋

高等学校卒業。1970年、京都大学工学部土木工学科卒業。1972年、京都大学大学院工学研究科土木工学専攻修士課程修了。修士論文ではinteger programming(整数計画問題)を扱った。 1972年、建設省入省。道路局に属し、道路局企画課道路経済調査室長、道路局有料道路課長、道路局企画課長