690 likes | 1.02k Views
ロジスティクス工学 第 10 章 施設配置モデル 第 11 章 ロジスティクス・ネットワーク 設計モデル サプライ・チェインの設計と管理 第2章 ロジスティクス・ネットワークの構成 コケコーラの事例を読んでおくこと! 副読本:組合せ最適化 [ 短編集 ] 第 10 章 施設配置問題. 東京商船大学 久保 幹雄. 平面上の配置問題 Fermat (フェルマー) の古典問題. 各点上に顧客がいるとして,顧客の歩く総距離が最小になる点に施設を建てる. ->Weber 問題 -> 施設配置問題
E N D
ロジスティクス工学第10章 施設配置モデル第11章 ロジスティクス・ネットワーク設計モデルサプライ・チェインの設計と管理第2章ロジスティクス・ネットワークの構成コケコーラの事例を読んでおくこと!副読本:組合せ最適化[短編集] 第10章 施設配置問題 東京商船大学 久保 幹雄
平面上の配置問題Fermat(フェルマー)の古典問題平面上の配置問題Fermat(フェルマー)の古典問題 • 各点上に顧客がいるとして,顧客の歩く総距離が最小になる点に施設を建てる.->Weber問題->施設配置問題 • 各点上にコンピュータがあるとして,総距離が最小になるように繋ぐ.(ただしハブを使っても良い.)->Steiner木問題
Steiner(スタイナー)木問題 • 平面上に点が与えられたとき,総距離が最小になるように繋ごう!ただし中継点を使っても良い.(中継点なしだと最小木問題になり簡単(どん欲アルゴリズムで解ける!)
(Xi,Yi) (2,1),(9,1),(12,3) (5,8),(11,7) 距離の2乗和を最小にする平面上の施設配置問題 • n 人の顧客が平面上に分布しており,その座標を (Xi,Yi), i=1,...,n とする.このとき,顧客からの距離の2乗和を最小にするような施設は平面上のどこに作れば良いか? • f(X,Y)=Σi(Xi-X) 2+(Yi-Y)2 最小にする(X,Y)を求める問題
距離の2乗和を最小にする平面上の施設配置問題の解法距離の2乗和を最小にする平面上の施設配置問題の解法 • f(X,Y)=Σi(Xi-X) 2+(Yi-Y)2を最小にする!->微分する! • ∂f(X,Y)/∂X = • ∂2f(X,Y)/∂X2 = So f(X,Y) is . X* = Y* =
(Xi,Yi)’s are: (2,1),(9,1),(12,3) (5,8),(11,7) Weber(ウエーバー)問題 • n 人の顧客が平面上に分布しており,その座標を (Xi,Yi), i=1,...,n とする.このとき,顧客からの距離の和(2乗和でなはい!)を最小にするような施設は平面上のどこに作れば良いか? • f(X,Y)=Σi{(Xi-X) 2+(Yi-Y)2 }1/2を最小にする(X,Y)を求める問題
Weber問題の解法 • f(X,Y)=Σi{(Xi-X) 2+(Yi-Y)2 }1/2 を微分してみる. • ∂f(X,Y)/∂X = • ∂2f(X,Y)/∂X2= So f(X,Y) is . X* = Y* =
練習問題 • Find the optimal location of the facility of Continuous Location and Weber examples.
A B C D E A 0 4 3 2 6 B 4 0 2 3 4 C 3 2 0 1 3 D 2 3 1 0 4 E 6 4 3 4 0 (3) (1) 距離 4 A B 2 4 2 C D E 1 3 (2) (1) (3) k-メディアン問題 各点上にいる顧客 A,B,C,D,E (カッコ内の数字は人数を表す)は, 開設された最も近い施設を利用するものとする.このとき,顧客の 総走行距離を最小にするように,k個の施設を選択せよ.
k-メディアン問題(定義) • 無向グラフ G=(V,E) • 距離関数 d: E→R+(非負の実数) • 需要関数(点の重み) w: V →R+ • 施設の数 k (正数) が与えられたとき,となるような点集合Sを求める問題. ただし,d(i,j) は2点i,jの最短距離を表す. S内の最も近い 施設に行く 重みつきの 合計をとる 総移動距離を 最小にするk個 の施設を選択
施設を点の上に配置したと仮定しても最適性が失われないことの証明(1)施設を点の上に配置したと仮定しても最適性が失われないことの証明(1) k=1の場合で証明 枝p,qの間のxに配置するのが最適と仮定 x p q P: p経由の方が近い点集合 Q: q経由の方が近い点集合 d(x,p) d(x,q)=d(p,q)-d(x,p) P Q Pの方が顧客が多いと仮定(w.l.g.:without loss of generality)
施設を点の上に配置したと仮定しても最適性が失われないことの証明(2)施設を点の上に配置したと仮定しても最適性が失われないことの証明(2) d(x,q)=d(p,q)-d(x,p) 0以上 d(p,j)≦d(p,q)+d(q,j) 点pからjへ行くには, Q経由より直接の方が近い! 途中の点xの施設より点pの方が良い!
k-メディアン問題のExcelによる表現(median.xls) A B C D E F G 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 =MIN(A8:A12) =SUM(A15:E15) =A13*A14 =IF(G2=1,A2,99999) もし G2のセルに1が入っていたら,A2の値,それ以外なら大きな数
貪欲解法 • 貪欲解法(greedy algorithm) k=1の場合の最適な施設(1-メディアン)を求め,それを固定した上で,次の施設を順に(施設数がkになるまで)選択していく. 1つの施設を建てる場合-> 点Dが最適! 2つの施設を配置する場合:貪欲解法のとき 点D と点[ ] 最適解 点[ ]と点[ ]
貪欲解法(逆順)(組合せ最適化短編集 第10章の第1話参照) • 貪欲解法とは逆に,すべての施設が配置されている場合からはじめて,1つの施設を除いたときの費用の増加が最も少ないもを削除.これを施設数がkになるまで繰り返す.(medan2.xls)
A B C D H G F E 練習問題 (k-メディアン問題) 各点上にいる顧客 A-H (カッコ内の数字は人数を表す)は,開設された最も近い施設を利用するものとする. このとき,顧客の 総走行距離を最小にするように,1個の施設を選択せよ. また,2個選択する場合はどうか? Excelによる試行錯誤と貪欲解法,貪欲解法(逆順)で解け. (3) 距離 (1) 4 2 4 2 (3) (2) (1) 1 3 3 2 (0) (4) (1)
A B C D E A 0 4 3 1 2 B 4 0 2 4 5 C 3 2 0 2 3 D 1 4 2 0 1 E 2 5 3 1 0 A B C D E k-センター問題 各点上にいる顧客 A,B,C,D,E は,開設された最も近い施設から サービスを受けるものとする.このとき,施設から最も遠い顧客 への距離を最小にするように,k個の施設を選択せよ. (消防署などの緊急を要する施設の配置で利用) 距離 4 2 1 2 1
k-センター問題(定義) • 無向グラフ G=(V,E) • 距離関数 d: E→R+(非負の実数) • 施設の数 k (正数) が与えられたとき,となるような点集合Sを求める問題. ただし,d(i,j) は2点i,jの最短距離を表す. S内の最も近い 施設から行く 最も遠い(不利な)顧客を選択 最大距離を 最小にするk個 の施設を選択
A B C D E max A 0 4 3 1 24 B 4 0 2 4 5 5 C 3 2 0 2 3 3 D 1 4 2 0 1 4 E 2 5 3 1 0 5 1-センター問題の最適解必ずしも点の上とは限らない! 消防署の最適配置! 点の上だとすると... 行ごとの最大値を計算. それが最小になる点[ ] が最適!
A B C D E 1-センター問題(枝上への最適配置) 枝(A,B)上(Aからの距離がxの地点)に配置する場合 d(x,E) d(x,C) d(x,B) 5 (4) 4 (5) 4 x 3 d(x,A) 2 2 1 2 1 (3) (4) 1 A B d(x,D) (5)
1-センター問題(枝上への配置の下界の導出) Mq=max{d(p,j)} p q x Mp=max{d(p,j)} Mp-x x+Mq-d(p,q) 最も小さい場合 Mp-x=x+Mq-d(p,q) p x=0 q x=d(p,q)
A B C D E 1-センター問題(最適解) >3(C上に配置)なら,枝pq上は調べなくて良い! AB上 ->(4+5-4)/2=2.5<3 (4) AD上 ->(4+4-1)/2=3.5>3 4 (5) BC上 -> x CD上 -> 2 1 DE上 -> 2 (3) (4) よってCD上のみ調べれば良い! 練習問題:枝 CD上の最適配置をグラフ を用いて求めよ. 1 (5)
7 8 9 7 6 A B C D E A 0 4 3 2 6 B 4 0 2 3 4 C 3 2 0 1 3 D 2 3 1 0 4 E 6 4 3 4 0 容量制約なし施設配置問題 = fj 施設開設の 固定費用 =cij 輸送費用 各点の需要量は1
容量制約なし施設配置問題(定式化) I: 需要地点(顧客)の集合 J: 施設の配置可能地点の集合 xij =顧客iの需要が施設jによって満たされる割合 yi = 1 施設が点j上に配置されるとき0 それ以外のとき 十分に大きな数 (=顧客の数) (使わない方がよい!) (式の本数は多いが 下界が)強い定式化 (下界が)弱い定式化
練習問題 • k-センター問題,容量制約なし施設配置問題を試行錯誤で解くためのExcelモデルを作成せよ. • Excelを用いた試行錯誤(What If分析)を用いて k-メディアン, k-センター問題,容量制約なし施設配置問題を解け. (k-メディアン, k-センター問題の場合には,kを色々変えてみよ.)
Lagrange乗数 (任意の実数) Lagrange緩和 0 最初の式の緩和->最適値は等しいか小さい ->下界!
Lagrange緩和(子問題への分解) 各顧客がちょうど1つの 施設に行く条件を緩和 そのかわりに顧客iが ui の「ご褒美」を施設に 与える! ->各j(施設)ごとに分解できる! を各jについて解いて を加える->下界
Lagrange緩和(Excelモデル)flp-lag1.xls ここを変えると下界が変化 (劣勾配はここに出てくる) ここを変えると 上界が変化
Lagrange緩和(Excelモデル)flp-lag1.xls [A8]=MIN(A2-$F2,0) [A15]=MIN(A13+A14,0) [A16]=IF(A15<0,1,0) [A17]=IF($H2=1,A2,99999) [A25]=IF(A8<=0,A$16,0)
双対上昇法(主・双対ヒューリスティクス) • Lagrange乗数を下界が単調に増加するように設定する簡便法 • 各顧客(需要地点)が支払う「ご褒美」を0に設定して,すべての顧客が施設に行けるようになるまで以下を繰り返す. • 各顧客に対して,順繰りに,次に近い施設への輸送費用まで「ご褒美」を増やす. • (ご褒美-輸送費用)が0以上なら,余剰のご褒美を施設に与える. • 施設がもらったご褒美の合計が,施設の固定費用と一致したら,施設を開設する.このとき,その施設に行くことにした顧客はご褒美を値上げするのをやめる.
双対問題の導出(Lagrange緩和を経由) (1)双対問題の導出(Lagrange緩和を経由) (1) Lagrange乗数 ui (任意の実数) 0 0以下 Lagrange乗数 vij (非負の実数) 整数条件を (1以下の条件も)外す (注意:テキストでは1以下を 残している!)
双対問題の導出(Lagrange緩和を経由) (2)双対問題の導出(Lagrange緩和を経由) (2) 項別に整理 目的関数にのせた式を緩和 0以下の項を加えて,さらに式を緩和したので下界! 下界が-∞にならないためには...これらの項が0以上! より良い(=大きい)下界を得るためには...ここを最大化. 双対問題
双対上昇法(主・双対ヒューリスティクス) uiを大きくしていき, cijを超えた分をvij なら,需要地点iは 施設jの近所とよぶ! これが等号で成立したら施設jを開設し,その施設の近所の需要地点iのuiを大きくするのをやめる. • uiを各需要地点ごとに次に近い施設までの移動費用まで増やす. • 近所の施設が開設していない需要地点に対して,一様に増やす.
例題(ヒューリスティクスがうまくいかない例)例題(ヒューリスティクスがうまくいかない例)
最も近い倉庫から補充した場合 足りない分は 工場1から運ぶ
最も安い経路(工場-倉庫-顧客)を選択した場合最も安い経路(工場-倉庫-顧客)を選択した場合 Min{0+3,4+3, 5+2,2+2}
最も安い経路(工場-倉庫-顧客)を選択した場合ー倉庫2から顧客3への輸送費用が半額のときー最も安い経路(工場-倉庫-顧客)を選択した場合ー倉庫2から顧客3への輸送費用が半額のときー 4万->2万 増えている!
最も安い経路(工場-倉庫-顧客)を選択した場合ーさらに倉庫2から顧客1への輸送費用を5000円にしたときー最も安い経路(工場-倉庫-顧客)を選択した場合ーさらに倉庫2から顧客1への輸送費用を5000円にしたときー 2万->0.5万 さらに増えている!
Excelソルバーによる求解 Table2-5.xls 変化させるセル
Excelソルバーの設定(1) 目的関数のセルを指定 $H$7=0 工場の供給量上限 倉庫の入量=出量 需要は必ず満たす
Excelソルバーの設定(2) 線形モデル, 非負数を仮定を チェックする! 非線形モデルで使用 注意:初期値によっては収束しない可能性あり!
感度レポートの解釈 双対変数の最適値のこと 工場p2の生産量上限60000を1単位増やすと総費用が1減る 制約を90000まで増やすか,10000まで減らすと解が変わる
AMPLとは? • A Modeling Programming Languageの略で,数理計画のモデリングをエレガントに行うための言語 • 問題を解くための手法(ソルバー)は別売線形計画:単体法など(混合)整数計画:分枝限定法など非線形計画: 内点法など • WEB経由で無料で使える! • Excelのソルバーよりは本格的(プロ向き)
AMPLによるモデル化(1) 工場 p1,p2 倉庫 w1,w2 顧客 c1,c2,c3 変数 xij:工場 piから倉庫wjへの輸送量 変数 Xij: 倉庫wiから顧客cjへの輸送量 var x11 >=0; var x12 >=0; var x21>=0; var x22>=0;var X11>=0; var X12>=0; var X13 >=0; var X21>=0; var X22>=0; var X23>=0; minimize cost: 0*x11 +5*x12 +4*x21 +2*x22 + 3*X11 +4*X12 +5*X13 +2*X21 +1*X22 +2*X23;
AMPLによるモデル化(2) 工場2は最大で60000しか生産できない subject to PlantCapacity: x21+x22 <=60000; 倉庫1に入る量と出る量が一致する subject to Warehouse1: x11+x21=X11+X12+X13; 倉庫2に入る量と出る量が一致する subject to Warehouse2: x12+x22=X21+X22+X23;
AMPLによるモデル化(3) 顧客1の需要 50000 は必ず満たす subject to Customer1: X11+X21=50000; 顧客2の需要 100000 は必ず満たす subject to Customer2: X12+X22=100000; 顧客3の需要 50000 は必ず満たす subject to Customer3: X13+X23=50000;
AMPLのメイル経由での利用NEOS サーバー:http://www-neos.mcs.anl.gov/neos/ • 以下の情報を電子メイル neos@mcs.anl.govに出す. BEGIN.COM AMPLコマンド:以下の2行は解を得るためのおまじない. solve; display _varname, _var; END.COM BEGIN.COMMENT ここにコメントを(必要なら)書く. END.COMMENT END-SERVER-INPUT TYPE MINCO SOLVER MINLP-AMPL BEGIN.MOD ここにモデルを書く. END.MOD BEGIN.DAT ここにデータを(必要なら)書く. END.DAT
AMPLモデル Table2-5.mod BEGIN.MOD #の右はコメント文(書かなくても大丈夫!): #変数の宣言 var x11 >=0; var x12 >=0; var x21>=0; var x22>=0; var X11>=0; var X12>=0; var X13 >=0; var X21>=0; var X22>=0; var X23>=0; #目的関数 minimize cost: 0*x11 +5*x12 +4*x21 +2*x22 +3*X11 +4*X12 +5*X13 +2*X21 +1*X22 +2*X23; #制約条件 subject to PlantCapacity: x21+x22 <=60000; subject to Warehouse1: x11+x21=X11+X12+X13; subject to Warehouse2: x12+x22=X21+X22+X23; subject to Customer1: X11+X21=50000; subject to Customer2: X12+X22=100000; subject to Customer3: X13+X23=500000; END.MOD
結果(メイルのリプライ) 10 variables, all linear 6 constraints, all linear; 18 nonzeros 1 linear objective; 9 nonzeros. MINLP-B&B (20010722): MINLP-B&B (20010722): Optimal solution found 1 subproblem, objective = 740000 Evals: obj = 14, constr = 15, grad = 15, Hes = 14 : _varname _var := 1 x11 140000 2 x12 0 3 x21 0 4 x22 60000 5 X11 50000 6 X12 65000 7 X13 25000 8 X21 0 9 X22 35000 10 X23 25000 ;