生産計画を立てる • 簡単なバージョン:輸送問題 定式化、最小費用流、バリエーション • 部品組立て計画 定式化、バリエーション

Slides:



Advertisements
Similar presentations
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
Advertisements

到着時刻と燃料消費量を同時に最適化する船速・航路計画
第6回 線形計画法の解法(4) 混合最小値問題 山梨大学.
コンピュータビジョン特論B - Graph Cuts - 永橋知行.
プログラムのパタン演習 解説.
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
動的計画法 表の作成 制約の追加 練習問題.
第八回  シンプレックス表の経済的解釈 山梨大学.
動的計画法 表の作成 制約の追加 練習問題.
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
「基礎OR」/「OR演習」 第3回 宿題3.2 Red Brand Canners解説
© Yukiko Abe 2014 All rights reserved
A: Attack the Moles 原案:高橋 / 解説:保坂.
初級ミクロ経済学 -生産者行動理論- 2014年10月20日 古川徹也 2014年10月20日 初級ミクロ経済学.
組合せ最適化問題と厳密解法 最小木、ナップサック問題、ビンパッキング、巡回セールスマン問題 LPによる上界・下界 分枝限定法
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
第四回 線形計画法(2) 混合最大値問題 山梨大学.
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
組合せ最適化 輪講 第1回 ERATO研究員 川原 純.
JAG Regional Practice Contest 2012 問題C: Median Tree
土木計画学 第11回(12月21日) 土木計画と説明責任 計画における代替案の作成1 担当:榊原 弘之.
経済・経営情報コース コース紹介.
配送計画最適化システム WebMETROご紹介
第 七 回 双対問題とその解法 山梨大学.
1章前半.
最大最小性, 双対性 min-max property duality
第4回 カルノー図による組合せ回路の簡単化 瀬戸 目標 ・AND-OR二段回路の実現コスト(面積、遅延)が出せる
線形計画法 スケールフリーネットワーク 須藤 孝秀.
計算量理論輪講 岩間研究室 照山順一.
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.3 節 Lagrange緩和 pp
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
© Yukiko Abe 2014 All rights reserved
経営システム工学入門実験 ロジスティクス 第3回
経営システム工学入門実験 ロジスティクス 第3回
割当て問題 • 割当問題の記法・定式化 • 拡張 • 特殊ケース(マッチング) • 3種類のものを割当てる問題.
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク上での社会的効用と個人的効用の対立問題に対するアルゴリズム的研究
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
教師なしデータ 学習データ  X1, X2, …, Xn   真の情報源 テストデータ  X  .
第7章 疎な解を持つカーネルマシン 修士2年 山川佳洋.
第3回 アルゴリズムと計算量 2019/2/24.
25. Randomized Algorithms
Selfish Routing and the Price of Anarchy 4.3
計算量理論輪講 chap5-3 M1 高井唯史.
First Course in Combinatorial Optimization
第Ⅱ部 協力ゲームの理論 第16章 破産問題 2008/07/02(水) ゲーム理論合宿 M1 浦田淳司.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
スポーツの最適化 優勝決定可能性問題 スポーツスケジュール問題.
最短ネットワーク問題:シュタイナー問題 3-G 023145 長谷川 和弘.
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
配送計画最適化システム WebMETROのご紹介
重み付き投票ゲームにおける 投票力指数の計算の高速化
第16章 動的計画法 アルゴリズムイントロダクション.
Selfish Routing 4章前半 岡本 和也.
土木計画学 第12回(1月14日) 計画における代替案の作成2 担当:榊原 弘之.
半正定値計画問題(SDP)の 工学的応用について
在庫最適化システム WebInvのご紹介 Log Opt Co., Ltd..
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
2009年度 第5回輪講 ~簡単なDPMによる実験編~ 平賀 友浩.
離散数学 11. その他のアルゴリズム 五島.
サプライ・チェイン 在庫最適化システム WebSCMのご紹介
Cプログラミング演習 ニュートン法による方程式の求解.
参考:大きい要素の処理.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

生産計画を立てる • 簡単なバージョン:輸送問題 定式化、最小費用流、バリエーション • 部品組立て計画 定式化、バリエーション   定式化、最小費用流、バリエーション • 部品組立て計画   定式化、バリエーション • 生産計画

