線形計画問題において全てもしくは一部の変数が整数値を取る制約を持つ（混合）整数計画問題は，産業や学術の幅広い分野における現実問題を定式化できる汎用的な最適化問題の1つである．近年，整数計画ソルバー（整数計画問題を解くソフトウェア）の進歩は著しく，現在では数千変数から数万変数におよぶ実務上の最適化問題が次々と解決されている．また，商用・非商用を含めて多数の整数計画ソルバーが公開されており，整数計画問題を解くアルゴリズムを知らなくても定式化さえできれば整数計画ソルバーを利用できるようになったため，数理最適化以外の分野においても整数計画ソルバーを利用した研究が急速に普及している．最適化問題は，与えられた制約条件の下で目的関数$f(\bm{x})$の値を最小にする解$\bm{x}$を1つ求める問題であり，線形計画問題は，目的関数が線形で制約条件が線形等式や線形不等式で記述される最も基本的な最適化問題である．通常の線形計画問題では，全ての変数は連続的な実数値を取るが，全ての変数が離散的な整数値のみを取る線形計画問題は整数（線形）計画問題と呼ばれる．また，一部の変数が整数値のみを取る場合は混合整数計画問題，全ての変数が$\{0,1\}$の2値のみを取る場合は0-1整数計画問題と呼ばれる．最近では非線形の問題も含めて整数計画問題と呼ばれる場合が多いが，本論文では線形の問題のみを整数計画問題と呼ぶ．また，混合整数計画問題や0-1整数計画問題も区別せずに整数計画問題と呼ぶ．整数変数は離散的な値を取る事象を表すだけではなく，制約式や状態を切り替えるスイッチとして用いることが可能であり，産業や学術の幅広い分野における現実問題を整数計画問題に定式化できる．組合せ最適化問題は，制約条件を満たす解の集合が組合せ的な構造を持つ最適化問題であり，解が集合，順序，割当て，グラフ，論理値，整数などで記述される場合が多い．原理的に，全ての組合せ最適化問題は整数計画問題に定式化できることが知られており，最近では，整数計画ソルバーの性能向上とも相まって，整数計画ソルバーを用いて組合せ最適化問題を解く事例が増えている．現実問題を線形計画問題や整数計画問題に定式化する際には，線形式のみを用いて目的関数と制約条件を記述する必要がある．こう書くと，扱える現実問題がかなり限定されるように思われる．実際に，線形計画法の生みの親であるDantzigもWisconsin大学で講演をした際に「残念ながら宇宙は線形ではない」と批判を受けている\cite{KonnoH2005}．しかし，正確さを失うことなく現実問題を非線形計画問題に定式化できても最適解を求められない場合も多く，逆に非線形に見える問題でも変数の追加や式の変形により等価な線形計画問題や整数計画問題に変換できる場合も少なくない．そのため，現実問題を線形計画問題や整数計画問題に定式化してその最適解を求めることは，実用的な問題解決の手法として受け入れられている．現在では，整数計画ソルバーは現実問題を解決するための有用な道具として数理最適化以外の分野でも急速に普及している．一方で，数理最適化の専門家ではない利用者にとって，線形式のみを用いて現実問題を記述することは容易な作業ではなく，現実問題を上手く定式化できずに悩んだり，強力だが専門家だけが使う良く分からない手法だと敬遠している利用者も少なくない．そこで，本論文では，数理最適化の専門家ではない利用者が，現実問題の解決に取り組む際に必要となる整数計画ソルバーの基本的な利用法と定式化の技法を解説する．なお，最近の整数計画ソルバーはアルゴリズムを知らなくても不自由なく利用できる場合が多いため，本論文では，線形計画法，整数計画法の解法および理論に関する詳しい説明は行わない．線形計画法については\cite{ChvatalV1983,KonnoH1987}，整数計画法については\cite{KonnoH1982,NemhauserGL1988,WolseyLA1998}が詳しい．また，線形計画法，整数計画法の発展の歴史については\cite{AchterbergT2013,AshfordR2007,BixbyR2007,KonnoH2005,KonnoH2014,LodiA2010}が詳しい．