14
データ構造と アルゴリズム第14知能情報学メジャー 和⽥俊和

データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

データ構造とアルゴリズム第14回

知能情報学メジャー和⽥俊和

Page 2: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6アルゴリズムの設計⼿法6.1分割統治法6.2グリーディ法6.3動的計画法6.4分枝限定法

Page 3: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.1 分割統治法•⼤きな問題を幾つかの⼩さな問題に分割して解き,最後にそれらの結果を統合して,元の問題の解を得るという⽅法.divideandconquerとも⾔う.•クイックソートやマージソートがその例である

Page 4: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.1.1 分割統治法の時間計算量• ⼤きさ𝑛の問題の時間計算量を𝑓(𝑛)とする.• この問題を⼤きさ𝑛/𝑚の𝑐個の問題に分けて解く.このとき,次式が成り⽴つ.

𝑓 𝑛 = 𝑐𝑓𝑛𝑚 + 𝑔 𝑛 ,

ただし,𝑔(𝑛)は問題の分割・統合に要する計算量.𝑛 = 𝑚,と仮定すると,𝑓 𝑛 = 𝑐-𝑓

𝑛𝑚- + 𝑐𝑔

𝑛𝑚 + 𝑔 𝑛

= 𝑐,𝑓𝑛𝑚, +.𝑐/𝑔

𝑛𝑚/

,01

/23

= 𝑐,𝑓 1 +.𝑐/𝑔𝑛𝑚/

,01

/23𝑓(1) = 𝑎,𝑘 = log: 𝑛,𝑔(𝑛) = 𝑏𝑛と仮定して

𝑓(𝑛) = 𝑎𝑛<=>? @ + 𝑏𝑛 .𝑐𝑚

/<=>? A01

/23

マージソートやクイックソートでは𝑐 = 2,𝑚 = 2で, 𝑓(𝑛) = 𝑎𝑛 + 𝑏𝑛 log- 𝑛

Page 5: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.1.22進数の積• 𝑋, 𝑌を𝑛桁の2進数とする.• 𝑋 = 𝑥A012A01 +⋯+ 𝑥323,𝑌 = 𝑦A012A01 +⋯+ 𝑦323

𝑋×𝑌 = ..𝑥/𝑦I2/JIA01

I23

A01

/23

, 𝑂(𝑛-)

• 𝑋 = 𝛼12A/- + 𝛼-,𝑌 = 𝛽12A/- + 𝛽-𝑋×𝑌 = 𝛼12A/- + 𝛼- × 𝛽12A/- + 𝛽-= 𝛼1𝛽12A + 𝛼1𝛽- + 𝛼-𝛽1 2A/- + 𝛼-𝛽-

= 𝛼1𝛽12A + 𝛼1 + 𝛼- 𝛽1 + 𝛽- − 𝛼1𝛽1 − 𝛼-𝛽- 2A/- + 𝛼-𝛽-• すなわち,𝛼1𝛽1,𝛼-𝛽-, 𝛼1 + 𝛼- 𝛽1 + 𝛽- のn/2桁の2進数同⼠の積3つとそれらの加減算,および2Aおよび2A/-との積があれば計算できる.• 結果的に𝑂 𝑛<=>P Q = 𝑂(𝑛1.ST)となる.

Page 6: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.1.2 2進数の積

Page 7: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2 グリーディー法• 貪欲法とも呼ばれる.• 100円,50円,10円硬貨で260円を⽀払う際に硬貨の枚数を最⼩化するには,最初できる限り100円硬貨を,次に出来るだけ50円硬貨を使い,残りを10円で⽀払う.こうすれば,硬貨の枚数は4枚で最⼩化される.これがグリーディー法である.• 80円,50円,10円の切⼿の場合は260円をこの⽅法で求めると80x3+10x2となり,合計5枚になる.ところが,実際には80x2+50x2で5枚は最⼩ではない事が分かる.• グリーディー法は,必ずしも最適解をもたらさない.

Page 8: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題•重み付きグラフの上の2点間を結ぶ経路のうちで経路上の重みの総和が最⼩になる経路を「最短路」と呼ぶ.•始点だけを決め,各頂点への最短路を求めるアルゴリズムがダイクストラのアルゴリズム

Edsger Wybe Dijkstra

Page 9: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題• 最初,全頂点は距離が確定していない集合𝑈に属している.• 始点𝑣Wと各頂点𝑣/間の距離を𝑑/とする. 𝑑W = 0,その他は𝑑/ =∞としておく.

① 𝑈の中から最短距離を持つ頂点𝑣[を選ぶ. 𝑣[までの距離は確定

① 𝑣[を𝑈から取り除く.② 𝑣[と1つの辺でつながっている頂点𝑣/について,𝑑/と𝑣[経由で𝑣/に達する距離を⽐べ,⼩さい⽅を新たな𝑑/の値とする.

Page 10: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題

Page 11: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題

Page 12: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

グラフの物理データ構造:隣接⾏列

Page 13: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題

Page 14: データ構造と アルゴリズム第14回vrl.sys.wakayama-u.ac.jp/~twada/DA/var/uploads/00002/DA14.pdf · 6.2 グリーディー法 •貪欲法とも呼ばれる. •100円,50円,10円硬貨で260円を⽀払う際に硬貨

6.2.2最短路問題•リスト6.2のダイクストラのアルゴリズムは,頂点数を𝑛としたとき𝑂(𝑛-)である.•グラフのデータ構造を⼯夫することによって,この時間計算量は𝑂(𝑚 log 𝑛)まで減らせることが知られている.但し,𝑚は辺の個数である.