نقشه راه GIS

درخواست مشاوره

09120049370

8 صبح تا 12 شب

09120049370

کاربرد جی ای اس

 

خلاصه

یک سوال اساسی در هندسه محاسباتی این است که چگونه می توان رابطه بین مجموعه ای از نقاط و یک خط را در یک صفحه واقعی پیدا کرد. در این مقاله، ساختارهای داده چند بعدی را برای N نقطه ارائه می‌کنیم که امکان پاسخگویی به پرسش‌های زیر را برای هر خط ورودی داده شده فراهم می‌کند: (1) تخمین در log N)�(log�)زمان تعداد نقاط زیر خط. (2) بازگشت به داخل log N)�(log�+�)زمان ≤ N�≤�نقاطی که زیر خط هستند؛ و (3) بازگشت به داخل log N)�(log�)زمان نزدیکترین نقطه به خط. ما کاربرد این سوال محاسباتی را با کاربردهای GIS در دفاع هوایی و کنترل ترافیک نشان می دهیم.
کلید واژه ها:

ساختار داده های مکانی ; پرس و جوهای مکان نقطه ; پرس و جوهای نزدیکترین نقطه تخمین گزینش پذیری

 

1. معرفی

1.1. بیان مشکل و بررسی اجمالی نتایج

در حوزه‌های هندسه محاسباتی و پایگاه‌های داده فضایی [ 1 ، 2 ، 3 ، 4 ، 5 ]، یک سوال اساسی این است که چگونه می‌توان برای یک مجموعه معین از N نقطه در یک صفحه، تعداد نقاطی را که زیر یک خط دلخواه قرار دارند، پیدا کرد. . برای پاسخگویی موثر به دنباله ای از پرس و جوها از این نوع، هدف یافتن یک ساختار داده شاخص برای مجموعه ای از نقاط داده شده است به طوری که برای هر خط دلخواه پاسخ را بتوان در log N)�(log�)زمان.
تخمین انتخابی به معنای یافتن تعداد نقاط یا نقاط متحرکی است که تقریباً شرایط مختلف را برآورده می کنند. تخمین گزینش یک مشکل مهم در پرس و جو پایگاه داده مکانی و مکانی- زمانی است زیرا برآورد ارزیابی پرس و جو را هدایت می کند [ 4 ، 6 ، 7 ]. تخمین گزینش پذیری برای اجسام نقطه متحرک توسط اندرسون و ریوز [ 8 ]، چوی و چانگ [ 9 ] و سان و همکاران در نظر گرفته شد. [ 10 ]، که الگوریتم های مختلفی را برای تخمین تعداد نقاط متحرکی که در یک ناحیه جعبه یا ناحیه هایپرباکس خاص در زمان t آینده خواهند بود، توصیف کردند .
مشکل تخمین تعداد نقاط زیر یک خط برای موارد جدید تخمین گزینش پذیری در پرس و جوی پایگاه داده شی مکانی-زمانی یا متحرک قابل استفاده است. اگر تمام نقاط متحرک در امتداد محور x حرکت کنند ، مجموعه ای از نقاط متحرک خطی پمن) =آمن+بمن��(�)=���+��را می توان به عنوان مجموعه S از نقاط استاتیک نشان داد(آمن،بمن)(��,��)در صفحه دوگانه استاتیک [ 1 ، 2 ، 3 ]. بنابراین، مشکل یافتن نقاط متحرکی که در سمت چپ یک نقطه پرس و جوی متحرک دلخواه فرم قرار دارند b�(�)=��+�در زمان t معادل یافتن نقاطی در S است که زیر خط  که از آن عبور می کند الف ، ب )(�,�)با شیب – تی−�در هواپیمای دوگانه
در برنامه های کاربردی دیگری که مجموعه نقاطی که در زیر یک خط قرار دارند باید برگردانده شوند، پاسخ دادن به پرس و جو می تواند بسیار کندتر باشد. بهترین چیزی که می توان برای آن هدف قرار داد یک ساختار داده بر روی N نقطه است به گونه ای که بتوانیم تمام نقاطی را که زیر یک خط هستند برگردانیم. log N)�(log�+�)زمان، که k تعداد نقاطی است که در زیر خط قرار دارند. اینجا، نماد log N)�(log�+�)نشان می دهد که تعداد مراحل محاسبات پایه مورد نیاز متناسب با لگاریتم N و متناسب با k است . بدیهی است که نوشتن k نقاط مربوط به خروجی را نمی توان انتظار داشت که سریعتر از زمان خطی (به k ) انجام شود. با این حال، نکته مهم در اینجا این است که، اگر نوشتن خروجی را نادیده بگیریم، بخش جستجوی این مشکل زمان لگاریتمی (به N ) می گیرد که بهترین پیچیدگی زمانی است که می توانیم برای جستجو انتظار داشته باشیم.
ما در این مقاله یک ساختار داده پویا، بر اساس درختان AVL برای ذخیره پیکربندی نقاط در صفحه پیشنهاد می‌کنیم. درختان AVL که به نام های Adelson-Velsky و Landis [ 11 ] نامگذاری شده اند، درختان جستجوی دودویی هستند. درخت‌های AVL «متعادل» باقی می‌مانند، به این معنا که برای هر گره، ارتفاع زیردرخت سمت چپ و زیردرخت سمت راست حداکثر یک تفاوت دارند. با استفاده از درختان AVL، رویکرد پیشنهادی ما پویا می شود به این معنا که افزودن یا حذف یک نقطه در مجموعه اصلی N نقطه، منجر به هزینه به روز رسانی می شود. ای (ن2ورود به سیستم N)�(�2log�)درخت AVL هزینه ساخت ساختار داده بر اساس درختان AVL می باشد ای (ن3)�(�3)، هم در مکان و هم در زمان. یکی دیگر از مزایای رویکرد ما این است که می توان آن را برای پاسخ به مسئله (3) تطبیق داد: با توجه به یک خط ورودی، نقطه ای را که نزدیکترین خط به خط است برگردانید.
این به این معنی است که در هر یک از گره های آن، موارد با مقدار کلید کمتر از گره در زیردرخت فرزند سمت چپ و مقادیر بزرگتر از مقدار کلید از گره در زیردرخت فرزند سمت راست ذخیره می شوند. درخت‌های جستجوی دودویی که m کلید-مقدار را ذخیره می‌کنند، در حالت ایده‌آل، امکان جستجوی یک مقدار کلید معین را در زمان می‌دهند log )�(log�). این پیچیدگی زمانی زمانی رخ می‌دهد که درخت‌های باینری نسبتاً متعادل باشند. در حالی که بسیاری از روش‌های درج و حذف گره ممکن است منجر به درخت‌های جستجوی باینری نامتعادل شوند (با پیچیدگی جستجو که ممکن است تبدیل شود). )�(�)، به جای log )�(log�)روش درختی AVL به صورت پویا درخت AVL را پس از درج یا حذف گره ها با اعمال دنباله ای از چرخش ها یا چرخش های مضاعف متعادل می کند [ 11 ].
ما این مقدمه را با بحث در مورد برخی از سناریوهای کاربردی و کارهای مرتبط به پایان می بریم.

1.2. سناریوهای کاربردی

طیف وسیعی از کاربردهای ممکن برای الگوریتم های پیشنهادی ما وجود دارد. در زیر به طور خلاصه دو برنامه انتخاب شده را توضیح می دهیم. اولی مربوط به پدافند هوایی و دیگری مربوط به کنترل ترافیک است.

سناریوی کاربردی  1:

فرض کنید نقشه ای داریم که در آن خانه ها در یک منطقه کلانشهری قرار گرفته اند که باد از سمت شمال می وزد. همچنین فرض کنید که یک هواپیمای دشمن در یک خط از سراسر قلمرو عبور می کند و به طور مداوم تعدادی سلاح زیستی را پرتاب می کند. سپس، برای تخمین تعداد افرادی که ممکن است در معرض خطر فوری باشند، باید تعداد خانه‌های زیر خطی که مسیر هواپیما است را پیدا کنیم و سپس تعداد خانه‌ها را با میانگین تراکم افراد در هر خانه ضرب کنیم. آن منطقه شهری

سناریوی کاربردی  2:

فرض کنید که یک ایستگاه پلیس در حال نظارت بر بخشی از بزرگراهی است که در جهت شرق-غرب حرکت می کند. فرض کنید خودروهایی که به سمت شرق حرکت می کنند (موازی با محور x ) هستند سی1… ,سیn�1,…,��. موقعیت مکانی هر ماشین سیمن��را می توان به عنوان یک تابع تخمین زد آمن+بمن���+��، جایی که بمن��محل اولیه ماشین است و آمن��سرعت آن است. n ماشین را می توان در یک صفحه دوتایی استاتیک، جایی که هر کدام نشان داد سیمن��با نقطه نشان داده می شود (آمن،بمن)(��,��)[ 4 ]. فرض کنید، در زمان t ، یک خودروی دلخواه، به عنوان مثال، خودرو سی5�5، به دلیل پنچری لاستیک یا عیب دیگری ناگهان متوقف می شود. برای پیدا کردن تعداد ماشین هایی که پشت سر هستند سی5�5و احتمالاً تحت تأثیر تصادف قرار می گیرند، باید در صفحه دوگانه تعداد نقاط زیر خطی را که از نقطه عبور می کند پیدا کنیم. (آ5،ب5)(�5,�5)و دارای شیب است – تی−�(به قضیه 20.4.3 در [ 4 ] مراجعه کنید). تخمین سریع تعداد خودروهایی که ممکن است تحت تأثیر تصادف قرار گیرند، برای محاسبه تعداد افسران پلیسی که ممکن است به محل حادثه اعزام شوند و برای سایر مسافرانی که قصد ورود به بزرگراه را دارند، توصیه ای برای انحراف صادر می کند. تعداد خودروهای آسیب دیده بالاتر از یک آستانه مشخص است.

پیاده سازی نرم افزار بالقوه  :

اگرچه، طبق دانش ما، نرم افزار GIS کنونی شامل عملگرهای داخلی نقاط خطی نمی شود، آنها اغلب شامل برخی از عملگرهای فضایی مرتبط هستند. به عنوان مثال، ST_Distance در PostGIS به عنوان یک عملگر نزدیکترین نقطه در دسترس است، یعنی از مجموعه ای از نقاط، نقطه(هایی) را می یابد که نزدیکترین نقطه به نقطه معین هستند [12 ] . سایر اپراتورهای مجاورت فضایی نیز در ArcGIS برای توسعه دهندگان و گزینه فضایی و نمودار اوراکل برای پایگاه داده اوراکل (نسخه) موجود هستند 12ج12�) [ 13 ]، اما آنها با عملگر نقاط خط پیشنهادی ما [ 12 ] متفاوت هستند. از این رو، می‌تواند فرصتی برای استفاده از اپراتور نقاط خط جدید ما در چندین سیستم GIS وجود داشته باشد. به عنوان مثال، سیستم MLPQ خود ما [ 14 ]، که برای برنامه های GIS طراحی شده است و از پسوند SQL به عنوان یک زبان پرس و جو استفاده می کند، می تواند به راحتی یک عملگر نقاط خط را اتخاذ کند. Pyy، ، y، )����������(�,�,�1,�1,�2,�2,�)به عنوان یک اپراتور داخلی را Ps����������اپراتور تعداد نقاط k را در یک رابطه فضایی پیدا می کند، y)�(�,�)که زیر خطی هستند که از نقاط عبور می کند y)(�1,�1)و y)(�2,�2).

به عنوان مثال، فرض کنید که y)(�1,�1)و y)(�2,�2)دو نقطه در مسیر خطی هواپیما در سناریوی کاربردی 1 هستند. مسیر را می توان با رابطه نشان داد تیyy، ، y)����������(�1,�1,�2,�2). آن رابطه را نیز فرض کنید اچy)������(�,�)مکان خانه ها در منطقه کلان شهر هستند. سپس، تعداد خانه هایی که ممکن است تحت تأثیر حمله سلاح های زیستی قرار گیرند را می توان با پرس و جوی SQL زیر پیدا کرد:

انتخاب کنید LinePoints.k
از جانب خانه ها، نقاط خط، مسیر
جایی که LinePoints.x = Houses.x و LinePoints.y = Houses.y و
LinePoints.x1 = Trajectory.x1 AND LinePoints.y1 = Trajectory.y1 و
LinePoints.x2 = Trajectory.x2 و LinePoints.y2 = Trajectory.y2.

1.3. کار مرتبط

یکی از مسائلی که در این مقاله به آن پرداخته می شود، به عنوان مسئله پرس و جو دامنه نیمه صفحه نیز شناخته می شود و یک راه حل کارآمد توسط Chazelle، Guibas و Lee در سال 1983 [ 15 ] ارائه شد . روش این نویسندگان امکان پاسخگویی به پرس و جو محدوده نیم صفحه را در داخل فراهم می کند log N)�(log�+�)زمان، با استفاده از N)�(�)فضا و Nورود به سیستم N)�(�log�)زمان پیش پردازش روش آنها بر اساس اصول دوگانگی هندسی است و بر روش هایی مانند الگوریتم مکان نقطه مسطح بهینه کرک پاتریک تکیه دارد. اگرچه، در تئوری، الگوریتم کرک پاتریک به یک بهینه دست می یابد log N)�(log�)زمان پرس و جو به دلیل ساخت بسیار هوشمندانه آن، به نظر می رسد که در عمل، وجود برخی عوامل ثابت جاسازی شده بزرگ در پیچیدگی زمانی آن، آن را کمتر امکان پذیر می کند. در نتیجه، در عمل به ندرت از آن استفاده می شود. به دلیل این اتکا، عملی بودن روش پیشنهادی توسط این نویسندگان مورد تردید قرار گرفته است. در واقع، با گذشت بیش از سی سال از انتشار آن، می بینیم که روش Chazelle، Guibas و Lee به سختی در عمل استفاده می شود (مثلاً در سیستم های پایگاه داده) و هیچ نرم افزاری در متون علمی یا کتاب های درسی در این زمینه ذکر نشده است. الگوریتم های GIS [ 16]. روش پیشنهادی در این مقاله نه تنها بر روی ساختارهای داده پرکاربرد (مانند درختان AVL) تکیه می‌کند و پیاده‌سازی آن آسان‌تر است، بلکه اطلاعات مرتب‌سازی نقاط را نسبت به یک خط نیز ضبط می‌کند. تفاوت دیگر این است که ما نزدیکترین نقطه را نیز به یک پرس و جو خط می کنیم.
این مقاله به شرح زیر سازماندهی شده است. بخش 2 راه حلی را توضیح می دهد که تعداد نقاط زیر یک خط را تقریبی می کند. بخش 3 راه حلی را ارائه می دهد که تعداد دقیق نقاط زیر خط را نشان می دهد. بخش 4 راه حلی برای مشکل یافتن نزدیکترین نقطه به یک خط ارائه می کند. در نهایت، بخش 5 برخی از نتیجه گیری ها و مشکلات باز را ارائه می دهد.

2. تقریب تعداد نقاط زیر یک خط

اجازه دهید آرمجموعه اعداد واقعی را نشان دهید و اجازه دهید آر2�2هواپیمای واقعی باشد در این بخش، ساختار داده‌های شاخص را برای مجموعه‌ای P از N نقطه در نظر می‌گیریمآر2�2که به شما امکان می دهد تقریبی از تعداد نقاط زیر یک خط را به طور موثر پیدا کنید. با چند تعریف شروع می کنیم. یک نقطه (آ1،ب1)(�1,�1) بر نقطه دیگری تسلط دارد(آ2،ب2)(�2,�2)که در آر2�2اگر و تنها اگر آ2آ1�2≤�1و ب2ب1�2≤�1.

تعریف  1.

در زیر از سه علامت اختصاری زیر استفاده می کنیم:

(1)
ℓ _)#������(ℓ,�)تعداد تخمینی نقاط در P زیر یک خط ℓ است.
(2)
ℓ P)#�����(ℓ,�)تعداد دقیق نقاط P در زیر یک خط ℓ است.
(3)
P)#���(�,�)تعداد نقاطی در S است که نقطه p بر آنها غالب است.
قضیه بعدی بهبود نتیجه پیچیدگی در مورد همان مسئله در [ 17 ] است.

قضیه  1.

ℓ _)#������(ℓ,�)را می توان در یافت log N)�(log�)زمان و Nورود به سیستم N)�(�log�)فضا، که در آن N تعداد نقاط P است.

اثبات

