صفحه: [1]   پایین
  چاپ صفحه  
نويسنده موضوع: الگوریتم دایجکسترا / Dijkstra's algorithm  (دفعات بازدید: 156 بار)
فاطیما
اگه نباشه جاش خالیه
***

امتیاز: +25/-0
تعداد ارسال: 67



WWW
« : 16 ارديبهشت 1387,ساعت 23:13:48 »

با سلام:

                                                           
ناراحت  ناراحت  ناراحت

آیا شما الگوریتم دیکسترا به همراه یکسری از اطلاعات در مورد آن را دارید ؟
خواهش می کنم هر کسی این الگوریتم را دارد در اختیار من هم قرار دهد .

با تشکر

-----------------------------------------------------------------------------------------
خدايا انکه در تنهاترين تنهاييم تنهاي تنهايم گذاشت!
خواهشي دارم . . .
تو در تنهاترين تنهاييش تنهاي تنهايش نذار.
« آخرين ويرايش: 28 آبان 1387,ساعت 04:49:14 توسط Siavash » گزارش به مدیر انجمن   خارج شده است

من تنها یک چیز می‌دانم و آن اینکه هیچ نمی‌دانم
Siavash
مدیر ارشد
*****

امتیاز: +438/-10
تعداد ارسال: 1359



« پاسخ #1 : 17 ارديبهشت 1387,ساعت 02:39:24 »

درباره الگوریتم دیکسترا(دایجسترا)

این الگوریتم که عنوانش را از ابداع کننده آن یعنی دیکسترا هلندی گرفته است کوتاهترین مسیر در یک گراف همبند ، جهت دار و وزن دار با وزن غیر منفی را بدست می آورد .

بطور مثال اگر تعدادی شهر را به وسیله یک گراف نشان دهیم و فاصله بین شهرها را بوسیله یالهای گراف نشان دهیم بطوریکه می دانیم فاصله بین دو شهر یک عدد مثبت است آنگاه می توان با استفاده از الگوریتم دیکسترا کوتاهترین مسیر بین دو شهر را بدست آورد .
این الگوریتم کوتاهترین فاصله بین مبدا با سایر شهرها را بدست می آورد و نمی تواند کوتاهترین فاصله بین هر دو نقطه دلخواه را بدست آورد(مگر آنکه بر روی همه مسیرها آن را اعمال کنیم) و یا نمی تواند گراف با یالهای دارای وزن منفی را پردازش کند برای این منظور باید از الگوریتم هایی نظیر فلوید- وارشال و بلمن- فورد استفاده نمایید . (در آینده به این الگوریتم ها نیز اشاره خواهم کرد)


شبه کد الگوریتم دیکسترا در زیر ارائه شده است
کد:
DIJKSTRA(G , W , S)
Initialize single-source ( G , S )
S={ }
Q=V[G]
While Q <> { } do
U = Extract-Min Q
S = S + {u}
For each vertex V member of ADJ[u] do
Relax (u , v , w)

توضیح بیشتر
در این الگوریتم دو مجموعه S,Q وجود دارد . مجموعه S شامل همه رئوس است این مجموعه برای آن است که ما به مقادیر ADJ که همان هزینه کوتاهترین مسیر است نیاز داریم . مجموعه Q نیز شامل همه رئوس است .
مجموعه S در ابتدا تهی می باشد و در هر گام یک عضو (راس) از مجموعه Q به مجموعه S انتقال می یابد ، این راس انتقال یافته در واقع همان راسی است که فاصله تا آن راس ، کمترین مقدار می باشد .

مرتبه اجرایی الگوریتم دیکسترا
این الگوریتم در پیاده سازی و بدست آوردن زمان مصرفی می تواند ساختار متفاوتی از خود نشان دهد اما اگر در پیاده سازی این الگوریتم از ساختارماتریس اسپارس و هرم-دوجمله ای (binary heap) استفاده نماییم و برای نگهداری مسیر از صف (Queue) بهره ببریم آنگاه زمان مصرفی این الگوریتم به حداقل مقدار خود یعنی (|O( ( |V| + |E| )* Log|V خواهد رسید . توجه شود اگر ساختار پیاده سازی از ماتریس اسپارس و هرم – دوجمله ای مینیمم استفاده نکند مرتبه زمانی به مقدار (O(V^2 + E) = O(V^2 خواهد رسید .



به نقل از khuisf-com86.blogfa.com نوشته رضا بزرگی، برگرفته از مقاله م.جم پور CIS2006 با تلخیص
« آخرين ويرايش: 28 آبان 1387,ساعت 04:49:59 توسط Siavash » گزارش به مدیر انجمن   خارج شده است

آنجا که همه مثل هم فکر میکنند، هیچ کس خیلی فکر نمیکند!
Siavash
مدیر ارشد
*****

امتیاز: +438/-10
تعداد ارسال: 1359



« پاسخ #2 : 17 ارديبهشت 1387,ساعت 02:40:53 »

برای اطلاعات تکمیلی: [شما اجازه دیدن لینک را ندارید:Register or Login]
گزارش به مدیر انجمن   خارج شده است

آنجا که همه مثل هم فکر میکنند، هیچ کس خیلی فکر نمیکند!
فاطیما
اگه نباشه جاش خالیه
***

امتیاز: +25/-0
تعداد ارسال: 67



WWW
« پاسخ #3 : 18 ارديبهشت 1387,ساعت 03:02:01 »

با سلام:

از پستی که برام گذاشته بودید ممنونم .
 این مطالب را قبلا پیدا کرده بودم ولی مشکل اینه که از این مطالب هیچی نمی فهمم.
باید بتونم کل الگوریتم و یا شبه کد اون را کامل توضیح بدم .

با تشکر

.......................................................
خدايا انکه در تنهاترين تنهاييم تنهاي تنهايم گذاشت!
خواهشي دارم . . .
تو در تنهاترين تنهاييش تنهاي تنهايش نذار.
[/COLOR]
« آخرين ويرايش: 28 آبان 1387,ساعت 04:50:29 توسط Siavash » گزارش به مدیر انجمن   خارج شده است

من تنها یک چیز می‌دانم و آن اینکه هیچ نمی‌دانم
صفحه: [1]   بالا
  چاپ صفحه  
 
پرش به :