Presentation is loading. Please wait.

Presentation is loading. Please wait.

ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر

Similar presentations


Presentation on theme: "ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر"— Presentation transcript:

1 ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر
ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر Give qualifications of instructors: DAP teaching computer architecture at Berkeley since 1977 Co-athor of textbook used in class Best known for being one of pioneers of RISC currently author of article on future of microprocessors in SciAm Sept 1995 RY took 152 as student, TAed 152,instructor in 152 undergrad and grad work at Berkeley joined NextGen to design fact 80x86 microprocessors one of architects of UltraSPARC fastest SPARC mper shipping this Fall

2 مساله کوتاهترین مسیر برای یک فرستنده
از یک نود شروع کنید و کوتاهترین مسیر به سمت بقیه ی نودها را پیدا کنید. الگوریتم دکسترا به صورت حریصانه کوتاهترین مسیرها را پیدا کنید. یعنی هر بار نودی که کمترین فاصله را دارد را انتخاب کرده و فاصله ی بقیه نودها را نسبت به نودهای انتخاب شده تازه کنید. کاربردها: مسافرت از طریق نقشه آنالیز تاخیر مدارات دیجیتال سیم کشی و جانمایی مدارات دیجیتال مسیریابی شبکه تجارت

3 مساله ی کوتاهترین مسیر u 10 4 3 1 5 5 2 v 7 6
وزن: هزینه، فاصله، مدت زمان صفر، گام ... u 10 4 3 1 5 5 2 v 7 6

4 مثالی از الگوریتم دکسترا
الگوریتم حریصانه: کوتاهترین مسیر را ار V0 پیدا کنید. تمام وزنها بزرگتر از صفر هستند. node from node V0 to other nodes V1 10 V2 5 V3 V4 best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

5 مثالی از الگوریتم دکسترا
قدم اول: کوتاهترین مسیرها از نود صفر را پیدا کنید. نود ۲ انتخاب می شود. node from node V0 to other nodes V1 10 V2 5 V3 V4 best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

6 مثالی از الگوریتم دکسترا
قدم ۲: دوباره کوتاهترین مسیرها را محاسبه کنید. این بار نود ۴ انتخاب می شود. node from node V0 to other nodes V1 10 8 V2 5 V3 14 V4 7 best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

7 مثالی از الگوریتم دکسترا
قدم ۳: دوباره کوتاهترین مسیرها را محاسبه کنید. این بار نود ۱انتخاب می شود. node from node V0 to other nodes V1 10 8 V2 5 V3 14 13 V4 7 best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

8 مثالی از الگوریتم دکسترا
قدم ۴: دوباره کوتاهترین مسیرها را محاسبه کنید. این بار نود ۳ انتخاب می شود. node from node V0 to other nodes V1 10 8 V2 5 V3 14 13 9 V4 7 best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

9 مثالی از الگوریتم دکسترا
حال ما کوتاهترین مسیرها از نود صفر به همه ی نودها را داریم. node from node V0 to other nodes V1 10 8 (0,2) (0,2,1) V2 5 V3 14 (0,2,3) 13 (0,2,4,3) 9 (0,2,1,3) V4 7 (0,2,4) best 1 1 3 10 2 3 9 4 6 source 5 7 2 4 2

10 تمام فواصل را برابر بی‌نهایت قرار دهید.
الگوریتم دکسترا نود منبع را علامت بزنید. تمام فواصل را برابر بی‌نهایت قرار دهید. فاصله ی منبع از خودش را برابر صفر قرار دهید. منبع را به عنوان نود جاری انتخاب کنید. تا وقتی که نودی وجود داشته باشد که علامت نخورده باشد فاصله‌ی تمام همسایه‌های علامت نخورده را با توجه به نود جاری تازه کنید. نود علامت نخورده‌ای را پیدا کنید که فاصله‌ی آن از منبع حداقل باشد. این نود را به عنوان نود جاری انتخاب کنید و آنرا علامت بزنید.

11 پیچیدگی الگوریتم دکسترا
برای یک گراف با N نود و E یا: مقدار دهی اولیه: O(N) حلققه ی while : تعداد تکرارها N و هر تکرار O(N) لذا O(N*N) = O(N2) در حالت کلی، زمان اجرای الگوریتم برای پیدا کردن کوتاهترین مسیر از هر نود به تمام نودها O(N3) خواهد بود.

12 الگوریتم دکسترا برای یک فرستنده
کوتاهترین مسیر الگوریتم دکسترا برای یک فرستنده یک آرایه شامل فاصله از بقیه نودها داریم. این آرایه در ابتدا با مقدار بی نهایت پر می‌گردد.

13 Dijkstra Algorithm in Java (Part 1)

14 Dijkstra Algorithm in Java (Part 2)

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

16 فروشنده ی دوره گرد کوتاهترین مسیر را شامل همه ی نودها پیدا کنید به طوری که هر نود فقط یکبار دیده شود. 1 1.5 3 2 7 4 2 5 6 0.5 1 3 3 5 8 1.3 4 199 6

17 فروشنده ی دوره گرد جواب: 1.5 1.5 3 3 2 2 5 5 6 6 0.5 0.5 1 3 3 1.3 1.3
7 4 2 2 5 5 6 6 0.5 0.5 1 3 3 3 5 8 1.3 1.3 4 199 199 6

18 فروشنده ی دوره گرد فروشنده ی دوره گرد در گرافهای وزندار جواب چندجمله ای شناخته شده ندارد. این مساله به دسته ی مسايل NP-complete تعلق دارد. اگر نشان دهید که TSP ساده یا سخت است مشهور خواهید شد.

19 Dijkstra’s algorithm effective in discovering shortest paths
خلاصه Shortest path solutions find lowest cost path from a vertex to other vertices Dijkstra’s algorithm effective in discovering shortest paths O(V2) complexity Floyd Warshall Algorithm Locate shortest paths from all vertices to all other vertices Bellman Ford Algorithm Negative weights Traveling Salesman Problem Very useful algorithms: networking, circuits, operations research, robotics,…


Download ppt "ساختمان داده‌ها الگوریتمهای کوتاهترین مسیر"

Similar presentations


Ads by Google