ما می توانیم یک ساختار داده ای داشته باشیم که مختصات x را مرتب می کند و یک ساختار داده جداگانه که مختصات y نقاط N را مرتب می کند . سپس، حداقل و حداکثر مختصات x ،ایکسدقیقه�minو ایکسحداکثر�maxو حداقل و حداکثر مختصات y ، yدقیقه�minو yحداکثر�max، همیشه می توان در پیدا کرد log N)�(log�)زمان و N)�(�)فضا.
وقتی  یک خط افقی باشد ya�=�یا یک خط عمودی b�=�، سپس مشکل به یافتن کاهش می یابد P)#���(�,�)، جایی که (ایکسحداکثر، الف )�=(�max,�)یا ,yحداکثر)�=(�,�max)، به ترتیب. شماره P)#���(�,�)را می توان در یافت log N)�(log�)زمان و Nورود به سیستم N)�(�log�)فضا با استفاده از ساختار داده ECDF-tree شناخته شده [ 18 ]. در اینجا، ECDF به اختصار “تابع توزیع تجمعی تجربی” را بیان می کند.

اگر  نه افقی و نه عمودی است،  را بر تقسیم کنید– 1�−1افقی و – 1�−1خطوط عمودی، جایی که متر ≥ 2�≥2هر ثابت است از آنجایی که نقاط N همه در یک کادر با گوشه سمت چپ پایین قرار دارند (ایکسدقیقه،yدقیقه)(�min,�min)و یک گوشه سمت راست بالا (ایکسحداکثر،yحداکثر)(�max,�max)، خطوط عمودی و افقی می توانند آن کادر را به دو قسمت تقسیم کنند متر2�2جعبه های کوچکتر با اندازه مساوی شکل 1 چنین تقسیمی از  را نشان می دهد4�=4. این تقسیم بندی امکان کاهش مشکل یافتن را فراهم می کند ℓ P)#�����(ℓ,�)برای یافتن دنباله ای از P)#���(�,�)مقادیر به شرح زیر است:

(1)
مستطیلی را بیابید که شامل تمام نقاط P باشد .
(2)
قسمت  داخل مستطیل را با قطعات خط افقی و عمودی به m تعداد قطعات مساوی ببرید. نقاط جدید ایجاد شده توسط برش ها را به عنوان شماره گذاری کنید آ1… ,آمتر1�1,…,��+1، ب1… ,بمتر�1,…,��، و سی1… ,سیمتر�1,…,��همانطور که در شکل 1 نشان داده شده است .
(3)

تعداد نقاطی که احتمالاً کمتر از  هستند ، بر اساس نقاط B ، یک کران بالایی برای lℓ P)#�����(ℓ,�):

lℓ P) ≤ (آ1، پ) +1متر(بمن، پ) – (آمن 1، پ) .#�����(ℓ,�)≤#���(��+1,�)+∑�=1�#���(��,�)−#���(��+1,�).
(4)

تعداد نقاطی که مطمئناً زیر  هستند ، بر اساس نقاط C ، یک کران پایین برای #ℓ P)#�����(ℓ,�):

#ℓ P) ≥ (آ1، پ) +1متردی(آمن، پ) – m(سیمن،پ) .#�����(ℓ,�)≥#���(��+1,�)+∑�=1�#���(��,�)−#���(��,�).
(5)

P)#�����(ℓ,�)می توان به عنوان میانگین کران بالا و پایین بالا تقریب زد:

m(آ1،پ) + m (آ1،پ) +متر1m(بمن،پ) – Dm(سیمن،پ)2.#���(�1,�)+#���(��+1,�)+∑�=1�#���(��,�)−#���(��,�)2.

قضیه از O(Nورود به سیستمN)�(�log�)فضا و ای ( logN)�(log�)زمان مورد نیاز الگوریتم ECDF و این واقعیت که تقریب در (5) فقط نیاز دارد )2(�+1)فراخوانی به الگوریتم ECDF ☐

مثال  1.

شکل 1 مجموعه ای از نقاط درون یک مستطیل و خطی را نشان می دهد که از مستطیل عبور می کند. خط عبور به داخل قطع می شود 4�=4قطعات به صورت افقی توسط بخش های خط اتصال سیمن��و بمن 1��+1برای ≤ ≤ 31≤�≤3و به صورت عمودی توسط بخش های خط متصل می شود بj��و سی1��+1برای ≤ ≤ 31≤�≤3. در شکل 1 کران پایین 5 و کران بالایی 9 است و میانگین اینها 7 است که دقیقاً تعداد نقاط زیر خط است.
در الگوریتم تقریب قضیه 1 از ثابت m استفاده کردیم . می توان ثابت m را که در الگوریتم تقریب استفاده می شود تغییر داد. ما می توانیم به واقعیت زیر توجه کنیم.

نتیجه  1.

مانند → �→+∞، ℓ _ℓ P)#������(ℓ,�)=#�����(ℓ,�).

اثبات

با افزایش m ، نواحی مثلثی که مرزهای پایینی و بالایی آن با ناحیه واقعی زیر خط تفاوت دارند، به طور فزاینده ای کوچکتر می شوند. از این رو، دقت تقریب تمایل به افزایش دارد. در حد، مناطق مثلثی ناپدید می شوند و تقریب دقیقاً مقدار را نشان می دهد ℓ P)#�����(ℓ,�). ☐
گاهی اوقات می توان یک شمارش دقیق را برای مقادیر نسبتاً کوچک m تضمین کرد . نمونه ای از چنین تضمینی بر اساس کوتاه ترین فاصله هر نقطه تا خط بعداً در نتیجه 2 مورد بحث قرار می گیرد.
از آنجایی که درختان ECDF در ابعاد بالاتر قابل اجرا هستند، الگوریتم تقریب فوق را می توان به ابعاد بالاتر نیز گسترش داد. به عنوان مثال، در سه بعد، تقریب با استفاده از پرس و جوهای تسلط نقطه تنظیم با استفاده از درختان ECDF، تعداد نقاط زیر یک صفحه را پیدا می کند. در این مورد، هواپیما با استفاده از یک شبکه موازی با محورها بریده می شود.

3. یک جستجوی موقعیت مکانی با توجه به یک خط

در این بخش الگوریتمی را ارائه می کنیم که با توجه به مجموعه ای محدود پ(ایکسمن،yمن) ∣ ، … ، N}�={(��,��)∣�=1,…,�}از N نقطه در آر2�2، یک ساختار داده می سازد P)�(�)از اندازه ای (ن2)�(�2). ساختار داده P)�(�)می توان برای پاسخ به پرسش زیر استفاده کرد log N)�(log�)زمان: به عنوان ورودی یک خط  در داده می شودآر2�2نقاط P که زیر  هستند ، نقاط P که روی  هستند و نقاط P که بالای  هستند را برگردانید .
الگوریتم دوم یک خط  را به عنوان ورودی به شکل سه گانه دریافت می کندالف ، ب ، ج )(�,�,�)از اعداد حقیقی که ℓ را با معادله تعیین می کنندy0��+��+�=0. در عمل، این اعداد حقیقی a ، b و c باید به طور محدود قابل نمایش باشند. مثلاً می‌توانیم آنها را به‌عنوان اعداد واقعی یا گویا قابل محاسبه در نظر بگیریم.
ما دوست داریم بتوانیم مقادیر را سفارش دهیم آایکسمنبyمنج���+���+�، برای ، … ، N�=1,…,�، به طوری که به راحتی می توان دید که کدامیک از آنها کوچکتر، مساوی یا بزرگتر از 0 هستند. در واقع، آن نقاط (ایکسمن،yمن)(��,��)از P که برای آن آایکسمنبyمن0���+���+�>0بالای خط  هستند ، آن نقاطی از P که برای آنها آایکسمنبyمن0���+���+�=0روی خط  و آن نقاط P هستند که برای آنها آایکسمنبyمن0���+���+�<0زیر خط  هستند . بنابراین، سفارش مقادیر آایکسمنبyمنج���+���+�و تعیین شاخص هایی که علامت از − به 0 و سپس به + تغییر می کند، امکان پاسخ دادن به پرسش فوق را در زمان ثابت می دهد (به غیر از نوشتن پاسخ، که لزوماً زمان خطی می برد). به راحتی می توان متوجه شد که ترتیب مقادیر آایکسمنبyمنج���+���+�مستقل از c است .

بدیهی است که وجود دارد ن!�!ترتیب احتمالی عناصر P ، یا به طور معادل، شاخص های آنها. در واقع، هر سفارش من1<من2⋯ <منن�1<�2<⋯<��از عناصر مجموعه ، ن}{1,2,…,�}را می توان به عنوان جایگشت این مجموعه در نظر گرفت. جایگشت را می نویسیم که 1 به آن نگاشت شده است من1�1; 2 به نقشه برداری شده است من2�2، ….، و N به نگاشت می شود منن��مانند (من1… ,منن) .(�1,…,��).گروه همه جایگشت های مجموعه را نشان می دهیم ، ن}{1,2,…,�}توسط اسن��. برای (من1… ,منن) ∈اسن(�1,…,��)∈��، می توانیم زیر مجموعه را در نظر بگیریم الف (من1… ,منن)�(�1,…,��)از تاپل ها الف ، ب ) ∈آر2(�,�)∈�2برای کدام

