Формализация задачи математического программирования 1. Структура задач оптимального выбора Логические элементы задачи оптимального выбора: - Наличие цели или ряда целей, достижение которых является решением задачи - Наличие альтернативных средств достижения цели - Наличие способов оценки затрат ресурсов, необходимых для каждой альтернативы - Наличие способа отображения связей между целями, альтернативами и затратами - Наличие критерия эффективности для сопоставления альтернатив Структура задач оптимального выбора 2. Классификация экономических задач: Хорошо структурированные (количественно сформулированные) – проблемы в которых существенные зависимости могут быть выражены количественно. Неструктурированные (качественные) проблемы – содержат лишь описание основных признаков и взаимосвязей. Слабоструктурированные (смешанные) проблемы – содержат как количественное, так и качественное описание. Структура задач оптимального выбора Хорошо структурируемые проблемы называют программируемыми (program – план, программа) Методы решения программируемых проблем – методами математического программирования Структура задач оптимального выбора Классификация программируемых задач Задачи текущего планирования Задачи текущего планирования Задачи перспективного планирования. Все расчеты ведутся внутри одной временной единицы Задачи перспективного планирования Планирование простирается за пределы одной временной единицы Примеры программируемых задач Задачи выбора оптимального ассортимента продукции Задачи выбора оптимальной загрузки оборудования Задачи оптимизации смесей Задачи оптимального раскроя Транспортные задачи Задачи оптимизации портфеля ценных бумаг. Этапы формализации задач математического программирования 1. Выявление всех рычагов воздействия на ЭС, способные повлиять на эффективность ее работы, поставить в соответствие им переменную xi 2. Описание ограничений, которые налагаются на возможные значения управлений 3. Поставить в соответствие каждому возможному управления X={x1,x2,…,xn} значение критерия эффективности Z=f(x1,x2,…,xn} Примеры программируемых задач Пример 1. Предприятие характеризуется следующими параметрами: - выпускается N видов продукции; - используется M видов невоспроизводимых ресурсов Известны: - цена каждого вида продукции; - норма затрат каждого вида ресурсов для выпуска единицы каждого вида продукции; - запас каждого вида ресурсов на текущий период. Задача: найти такой план выпуска готовой продукции, для которого суммарная выручка от реализации всех видов продукции будет максимальной. Примеры программируемых задач Пример 2. Предприятие выпускает автомобильный бензин марки А92. ИЗВЕСТНО: - октановое число бензина должно быть не ниже 92; - содержание серы в бензине не более 0.3%; - для производства бензина используется смесь из M компонентов; - октановые числа каждого из компонент; - цена каждого вида компонент. ЗАДАЧА: Сколько тонн каждого компонента следует закупить для производства 1000 т. автомобильного бензина А92 с минимальной себестоимостью. Постановка задач математического программирования. ОПРЕДЕЛЕНИЕ. Математическое программирование – математическая дисциплина, посвященная теории и методам решения задач о нахождении экстремумов функций на множествах векторного пространства, заданных с помощью линейных и нелинейных ограничений. Формализация задачи математического программирования Общий вид задачи математического программирования: → Z =→ F(X) ═> min/max φi(X) ≥ 0, I = 1,2,…,k → hj(X) = 0, j = k+1, k+2,…, m. → где: Х=(х1, х2,…,хn) – вектор переменных величин компонент выбора; → → φi(X), hj(X) – система ограничений; Z –→ критерий эффективности; F(X) – целевая функция (правило вычисления показателя эффективности). Формализация задачи математического программирования Этапы формализации задачи: Выявление всех рычагов воздействия на экономическую систему, способные повлиять на эффективность ее работы и поставить в соответствие каждому из них компоненту вектора управлений Х. Описание ограничений, которые налагаются на возможные значения вектора управлений Х. Присвоение каждому управлению Х значения показателя эффективности Z=F(Х), т.е. построение целевой функции F(Х). Формализация задачи математического программирования Классы задач математического программирования: Задачи линейного программирования Задачи нелинейного программирования Задачи квадратичного программирования Задачи целочисленного программирования Задачи стохастического программирования Задачи динамического программирования Формализация задачи математического программирования Пример 1. Формализация задачи 1. Шаг 1. Определение параметров задачи. Наименование параметра Обозначение Числовой пример Количество видов готовой продукции n 5 Количество видов ресурсов m 4 Нормы затрат ресурсов Лимиты производственных ресурсов Цена на готовую продукцию a11 a A 21 .... am1 a a ... 22 .... .... .... a B b1 С с1 12 .... m2 b 2 с 2 .... .... 2n .... amn 2 2 A 1 1 b B 90 a a 1n m c n С 40 3 2 3 5 4 2 4 5 0 2 3 3 85 70 4 0 4 2 40 50 120 120 50 Формализация задачи математического программирования Пример 1. (Продолжение) Шаг 2. Определение переменных задачи (модели). → Вектор Х =(х1, х2, …., хn), где: хi – количество готовой продукции i-го наименования. Задача: найти компоненты вектора Х, которые обеспечивают максимальную выручку. Формализация задачи математического программирования Пример 1. (Продолжение) Шаг 3. Установление взаимосвязей и ограничений. По условию задачи план выпуска продукции ограничен запасом ресурсов: Расход каждого вида ресурсов для выпуска всех видов готовой продукции есть: (ai∗X) = ai1x1+ai2x2+….+ainxn Общая запись ограничений Числовой пример a11x1+a12x2+….+a1nxn≤ b1 a21x1+a22x2+….+a2nxn≤ b2 2x1+3x2+5x3+4x4+4x5≤90 2x1+2x2+4x3+5x4+0x5≤85 1x1+3x2+2x3+0x4+4x5≤40 1x1+2x2+3x3+3x4+2x5≤50 ………………………………………………. am1x1+am2x2+….+amnxn≤ bm Формализация задачи математического программирования Пример 1. (Продолжение) Шаг 4. Формулировка критерия эффективности. Из условия задачи следует, что все возможные альтернативы сравниваются по величине выручки от реализации продукции. Величина выручки есть в общем виде: Z=(X*C) = x1c1+x2c2+x3c3+….+xncn в рассматриваемом примере: Z= 40x1+70x2+120x3+120x4+50x5 Формализация задачи математического программирования Пример 1. (Продолжение) Математическая постановка задачи: Общая форма записи → → (С*Х) ═>MAX → → (ai*X)≤ bi Xi ≥ 0 Числовой пример 40x1+70x2+120x3+120x4+50x5 ═>MAX 2x1+3x2+5x3+4x4+4x5≤90 2x1+2x2+4x3+5x4+0x5≤85 1x1+3x2+2x3+0x4+4x5≤40 1x1+2x2+3x3+3x4+2x5≤50 x1 ≥0; x2 ≥0; x3 ≥0; x4 ≥0; x5 ≥0; Двойственная задача линейного программирования Теорема. Каждой задаче линейного программирования может быть поставлена в соответствие двойственная задача. Прямая задача ЛП Z n c x j j 1 j max a x b x j ij j ~ Z m b y min i i1 n j1 Двойственная задача ЛП i i m i 1,2,..., m 0 j 1,2,..., n a y c i1 ij y 0 i i j j 1,2,..., n i 1,2,..., m Двойственная задача линейного программирования Правила формализации двойственной задачи ЛП 1.Если прямая задача является задачей максимизации, то соответствующая двойственная задача минимизации и наоборот 2. Коэффициенты целевой функции прямой задачи становятся правыми частями ограничений в двойственной задаче 3. Правые части ограничений прямой задачи становятся коэффициентами целевой функции двойственной задачи 4. Матрица коэффициентов ограничений двойственной задачи получается путем транспонирования матрицы ограничений прямой задачи Двойственная задача линейного программирования Правила формализации двойственной задачи ЛП 5. Число ограничений двойственной задачи равно числу переменных прямой задачи 6. Если ограничения прямой задачи имеют отношение ≤, то в ограничениях двойственной задачи ≥ Двойственная задача линейного программирования В общем виде это можно записать так: Прямая задача ЛП Z CX min AX B x i 0 i 1,2,..., n Двойственная задача ЛП B Y max T A Y C ~ Z y j T 0 j 1,2,..., m где: x1 x2 X ... xn y 1 y Y 2 ... ym c1 c C 2 ... cn b1 b2 B ... bm a11 a21 A ... am1 a a 12 22 ... a m2 ... ... ... ... 2n ... amn a a 1n