整数計画問題に帰着される問題を見つけ次第メモする.
何が変数かは察してください.
帰着されたからと言ってすぐ解けるわけではない.
整数計画問題はNP困難ではあるが,これらの問題から何か法則性を見つけて特殊な条件の整数計画問題を解く典型手法みたいなものを見つけたい.
EDPC D(01ナップサック問題)
定式化
制約
定式化
制約
定式化
制約
定式化
制約
解法
ABC013 C
定式化
制約
定式化
制約
解法
一般性を失わずとおける.
制約を満たすがあったとし, であるならば, やを満たす限りやにすると, を変えずにを小さくできる. したがって, をできるだけ大きくした方がいいことになる.
でを固定する.
すると, できるだけを大きくしたいので, となる. ここで求める問題を書き直すと以下のようになる.
これは単純になので, 各についてで求められる.
ARC050 B
定式化
制約
定式化
制約
解法
はできるだけ大きく,はできるだけ小さくしたい.を固定したとき,が最適.である必要があるため,の下限は.自明な解から探索の上限を求めるとであることが分かる.
自明な解:で,したがってとなりの範囲を絞れる.
ABC275 G
定式化
制約
定式化
制約
解法
からを引き,にを加えても各制約の左辺値は変わらない.したがって,「」、「」、「」、「」、「」のいずれかを満たすような最適解が存在する.それぞれ決め打つと,あとは適当な全探索により調べることができる.
ARC128 C
定式化
制約
定式化
制約
解法
を絶対値の小さな数とする.緩和問題の最適解が整数でないを含むとする.整数でないに,整数でないにしても制約は満たしたまま目的関数を変化させることができる.目的関数を減少させる(増加させない)方向にを変化させることで整数であるの数を増やすことができる.これを繰り返すことで整数のみのからなる最適解が存在する(強双対性を持つ)ことが分かった.
緩和問題の双対問題を考える.
これは最小費用流で解ける形となっている.
ARC139 B
定式化
制約
解法
等号制約を使ってを消す.
またはの場合は簡単に最適解が分かるので,かつである場合を考える.
一般性を失わず,とできる.である場合,,とすれば,であるため,制約を違反せずに目的関数を減少させることができる.
したがって,としてよい.また,としてあり得る最大値はであるため,の値による適当なアルゴリズムの使い分けによりで解ける.