آایکسمن1بyمن1≤ aایکسمن2بyمن2≤ ⋯ ≤ aایکسمنن– 1بyمنن– 1≤ aایکسمننبyمننج .آایکسمن1+ب�من1+ج≤آایکسمن2+ب�من2+ج≤⋯≤آایکسمنن-1+ب�منن-1+ج≤آایکسمنن+ب�منن+ج.

نابرابری های فوق را می توان به طور معادل، مستقل از c ، as نوشت

آایکسمن1بyمن1≤ الفایکسمن2بyمن2≤ ⋯ ≤ الفایکسمنن– 1بyمنن– 1≤ الفایکسمننبyمنن.آایکسمن1+ب�من1≤آایکسمن2+ب�من2≤⋯≤آایکسمنن-1+ب�منن-1≤آایکسمنن+ب�منن.
مجموعه ها الف (من1… ,منن)آ(من1،…،منن)که از این طریق تعیین می شود، زیرمجموعه های خطی و نیمه جبری دو بعدی هستند. الف ، ب )(آ،ب)-سطح. قبلاً اشاره کردیم که حداکثر وجود دارد ن!ن!چنین مجموعه های ممکن، از آنجایی که وجود دارد ن!ن!عناصر در اسناسن. با این حال، همانطور که به زودی خواهیم دید، تعداد مجموعه های متمایز الف (من1… ,منن)آ(من1،…،منن)محدود شده است ای (ن2)�(ن2). در واقع، † )(†)شامل (حداکثر) نن– )2ن(ن-1)2نابرابری های خطی در a و b . این نابرابری ها را می توان به صورت نوشتاری نوشت یک (ایکسمنjایکسمنک) +ب (yمنjyمنک) ≤0آ(ایکسمن�-ایکسمنک)+ب(�من�-�منک)≤0، ≤ ≤ N1≤�<ک≤ن. بعضی از اینها نن– )2ن(ن-1)2ممکن است منطبق باشند، یعنی زمانی که در مجموعه اصلی P ، جفت نقاطی وجود داشته باشند که پاره خط های موازی را تشکیل می دهند. از نظر هندسی، این نابرابری ها را تقسیم می کنند الف ، ب )(آ،ب)هواپیما در (حداکثر) نن– )ن(ن-1)کلاس های پارتیشن تعیین شده توسط خطوط یک (ایکسمنjایکسمنک) +ب (yمنjyمنک) =0آ(ایکسمن�-ایکسمنک)+ب(�من�-�منک)=0، برای ≤ ≤ N1≤�<ک≤ن. این خطوط همه از منشاء می گذرد الف ، ب )(آ،ب)هواپیما، و تعیین حداکثر نن– )ن(ن-1)(نامحدود) نیم خط. این نیم خطوط هواپیما را بیشتر به داخل تقسیم می کنند نن– )ن(ن-1)(نامحدود) برش های پای شکل .
متذکر می شویم که در نظر گرفتن مبدأ بی معنی است )(0،0)از الف ، ب )(آ،ب)-plane، زیرا هیچ خطی با این نقطه مطابقت ندارد.
ما این را با استفاده از دو مثال افزایش پیچیدگی نشان می دهیم.

مثال  2.

ابتدا می گیریم ن3ن=3و نقاط P هستند (ایکس1،y1) = )(ایکس1،�1)=(0،0)، (ایکس2،y2) = )(ایکس2،�2)=(0،1)و (ایکس3،y3) = )(ایکس3،�3)=(1،0). جدول زیر شش ترتیب احتمالی مجموعه شاخص را نشان می دهد }{1،2،3}و معادلات مربوطه که مجموعه ها را توصیف می کنند الف (من1،من2،من3)آ(من1،من2،من3)، برای (من1،من2،من3) ∈اس3(من1،من2،من3)∈اس3.

(من1،من2،من3)(من1،من2،من3) الف (من1،من2،من3)آ(من1،من2،من3)
)(1،2،3) ≤ ≤ a0≤ب≤آ
)(1،3،2) ≤ ≤ b0≤آ≤ب
)(2،1،3) ≤ ≤ aب≤0≤آ
)(2،3،1) ≤ ≤ 0ب≤آ≤0
)(3،1،2) ≤ ≤ bآ≤0≤ب
)(3،2،1) ≤ ≤ 0آ≤ب≤0
مجموعه ها الف (من1،من2،من3)آ(من1،من2،من3)با خطوط مشخص می شوند 0آ=0، 0ب=0و aب=آدر الف ، ب )(آ،ب)-سطح. این در شکل 2 نشان داده شده است . ما متذکر می شویم که مجموعه ها الف (من1،من2،من3)آ(من1،من2،من3)از نظر توپولوژیکی بسته هستند و برخی از مجموعه ها الف (من1،من2،من3)آ(من1،من2،من3)یک حاشیه را به اشتراک بگذارید که نیم خط است (همانطور که در شکل 2 مشاهده می شود ). مثلا، )آ(1،2،3)و )آ(2،1،3)محور a مثبت را به عنوان مرز به اشتراک بگذارید. برای تمام نقاط الف ، ب )(آ،ب)با ≥ 0آ≥0، ما سفارشات را داریم (ایکس1،y1) ≤ (ایکس2،y2) ≤ (ایکس3،y3)(ایکس1،�1)≤(ایکس2،�2)≤(ایکس3،�3)و (ایکس2،y2) ≤ (ایکس1،y1) ≤ (ایکس3،y3)(ایکس2،�2)≤(ایکس1،�1)≤(ایکس3،�3)، که مصادف هستند. در واقع، آایکس1≤ الفایکس2≤ الفایکس3آایکس1≤آایکس2≤آایکس3و آایکس2≤ الفایکس1≤ الفایکس3آایکس2≤آایکس1≤آایکس3هر دو مطابقت دارند ≤ ≤ a0≤0≤آبرای 0آ>0.
در مثال قبلی، شش مجموعه داریم الف (من1،من2،من3)آ(من1،من2،من3). استثنایی، برای ن3ن=3، ما داریم ن=نن– )2ن!=ن(ن-1)2این دیگر برای مقادیر بزرگتر N صادق نیست ، همانطور که مثال بعدی نشان می دهد.
در مثال 2 می بینیم که مجموعه مربوط به ترتیب است ، ، 21،3،2و ترتیب معکوس آن ، ، 12،3،1، برای مثال، )آ(1،3،2)و )آ(2،3،1)، بازتابی از یکدیگر در امتداد مبدأ هستند الف ، ب )(آ،ب)-سطح. این برای همه صدق می کند الف (من1،من2،من3)آ(من1،من2،من3)در مثال 2 (همانطور که با سایه های مربوط به زرد نشان داده شده است) و به طور کلی، همانطور که ویژگی زیر توضیح می دهد:

گزاره  1.

اگر (من1، ،منن) ∈اسن(من1،…،منن)∈اسن، سپس الف (منن، ،من1) = ) ∣ − − ) ∈ (من1، ،منن) }آ(منن،…،من1)={(آ،ب)∣(-آ،-ب)∈آ(من1،…،منن)}.

اثبات

اجازه دهید (من1، ،منن) ∈اسن(من1،…،منن)∈اسن. اگر ) ∈ (من1، ،منن)(آ،ب)∈آ(من1،…،منن)، سپس آایکسمن1بyمن1≤ الفایکسمن2بyمن2≤ ⋯ ≤ الفایکسمننبyمننآایکسمن1+ب�من1≤آایکسمن2+ب�من2≤⋯≤آایکسمنن+ب�مننو بنابراین – الفایکسمن1– بyمن1≥ – aایکسمن2– بyمن2≥ ⋯ ≥ − aایکسمنن– بyمنن-آایکسمن1-ب�من1≥-آایکسمن2-ب�من2≥⋯≥-آایکسمنن-ب�منن، که دلالت بر آن دارد − − ) ∈ (منن، ،من1)(-آ،-ب)∈آ(منن،…،من1). این یک شمول را ثابت می کند. شمول دیگر نیز همین برهان را دارد. ☐
مثال بعدی پیچیده تر، یک امتیاز به مجموعه P از مثال 2 اضافه می کند.

مثال  3.

