الگوریتم امروز

وبلاگ تخصصی الگوریتم

الگوریتم امروز

وبلاگ تخصصی الگوریتم

وبلاگ علمی و مخصوص مباحث الگوریتمی است.
نظر خصوصی نگذارید چون جواب نمی‌دهم نظر عمومی بگذارید بدون نام هم که باشد همانجا جواب می‌دهم.

بایگانی

مساله های شبه LP

دوشنبه, ۲ دی ۱۳۹۲، ۱۰:۳۹ ق.ظ

مساله های شبیه LP یا LP-type problem ها مساله هایی هستند که با همان ایده ی LP حل می شوند اما LP نیستند.

یکی از ایده هایی که به کار می رود ایده ی seidel است (تصادفی افزایشی).

مثال:

برای مجموعه ای از نقاط در صفحه کوچکترین دایره شامل همه ی نقاط را پیدا کنید.

پیدا کردن دایره: سه نقطه روی محیط آن یا دو نقطه روی قطر آن

الگوریتم تصادفی welz و Seidel

ایده: یک نقطه روی محیط را داریم.

تابع بازگشتی: circle(S,B) را تعریف می کنیم. در آن S مجموعه نقاط است و B نقاط روی محیط کوچکترین دایره ی محیطی این نقاط است.

شروع الگوریتم: circle(all points, empty)

حالت پایه: اگر S تهی بود یا B سه عضو داشت جواب را برگردان.

یک نقطه ی تصادفی از S را بردار و circle(S-{p},B) را صدا کن.

اگر نقطه ی p درون دایره افتاد همین جواب را برگردان، در غیر این صورت p روی محیط دایره می افتد و circle(S-{p},B U {p}) را برگردان.

( مثل استقرای قهقرایی :) )

زمان الگوریتم:

احتمال اینکه نقطه روی دایره بیفتند : 3 تقسیم بر n (شبیه 2 تقسیم بر n برای LP)

T(n,b) = T(n-1,b)+O(1)+3/n*T(n-1,b+1)

T(n,3) = O(1)

==>

T(n,2) <= T(n-1,1)+O(1)+T(n-1,3)=T(n-1,1)+O(1) ==> T(n,2) = O(n)

T(n,1) <= T(n-1,1)+O(1+3/n*n) ==> T(n,1) = O(n)

T(n,0) = T(n-1,0)+O(1)+3/n*T(n-1,1) <= T(n-1,0)+O(1)+3/n*O(n) = T(n-1,0)+O(1) ==> T(n,0) = O(n) 

تعمیم:

برای حالت d بعدی، زمان (d+1)!n به دست می آید.

بهتر از این هم هنوز حل نشده است. :)

موافقین ۰ مخالفین ۰ ۹۲/۱۰/۰۲
سپیده آقاملائی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی