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