どこからどこへ、どれだけ運ぶと、コストが最小? 輸送問題:運送コストを最小化 • いくつかの工場がある • いくつかの小売店がある • どれも一種類の品目を扱っている • 毎日、朝、売れる分だけ工場から小売店に輸送 • 工場での1日の生産数は固定 • 輸送コストは、品物1つあたりいくら、で固定 どこからどこへ、どれだけ運ぶと、コストが最小?

どの工場からどの小売店にどれだけ運ぶと、コストが最小? 輸送問題:絵で解説 500個 1000個 1800個 2000個 800個 2500個 1500個 どの工場からどの小売店にどれだけ運ぶと、コストが最小?

輸送問題:用語 • 工場 1,2,…,n • 小売店 1,2,…,m @10円 • 工場の生産量 500個 s1 , s2 ,…, sn • 小売店の需要量    t1 , t2 ,…, tm • 工場 i から小売店 j   への輸送コスト cij @10円 500個 1000個 1800個 2000個 800個 1500個 1500個 コスト最小化問題として定式化しよう

輸送問題:定式化 • 工場 i から小売店 j への輸送量を xij とする • 工場 i の生産数 ≧ 工場 i から各小売店への輸送量の合計       si ≧ Σ j=1,…,m xij for i = 1,…,n • 小売店 j の需要数 ≦ 各工場 i から小売店 j への輸送量の合計     tj ≦ Σ i=1,…,n xij for j = 1,…,m • 工場 i から小売店 j への輸送コストは cij × xij • 目的関数は、各工場・小売店間の輸送コストの和     Σ i=1,…,n Σ j=1,…,m cij × xij

輸送問題:定式化 (2) 最小化 Σ i=1,…,n Σ j=1,…,m cij × xij 制約条件   si ≧ Σ j=1,…,m xij for i = 1,…,n   tj ≦ Σ i=1,…,n xij for j = 1,…,m   xij ≧ 0 for j = 1,…,m, i = 1,…,n 線形計画で解ける ※ この問題は、「単体法(シンプレックス法)で解くと、必ず整数解が出てくる」という良い性質がある   (ただし、問題の係数が全て整数のとき)

どのように品物を運ぶとコストが最小になるか? 最小費用流問題 • 輸送問題に、中継地点と、各ルートの輸送量の上限を付けた問題 ≦20 ≦30 70個 100個 どのように品物を運ぶとコストが最小になるか?

例題 230,70 200,90 190 500 180,90 330,90 180,50 180,50 120,70 70 250 90,30 170,50 200,40 80,40 230 50,50 200,30 80,30 170,30 100 70,60 80,30 80,50 120 80,30 40,20 50,50 300 200,90 300 150,50 80,30 300,50 200,30 180,30 150 130 150,10 180,30 150,30

例題2 230,70 200,90 190 500 180,90 330,90 180,50 180,50 120,70 70 250 90,30 170,50 200,40 80,40 230 50,50 200,30 80,30 170,30 100 70,60 80,30 80,50 120 80,30 40,20 50,50 300 200,90 300 150,50 180,30 300,50 200,30 180,30 150 130 150,10 180,30 150,30

例題2 (最適解) 10 10 190 500 260 180 70 50 70 250 50 110 200 230 50 200 120 100 20 80 120 20 40 40 300 100 300 150 180 180 150 130 150 130 150 130 150

最小費用流問題:変数と入力 • 工場・中継点・小売店と、扱うものが増えたので、 輸送計画とは少々違う記法を使おう • 工場・小売店・中継点を頂点と呼ぶ v1 , v2 ,…, vn • 頂点から頂点へのルートは枝と呼ぶ • 各頂点 vi の需要/生産量 bi   ( bi がプラスなら、 bi 個のものを作る工場     bi がマイナスなら、 bi 個のものを必要とする小売店     bi = 0 なら、中継点) • 頂点 vi から頂点 vj への輸送コスト: cij • 頂点 vi から頂点 vj への輸送量の上限: uij (頂点と枝でできているものをネットワーク/グラフと呼ぶ)

最小費用流問題:定式化 • 頂点 vi から頂点 vj への輸送量を xij とする     頂点 vi から出て行く品物の数 Σj=1,…,n xij     頂点 vi に入ってくる品物の数 Σj=1,…,n xji • (頂点 vi から出て行く数)-(頂点 vi に入って来る数) が、頂点 vi の 生産数/需要数 と一致している必要がある        (Σj=1,…,m xji )-(Σj=1,…,m xij) = bi • 頂点 vi から vj への輸送量は uij 以下   xij ≦ uij • 残りの制約・目的関数は輸送問題と同じ