در حال حاضر، ما می گیریم ن4ن=4و نقاط P هستند (ایکس1،y1) = )(ایکس1،�1)=(0،0)، (ایکس2،y2) = )(ایکس2،�2)=(0،1)، (ایکس3،y3) = )(ایکس3،�3)=(1،0)و (ایکس4،y4) = )(ایکس4،�4)=(2،1). خاصیت 1 نشان می دهد که ما فقط باید 12 مورد را در نظر بگیریم 244!=24جایگشت های مجموعه }{1،2،3،4}. جدول زیر این 12 ترتیب مجموعه شاخص را نشان می دهد }{1،2،3،4}و معادلات مربوطه که مجموعه ها را توصیف می کنند الف (من1،من2،من3،من4)آ(من1،من2،من3،من4).

(من1،من2،من3،من4)(من1،من2،من3،من4) الف (من1،من2،من3،من4)آ(من1،من2،من3،من4)
)(1،2،3،4) ≤ ≤ ≤ b0≤ب≤آ≤2آ+ب
)(1،2،4،3) ≤ ≤ ≤ a0≤ب≤2آ+ب≤آ
)(1،3،2،4) ≤ ≤ ≤ b0≤آ≤ب≤2آ+ب
)(1،3،4،2) ≤ ≤ ≤ b≤ b0≤آ≤2آ+ب≤ب→آ=0≤ب
)(1،4،2،3) ≤ ≤ ≤ a0≤2آ+ب≤ب≤آ
)(1،4،3،2) ≤ ≤ ≤ b0≤2آ+ب≤آ≤ب
)(2،1،3،4) ≤ ≤ ≤ bب≤0≤آ≤2آ+ب
)(2،1،4،3) ≤ ≤ ≤ aب≤0≤2آ+ب≤آ
)(2،3،1،4) ≤ ≤ ≤ bب≤آ≤0≤2آ+ب
)(2،4،1،3) ≤ ≤ ≤ aب≤2آ+ب≤0≤آ
)(3،1،2،4) ≤ ≤ ≤ b≤ bآ≤0≤ب≤2آ+ب→آ=0≤ب
)(3،2،1،4) ≤ ≤ ≤ bآ≤ب≤0≤2آ+ب
از آنجا که خط از طریق (ایکس1،y1) = )(ایکس1،�1)=(0،0)و (ایکس3،y3) = )(ایکس3،�3)=(1،0)و خط از طریق (ایکس2،y2) = )(ایکس2،�2)=(0،1)و (ایکس4،y4) = )(ایکس4،�4)=(2،1)، کمتر از وجود دارد – )264(4-1)2=6خطوط در الف ، ب )(آ،ب)هواپیما که محدوده مجموعه الف (من1،من2،من3،من4)آ(من1،من2،من3،من4). در واقع، آنها پنج هستند: 0آ=0، 0ب=0، aب=آ، – aب=-آو – aب=-2آ(همانطور که در جدول نیز مشاهده می شود). بنابراین، در اینجا الف ، ب )(آ،ب)همانطور که در شکل 3 نشان داده شده است، صفحه به ده نیم خط و ده برش پای شکل تقسیم شده است . نیمی از برش ها نشان داده نشده اند، اما می توان آنها را از طریق Property 1 به دست آورد. همچنین در شکل 3 حقایقی نشان داده نشده است که )آ(1،3،4،2)=آ(3،1،2،4)محور b غیر منفی است و آن }آ(1،2،4،3)=آ(1،4،2،3)=آ(2،3،1،4)=آ(3،2،1،4)={(0،0)}که با هیچ خطی مطابقت ندارد. بنابراین، ما داریم ⊂ )آ(1،3،4،2)=آ(3،1،2،4)⊂آ(1،2،3،4). این مشاهدات نشان می دهد که معمولا نه همه !4!(یا ن!ن!) مجموعه ها به طور جداگانه رخ خواهند داد.
اکنون، ساخت ساختار داده را نشان می دهیم P)�(پ)برای مثال های 2 و 3. ساختار P)�(پ)در اصل یک درخت AVL است. درختان AVL که به نام های Adelson-Velsky و Landis [ 11 ] نامگذاری شده اند، درختان جستجوی دودویی هستند. این بدان معنی است که در هر یک از گره های آن، موارد با مقادیر کلید کمتر از گره در زیردرخت فرزند سمت چپ و مقادیر بزرگتر از مقدار کلید از گره در زیردرخت فرزند سمت راست ذخیره می شوند. درخت‌های جستجوی دودویی که m مقادیر کلیدی را ذخیره می‌کنند، در حالت ایده‌آل، امکان جستجوی یک مقدار کلیدی معین را در زمان می‌دهند. log )�(ورود به سیستممتر). این پیچیدگی زمانی زمانی رخ می‌دهد که درخت‌های باینری نسبتاً متعادل باشند. در حالی که بسیاری از روش‌های درج و حذف گره ممکن است منجر به درخت‌های جستجوی باینری نامتعادل شوند (با پیچیدگی جستجو که ممکن است تبدیل شود). )�(متر)، به جای log )�(ورود به سیستممتر)روش درختی AVL به صورت پویا درخت AVL را پس از درج یا حذف گره ها با اعمال دنباله ای از چرخش ها یا چرخش های مضاعف متعادل می کند [ 11 ]. تعداد چرخش ها و دو چرخش های مورد نیاز برای متعادل کردن مجدد درخت در ارتفاع درخت خطی است. درخت‌های AVL «متعادل» باقی می‌مانند، به این معنا که برای هر گره، ارتفاع زیردرخت سمت چپ و زیردرخت سمت راست حداکثر یک تفاوت دارند. ارتفاع یک درخت را می توان به عنوان طول طولانی ترین مسیر از ریشه تا یک برگ تعریف کرد.

مثال  4.

