در این مطلب، ویدئو برنامه نویسی رقابتی با پایتون | الگوریتم Dijkstra برای نمودار وزنی جهت دار با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:33
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,760
سلام به همه شما به دانش برنامه نویسی خوش آمدید،
2
00:00:01,760 –> 00:00:03,520
پس من دوباره به همه شما خوش آمد می گویم به
3
00:00:03,520 –> 00:00:05,040
4
00:00:05,040 –> 00:00:05,759
دانش برنامه نویسی آموزشی دیگری،
5
00:00:05,759 –> 00:00:07,359
پس بیایید با آموزش امروز شروع کنیم،
6
00:00:07,359 –> 00:00:08,800
7
00:00:08,800 –> 00:00:11,280
شما می توانید به شما مراجعه
8
00:00:11,280 –> 00:00:12,799
9
00:00:12,799 –> 00:00:15,040
10
00:00:15,040 –> 00:00:16,560
کنید.
11
00:00:16,560 –> 00:00:17,520
python
12
00:00:17,520 –> 00:00:19,439
اوه اینجا همه کدهایی را که
13
00:00:19,439 –> 00:00:20,880
قبل از این آموزش پیاده سازی شده اند دریافت خواهید کرد
14
00:00:20,880 –> 00:00:23,199
و می توانید این کد را روی
15
00:00:23,199 –> 00:00:24,400
ماشین محلی خود اجرا کنید،
16
00:00:24,400 –> 00:00:26,000
بنابراین بیایید با آموزش امروز شروع کنیم،
17
00:00:26,000 –> 00:00:27,519
بنابراین آموزش امروز در
18
00:00:27,519 –> 00:00:29,840
مورد الگوریتم هاضم برای
19
00:00:29,840 –> 00:00:31,199
نمودار وزنی جهت دار است،
20
00:00:31,199 –> 00:00:33,840
بنابراین این یک بسیار معروف است. الگوریتم و
21
00:00:33,840 –> 00:00:36,399
این برای پیادهسازی کوتاهترین مسیر منبع تک
22
00:00:36,399 –> 00:00:37,520
23
00:00:37,520 –> 00:00:39,440
برای نمودار وزنی جهتدار یا
24
00:00:39,440 –> 00:00:41,360
الگوریتم هضم استفاده میشود، بنابراین
25
00:00:41,360 –> 00:00:45,280
آنچه میتوانید انجام دهید بیایید
26
00:00:45,280 –> 00:00:46,879
تفاوت اساسی را ببینیم
27
00:00:46,879 –> 00:00:49,440
کوتاهترین مسیر منبع تک الگوریتم هضم است
28
00:00:49,440 –> 00:00:53,280
و این یک رویکرد حریصانه است، خوب
29
00:00:53,280 –> 00:00:56,879
یک رویکرد حریصانه و اوه نیز کوتاه ترین
30
00:00:56,879 –> 00:00:57,280
مسیر
31
00:00:57,280 –> 00:01:00,640
، الگوریتم فلوید وارشال است، بنابراین
32
00:01:00,640 –> 00:01:03,680
این در مورد الگوریتم شستشوی فلوید است
33
00:01:03,680 –> 00:01:07,840
و می توانم به شما بگویم که این یکی
34
00:01:07,840 –> 00:01:10,840
اساساً نوعی رویکرد برنامه نویسی پویا
35
00:01:10,840 –> 00:01:12,479
است، بنابراین از
36
00:01:12,479 –> 00:01:15,920
فلوید وارشال برای تولید استفاده می
37
00:01:15,920 –> 00:01:16,720
شود
38
00:01:16,720 –> 00:01:19,439
.
39
00:01:19,439 –> 00:01:19,759
40
00:01:19,759 –> 00:01:23,280
41
00:01:23,280 –> 00:01:26,320
42
00:01:26,320 –> 00:01:28,240
43
00:01:28,240 –> 00:01:30,799
44
00:01:30,799 –> 00:01:31,840
45
00:01:31,840 –> 00:01:33,600
باغ قابل هضم که یک
46
00:01:33,600 –> 00:01:34,799
رویکرد حریصانه است و این یک
47
00:01:34,799 –> 00:01:36,079
رویکرد برنامه نویسی پویا است
48
00:01:36,079 –> 00:01:39,360
و اکنون می توانم یک نمودار به شما نشان دهم تا
49
00:01:39,360 –> 00:01:41,520
50
00:01:41,520 –> 00:01:44,640
آنچه را که برای پیاده سازی نیاز داریم پیاده سازی کنیم، می توانیم یک
51
00:01:44,640 –> 00:01:46,000
مقصد مبدا و
52
00:01:46,000 –> 00:01:49,119
یک منبع و یک مقصد انتخاب کنیم، بنابراین
53
00:01:49,119 –> 00:01:52,159
اجازه دهید این منبع باشد. و این
54
00:01:52,159 –> 00:01:55,759
مقصد باشد اکنون اگر بخواهیم
55
00:01:55,759 –> 00:01:58,399
از مبدا به مقصد حرکت
56
00:01:58,399 –> 00:02:00,000
کنیم، می توانیم از دو مسیر استفاده کنیم
57
00:02:00,000 –> 00:02:02,320
، اولی این مسیر است که
58
00:02:02,320 –> 00:02:03,360
به وضوح می توانیم ببینیم
59
00:02:03,360 –> 00:02:05,680
و هزینه این مسیر 4 به اضافه
60
00:02:05,680 –> 00:02:07,119
10 برابر با 14 است
61
00:02:07,119 –> 00:02:10,800
و می توانیم از این مسیر نیز استفاده کنید
62
00:02:10,800 –> 00:02:15,680
متأسفم
63
00:02:15,760 –> 00:02:18,959
و هزینه این مسیر 2 به علاوه 3
64
00:02:18,959 –> 00:02:19,840
به علاوه 4 است
65
00:02:19,840 –> 00:02:23,280
که 2 به علاوه 3 برابر است با 5 و 5
66
00:02:23,280 –> 00:02:26,800
به علاوه 4 برابر است با 9
67
00:02:26,800 –> 00:02:30,080
بسیار خوب پس بیایید ابتدا این الگوریتم را پیاده
68
00:02:30,080 –> 00:02:32,800
سازی کنیم و یک w بسازیم.
69
00:02:32,800 –> 00:02:33,760
نمودار هشتد جهتدار
70
00:02:33,760 –> 00:02:36,160
من نیز مورد آزمایشی این نمودار را دارم،
71
00:02:36,160 –> 00:02:36,879
72
00:02:36,879 –> 00:02:39,599
این همان مورد آزمایشی است که در این تصویر دیده بودیم
73
00:02:39,599 –> 00:02:40,239
،
74
00:02:40,239 –> 00:02:43,280
خوب حالا به
75
00:02:43,280 –> 00:02:44,239
76
00:02:44,239 –> 00:02:48,160
کد میرویم و بیایید این الگوریتم را کدگذاری کنیم،
77
00:02:48,160 –> 00:02:51,200
بنابراین ساختار دادهای
78
00:02:51,200 –> 00:02:52,800
که میخواهیم استفاده کنیم،
79
00:02:52,800 –> 00:02:53,840
پشته،
80
00:02:53,840 –> 00:02:57,920
بنابراین ما می خواهیم از heap های داخلی استفاده کنیم
81
00:02:57,920 –> 00:03:01,360
و همچنین توضیح می دهم که چرا از
82
00:03:01,360 –> 00:03:04,959
heap در این الگوریتم uh این
83
00:03:04,959 –> 00:03:07,920
الگوریتم استفاده می کنیم، اما فقط یک چیز را به یاد داشته باشید اوه
84
00:03:07,920 –> 00:03:10,159
این یک الگوریتم حریص است و من فقط
85
00:03:10,159 –> 00:03:12,480
در حین کدنویسی توضیح می دهم که الگوریتم حریص چیست
86
00:03:12,480 –> 00:03:14,400
و چرا ما از
87
00:03:14,400 –> 00:03:18,080
این ساختار دادهای uh heap همراه با
88
00:03:18,080 –> 00:03:19,200
الگوریتم حریصانه استفاده میکنیم،
89
00:03:19,200 –> 00:03:22,159
بنابراین هر دو به هم مرتبط هستند و شما
90
00:03:22,159 –> 00:03:24,560
متوجه خواهید
91
00:03:25,280 –> 00:03:27,200
شد که چرا به این ساختار داده نیاز داریم،
92
00:03:27,200 –> 00:03:30,319
بنابراین بیایید یک نمودار
93
00:03:30,319 –> 00:03:34,080
نموداری برابر با
94
00:03:34,080 –> 00:03:37,200
تاریخ پیشفرض فهرست پیادهسازی
95
00:03:37,200 –> 00:03:40,400
کنیم تا بتوانیم یک نمودار پیشفرض ایجاد کنیم. یا لیست
96
00:03:40,400 –> 00:03:43,920
سپس v ویرگول e برابر است با نقشه و
97
00:03:43,920 –> 00:03:48,560
کاما ورودی نقطه تقسیم می شود
98
00:03:48,879 –> 00:03:52,640
سپس برای i در محدوده
99
00:03:54,000 –> 00:03:57,120
e می گیریم u کاما v کاما
100
00:03:57,120 –> 00:04:00,239
w برابر نقشه str است،
101
00:04:00,239 –> 00:04:04,879
نقطه ورودی را تقسیم می کنیم
102
00:04:04,879 –> 00:04:09,200
و سپس نمودار vu
103
00:04:09,439 –> 00:04:12,560
نقطه را اضافه می کنیم کاما و
104
00:04:12,560 –> 00:04:15,599
w بنابراین w e در اینجا یک تاپل را پیاده سازی می
105
00:04:15,599 –> 00:04:16,880
کنیم اما باید
106
00:04:16,880 –> 00:04:20,959
کاما v و w را پیاده سازی
107
00:04:20,959 –> 00:04:26,560
کنیم، سپس آنچه که ما باید یک مقصد کاما مبدا بگیریم
108
00:04:26,840 –> 00:04:29,440
برابر است با
109
00:04:29,440 –> 00:04:32,960
110
00:04:32,960 –> 00:04:36,000
تقسیم نقطه ورودی map str بنابراین این
111
00:04:36,000 –> 00:04:40,840
uh است و سپس دریافت می کنیم که تابع
112
00:04:40,840 –> 00:04:43,840
113
00:04:45,280 –> 00:04:48,720
تولید کوتاه ترین مسیر
114
00:04:50,240 –> 00:04:53,440
uh را فراخوانی می کنیم. ما کاما نمودار
115
00:04:53,440 –> 00:04:56,479
منبع و مقصد را
116
00:04:56,479 –> 00:04:58,800
میگیریم و این پارامتر را ارسال میکنیم و اکنون
117
00:04:58,800 –> 00:04:59,840
یک تابع
118
00:04:59,840 –> 00:05:05,280
کوتاهترین مسیر را پیادهسازی میکنیم، مانند تعریف کوتاهترین
119
00:05:05,280 –> 00:05:09,440
مسیر تست کوتاه،
120
00:05:09,440 –> 00:05:12,560
یک نمودار را به عنوان پارامتر میگیریم، سپس
121
00:05:12,560 –> 00:05:17,039
کاما مبدأ مقصد
122
00:05:17,039 –> 00:05:20,880
خوب است و سپس سعی
123
00:05:20,880 –> 00:05:24,160
میکنیم این را تعریف کنیم. اگر
124
00:05:24,160 –> 00:05:26,960
بنویسیم این یک روش است، همه ما می دانیم که این یک
125
00:05:26,960 –> 00:05:28,000
رویکرد حریصانه است،
126
00:05:28,000 –> 00:05:29,680
سپس توضیح خواهم داد که چرا از یک پشته استفاده می کنیم،
127
00:05:29,680 –> 00:05:31,36