Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)

149 views

Published on

PGX ユーザー勉強会 #10

Published in: Software
  • Login to see the comments

  • Be the first to like this

PGXユーザー勉強会#10_Built-in アルゴリズム(Shortest-Path, Fattest-Path)

  1. 1. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by PGX ユーザー勉強会 #10 LT Built-in アルゴリズム(Shortest-Path, Fattest-Path) 2018/10/25
  2. 2. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介 – 名前: 田上 悠樹 – 職業: ITエンジニア – 所属: ウルシステムズ株式会社 – 活動: ビジネスデータのグラフモデル化
  3. 3. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 PGX Built-in Algorithms – 30以上のグラフ分析用アルゴリズムを備えている Path分析, Centralities分析, Community分析 等がPGXに組み込まれており、利用可能 – Built-in アルゴリズム 一覧 [ https://docs.oracle.com/cd/E56133_01/2.7.0/reference/algorithms/index.html ] 本日は、 Dijkstra‘s Algorithm と Fattest-Path をご紹介  Cycle Detection Algorithms  Degree Centrality and variants  Degree Distribution and variants  Dijkstra's Algorithm and variants  Bidirectional Dijkstra's Algorithm (and variants)  Eccentricity Algorithms  Eigenvector Centrality  Fattest-Path  Filtered BFS  Hyperlink-Induced Topic Search  Infomap  K-Core  Label Propagation  Local Clustering Coefficient  Matrix Factorization (Gradient Descent)  PageRank and variants  Partition Conductance  Partition Modularity  Prim  Random Walk with Restart  Reachability  SALSA and variants  SSSP (Bellman Ford) and variants  SSSP (Hop Distance) and variants  Strongly Connected Components  Topological Ordering Algorithms  Triangle Counting  Vertex Betweenness Centrality and variants  Weakly Connected Components  Whom To Follow
  4. 4. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 Shortest-Path (Dijkstra's Algorithm) – Overview 2点間の最短経路を求めるアルゴリズム。言い換えると、『経路上に登場する”重み”の 和を最小にする経路』(Dijkstra法の場合、重みは非負が前提) – Signature (Java APIの場合)  Input Graph, 始点, 終点, ”重み”に対応する辺プロパティ。 “重み”に何を採用するかは問題の設定次第。 物理的距離、時間、値段、経由数 など。(非負が前提)  Return 始点- 終点間の Shortest-Path . 経路上のVertex と Edge が含まれた形で返却。  Example EdgeProperty<Double> weight = graph.getEdgeProperty("distance"); PgxPath<Integer> shortestPath = analyst.shortestPathDijkstra(graph, source, dest, weight); https://en.wikipedia.org/wiki/Widest_path_problem 一部 加筆
  5. 5. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 Fattest-Path – Overview 2点間の最大フロー経路を求めるアルゴリズム。言い換えると、『経路上に登場する 最小域を最大にする経路』とか、『経路のボトルネックを最小化する経路』とか。 – Signature (Java APIの場合)  Input Graph, 始点, ”容量”に対応する辺プロパティ。 “容量”に何を採用するかは問題の設定次第。 幅、帯域、など。  Return 始点 から全点間へのFattest-Path . 経路毎のVertex と Edge が含まれた形で返却。  Example EdgeProperty<Double> capacity = graph.getEdgeProperty("capacity"); AllPaths<Integer> fattestPaths = analyst.fattestPath(graph,start, capacity); https://en.wikipedia.org/wiki/Widest_path_problem 一部 加筆
  6. 6. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 Demo( Shortest-Path vs Fattest-Path ) – Vertex 0 → Vertex 2 への Shortest-Path と Fattest-Path 比較  Shortest-Path の”距離” はユークリッド距離。(見た目上の距離感と一致)  Fattest-Path の”容量”はランダムに割当。グラフの辺の幅(太い・細い)で表現。
  7. 7. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 まとめ – 本日は2つのBuilt-in アルゴリズムを紹介した  Shortest-Path ( Dijkstra's Algorithm )  最短経路: 経路上の重みの和を最小にする経路。  Fattest-Path  最大フロー経路: 経路上に登場する最小幅を最大にする経路。 あと、 Filtered Dijkstra Algorithm を使えば、 一定の容量以上(Filter 例: capacity ≧ X )での最短経路 を 求めるみたいな合わせ技もいけるかも。(試してないけどね。) 以上です.

×