فصل هفتم: دیاگرام ورونوی Voronoi Diagram

54
م: ت ف ه ل ص ف وی نام ورو ر گ ا دیVoronoi Diagram ری ب ج ن ه ر ي ض ر م ر د$ ا1392

description

فصل هفتم: دیاگرام ورونوی Voronoi Diagram. مرضيه رنجبري آذر 1392. به نام خدا. تعاریف و خواص اولیه ساختن دیاگرام ورونوی دیاگرام ورونوی پاره خط ها دیاگرام ورونوی Farthest-Point. صورت مساله. - PowerPoint PPT Presentation

Transcript of فصل هفتم: دیاگرام ورونوی Voronoi Diagram

Page 1: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

فصل هفتم:

Voronoi دیاگرام ورونوی Diagram

فصل هفتم:

Voronoiدیاگرام ورونوی Diagram

مرضيه رنجبري 1392آذر

مرضيه رنجبري1392آذر

Page 2: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

به نام خدا

تعاریف و خواص اولیه•

ساختن دیاگرام ورونوی•

دیاگرام ورونوی پاره خط ها•

Farthest-Pointدیاگرام ورونوی •

Page 3: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

صورت مساله

می فروش9گاه زنج9یره ای فرض کنی9د ی9ک

اح99داث ب99رای را ه99ایی مک99ان خواه99د

بررس99ی ب99رای کن99د. تع99یین فروش99گاه

بای9د بررس9ی ک9رد ک9ه مناس9ب ب9ودن مح9ل

در توان9د می ان9دازه چ9ه جدی9د فروش9گاه

جلب مش9تری موف9ق باش9د. ب9رای این ک9ار

بای9د بت9وان ناحی9ه ای ک9ه تحت پوش9ش ه9ر

.مرکز خرید قرار می گیرد را تعیین کرد

Page 4: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

فرضیات مسئله:

.قیمت هرکاال در همه جا یکسان است= هزینه به دست آوردن هر کاال

قیمت ک+اال + هزین+ه حم+ل کاال از فروشگاه

هزین+ه حم+ل ک+اال از فروش+گاه ب+ه ی+ک مح+ل ب+امتناسب است.فاصله آنها

دس+ت ب+ه هزین+ه کنن+د می س+عی مش+تریان آوردن کاال را مینیمم کنند.

Page 5: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

نزدیکترین فروشگاه

Dirichlet (1850) & Voronoi (1908)

convex hull از مهمترین و پرکاربردترینساختار بعد

همه اطالعات مربوط به فاصله های مجموعه ای از نقطه ها )یا اشیای کلی تر(

Page 6: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

 

تعريف

دياگرام ورونوي(Vor(p): )

P :={ p1, p2, ...,pn } مجموعه n.سايت مجزا در صفحه داريم

سلول تقسيم مي شود:nطبق قاعده زير به

q V(pi ) iff dist(q, pi ) < dist(q, pj ) for each pj P with j i.

Page 7: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ناحیه ورونوی

دياگرام ورونوي

سایت

یال

رأس

دیاگرام

Page 8: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

1 دیاگرام ورونوی: ارساخت سایت

1تعداد سایت = 1تعداد نواحی =

0تعداد یال = 0تعداد رئوس =

نقط+ه، تنه+ا از هم+ان نقط+ه دی+اگرام ورون+وی ی+کتشکیل شده است.

Page 9: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

2 دیاگرام ورونوی: ارساخت سایت

= س9ایت تع9داد 2 1تعداد یال =

= ن9واحی تع9داد 2 0تعداد رئوس =

عمودمنصف پاره خط متصل کننده دو نقطه دیاگرام ورونوی آنها است.

Page 10: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

3 دیاگرام ورونوی: ارساخت سایت

3تعداد سایت = 3تعداد نواحی =

3تعداد یال = 1تعداد رئوس =

برای سه نقطه غیرهم خط، دیاگرام ورونوی ازسه نیم خط تشکیل شده رأس های آناست. عمودمنصف های ضلع های مثلث دیاگرام ورونوی

را شکیل می دهند.

Page 11: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

7-1مشاهده n

ijj

jii pphpV

1

),()(

نتیجه

دیاگرام ورونوی زیر بخش مسطحی است که لبه هایش 1.

هستند.مستقیم

رأس n – 1 یال و n - 1سلول دیاگرام ورونوی با حداکثر 2.

محدود می شود.

ji pph ,

ipjp

Page 12: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

7-2قضیه

P مجموعه n در سایت در صفحه داده شده است. اگر همه سایت ها

خط موازی n-1 شامل Vor(P)پس خط مستقیم واقع شده اند

است و یال هایش پیوسته Vor(P)است. در غیر این صورت،

هستند.نیم خط یا پاره خط

اثبات .قسمت اول آسان است

Page 13: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

یال هایVor(P) پاره خط یا نیم خط

هستند.

Vor(P).متصل است

پیوسته Vor(P) پسدر خط مستقیم واقع نشده اند اگر همه سایت ها

هستند.نیم خط یا پاره خطاست و یال هایش

:)اثبات )قسمت دوم

