۱
subtitle
ارسال: #۱
  
الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
با سلام
لطفا مدیر محترم ارجاعم ندن به این تاپیک :
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
چون جوابمو اونجا نگرفتم، در واقع تیتر تاپیک شباهتی به پاسخها نداشت.
دوستان ممنون میشم یه مقایسه کلی داشته باشن.
من به دنبال یافتن تفاوت این دو الگوریتم سرچ کردم این جواب رو جایی پیدا کردم که البته قانع کننده نبود برام!
"الگوریتم فلوید وارشال برای گراف با یال منفی است و وجود یال منفی را تشخیص می دهد ولی اگر دارای دور منفی باشد آنگاه آن را تشخیص می دهد اما گزارش نمی کند .
الگوریتم بلمن-فورد گراف با یال منفی را می پذیرد و چنانچه در گراف دچار دور منفی شویم آن را گزارش می دهد."
لطفا مدیر محترم ارجاعم ندن به این تاپیک :
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
چون جوابمو اونجا نگرفتم، در واقع تیتر تاپیک شباهتی به پاسخها نداشت.
دوستان ممنون میشم یه مقایسه کلی داشته باشن.
من به دنبال یافتن تفاوت این دو الگوریتم سرچ کردم این جواب رو جایی پیدا کردم که البته قانع کننده نبود برام!
"الگوریتم فلوید وارشال برای گراف با یال منفی است و وجود یال منفی را تشخیص می دهد ولی اگر دارای دور منفی باشد آنگاه آن را تشخیص می دهد اما گزارش نمی کند .
الگوریتم بلمن-فورد گراف با یال منفی را می پذیرد و چنانچه در گراف دچار دور منفی شویم آن را گزارش می دهد."
۲
ارسال: #۲
  
RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
(۱۳ آذر ۱۳۹۳ ۰۱:۱۵ ب.ظ)ldns0098 نوشته شده توسط: با سلام
لطفا مدیر محترم ارجاعم ندن به این تاپیک :
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
چون جوابمو اونجا نگرفتم، در واقع تیتر تاپیک شباهتی به پاسخها نداشت.
دوستان ممنون میشم یه مقایسه کلی داشته باشن.
من به دنبال یافتن تفاوت این دو الگوریتم سرچ کردم این جواب رو جایی پیدا کردم که البته قانع کننده نبود برام!
"الگوریتم فلوید وارشال برای گراف با یال منفی است و وجود یال منفی را تشخیص می دهد ولی اگر دارای دور منفی باشد آنگاه آن را تشخیص می دهد اما گزارش نمی کند .
الگوریتم بلمن-فورد گراف با یال منفی را می پذیرد و چنانچه در گراف دچار دور منفی شویم آن را گزارش می دهد."
الگوریتم فلوید واسه یافتن تمام کوتاه ترین مسیرها بکار میره(کوتاه ترین مسیر بین هر دو راس مشخص) و یک الگوریتم پویا می باشد.
این الگوریتم ماتریس های A1 تا An رو مرحله به مرحله میسازه و در مرحله K فقط رئوس ۱ تا K رو به عنوان رئوس میان بین هر دو راس در نظر میگیرد و به این سوال جواب میدهد که آیا راس kام رو بعنوان راس میانی در نظر بگیریم یا نه. اگر با وجود راس kام مسیر کوتاهتر شود آن را در نظر میگیرد در غیر این صورت درایه ij در ماترس k با درایه ij در ماتریس k-1 برابر است
الگوریتم بلمن فورد برای یافتن کوتاه ترین مسیرهای هم مبدا بکار میرود. مثلا کوتاه ترین مسیرها از راس A به سایر رئوس که به مراتب کار این الگوریتم بسیار کمتر از فلوید می باشد
روش کار این الگوریتم با فلوید فرق دارد.
این الگوریتم n-1 بار عمل relax رو تمام یالها انجام می دهد(هر بار روی تمام یال ها) در نهایت کوتاه ترین مسیرها از یک راس مشخص با سایر رئوس به دست می آید.
اگر گراف یال منفی داشته باشه هر دو الگوریتم درست کار میکنن البته به شرطی که سیکل منفی وجود نداشته باشد
اگر سیکل منفی وجود داشته باشد هر دو الگوریتم متوجه میشن و اعلام میکنن.
اگر سیکل منفی در گراف وجود داشته باشه دیگه کوتاه ترین مسیر بی معنی میشه
۲
ارسال: #۳
  
RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
با تشکر فراوان از آقای تیمورپور من یافته های خودم هم اضافه میکنم :
هدف :
وجود یال منفی:
هر دو الگوریتم درست کار میکنن البته به شرطی که سیکل منفی وجود نداشته باشد.
اگر سیکل منفی وجود داشته باشد هر دو الگوریتم متوجه میشن و اعلام میکنن.
اگر سیکل منفی در گراف وجود داشته باشد کوتاه ترین مسیر بی معنی شده و لازم به ذکر است که دایجسترا حتی در یافتن دور منفی هم شکست میخورد.
هدف :
- فلوید: یافتن تمام کوتاه ترین مسیرها(کوتاه ترین مسیر بین هر دو راس مشخص) و یک الگوریتم پویا می باشد.
- بلمن فورد: برای یافتن کوتاه ترین مسیرهای هم مبدا بکار میرود.
- فلوید: ماتریس های A1 تا An رو مرحله به مرحله میسازه و در مرحله K فقط رئوس ۱ تا K رو به عنوان رئوس میان هر دو راس در نظر میگیرد و به این سوال جواب میدهد که آیا راس kام رو بعنوان راس میانی در نظر بگیریم یا نه. اگر با وجود راس kام مسیر کوتاهتر شود آن را در نظر میگیرد در غیر این صورت درایه ij در ماتریس k با درایه ij در ماتریس k-1 برابر است.
- بلمن فورد: این الگوریتم n-1 بار عمل relax رو تمام یالها انجام می دهد(هر بار روی تمام یال ها) در نهایت کوتاه ترین مسیرها از یک راس مشخص با سایر رئوس به دست می آید.
- فلوید: O(v^3)i
- بلمن فورد:
- کوتاهترین مسیر از راس مبدا تا راس مقصد: O(EV)i
- کوتاهترین مسیر از راس مبدا تا راس مقصد در صورتیکه راس مبدا بتواند هر کدام از رئوس باشد:O(E*V^2)i
وجود یال منفی:
هر دو الگوریتم درست کار میکنن البته به شرطی که سیکل منفی وجود نداشته باشد.
اگر سیکل منفی وجود داشته باشد هر دو الگوریتم متوجه میشن و اعلام میکنن.
اگر سیکل منفی در گراف وجود داشته باشد کوتاه ترین مسیر بی معنی شده و لازم به ذکر است که دایجسترا حتی در یافتن دور منفی هم شکست میخورد.
۱
ارسال: #۴
  
RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
دقت کنیدبه این نکته که :
الگوریتم فلوید - وارشال برای پیدا کردن یک مسیر بهینه در گراف جهتدار هست.(کوتاهترین مسیر)-----> تو برنامه نویسی پویا این الگوریتم رو داشتیم.
ولی الگوریتم بلمن فورد برای پیدا کردن یک درخت پوشای مینیمم در یک گراف است.
الگوریتم فلوید - وارشال برای پیدا کردن یک مسیر بهینه در گراف جهتدار هست.(کوتاهترین مسیر)-----> تو برنامه نویسی پویا این الگوریتم رو داشتیم.
ولی الگوریتم بلمن فورد برای پیدا کردن یک درخت پوشای مینیمم در یک گراف است.
۰
ارسال: #۵
  
Re: RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
(۱۳ آذر ۱۳۹۳ ۰۶:۲۴ ب.ظ)zahra.s نوشته شده توسط: دقت کنیدبه این نکته که :
الگوریتم فلوید - وارشال برای پیدا کردن یک مسیر بهینه در گراف جهتدار هست.(کوتاهترین مسیر)-----> تو برنامه نویسی پویا این الگوریتم رو داشتیم.
ولی الگوریتم بلمن فورد برای پیدا کردن یک درخت پوشای مینیمم در یک گراف است.
عزیزم برای یافتن درخت پوشای مینیمم ما الگوریتمهای هوشمندانه؛ کراسکال؛ پریم رو داریم؛ این دو تا الگوریتم هر دو برای یافتن کوتاهترین مسیر هستن.
ارسال: #۶
  
RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
(۱۳ آذر ۱۳۹۳ ۰۷:۴۴ ب.ظ)ldns0098 نوشته شده توسط:(13 آذر ۱۳۹۳ ۰۶:۲۴ ب.ظ)zahra.s نوشته شده توسط: دقت کنیدبه این نکته که :
الگوریتم فلوید - وارشال برای پیدا کردن یک مسیر بهینه در گراف جهتدار هست.(کوتاهترین مسیر)-----> تو برنامه نویسی پویا این الگوریتم رو داشتیم.
ولی الگوریتم بلمن فورد برای پیدا کردن یک درخت پوشای مینیمم در یک گراف است.
عزیزم برای یافتن درخت پوشای مینیمم ما الگوریتمهای هوشمندانه؛ کراسکال؛ پریم رو داریم؛ این دو تا الگوریتم هر دو برای یافتن کوتاهترین مسیر هستن.
حرف شما صحیح ولی من جایی خوندم الگوریتم فلوید برای یافتن درخت پوشا و فلوید -وارشال برای مسیر بهینه هست!
ارسال: #۷
  
RE: الگوریتم "بلمن فورد" در مقایسه با "فلوید وارشال"
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close