دو مورد را در نظر می گیریم: ≥ 0آ≥0و 0آ<0. توسط اموال 1، مورد 0آ<0را می توان به مورد تقلیل داد 0آ>0(با استفاده از ترتیب معکوس). بنابراین، اساسا، مورد ≥ 0آ≥0، باید حل شود. فرض می کنیم ≥ 0آ≥0. ابتدا شیب نیم خط هایی را که در نیم صفحه پیدا می کنیم مرتب می کنیم 0آ>0در محدوده − ∞ ∞ ](-∞،+∞]. در اینجا، ما موافق هستیم که محور b مثبت با معادله 0آ=0به صورت بیان می شود ب/آ=+∞. در مثال 2، شیب ها را داریم 0ب/آ=0، 1ب/آ=1و ب/آ=+∞، که دستور را می دهند 0<1<+∞. ما از این شیب ها به عنوان مقادیر کلیدی برای ساختن درخت AVL استفاده می کنیم. برای مثال 2، این درخت در قسمت سمت چپ شکل 4 نشان داده شده است . ساختار داده مربوطه P)�(پ)در قسمت سمت راست شکل 4 نشان داده شده است . برای این مثال، درخت AVL کاملا متعادل است. فواصل آبی زیر برگ درخت AVL نشان می دهد که کدام قسمت از فاصله است − ∞ ∞ ](-∞،+∞]مطابق با یک برگ در این مثال، دنباله‌ای از فواصل باز-بسته در برگ‌ها را داریم: – ∞ ](-∞،0]، − ](0،-1]، ∞ ](1،+∞]و ∞ }{+∞}. یک افزونگی کوچک برای پرونده وجود دارد +∞که توسط دو برگ پوشیده شده است. این فقط زمانی رخ می دهد که ب/آ=+∞یک شیب است.
کادرهای قرمز رنگ در برگها ترتیب (شاخص) نقاط را نشان می دهد پ(ایکسمن،yمن) ∣ ، … ، N}پ={(ایکسمن،�من)∣من=1،…،ن}، برای فاصله شیب ها در هر برگ. هر کادر قرمز نشان دهنده (یا حاوی) یک درخت جستجوی دودویی در ترتیب (یا جایگشت) موجود در آن است.
در مثال 3، دو شیب اضافی داریم، یعنی – 2ب/آ=-2و – 1ب/آ=-1. این دستور را می دهد − -2<1<0<1<+∞از دامنه ها اگر درج کنیم – 2-2و – 1-1در درخت AVL شکل 4 ، درخت AVL و ساختار را بدست می آوریم P)�(پ)برای مثال 3، همانطور که در شکل 5 نشان داده شده است . در این مثال درخت AVL تقریبا متعادل است. ارتفاع زیردرخت سمت چپ ریشه یک بالاتر از زیردرخت سمت راست است.
ما خاطرنشان می کنیم که ارتفاع AVL از نظر تعداد گره های آن لگاریتمی است. از آنجایی که حداکثر وجود دارد نن– )2ن(ن-1)2دامنه ها، ارتفاع داریم ( logنن– )2) = log N)�(ورود به سیستمن(ن-1)2)=�(ورود به سیستمن). بنابراین، ما نیاز داریم log N)�(ورود به سیستمن)زمان برای یافتن برگ مربوط به شیب یک خط معین.
اکنون قسمت پایینی سازه را توضیح می دهیم P)�(پ)که با کادرهای قرمز رنگ در شکل 4 و شکل 5 نشان داده شده است . برای تعیین جایگشت سمت چپ، یک را انتخاب می کنیم 0آ>0و ب طوری که بآبآبه شدت کوچکتر از شیب اول است – 2-2. به عنوان مثال، ما می توانیم – 3ب=-3و 1آ=1و توجه داشته باشید که هر انتخاب دیگری به گونه ای که بآ– 2بآ<-2همان جایگشت را خواهد داد. بعد باید سفارش بدیم آایکسمنبyمنآایکسمن+ب�من، برای (ایکسمن،yمن∈ پ(ایکسمن،�من)∈پ، برای – 3ب=-3و 1آ=1. این ترتیب (یا جایگشت) را می دهد )(2،1،4،3). برای برگه بعدی سمت راست این برگه سمت چپ، نیازی به انجام مجدد فرآیند کامل سفارش نداریم. فقط امتیاز (ایکسمن،yمن)(ایکسمن،�من)و (ایکسj،yj)(ایکس�،��)برای کدام − ایکسمنایکسjyمنyj-2=-ایکسمن-ایکس��من-��می تواند هنگام عبور از شیب ترتیب را تغییر دهد – 2-2. در این مثال می بینیم که شیب – 2-2ناشی از (ایکس1،y1) = )(ایکس1،�1)=(0،0)و (ایکس4،y4) = )(ایکس4،�4)=(2،1)و در واقع، جای سوئیچ 1 و 4 در جایگشت )(2،1،4،3)دادن )(2،4،1،3)برای برگ بعدی ما یادآوری می کنیم که اطلاعات جایگشت در “جعبه های قرمز” را می توان در خود درخت AVL باینری ذخیره کرد.
اکنون می توان از درخت جستجوی شکل 5 برای پاسخ به پرسش محدوده نیم صفحه استفاده کرد. به عنوان مثال، اگر خط ℓ با معادله − سال02ایکس-3�+1=0داده می شود، جایگشت را پیدا می کنیم )(2،1،4،3)در برگ که با فاصله مطابقت دارد − − ](-2،-1]که در آن شیب – 32-32واقع شده است. برای دیدن کدام یک از (ایکس2،y2) = )(ایکس2،�2)=(0،1)، (ایکس1،y1) = )(ایکس1،�1)=(0،0)، (ایکس4،y4) = )(ایکس4،�4)=(2،1)، (ایکس3،y3) = )(ایکس3،�3)=(1،0)زیر ℓ هستند، ما محاسبه می کنیم 2ایکسمن– 3yمن2ایکسمن-3�منبرای ، ، ، 3من=2،1،4،3(به ترتیب) تا زمانی که این مقدار کاملاً پایین باشد − − 1-ج=-1. در این مورد فقط (ایکس2،y2) = )(ایکس2،�2)=(0،1)زیر ℓ یافت می شود.
اکنون قضیه زیر را نشان می‌دهیم که مثال‌های 2، 3 و 4 را تعمیم می‌دهد.

قضیه  2.

یک مجموعه داده شده است پ(ایکسمن،yمن) ∣ ، … ، N}پ={(ایکسمن،�من)∣من=1،…،ن}از N نقطه در آر2آر2، یک ساختار داده P)�(پ)از اندازه ای (ن3)�(ن3)می تواند در زمان ساخته شود ای (ن3)�(ن3)به طوری که برای هر خط ورودی ℓ در آر2آر2، توسط یک معادله داده می شود y0آایکس+ب�+ج=0، امکان تعیین از P)�(پ)که در log N)�(ورود به سیستمن)زمانی که کدام یک از نقاط N در زیر، بالا و روی خط ℓ قرار دارند.
ساختار داده را می توان به روز کرد ای (ن2ورود به سیستم N)�(ن2ورود به سیستمن)زمانی که نقطه ای به P اضافه می شود یا از P حذف می شود.
قبل از اینکه این قضیه را اثبات کنیم، متذکر می شویم که پیچیدگی تعیین از P)�(پ)، که از N نقطه ها در زیر، بالا و روی خط ℓ قرار دارندlog N)�(ورود به سیستمن)زمان. این شامل نوشتن پاسخ در مواقع ضروری نمی شود. بدیهی است که نوشتن این ترتیب لزوما ممکن است زمان خطی داشته باشد. با این حال، اگر به پاسخ اجازه داده شود که یک اشاره گر در درخت جستجو باشد و پاسخ واقعی شامل «همه نکاتی که قبل از این نقطه هستند» باشد، فهرست کردن مؤثر این نکات ممکن است ضروری نباشد. این امکان پذیر است زیرا جایگشت نقاط خود را می توان در یک درخت باینری (AVL) قرار داد. حال به اثبات قضیه می پردازیم.

اثبات

یک مجموعه داده شده است پ(ایکسمن،yمن) ∣ ، … ، N}پ={(ایکسمن،�من)∣من=1،…،ن}از N نقطه در آر2آر2، ابتدا شیب های موجود در را تعیین می کنیم الف ، ب )(آ،ب)-صفحه خطوط یک (ایکسمنایکسj) +ب (yمنyj) =0آ(ایکسمن-ایکس�)+ب(�من-��)=0، برای ≤ ≤ N1≤من<�≤ن. حداکثر وجود دارد نن– )2ن(ن-1)2چنین شیب هایی، که برخی ممکن است همزمان باشند. این طول می کشد ای (ن2)�(ن2)زمان و فضا.
اکنون، همانطور که در مثال 4 نشان دادیم، روی نیم صفحه تمرکز می کنیم که توسط ≥ 0آ≥0. برای رسیدگی به پرونده 0آ<0می توانیم از Property 1 استفاده کنیم. در این مرحله می توانیم قسمت بالایی را بسازیم P)�(پ)با ساختن یک درخت AVL روی شیب ها (به روشی که در مثال 4 نشان داده ایم). از آنجایی که هزینه درج یک گره در درخت AVL با n گره است log )�(ورود به سیستم�)، هزینه ساخت یک درخت AVL از n گره، با قرار دادن این n گره پشت سر هم، برابر است با log )�(�ورود به سیستم�)و درخت می گیرد )�(�)فضا. اعمال شده به تنظیمات ما، ما حداکثر نن– )2ن(ن-1)2شیب ها، بنابراین ساختن درخت AVL در این شیب ها طول می کشد ای (ن2ورود به سیستم N)�(ن2ورود به سیستمن)زمان و ای (ن2)�(ن2)فضا. اگر به برگ های درخت از چپ به راست نگاه کنیم، ساختن درخت AVL، به عنوان یک اثر جانبی، نظم شیب ها را ایجاد می کند. به این ترتیب، اطلاعات بازه‌ای را نیز بدست می‌آوریم که با فواصل آبی در شکل 4 و شکل 5 ارائه شده است .

پس از ساخته شدن درخت AVL، باید ترتیب (شاخص های) نقاط P را در هر یک از برگ های درخت تعیین کنیم. این ترتیبات با جایگشت در “جعبه های قرمز” در شکل 4 و شکل 5 نشان داده شده اند . بگذارید شیب هایی که در درخت AVL رخ می دهد باشد س1،س2، ،سکس1،س2،…،سک، با − ∞ <س1<س2⋯ <سک≤ ∞ .-∞<س1<س2<⋯<سک≤+∞.با گرفتن برخی از خودسرانه 0آ>0و ب طوری که − ∞ <بآ<س1-∞<بآ<س1و سفارش دادن آایکسمنبyمنآایکسمن+ب�من، برای ، نمن=1،…،ن، جایگشتی را بدست می آوریم که در سمت چپ ترین برگ درخت AVL است. ما می توانیم این جایگشت (در کادر قرمز) را به عنوان خود درخت AVL ذخیره کنیم. طول می کشد Nورود به سیستم N)�(نورود به سیستمن)زمان و N)�(ن)فضایی برای ساخت این درخت AVL کوچکتر برای ذخیره سفارش. برای برگ‌های بعدی (از چپ به راست در درخت می‌رویم)، همانطور که از مقداری شیب عبور می‌کنیم سسℓ، فقط ترتیب شاخص های i و j در مقایسه با برگ قبلی، اگر

