Файл: Чесноков, Н. И. Оптимизация решений при разработке урановых месторождений.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 167
Скачиваний: 0
но появится опасность пропустить в промежутке между двумя соседними точками искомый оптимум. Чрезмер ное уменьшение а может привести к неоправданно боль шому числу приближений (шагов). Кроме того, направ ление градиента не всегда совпадает с линией, соеди няющей начальную точку с точкой оптимума, в связи с чем могут иметь место отклонения от этой линии и обус ловленное этим замедление скорости сходимости. В на стоящее время существуют методы выбора оптимальных коэффициентов [55] и расчета поправок к градиенту с использованием вторых частных производных для сни жения отклонения от линии, соединяющей начальную и оптимальную точки.
Приведем пример использования градиентного мето да для решения нелинейной задачи. Для простоты и сравнения рассмотрим нелинейную задачу предыдуще го раздела и решим ее с использованием градиентного метода.
В данном примере следует найти maxZ = 2xi—х^+ + х2 при условии 2хі + а'2^4, 2хі+ 3x2^6.
Определим частную производную целевой функции
Z'(y) = ( 2 - 2 Xl, 1), |
(3.79) |
где у = (хі, хг) — обозначение точек; (2—2хь 1 )— коор динаты точек градиента, представленные в виде векто ра-строки (это и есть вектор частных производных).
Примем за исходную (начальную) точку начало ко ординат, т. е. г/0= (0, 0). Вычислим для этой точки гра диент, т. е. подставим значения у0 в выражение (3.79), тогда
(Уо) = ( 2 - 2 .0 ,1 ) = (2,1). |
(3.80) |
Следующая точка в соответствии с (3.78) будет иметь координаты yi^yo + aiZ'(уо): подставив значения, по лучим
Уі —(0, 0) + 0/(2, |
і у = а і(2. |
1), |
(3.81) |
|
или |
|
|
|
|
|
Ух = (2-2, |
а ). |
|
|
Чтобы найти |
наибольшее |
(по допустимое) значение |
||
а, подставим в |
уравнения ограничений |
значения у у. |
2-2а + а = 4 (а = 4/5), 2-2а + За = 6 (а |
= 6/7). Наибольшее |
значение а = 6/7 = 0,857. Это значит, |
0^ аі^ 0,857, т. е. |
181
максимально допустимое значение а = 0,857. Зная допу стимое значение а, можно определить максимально воз можное. Для этого в целевую функцию подставляем значение у\ из уравнения (3.81):
Z = 2-2х — (2а)2 -|- а, дифференцируем ее и приравниваем нулю:
Z' = 4 — 8а + 1 = 0, |
(3.82) |
отсюда а = 5/8 = 0,625. Таким образом, |
максимально воз |
можное значение а меньше допустимого, и мы не дохо
дим до границы допустимой области. |
|
(3.81), |
полу |
|||
Теперь, подставляя значения (3.82) в |
||||||
чим вторую |
точку, |
приближающую |
нас |
к оптимуму: |
||
|
Уі = 0,625-(2, 1) = |
(1,25; |
0,625), |
(3.83) |
||
и в точке у\ |
градиент |
|
|
|
|
|
Z, {y1) = |
(2 -2 -1 ,2 5 ; |
1) = (—0,5, |
1), |
(3.84) |
т. е. отличается от градиента Z'(y0), а это значит, что и двигаться дальше мы должны в сторону нового гра диента:
Уі = y l + a,-Z' (уд. |
(3.85) |
Как было сделано выше, определяем наибольшее до |
|
пустимое значение а2, т. е. для точки у2 |
|
2 - (1,25 — 0,5сг2) + 3 • (0,625 + «а) = |
6. |
Откуда «9= 0,8125, что означает 0 ^ а 2^0,8125.
Второе ограничение дает ос2<0,8125, что легко про верить. Подставляя в целевую функцию значение у2 из уравнения (3.85), дифференцируя и приравнивая ее нулю, получаем максимально возможное а2:
Z = 2 (1,25 — 0,5'Ло) — (1,25 — 0,5х,)2 4- 0,625 + „,
Z' = — 1 + 1,25 — 0,25аа + 1 = 0 ,
а2 = 5.
Итак, мы можем принять а2 = 0,8125. Тогда, подставляя
значения у\, а2, Z'(уі) в (3.85), получим координаты третьей точки, приближающей нас к максимуму:
у2= (1,25; 0,625) + 0,8125-(—0,5; 1), |
(3.86) |
или
№ = (0,844; 1,44).
182
В точке у2 градиент Z' (у2) [см. уравнение (3.79)] тогда
будет иметь следующее значение:
Z'(y,) = (2 — 2-0,844; 1,00) = (0,312; 1). (3.87)
Четвертая точка в соответствии с (3.79) должна иметь координаты
|
Уз = Уз + |
аа7-'Ш- |
(3.88) |
|
Определим |
максимально |
допустимое ct3 : 2 • (0,844 |
+ |
|
+ 0,312а3) + 3- |
(1,44 + аз) =6, |
З,624а3 = —0,008, |
а3 |
= |
= 0,0022. Максимально возможное а3 вычисляем, как и |
|||
ранее: |
Z= 2 ■(0,844 + 0,312и3) — (0,844 + 0,312а3)2+ 1,44 + |
||
+ а3, Z7 = 0,624—0,264—0,098а3+ 1 =0, |
а3=13,9. |
||
Итак, принимаем |
а3= —0,0022 и |
подставляем это |
|
значение в равенство |
(3.88): |
|
Уз — (0,844; 1,44)+ (-0,0022).(0,312; 1,0),
или
у3 = (0,844; 1,438).
Градиент в четвертой точке определять нецелесооб разно, поскольку координаты третьей и четвертой точек находятся практически рядом, т. е. мы уже вплотную подошли к точке максимума Z.
Сравните: У2 —(0,844; 1,44) и і/3= (0,844; 1,438). Про
верим еще раз полученные данные с точки зрения вы полнения граничных условий: 2а'і+ х2< 4,2-0,844 +
+ 1,438 = 3,126<4, 2х\ + Зх2< 6,2 • 0,844 + 3-1,438 = 6,00.
Проверка показала, что точка максимума находится на граничной липни 2л'і+ З х 2 = 6.
Вычислим теперь значение целевой функции в най денной точке: ma.\Z = 2 - 0,844—0,8442+ 1,438 = 2,426. Ра нее для этой же задачи было получено х'і = 0,75, я?=1,5,
ZMUKC= 2,4374.
Сравнение результатов расчета двумя разными ме тодами показывает, что разница между ними составляет менее 0,5% и не может играть существенной роли при оценке точности того или другого приближенного мето да. Конечно, можно было бы продолжить расчеты на шего примера с помощью градиентного метода и даль ше, но, как только что было указано, к существенному повышению точности определения оптимума это все равно не привело бы.
183
Следует отметить, что повторяемость различных опе раций при расчете градиентным методом делает его очень громоздким, поэтому наиболее целесообразно его применять при решении нелинейных задач с использо ванием быстродействующих электронно-вычислительных машин.
4. Д И Н А М И Ч Е С К О Е П Р О ГР А М М И РО В А Н И Е
Очень часто под динамическим программиро ванием подразумевают методы отыскания оптимального решения с учетом фактора времени. Однако это только один класс задач, для решения которых применяют ме тод динамического программирования. К другому классу задач, где с успехом может быть применен этот метод, относится решение нелинейных и стохастических задач, когда другие вычислительные методы либо вооб ще не могут быть применены, либо их применение сопряжено с большими трудностями. Кроме того, дина мическое программирование может быть применено в качестве вычислительного метода при решении задач линейного программирования или вместо метода оты скания оптимального решения простым перебором ва риантов.
Таким образом, динамическое программирование мо жет быть применено как самостоятельный метод про граммирования и как один из эффективных вычисли тельных методов [13, 26, 35, 38].
Основы метода динамического программирования были разработаны Веллманом [13, 55], который и дал ему название.
Впервые динамическое программирование было при менено при решении задач, связанных с прогнозирова нием запасов. В настоящее время этот метод приме няется для решения самых разнообразных задач, начи ная от определения оптимальных запасов, кончая разра боткой оптимальных годовых, перспективных планов, прогнозов и др.
Однако, какова бы ни была задача, идея метода со стоит в первую очередь в составлении рекуррентного соотношения (см. ниже) и отыскания с его помощью экстремума целевой функции.
Прежде чем перейти к рассмотрению сущности ди намического программирования, следует отметить, что
184
при решении задач оптимизации, в которых в качестве одной из переменных является время, кроме динамиче ского программирования, применяются дифференциаль ное и вариационное исчисления. При этом дифферен циальное и вариационное исчисления применяются при условии непрерывности переменных и функций. В дан ной работе решение задач с непрерывным временем не приводится, так как это потребовало бы изложения од ного из крупных разделов высшей математики — вариа ционного исчисления. Кроме того, учитывая стохастиче ский характер изменения состояния горнорудного про изводства, в особенности на урановых рудниках, наибо лее надежным периодом времени для принятия опти мального решения может быть 1 месяц, 1 квартал или даже 1 год [24, 26, 35]. Поэтому для условий горноруд ного производства с успехом может быть принято ди скретное изменение времени при решении задач дина мического программирования.
Рассмотрим вначале в общем виде порядок решения задач методом динамического программирования, а затем решим конкретную задачу с помощью этого ме тода.
Рассмотрим следующую задачу: |
|
|
П |
____ |
0. |
2 ОіХі < Ь при |
і — (1, и), л- |
|
і=і |
|
|
Найти |
|
|
maxZ = |
^ fi(Xi). |
(3.89) |
|
1= I |
|
Будем решать эту задачу методом математической ин дукции. Предположим, что известію значение хп, мак симизирующее Z, и соответствующее ему значение fn(x-n). Тогда можно переписать уравнение (3.89) в сле дующем виде:
max Z = |
max V, Д- (*f) = |
/„ (хп) + max v |
f{ (*,). (3.90) |
Здесь fn(x„) |
i=i |
i=i |
|
вынесено за |
знак максимума, так как оно |
||
не зависит от Х\, х2, .... |
Теперь, когда |
значение хп |
уже выбрано, граничные условия должны быть записа ны в следующем виде:
V а-лу < b - аах„. |
(3.91) |
і=і |
|
185