Page 14: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

7-3قضیه

سایت n، در دیاگرام ورونوی مجموعه n≥3 برای

و تعداد 2n-5در صفحه تعداد رئوس حداکثر

اثبات: است.3n-6یال ها حداکثر

:سایت ها هم خط باشند

همه سایت ها درخط مستقیم واقع

شده اند.

:سایت ها هم خط نباشند

:نتیجه. است6میانگین تعداد رئوس سلول های ورونوی کمتر از

Page 15: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

بزرگترین دایره خالی

، P نسبت به مجموعه نقاط qبزرگترين دايره خالي P است كه هيچ نقطه qبزرگترين دايره خالي با مركز

درون آن نيست.

Page 16: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

تشخيص رئوس و يالهاي دیاگرام ورونوی

7-4قضیه رواب9ط زی9ر برق9رار P از مجموع9ه نق9اط Vor(P)برای دی9اگرام ورون9وی

است:

.I نقط9هq رأسVor(P) اس9ت اگ9ر و تنه9ا اگ9ر بزرگ9ترین دای9ره خ9الی

آن شامل سه یا بیشتر سایت روی مرزش باشد.

.II عمودمنص9ف بین س9ایت های و، ی9الVor(P) را تعری9ف می کن9د

اگ9ر نقط9ه وتنه9ا باش9د qاگ9ر داش9ته روی عمودمنص9ف وج9ود

چنانچ9ه ش9امل ه9ر دوت9ا س9ایت و باش9د و س9ایت دیگ9ری، روی

مرزش نباشد.

Page 17: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

