نقشه ذوزنقه ای

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‬‬