Overview of single source shortest paths all pairs shortest paths algorithms
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

Overview of Single-Source Shortest Paths & All-Pairs Shortest Paths Algorithms PowerPoint PPT Presentation


  • 140 Views
  • Uploaded on
  • Presentation posted in: General

Overview of Single-Source Shortest Paths & All-Pairs Shortest Paths Algorithms. By Mohammad Roohitavaf [email protected] Professor: Dr. Hasan Naderi Iran University Of Science and Technology 2009. محتوی :. پارامترها و اصطلاحات تقسیم بندی الگوریتم های SSP و ASP

Download Presentation

Overview of Single-Source Shortest Paths & All-Pairs Shortest Paths Algorithms

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Overview of single source shortest paths all pairs shortest paths algorithms

Overview of Single-Source Shortest Paths &All-Pairs Shortest PathsAlgorithms

By

Mohammad Roohitavaf

[email protected]

Professor:

Dr. HasanNaderi

Iran University Of Science and Technology

2009


Overview of single source shortest paths all pairs shortest paths algorithms

محتوی :

  • پارامترها و اصطلاحات

  • تقسیم بندی الگوریتم های SSP و ASP

  • الگوریتم های SSP :

    - لیست

    - توضیح

    - مقایسه

  • الگوریتم های ASP :

    - لیست

    - توضیح

    - مقایسه

    - منابع و مواخذ


Overview of single source shortest paths all pairs shortest paths algorithms

پارامترها و اصطلاحات

V : تعداد گره (راس) های گراف

E : تعداد یال های گراف

SSP : single-source shortest paths

یک بار اجرایش کوتاه ترین مسیر از یک گره به تمام گره های دیگر را مشخص می کند .

ASP: َall-pairs shortest paths

یک بار اجرایش کوتاه ترین مسیر از هر گره به تمام گره های دیگر را مشخص می کند .

- اجرای یک بار ASP= اجرای V بار SSP


Ssp asp

تقسیم بندی الگوریتم های SSP و ASP

  • SSP:

  • گراف یال با وزن منفی ندارد

  • گراف یال با وزن منفی دارد

  • ASP:

  • گراف یال با وزن منفی ندارد

  • گراف یال با وزن منفی دارد


Overview of single source shortest paths all pairs shortest paths algorithms

لیست الگوریتم های SSP

  • گراف یال با وزن منفی ندارد :

    1- Dijkestra :O(VlogV + E)

    2-Bellman-Ford : O(VE)

  • گراف یال با وزن منفی دارد :

    1-Bellman-Ford : O(VE)


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP

Dijkestra :

رجوع شود به :

Introduction to algorithm صفحه ی 595

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP(ادامه)

Bellman-Ford :

مراحل :

1- Initialize Graph

2- relax کردن یال ها

3- چک کردن دور با وزن منفی


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP (ادامه)

1- Initialize Graph :

for each vertex v in vertices:

if v is source then

v.distance := 0

else

v.distance := infinity

v.predecessor := null


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP (ادامه)

2- relax کردن یال ها :

forifrom 1 to size(vertices)-1:

for each edge uv in edges:

u := uv.source

v := uv.destination

ifu.distance + uv.weight < v.distance: v.distance := u.distance + uv.weightv.predecessor := u


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP (ادامه)

3- چک کردن دور با وزن منفی :

for each edge uv in edges:

u := uv.source

v := uv.destination

ifu.distance + uv.weight < v.distance:

error "Graph contains a negative-weight cycle"


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های SSP (ادامه)

مثال : دقت شود که در مرحله دو هر یال 4 بار چک می شود لذا 40 شکل لازم است . اشکال زیر چند نمونه هستند .

شکل (e) یال هایی که در نهایت کوتاه ترین مسیر را مشخص کرده اند را نشان می دهد


Overview of single source shortest paths all pairs shortest paths algorithms

مقایسه ی الگوریتم های SSP

  • یال با وزن منفی داریم :

    به ترتیب :

    Dijkestra[ O(VlogV + E) ]

    Bellman-Ford [ O(VE) ]

  • یال با وزن منفی نداریم :

    به ترتیب :

    Bellman-Ford [ O(VE) ]


Overview of single source shortest paths all pairs shortest paths algorithms

لیست الگوریتم های ASP

  • گراف یال با وزن منفی ندارد :

    1- V بار Dijkestra : O(V2logV + EV)

    2- V بار Bellman-Ford : O(V2E)

    3- Floyd-Warshall : O(V3)

  • گراف یال با وزن منفی دارد :

    1- Johnson : O(V2loV + EV)

    2- V بار Bellman-Ford : O(V2E)

    3- Floyd-Warshall : O(V3)


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP

Floyd-Warshal :

Introduction to algorithm صفحه ی 629

http://en.wikipedia.org/wiki/Floyd-Warshall_algorithm


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

Johnson:

مراحل :

1- اضافه کردن یک گره ی جدید به گراف

2- اجرای SSP با الگوریتم Bellman-Ford از گره ی جدید

3- reweight کردن یال ها

4-اجرایSSP با الگوریتم Dijkestraاز هر گره

- در واقع

Johnson = 1 بار Bellman-Ford + V بارDijkestra


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

توضیح مراحل با یک مثال

مثال :

گراف اصلی


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

1 – اضافه کردن یک گره ی جدید به گراف :

گره ی جدید را با یال با وزن صفر به تمام گره ها وصل می کنیم


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

2- اجرای SSP با الگوریتم Bellman-Form از گره ی جدید

برای هر راس h(v) ( کوتاه ترین فاصله از گره ی جدید )


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

3- reweight کردن یال ها :

وزن هر یال با فرمول زیر به روز می کنیم

w(u,v) = w(u , v) + h(u) – h(v)


Overview of single source shortest paths all pairs shortest paths algorithms

توضیح الگوریتم های ASP (ادامه)

4- اجرای SSP از هر گره با الگوریتم Dijkestra:

پس از اجرای این مرحله برای هر جفت از راس ها کوتاه ترین مسیر را مشخص کرده ایم .

  • اما فاصله ها بر اساس وزن های به روز شده اند و کوتاه ترین فاصله های صحیح نیستند .

  • کوتاه ترین فاصله های صحیح به صورت زیر قابل محاسبه هستند .

    distance(u,v) = distance(u,v) – h(u) + h(v)


Overview of single source shortest paths all pairs shortest paths algorithms

مقایسه ی الگوریتم های ASP

  • نکته : E<=V2

  • گراف یال با وزن منفی ندارد :

    به ترتیب :

    V بار Dijkestra : O(v2logv + EV)

    Floyd-Warshall : O(V3)

    V بار Bellman-Ford : O(V2E)

    - البته اگر گراف کامل باشد Johnson و Floy-Warshallاز یک مرتبه هستند :

    O(v3)

    زیرا E= V2


Overview of single source shortest paths all pairs shortest paths algorithms

مقایسه ی الگوریتم های ASP

  • نکته : E<=V2

  • گراف یال با وزن منفی دارد :

    به ترتیب:

    Johnson : O(V2logV+ EV)

    Floyd-Warshall : O(V3)

    V بار Bellman-Ford : O(V2E)

    - البته اگر گراف کامل باشد Johnson و Floy-Warshallاز یک مرتبه هستند :

    O(v3)

    زیرا E= V2


Overview of single source shortest paths all pairs shortest paths algorithms

منابع و مواخذ

  • Introduction to Algorithm

  • wikipedia.org


  • Login