きのうの授業、最適化の「整数計画問題」関係のまとめをメモメモ
ワイン生産計画問題
SCIP(スキップ):フリーの混合整数計画ソルバー
http://scip.zib.de
ドイツの「じぶ」というところ
LPフォーマットで問題を記述
read 読み込みファイル
optimize
write solution ファイル名
参考文献1にある(Webにしかない)
整数計画問題のときは、キーワードhttp://www.tuat.ac.jp/~miya/ipmemo.html#SECTION04
単体法
単純です。早い
指数時間かかる→実際には改造すると、早い?
楕円体法
実用的には遅い
内点法
多項式的に早く
実際にも早い
実際には、単体法と内点法のハイブリッド
一発問題を解くなら内点法
似た問題を解くなら単体法
単体法の基本的なアイデア
行列の基本変形をシステマチックにするのが、単体法!
辞書(むかしは、タブローで説明→手で書くことない)
(1)不等式を等式で表現(変数を追加して等式にする)
Z=にして、Zを最大
(2)その変数、およびZをならべ、
追加した変数=数字+変数・・・
にしていく。そうして、
・ピボット操作を繰り返す
作図で解く方法
・解をとる空間をつくる
・はじめ原点
・1個だけ変数ふやす点
・2個変数増やす点
・3個変数決めた点へ・・
問題点
・有限回で終わるか?
→巡回する場合がある
→うまいルール(ブランドのルール:添え字の小さい順)を使うとOK
・いつでもスタートできる
→負の定数:2段階法(実行可能解を見つける)
・問題が等式だったら?
→細かいこといろいろあるけど、省略
・単体:2次元空間 三角形
3次元空間 4面体
だんてぃぐは早いと確信していた
双対
だんてぃぐ:どうすれば、早く解ける?
ノイマン:
主問題
max. CTX
s.t. Ax ≦ b
双対問題
min. yTb
ST yTA=CT
y≧0
(T : 転置行列を示す)
反射的:双対問題の双対問題は主問題
弱双対性:xとyがそれぞれの問題で実行可能→CTx<yTb
強双対性:実行可能解がある→最適解をもちCTx=yTb
変形方法
・(大きな)行列を用いる→あんまりよろしくない
・ラグランジュ緩和
→制約を破るとペナルティになる/制約をなくした
→y1,y2,y3を追加:ラグランジュ乗数
→ラグランジュの未定乗数法の、あの乗数
→上界をおさえる
・yについてまとめたものを、xについてまとめなおす
・s-t最短路問題
→Totally Unimodular:線形緩和
更なるトピック
・どっちを解く?
主双対{単体、内点}法→両方を使う
・主問題と双対問題
→かならず1個あるが、解けるかどうか分からない
(解がない・いくらでも解がある)
<HR>
整数計画問題
・ナップザック問題
制約式1本
・彩色問題
スケジュール立てる問題と同じ
(1)色を数値
・うまい式を作れるかどうか
・ベンチマーク
MIPLIB2010
http://miplib.zib.de/miplib2010.php
次回:ブランチ&バウンド、ブランチ&カット
<<Q&A>>
非線形:局所解はでるけど、全体最適は少ない変数でないときつい
ワイン生産計画問題
SCIP(スキップ):フリーの混合整数計画ソルバー
http://scip.zib.de
ドイツの「じぶ」というところ
LPフォーマットで問題を記述
read 読み込みファイル
optimize
write solution ファイル名
参考文献1にある(Webにしかない)
整数計画問題のときは、キーワードhttp://www.tuat.ac.jp/~miya/ipmemo.html#SECTION04
単体法
単純です。早い
指数時間かかる→実際には改造すると、早い?
楕円体法
実用的には遅い
内点法
多項式的に早く
実際にも早い
実際には、単体法と内点法のハイブリッド
一発問題を解くなら内点法
似た問題を解くなら単体法
単体法の基本的なアイデア
行列の基本変形をシステマチックにするのが、単体法!
辞書(むかしは、タブローで説明→手で書くことない)
(1)不等式を等式で表現(変数を追加して等式にする)
Z=にして、Zを最大
(2)その変数、およびZをならべ、
追加した変数=数字+変数・・・
にしていく。そうして、
・ピボット操作を繰り返す
作図で解く方法
・解をとる空間をつくる
・はじめ原点
・1個だけ変数ふやす点
・2個変数増やす点
・3個変数決めた点へ・・
問題点
・有限回で終わるか?
→巡回する場合がある
→うまいルール(ブランドのルール:添え字の小さい順)を使うとOK
・いつでもスタートできる
→負の定数:2段階法(実行可能解を見つける)
・問題が等式だったら?
→細かいこといろいろあるけど、省略
・単体:2次元空間 三角形
3次元空間 4面体
だんてぃぐは早いと確信していた
双対
だんてぃぐ:どうすれば、早く解ける?
ノイマン:
主問題
max. CTX
s.t. Ax ≦ b
双対問題
min. yTb
ST yTA=CT
y≧0
(T : 転置行列を示す)
反射的:双対問題の双対問題は主問題
弱双対性:xとyがそれぞれの問題で実行可能→CTx<yTb
強双対性:実行可能解がある→最適解をもちCTx=yTb
変形方法
・(大きな)行列を用いる→あんまりよろしくない
・ラグランジュ緩和
→制約を破るとペナルティになる/制約をなくした
→y1,y2,y3を追加:ラグランジュ乗数
→ラグランジュの未定乗数法の、あの乗数
→上界をおさえる
・yについてまとめたものを、xについてまとめなおす
・s-t最短路問題
→Totally Unimodular:線形緩和
更なるトピック
・どっちを解く?
主双対{単体、内点}法→両方を使う
・主問題と双対問題
→かならず1個あるが、解けるかどうか分からない
(解がない・いくらでも解がある)
<HR>
整数計画問題
・ナップザック問題
制約式1本
・彩色問題
スケジュール立てる問題と同じ
(1)色を数値
・うまい式を作れるかどうか
・ベンチマーク
MIPLIB2010
http://miplib.zib.de/miplib2010.php
次回:ブランチ&バウンド、ブランチ&カット
<<Q&A>>
非線形:局所解はでるけど、全体最適は少ない変数でないときつい