Quantcast
Channel: ウィリアムのいたずらの、まちあるき、たべあるき
Viewing all articles
Browse latest Browse all 7271

分枝限定法とか、ネットワークフローとか

$
0
0
きのうの授業の続きをメモメモ



・分枝限定法
 整数混合問題とか、計算時間がかかる
 ナップザック問題を例に

分枝木(ブランチングツリー)
 X1,X2,X3,X4に0か1をとる
 2の4乗の枝→全部見れば、当然分かる
  制約式上、ないところがある
  ありえるところだけ、目的関数を当てはめる

・途中で制約式をみたさず、ありえないもの
  →書く必要ない(限定操作:バウンディング)
   上から書いていく:深さ優先対策

・実行可能解が見つかる
  最良が早めに見つかると、そのあとやらなくてよい
  限定

・整数計画問題と線形緩和
 整数計画問題Xの最適値 <= 線形緩和の最大値

・はじめに線形緩和問題を解いておく
 決まった情報を入れた緩和問題を解いておく

→限定操作で探索する領域を狭くする
 →そのために部分的な線形問題を解く

途中で何回もといている
 →途中の線形計画問題を早く解けるか
 →高々にきつい値がでる 数値の動く幅があまり違わない
うまい式で書くと、早く終わる

ソルバーでも式を加えている。
商用ソフトのほうが、だいぶ早い

分枝限定法のコメント
  カット
 同じ式なんだけど、うまいものと、そうでないものがある。


---------------

ネットワークフロー
・完全ユニモジュラー行列

 凸包とファセットと切断面
  ファセットをみつけるのはむずかしい
  ファセットに近い断面(カッティングプレーン)をみつけて、
  狭めていく
   →

・完全ユニモジュラー

 部分行列をとってくる。このとき正方行列なら、行列式がつくれる
  →小行列式
 任意の小行列式が、0,1、−1なのが、完全ユニモジュラー


完全ユニモジュラーだと整数多面体
→ファセットで解けるかんじ

<<割と使える定理>>
行の部分集合を、うまい分割によって、
R1,R2に分けて、どのれつ足して引いても、−1,0,1

接続行列
 ネットワークの多くは接続行列で、
 接続行列は、完全ユニモジュラー

ネットワークフロー:最小費用流問題
ノードの数字:湧き出し吸い込み
アーク:(費用、容量)

 専用の解放
  ネットワークフロー
  ネットワーク単体法
枝容量が整数なら、整数最適解が存在する

整数計画問題:分枝限定法以上、うまい方法があるかどうか未解決

航空スケジュール

ヒッチコック型輸送問題
供給拠点 使いたい拠点
 →最小費用流でとく(細工必要)



ネットワーク設計問題

・シュタイナー木
・サバイバルネットワーク設計

(ユークリッド版)シュタイナー木
  3点を結ぶ→120度の分岐点を作る
  点の数が多くなるとむずかしい。

(グラフ上の)シュタイナー木問題
  グラフがある
  ターミナル集合
  重み

  全ターミナルを接続する
  重み最小

賞金獲得型シュタイナー木問題
最小全域木問題:ミニマムスパニングツリー
  →貪欲アルゴリズム

サバイバルネットワーク設計問題
  ノード
  名前
  接続要求量
   →枝を共有しないパスが存在
    これが1だと、シュタイナーツリー

とき方
 ある点から、他の点に何かを流す

多品種流問題
→線形計画問題として記述でき、解けるが
 線形計画以外のうまい方法が、いまだ見つかっていない
 パイプを設定したら、流すことができる
  それぞれの品種で容量1
  始点終点は、適当な量




Viewing all articles
Browse latest Browse all 7271

Trending Articles