最小費用流問題:定式化 (2) 最小化 Σi=1,…,n Σj=1,…,n cij × xij 制約条件  (Σj=1,…,m xji )-(Σ j=1,…,m xij) = bi           0 ≦ xij ≦ uij • この問題も線形計画問題 • 輸送問題は、最小費用流問題の特殊ケース • 実は、最小費用流問題も、輸送問題の特殊ケースになっている

最小費用流問題の変形 • 最小費用流問題の各枝を、輸送問題の(1頂点+2枝)に変換 最小費用流 輸送問題 b'i = bi - uij bi   最小費用流             輸送問題 b'i = bi - uij bi bj cij, uij b'ij = uij vi vi vj vij cij vj b'j = bj • vi 、vj は、複数個作らない(共有する) この変形を、全ての枝について行う

両者は等価: この変形を、全ての枝について行えばよい 最小費用流問題の変形 (2) • vi から vj に y 流れる     bi が bi - y に減り、 bj が bj + y に増える。コストは cij y • vij から vi , vj に uij - y, y ずつ流れる    ※ 0 ≦ y ≦ uij b'i = bi - uij bi-y bj+y y b'ij = uij uij-y vi vij vi vj vj y b'j = bj 両者は等価:  この変形を、全ての枝について行えばよい

最小費用流問題の解法 • 輸送問題は、 「単体法(シンプレックス法)で解くと、必ず整数解が出てくる」 • 最小費用流問題 は 輸送問題の特殊ケース  最小費用流問題も 「単体法(シンプレックス法)で解くと、必ず整数解が出てくる」 シンプレックス法以外にも、いくつかのアルゴリズムがある • 最短路増加法 • 負閉路除去法 • コストスケーリング法・容量スケーリング法   ...

流量に下限がある場合 bi bj bi - lij bj+ lij lij ≦xij ≦ uij 0≦xij ≦ uij - lij vi • あらかじめ vij に lij だけ流している、と考えればよい

工場・小売店は1つでも良い • 工場がたくさん、小売店もたくさんある問題でも、 工場・小売店がひとつしかない問題に変換できる。 b4 b1

工場・小売店は1つでも良い (2) • スーパー工場、スーパー小売店を作り、そこですべて生産・販売 • スーパー工場⇒工場、小売店⇒スーパー小売店の枝の上限を、もとの生産量にする      必ずその分だけ流れる uit = lit = bi s t usi = lsi = bi b1+b2+b3 b4+b5+b6+b7

最低生産量・販売量 • s から工場への枝の下限・上限をいじると、各工場の最低・最高生産量が設定できる • 同じようにして、各小売店の最低販売量・最大販売量が設定できる lit ≦xit ≦ uit lsi ≦xsi ≦ usi s t

最小費用流問題の特殊ケース • 最短路問題 ネットワークの各枝にコスト cij が与えられているとき、 頂点 s から頂点 t へのルートの中で、最小コストのものを見つける問題 ※ uij = 1 、 bs = 1, bt = -1、他の頂点 vi に対しては bi = 0 とした最小費用流問題と等価 • ダイクストラ法などのアルゴリズムを使えば、かなり高速に最適解が見つかる

最小費用流問題の特殊ケース (2) • 最大流問題 ネットワークの各枝に輸送量の上限 uij が与えられているとき、 頂点 s から頂点 t へ流せる最大流量を求める s t プリフロープッシュ法・極大流追加法でO(n4) 時間で最適解が求まる

最大流問題の変形 • すべての枝のコストを 0 、 b=0 として、 以下の新しい枝を1つ付け加えればよい (なるべくたくさん流すのが、最適解になる。) s t コスト -1,  容量無限大

部品組立てネットワーク (1) • いくつかの工場でできているネットワークを考える 各工場では、何種類かの部品を使ってある1種類の製品を作り、それを出荷しているとする s t

部品組立てネットワーク (2) • 各工場では、一種類の製品しか作らない • 各工場の生産量は、上限・下限がある • 枝には運送コストが設定されている s t どの工場でどれだけ品物を作り、どの工場からどの工場へ どれくらい製品を運べばコストが最小になるだろうか

組立て計画:変数と入力 • 製品 1,…,n • 製品 p を作る工場 vp1 , vp2 ,…, vpn • 製品工場 vpi での生産コストfpi • 各工場 vpi の生産量の上限・下限 lpi,upi • 頂点 vpi から頂点 vqj への輸送コスト: cpiqj • 頂点 vpi から頂点 vqj への輸送量上下限: lpiqj,upiqj • 製品 p を作るために必要な部品 1,…,n の数 qp1 , qp2 ,…, qpn 以下変数: • 工場 vpi の生産量を ypi とする • 工場 vpi から工場 vrj への輸送量を xpirj とする

