تالار گفتمان مانشت
الگوریتم کروسکال در گراف شلوغ - نسخه‌ی قابل چاپ

الگوریتم کروسکال در گراف شلوغ - nazanin2020 - 02 بهمن ۱۳۹۳ ۰۵:۴۵ ب.ظ

سرعت الگوریتم کروسکال در گراف شلوغ از پریم کمتره یا مساوین؟
پوران میگه کمتره (یعنی پریم سریعتره) ۶۰۰ مساله میگه مساوین
با تشکر

RE: الگوریتم کروسکال در گراف شلوغ - shayesteb - 02 بهمن ۱۳۹۳ ۰۶:۳۶ ب.ظ

سلام

میشه بگید کدوم صفجه از ۶۰۰ مسله این رو گفته ؟

RE: الگوریتم کروسکال در گراف شلوغ - tm.viper - 02 بهمن ۱۳۹۳ ۰۶:۳۹ ب.ظ

اره خوب درسته
هزینه بالایی رو باید داد برای مرتب سازی
چون مرتبه گراف از درجه دو میشه
E ~ n^2

RE: الگوریتم کروسکال در گراف شلوغ - nazanin2020 - 02 بهمن ۱۳۹۳ ۰۶:۴۹ ب.ظ

سلام Smile
سوال ۷۰ فصل ۶ رو ببینید
پاسخ تشریحیشو هم بخونید شاید من بد متوجه شدم Cool
اگ در دسترس نیست بگید عکسشو بذارم

RE: الگوریتم کروسکال در گراف شلوغ - artmiss - 02 بهمن ۱۳۹۳ ۰۶:۵۳ ب.ظ

من فک میکنم از نظر پیچیدگی مساوین ولی تو ضرایب کراسکال بهتره.

RE: الگوریتم کروسکال در گراف شلوغ - sanaz777 - 02 بهمن ۱۳۹۳ ۰۷:۱۸ ب.ظ

ادامه سوالشم بخونید گفته پریم از باینری هیپ استفاده میکنه که میشه از مرتبه e log n که با کراسکال یکی میشه یعنی دیگه پریم از مرتبه n^2 نیست پس از یک مرتبه میشن

RE: الگوریتم کروسکال در گراف شلوغ - nazanin2020 - 02 بهمن ۱۳۹۳ ۱۰:۰۱ ب.ظ

مرسی
بله درست میگید.
به اینکه با هیپ دوجمله ای هست دقت نکردم.
پس نتیجه این شد ک اگه با هیپ فیبوناچی صف اولویت در پریم رو ساخته باشه پریم سریعتره ولی الان چون با هیپ دوجمله ای ساخته شده سرعتشون یکیه ( در گراف شلوغ )
ممنون از همه Shy

RE: الگوریتم کروسکال در گراف شلوغ - L3ic - 02 بهمن ۱۳۹۳ ۱۱:۱۴ ب.ظ

شایدم بشه گفت اگه گراف کامل باشه تعداد یال ها مرتبه ۲ داره اونوقت با ۲^n پریم یکی میشه

۲ تا نکته که کلا بشه این مبحث رو جمع کرد

۱- اگر گراف با ماتریس پیاده شود آنگاه اگر خلوت باشد کراسکال بهتر است و اگر متراکم باشد پریم بهتر است
۲- اگر گراف با لیست پیاده سازی شود ، پیاده سازی از پریم وجود دارد که همیشه از کراسکال بهتر است

RE: الگوریتم کروسکال در گراف شلوغ - nazanin2020 - 03 بهمن ۱۳۹۳ ۰۲:۳۱ ب.ظ

ممنون
جدای از جواب این سوال،، این نکته ی دوم ک نوشتید واقعا برای من سواله

پیاده سازی پریم با استفاده از نمایش گراف به صورت ماتریس مجاورت [tex]O(v^2)[/tex] زمان می‌بره. بااستفاده از داده ساختار هیپ دودوئی ساده و نمایش فهرست مجاورت در زمان [tex]o(elogv)[/tex]است. استفاده از هیپ فیبوناچی [tex]o(e \: vlogv)[/tex]

ک اگ گراف خلوت باشه کروسکال [tex]o(elogv)[/tex] میشه ک دیگه فوقش با هم مساوین Big Grin. میشه بپرسم شما از روی چی این نکته رو میگید؟ من ک هر چی کتاب دیدم میگن در گراف خلوت کراسکال بهتر عمل میکنه

RE: الگوریتم کروسکال در گراف شلوغ - L3ic - 03 بهمن ۱۳۹۳ ۱۰:۴۰ ب.ظ

(۰۳ بهمن ۱۳۹۳ ۰۲:۳۱ ب.ظ)nazanin2020 نوشته شده توسط:  ممنون
جدای از جواب این سوال،، این نکته ی دوم ک نوشتید واقعا برای من سواله

پیاده سازی پریم با استفاده از نمایش گراف به صورت ماتریس مجاورت [tex]O(v^2)[/tex] زمان می‌بره. بااستفاده از داده ساختار هیپ دودوئی ساده و نمایش فهرست مجاورت در زمان [tex]o(elogv)[/tex]است. استفاده از هیپ فیبوناچی [tex]o(e \: vlogv)[/tex]

ک اگ گراف خلوت باشه کروسکال [tex]o(elogv)[/tex] میشه ک دیگه فوقش با هم مساوین Big Grin. میشه بپرسم شما از روی چی این نکته رو میگید؟ من ک هر چی کتاب دیدم میگن در گراف خلوت کراسکال بهتر عمل میکنه

منبع ۲ تا نکته که گفتم کلاس آقای یوسفی بود
خودشون سریحا این جملات رو قید کردن و توضیحی ندادند

اما نظر من اینه که چون e log e مرتبه کراسکال به خاطر مرتب سازی یال هاست و مرتب سازی حداقل n log n است و گاهی بیشتر
اما مرتبه هیپ حداکثر n log n و گاهی کمتر میشه پس پریم با هیپ همیشه میتونه مرتبه خوبی داشته باشه

(این نظر منه، دوستان که از من وارد ترن تو درستی یا نادرستی این جمله اظهار نظر کنند)

RE: الگوریتم کروسکال در گراف شلوغ - nazanin2020 - 04 بهمن ۱۳۹۳ ۰۲:۵۰ ق.ظ

(۰۳ بهمن ۱۳۹۳ ۱۰:۴۰ ب.ظ)L3ic نوشته شده توسط:  منبع ۲ تا نکته که گفتم کلاس آقای یوسفی بود
خودشون سریحا این جملات رو قید کردن و توضیحی ندادند

اما نظر من اینه که چون e log e مرتبه کراسکال به خاطر مرتب سازی یال هاست و مرتب سازی حداقل n log n است و گاهی بیشتر
اما مرتبه هیپ حداکثر n log n و گاهی کمتر میشه پس پریم با هیپ همیشه میتونه مرتبه خوبی داشته باشه

(این نظر منه، دوستان که از من وارد ترن تو درستی یا نادرستی این جمله اظهار نظر کنند)

من تا به حال اینو نشنیده بودم Cool

پس حداقل حتما باید توی صورت سوال بگن با چی ساخته شده Smile

اگه نگن بنظر من باید پیش فرض رو همون e logv در نظر بگیریم .