Suche senden
Hochladen
ドロネー三角形分割
•
22 gefällt mir
•
38,334 views
Yusuke Matsushita
Folgen
ドロネー三角形分割のゆるふわな説明
Weniger lesen
Mehr lesen
Melden
Teilen
Melden
Teilen
1 von 32
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
Yasunori Ozaki
最適化超入門
最適化超入門
Takami Sato
直交領域探索
直交領域探索
okuraofvegetable
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
narumikanno0918
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
Empfohlen
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
POMDP下での強化学習の基礎と応用
POMDP下での強化学習の基礎と応用
Yasunori Ozaki
最適化超入門
最適化超入門
Takami Sato
直交領域探索
直交領域探索
okuraofvegetable
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
narumikanno0918
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
gree_tech
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
Kota Matsui
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
Takuya Akiba
【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII
深層生成モデルと世界モデル
深層生成モデルと世界モデル
Masahiro Suzuki
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
Ken'ichi Matsui
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
Shinnosuke Takamichi
モデル高速化百選
モデル高速化百選
Yusuke Uchida
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
Motoya Wakiyama
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
基礎線形代数講座
基礎線形代数講座
SEGADevTech
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
3次元の凸包を求める
3次元の凸包を求める
abc3141
Cc dx lib72-p
Cc dx lib72-p
CHY72
Weitere ähnliche Inhalte
Was ist angesagt?
【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII
深層生成モデルと世界モデル
深層生成モデルと世界モデル
Masahiro Suzuki
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
Ken'ichi Matsui
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
RyuichiKanoh
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
Shinnosuke Takamichi
モデル高速化百選
モデル高速化百選
Yusuke Uchida
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
Motoya Wakiyama
動的計画法を極める!
動的計画法を極める!
HCPC: 北海道大学競技プログラミングサークル
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
Takuya Akiba
基礎線形代数講座
基礎線形代数講座
SEGADevTech
研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
Was ist angesagt?
(20)
【解説】 一般逆行列
【解説】 一般逆行列
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
明日使えないすごいビット演算
明日使えないすごいビット演算
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
深層生成モデルと世界モデル
深層生成モデルと世界モデル
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法
最適輸送の解き方
最適輸送の解き方
全力解説!Transformer
全力解説!Transformer
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
指数時間アルゴリズム入門
指数時間アルゴリズム入門
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
モデル高速化百選
モデル高速化百選
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
動的計画法を極める!
動的計画法を極める!
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
基礎線形代数講座
基礎線形代数講座
研究効率化Tips Ver.2
研究効率化Tips Ver.2
Andere mochten auch
3次元の凸包を求める
3次元の凸包を求める
abc3141
Cc dx lib72-p
Cc dx lib72-p
CHY72
分割木
分割木
Kohji Liu
Pleasant Valley Factory Tour
Pleasant Valley Factory Tour
Riverview Homes, Inc.
Maxcut - Mesa de Corte
Maxcut - Mesa de Corte
Emaser
Cammelli AlmaLaurea25agosto2014
Cammelli AlmaLaurea25agosto2014
Giuseppe De Nicolao
DuroMax XP10000E Generator Owners Manual
DuroMax XP10000E Generator Owners Manual
DuroMax
Salida Hermandad del Rocío (Lucena del Puerto)
Salida Hermandad del Rocío (Lucena del Puerto)
jeromof
全域木いろいろ
全域木いろいろ
HCPC: 北海道大学競技プログラミングサークル
joi2012-sp-day2-broadcasting
joi2012-sp-day2-broadcasting
Masaki Hara
abc031
abc031
AtCoder Inc.
Phys.org mobile social ...revive extinct language
Phys.org mobile social ...revive extinct language
Lisa Schmidt
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
Atsushi Tadokoro
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
AtCoder Inc.
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
Yuya Unno
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!
Yamato Honda
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
Takayoshi Yamashita
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Atsushi Tadokoro
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
Hiroshi Shimizu
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
AtCoder Inc.
Andere mochten auch
(20)
3次元の凸包を求める
3次元の凸包を求める
Cc dx lib72-p
Cc dx lib72-p
分割木
分割木
Pleasant Valley Factory Tour
Pleasant Valley Factory Tour
Maxcut - Mesa de Corte
Maxcut - Mesa de Corte
Cammelli AlmaLaurea25agosto2014
Cammelli AlmaLaurea25agosto2014
DuroMax XP10000E Generator Owners Manual
DuroMax XP10000E Generator Owners Manual
Salida Hermandad del Rocío (Lucena del Puerto)
Salida Hermandad del Rocío (Lucena del Puerto)
全域木いろいろ
全域木いろいろ
joi2012-sp-day2-broadcasting
joi2012-sp-day2-broadcasting
abc031
abc031
Phys.org mobile social ...revive extinct language
Phys.org mobile social ...revive extinct language
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
openFrameworks 動きを生みだす様々なアルゴリズム - 多摩美メディアアートII
AtCoder Beginner Contest 013 解説
AtCoder Beginner Contest 013 解説
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
エクセルで統計分析 統計プログラムHADについて
エクセルで統計分析 統計プログラムHADについて
AtCoder Beginner Contest 023 解説
AtCoder Beginner Contest 023 解説
Mehr von Yusuke Matsushita
NPC April Fool's Contest 2014 累乗数
NPC April Fool's Contest 2014 累乗数
Yusuke Matsushita
Haskell Lecture 2
Haskell Lecture 2
Yusuke Matsushita
Haskell Lecture 1
Haskell Lecture 1
Yusuke Matsushita
関数型プログラミングのすゝめ
関数型プログラミングのすゝめ
Yusuke Matsushita
型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ
Yusuke Matsushita
C#への招待
C#への招待
Yusuke Matsushita
Modeling Concurrent Computing
Modeling Concurrent Computing
Yusuke Matsushita
Programmers, be a Wikipedian
Programmers, be a Wikipedian
Yusuke Matsushita
OpenMPI入門
OpenMPI入門
Yusuke Matsushita
確率解析計算
確率解析計算
Yusuke Matsushita
プログラミング・パラダイム
プログラミング・パラダイム
Yusuke Matsushita
Mehr von Yusuke Matsushita
(11)
NPC April Fool's Contest 2014 累乗数
NPC April Fool's Contest 2014 累乗数
Haskell Lecture 2
Haskell Lecture 2
Haskell Lecture 1
Haskell Lecture 1
関数型プログラミングのすゝめ
関数型プログラミングのすゝめ
型理論 なんて自分には関係ないと思っているあなたへ
型理論 なんて自分には関係ないと思っているあなたへ
C#への招待
C#への招待
Modeling Concurrent Computing
Modeling Concurrent Computing
Programmers, be a Wikipedian
Programmers, be a Wikipedian
OpenMPI入門
OpenMPI入門
確率解析計算
確率解析計算
プログラミング・パラダイム
プログラミング・パラダイム
ドロネー三角形分割
1.
ドロネー三角形分割 shiatsumat 松下祐介
2.
自己紹介 • Haskell共和国の住人 • 競技プログラミングエンジョイ勢
3.
本の紹介 • 『コンピュータ・ジオメトリ』 • 計算機科学の一分野の計算幾何学の本 •
著者4人のうち3人がMark
4.
今日の予定 • ドロネー三角形分割についてゆるふわに 話します
5.
三角形分割 • 平面上の点の集合Pについて、いくつかの 点の対も辺で結ばれていて、どの辺も交 差していなくて、どの辺で結ばれていな い2点を辺で結んでも、辺が交差してしま うような、平面の分割(辺の取り方)を 三角形分割という。 • これが三角形分割です→実演
6.
三角形分割 • どの面も三角形である。 (∵多角形は三角形に分割できる) • 外側はPの凸包である。 •
Pがn点を含み、Pの凸包の境界上にk点が あるとき、Pのどの三角形分割も、2n-2-k 個の三角形を含み、3n-3-k個の辺を含む。
7.
ドロネー三角形分割 • Pの三角形分割Tにm個の三角形が含まれ ているとし、Tのそれぞれの三角形の内角 3m個を昇順にソートした列をTの角度ベ クトルという。 • Pの三角形分割のうち、角度ベクトルが辞 書順で最大であるものをPのドロネー三角 形分割という。 •
これがドロネー三角形分割です→実演
8.
ドロネー三角形分割 • TをPの三角形分割とする。TがPのドロ ネー三角形分割であるための必要十分条 件は、Tの任意の三角形の外接円がその内 部にPの点を含まないことである。 不正な辺
9.
アルゴリズムの概要 • 乱択逐次構成法 • 点をシャッフルし、1つずつ点を増やして いってそのたびにドロネー三角形分割を する •
割と簡単
10.
アルゴリズム • Pをn点の集合とする • 三角形分割をするために、最初にPの点を 全て含む大きい三角形を考える (すごく左上にある点とすごく右上にあ る点を追加し、Pの一番下にある点と一緒 に三角形を作る) •
三角形分割Tを大きい三角形として初期化 する。
11.
アルゴリズム • Pの一番下にある点以外の点をシャッフル し、列P’を求める。 • P’の点Xを順に追加していく。 •
Xを含む三角形分割Tの三角形を△ABCと する。Tにおいて△ABCを△XBC・ △XCA・△XABに分割する。 • ここで不正な辺が出来ていないか確かめ る。
12.
アルゴリズム • 不正な辺になる可能性があるのはBC, CA, ABの3辺。 •
ここではBCが不正であるかを確かめてい く。他も同様にできる。
13.
アルゴリズム • △XBCと辺BCで接する三角形を△YCBと する。 • Yが△XBCの外接円の内部にあれば、BC は不正。 X C B Y 不正な辺
14.
アルゴリズム • 不正な辺があった際は、図のように フリップする。 X C B Y X C B Y
15.
アルゴリズム • フリップしたらまた不正な辺ができるか もしれない。 • YBとYCが不正であるかどうか確かめる。 以下同様に続いていく。 X C B Y
16.
アルゴリズム • 最終的に全部の点を追加したら、三角形 分割Tから、最初に追加したすごく左上の 点とすごく右上の点に接続している辺を すべて取り除く。 • これでドロネー三角形分割は完了。 •
うれしい。
17.
アルゴリズム • 「Xを含む三角形分割Tの三角形を△ABC とする。」ここの計算量はどうだろう か? • ナイーブに個々の三角形について点が含 まれているか確かめることもできるが、 O(n)となる •
三角形分割と同時に木構造を作って再帰 的に求めていくことができる
18.
アルゴリズム • この乱択逐次構成法の計算量の期待値は O(n log
n) • うれしい。
19.
ドロネー三角形分割の実用例 • 各地点の高さが分かっているとき、地形の 状況をドロネー三角形分割に基づき表す
20.
ボロノイ図 • 点の集合Pがあり、平面上のすべての座標 について、一番近いPの要素の点を表す図。
21.
ボロノイ図 • 藤原さんが夏季セミナー中に実装しました
22.
ボロノイ図⇔ドロネー三角形分割 • ボロノイ図で領域が接している⇔ ドロネー三角形分割で辺で結ばれている
23.
ボロノイ図の実用例 • 主要都市を元に地域を分割する
24.
ドロネー三角形分割→EMST • ユークリッド最小木(EMST): 平面上の全 ての点を連結する木の中で辺の長さの総 和が最小なもの •
ドロネー三角形分割をグラフとして見る。 点の数をnとするとドロネー三角形分割の 辺の数は3n-3-kなので、O(n log n)で最 小全域木が求まる。ドロネー三角形分割 と合わせてもO(n log n)となる。
25.
行商人問題 (TSP) • 言わずと知れたNP困難問題 •
n点の間にいくつか距離のある辺があって、 n点全てを1回だけ通る経路のうち総移動 距離が最小のものを求めよ、という問題 • ここではn点は平面上にあり、どの2点間 にも辺があり幾何的な距離を持っている ものとする
26.
EMST→2近似TSP • EMSTからTSPの2近似アルゴリズム(総 移動距離が最小の場合の2倍以下)を作る ことができる • まずEMSTをなめる閉路をつくる
27.
EMST→2近似TSP • 閉路をショートカットしていく。
28.
EMST→2近似TSP • 2回通っている点についてO(1)でショート カットできるので、O(n)で巡回路になる。 EMSTまでと合わせてO(n log
n)となる。
29.
EMST→2近似TSP • 行商人問題の最適解での総移動距離をtsp、 最小全域木の辺の長さの合計をemst、 ここで求めた巡回路の総移動距離をdとす る。 tsp≧tspから1本辺を取ったもの≧emst d≦2emst ∴d≦2tsp • 以上よりこれは2近似アルゴリズムである。
30.
おまけ • 暇だったので3Dの凸包を作ってみました →実演 • このアルゴリズムも乱択逐次構成法 •
うれしい
31.
まとめ • ドロネー三角形分割はうれしい!
32.
ありがとうございました
Jetzt herunterladen