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

Post on 25-Jan-2016

126 views 8 download

Tags:

description

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

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

فصل هفتم:

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

فصل هفتم:

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

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

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

به نام خدا

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

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

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

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

صورت مساله

می فروش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ر

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

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

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

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

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

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

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

Dirichlet (1850) & Voronoi (1908)

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

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

 

تعريف

دياگرام ورونوي(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.

ناحیه ورونوی

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

سایت

یال

رأس

دیاگرام

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

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

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

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

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

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

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

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

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

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

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

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

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

7-1مشاهده n

ijj

jii pphpV

1

),()(

نتیجه

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

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

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

محدود می شود.

ji pph ,

ipjp

7-2قضیه

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

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

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

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

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

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

هستند.

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

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

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

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

7-3قضیه

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

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

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

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

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

شده اند.

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

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

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

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

درون آن نيست.

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

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ری، روی

مرزش نباشد.

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

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

 

:7-5مشاهده

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

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

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

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

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

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

می گیرند.

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

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

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

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

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

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

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

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

می شود؟

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

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

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

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

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

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

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

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

نکته

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

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

line .متصل نیست

7-6لم

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

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

اثبات:

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

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

اتفاق بیفتد:

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

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

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

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

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

=:

نتیجه:

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

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

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

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

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

نتیجه:

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

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

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

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

یاد آوری:

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

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

می کند.

Circle Event:

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

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

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

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

می شود؟

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

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

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

:7-7لم

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

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

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

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

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

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

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

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

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

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

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

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

e

v

  Cell(pi)

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

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

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

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

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

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

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

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

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

ساختمان داده

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

y)

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

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

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

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

ساختمان داده

Circle Eventشناسایی

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

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

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

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

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

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

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

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

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

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

شود.

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

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

می شود.

:7-8لم

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

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

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

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

(7-4قضیه

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

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

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

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

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

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

دارد.

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

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

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

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

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

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

-5 1 3 6 7

7-10قضیه

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

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

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

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

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

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

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