アルゴリズムとライブラリ eX(ry.

Slides:



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

平面三角分割グラフを列挙す るアルゴリズムの改良 中野 眞一 ( 群馬大学 ) 宇野 毅明 ( 情報学研究 所 ) 2002 年 6 月 24 日 コンピューテーション研究会.
情報基盤アルゴリズムとして のメタヒューリスティクスの 研究 茨木俊秀、巳波弘佳、藤原洋志、 千葉英史、関口良行(関西学院大 学)、 藤重悟(京都大学)、 柳浦睦憲(名古屋大学)、 野々部宏司(法政大学)、 梅谷俊治(電気通信大学)
ACM/ICPC と アルゴリズム 「実践的プログラミング」 稲葉 一浩. 自己紹介 ﻪ 理Ⅰ → 理学部情報科学科 → 情報理工学系研究科コンピュータ科学専攻 ﻩ 博士課程1年 ﻩXML を扱う専用言語の研究など ﻪ 個人的には ﻩ ﻯD.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
制約付き最短路問題に対する実験的解析 上智大学 宮本裕一郎 o 1 d (7, 15) (9,4) (12,4)
アルゴリズムとデータ構造 2011年7月7日
コンピュータビジョン特論B - Graph Cuts - 永橋知行.
凸関数じゃないですか (最大値/最小値を求める問題) 目的関数を固定する (最大値/最小値を最小/最大化する問題)
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
情報生命科学特別講義III (1) 文字列マッチング
Bipartite Permutation Graphの ランダム生成と列挙
極小集合被覆を列挙する 実用的高速アルゴリズム
ラベル付き区間グラフを列挙するBDDとその応用
第11回 整列 ~ シェルソート,クイックソート ~
A: Attack the Moles 原案:高橋 / 解説:保坂.
第11回 整列 ~ バケットソート,基数ソート,ヒープソート~
Problem A: Radix 3.
Intelligent Circular Perfect Cleaner(ICPC)
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
An Algorithm for Enumerating Maximal Matchings of a Graph
組合せ最適化 輪講 第1回 ERATO研究員 川原 純.
Approximation of k-Set Cover by Semi-Local Optimization
AllReduce アルゴリズムによる QR 分解の精度について
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2011年6月13日
データ構造とアルゴリズム 分割統治 ~ マージソート~.
ACM/ICPC World Finals への道
データ構造と アルゴリズム 知能情報学部 新田直也.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
(b) 定常状態の近似 ◎ 反応機構が2ステップを越える ⇒ 数学的な複雑さが相当程度 ◎ 多数のステップを含む反応機構
計算量理論輪講 岩間研究室 照山順一.
Yuri Y. Boykov Marie-Pierre Jolly
第11回 整列 ~ シェルソート,クイックソート ~
型付きアセンブリ言語を用いた安全なカーネル拡張
k 個のミスマッチを許した点集合マッチング・アルゴリズム
MPIを用いた並列処理 ~GAによるTSPの解法~
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク上での社会的効用と個人的効用の対立問題に対するアルゴリズム的研究
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
問題:The hik Revolutions 解説:田村(sune2)
b f c a d e g h a b c d e f g 図1 図2 2012年度 有限幾何学 期末試験
First Course in Combinatorial Optimization
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
プログラミング 4 整列アルゴリズム.
知識科学研究科 知識システム構築論講座 林研究室 佛明 智
需要点,供給点,辺容量を持つ木の分割アルゴリズム
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
B03 量子論理回路の 最適化に関する研究 西野哲朗,垂井淳,太田和夫,國廣昇 電気通信大学 情報通信工学科.
地理情報システム論(総)/ 国民経済計算論(商)
第16章 動的計画法 アルゴリズムイントロダクション.
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
離散数学 06. グラフ 序論 五島.
アルゴリズムとデータ構造 2012年6月11日
``Exponentiated Gradient Algorithms for Log-Linear Structured Prediction’’ A.Globerson, T.Y.Koo, X.Carreras, M.Collins を読んで 渡辺一帆(東大・新領域)
地理情報システム論 第4回 コンピュータシステムおける データ表現(2)
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
d b c e a f 年度 有限幾何学 中間試験 問1 次の用語の定義をそれぞれ述べよ.
2017年度 有限幾何学 期末試験 注意:ループと多重辺がないグラフのみを扱う. 問1 次の定理と,その証明の概略を読み,各問に答えよ.
離散数学 11. その他のアルゴリズム 五島.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

アルゴリズムとライブラリ eX(ry

グラフ とりあえず定番 この辺は質問ないでしょ? Dijkstra, Warshall-Floyd, Bellman-Ford Prim, Kruskal Union-Find 安定結婚マッチ 二重連結成分, 強連結, Topological sort この辺は質問ないでしょ?

グラフ-フロー フローについては綿密に調べ上げました 結論:通常のフロー問題ではFord-Fulkersonで十分 結果的にこれが仇となったわけですがorz 結論:通常のフロー問題ではFord-Fulkersonで十分 Maxflow (Ford-Fulkerson) Bipartite match (Ford-Fulkerson) Min-cost flow (Ford-Fulkerson)

フローのアルゴリズム達 Ford-Fulkerson系 Goldberg-Tarjan系 増加可能パスを探し、その方向にフローを増やす 実装が直感的、コードも短い 実用上は悪い(フローの幅によっては終了しない) Goldberg-Tarjan系 とにかく始点から流して、後で余った分は戻す コードは中程度のサイズ 実用上高速

選択とその理由 我々はすべてFord-Fulkerson法で統一しました。 理由:「本番で修正しやすい」 ICPCではアルゴリズムを修正して適用することが多いので、これが必要

フローの幅? 幅が無理数の場合にどうするのか? Ford-Fulkersonは終了しない 整数ならO(VE2)だが… 解決法: Ahuja-Orlin’s algorithm 216のフローが流せるか、215のフローが流せるか、…を順にチェック O(E2 logU)になる

実装 4回ほど書き直してrefineしています 150行 → 70行 → 50行 → 40行未満 一番大きかったのは会長ライブラリの衝撃

最小費用フロー Dijkstraを使うもの(PrimalDual法)で実装 ここでBellmanFordにしてれば…orz 結果的に修正されたので、後でライブラリを公開します O(V3U log V)

リサーチの結果 通常の最大流ではGoldberg-Tarjanが理論最速。実装もそれほど長くない 強多項式時間、メモリ使用も僅少 ICPC過去問では基本的にFord-Fulkersonですべて通る UVA 820 (Finals 2000) はFord-Fulkersonの方が速い ただし、G-Tならジャッジの意図していない解法で通すことができる可能性がある

リサーチの結果 最小費用流については最適なアルゴリズムといえるものがまだ存在しない どうしてもU(フロー幅)またはC(コスト)に依存 擬多項式のものは比較的簡単に実装できる Goldberg-Tarjan O(V3 log(VC)) 高速且つ比較的使いやすい Orlin O(V3 log(UV)) アルゴリズムは単純だが問題を標準型に変換するのが大変 強多項式のものは事実上実装不可能 負サイクルキャンセル(プライマル法)は遅い

その他グラフライブラリ いろいろ調べて(時には実装して)不要だと結論づけたもの Min-cut algorithm (Karger’s) Graph isomorphism Tree isomorphism K shortest path problem Euler回路(Hierholzer’s) 集合カバー近似アルゴリズム

数理 Gaussの消去法 中国剰余定理と拡張互除法

線形計画は? 結論としては「combat’s heuristicsで十分」 不安があったとしても非線形最適化の方があらゆる点で優秀 タブロー法は低速且つ非効率すぎる 不安があったとしても非線形最適化の方があらゆる点で優秀 共役勾配法があれば最高だが、最急降下法で十分な気がする。 反復法は丸め誤差に強い 数理系は反復アルゴリズムにした方がいろいろと安定しているのではないか?

幾何 凸包 正直かなり自信があります 交差判定 多角形ポリゴンのクリッピングと拡大縮小

幾何 線分アレンジメント 線分による線分の分解 Interval tree 実装できてしまった

不要だったもの 台形分割 ドロネー(Delaunay)三角形分割 立体幾何 かなり厳しい。コード長が200行ぐらいになる その割に使いどころが「日本地区大会幾何最終防衛問題を力業で突破」ぐらい ドロネー(Delaunay)三角形分割 これも長い割に使いどころがない 立体幾何 まずもって何かしらアルゴリズムを用意することそのものが無意味

幾何 全体的に幾何の需要は下がっている? 正直、まともな問題を作っているのは日本の地区大会だけではないだろうか?

文字列 KMP あの日の過ちを教訓に 再帰降下パーザ ほとんどはLL(1)で充分。LL(∞)は不要? Split, join, etc

Suffix Array 結局M&Mを実装 実体はNirm○dからのパクリ Radix sortを使わないとやはり遅かった

その他 Aho-Corasick 検証が間に合わずライブラリには入らなかった BM ICPCでは不要なので捨てた

その他 範囲更新, LIS, date2days, etc. 今後GCC4が使えると、SGIの非標準ライブラリが使える