問題案 : 稲葉 解答:秋葉、稲葉.  「 + 」の辺を通ると所持金が 1 円増える  「 - 」の辺を通ると 1 円減る (文無しは通れ ない)  始点を0円で出て終点に0円で着く最短路 は?  |V| ≦ 250 = - + + + - - - - 4 1 2 3 4 3 2 1 5 7.

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

I : 首都 原案 : 岸本 解法の提示 : 森田 正当性の証明 : 岸本 テスター : 岸本, 森田 解説 : 岸本.
有限幾何学 第 2 回. 有限幾何学 第 2 回 1. 様々なグラフの例 2. 道と最短経路問題 1. 用語の説明 2. 最短経路問題 3. ダイキストラのアルゴリズム.
G 問題 コードアート オンライン 原案:西出 ライタ:伊藤 テスタ:西出. 問題概要 0 大きさのさまざまな n 個の円に多角形 m 個を入れら れるか判定する問題 0 ただし、同じ円に複数の多角形を入れることはでき ない 0 もし、入れられる場合は、辞書順最小の入れ方を出 力 ① ② ③ ① ②.
ACM/ICPC と アルゴリズム 「実践的プログラミング」 稲葉 一浩. 自己紹介 ﻪ 理Ⅰ → 理学部情報科学科 → 情報理工学系研究科コンピュータ科学専攻 ﻩ 博士課程1年 ﻩXML を扱う専用言語の研究など ﻪ 個人的には ﻩ ﻯD.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
論理回路 第 11 回
1 通信教育学部 コンピュータ演習 Excel の書式設定と関数 授業ページ「コンピュータ演習(通信教育学 部)」を 開いてください。提出課題の一覧が掲載されてい ます。
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
© ATSUTO NISHIO パイプライン(pip e line) 1つのセンターと幾つかのポイントがあり、 そのポイント間を結ぶ経路があるとき、 総距離を最小にするような経路を探す問題。 たとえば、 水道管・ガス管の配管、電線の設置 道路の舗装化、高速道路の計画、 新幹線の経路 など.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
アルゴリズムとデータ構造 2011年7月7日
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
  スケジュール管理手法PERT-Time      解 説    “最早開始時間計算のアルゴリズム”
Problem H: Queen’s case
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
プログラミング演習(1組) 第7回
コンピュータ囲碁の仕組み ~ 将棋との違い ~
A: Attack the Moles 原案:高橋 / 解説:保坂.
Problem D: Double Sorting 原案: oxy, 解答作成: oxy, nya.
最短路問題に対する新しいアルゴリズム 階層メッシュ疎化法 (Level-wise Mesh Sparsification: LMS)
3 一次関数 1章 一次関数とグラフ §3 一次関数の式を求めること          (3時間).
使ってみよう 駅の自動券売機 えき  じどう  けんばいき.
第6章 2重ループ&配列 2重ループと配列をやります.
模擬国内予選2014 Problem C 壊れた暗号生成器
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
正規性の検定 ● χ2分布を用いる適合度検定 ●コルモゴロフ‐スミノルフ検定
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析
非線形方程式の近似解 (2分法,はさみうち法,Newton-Raphson法)
最短路問題のための LMS(Levelwise Mesh Sparsification)
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 2012年7月12日
生命情報学入門 配列のつなぎ合わせと再編成
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
アルゴリズムとデータ構造 2013年7月16日
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
アルゴリズムイントロダクション 第24章 単一始点最短路問題
離散数学 08. グラフの探索 五島.
前回の練習問題.
Problem I: Aaron と Bruce
最短路を ものすごくはやく 答える方法.
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
アルゴリズムとデータ構造 2012年7月17日
モバイルエージェントネットワークの拡張とシミュレーション
First Course in Combinatorial Optimization
「入力」はInputBoxやテキストボックスに限らず、 セルからのデータの入力や、チェックボックス等からの入力全てを含める。
第2回課題 配布した通り.氏名・学生番号を忘れないこと.
算法数理工学 第8回 定兼 邦彦.
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
形式言語とオートマトン 中間試験解答例 2016年11月15実施 中島毅.
算法数理工学 第7回 定兼 邦彦.
情報知能学科「アルゴリズムとデータ構造」
D: 壊れかけのヒープ 問題案: 稲葉.
Problem L: シャノワール 問題作成: 高橋 解法作成: 安達・高橋・前原 解説: 安達.
離散数学 06. グラフ 序論 五島.
アルゴリズムとデータ構造 2011年7月11日
This slide was a material for the “Reading PLDI Papers (PLDIr)” study group written by Kazuhiro Inaba ( ), under my own understanding of.
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
2008年6月5日 非線形方程式の近似解 2分法,はさみうち法,Newton-Raphson法)
発表者: 稲葉 一浩 複雑ネットワーク・地図グラフ セミナー 2017/1/19
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
ループだよ! 第7章 for(ループ応用);.
計算の理論 I ー ε-動作を含むNFA ー 月曜3校時 大月 美佳.
3.1 シューティングゲームの当たり判定 当たったら死亡.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
知能情報工学演習I 第10回( C言語第4回) 課題の回答
Presentation transcript:

問題案 : 稲葉 解答:秋葉、稲葉

 「 + 」の辺を通ると所持金が 1 円増える  「 - 」の辺を通ると 1 円減る (文無しは通れ ない)  始点を0円で出て終点に0円で着く最短路 は?  |V| ≦ 250 =

= 周して 13=1+3*4 (= 3 mod 5) 円 稼ぐ 2 周して 13=3+5*2 円使う

 「所持金 × 頂点」 の拡大グラフで Dijkstra  サンプルのように |V| 2 オーダの所持金は必要  実はそれより多くは要らない [ 超略証 ] たくさん稼ぐ間にもたくさん使う間にも同じ頂 点を何度も通るので、そういうサイクルをうまく相殺し て消せる ・・・・・・ 0円0円 十分大きい M 円 M-1 円 M-2 円 頂点 X ・・・・・・ M-1 円 0円0円 頂点 Y

 具体的な所持金額ではなく、 始点から終点までの増減に着目 ¥ 0, 頂点 0 ¥ 0, 頂点 N-1 0 円から 0 円までの最短路とは … (※ 図は所持金増減チャー ト)

¥ 0, 頂点 0 ¥ 0, 頂点 N-1 0 円から 0 円までの最短路とは … 途中でどこかを 0 円で経由する最短路 ¥ 0, 頂点 N-1 ¥ 0, 頂点 0 ¥ 0, 頂点 X または …

¥ 0, 頂点 0 ¥ 0, 頂点 N-1 0 円から 0 円までの最短路とは … 途中でどこかを 0 円で経由する最短路 ¥ 0, 頂点 N-1 ¥ 0, 頂点 0 ¥ 0, 頂点 X または、すぐ 1 円になって最後に 0 円に戻る ¥ 0, 頂点 0 ¥ 0, 頂点 N-1 ¥ 1, 頂点 X

D 0 [a][b] := a から b までの 0 円 → 0 円最短路 = min min_c { D 0 [a][c] + D 0 [c][b] }, min_c { L[a][c] + D 1 [c][b] | G[a][c]=‘+’} ) ¥1¥1 D 1 = この赤い部分 (後述)

D 1 [a][b] := a から b までの 1 円 → 0 円最短路 = min_c { D 0 [a][c] + L[c][b] | G[c][b]=‘-’} ) ¥1¥1 D 1 = この赤い部分 ¥1¥1 ¥1¥1 途中で 0 円に 落ちない 1 円 → 1 円 最短路 == 0 円 → 0 円 最短路!

 というわけで  D 0 [][] := 0 円 → 0 円の全点間最短路  D 1 [][] := 1 円 → 0 円の全点間最短路 の表を適宜埋めていけば D 0 [0][N-1] が求ま る ただし …

 というわけで  D 0 [][] := 0 円 → 0 円の全点間最短路  D 1 [][] := 1 円 → 0 円の全点間最短路 の表を適宜埋めていけば D 0 [0][N-1] が求ま る for (c) for (a) for (b) { D0[a][b] = min( ?[a][c] + ?[c][b] ) D1[a][b] = min( ?[a][c] + ?[c][b] ) } Warshall-Floyd 的な 単純な3重ループは 間違い!!!

for (c) for (a) for (b) { D0[a][b] = min( ?[a][c] + ?[c][b] ) D1[a][b] = min( ?[a][c] + ?[c][b] ) } Warshall-Floyd 的な 単純な3重ループは 間違い!!!  普通の W-F は最大 index で最短路を2つに切れば (すでに前のループで求まってる)最短路  今回は所持金が 0 か 1 のところでしか 切れないので、そこが最大 index の頂点とは限ら ない

for (c) for (a) for (b) { D0[a][b] = min( ?[a][c] + ?[c][b] ) D1[a][b] = min( ?[a][c] + ?[c][b] ) } Warshall-Floyd 的な 単純な3重ループは 間違い!!! for ((dist,type,a,b) ∈ PriorityQueue) for (c) D[type][a][b] が埋まったので、 その前後の D[a][c] と D[c][b] を埋めてみ る 正解 : PriorityQueue を使って、 短いマスから順に埋める

 頂点 0 から 頂点 N-1 の 0→0 円単一始点終点最短路のために 0→0 円と 1→0 円の全頂点間最短路を求める  全頂点間最短路なのに Priority Queue  Keyword: “CFL Reachability”  この問題の到達可能性判定バージョンは、 「関数を呼ぶ」を「 + 」、「 return 」を「 - 」 と して、 プログラムの特定部分の影響がどこまで及ぶかの 解析として、コンパイラなどで使われています