Лекция 8. Числовые модели выпуклого

advertisement
Лекция 8. Экономические приложения
выпуклого программирования:
числовые модели
Содержание лекции:
1.
2.
3.
Градиентные методы решения задач выпуклого
программирования
Линеаризация задач математического программирования
Прикладные модели нелинейного программирования
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
Литература
• Шелобаев С.И. Экономико-математические методы и
модели: Учеб. пособие для вузов. — 2-е изд. М.: ЮНИТИДАНА, 2005. — Раздел 4.1.
• Численные методы / Н.С. Бахвалов, Н.П. Жидков,
Г.М. Кобельков. — 4-е изд. М.: БИНОМ. Лаборатория
знаний, 2006. — Глава 7, §3; глава 2, §15.
• Исследование операций в экономике: Учебн. пособие для
вузов / Под ред. Н.Ш. Кремера. М.: Банки и биржи,
ЮНИТИ, 1997. — Разделы 11.1, 11.3, 11.4.
• Семёнов В.М., Баев И.А., Терехова С.А. Экономика
предприятий. М.: Центр экономики и маркетинга, 1998.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
2/17
8.1
Градиентные методы решения задач
выпуклого программирования
 f ( x1 , x2 , , xn ) 


x1


 f ( x1 , x2 , , xn ) 

x2
, xn )  






f
(
x
,
x
,
,
x
)
1 2
n 



xn


