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

دانشنامه عمومی

الگوریتم پریم، الگوریتمی در نظریه گراف ها است که زیردرخت پوشای کمینه را برای یک گراف همبند وزن دار پیدا می کند یعنی زیرمجموعه ای از یال ها را در آن گراف می یابد که درختی را تشکیل می دهند که همه رئوس را شامل می شود در حالیکه مجموع وزن همه آن یال ها کمینه شده است. این الگوریتم در سال ۱۹۳۰ توسط ریاضیدانی به نام جارنیک داده شد و سپس در سال ۱۹۵۷ پریم، دانشمند علوم کامپیوتر آن را مستقل از جارنیک کشف کرد و در سال ۱۹۵۹ دایکسترا دوباره به آن دست یافت. از این رو این الگوریتم گاهی با نام الگوریتم DJP نیز شناخته می شود که برگرفته از اسامی دایکسترا، جارنیک و پریم است.
این الگوریتم مرتب سازی درخت را که از یک یال شروع شده است، افزایش می دهد تا جایی که که همه رئوس وارد درخت شوند.
این الگوریتم را به طور خلاصه می توان چنین شرح داد:
• ورودی: یک گراف همبند وزن دار با مجموعه رئوس V و یالهای E
• مقدار دهی اولیه: {Vnew = {x که Vnew مجموعه رئوس درخت پوشای کمینه در حالت آغازین را نشان می دهد و x یک راس دلخواه است ( نقطه شروع ) و{} = Enew که Enew بیانگر مجموعه یالهای این درخت است.
• حلقه زیر را تا وقتی که Vnew = V تکرار کن:
• یال ( u, v ) را با وزن کمینه انتخاب کن به طوری که u در Vnew قرار داشته باشد ولی v عضوی از این مجموعه نباشد ( اگر چند یال باوزن یکسان وجود دارند یکی را به دلخواه انتخاب کن )
• راس v را به Vnew و یال ( u , v ) رابه Enew اضافه کن.
نکته: الگوریتم پریم را به این صورت نیزمی توان بیان کرد:ابتدا گره ای به دلخواه انتخاب شود و سپس از بین یالهای متصل به آن یالی که با کمترین وزن انتخاب می شود متصل شود به گونه ای که حلقه ایجاد نشود. در هر مرحله یالی انتخاب می شود که حتماً یکی از دو سرآن جزو مسیر جواب بوده و وزن حداقل داشته باشد. پس در الگوریتم پریم دو محدودیت در هر مرحله داریم یکی آن که جنگل ایجاد نشود و دوم آنکه حلقه شکل نگیرد.
از آنجا که در الگوریتم پریم در هر مرحله فاصله هر گره با گره های قبلی مقایسه می شود پس بدیهی است که از مرتبه ( n2 ) Ѳ می باشد که n تعداد رئوس گراف است.
یک پیاده سازی ساده، استفاده از نمایش گراف به صورت ماتریس مجاورت است که در آن به دنبال آرایه ای از وزنها باشیم و یال های با وزن کمینه را به مجموعه خود اضافه کنیم. این روش ( O ( V۲ زمان می برد. الگوریتم پریم بااستفاده از داده ساختار هیپ دودویی ساده و نمایش فهرست مجاورت می تواند در زمان ( O ( E log V اجرا شود که در آن E تعداد یالها و V تعداد رئوس است. استفاده از مدل پیچیده تری به نام هیپ فیبوناچی باعث می شود این زمان تا حد ( O ( E + V log V کاهش یابد. سرعت این روش به خصوص زمانی آشکار می شود که در گراف رابطه ( E = ω ( V بین رئوس و یالها برقرار باشد.
عکس الگوریتم پریمعکس الگوریتم پریمعکس الگوریتم پریمعکس الگوریتم پریمعکس الگوریتم پریمعکس الگوریتم پریم
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس