ساختار دیاگرام ورونوی
Download
Report
Transcript ساختار دیاگرام ورونوی
مرضيه رنجبري
آذر 1392
به نام خدا
• تعاريف و خواص اوليه
• ساختن دياگرام ورونوی
• دياگرام ورونوی پاره خط ها
• دياگرام ورونوی Farthest-Point
صورت مساله
فرض کنيد يک فروشگااه ننجيگره ای مگ خواهگد منگان هگاي
را بگگرای ااگگداو فروشگگااه تعيگگين کنگگد .بگگرای بررس گ مناس گب
بودن مال بايد بررس کرد که فروشااه جديگد هگه انگدانه مگ
تواند در جلب مشتری موفگ باشگد .بگرای ايگن کگار بايگد بتگوان
ناايه ای کگه تاگپ پوشگر هگر مرکگن خريگد یگرار مگ گيگرد را
تعيين کرد.
فرضیات مسئله:
قیمت هرکاال در همه جا یکسان است.
هزینه به دست آوردن هر کاال =
قیمتتتتت کتتتتاال +هزینتتتته حمتتتتال کتتتتاال از
فروشگاه
هزینه حمال کاال از فروشگاه به یک محتال بتا فاصتله آنهتا
متناسب است.
مشتریان ستی مت کننتد هزینته بته دستت آوردن کتاال را
مینیمم کنند.
نندينترين فروشااه
)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 :سايپ
عمودمنصف پاره خط متصال کننده دو نقطه دیاگرام ورونو آنها
است.
تعداد سايپ = 2
تعداد نواا =2
0
تعداد يال = 1
تعگداد رئگوس =
ساختار دياگرام ورونوی 3 :سايپ
برا سه نقطه غیرهم خط دیاگرام ورونو ازسه نیم خط تشکیال شده است .عمودمنصف
ها ضلع ها مثلث دیاگرام ورونو رأس ها آن را شکیال م دهند.
تعداد سايپ = 3
تعداد نواا = 3
تعداد يال = 3
تعداد رئوس = 1
n
) V ( pi ) h( pi , p j
مشاهده 7-1
j 1
j i
h pi , p j
pi
pj
نتيجه
.1دیاگرام ورونو زیربخش مسطح است که لبه هایش مستقیم هستند.
.2سلوال دیاگرام ورونو با حداکثر n - 1یاال و n – 1رأس محدود م
شود.
یضيه 7-2
Pمجموعه nسایت در صفحه داده شدهاست .اگر همه سایتها در خط مستقیم واقع
شدهاند پس ) Vor(Pشامال n-1خط مواز است .در غیر این صورت )Vor(P
پیوسته است و یاالهایش پارهخط یا نیمخط هستند.
اثباپ
قسمت اوال آسان است.
اگر همه سایتها در خط مستقیم واقع نشدهاند پس ) Vor(Pپیوسته است و یاالهایش
پارهخط یا نیمخط هستند.
اثباپ (یسمپ دوم):
يالهای ) Vor(Pپاره خط يا نيم خط هستند.
Vor(P) متصل اسپ.
یضيه 7-3
برا n≥3در دیاگرام ورونو مجموعه nسایت در
صفحه تیداد رئوس حداکثر 2n-5و تیداد یاالها حداکثر3n-6
است.
اثباپ:
سايپ ها هم خط باشند:
همه سایت ها درخط مستقیم واقع شده اند.
سايپ ها هم خط نباشند:
نتيجه:
مياناين تعداد رئوس سلول های ورونوی کمتر ان 6اسپ.
بنرگترين دايره خال
بنرگترين دايره خالي qنسبپ به مجموعه نقاط ،Pبنرگترين دايره خالي با مركن q
اسپ كه هيچ نقطه Pدرون آن نيسپ.
تشخيص رئوس و يالهاي دياگرام ورونوی
یضيه 7-4
برای دياگرام ورونوی ) Vor(Pان مجموعه نقاط Pروابط نير بریرار اسپ:
.I
نقطه qرأس ) Vor(Pاسپ اگر و تنها اگر بنرگترين دايره خال
𝒒 𝒑𝑪 آن شامل سه يا
بيشتر سايپ روی مرنر باشد.
.II
عمودمنصف بين سايپهای 𝒊𝒑 و𝒋𝒑 ،يال ) Vor(Pرا تعريف م کند اگر وتنها اگر نقطه q
روی عمودمنصف وجود داشته باشد هنانهه 𝒒 𝒑𝑪 شامل هر دوتا سايپ 𝒊𝒑 و𝒋𝒑 باشد و
سايپ دياری ،روی مرنر نباشد.
اثباپ (یسمپ اول)
3
اثباپ (یسمپ اول)
اثباپ (یسمپ دوم)
دايره های ته انسايپ (يالها)
دايره های ته انسايپ (يالها)
دايره های ته انسايپ (يالها)
دايره های ته انسايپ (يالها)
دايره های ته انسايپ (يالها)
• تعاريف و خواص اوليه
• ساختن دياگرام ورونوی
• دياگرام ورونوی پاره خط ها
• دياگرام ورونوی Farthest-Point
رور اول :برگرفته ان مشاهده 7-1
)T(n) = O(n² log n
رور دوم :الاوريتم Furtune
بر گرفته ان استراتژی plane sweep
ایده کل
الگوریتم : plane sweepدر اين اجرای sweepاطالعاپ ساختار
خروج به تدريج بدسپ م آيد( .برخوردهای ساختار با )sweep line
مشاهده :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میانه کمان سهم 𝑖𝛽 را م شکند.
βj .2بین دو کمان 𝑖𝛽 و 𝑘𝛽 ظاهر شود.
بررس ااتمال1
𝛽𝑗 میانه کمان سهم 𝑖𝛽 را م شکند.
:ℓ𝑦 مختصات yاز sweep lineدر لحظه مماس را نشان م دهد.
𝑃𝑗 ≔ (𝑃𝑗,𝑥 ,𝑃𝑗,𝑦 )
2
2
𝑥(𝑥 2 − 2𝑃𝑗,𝑥 𝑥 + 𝑃𝑗,
𝑦− 𝑃𝑗,
− ℓ2𝑦 )
1
𝑦2 𝑃𝑗,𝑦 −ℓ
= 𝛽𝑗 :=y
نتيجه:
𝑦 𝑃𝑗,و 𝑦 𝑃𝑖,بزرگتر از 𝑦 ℓهستند ⟸ امکان ندارد که 𝑖𝛽 و 𝑗𝛽 یک نقطه تقاطع داشته
باشند.
بررس ااتمال2
βj بین دو کمان 𝑖𝛽 و 𝑘𝛽 ظاهر شود.
حرکت ب نهایت کوچک sweep lineبه سمت پایین در حالیکه
دایره Cبا ℓمماس باق بماند را درنظر داشته باشید؛ 𝑗𝑝 یا 𝑗𝑝 به
داخال نفوذ م کنند.
نتيجه:
وقت sweep lineبه سمت پایین حرکت م کند سهم 𝑗𝛽نم تواند رو خط ساحل دیده
شود.
یک نتیجه مهم از لم :7-6
خط ساال اداکثر شامل 2n-1سهم اسپ.
ياد آوری:
اضافه شدن هر سایت جدید یک کمان جدید تولید م کند و هر کمان
موجود را حداکثر به 2قسمت تقسیم م کند.
هه مویع يک کمان موجود روی خط ساال ماو م شود؟
یک مورد :زمان است که sweep lineبه پایینترین نقطه دایره گذرنده از سه سایت
که سه کمان متوال رو خط ساحل تیریف کرده اند میرسد.
:Circle Event
وقت
sweep lineبه پایینترین نقطه دایره خال تیریف شده توسط سه سایت که کمان
سهم متوال رو خط ساحل دارند میرسد یک کمان محو م شود.
برای دياگرام ورونوی در Circle Eventهه اتفای م افتد؟
دو breakpointیکدیگر را مالقات م کنند و یک رأس از دیاگرام ورونو دیده م
شود.
لم :7-7
تنها االت که کمان موجود م تواند ان روی خط ساال ناپديد شود ،انطري
circle eventاسپ.
فرض :α′ :کمان در حاال ناپدید شدن
؛
𝛼 و " : αدو کمان همسایه α′
دو کمان 𝛼 و " αنم توانند بخش ان يک سهم باشند( .طب لم )7-6
نتيجهq:فاصله مساو از ℓو هر سه کمان دارد و یک رأس از دیاگرام ورونو است( .طب
یضيه)7-4
ساختمان داده
• دياگرام ورونوی
ساختمان دادهDoubly-connected edges list (DCEL) :
آیا مشکل برا ذخیره وجود دارد؟
)Cell(pi
v
e
ساختمان داده
• خط ساال )(Beach line
ساختمان داده :درخت جستوجو دودوی
متوازن T؛ این ساختار
وضییت)(statusاست.
برگها :Tکمانها
نودها داخل Break point :Tها
در ساختار statusهمه سه تای ها متوال
کمانها سهم که م توانند circle eventرا
تشکیال بدهند را م توانیم ببینیم.
ساختمان داده
• صف رخداد )(Event Queue
ساختمان داده :صف اولویت (اولویت رویدادها نسبت به مختصات )y
در هر site eventخود سایت ذخیره م شود.
در هر circle eventپایین ترین نقطه دایره +اشاره گر به برگ از درخت(که
کمان که در این رویداد حذف م شود را نمایش م دهد ).ذخیره م شود.
Circle Event شناساي
هر Circle eventبالقوه متناظر با یک Triple
است.
آيا همه circle eventها صايح هستند؟
ممکن است circle eventرا در صف event Qذخیره کنیم ول هیچ وقت رخ
ندهد...
:Falseشود.
نامیده م
False Alarm
Alarm
ایندلیال برا
دو
.1
Site event
Circle event .2ها دیگر
الگوریتم در این مواقع چه کار م کند؟
در هر : EventPoint
.1
تمام Tripleها جدید که ظاهر م شوند بررس م شود:
در صورت همگرا بودن breakpointها ممکن است یک circle eventبوجود بیاید
بنابراین به عنوان یک circle eventبالقوه در صف رویدادها ذخیره م شود.
.2
تمام Tripleهای که محو م شوند نیز بررس م شود:
در صورت داشتن یک Eventمتناظر در صف رویدادها Eventاز صف حذف م شود.
لم :7-8
هر رأس ورونو توسط یک circle eventتشخیص داده م شود.
اثباپ:
فرض q :یک رأس ورونو باشد.
دایره Cو 3سایت واقیا وجود دارند( .طبق قضیه)7-4
فرض :تنها 3سایت رو دایره Cباشند و هیچ کدام
پایین ترین نقطه دایره Cنباشند.
نتيجه :باید نشان دهیم که درست قبال از اینکه sweep
lineبه پایین ترین نقطه ) 𝑘𝑝 𝐶(𝑝𝑖 ,𝑝𝑗 ,برسد سه کمان
متوال 𝛼 و 𝛼′و "𝛼 رو خط ساحل که با سایتها
𝑖𝑝 و 𝑗𝑝 و 𝑘𝑝 تیریف شدهاست وجود دارد.
الاوريتم دياگرام ورونوی
الاوريتم دياگرام ورونوی
الاوريتم دياگرام ورونوی
لم : 7-9الگوریتم فوق در زمان )O(n log nو حافظه ) O(nاجرا مي شود.
آیا الگوریتم Furtuneبهینه است؟؟ بله
ما م توانیم اعداد را با استفاده از هر الگوریتم محاسبه دیاگرام ورونو مرتب
7
6
3
1
-5
یضيه 7-10
ورونو دیاگرام مجموعه nنقطه سایت در صفحه م تواند با الگویتم sweep line
در زمان ) O(nlognبا فضا ) O(nساخته شود.
مثالهاي ان کاربرد ورونوی
.1نزدیکترین همسایه:
مثالهاي ان کاربرد ورونوی
.2مکان یاب رقابت تسهیالت:
تشنر ان توجه شما