نقشه ذوزنقه ای
Download
Report
Transcript نقشه ذوزنقه ای
فصل 6
ارائه دهنده :الهام دهقانی
بهار 92
1
مسأله مکان یابی
2
تهیه یک نقشه ازمحل
استفاده از ستارگان و خورشید برای مکان یابی
استفاده از دستگاههای مکان یابی که موقعیت یک نقطه را با استفاده از اطالعات
ماهواره و با دقت الزم تعیین می کنند.
مکان یابی خودکار توسط دستگاه های الکترونیکی.نقشه به صورت الکترونیکی
ذخیره می شود و مکانیابی به طور خودکار انجام می شود.
اگرهدف رصد مسیرحرکت باشد ،باید مکان یابی چندین بار در فواصل زمانی معین
تکرارشود.
صورت مسأله
ورودی :یک نقشه و یک نقطه qاست
خروجی :تعیین ناحیه ای از نقشه است که qدرآن قراردارد.
توجه :نقشه یک زیر تقسیم مسطح از صفحه است.
3
مکان یابی با نقشه ذوزنقه ای
در هر رأس از زیر تقسیم یک خط عمودی رسم می کنیم.
درهرنوار عمودی یال هایی وجود دارند .که یکدیگر را قطع نمی کنند
4
مکان یابی با نقشه ذوزنقه ای
5
درهر رأس از زیر تقسیم یک خط عمودی رسم می کنیم.
درهرنوار عمودی یال هایی وجود دارند که یکدیگر را قطع نمی کنند.
هرناحیه از نوار در دقیقا یک وجه از زیر تقسیم قرار دارد.
دو ناحیه بیکران در باال وپایین قرار دارند.
یال های یک نوار را به ترتیب (از باال به پایین)در یک آرایه مرتب می کنیم.
هر یال نوار را با وجهی از زیر تقسیم که باالی آن قرار دارد برچسب می دهیم.
الگوریتم
6
جستجوی دودویی با مختص xبرای تعیین نواری که نقطه در آن استO(log n).
جستجوی دودویی با مختص yبرای تعیین پاره خطی که نقطه در
باالی آن قرار داردO(log n) .
تعیین ناحیه با استفاده از برچسبی در این پاره خط ذخیره شده است )O(1
زمان جستجو O(log n):
حافظه الزم:
) O(nنوار و هر نوار ) O(nپاره خط داردO(n2 ) .
تحلیل
این کران باال ممکن است اتفاق بیفتد.
زیر تقسیمی با nپاره خط n/4
نوار که هر کدام n/4ناحیه دارند.
در این روش زیر تقسیم را به یک زیر تقسیم دیگر
تبدیل کردیم که جستجو در آن ساده تر است
اما این زیر تقسیم دارای ) O(n2وجه است.
7
راه حل بهتر
استفاده از روش ذوزنقه ای برای کم کردن تعداد وجه ها.
دو پاره خط را غیر متقاطع می نامیم هر گاه تقاطع نداشته باشند و یا در یک رأس
انتهایی مشترک متقاطع باشند.
یال های زیر تقسیم تقاطع ندارند.
فرض می کنیم هیچ دونقطه انتهایی از پاره خط ها دارای مختص xیکسان
نباشند(.پاره خط ها در موقعیت کلی هستند)
برای زیر تقسیم که از افراز ناحیه های sبه ناحیه های کوچکتری به دست می
آید،یک افراز sنام دارد.
8
نقشه ذوزنقه ای
زیر تقسیم را با یک مستطیل Rمحدود
می کنیم.
از رأس زیر تقسیم دو پاره خط عمودی
یکی به طرف باال و یکی به طرف پایین
رسم می شود.
پاره خط ها تا جایی رسم می شوند
که به یک یال Sویا مستطیل Rبرسند.
9
افراز ذوزنقه ای
ممکن است چند پاره خط
هم راستا و مجاور یک وجه از )T(S
را محدود کنند اجتماع چنین پاره خط هایی
را یک کناره ) (sideوجه می نامیم.
10
قضیه :هر وجه از یک افراز ذوزنقه ای ازیک مجموعه Sازپاره خط های در موقعیت
کلی یک یادو کناره عمودی و دقیقا دو کناره غیر عمودی است.
اثبات:
اگر fوجهی از ) T(Sبا شد f ،محدب است زیرا همه زاویه های داخلی کمتر از
180درجه است.
پس fحداکثر دوکناره عمودی دارد.
اگر fبیش از دو کناره غیر عمودی داشته باشد دو تای آنها در باال یا پایین قرار دارند.
یال های زیر تقسیم تقاطع ندارند ،پس این دو پاره خط دریک رأس انتهایی مشترک
به هم می رسند .که در آن یک گسترش عمودی رسم شده است و در نتیجه هر دو
پاره خط در یک وجه نیستند.
f کراندار است ،پس حداقل دو کناره غیر عمودی دارد.
11
افراز ذوزنقه ای
اگر∆ یک وجه از افراز ذوزنقه ای باشد کناره های باال و پایین آن را به ترتیب )∆
( topو )∆ ( bottomمی نامیم.
12
افراز ذوزنقه ای
برای کناره های سمت راست و چپ عمودی می توان حالتهای ∆ مختلفی در نظر
گرفت .یک رأس روی مرز سمت چپ (راست) ∆ را به عنوان رأس سمت چپ
(راست) تعیین می کنیم.
هروجه ∆ باداشتن )∆ (leftp( ∆) ،rightp( ∆) ،botton( ∆) ،top
به طور منحصر به فرد تعیین می شود.
13
افراز ذوزنقه ای
هروجه ∆ باداشتن( ∆ (leftp( ∆) ،rightp( ∆) ،botton( ∆) ،top
به طور منحصر به فرد تعیین می شود.
14
افراز ذوزنقه ای
قضیه :افراز ذوزنقه ای )T(Sاز مجموعه Sبا nپاره خط در موقعیت کلی حد
اکثر 6n+4رأس و حداکثر 3n+1ذوزنقه دارد.
اثبات :
هر رأس افراز ذوزنقه ای رأس ی از ،sرأس ی از Rیا رأس ی درمحل تقاطع یک گسترش
عمودی و یک پاره خط است .پس تعداد رأس ها برابر است با :
4+2n+2(2n)=6n+4
تعداد وجه ها با تعداد رأس های سمت چپ آنها برابر است .رأس انتهای سمت چپ
هرپاره خط از Sبرای حداکثر2وجه و رأس سمت راست آن برای حداکثر یک وجه به
عنوان leftpانتخاب می شود .تنها یک رأس از Rبه عنوان leftpانتخاب می
شود پس تعداد وجه ها از 3n +1بیشتر نمی شود.
15
افراز ذوزنقه ای
اگر∆ یک وجه از افراز ذوزنقه ای باشد ،وجه ∆،را مجاور با ∆ می نامیم هرگاه
∆ و ∆،یک یال عمودی مشترک داشته باشند.
با توجه به این که پاره خط ها در موقعیت کلی هستند هر ذوزنقه با حداکثر4
ذوزنقه دیگر مجاور است.
16
افراز ذوزنقه ای
17
افراز ذوزنقه ای
روش اول :
یک افراز ذوزنقه ای یک زیر تقسیم است پس می توان آن را با یک لیست دو همبند
یالی ذخیره کرد.
روش دیگر :
با توجه به اینکه هر ذوزنقه ∆ به طور منحصر به فردی با
leftp،bottom،topو rightpمشخص می شود ،برای هر ذوزنقه ∆ یک
لیست متشکل از leftp،bottom،topو rightpو اشاره گرهایی به 4همسایه
آن درنظر می گیریم .
18
ساختن افراز ذوزنقه ای
الگوریتم تصادفی افزایش ی :
ورودی :یک مجموعه Sاز پاره خط ها که در موقعیت کلی قرار دارند.
خروجی :یک افراز ذوزنفه ای ) T(Sبا ساختمان داده Dکه برای مکان یابی در
افراز ذوزنقه ای به کار می رود.
19
ساختن افراز ذوزنقه ای
ساختمان داده Dیک گراف جهتدار بدون دور ،با یک رأس یکتای ریشه و یک برگ
به ازای هر ذوزنقه از افراز ذوزنقه ای Sاست.
دو نوع رأس داخلی:
-X رأس ها :با یک رأس انتهایی پاره خطی از sبرچسب دارد
-y رأس ها :با یک پاره خط برچسب گذاری شده اند.
هررأس داخلی درجه خروجی 2دارد.
20
جستجوی یک نقطه درD
21
جستجوی یک نقطه درD
برای جستجوی نقطه qاز ریشه شروع میکنیم.
در هر Xراس :آیا qسمت راست یا چپ نقطه ذخیره شده در این راس است؟
در هر Yراس :آیا qدر باال یا پایین پاره خط ذخیره شده در این راس است؟
جستجو با یک برگ Dتمام می شود که ذوزنقه ای که qدر آن است را نشان می
دهد.
22
جستجوی یک نقطه درD
23
با تشکر از توجه شما
24