سایکسمنایکسjyمنyj.سℓ=-ایکسمن-ایکس��من-��.
در واقع اگر، برای مثال آایکسمنبyمن≤ الفایکسjبyjآایکسمن+ب�من≤آایکس�+ب��برای بآ<سبآ<سℓ، پس داریم آایکسj+بyjآایکسمن+بyمنآ”ایکس�+ب”��≤آ”ایکسمن+ب”�منبرای س<بآسℓ<ب”آ”. این بدان معناست که با رفتن از چپ به راست از میان برگ‌های درخت AVL، می‌توانیم جایگشت‌ها را در زمان خطی در N به‌روزرسانی کنیم. به‌روزرسانی کنیم .
از آنجایی که درخت AVL دارد ای (ن2)�(ن2)برگ، کل زمان ساخت سازه P)�(پ)است ای (ن2ورود به سیستم N) +O ( Nورود به سیستم N) + (ن2⋅ ن) =O (ن3)�(ن2ورود به سیستمن)+�(نورود به سیستمن)+�(ن2·ن)=�(ن3). ما همان فضای محدود را داریم. اشاره می کنیم که ارتفاع کل سازه P)�(پ)که به دست می آوریم است ( logن2) +O ( log N) = log N)�(ورود به سیستمن2)+�(ورود به سیستمن)=�(ورود به سیستمن).
پیچیدگی زمان پرس و جو به شرح زیر است. در خط ورودی  که توسط معادله داده می شود y0آایکس+ب�+ج=0، طول می کشد log N)�(ورود به سیستمن)زمان تعیین برگ درخت AVL که شامل فاصله زمانی شیب است بآبآواقع شده است. در واقع، ارتفاع درخت AVL از نظر تعداد گره های آن لگاریتمی است که ای (ن2)�(ن2). اجازه دهید فرض کنیم که این برگ حاوی جایگشت است (من1،من2، ،منن)(من1،من2،…،منن)(در جعبه قرمزش). برای خروجی نقاطی که در زیر  هستند ، می نویسیم (ایکسمنj،yمنj)(ایکسمن�،�من�)به خروجی برای .�=1،2،…تا زمانیکه آایکسمنjبyمنj– جآایکسمن�+ب�من�<-ج. در حالت بدتر، خروجی شامل تمام نقاط P است . بدیهی است که این فرآیند نوشتن در اندازه خروجی زمان خطی می برد.
در نهایت، در مورد به روز رسانی درخت AVL زمانی که یک نقطه به P اضافه می شود یا یک نقطه از P حذف می شود، بحث می کنیم . افزودن یا حذف یک نقطه می تواند باعث معرفی یا حذف حداکثر N شیب شود. افزودن یا حذف N شیب در درخت AVL طول می کشد Nورود به سیستم N)�(نورود به سیستمن)زمان. در نهایت، جایگشت ها در برگ ها باید به روز شوند. یادآور می‌شویم که از آنجایی که فهرست‌های جایگشت خود به‌عنوان درخت‌های AVL ذخیره می‌شوند، پس حذف یک نقطه از P منجر به حذف یک برگ از درخت AVL در کادرهای قرمز می‌شود. به طور مشابه، افزودن یک نقطه به P منجر به افزودن یک برگ به درختان کوچک AVL می شود. این هزینه به روز رسانی دارد log N)�(ورود به سیستمن). بنابراین کل زمان به روز رسانی است ای (ن2ورود به سیستم N) .�(ن2ورود به سیستمن).این اثبات را به پایان می رساند. ☐

4. نزدیکترین نقطه به یک پرس و جو خط

قضیه  3.

یک مجموعه داده شده است پ(ایکسمن،yمن) ∣ ، … ، N}پ={(ایکسمن،�من)∣من=1،…،ن}از N نقطه در آر2آر2، یک ساختار داده L¯ص)�¯(پ)از اندازه ای (ن3)�(ن3)می تواند در زمان ساخته شود ای (ن3)�(ن3)به طوری که برای هر خط ورودی ℓ در آر2آر2، توسط یک معادله داده می شود y0آایکس+ب�+ج=0، می توان تعیین کرد، از L¯ص)�¯(پ)که در log N)�(ورود به سیستمن)زمان، کدام یک از N نقطه P نزدیکترین (یا دورتر از) خط ℓ است.

اثبات

اگر هر خطی به ما داده شود که توسط معادله توصیف شده است y0آایکس+ب�+ج=0و نکته (ایکس0،y0) ∈آر2(ایکس0،�0)∈آر2، سپس کوتاهترین فاصله بین آن خط و نقطه با عبارت داده می شود

∣ الفایکس0بy0ج آ2+ب2——√.∣آایکس0+ب�0+ج∣آ2+ب2.
بنابراین، تکنیک ها و ساختار داده شرح داده شده در بخش 3 را می توان برای پیش محاسبه برای یک مجموعه معین تنظیم کرد. پ(ایکسمن،yمن) ∣ ، … ، N}پ={(ایکسمن،�من)∣من=1،…،ن}از N نقطه در آر2آر2یک ساختار داده L¯ص)�¯(پ)از اندازه ای (ن3)�(ن3).
به خصوص، L¯ص)�¯(پ)را می توان در زمان محاسبه کرد ای (ن3)�(ن3)به طوری که برای هر خط معین  در آر2آر2با معادله y،آایکس+ب�+ج=0،می توان از آن تعیین کرد L¯ص)�¯(پ)که در log N)�(ورود به سیستمن)زمان اینکه کدام یک از نقاط N به خط  نزدیکتر است . در حقیقت، L¯ص)�¯(پ)فقط یک اصلاح جزئی از P)�(پ). به عنوان مثال، برای یافتن نزدیکترین نقطه به  ، از آن استفاده می کنیم P)�(پ)برای پیدا کردن اولین نقطه از P که زیر  و اولین نقطه P که بالای  است . ترتیب در درختان ردیف پایین تر از P)�(پ)می تواند برای این مورد استفاده شود. سپس تصمیم می گیریم که کدام یک از این دو نقطه به  نزدیکتر است و نتیجه نزدیکترین نقطه P به ℓ است. است .
برای یافتن دورترین نقطه P از  ، دوباره استفاده می کنیم P)�(پ)و به نقطه شروع و پایان ترتیبی که در ردیف بالایی پیدا می کنیم نگاه کنید P)�(پ). باز هم تصمیم می گیریم که کدام یک از این دو دورتر است و این نکته را به عنوان پاسخ برمی گردانیم. ☐
یافتن نزدیکترین فاصله هر نقطه در P به  نیز برای یافتن دقیق تعداد نقاط زیر  مفید است .

نتیجه  2.

اجازه دهید دnدمترمن�نزدیکترین فاصله هر نقطه در P به ℓ باشد. فرض کنید θ شیب ℓ باشد. سپس، ℓ _ℓ P)#آپپ��ایکس(ℓ،پ)=#بهل��(ℓ،پ)برای هرچی

max ( sin θایکسحداکثرایکسدقیقهددقیقه،cos θyحداکثرyدقیقهددقیقه) .متر>حداکثرگناه�ایکسحداکثر-ایکسدقیقهددقیقه،cos��حداکثر-�دقیقهددقیقه.

اثبات

واضح است که الگوریتم تقریب در بخش 2 در صورتی دقیق است که ارتفاع مثلث های اضافی کران پایین و کران بالایی کمتر از ددقیقهددقیقهزیرا در این صورت این مثلث های اضافی حاوی هیچ نقطه ای از P نیستند . همانطور که در شکل 6 نشان داده شده است ، اگر هر مثلث دارای طول a در امتداد محور x باشد، این حد ارتفاع را می توان تضمین کرد.یک <ددقیقهگناه θآ<ددقیقهگناه�و ارتفاع b در امتداد محور y با <ددقیقهcos θب<ددقیقهcos�. ما آن را میدانیم

=ایکسحداکثرایکسدقیقهآمتر=ایکسحداکثر-ایکسدقیقهآ

و

=yحداکثرyدقیقهب.متر=�حداکثر-�دقیقهب.

شرط سابق و یک <ددقیقهگناه θآ<ددقیقهگناه�دلالت بر آن دارد

sin θایکسحداکثرایکسدقیقهددقیقه.متر>گناه�ایکسحداکثر-ایکسدقیقهددقیقه.

