۰
subtitle
ارسال: #۱
  
طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA (طراحی الگوریتم)
سلام
دوستان اگر کسی میتونه طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA رو بهم بگه ممنون میشم.
در زیر مراحل انجام این الگوریتمو گذاشتم ولی نمیدونم راهش چطوری؟؟تو کتاب توضیحی درباره روشش نداده.
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
دوستان اگر کسی میتونه طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA رو بهم بگه ممنون میشم.
در زیر مراحل انجام این الگوریتمو گذاشتم ولی نمیدونم راهش چطوری؟؟تو کتاب توضیحی درباره روشش نداده.
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
۰
ارسال: #۲
  
RE: طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA (طراحی الگوریتم)
سلام دوست عزیز
اگر منظورتون الگوریتم یافتن کوتاه ترین مسیر در گراف dag (گراف جهت دار بدون دور) هست یه این شرح است:
ابتدا به راس S صفر و به بقیه بی نهایت میدهیم سپس ترتیب توپولوژیکی گراف را با استفاده از پیمایش عمقی (DFS) گراف به دست می آوریم سپس به ترتیب راسها در ترتیب توپولوژیکی یالهایی که از هر راس خارج شده را Relax میکنیم.
مرتبه این الگوریتم هم همان مرتبه DFS هست. در این روش یالها میتوانند وزن منفی هم داشته باشند.
اگر منظورتون الگوریتم یافتن کوتاه ترین مسیر در گراف dag (گراف جهت دار بدون دور) هست یه این شرح است:
ابتدا به راس S صفر و به بقیه بی نهایت میدهیم سپس ترتیب توپولوژیکی گراف را با استفاده از پیمایش عمقی (DFS) گراف به دست می آوریم سپس به ترتیب راسها در ترتیب توپولوژیکی یالهایی که از هر راس خارج شده را Relax میکنیم.
مرتبه این الگوریتم هم همان مرتبه DFS هست. در این روش یالها میتوانند وزن منفی هم داشته باشند.
۰
ارسال: #۳
  
RE: طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA (طراحی الگوریتم)
میشه تو شکلی که دادم چند تا گامو برام توضیح بدید متوجه بشم؟؟
ممنون میشم اینکارو کنید.
ممنون میشم اینکارو کنید.
ارسال: #۴
  
RE: طریقه پیدا کردن کوتاه ترین مسیر درالگوریتم DGA (طراحی الگوریتم)
(۰۹ آذر ۱۳۹۲ ۱۱:۱۹ ق.ظ)tarane1992 نوشته شده توسط: میشه تو شکلی که دادم چند تا گامو برام توضیح بدید متوجه بشم؟؟بله حتما.
ممنون میشم اینکارو کنید.
ترتیب توپولوژیکی نودهای گراف همانطور که در شکل مشخص است این هست: r s t x y z
در گام اول S را صفر میدهیم چون نقطه ابتدایی مسیرهاست و بقیه نودها بی نهایت ، این مقدار در واقع distance ابتدایی هر نود هست.
گام دوم: با توجه به ترتیب ذکر شده ابتدا به r و بالهای خارج شده از آن نگاه میکنیم و برای هر یال relax را اجرا میکنیم. r دو یال خروجی دارد relax کردن یال rs: آیا مقدار فعلی S یعنی صفر بزرگتر از بی نهایت + ۵ است اگر باشد مقدار بی نهایت + صفر جایگزین مقدار فعلی اش میشود که در اینجا مسلما بزرگتر نیست پس چیزی را تغییر نمیدهیم و به سراغ یال بعدی میرویم که آنرا هم با توجه به مقایسه میفهمیم که نتیجه مقایسه بزرگتر نیست پس تغییری نمیکند.
گام سوم: نود S دو یال خروجی st و sx دارد: relax برای یال st: آیا ۰بی نهایت (مقدار فعلی t ) بزرگتر از ۰ + ۲ هست که هست پس مقدار ۰+۲ جایگزین مقدار فعلی t میشود ، سپس relax را برای یال sx انجام میدهیم که حاصل اینست که x هم مقدار جدید ۶ میگیرد.
سپس در گامهای بعدی را هم در هر گام برای نودهای بعدی به ترتیب یالهای خروجی از هر نود را relax میکنیم.
در نهایت طول کوتاهترین مسیر هر نود از مبدا S مقدار هر نود هست و کار تمام است.
امیدوارم توضیحم مفید باشد.
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close