اثبات )قسمت اول(

3

Page 18: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

اثبات )قسمت اول(

Page 19: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

اثبات )قسمت دوم(

Page 20: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ایره های تهی ازسایت د)یالها(

Page 21: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ایره های تهی ازسایت د)یالها(

Page 22: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ایره های تهی ازسایت د)یالها(

Page 23: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ایره های تهی ازسایت د)یالها(

Page 24: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ایره های تهی ازسایت د)یالها(

Page 25: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

تعاریف و خواص اولیه•

ساختن دیاگرام ورونوی•

دیاگرام ورونوی پاره خط ها•

Farthest-Pointدیاگرام ورونوی •

Page 26: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

روش اول: برگرفته از 7-1مشاهده

T(n) = O(n² log n)

Page 27: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

sweepدر حین اجرای : plane sweepایده کلی الگوریتم

اطالعات ساختار خروجی به تدریج بدست می آید.

(sweep line)برخوردهای ساختار با

Furtuneالگوریتم روش دوم: plane sweepبر گرفته از استراتژی

 

Page 28: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

 

 

:7-5مشاهده

-مونوتون است، یعنی، هر خط عمودی دقیقا یک xخط ساحلی

نقطه از آن را قطع می کند.

Page 29: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

مشاهدات دیگر:

breakpoint کمان ه++ای بین ه++ای

س+احلی خ+ط متف+اوت س+همی وار

روی یال ه+ای دی+اگرام ورون+وی ق+رار

می گیرند.

breakpoint دقیق++ا ه++ا، یال ه++ای

را دنبال می کنند.دیاگرام ورونوی

نقطه برخورد بین دو کمان از دو سهمی: ( breakpoint)نقطه شکست

Page 30: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

( Beach line)خط ساحلی ساختار

( Beach line)در چه زمانی خط ساحلی تغییر می کند:

زمانی که یک کمان سهمی جدید روی آن ظاهر 1.شود.

زمانی که یک کمان سهمی موجود از روی آن محو 2.شود.

Page 31: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

چه موقع کمان جدید روی خط ساحلی ظاهر

می شود؟

به سایت جدید می رسد.sweep line یک مورد: زمانی است که

سهمی با پهنای صفر

sweep line به سمت پایین حرکت می کند سهمی جدید پهن وپهن

تر می شود. Site Event :وقتیsweep line به یک سایت جدید از P میرسد،یک

کمان جدید ظاهر می شود.

Page 32: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

چه اتفاقی می افتد؟Site Eventبرای دیاگرام ورونوی در

جدید بر هم منطبق هستند.breakpointدر ابتدا دو

حرکت می کنند.یال یکسانی برای دنبال کردن متفاوتی سپس در مسیر

نکته

در ابتدا این یال به بقیه

 sweepدیاگرام ورونوی، باالی

line .متصل نیست

Page 33: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

7-6لم

تنها حالتی که کمان جدید می تواند روی خط ساحلی

است.Site Eventبه وجود آید، از طریق

اثبات:

)برهان خلف( در حال حاضر سهمی توسط سایت تعریف شده است

که وسط خط ساحلی را می شکند.دو احتمال وجود دارد که این حالت

اتفاق بیفتد:

میانه کمان سهمی را می شکند.1.

بین دو کمان و ظاهر شود.2.

Page 34: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

1بررسی احتمال

.میانه کمان سهمی را می شکند

مختصات :yاز sweep line.در لحظه مماس را نشان می دهد

=:

نتیجه:

و بزرگتر از هستند امکان ندارد که و یک نقطه تقاطع داشته باشند.

Page 35: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

2بررسی احتمال.بین دو کمان و ظاهر شود

حرکت بی نه+ایت کوچ+کsweep line ب+ه س+مت پ+ایین، در

درنظ+ر داش+ته مم+اس ب+اقی بمان+د را ℓ ب+ا Cحالیک+ه دای+ره

باشید؛ یا به داخل نفوذ می کنند.

نتیجه:

به سمت پایین حرکت می کند، سهمی نمی تواند روی sweep lineوقتی

خط ساحلی دیده شود.

Page 36: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

:7-6یک نتیجه مهم از لم

سهمی است.2n-1خط ساحلی حداکثر شامل

یاد آوری:

اضافه شدن هر سایت جدید، یک کمان جدید تولید می

قسمت تقسیم 2کند و هر کمان موجود را حداکثر به

می کند.

Page 37: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

Circle Event:

به پایین ترین نقطه دایره خالی تعریف شده توسط sweep lineوقتی

سه سایت که کمان سهمی متوالی روی خط ساحلی دارند میرسد،

یک کمان محو می شود.

چه موقع یک کمان موجود روی خط ساحلی محو

می شود؟

به پایین ترین نقطه دایره sweep lineیک مورد: زمانی است که

گذرنده از سه سایتی که سه کمان متوالی روی خط ساحلی تعریف

کرده اند میرسد.

Page 38: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

:7-7لم

تنها حالتی که کمان موجود می تواند از روی خط ساحلی

است.circle eventناپدید شود، ازطریق

چه اتفاقی می افتد؟Circle Eventبرای دیاگرام ورونوی در

یکدیگر را مالقات می کنند و یک رأس از دیاگرام breakpointدو

ورونوی دیده می شود.

:دو کمان همسایه : کمان در حال ناپدید شدن ؛ و: فرض

(7-6)طبق لم نمی توانند بخشی از یک سهمی باشند. ودو کمان

:نتیجهq فاصله مساوی از و هر سه کمان دارد و یک رأس از دیاگرام ورونوی

(7-4)طبق قضیهاست.

Page 39: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ساختمان داده دیاگرام ورونوی•

:ساختمان دادهDoubly-connected edges list (DCEL)

آیا مشکلی برای ذخیره وجود دارد؟

e

v

  Cell(pi)

Page 40: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

(Beach line)خط ساحلی • ساختمان داده: درخت جست و جوی

ساختار ؛ این Tدودویی متوازن

است.(statusوضعیت)

برگ هایTکمان ها :

نودهای داخلیT: Break pointها

در ساختارstatus همه سه تایی های

متوالی کمان های سهمی که

را تشکیل circle eventمی توانند

بدهند، را می توانیم ببینیم.

ساختمان داده

Page 41: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

( Event Queue)صف رخداد• ساختمان داده: صف اولویت )اولویت رویدادها نسبت به مختصات

y)

در هرsite event.خود سایت ذخیره می شود ،

در هرcircle event پایین ترین نقطه دایره + اشاره گر به برگی از ،

درخت)که کمانی که در این رویداد حذف می شود را نمایش می

دهد.( ذخیره می شود.

ساختمان داده

Page 42: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

Circle Eventشناسایی

Page 43: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

متناظر با یک بالقوه Circle eventهر Triple.است

Page 44: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

ها صحیح هستند؟circle eventآیا همه

ذخیره کنیم ولی هیچ event Qی را در صفcircle eventممکن است

وقت رخ ندهد...

نامیده می شود. False Alarmاین :False Alarmدو دلیل برای

.1Site event                                         2.Circle eventهای دیگر

Page 45: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

الگوریتم در این مواقع چه کار می کند؟:EventPoint در هر

های جدیدی که ظاهر می شوند، بررسی می شود:Tripleتمام 1.

همگرا بودندر صورتbreakpoint ها، ممکن است یک circle event بوجود

بالقوه در صف رویدادها ذخیره می circle eventبیاید، بنابراین به عنوان یک

شود.

هایی که محو می شوند، نیز بررسی می شود:Tripleتمام 2.

در صورت داشتن یکEvent ،متناظر در صف رویدادها Event از صف حذف

می شود.

Page 46: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

:7-8لم

تشخیص circle eventهر رأس ورونوی توسط یک

اثبات:داده می شود.

فرض :q .یک رأس ورونوی باشد

دایرهC سایت واقعا وجود دارند. )طبق 3 و

(7-4قضیه

:سایت روی دایره 3تنها فرض C باشند و

نباشند.Cهیچ کدام، پایین ترین نقطه دایره

:باید نشان دهیم که درست قبل از نتیجه

به پایین ترین نقطه برسد، sweep lineاینکه

سه کمان متوالی و و روی خط ساحلی که

با سایت های و و تعریف شده است، وجود

دارد.

Page 47: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

الگوریتم دیاگرام ورونوی

Page 48: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

الگوریتم دیاگرام ورونوی

Page 49: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

الگوریتم دیاگرام ورونوی

Page 50: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

O(n) و ح+افظهO(n log n)در زم+ان الگ+وریتم ف+وق :7-9لم اجرا مي شود.

آیا الگوریتم Furtune است؟؟ بلهبهینه

ما می توانیم اعداد را با استفاده از هر الگوریتم محاسبه دیاگرام ورونوی،مرتب کنیم.

-5 1 3 6 7

Page 51: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

7-10قضیه

نقطه سایت در صفحه می تواند با nورونوی دیاگرام مجموعه

ساخته شود.O(n) با فضای O(nlogn) در زمان sweep lineالگویتم

Page 52: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

مثالهایی از کاربرد ورونوی

:نزدیکترین همسایه .1

Page 53: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

:مکان یابی رقابتی تسهیالت .2

مثالهایی از کاربرد ورونوی

Page 54: فصل هفتم:   دیاگرام ورونوی Voronoi Diagram

تشکر از توجه شما