部品組立て計画:制約条件 • 生産量の上限・下限の制約: lpi ≦ ypi ≦ upi • 輸送量上下限の制約: lpiqj ≦ xpiqj ≦ upiqj • 生産量と部品のつじつま:  qpr ypi = Σj xrjpi • 生産量と出荷量のつじつま:  ypi = Σr,j xpirj 目的関数: • 工場 vpi での生産コスト =  fpi ypi • 工場 vpi から工場 vqj への輸送コスト  = cpiqj xpiqj     Σ fpi ypi + Σ cpiqj xpiqj 線形計画になる

組立て計画:制約条件 • 組立て計画は線形計画になる しかし、輸送問題とは異なり、最適解に小数が含まれることもある • 通常、この手の問題は規模が大きい • しょせん、製品ロスがある などの理由から、実用上は、適当に丸めてしまっても 問題にならない

生産計画 • 組立て計画で、ある期間の最適生産計画を作る問題.こんどは、それぞれの枝を使って運ぶのにどれくらい時間がかかるか、という要素も考えに入れる s t

各週、小売店に必要量の品物が届くような、 生産計画 • 小売店、または t での、今後の需要予測が与えられているとする。(どの週にどれくらい売れそうか) • 運送コスト、生産コスト、生産量上下限なども、時期によって異なるとする(世界規模で工場を持つメーカーなどの問題) s t 各週、小売店に必要量の品物が届くような、 最小コストの輸送・生産プランを作りたい

生産計画:変数と入力 時刻 T での: • 製品工場 vpi での生産コスト: fTpi • 各工場 vpi の生産量の上限・下限: lTpi, uTpi • 頂点 vpi から頂点 vqj への輸送コスト: cTpiqj • 頂点 vpi から頂点 vqj への輸送時間: dTpiqj • 頂点 vpi から頂点 vqj への輸送量上下限: lTpiqj,uTpiqj 以下変数: • 工場 vpi の生産量を yTpi とする • 工場 vpi から工場 vqj への輸送量を xTpiqj とする ※ あとは組立て計画と同じ

生産計画:制約条件 時刻 T での: • 生産量の上限・下限の制約: lTpi ≦ yTpi ≦ uTpi • 輸送量上下限の制約: lTpiqj ≦ xTpiqj ≦ uTpiqj • 生産量と部品のつじつま:  qpr yTpi = Σj xT-drjpirjpi • 生産量と出荷量のつじつま:  yTpi = Σr,j xTpirj 目的関数: • 工場 vpi での生産コスト =  fTpi yTpi • 工場 vpi から工場 vqj への輸送コスト =  cTpiqj xTpiqj     Σ fTpi yTpi + Σ cTpiqj xTpiqj 線形計画になる

生産計画:バリエーション これも線形計画になる • 時刻 T での工場 vpi の生産に、時間 hTpi が必要なとき   生産量と出荷量のつじつま:  yTpi = Σr,j xTpirj を  yTpi = Σr,j xT+ hTpi pirj とする • 工場 i から工場 j への品物の運搬時間が変化する dTpirj 場合:   生産量と部品のつじつま:  qpr yTpi = Σr,j xT-drjpirjpi を  qpr yTpi = Σr,j xT- dtpirj rjpi とする • 製品を出荷まで倉庫に保持できる場合: ※ 時刻 T での工場 vpi の保管コストを gTpi とする 時刻Tの保管量 = (時刻Tまでの生産量 )-(時刻T までの出荷量)  保管コスト = gTpi × (Σ1≦w≦T ywpi - Σ1≦w≦TΣ1≦j≦n xwpirj ) これも線形計画になる

生産計画:問題の大きさ • 生産計画はとても大きな問題になる 例)工場30、期間50週とすると、変数の数は およそ 50×30×30 = 45000 商用ソフトでも、ぎりぎり1時間で解けるくらい ※ 不要な変数を消去したり、不要な制約をなくしたりして、    問題を簡単にして解く

まとめ • 輸送問題の紹介と線形計画での定式化 • 最小費用流問題の紹介、輸送問題と等価であること • 最小費用流問題のバリエーション、変形 • 部品組立て計画の紹介と定式化 • 生産計画の紹介と定式化 • 商用ソフトでの生産計画求解時間