f ( x1, x2 ,
Знак  («набла») –
оператор градиента
2
2
 f   f 
  
 
 x1   x2 
 f 



x
 3
2
Градиент функции в
данной точке – вектор,
составленный из её частных
производных по всем
переменным в данной точке
• Направление градиента указывает
направление, в котором функция
растёт быстрее всего, а его модуль
(длина, евклидова норма)
характеризует скорость роста
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
3/17
2. Строится вспомогательная функция:
max z (x)
q1 (x)  0
m
q2 (x)  0
  (x)  z (x)    qi2 ( x)

i 1
 q ( x)  0
m
x ‡ 0

 – достаточно большое число
Метод наискорейшего
спуска
8.1
1.
Ограничения исходной ЗМП
преобразуются в равенства
–
–
с помощью дополнительных
переменных
условия неотрицательности
переменных (если имелись) не
преобразуются
 
3. k  0; Выбирается начальная
точка поиска x 0 (например, 0 или 1)
4. Определяется  (x) в точке x k
5. Определяется длина шага  из
d  (x k   ( (x k )))
уравнения
0
d
(условия второго порядка проверять
не нужно).
6. Определяется точка x k 1 
 x k   ( (x k )); k  k  1
7. Отрицательные координаты в x k 1
по переменным с условиями неотрицательности заменяются нулями.
8. Проверяется условие прекращения
поиска:
Если  (x k )  1 или ( x k )   ( x k 1 )   2
или x k  x k 1   3, конец;
иначе переход к 4.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
4/17
Замечания
8.1
3.
Выполнение условий
окончания поиска не
гарантирует достижения
окрестности оптимума
–
1.
•
Процесс решения можно
повторять, увеличивая Μ,
чтобы достичь максимальной
точности учёта ограничений
при приемлемом числе
итераций
Метод можно применять и для
невыпуклых задач, но тогда нет
гарантии отыскания
глобального оптимума
2.
–
–
Если число оптимумов
определено аналитически и все
их удалось найти поиском с
разных начальных точек, то
глобальный оптимум определён
Это достигается далеко не всегда
Если задача выпуклая:
•
–
4.
переменные могут существенно
отличаться от оптимальных
значений, но отличие значения
ц.ф. от оптимального будет
невелико
можно повысить вероятность
отыскания действительного
оптимума, выполнив поиск с
разных начальных точек и
убедившись, что он сходится к
одному и тому же решению
Если нет, отличие ц.ф. от
оптимального может быть
значительным
Существуют и другие
градиентные методы
–
–
–
–
Метод покоординатного спуска
Метод сопряжённых градиентов
квази-Ньютоновский
etc.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
5/17
8.1
Программное обеспечение
MS Excel
• квази-Ньютоновский
• метод сопряжённых градиентов
• генетический алгоритм (Excel 2010)
MathCad
• квази-Ньютоновский
• метод сопряжённых градиентов
• метод Левенберга-Марквардта
GAMS
SNOPT
R
• Те же плюс
• Последовательное квадратичное
программирование
• Метод конечных приращений Лагранжа
etc.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
6/17
После замены функций z(x) и q(x) кусочнолинейными функциями:
• задачи выпуклого программирования
можно решать с помощью обычного
симплекс-метода
• некоторые виды невыпуклых задач
можно решать с помощью
ие 3
ничен
Огра
ен
ие
2
–
–
Ог
ра
ни
ч
8.2
Линеаризация задач математического
программирования
Огр
ани
чен
ие
1
•
целочисленного программирования
специальной разновидности
симплексного метода — сепарабельного
программирования
возникающая при этом ошибка тем
меньше, чем меньше длины отрезков
кусочно-линейных функций
–
зато тем больше будет ограничений в
получившейся ЗМП
Процесс линеаризации может оказаться
весьма трудоёмким. Задачи со
значительным количеством переменных и
нелинейных ограничений намного
эффективнее решать градиентными
методами.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
7/17
Процесс линеаризации
8.2 выпуклых ограничений
(на примере ограничения № i )
1.Выбирается достаточное количество
точек xik таких, что qi(xik)=bi.
2.Составляются линейные уравнения
гиперплоскостей, проходящих через
каждый набор из n ближайших друг к
другу точек xik (n — число переменных
исходной задачи).
3.Если ограничение i — неравенство,
получившиеся линейные уравнения
тоже трансформируются в
неравенства
–
таким образом, чтобы (почти) все
точки, удовлетворяющие новому
линейному неравенству,
удовлетворяли бы и исходному
неравенству i.
4.Ограничение i заменяется
множеством получившихся линейных
неравенств.
Уравнение гиперплоскости,
проходящей через заданные
точки a1 , a 2 , , a n:
 x1  a11

a a
det  21 11


 an1  a11
x1 , x2 ,
x2  a12
a22  a12
an 2  a12
xn  a1n 

a2 n  a1n 
0


ann  a1n 
, xn – координаты
(переменные ЗМП).
Например , если n  2, то
вышеприведённая формула
даёт выражение
( x1  a11 )  (a22  a12 ) 
( x2  a12 )  (a21  a11 )  0
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
8/17
Пример
целочисленного
представления
невыпуклой
области
.5
–1
2
1
 max 2 x1  3 x2
 x  ( x  1)  x
3
4
 1
 x2 „ 00,5( x3  1)  1000 x4

 x2 „ 2 x4  3,5  1000 x3

 x2 „ 0,5 x1  1,5
 x3  {0} [1; ]

 x4  {0} [2; ]
 x x  0; x x …0
1
2
 3 4
3
2x
Сепарабельное представление
Последнее ограничение «держит» всегда, среднее – только при x3=0, первое – только при x4=0.
"Тысяча" может быть любым числом, превышающим коэффициент при той же переменной в другом уравнении.
x2
x2 =
8.2
Пример
сепарабельного
представления
невыпуклой области
1
0
1
2
3
max 2 x1  3x2
 x  ( x  1)  x ; x „ 00,5( x  1)  1000 x ;
3
4
2
3
4
 1
 x2 „ 2 x4  3,5  1000 x3 ; x2 „ 0,5 x1  1,5;
 x „ x „ 1000 x ; 2 x „ x „ 1000 x ;
3
5
6
4
6
 5
 x1 x4 …0; x5 x6 {0;1}
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
9/17
x1
8.3
Прикладные модели нелинейного
программирования
• Учёт эффекта масштаба
• Моделирование рынка: зависимость цены
от расстояния
• Олигопольные рынки: зависимость цены от
объёма поставок
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
10/17
Учёт эффекта масштаба
8.3
Для производства двух видов
продукции используется
единственный ресурс. Найти план
производства, обеспечивающий
максимальную прибыль, при
следующих условиях:
– Цены продуктов – 10 и 20 у.е.;
ресурса – 0,03 у.е.
– Расход ресурса на выпуск каждого
продукта при объёме выпуска 100
ед. – соответственно 80 и 150 ед.
– При увеличении объёма
производства первого продукта на
1% удельный расход ресурса
возрастает на 0,05%, второго – на
0,1%
– Минимально возможный объём
производства продуктов –
соответственно 90 и 80 ед.
– Имеется 100000 ед. ресурса
Удельный расход ресурса при
выпуске 100 ед. продукта 1:
80/100 = 0,8 ед.р./ед.пр.1
При выпуске 101 ед.:
0,8*1,0005 = 0,8004
ед.р./ед.пр.1
Валовые затраты при выпуске
101 ед.пр.1:
0,8004·101=80,8404 ед.р.
При выпуске 100 ед. продукта
2: 150/100 = 1,5 ед.р./ед.пр.2
При выпуске 101 ед.:
1,5*1,001 = 1,5015
ед.р./ед.пр.2
Валовые затраты при выпуске
101 ед.пр.2:
1,5015·101=151,6515 ед.р.
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
11/17
Учёт эффекта масштаба
8.3
Для производства двух видов
продукции используется
единственный ресурс. Найти план
производства, обеспечивающий
максимальную прибыль, при
следующих условиях:
–
–
–
–
max10 x1  20 x2  0, 03 x3

Цены продуктов – 10 и 20 у.е.;
0.05
x
…
0,
6354626
x
x1 
ресурса – 0,03 у.е.
1
 3
Расход ресурса на выпуск каждого
продукта при объёме выпуска 100 
0,946436 x20.1 x2

ед. – соответственно 80 и 150 ед. 
При увеличении объёма
x1 …90 (100-0,1)·1,50

производства первого продукта на
1% удельный расход ресурса
 x …80
возрастает на 0,05%, второго – на  2
0,1%
1
Минимально возможный объём 
0 „ x3 „ 100000
производства продуктов –
соответственно 90 и 80 ед.
– Имеется 100000 ед. ресурса
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
12/17
Учёт эффекта масштаба
8.3
Вывод формулы (100-0,1)·1,50
Известно, что a·x20,1 = 1,5 при x2 = 100
Найти a
a = 1,5 / (x20,1) = 1,5·100-0,1
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
13/17
8.3
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2011
14/17
8.3
Зависимость цены
от расстояния
Для производства двух видов продукции
используется единственный ресурс. Найти
план производства, обеспечивающий
максимальную прибыль, при следующих
условиях:
– Продукция реализуется на заключённой в
окружность площади, пропорциональной
объёму производства, из расчёта 15 и 20
единиц продукции первого и второго вида
на 1 км2
– Доставка к местам реализации
осуществляется по прямой согласно
тарифу 1,5 у.е. за 1 км
– Цена реализации продукции первого вида
растёт с расстоянием согласно закону
(5+0,5d), а второго – (10+0,5d) у.е., где d –
расстояние в километрах.
– Затраты ресурса на продукцию – 10 и 25
единиц.
– Имеется 10 млн. единиц ресурса.
max (75 r 2 10 r 3 ) 
1
1


(200 r22 13 13  r23 )


7
10 x1  25 x2 „ 10

2
2
 x1  15 r1 ; x2  20 r2

 x1 …0; x2 …0
Зависимость маржи
от расстояния
(для первого продукта):
(5  0,5r1 )  (1,5r1 )  5  r1
Валовая прибыль
(от первого продукта):
r1
15 2 r1 (5  r1 )dr1 
0
 15(5 r12  2 3  r13 )
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
15/17
8.3
Зависимость цены
от расстояния
Для производства двух видов продукции
используется единственный ресурс. Найти
план производства, обеспечивающий
максимальную прибыль, при следующих
условиях:
– Продукция реализуется на заключённой в
окружность площади, пропорциональной
объёму производства, из расчёта 15 и 20
единиц продукции первого и второго вида
на 1 км2
– Доставка к местам реализации
осуществляется по прямой согласно
тарифу 1,5 у.е. за 1 км
– Цена реализации продукции первого вида
растёт с расстоянием согласно закону
(5+0,5d), а второго – (10+0,5d) у.е., где d –
расстояние в километрах.
– Затраты ресурса на продукцию – 10 и 25
единиц.
– Имеется 10 млн. единиц ресурса.
Задача не выпуклая!
Ограничения 2 и 3 вогнуты
max (75 r 2 10 r 3 ) 
1
1


(200 r22 13 13  r23 )


7
10 x1  25 x2 „ 10

2
2
 x1  15 r1 ; x2  20 r2

 x1 …0; x2 …0
Зависимость маржи
от расстояния
(для первого продукта):
(5  0,5r1 )  (1,5r1 )  5  r1
Валовая прибыль
(от первого продукта):
r1
15 2 r1 (5  r1 )dr1 
0
 15(5 r12  2 3  r13 )
Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
16/17
Олигопольные рынки
8.3
Для производства двух видов продукции
используются два ресурса. Найти план
производства, обеспечивающий
максимальную выручку, при следующих
условиях:
(1000,5)·4
max 40 x10,5  x1  600 ( x21  x2 )

0,5 x1  1,5 x2 „ 1000

 x1  0, 5 x2 „ 1000
 x …50, x …50
 1
2
– на единицу первого продукта из них
расходуется 0,5 и 1 ед. каждого ресурса,
второго – 1,5 и 0,5 ед.
– Ресурсы имеются в объёмах 1000 ед.
каждый.
– При объёме выпуска 100 ед. цена
первого продукта составляет 4 руб.,
второго – 6 руб.
– Увеличение объёма производства на 1%
приводит к снижению цены первого
продукта на 0,5%, второго – на 1%.
– Минимальный технологически
оправданный объём производства
каждого продукта – 50 ед.

Экономические приложения выпуклого программирования: числовые модели
© Н.М. Светлов, 2007-2015
17/17
Download