به همین ترتیب، شرط دوم و <ددقیقهcos θب<ددقیقهcos�دلالت بر آن دارد

cos θyحداکثرyدقیقهددقیقه.متر>cos��حداکثر-�دقیقهددقیقه.
در نهایت، دو نابرابری نمایش داده شده آخر بر شرط قضیه دلالت دارند. ☐

5. نتیجه گیری ها

یک مشکل باز این است که تعیین کنیم آیا تکنیک های توصیف شده در بخش 2 و بخش 3 را می توان به بعد دلخواه d تعمیم داد . می توان مشاهده کرد که، برای N نقطه داده شده در ابعاد d ، شکل (آ1… ,آد)(آ1،…،آد)، ما خواهیم داشت نن– )2ن(ن-1)2ابرصفحه های فرم آ1ایکس1⋯ +آدایکسد0آ1ایکس1+⋯+آدایکسد+ج=0که تقسیم می کند آردآردحداکثر در 2د– 1ن2د-1نبخش ها با این حال، ساخت ساختار داده باید برای جستجوی موثر این بخش ها گسترش یابد.
همانطور که در مقدمه اشاره کردیم، تخمین انتخاب در مورد نقاط متحرک به معنای مشکل یافتن تعداد نقاط متحرکی است که در یک منطقه در یک زمان مشخص t . در مقابل، مشکل MaxCount می‌خواهد حداکثر تعداد نقاط متحرکی را که تا به حال در یک منطقه مشخص هستند و همچنین زمانی که حداکثر رخ می‌دهد، تخمین بزند. مشکل MaxCount در موردی که ناحیه مستطیلی است توسط اندرسون و ریوز [ 8 ] بررسی شد. زمانی که ناحیه در نظر گرفته شده ناحیه زیر یک خط باشد، یافتن MaxCount همچنان یک مشکل باز است.

منابع

  1. دی برگ، ام. چئونگ، او. ون کرولد، ام. Overmars, M. Computational Geometry: Algorithms and Applications , 3rd ed.; Springer: برلین، آلمان، 2008. [ Google Scholar ]
  2. پاچ، جی. آگاروال، هندسه ترکیبی PK ; جان وایلی و پسران: هوبوکن، نیوجرسی، ایالات متحده آمریکا، 1995. [ Google Scholar ]
  3. Preparata، FP; Shamos, MI Computational Geometry: An Introduction ; Springer: برلین، آلمان، 1985. [ Google Scholar ]
  4. Revesz, PZ مقدمه ای بر پایگاه های داده: از بیولوژیکی تا فضایی-زمانی ; Springer: برلین، آلمان، 2010. [ Google Scholar ]
  5. Samet, H. مبانی ساختارهای داده چند بعدی و متریک ; مورگان کافمن: برلینگتون، MA، ایالات متحده آمریکا، 2006. [ Google Scholar ]
  6. گوتینگ، آر. Schneider, M. Moving Object Databases ; Morgan Kaufmann: Burlington، MA، USA، 2005. [ Google Scholar ]
  7. ریگو، پی. شول، ام. Agnés, V. Introduction to Spatial Databases: Applications to GIS ; Morgan Kaufmann: Burlington، MA، USA، 2002. [ Google Scholar ]
  8. اندرسون، اس. Revesz، PZ Efficient MaxCount و عملگرهای آستانه اجسام متحرک. Geoinformatica 2009 ، 13 ، 355-396. [ Google Scholar ] [ CrossRef ]
  9. چوی، YJ; Chung, CW تخمین گزینش پذیری برای پرس و جوهای مکانی-زمانی به اجسام متحرک. در مجموعه مقالات کنفرانس بین المللی ACM SIGMOD 2002 در مدیریت داده ها، مدیسون، WI، ایالات متحده آمریکا، 4 تا 6 ژوئن 2002. ACM Press: نیویورک، نیویورک، ایالات متحده آمریکا، 2002; صص 440-451. [ Google Scholar ]
  10. سان، ج. تائو، ی. پاپادیاس، دی. Kollios، G. انتخابی پیوستن فضایی-زمانی. Inf. سیستم 2006 ، 31 ، 793-813. [ Google Scholar ] [ CrossRef ]
  11. ادلسون-ولسکی، جی. Landis, E. الگوریتمی برای سازماندهی اطلاعات. ریاضی شوروی Doklady 1962 ، 3 ، 1259-1263. [ Google Scholar ]
  12. اوبه، RO; Hsu، LS PostGIS در عمل ؛ انتشارات منینگ: جزیره پناهگاه، نیویورک، ایالات متحده آمریکا، 2011. [ Google Scholar ]
  13. پری، م. استرادا، ا. داس، اس. Banerjee, J. توسعه برنامه های GeoSPARQL با Oracle Spatial و Graph. در مجموعه مقالات اولین کارگاه بین المللی مشترک در مورد شبکه های حسگر معنایی و Terra Cognita (SSN-TC 2015) و چهارمین کارگاه بین المللی ترتیب و استدلال (OrdRing 2015) که با چهاردهمین کنفرانس بین المللی وب معنایی (ISWC 2015) برگزار شد. , PA, USA, 11–12 اکتبر 2015; Kyzirakos، K.، Henson، CA، Perry، M.، Varanka، D.، Grütter، R.، Calbimonte، J.، Celino، I.، Valle، ED، Dell’Aglio، D.، Krötzsch، M.، و همکاران، ویرایش. جلد 1488، ص 57–61.
  14. ریوز، پی. کانجامالا، پ. لی، ی. لیو، ی. Wang, Y. سیستم پایگاه داده محدودیت MLPQ/GIS. در مجموعه مقالات کنفرانس بین المللی ACM-SIGMOD در مدیریت داده ها، دالاس، TX، ایالات متحده، 16-18 می 2000. ACM Press: نیویورک، نیویورک، ایالات متحده آمریکا، 2000; پ. 601. [ Google Scholar ]
  15. شازل، بی. گیباس، ال. لی، دی. قدرت دوگانگی هندسی. BIT 1985 ، 25 ، 76-90. [ Google Scholar ] [ CrossRef ]
  16. Xiao, N. الگوریتم های GIS ; SAGE Publishing: New York, NY, USA, 2015. [ Google Scholar ]
  17. Revesz، PZ الگوریتم های نمایه سازی مستطیل کارآمد بر اساس تسلط نقطه. در مجموعه مقالات دوازدهمین سمپوزیوم بین المللی در بازنمایی و استدلال زمانی، برلینگتون، VT، ایالات متحده، 23-25 ​​ژوئن 2005. ص 210-212.
  18. درختان جستجوی چند بعدی باینری Bentley، JL که برای جستجوی انجمنی استفاده می شود. اشتراک. ACM 1975 ، 18 ، 509-517. [ Google Scholar ] [ CrossRef ]
شکل 1. تقریب نقاط زیر خط  با 4متر=4.
شکل 2الف ، ب )(آ،ب)– صفحه (به غیر از مرزهای مشترک) در شش برش پای شکل نامحدود (مجموعه ها) تقسیم شده است. الف (من1،من2،من3)آ(من1،من2،من3)در سایه های مختلف زرد)، که توسط خطوط مشخص می شود 0آ=0، 0ب=0و aب=آ(به رنگ آبی).
شکل 3الف ، ب )(آ،ب)-صفحه (جدا از مرزهای مشترک) در ده برش پای شکل نامحدود (مجموعه ها) تقسیم شده است. الف (من1،من2،من3،من4)آ(من1،من2،من3،من4)در سایه های مختلف زرد)، که توسط خطوط مشخص می شود 0آ=0، 0ب=0، aب=آ، – aب=-آو – aب=-2آ(به رنگ آبی). برش های بالای محور منفی a نشان داده نمی شوند، اما می توان از طریق Property 1 به دست آورد.
شکل 4. درخت AVL برای دامنه ها 0<1<+∞سمت چپ ) و ساختار مربوطه P)�(پ)سمت راست ) برای مجموعه P از مثال 2. فواصل آبی نشان دهنده مجموعه شیب پوشیده شده توسط یک برگ است.
شکل 5. درخت AVL برای دامنه ها − − -2<-1<0<1<+∞سمت چپ ) و ساختار مربوطه P)�(پ)سمت راست ) برای مجموعه P از مثال 3. فواصل آبی رنگ مجموعه شیب پوشیده شده توسط یک برگ را نشان می دهد.
شکل 6. نمای جزئی از یک تقسیم که زیر  مثلث با ددقیقهددقیقهارتفاع و اضلاع a و b به ترتیب موازی با محور x – و y – هستند.

بدون نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *