درخت پوشای کمینه: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ربات: تصحیح پیوند به پروژههای خواهر و تبدیل کردن پیوندها به خنثی در برابر پروتکل |
|||
خط ۱:
'''درخت پوشای کمینه''' یا درخت فراگیر مینیمم در [[گراف|گرافهای]] ارزش دار (وزن دار) ساخته میشود.
فرض کنید گراف یک [[گراف همبند]] باشد (یعنی بین هردو رأس متمایز آن یک مسیر وجود داشته باشد) منظور از یک درخت پوشا از این گراف درختی است که شامل همه رئوس این گراف باشد ولی فقط بعضی از یالهای آنرا دربر گیرد. منظور از درخت پوشای مینیمم (برای گراف همبند وزن دار) درختی است که بین درختهای پوشای آن گراف، مجموع وزن یالهای آن، کمترین مقدار ممکن باشد.برای به دست آوردن درخت پوشای بهینه یک [[گراف جهت دار]] متصل می توان از الگوریتمهای متفاوتی استفاده نمود.سه الگوریتم معروف پیدا کردن درخت پوشای کمینه عبارتند از :
[[الگوریتم کروسکال]]
[[الگوریتم پریم]]
خط ۶۷:
== زمان اجرای الگوریتم prim ==
به چگونگی پیاده سازی صف اولویت Q بستگی دارد. اگر Q به صورت min-heap دودویی پیادهسازی شود. میتوانیم از روال BUILD-MIN-HEAP در خطوط ۵-۱ برای [[مقدار دهی اولیه]] در زمان(O(V استفاده کنیم. بدنه حلقهwhile، |V| بار اجرا میشود. و چون هر عمل EXTRACT-MIN زمان(O(lgV را صرف میکند زمان کل برای همه فراخوانی EXTRA-MIN برابر(O(vlogV است. حلقه for در خطوط ۱۱-۸ روی هم رفته (O(E بار اجرا میشود چون مجموعه طول همه لیستهای همجواری برابر ۲|E| میباشد. در داخل حلقه for بررسی برای عضویت در Q در خط ۹ میتواند در زمان ثابت با نگهداری یک بیت برای هر راس که بیان میکند آیا آن راس در Q قرار دارد یا خیر، پیاده سازی میشود و وقتی که راس از Q حذف شود بروز رسانی بیت انجام میگیرید. انتساب در خط۱۱ شامل یک عمل DECREASE- KEY ضمنی بر روی min-heap است که میتواند در min-heap دودویی در زمان(O(lgV پیادهسازی شود. بنابراین زمان کل برای الگوریتم Prim برابر(O(VlgV+ ElgV)= O(ElgV است که به طور مجانبی با پیادهسازی الگوریتم Kruskal یکسان میباشد.
اگر heap فیبوناچی برای پیاده سازی صف اولویت مینیمم Q استفاده شود. [[زمان اجرای الگوریتم]] Prim به(O(E+VlgV بهبود مییابد.
خط ۸۷:
[[رده:مسئلههای با پیچیدگی زمانی چندجملهای]]
[[رده:نظریه گراف]]
[[رده:ویکیسازی رباتیک]]
|