PDA

View Full Version : مشکل در پیاده سازی الگوریتم دیکسترا به زبان c++



myleila
شنبه 27 آبان 1385, 23:08 عصر
لطفا اگه کسی قطعه کد الگوریتم دیکسترا برای پیدا کردن کوتاهترین مسیر تک مبدا رو داره بزاره// من الگوریتمشو دارم ولی هرچی میکنم نمیتونم اونو با c++ پیاده سازی کنم
با تشکر

Identifier
یک شنبه 28 آبان 1385, 06:40 صبح
لطفا اگه کسی قطعه کد الگوریتم دیکسترا برای پیدا کردن کوتاهترین مسیر تک مبدا رو داره بزاره// من الگوریتمشو دارم ولی هرچی میکنم نمیتونم اونو با c++ پیاده سازی کنم
پس تلاش کن برنامه رو خودت بنویسی مشکلاتت رو مطرح کن کسائیی که بتونن راهنماییت میکنن.

myleila
یک شنبه 28 آبان 1385, 09:57 صبح
پس تلاش کن برنامه رو خودت بنویسی مشکلاتت رو مطرح کن کسائیی که بتونن راهنماییت میکنن.
زحمت کشیدی آقای مدیر کل اینو که خودمم میدونستم

محیا معمارزاده کرمانی
یک شنبه 28 آبان 1385, 19:45 عصر
با سلام و خسته نباشید:
سوالم در مورد اجرای بعضی از برنامه های c++ است که در حالیکه صورت کلی و نکات برنامه نویسی مشکی ندارد, ولی برنامه اجرا نمی شود دلیل آن چیست؟

powerboy2988
یک شنبه 28 آبان 1385, 19:48 عصر
با سلام و خسته نباشید:
سوالم در مورد اجرای بعضی از برنامه های c++ است که در حالیکه صورت کلی و نکات برنامه نویسی مشکی ندارد, ولی برنامه اجرا نمی شود دلیل آن چیست؟
اگه میشه اون خطاهای که ایجاد میشه رو بگید
--------------------

لطفا اگه کسی قطعه کد الگوریتم دیکسترا برای پیدا کردن کوتاهترین مسیر تک مبدا رو داره بزاره// من الگوریتمشو دارم ولی هرچی میکنم نمیتونم اونو با c++ پیاده سازی کنم
با تشکر سلام
اگه میشه الگوریتمشو برام بفرست که بتونم بنویسم

mehdi_zangian
یک شنبه 01 بهمن 1385, 13:31 عصر
با سلام خدمت دوستان عزیز.

نمیدونم چرا کتاب های گراف این مسئله ساده رو سخت توضیح دادن . من این برنامه رو با زبان ++c نوشتم الگوریتمی که تو برنامه اعمال کردم به صورت زیراست. امیدوارم براتون مفید باشه.

برای پیدا کردن مینیمم مسیر ابتدا ماتریس مجاورت را که مقدار هر درایه برابر وزن یال می باشد را از ورودی میگیریم.
سپس درایه ای رو که رئوسش به هم ربط مستقیم ندارند با ماکزیمم طول مسیر که جمع همه مسیر ها می باشد جایگزین میکنیم.

سپس مجموعه v که شامل رئوس گراف و مجوموعه S که ابتدا شامل نقطه شروع می باشد را تشکیل می دهیم . یکی از اعضای v را که دارای کمترین فاصله با مجموعه S می باشد را انتخاب می کنیم کمترین فاصله این عنصر را از نقطه شروع پیدا میکنیم سپس میبینیم که آیا نقاط دیگر S که به این نقطه وصلند مسیر کوتاهتری را بوسیله این عنصر طی میکنند یا نه درصورت مثبت بودن پاسخ مسیر جدید جایگزین مسیر قبلی می شود.
بدین ترتیب تک تک عناصر v به مجموعه s انتقال پیدا کرده و از مجموعه v کسر می شوند واین کار را تاخالی شدن v انجام می دهیم .ماتریس path را که اندیس اول شماره رئوس و اندیس دوم برای وزن(مقدار 0) و آخرین نقطه اتصالی به آن(1) می باشد را تعریف می کنیم .در آخر کوتاهترین مسیر هر نقطه به نقطه ابتدایی و وزن آن بدست می آید.

mehdi_zangian
یک شنبه 01 بهمن 1385, 13:35 عصر
[QUOTE=mehdi_zangian;300389]با سلام خدمت دوستان عزیز.

نمیدونم چرا کتاب های گراف این مسئله ساده رو سخت توضیح دادن . من این برنامه رو با زبان ++c نوشتم الگوریتمی که تو برنامه اعمال کردم به صورت زیراست. امیدوارم براتون مفید باشه.

برای پیدا کردن مینیمم مسیر ابتدا ماتریس مجاورت را که مقدار هر درایه برابر وزن یال می باشد را از ورودی میگیریم.
سپس درایه ای رو که رئوسش به هم ربط مستقیم ندارند با ماکزیمم طول مسیر که جمع همه مسیر ها می باشد جایگزین میکنیم.

سپس مجموعه v که شامل رئوس گراف و مجوموعه S که ابتدا شامل نقطه شروع می باشد را تشکیل می دهیم . یکی از اعضای v را که دارای کمترین فاصله با مجموعه S می باشد را انتخاب می کنیم کمترین فاصله این عنصر را از نقطه شروع پیدا میکنیم سپس میبینیم که آیا نقاط دیگر S که به این نقطه وصلند مسیر کوتاهتری را بوسیله این عنصر طی میکنند یا نه درصورت مثبت بودن پاسخ مسیر جدید جایگزین مسیر قبلی می شود.
بدین ترتیب تک تک عناصر v به مجموعه s انتقال پیدا کرده و از مجموعه v کسر می شوند واین کار را تاخالی شدن v انجام می دهیم .ماتریس path را که اندیس اول شماره رئوس و اندیس دوم برای وزن(مقدار 0) و آخرین نقطه اتصالی به آن(1) می باشد را تعریف می کنیم .در آخر کوتاهترین مسیر هر نقطه به نقطه ابتدایی و وزن آن بدست می آید.