در این مطلب، ویدئو علیرضا سرودی: هنر تصمیم گیری بهینه در پایتون: پکیج پیمو با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:56:18
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:05,600 –> 00:00:07,759
بسیار خوب، بنابراین من فرض می کنم که شما می توانید صفحه نمایش من را ببینید
2
00:00:07,759 –> 00:00:09,440
از شما بسیار سپاسگزارم که
3
00:00:09,440 –> 00:00:11,040
این فرصت را
4
00:00:11,040 –> 00:00:14,080
به من دادید تا این صحبت و با شما داشته باشم و
5
00:00:14,080 –> 00:00:16,000
بخشی از تجربیاتی
6
00:00:16,000 –> 00:00:18,960
را که در چند سال اخیر به دست آورده ام با
7
00:00:18,960 –> 00:00:20,960
همه به اشتراک بگذارم و صادقانه بگویم
8
00:00:20,960 –> 00:00:22,960
این اولین باری است که در مقابل هاردکور صحبت می کنم
9
00:00:22,960 –> 00:00:25,920
، مثلاً بگوییم
10
00:00:25,920 –> 00:00:28,800
توسعه دهندگان پایتون، پس اوم، هنوز هم
11
00:00:28,800 –> 00:00:30,560
خودم را یادگیرنده
12
00:00:30,560 –> 00:00:32,238
پایتون می
13
00:00:32,238 –> 00:00:34,320
دانم، بنابراین اگر در بخشی از ارائه و مواردی که من اشتباه می کنم، مرا تصحیح کنید
14
00:00:34,320 –> 00:00:36,559
15
00:00:36,559 –> 00:00:38,640
. این کار را با استفاده از بسته piomo و بهینه سازی انجام دادم
16
00:00:38,640 –> 00:00:40,239
17
00:00:40,239 –> 00:00:42,640
و این فقط نشان دهنده
18
00:00:42,640 –> 00:00:44,960
تجربه من است و من مطمئن هستم که شما
19
00:00:44,960 –> 00:00:46,800
قطعاً می توانید آن را به روشی بسیار
20
00:00:46,800 –> 00:00:49,039
کارآمدتر و بهتر انجام دهید، بنابراین
21
00:00:49,039 –> 00:00:51,520
عنوان این سخنرانی هنر
22
00:00:51,520 –> 00:00:54,160
تصمیم گیری بهینه در پایتون و
23
00:00:54,160 –> 00:00:57,039
ما میخواهیم بسته payomo را
24
00:00:57,039 –> 00:00:59,199
که با آن کار کردهام معرفی کنیم و
25
00:00:59,199 –> 00:01:01,840
چند برنامه مختلف را به شما نشان دهیم که میتوان
26
00:01:01,840 –> 00:01:04,640
با استفاده از این بسته خاص و متدولوژیهای بهینهسازی حل کرد.
27
00:01:04,640 –> 00:01:07,439
28
00:01:07,439 –> 00:01:10,960
اسلایدهای من
29
00:01:10,960 –> 00:01:13,360
با نحوه شروع آن است، بنابراین این روزها
30
00:01:13,360 –> 00:01:15,759
در رسانه های اجتماعی می بینید که چگونه شروع شد چگونه
31
00:01:15,759 –> 00:01:16,880
به پایان رسید
32
00:01:16,880 –> 00:01:18,439
و بنابراین در
33
00:01:18,439 –> 00:01:22,000
سال 2017 من در airgrid کار می کردم
34
00:01:22,000 –> 00:01:25,119
و در آن دوره مشغول نوشتن
35
00:01:25,119 –> 00:01:27,200
کتابی در مورد کاربرد
36
00:01:27,200 –> 00:01:29,040
روش های بهینه سازی در
37
00:01:29,040 –> 00:01:31,600
سیستم قدرت بودم که
38
00:01:31,600 –> 00:01:33,920
سوابق خودم دکترای خود را در
39
00:01:33,920 –> 00:01:35,360
بهینه سازی سیستم قدرت و مدل سازی
40
00:01:35,360 –> 00:01:37,920
شبکه توزیع در فرانسه انجام دادم،
41
00:01:37,920 –> 00:01:40,880
بنابراین در این کتاب چند
42
00:01:40,880 –> 00:01:42,799
مدل خاص برای نمایش
43
00:01:42,799 –> 00:01:45,040
عملکرد سیستم قدرت و برنامه ریزی
44
00:01:45,040 –> 00:01:47,200
آن ایجاد کرده ام که دارای فصول مختلف است و کلیاتی دارد که
45
00:01:47,200 –> 00:01:49,520
با کلی شروع می شود.
46
00:01:49,520 –> 00:01:51,200
نمونه ها و سپس با
47
00:01:51,200 –> 00:01:53,759
اعزام اقتصادی واحدهای تولید شروع می
48
00:01:53,759 –> 00:01:56,000
شود و با تعهد واحد دیسپاچ اقتصادی پویا به بالا می رود.
49
00:01:56,000 –> 00:01:58,159
50
00:01:58,159 –> 00:02:00,640
51
00:02:00,640 –> 00:02:02,880
52
00:02:02,880 –> 00:02:05,520
53
00:02:05,520 –> 00:02:07,200
54
00:02:07,200 –> 00:02:09,038
برنامه ریزی شبکه و در نهایت
55
00:02:09,038 –> 00:02:11,200
یکپارچه سازی سیستم انرژی، از آنجایی که مخاطبان
56
00:02:11,200 –> 00:02:12,959
این گفتگو ممکن است آشنایی چندانی با آن نداشته باشند
57
00:02:12,959 –> 00:02:15,360
سیستم برق
58
00:02:15,360 –> 00:02:17,520
من همینجا متوقف میشوم، بنابراین
59
00:02:17,520 –> 00:02:19,599
خیلی به مسائل سیستم قدرت اختصاص
60
00:02:19,599 –> 00:02:20,840
61
00:02:20,840 –> 00:02:22,560
نمیدهم،
62
00:02:22,560 –> 00:02:24,239
اجازه دهید خوب باشم
63
00:02:24,239 –> 00:02:25,120
64
00:02:25,120 –> 00:02:29,280
و خب، پس چطور پیش میرود، من نمیدانم، بنابراین
65
00:02:29,280 –> 00:02:31,440
اجازه دهید کارهایی را که انجام دادهام معرفی کنم
66
00:02:31,440 –> 00:02:34,000
و ممکن است شما به من اطلاع دهید که آیا خوب پیش می
67
00:02:34,000 –> 00:02:36,959
رود یا خیر، پس بیایید به
68
00:02:36,959 –> 00:02:39,760
جلو برویم تا برنامه های بهینه سازی
69
00:02:39,760 –> 00:02:43,040
را بتوان به
70
00:02:43,040 –> 00:02:45,200
طور کلی به
71
00:02:45,200 –> 00:02:46,560
سه دسته طبقه بندی کرد.
72
00:02:46,560 –> 00:02:48,400
73
00:02:48,400 –> 00:02:50,560
74
00:02:50,560 –> 00:02:52,239
ما یک
75
00:02:52,239 –> 00:02:54,400
تابع هدف داریم که میخواهیم چیزی را کمینه یا به حداکثر برسانیم
76
00:02:54,400 –> 00:02:57,360
و میخواهیم مطمئن شویم که
77
00:02:57,360 –> 00:03:00,400
برخی از الزامات خاص دقیقاً در آنجا برآورده شده است
78
00:03:00,400 –> 00:03:01,599
79
00:03:01,599 –> 00:03:05,280
و سپس نوع دوم به
80
00:03:05,280 –> 00:03:07,440
عنوان بهینهسازی چند هدفه خواهد بود
81
00:03:07,440 –> 00:03:09,200
که ممکن است بیش از یک مورد داشته باشیم.
82
00:03:09,200 –> 00:03:11,040
توابع هدف ما می خواهیم هزینه
83
00:03:11,040 –> 00:03:13,040
را به حداقل برسانیم و می خواهیم ریسک را به حداقل برسانیم و
84
00:03:13,040 –> 00:03:15,120
گاهی اوقات این توابع هدف
85
00:03:15,120 –> 00:03:16,720
با یکدیگر در تضاد هستند بنابراین اگر می
86
00:03:16,720 –> 00:03:18,560
خواهید ریسک را به حداقل برسانید باید
87
00:03:18,560 –> 00:03:20,080
هزینه بیشتری بپردازید اما در در همان زمان که میخواهید
88
00:03:20,080 –> 00:03:23,120
پرداختهای خود را به حداقل برسانید، خوب است،
89
00:03:23,120 –> 00:03:26,400
آیا راهی وجود دارد که بتوانیم همزمان
90
00:03:26,400 –> 00:03:28,159
هر دو تابع هدف را بهینه کنیم
91
00:03:28,159 –> 00:03:30,239
یا نه، آیا میتوانیم همزمان هر دو را به حداقل برسانیم آیا میتوانیم هر دو را
92
00:03:30,239 –> 00:03:32,080
همزمان به حداکثر برسانیم.
93
00:03:32,080 –> 00:03:33,760
94
00:03:33,760 –> 00:03:35,280
که در
95
00:03:35,280 –> 00:03:37,760
بهینه سازی چند هدفه با آن ها
96
00:03:37,760 –> 00:03:40,080
97
00:03:40,080 –> 00:03:42,239
سروکار داریم و توسط بسته piomo قابل مدیریت است
98
00:03:42,239 –> 00:03:43,760
و در نهایت
99
00:03:43,760 –> 00:03:46,080
با مشکل بهینه سازی سطح یا چند سطحی
100
00:03:46,080 –> 00:03:48,080
گاهی یکی از توابع هدف
101
00:03:48,080 –> 00:03:50,560
در داخل محدودیت قرار دارد بنابراین
102
00:03:50,560 –> 00:03:52,480
می خواهیم مطمئن شویم که حداکثر
103
00:03:52,480 –> 00:03:54,720
چیزی از برخی پارامترهای داده شده کمتر است
104
00:03:54,720 –> 00:03:56,720
بله در عین حال ما می خواهیم
105
00:03:56,720 –> 00:03:59,120
تابع هدف دیگر را کمینه کنیم
106
00:03:59,120 –> 00:04:02,480
بنابراین و گاهی همانطور که گفتم تابع هدف
107
00:04:02,480 –> 00:04:05,280
در داخل محدودیت ها قرار دارد بنابراین
108
00:04:05,280 –> 00:04:06,799
در برخی از توابع هدف محدودیت هایی
109
00:04:06,799 –> 00:04:08,319
داریم و می خواهیم دیگری را
110
00:04:08,319 –> 00:04:10,480
بهینه کنیم. یکی از این
111
00:04:10,480 –> 00:04:13,680
موارد در بسته piomo نیز قابل کنترل است، همانطور که به جلو می رویم
112
00:04:13,680 –> 00:04:16,160
، سطح پیچیدگی
113
00:04:16,160 –> 00:04:18,798
بهینه سازی افزایش می یابد،
114
00:04:18,798 –> 00:04:20,399
بنابراین
115
00:04:20,399 –> 00:04:22,400
اگر بخواهیم بهینه سازی را انجام دهیم.
116
00:04:22,400 –> 00:04:24,800
اینها چند مرحله هستند در اینجا شما
117
00:04:24,800 –> 00:04:27,040
فردی زرد اینجا هستید و این
118
00:04:27,040 –> 00:04:30,000
مشکل شماست که به صورت شفاهی به شما ارائه می شود
119
00:04:30,000 –> 00:04:31,680
و می خواهید کاری انجام دهید در واقع
120
00:04:31,680 –> 00:04:33,919
می خواهید چیزی را از کارمند خود بشنوید
121
00:04:33,919 –> 00:04:36,720
و می خواهید آن را به
122
00:04:36,720 –> 00:04:40,080
درستی انجام دهید. بسیار خوب، بنابراین در این مرحله
123
00:04:40,080 –> 00:04:42,479
این مهمترین مرحله است و شما به
124
00:04:42,479 –> 00:04:45,520
عنوان متخصص در واقع
125
00:04:45,520 –> 00:04:47,600
مهمترین نقش را در این روش ایفا
126
00:04:47,600 –> 00:04:48,720
127
00:04:48,720 –> 00:04:50,880
می کنید، باید بتوانید با دقت
128
00:04:50,880 –> 00:04:53,120
مشکل خود را به روشی ریاضی توصیف کنید
129
00:04:53,120 –> 00:04:55,919
زیرا بازی های پایتون کامپیوتری یا هر چیز دیگری
130
00:04:55,919 –> 00:04:57,600
نرم افزارهای دیگر صحبت کردن شفاهی را متوجه نمی شوند،
131
00:04:57,600 –> 00:05:00,240
شما باید آن
132
00:05:00,240 –> 00:05:02,800
را در یک فرمول ریاضی
133
00:05:02,800 –> 00:05:04,720
یادداشت کنید و سپس آن را به payomo که یک
134
00:05:04,720 –> 00:05:06,400
پایتون بسته بندی است، ارسال کنید،
135
00:05:06,400 –> 00:05:08,479
ما بعداً در مورد آن صحبت خواهیم کرد
136
00:05:08,479 –> 00:05:11,360
و بسته piomo مشکل شما را
137
00:05:11,360 –> 00:05:14,400
به حل کننده منتقل می کند، بنابراین حتی اگر شما این کار را با
138
00:05:14,400 –> 00:05:17,280
جولیا انجام می دهید اگر این کار را با جم انجام می دهید
139
00:05:17,280 –> 00:05:20,720
مفهوم دقیقاً مشابه است Pyomo یا
140
00:05:20,720 –> 00:05:22,400
نرم افزارهای دیگر
141
00:05:22,400 –> 00:05:25,039
مشکل را برای شما حل نمی کنند آنها فقط به عنوان مترجم عمل می کنند
142
00:05:25,039 –> 00:05:28,080
و آنها را انجام می دهند. ll و
143
00:05:28,080 –> 00:05:30,479
مشکل خود را به حل کننده وصل کنید تا حل کننده چیست
144
00:05:30,479 –> 00:05:31,840
145
00:05:31,840 –> 00:05:33,919
تا حل کننده ها متفاوت باشند
146
00:05:33,919 –> 00:05:35,680
برخی از آنها را می توانید در اینجا مشاهده کنید، بنابراین
147
00:05:35,680 –> 00:05:37,039
آنها را اینجا ببینید من
148
00:05:37,039 –> 00:05:41,280
آنها را توضیح خواهم داد cbc glpk ipr ruby c plex
149
00:05:41,280 –> 00:05:43,199
رخی از حل کننده هایی هستند که می توان با
150
00:05:43,199 –> 00:05:45,440
نها پیوند داد. piom
151
00:05:45,440 –> 00:05:48,240
بنابراین برخی از
152
00:05:48,240 –> 00:05:49,759
متدولوژی های ریاضی
153
00:05:49,759 –> 00:05:52,880
وجود دارند که سعی می کنند مشکلی
154
00:05:52,880 –> 00:05:55,759
را که برای بسته piomo برای شما توضیح داده اید حل کنند
155
00:05:55,759 –> 00:05:57,199
و برخی از آنها
156
00:05:57,199 –> 00:05:59,440
منبع باز هستند مانند
157
00:05:59,440 –> 00:06:02,319
cbc glpk و ipops آنها منبع باز هستند و
158
00:06:02,319 –> 00:06:04,840
می توان آزادانه از آنها استفاده کرد اما برخی از آنها
159
00:06:04,840 –> 00:06:07,600
تجاری هستند. البته برخی از کیفیت ها
160
00:06:07,600 –> 00:06:09,520
بهبود یافته اند اما
161
00:06:09,520 –> 00:06:11,759
اگر می خواهید از آنها برای دانشگاه استفاده کنید باید هزینه مجوز را بپردازید
162
00:06:11,759 –> 00:06:14,880
و دو مورد آخر به
163
00:06:14,880 –> 00:06:16,880
نوعی با برخی شرایط و ضوابط رایگان هستند
164
00:06:16,880 –> 00:06:19,120
اما
165
00:06:19,120 –> 00:06:21,120
سه مورد اول کاملا رایگان هستند و می
166
00:06:21,120 –> 00:06:22,400
توانید از آنها در سایت خود استفاده کنید.
167
00:06:22,400 –> 00:06:24,479
فعالیت های تجاری تا آنجا که من می دانم باید
168
00:06:24,479 –> 00:06:26,800
با وب سایت آنها چک کنید، اما این
169
00:06:26,800 –> 00:06:28,960
سه مورد اول برای استفاده در
170
00:06:28,960 –> 00:06:31,360
فعالیت های تجاری نیز رایگان هستند،
171
00:06:31,360 –> 00:06:33,919
بنابراین زیبایی pyomo به شما این امکان را می دهد که
172
00:06:33,919 –> 00:06:35,759
با این
173
00:06:35,759 –> 00:06:37,919
حل کننده های منبع باز و همچنین با حل کننده های تجاری ارتباط برقرار
174
00:06:37,919 –> 00:06:38,800
کنید،
175
00:06:38,800 –> 00:06:40,880
بنابراین این چیزی است که
176
00:06:40,880 –> 00:06:43,360
در جم های بازی نمی توانید به آنها دسترسی داشته باشید یک
177
00:06:43,360 –> 00:06:44,720
نرم افزار عالی است
178
00:06:44,720 –> 00:06:46,800
و این مخفف
179
00:06:46,800 –> 00:06:49,280
سیستم مدل سازی جبری عمومی است اما
180
00:06:49,280 –> 00:06:52,160
به شما اجازه نمی دهد. برای استفاده آزادانه از
181
00:06:52,160 –> 00:06:54,800
حل کننده های منبع باز، به شما امکان استفاده از آنها را می دهد، اما
182
00:06:54,800 –> 00:06:56,319
از آنجایی که از یک
183
00:06:56,319 –> 00:06:58,240
نرم افزار تجاری به نام gams استفاده می کنید، پس باید
184
00:06:58,240 –> 00:07:00,400
مجوز را نیز بپردازید،
185
00:07:00,400 –> 00:07:02,639
بنابراین این اهمیت استفاده
186
00:07:02,639 –> 00:07:04,960
از piomo است، اما به این محدود نمی
187
00:07:04,960 –> 00:07:07,280
شود. به جلو بروید
188
00:07:07,280 –> 00:07:09,120
تا بتوانید مشکل خود را حل کنید، باید
189
00:07:09,120 –> 00:07:11,280
از ابزار مناسب برای مشکل درست
190
00:07:11,280 –> 00:07:14,240
191
00:07:14,240 –> 00:07:17,120
استفاده کنید، یعنی نمی توانید از نرم افزار حل کننده اشتباه استفاده کنید در واقع
192
00:07:17,120 –> 00:07:18,880
برای حل مشکل خود، این ها
193
00:07:18,880 –> 00:07:20,479
انواع مختلفی از مسائل بهینه سازی هستند
194
00:07:20,479 –> 00:07:22,080
که شما با
195
00:07:22,080 –> 00:07:24,560
اعداد صحیح مختلط خطی خالص مختلط خطی
196
00:07:24,560 –> 00:07:26,479
به برنامه ریزی درجه دوم یک درجه دوم
197
00:07:26,479 –> 00:07:29,120
یا برنامه نویسی غیر خطی مواجه خواهید شد، بنابراین
198
00:07:29,120 –> 00:07:32,560
اگر حل کننده ها را در اینجا لیست کنم،
199
00:07:32,560 –> 00:07:35,599
هر حل کننده فقط قادر به
200
00:07:35,599 –> 00:07:38,240
حل یک یا دو است. نوع خاصی از
201
00:07:38,240 –> 00:07:40,479
مسائل، بنابراین شما باید آنها را بشناسید، به
202
00:07:40,479 –> 00:07:43,120
عنوان مثال cbc قادر به حل
203
00:07:43,120 –> 00:07:45,840
برنامه نویسی خطی و مخلوط کردن برنامه نویسی glpk مانند cbc است
204
00:07:45,840 –> 00:07:48,160
، اما قدرت آنها
205
00:07:48,160 –> 00:07:49,360
206
00:07:49,360 –> 00:07:51,440
متفاوت است، زیرا آنها از
207
00:07:51,440 –> 00:07:53,520
متدولوژی های مختلفی برای حل
208
00:07:53,520 –> 00:07:55,840
مسائل بهینه سازی استفاده می کنند ipop نیز
209
00:07:55,840 –> 00:07:57,520
قادر است. حل برنامهریزی خطی
210
00:07:57,520 –> 00:07:59,759
و برنامهریزی غیرخطی و
211
00:07:59,759 –> 00:08:01,520
دو مورد تجاری آخر که بسیار
212
00:08:01,520 –> 00:08:02,560
قوی
213
00:08:02,560 –> 00:08:05,039
هستند، قادر به حل
214
00:08:05,039 –> 00:08:06,960
چهار نوع اول از مسائل بهینهسازی هستند،
215
00:08:06,960 –> 00:08:09,919
بنابراین هر یک از حلکنندهها
216
00:08:09,919 –> 00:08:12,240
قادر به حل انواع خاصی
217
00:08:12,240 –> 00:08:14,720
از مسئله بهینهسازی شما هستند، بنابراین بهترین
218
00:08:14,720 –> 00:08:17,440
کاری که باید انجام دهید این است
219
00:08:17,440 –> 00:08:19,360
که تا جایی که می توانید مشکل بهینه سازی خود را
220
00:08:19,360 –> 00:08:21,440
با برنامه ریزی خطی بیان کنید زیرا
221
00:08:21,440 –> 00:08:24,479
مقیاس پذیر است اگر اندازه
222
00:08:24,479 –> 00:08:27,280
مسئله بزرگ باشد حل کننده ها می توانند آن را به راحتی
223
00:08:27,280 –> 00:08:28,800
حل کنند
224
00:08:28,800 –> 00:08:31,199
و در کاربردهای عملی معمولاً
225
00:08:31,199 –> 00:08:33,760
با بهینه سازی در مقیاس بزرگ روبرو هستیم.
226
00:08:33,760 –> 00:08:35,360
مشکلات به این معنی که تعداد
227
00:08:35,360 –> 00:08:37,599
متغیرهای تصمیم گیری چیزهایی را
228
00:08:37,599 –> 00:08:40,799
که باید تنظیم کنیم تعیین می کند به طور صحیح و بهینه
229
00:08:40,799 –> 00:08:43,200
بالا هستند و من چند مثال جالب به شما نشان خواهم داد
230
00:08:43,200 –> 00:08:45,279
231
00:08:45,279 –> 00:08:47,839
تا ببینید که یک مسئله بهینه سازی چقدر
232
00:08:47,839 –> 00:08:49,760
می تواند مشکلی ایجاد کند،
233
00:08:49,760 –> 00:08:52,080
بنابراین باید بدانید این حل کننده ها
234
00:08:52,080 –> 00:08:54,959
چگونه کار می کنند و چگونه می توانم
235
00:08:54,959 –> 00:08:57,040
مشکل خود را به payomo و سپس چند شکلی ترجمه کنم.
236
00:08:57,040 –> 00:09:00,240
آن را به هر یک از افراد ترجمه می کند
237
00:09:00,240 –> 00:09:01,839
و خوبی در مورد piomo این است
238
00:09:01,839 –> 00:09:04,720
که یک آگنوستیک مستقل است به چه
239
00:09:04,720 –> 00:09:07,200
معناست که این بدان معناست که اگر شما
240
00:09:07,200 –> 00:09:09,760
موفق شدید مشکل خود را به payomo ترجمه کنید،
241
00:09:09,760 –> 00:09:12,480
پس نیازی
242
00:09:12,480 –> 00:09:14,399
به نگرانی نیست. چگونه piomo قرار
243
00:09:14,399 –> 00:09:16,640
است با هر یک از حل کننده ها صحبت کند
244
00:09:16,640 –> 00:09:19,120
ممکن است کسی از من بپرسد آیا ممکن است
245
00:09:19,120 –> 00:09:19,839
246
00:09:19,839 –> 00:09:22,320
فقط payomo را نادیده بگیرم و مستقیماً
247
00:09:22,320 –> 00:09:26,080
با clex group b ipr glpkcvc صحبت کنم و من می گویم
248
00:09:26,080 –> 00:09:28,959
بله ممکن است خوب باشد پس باید
249
00:09:28,959 –> 00:09:31,120
زبان سیمپلکس را یاد بگیرید سپس شما
250
00:09:31,120 –> 00:09:33,360
باید زبان روبی و
251
00:09:33,360 –> 00:09:34,959
هر حل کننده دیگری را که می خواهید با آن صحبت
252
00:09:34,959 –> 00:09:35,920
253
00:09:35,920 –> 00:09:38,080
کنید یاد بگیرید، اما اگر زبان payonmo را یاد بگیرید،
254
00:09:38,080 –> 00:09:40,399
piomo به عنوان یک مترجم برای شما عمل
255
00:09:40,399 –> 00:09:43,200
می کند، این سادگی ابزار oka است. y
256
00:09:43,200 –> 00:09:46,480
بنابراین هر مدل biomole دارای
257
00:09:46,480 –> 00:09:48,959
مجموعههای عناصر اساسی است که میتوان از آن برای
258
00:09:48,959 –> 00:09:51,600
شمارش متغیرها استفاده کرد، به عنوان مثال
259
00:09:51,600 –> 00:09:52,959
، فرض کنید دانشآموز شماره یک
260
00:09:52,959 –> 00:09:55,040
دانشآموز شماره دو است، شرکت شماره یک
261
00:09:55,040 –> 00:09:56,800
شرکت شماره دو نسل یک دو
262
00:09:56,800 –> 00:09:59,279
سه چهار پنج بله و متغیرها
263
00:09:59,279 –> 00:10:01,279
همان مقادیر هستند. که باید آنها را
264
00:10:01,279 –> 00:10:02,959
بهینه کنید و باید
265
00:10:02,959 –> 00:10:05,040
مقادیر بهینه را برای آنها پیدا کنید
266
00:10:05,040 –> 00:10:06,959
و پارامترها
267
00:10:06,959 –> 00:10:08,720
داده های ورودی
268
00:10:08,720 –> 00:10:10,320
مدل شما هستند
269
00:10:10,320 –> 00:10:12,720
خوب و محدودیت ها
270
00:10:12,720 –> 00:10:15,040
نشان دهنده رابطه بین
271
00:10:15,040 –> 00:10:17,279
متغیرها و پارامترها هستند بنابراین
272
00:10:17,279 –> 00:10:19,600
جمع تعداد
273
00:10:19,600 –> 00:10:21,040
تولیدات مختلف را می گویید. واحدها باید
274
00:10:21,040 –> 00:10:22,560
کمتر از چیزی یا مساوی با
275
00:10:22,560 –> 00:10:24,800
چیزی یا بزرگتر از چیزی باشند
276
00:10:24,800 –> 00:10:27,360
، تفاوت بین دو
277
00:10:27,360 –> 00:10:29,920
دوره زمانی متوالی و تفاوت بین
278
00:10:29,920 –> 00:10:31,200
تولید در دو دوره زمانی متوالی
279
00:10:31,200 –> 00:10:32,800
نمی تواند
280
00:10:32,800 –> 00:10:35,200
از برخی مقادیر خارج شود این مواردی است
281
00:10:35,200 –> 00:10:37,680
که در قیود توضیح داده شده و
282
00:10:37,680 –> 00:10:39,360
در نهایت توابع هدف توضیح داده شده است. شما می خواهید
283
00:10:39,360 –> 00:10:40,959
پرداخت هایی را که می خواهید به حداقل برسانید تا
284
00:10:40,959 –> 00:10:43,120
سودی که می خواهید به حداکثر برسانید برای به
285
00:10:43,120 –> 00:10:44,880
حداقل رساندن ریسک یا هر چیزی که شما تعریف می کنید
286
00:10:44,880 –> 00:10:47,920
، بنابراین این پنج عنصر هستند
287
00:10:47,920 –> 00:10:50,240
که مدل شما را ایجاد می کنند و
288
00:10:50,240 –> 00:10:52,720
به مدلی که هر مدل
289
00:10:52,720 –> 00:10:54,160
از
290
00:10:54,160 –> 00:10:56,560
این پنج عنصر یا برخی از آنها تشکیل شده است وصل می شود،
291
00:10:56,560 –> 00:10:58,320
حداقل باید
292
00:10:58,320 –> 00:11:00,800
عملکرد هدف و مقداری داشته باشد. متغیرهایی برای بهینه سازی
293
00:11:00,800 –> 00:11:02,240
بله
294
00:11:02,240 –> 00:11:03,839
خوب است، بنابراین اجازه دهید
295
00:11:03,839 –> 00:11:05,519
و در نهایت در
296
00:11:05,519 –> 00:11:07,519
خارج از بسته payomo خود
297
00:11:07,519 –> 00:11:10,079
تعدادی حل کننده خواهید داشت همانطور که
298
00:11:10,079 –> 00:11:12,560
قبلاً به آنها اشاره کردم glpk یا ipl یا
299
00:11:12,560 –> 00:11:15,040
cplx یا هر چیز دیگری که خوب است و سپس باید
300
00:11:15,040 –> 00:11:17,120
متغیرهای تصمیم خود را تجسم کنید اگر
301
00:11:17,120 –> 00:11:19,120
می خواهید اینها هستند. خارج
302
00:11:19,120 –> 00:11:21,600
از بسته piomo و
303
00:11:21,600 –> 00:11:23,519
خوبی piomo این است که
304
00:11:23,519 –> 00:11:25,839
می تواند به راحتی
305
00:11:25,839 –> 00:11:27,839
با حل کننده های مختلف ارتباط برقرار کند و
306
00:11:27,839 –> 00:11:30,720
همچنین می تواند از
307
00:11:30,720 –> 00:11:32,959
امکانات و بسته های بصری سازی در پایتون استفاده کند و
308
00:11:32,959 –> 00:11:34,720
شما با آن
309
00:11:34,720 –> 00:11:37,839
بسته هایی مانند matplotlib مانند 4k یا هر
310
00:11:37,839 –> 00:11:40,480
دیجی پلات دیگری آشنا هستید. یا هرچی که میخوای باشه
311
00:11:40,480 –> 00:11:42,560
تا بتونی به راحتی از اون امکانات استفاده کنی
312
00:11:42,560 –> 00:11:43,760
و همچنین
313
00:11:43,760 –> 00:11:46,079
پایتون خیلی توانایی
314
00:11:46,079 –> 00:11:47,760
برقراری ارتباط با دیتابیس های مختلف
315
00:11:47,760 –> 00:11:50,240
مثل excel li رو داره انواع دیگر پایگاه دادهها
316
00:11:50,240 –> 00:11:52,880
مشکلی ندارند، بنابراین اگر میتوانید از بستههای دیگر
317
00:11:52,880 –> 00:11:54,000
مانند
318
00:11:54,000 –> 00:11:57,120
numpy panda یا هر چیز دیگری برای
319
00:11:57,120 –> 00:12:00,560
خواندن دادهها یا انجام
320
00:12:00,560 –> 00:12:02,560
برخی مطالعات پیشتحلیلی
321
00:12:02,560 –> 00:12:04,800
روی دادههای خود استفاده کنید،
322
00:12:04,800 –> 00:12:06,720
پس از آماده شدن میتوانید آن را خوب انجام
323
00:12:06,720 –> 00:12:09,040
دهید. داده ها را به عنوان پارامتری برای مدل خود انتخاب کنید
324
00:12:09,040 –> 00:12:12,000
و سپس مقادیر سلول را استخراج کنید و
325
00:12:12,000 –> 00:12:13,519
سپس می توانید هر کاری را که می خواهید انجام دهید،
326
00:12:13,519 –> 00:12:15,760
می توانید دوباره آن را به برخی از بسته های دیگر منتقل کنید
327
00:12:15,760 –> 00:12:17,920
و تجزیه و تحلیل بیشتری روی آن
328
00:12:17,920 –> 00:12:19,600
انجام دهید و تصویرسازی را انجام دهید یا هر چیزی که می
329
00:12:19,600 –> 00:12:22,880
خواهید این چیزی است که نیست.
330
00:12:22,880 –> 00:12:24,639
انجام این کار با
331
00:12:24,639 –> 00:12:27,519
ابزارهای بهینه سازی دیگر مانند شکاف ها بسیار آسان است،
332
00:12:27,519 –> 00:12:29,920
بنابراین بازی ها قادر به استفاده
333
00:12:29,920 –> 00:12:31,040
334
00:12:31,040 –> 00:12:32,800
مستقیم از بسته های um python نیستند و می توانند
335
00:12:32,800 –> 00:12:35,839
با پایتون ارتباط برقرار کنند، اما نه به همان سرعتی
336
00:12:35,839 –> 00:12:37,519
که شما می توانید
337
00:12:37,519 –> 00:12:39,680
با استفاده از بسته های piomo برخی از بسته هایی
338
00:12:39,680 –> 00:12:42,320
که از قبل در پایتون وجود دارد، ارتباط برقرار
339
00:12:42,320 –> 00:12:44,000
کند. به جلو بروید
340
00:12:44,000 –> 00:12:45,519
و
341
00:12:45,519 –> 00:12:48,000
بگذارید مثال بسیار ساده را حل کنم
342
00:12:48,000 –> 00:12:49,680
این تنها کدی است که به
343
00:12:49,680 –> 00:12:52,160
شما نشان می دهم قول می دهم پس این یک مثال بسیار ساده
344
00:12:52,160 –> 00:12:54,639
تابع هدف است دو
345
00:12:54,639 –> 00:12:57,920
متغیر تصمیم x1 x2 دو محدودیت po
346
00:12:57,920 –> 00:13:00,000
متغیرهای sitive و این یک
347
00:13:00,000 –> 00:13:01,839
مدل بهینهسازی بسیار ساده است که ما میخواهیم تابع هدف من را به حداکثر برسانیم،
348
00:13:01,839 –> 00:13:04,320
349
00:13:04,320 –> 00:13:06,880
بنابراین اگر بخواهم یک پی را روی مدل تعریف کنم،
350
00:13:06,880 –> 00:13:09,920
باید بگویم خوب این 4 یک پارامتر است
351
00:13:09,920 –> 00:13:12,320
زیرا من قبلاً آن را میدانم
352
00:13:12,320 –> 00:13:13,200
و
353
00:13:13,200 –> 00:13:15,760
این x 1 x 2 من هستند. متغیرها چون
354
00:13:15,760 –> 00:13:17,920
میخواهم مقادیر بهینهشان را پیدا کنم
355
00:13:17,920 –> 00:13:20,800
و همچنین این خاص و
356
00:13:20,800 –> 00:13:23,120
دیگری محدودیتهای من هستند زیرا
357
00:13:23,120 –> 00:13:27,040
رابطه بین x1 و x2 را نشان میدهد
358
00:13:27,040 –> 00:13:28,639
و در نهایت این تابع هدف
359
00:13:28,639 –> 00:13:31,279
من است، بنابراین من هیچ مجموعهای ندارم که
360
00:13:31,279 –> 00:13:33,920
بتوانم تعریف کنم. مشکل من که می
361
00:13:33,920 –> 00:13:36,639
توان از مجموعه ها نیز استفاده کرد، اما
362
00:13:36,639 –> 00:13:38,480
زیبایی مجموعه این است که
363
00:13:38,480 –> 00:13:40,480
اگر ابعاد
364
00:13:40,480 –> 00:13:43,279
مشکل شما افزایش یابد، دیگر
365
00:13:43,279 –> 00:13:45,440
نیازی به ویرایش بیشتر روی مدل خود ندارید،
366
00:13:45,440 –> 00:13:47,920
زیرا به راحتی می توانید بگویید که این رابطه
367
00:13:47,920 –> 00:13:50,639
باید برای آن معتبر باشد. هر x i و سپس برای
368
00:13:50,639 –> 00:13:52,560
شما مهم نیست که چند i
369
00:13:52,560 –> 00:13:54,639
در مدل خود داشته باشید، خوب
370
00:13:54,639 –> 00:13:56,480
و این کدی است که می توانید
371
00:13:56,480 –> 00:13:59,360
برای حل این مشکل ساده بهینه سازی استفاده
372
00:13:59,360 –> 00:14:01,600
کنید، بنابراین طبق معمول وقتی می خواهید
373
00:14:01,600 –> 00:14:03,920
کدنویسی پایتون را انجام دهید، کد را وارد کنید.
374
00:14:03,920 –> 00:14:06,800
بسته مورد نیاز محیط payomo dot
375
00:14:06,800 –> 00:14:08,480
هر چیزی را که داخل آن
376
00:14:08,480 –> 00:14:11,519
بسته است وارد کنید و این مدل شما است نام
377
00:14:11,519 –> 00:14:13,920
مدل را به عنوان یک مدل انتزاعی میگذارید و
378
00:14:13,920 –> 00:14:15,839
نیازی نیست بدانید که
379
00:14:15,839 –> 00:14:17,440
مدل انتزاعی چیست به شما این
380
00:14:17,440 –> 00:14:19,680
قابلیت را میدهد که فرض کنید
381
00:14:19,680 –> 00:14:22,000
پارامترها را در خود بهروزرسانی کنید. مدل و و
382
00:14:22,000 –> 00:14:23,839
شما نیازی به ایجاد مجدد مدل
383
00:14:23,839 –> 00:14:24,959
از ابتدا
384
00:14:24,959 –> 00:14:28,160
ندارید و دو um x1 و x2 دارید که می بینید
385
00:14:28,160 –> 00:14:31,040
و دو محدودیت c1 و c2
386
00:14:31,040 –> 00:14:32,800
و رابطه بین
387
00:14:32,800 –> 00:14:35,760
مقادیر را یادداشت می کنید و به همین سادگی می نویسید خوب است که
388
00:14:35,760 –> 00:14:37,760
من عمدا ساخته ام خیلی ساده است بنابراین
389
00:14:37,760 –> 00:14:39,760
قابل درک است و
390
00:14:39,760 –> 00:14:43,120
شما را نمی ترساند و همچنین می گویید
391
00:14:43,120 –> 00:14:45,519
خوب حل کننده ای که من برای حل
392
00:14:45,519 –> 00:14:47,839
مشکلم از آن استفاده می کنم glpk نام دارد.
393
00:14:47,839 –> 00:14:49,839
394
00:14:49,839 –> 00:14:51,600
395
00:14:51,600 –> 00:14:53,519
برنامه نویسی این یک
396
00:14:53,519 –> 00:14:55,120
برنامه نویسی خطی است خوب است
397
00:14:55,120 –> 00:14:56,880
و سپس شما یک نمونه ایجاد می کنید
398
00:14:56,880 –> 00:14:59,040
و به سادگی
399
00:14:59,040 –> 00:15:00,880
piomo سعی می کند بفهمد چه چیزی در
400
00:15:00,880 –> 00:15:03,040
اینجا نوشته اید
401
00:15:03,040 –> 00:15:05,279
مجموعه ای از um m را ایجاد می کند. معادلات ریاضی
402
00:15:05,279 –> 00:15:07,120
که نشان دهنده کاری است که شما به آن گفته اید
403
00:15:07,120 –> 00:15:08,160
انجام دهد
404
00:15:08,160 –> 00:15:11,519
و سپس آخرین مرحله تلاش برای
405
00:15:11,519 –> 00:15:13,279
حل با استفاده از گزینه ای است که
406
00:15:13,279 –> 00:15:15,279
قبلاً به عنوان ابزاری برای حل
407
00:15:15,279 –> 00:15:17,519
مشکل خود تعریف کرده اید و نمونه را
408
00:15:17,519 –> 00:15:20,240
به آن حل کننده خاص منتقل می کند و نتایج
409
00:15:20,240 –> 00:15:22,959
شامل شما خواهد شد. متغیرهای تصمیم و
410
00:15:22,959 –> 00:15:25,279
هر چیز دیگری در اینجا من فقط
411
00:15:25,279 –> 00:15:27,040
مقدار تابع هدف
412
00:15:27,040 –> 00:15:29,279
را چاپ کردم، میتوانستم بگویم مقدار x1
413
00:15:29,279 –> 00:15:32,959
و x2 را به همین سادگی چاپ کنید،
414
00:15:32,959 –> 00:15:35,279
بنابراین اینجا کد خیلی خوب
415
00:15:35,279 –> 00:15:37,279
نوشته نشده است، زیرا اگر تعداد
416
00:15:37,279 –> 00:15:39,279
آنها را افزایش دهم. متغیر تصمیم من باید یک
417
00:15:39,279 –> 00:15:42,720
خط جدید x 3 اضافه کنم به عنوان مثال اگر یک محدودیت جدید اضافه
418
00:15:42,720 –> 00:15:44,160
کنم باید یک محدودیت جدید
419
00:15:44,160 –> 00:15:47,600
x c 3 اضافه کنم برای مثال خوب است اما
420
00:15:47,600 –> 00:15:49,040
می توانستم
421
00:15:49,040 –> 00:15:50,320
بگویم i j
422
00:15:50,320 –> 00:15:52,880
x j به اضافه a i j
423
00:15:52,880 –> 00:15:56,720
y j و x j و x دیگر
424
00:15:56,720 –> 00:15:59,040
و اگر تعداد
425
00:15:59,040 –> 00:16:01,040
متغیر تصمیم من شما را افزایش می دهد، من
426
00:16:01,040 –> 00:16:03,440
نیازی به به روز رسانی فرمول ندارم، فقط
427
00:16:03,440 –> 00:16:05,519
ضرایب را تغییر می دهم بله، فقط
428
00:16:05,519 –> 00:16:07,600
ضرایب را به روز می کنم و سپس
429
00:16:07,600 –> 00:16:10,399
از piomo می خواهم که آن را برای من حل
430
00:16:10,399 –> 00:16:11,279
431
00:16:11,279 –> 00:16:14,399
کند. و
432
00:16:14,399 –> 00:16:16,560
نمونه های جالب دیگری را به شما نشان می دهم، بنابراین یکی از
433
00:16:16,560 –> 00:16:18,959
کاربردهای مسئله بهینه سازی um
434
00:16:18,959 –> 00:16:22,639
در صنعت هوانوردی است، بنابراین
435
00:16:22,639 –> 00:16:24,720
هواپیماهای انتهایی در آسمان وجود دارند و آنها
436
00:16:24,720 –> 00:16:27,040
437
00:16:27,040 –> 00:16:29,600
در بالای مرکز کنترل و
438
00:16:29,600 –> 00:16:31,839
این شخص یا نرم افزاری که قرار دارد
439
00:16:31,839 –> 00:16:34,240
در حال چرخش هستند. در اینجا سعی می شود اطمینان حاصل شود که
440
00:16:34,240 –> 00:16:36,959
هیچ سانحه هوایی ایجاد نمی کند
441
00:16:36,959 –> 00:16:40,959
یا در همان زمان به هواپیماها
442
00:16:40,959 –> 00:16:42,160
اجازه می دهد
443
00:16:42,160 –> 00:16:44,720
تا روی زمین فرود بیایند یعنی چه
444
00:16:44,720 –> 00:16:46,480
به این معنی است که به
445
00:16:46,480 –> 00:16:48,959
عنوان مثال آسان به نظر می رسد اما در
446
00:16:48,959 –> 00:16:52,079
واقع اینطور نیست هر هواپیمای جداگانه
447
00:16:52,079 –> 00:16:55,360
یک زمان هدف برای فرود دارد و زمان نهایی دارد
448
00:16:55,360 –> 00:16:57,839
که بعد از این زمان
449
00:16:57,839 –> 00:16:59,839
نمی تواند فرود بیاید و می تواند قبل از این زمان فرود بیاید، بنابراین
450
00:16:59,839 –> 00:17:01,680
این یک محدودیت است
451
00:17:01,680 –> 00:17:04,880
و اگر به طور خاص در زمان هدف فرود بیاید
452
00:17:04,880 –> 00:17:06,799
هیچ جریمه ای وجود
453
00:17:06,799 –> 00:17:08,799
ندارد. اما اگر باید
454
00:17:08,799 –> 00:17:12,000
زودتر از زمان مورد نظر خود
455
00:17:12,000 –> 00:17:14,880
کاشته شود، باید جریمه زودرس را بپردازند
456
00:17:14,880 –> 00:17:17,280
یا بعد از آن باید جریمه دیرکرد بپردازند،
457
00:17:17,280 –> 00:17:19,919
بنابراین ایده
458
00:17:19,919 –> 00:17:22,880
اجتناب از هر گونه حادثه و همچنین به حداقل رساندن است.
459
00:17:22,880 –> 00:17:26,400
مجموع جریمه ای که آنها باید بپردازند
460
00:17:26,400 –> 00:17:27,199
461
00:17:27,199 –> 00:17:30,000
و هر هواپیمای
462
00:17:30,000 –> 00:17:32,080
جداگانه محدودیت هایی دارد، مثلاً برخی از آنها
463
00:17:32,080 –> 00:17:34,720
نمی توانند قبل از دیگران فرود بیایند یا هر
464
00:17:34,720 –> 00:17:36,799
چیز دیگری که شما می خواهید خوب در نظر بگیرید، بنابراین
465
00:17:36,799 –> 00:17:38,160
در عمل به
466
00:17:38,160 –> 00:17:40,240
این معنی است که ما باید یک مشکل را حل کنیم.
467
00:17:40,240 –> 00:17:43,440
مسئله بهینه سازی در مقیاس بزرگتر بنابراین
468
00:17:43,440 –> 00:17:46,400
هواپیمای i باید قبل از هواپیمای j فرود بیاید
469
00:17:46,400 –> 00:17:48,240
470
00:17:48,240 –> 00:17:52,000
بنابراین به نوعی به عنوان یک
471
00:17:52,000 –> 00:17:55,760
متغیر باینری i قبل از j نشان داده می شود بله یا خیر خوب باشد یا
472
00:17:55,760 –> 00:17:58,320
خیر، بنابراین اگر تعداد این
473
00:17:58,320 –> 00:18:00,480
هواپیماها افزایش یابد بعد
474
00:18:00,480 –> 00:18:02,640
مسئله افزایش می یابد. خیلی سریع و به
475
00:18:02,640 –> 00:18:04,240
صورت تصاعدی و تعداد
476
00:18:04,240 –> 00:18:06,559
متغیرها بالا می رود و
477
00:18:06,559 –> 00:18:08,400
حل آن دشوارتر می شود،
478
00:18:08,400 –> 00:18:10,799
بنابراین فرمول بندی هایی در اینجا وجود دارد که من
479
00:18:10,799 –> 00:18:12,720
در اینجا آنها را مورد بحث قرار نمی دهم، اما
480
00:18:12,720 –> 00:18:14,320
فقط می خواهم ذکر کنم که
481
00:18:14,320 –> 00:18:16,960
آنچه در اسلاید قبلی توضیح دادم
482
00:18:16,960 –> 00:18:18,880
باید به روشهای ریاضی نوشته
483
00:18:18,880 –> 00:18:22,559
شود بله، بنابراین یک شروع نهایی زمان فرود
484
00:18:22,559 –> 00:18:25,360
x i
485
00:18:25,360 –> 00:18:27,919
باید قبل از j u i j باشد، این یک
486
00:18:27,919 –> 00:18:29,600
متغیر باینری است، بنابراین میتوانید ببینید که
487
00:18:29,600 –> 00:18:31,520
488
00:18:31,520 –> 00:18:33,919
در اینجا فرمولبندی لازم است برای اینکه مطمئن
489
00:18:33,919 –> 00:18:36,400
شوید آنچه شما
490
00:18:36,400 –> 00:18:40,320
گفتید با شعر فهمیده می شود یا نه بله و
491
00:18:40,320 –> 00:18:42,720
سپس آن را به حل کننده منتقل کنید و
492
00:18:42,720 –> 00:18:45,360
از حل کننده بخواهید آن را برای شما حل کند
493
00:18:45,360 –> 00:18:48,320
خوب بنابراین نوشتن این
494
00:18:48,320 –> 00:18:50,000
فرمول مهمترین چیز است
495
00:18:50,000 –> 00:18:53,280
و مرحله بعدی این است که چگونه
496
00:18:53,280 –> 00:18:55,679
این ریاضیات را برای piomo به
497
00:18:55,679 –> 00:18:56,880
روشی درست ترجمه
498
00:18:56,880 –> 00:18:58,880
کنید، پس این راه حلی است برای مثال
499
00:18:58,880 –> 00:19:00,799
اگر مشکل را
500
00:19:00,799 –> 00:19:03,360
با استفاده از pyomo حل کنید، دقیقاً به شما می گوید که
501
00:19:03,360 –> 00:19:05,919
هر هواپیما باید در چه زمانی فرود بیاید
502
00:19:05,919 –> 00:19:07,039
503
00:19:07,039 –> 00:19:09,840
و چه مقدار جریمه
504
00:19:09,840 –> 00:19:12,160
زودهنگام یا جریمه تاخیر. در حال رخ دادن است، بنابراین می
505
00:19:12,160 –> 00:19:14,160
بینید که فرض کنید به عنوان مثال آبی رنگ
506
00:19:14,160 –> 00:19:15,200
507
00:19:15,200 –> 00:19:18,080
دقیقاً در زمان هدف خود فرود آمده است،
508
00:19:18,080 –> 00:19:20,640
آبی روشن دقیقاً در زمان هدف خود فرود آمده است،
509
00:19:20,640 –> 00:19:23,440
اما این رنگ صورتی
510
00:19:23,440 –> 00:19:24,400
کمی
511
00:19:24,400 –> 00:19:27,360
دیرتر از زمان مورد نظر خود فرود آمده است،
512
00:19:27,360 –> 00:19:28,080
بنابراین
513
00:19:28,080 –> 00:19:30,480
این کار در روشی که مجموع
514
00:19:30,480 –> 00:19:33,039
جریمهای که در اینجا اتفاق میافتد به
515
00:19:33,039 –> 00:19:35,440
حداقل میرسد، این یک مثال ساده است
516
00:19:35,440 –> 00:19:38,080
و به ما نشان میدهد که چگونه این
517
00:19:38,080 –> 00:19:41,280
مسئله بهینهسازی
518
00:19:41,280 –> 00:19:44,080
در چنین شرایطی بسیار مفید و مفید است،
519
00:19:44,080 –> 00:19:47,039
پس دیگری کاربرد در صنعت هوانوردی نیز وجود دارد،
520
00:19:47,039 –> 00:19:49,440
بنابراین ما به
521
00:19:49,440 –> 00:19:52,240
عنوان مثال در حال تلاش برای بارگیری یک هواپیمای باری هستیم
522
00:19:52,240 –> 00:19:53,360
523
00:19:53,360 –> 00:19:56,000
و همانطور که بهتر می دانید فضای داخل
524
00:19:56,000 –> 00:19:58,320
یک هواپیما یک هواپیمای مسافربری یا یک
525
00:19:58,320 –> 00:20:01,360
هواپیمای باری محدود است
526
00:20:01,360 –> 00:20:04,000
بنابراین می خواهیم مطمئن شویم که اگر بخواهیم
527
00:20:04,000 –> 00:20:06,720
برای انتقال برخی از محصولات به عنوان مثال
528
00:20:06,720 –> 00:20:09,679
در اینجا زرد قرمز آبی و سبز
529
00:20:09,679 –> 00:20:12,559
و نحوه تخصیص آنها در
530
00:20:12,559 –> 00:20:15,679
داخل هواپیما البته در
531
00:20:15,679 –> 00:20:17,840
حالت ایده آل این است که بتوانیم
532
00:20:17,840 –> 00:20:20,240
همه آنها را در هواپیما بارگذاری کنیم اما همانطور که
533
00:20:20,240 –> 00:20:22,080
بهتر می دانیم فضای آنها را محدود می کند.
534
00:20:22,080 –> 00:20:24,799
محدود است بنابراین بر اساس ارزش آنها
535
00:20:24,799 –> 00:20:26,400
بر اساس وزن آنها بر اساس
536
00:20:26,400 –> 00:20:28,799
حجم آنها باید تصمیم بگیریم که
537
00:20:28,799 –> 00:20:31,039
کدام یک را در هواپیما قرار دهیم و
538
00:20:31,039 –> 00:20:33,200
همچنین می دانیم که هواپیما را نمی
539
00:20:33,200 –> 00:20:34,960
توانیم همه چیز را جلوی آن قرار دهیم. هواپیما
540
00:20:34,960 –> 00:20:36,640
همه چیز در وسط هواپیما یا
541
00:20:36,640 –> 00:20:38,799
همه چیز در
542
00:20:38,799 –> 00:20:40,799
پشت هواپیما باید به نحوی
543
00:20:40,799 –> 00:20:44,159
این تخصیص را به طور بهینه توزیع
544
00:20:44,159 –> 00:20:46,799
545
00:20:46,799 –> 00:20:48,960
کنیم تا مثلاً هواپیما را با چالش فنی
546
00:20:48,960 –> 00:20:51,679
مواجه نکند. بنابراین، اگر درست یادم باشد
547
00:20:51,679 –> 00:20:53,520
و یک چالش
548
00:20:53,520 –> 00:20:55,760
بهینهسازی چالشی وجود داشت
549
00:20:55,760 –> 00:20:58,080
که توسط ایرباس طراحی شده بود که
550
00:20:58,080 –> 00:21:00,080
در وب سایت آنها نیز موجود است و آنها از
551
00:21:00,080 –> 00:21:02,880
کارشناسان میپرسیدند که چگونه میتوانیم
552
00:21:02,880 –> 00:21:05,520
این مقدار محصول را در
553
00:21:05,520 –> 00:21:07,600
داخل هواپیما تخصیص دهیم تا مطمئن شویم
554
00:21:07,600 –> 00:21:10,480
که توزیع در آن انجام میشود. روشی ایده آل همانطور
555
00:21:10,480 –> 00:21:13,200
که آنها توصیف می کنند و ما می خواهیم
556
00:21:13,200 –> 00:21:15,039
تعداد کل محصولاتی را که می توانیم
557
00:21:15,039 –> 00:21:16,720
در هواپیما قرار دهیم به حداکثر برسانیم، بنابراین این یک
558
00:21:16,720 –> 00:21:18,960
نوع سوال جدی است که آنها با آنها روبرو هستند،
559
00:21:18,960 –> 00:21:23,200
بنابراین می بینید که
560
00:21:23,200 –> 00:21:25,840
متغیر تصمیم می گوید خوب است
561
00:21:25,840 –> 00:21:27,840
رنگ آبی باید به کدام مکان برود،
562
00:21:27,840 –> 00:21:31,440
بنابراین اگر آنها را i محصولات i صدا کنم و
563
00:21:31,440 –> 00:21:33,919
مکان دارای j باشد، بنابراین باید بفهمیم که
564
00:21:33,919 –> 00:21:36,799
x i j چقدر است، بنابراین چقدر از
565
00:21:36,799 –> 00:21:40,799
محصول من باید به مکان j بروم تا
566
00:21:40,799 –> 00:21:42,880
تابع هدف را به حداکثر برسانیم
567
00:21:42,880 –> 00:21:45,280
. مجموع سود در این مثال خاص،
568
00:21:45,280 –> 00:21:47,760
بنابراین محدودیتهای من به
569
00:21:47,760 –> 00:21:50,880
طور اساسی و ساده چیست، بنابراین
570
00:21:50,880 –> 00:21:52,880
بخش f که به عنوان مثال
571
00:21:52,880 –> 00:21:54,240
پشت هواپیما
572
00:21:54,240 –> 00:21:56,559
است از نظر حجم فضای محدودی دارد.
573
00:21:56,559 –> 00:21:59,600
مکعب متر و همچنین
574
00:21:59,600 –> 00:22:01,600
مقدار کل و وزن هایی که می
575
00:22:01,600 –> 00:22:04,080
توانیم در آن مکان خاص قرار دهیم نیز
576
00:22:04,080 –> 00:22:06,080
محدود است، بنابراین باید مطمئن شویم
577
00:22:06,080 –> 00:22:08,400
که هر بخش
578
00:22:08,400 –> 00:22:10,640
از هواپیما بیش از حد ایمنی آن بارگیری نمی
579
00:22:10,640 –> 00:22:11,600
580
00:22:11,600 –> 00:22:14,080
کنیم و همچنین می دانیم که ما نمی توانیم
581
00:22:14,080 –> 00:22:16,400
هواپیما را با بیش از محصولاتی
582
00:22:16,400 –> 00:22:19,039
که داریم بارگذاری کنیم، این به همین سادگی است که گفتم،
583
00:22:19,039 –> 00:22:21,600
بنابراین اگر ما مثلاً 10 مورد داشته باشیم، می
584
00:22:21,600 –> 00:22:23,520
توانیم 11 مورد را در هواپیما قرار
585
00:22:23,520 –> 00:22:25,360
دهیم زیرا ما هیچ مورد دیگری در اینجا نداریم.
586
00:22:25,360 –> 00:22:27,120
محدودیتهایی هستند که میتوانیم بنویسیم
587
00:22:27,120 –> 00:22:28,320
588
00:22:28,320 –> 00:22:30,080
و همچنین باید وزن کل هر محصول را بدانیم،
589
00:22:30,080 –> 00:22:32,080
590
00:22:32,080 –> 00:22:34,159
چهار محصول در اینجا
591
00:22:34,159 –> 00:22:36,320
وجود دارد، حجمهایی برای
592
00:22:36,320 –> 00:22:38,320
هر محصول خاص وجود دارد و
593
00:22:38,320 –> 00:22:39,919
سودهایی نیز به هر
594
00:22:39,919 –> 00:22:43,200
محصول اختصاص دارد و همچنین برای هر بخش از
595
00:22:43,200 –> 00:22:45,200
هواپیما ما محدودیت وزنی داریم،
596
00:22:45,200 –> 00:22:48,640
محدودیت فضا داریم و سعی می کنیم مطمئن شویم که
597
00:22:48,640 –> 00:22:49,840
598
00:22:49,840 –> 00:22:52,000
بهینه سازی به درستی فرموله شده است همانطور
599
00:22:52,000 –> 00:22:54,240
که قبلاً گفتم این مهم ترین
600
00:22:54,240 –> 00:22:56,799
مرحله در بهینه سازی من است. در برنامه پس به این معنی است
601
00:22:56,799 –> 00:22:59,120
که کل وزنی که
602
00:22:59,120 –> 00:23:01,600
قرار است به هواپیما وارد کنیم
603
00:23:01,600 –> 00:23:03,520
کمتر از وزن کل آن است، بنابراین نمی
604
00:23:03,520 –> 00:23:07,120
توانیم بیش از 18 تن محصول c
605
00:23:07,120 –> 00:23:08,799
را در هواپیما قرار دهیم، این بسیار ساده است اما
606
00:23:08,799 –> 00:23:10,720
باید در آن گنجانده شود. مشکل بهینه سازی من
607
00:23:10,720 –> 00:23:13,679
در غیر این صورت
608
00:23:13,679 –> 00:23:16,640
609
00:23:17,039 –> 00:23:19,840
پاسخ های مزخرف و اشتباهی به من می دهد و همچنین باید حجم کل
610
00:23:19,840 –> 00:23:23,200
را نیز رعایت کرد و
611
00:23:23,200 –> 00:23:24,960
همچنین
612
00:23:24,960 –> 00:23:27,360
حد انتظار و
613
00:23:27,360 –> 00:23:29,520
محدودیت فضا نیز رعایت می شود و ما می
614
00:23:29,520 –> 00:23:32,720
خواهیم سود خود را به حداکثر برسانیم. ساده به نظر می رسد
615
00:23:32,720 –> 00:23:34,480
اما زمانی که می خواهید آن
616
00:23:34,480 –> 00:23:36,480
را به درستی بنویسید و کمی
617
00:23:36,480 –> 00:23:38,159
چالش برانگیز است زیرا
618
00:23:38,159 –> 00:23:40,159
هر اشتباهی که
619
00:23:40,159 –> 00:23:43,200
در این مرحله مرتکب می شوید توسط شعر
620
00:23:43,200 –> 00:23:46,240
یا حل کننده های دیگر قابل درک نیست.
621
00:23:46,240 –> 00:23:48,480
622
00:23:48,480 –> 00:23:49,360
623
00:23:49,360 –> 00:23:50,880
مشکل خود را فرموله کنید،
624
00:23:50,880 –> 00:23:52,720
باید مطمئن شوید که از نظر ریاضی
625
00:23:52,720 –> 00:23:55,679
به درستی
626
00:23:55,679 –> 00:23:57,919
مشکلی را که میخواهید حل کنید توصیف میکند، این
627
00:23:57,919 –> 00:24:00,080
یک مثال بسیار ساده است و بیایید به
628
00:24:00,080 –> 00:24:02,720
مورد بعدی برویم، خوب این است یک
629
00:24:02,720 –> 00:24:04,880
برنامه نویسی خطی و زیبایی این
630
00:24:04,880 –> 00:24:06,640
نوع فرمولاسیون
631
00:24:06,640 –> 00:24:09,039
در piomo این است که همانطور که می بینید در
632
00:24:09,039 –> 00:24:10,640
فرمول
633
00:24:10,640 –> 00:24:12,559
من هیچ عددی نمی بینید
634
00:24:12,559 –> 00:24:14,080
یعنی چه به این معنی که به
635
00:24:14,080 –> 00:24:16,720
عنوان مثال اینجا من چهار محصول
636
00:24:16,720 –> 00:24:19,600
دارم و سه مکان دارم. من فقط مکان ها را نام می برم
637
00:24:19,600 –> 00:24:22,320
j j در حال اجرا از یک دو
638
00:24:22,320 –> 00:24:24,480
سه i در حال اجرا از یک دو سه
639
00:24:24,480 –> 00:24:26,799
چهار بله، بنابراین این فرمول به این فرمول نگاه کنید
640
00:24:26,799 –> 00:24:28,720
، فقط باید
641
00:24:28,720 –> 00:24:30,880
سریع چیزی را در اینجا توضیح دهم، بنابراین اگر
642
00:24:30,880 –> 00:24:33,679
تعداد i یا j تغییر کرد، نیازی نیست برای تغییر
643
00:24:33,679 –> 00:24:34,960
فرمول من
644
00:24:34,960 –> 00:24:37,919
، فرمول هنوز درست است،
645
00:24:37,919 –> 00:24:40,080
من فقط باید جدولم و
646
00:24:40,080 –> 00:24:41,840
دادههایی را که در
647
00:24:41,840 –> 00:24:45,279
مسئله بهینهسازی خود جای میدهم بهروزرسانی کنم، بنابراین اجازه دهید
648
00:24:45,279 –> 00:24:48,159
چهار خط از کد را بگوییم که من
649
00:24:48,159 –> 00:24:50,400
یک مشکل عملی بهینهسازی در مقیاس بزرگتر را فرموله کردهام،
650
00:24:50,400 –> 00:24:52,799
بله، همینطور است. زیبایی
651
00:24:52,799 –> 00:24:54,799
652
00:24:54,799 –> 00:24:56,480
این است که یک
653
00:24:56,480 –> 00:24:59,200
نقشه رنگی زیبا در اینجا وجود دارد که می توانید اینجا ببینید
654
00:24:59,200 –> 00:25:02,240
که شهرستان های ام ایرلند را نشان می دهد، بنابراین
655
00:25:02,240 –> 00:25:07,200
شاید همه ما چنین نقشه هایی را دیده باشیم،
656
00:25:07,200 –> 00:25:08,480
657
00:25:08,480 –> 00:25:11,279
بنابراین برای هر
658
00:25:11,279 –> 00:25:13,279
کشور جداگانه یا در اطراف ایجاد شده است.
659
00:25:13,279 –> 00:25:15,120
بنابراین اگر به آنها نگاه کنید آنها را
660
00:25:15,120 –> 00:25:17,120
با رنگ های مختلف می بینید که بسیار
661
00:25:17,120 –> 00:25:20,480
زیبا هستند و یک چیزی وجود دارد که
662
00:25:20,480 –> 00:25:23,039
در اینجا دنبال می شود و سعی کنید مطمئن شوید
663
00:25:23,039 –> 00:25:26,720
که اگر یک شهرستان با رنگ زرد رنگ شده است
664
00:25:26,720 –> 00:25:28,880
هیچ کشور همسایه ای با
665
00:25:28,880 –> 00:25:30,480
همان رنگ رنگ آمیزی نشده است. می بینید
666
00:25:30,480 –> 00:25:33,679
که اگر با صورتی رنگ شده است، همه
667
00:25:33,679 –> 00:25:35,840
همسایه ها با رنگ های مختلف رنگ آمیزی شده اند
668
00:25:35,840 –> 00:25:38,080
، این یک چیز بسیار مهم
669
00:25:38,080 –> 00:25:39,679
است در اینجا به منظور ایجاد یک
670
00:25:39,679 –> 00:25:42,400
فرد و شهرستان و مشخص کردن روی
671
00:25:42,400 –> 00:25:45,279
نقشه بله، بنابراین به منظور
672
00:25:45,279 –> 00:25:47,840
فرمول بندی که ما به راحتی می توانیم انجام دهیم. با استفاده از
673
00:25:47,840 –> 00:25:50,159
piomo یا هر نوع مشکل بهینه سازی دیگری،
674
00:25:50,159 –> 00:25:51,840
این در واقع یک مسئله بهینه سازی
675
00:25:51,840 –> 00:25:53,520
است که می خواهید
676
00:25:53,520 –> 00:25:57,279
تعداد رنگ های مورد استفاده برای نقاشی این نمودار را به حداقل برسانید،
677
00:25:57,279 –> 00:25:58,640
بله، بنابراین
678
00:25:58,640 –> 00:26:00,960
ما فقط می گوییم که آیا آنها در
679
00:26:00,960 –> 00:26:03,520
همسایگی یکدیگر هستند و
680
00:26:03,520 –> 00:26:05,600
متغیرهای رنگ. مربوط به
681
00:26:05,600 –> 00:26:07,600
آنها باید متفاوت باشد چگونه باید
682
00:26:07,600 –> 00:26:09,679
بگویم که بنابراین یک متغیر باینری به نام xic تعریف می کنم
683
00:26:09,679 –> 00:26:12,400
684
00:26:12,400 –> 00:26:15,200
که نشان دهنده رنگی است
685
00:26:15,200 –> 00:26:18,880
که برای رنگ آمیزی گره i یا county i
686
00:26:18,880 –> 00:26:21,200
it’s a bi است. بنابراین هر
687
00:26:21,200 –> 00:26:24,320
شهرستان به یک رنگ خاص اختصاص داده می شود،
688
00:26:24,320 –> 00:26:26,400
بنابراین چگونه می توانم مطمئن شوم که
689
00:26:26,400 –> 00:26:29,279
جمع x ic جمع بر روی c
690
00:26:29,279 –> 00:26:31,440
برابر است با یک، این
691
00:26:31,440 –> 00:26:34,400
اطمینان حاصل می شود که هر چشم فردی
692
00:26:34,400 –> 00:26:37,200
فقط با یک رنگ خاص مرتبط است
693
00:26:37,200 –> 00:26:39,440
نه کمتر از که نه بیشتر از
694
00:26:39,440 –> 00:26:41,600
آن بله و همچنین مطمئن شوید که اگر
695
00:26:41,600 –> 00:26:42,720
696
00:26:42,720 –> 00:26:44,480
در همسایگی یکدیگر قرار
697
00:26:44,480 –> 00:26:46,880
دارند با یک رنگ رنگ آمیزی نشده اند،
698
00:26:46,880 –> 00:26:48,080
بنابراین
699
00:26:48,080 –> 00:26:50,480
ممکن است زمان صرف کردن
700
00:26:50,480 –> 00:26:53,039
روی فرمولاسیون نیاز باشد، اما من فقط می خواستم بیشتر موارد را به
701
00:26:53,039 –> 00:26:54,320
شما اطلاع دهم.
702
00:26:54,320 –> 00:26:56,480
چیزهایی که ما هر روز
703
00:26:56,480 –> 00:26:57,520
در
704
00:26:57,520 –> 00:26:59,520
زندگی روزمره خود می بینیم با استفاده از بهینه سازی به دست می آیند
70