Лекция 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 x10,5 x1 600 ( x21 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