تفاوت میان نسخه‌های «درخت پوشای کمینه»

بدون خلاصه ویرایش
جز (ربات ردهٔ همسنگ (۲۲) +تمیز(۲.۷): + رده:درخت پوشا)
'''درخت پوشای کمینه''' یا درخت فراگیر مینیمم در [[گراف|گراف‌های]] ارزش دار (وزن دار) ساخته می‌شود.
{{ادغام با|درخت فراگیر مینیمم}}
 
'''درخت پوشای کمینه''' در [[گراف|گراف‌های]] ارزش دار (وزن دار) ساخته می‌شود.
 
فرض کنید گراف یک گراف همبند باشد (یعنی بین هردو رأس متمایز آن یک مسیر وجود داشته باشد) منظور از یک درخت پوشا از این گراف درختی است که شامل همه رئوس این گراف باشد ولی فقط بعضی از یال‌های آنرا دربر گیرد. منظور از درخت پوشای مینیمم (برای گراف همبند وزن دار) درختی است که بین درخت‌های پوشای آن گراف، مجموع وزن یال‌های آن، کمترین مقدار ممکن باشد.برای به دست آوردن درخت پوشای بهینه یک گراف جهت دار متصل می توان از الگوریتم‌های متفاوتی استفاده نمود.سه الگوریتم معروف پیدا کردن درخت پوشای کمینه عبارتند از :
* ممکن است درختهایی که الگوریتم مذکور تولید می‌کنند، از لحاظ شکل ظاهری متفاوت باشند، ولی وزن همهٔ درخت‌ها یکسان است.
* مرتبهٔ زمانی الگوریتم پریم برابر (o(n^2 است. (حلقهٔ while، برای n دفعه و عمل یافتن از میان لبه‌های متصل به یک مجموعه دور خاص n دفعه اتفاق می افتد؛ که در مجموع برابر n^2 دفعه می‌شود).
 
== زمان اجرای الگوریتم 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 بهبود می‌یابد.
 
 
 
== الگوریتم سولین ==
۲۰٬۷۳۷

ویرایش