Submit Search
Upload
ドロネー三角形分割
•
22 likes
•
38,268 views
Yusuke Matsushita
Follow
ドロネー三角形分割のゆるふわな説明
Read less
Read more
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
直交領域探索
直交領域探索
okuraofvegetable
【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
Recommended
直交領域探索
直交領域探索
okuraofvegetable
【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
3次元レジストレーション(PCLデモとコード付き)
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
MITSUNARI Shigeo
最適輸送の解き方
最適輸送の解き方
joisino
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善
Naoaki Okazaki
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Yosuke Shinya
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
Point net
Point net
Fujimoto Keisuke
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
Masaya Kaneko
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
様々な全域木問題
様々な全域木問題
tmaehara
3次元の凸包を求める
3次元の凸包を求める
abc3141
Cc dx lib72-p
Cc dx lib72-p
CHY72
More Related Content
What's hot
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
torisoup
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
ユークリッド最小全域木
ユークリッド最小全域木
理玖 川崎
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善
Naoaki Okazaki
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Yosuke Shinya
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII
オープンソース SLAM の分類
オープンソース SLAM の分類
Yoshitaka HARA
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
Point net
Point net
Fujimoto Keisuke
tf,tf2完全理解
tf,tf2完全理解
Koji Terada
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
Masaya Kaneko
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
様々な全域木問題
様々な全域木問題
tmaehara
What's hot
(20)
【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
ユークリッド最小全域木
ユークリッド最小全域木
指数時間アルゴリズム入門
指数時間アルゴリズム入門
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
Word2vecの並列実行時の学習速度の改善
Word2vecの並列実行時の学習速度の改善
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
Active Convolution, Deformable Convolution ―形状・スケールを学習可能なConvolution―
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜
オープンソース SLAM の分類
オープンソース SLAM の分類
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
Point net
Point net
tf,tf2完全理解
tf,tf2完全理解
SLAM勉強会(PTAM)
SLAM勉強会(PTAM)
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
様々な全域木問題
様々な全域木問題
Viewers also liked
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.
Viewers also liked
(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 解説
More from 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
More from 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.
ありがとうございました
Download now