
- •Что такое оптимальное решение
- •1.1. Типовые задачи оптимизации
- •1.1.1. Откуда появились вопросы
- •1.1.2. Основные методы решения задач
- •1.2. Классификация задач оптимизации
- •1.2.1. Пример математической модели
- •1.2.2. Общий случай задачи оптимизации
- •1.2.3. Классификация математических моделей
- •1.3. Последовательность работ при принятии оптимальных решений
- •1.3.1. Основные этапы работ
- •1.3.2. Анализ решаемых задач
- •Типовые работы при оптимизации
- •2.1. Работа с электронной таблицей
- •2.1.1. Основные положения
- •Блок назначения команд
- •Блок ввода команд
- •2.1.2. Панели инструментов
- •Закрыть.
- •2.1.3. Ввод и форматирование данных
- •Формат, ячейки...
- •Сервис, параметры...
- •2.1.4. Основные задачи копирования и переноса
- •2.1.5. Некоторые дополнительные процедуры
- •Защита файлов
- •Файл, сохранить как...
- •Параметры...
- •Файл, сохранить как...
- •Параметры...
- •Сервис, защита.
- •Комментарии
- •Вставка, примечание...
- •Вставка, примечание...
- •Вставка, примечание...
- •Вставка, примечание...
- •Запись...
- •Вставка, примечание...
- •2.2. Построение диаграмм
- •2.2.1. Основные положения
- •2.2.2. Создание встроенных диаграмм
- •2.2.3. Работа с выделенными диаграммами
- •Вставка, метки значений...
- •2.2.4. Построение диаграмм с рисунками
- •2.3. Работа с базами данных
- •2.3.1. Основные положения
- •Данные, сортировка...
- •Данные, сортировка...
- •Параметры...
- •Правка, копировать...
- •Правка, специальная вставка...
- •2.3.2. Поиск
- •Условие...
- •2.3.3. Функции базы данных
- •2.4. Список алгоритмов
- •Задачи линейного программирования
- •3.1. Методы решения задач
- •3.1.1. Постановка задачи
- •3.1.2. Задача распределения ресурсов
- •3.1.3. Основные положения симплекс-метода
- •Признак 1
- •Признак 2
- •3.2. Методы анализа задач
- •3.2.1. Если решения нет
- •3.2.2. Двойственность в задачах линейного программирования
- •3.2.3. Анализ оптимального решения
- •Анализ влияния изменения cj
- •Анализ влияния изменения bi
- •3.2.4. Вариантный анализ
- •Первая постановка
- •Вторая постановка
- •3.3. Решение задач линейного программирования с помощью Excel
- •3.3.1. Блок-схема решения задачи
- •3.3.2. Ввод условий задачи
- •Сервис, поиск решения...
- •Добавить...
- •3.3.3. Решение задачи
- •Параметры...
- •Максимальное время
- •Предельное число итераций
- •3.3.4. Графическое представление результатов решения
- •3.3.5. Преодоление несовместности
- •3.3.6. Устранение неограниченности целевой функции
- •3.4. Анализ задач линейного программирования в Excel
- •3.4.1. Анализ оптимального решения
- •Отчет по результатам
- •Отчет по устойчивости
- •Отчет по пределам
- •3.4.2. Параметрический анализ
- •2.2. Сервис, поиск решения...
- •2.3. Выполнить.
- •2.4. Сохранить сценарий...
- •4.1. Сервис, сценарии...
- •4.2. Отчет...
- •3.4.3. Решение по нескольким целевым функциям
- •3.4.4. Решения по заказу
- •Сервис, поиск решения...
- •Выполнить.
- •3.4.5. Решение задач при условных исходных данных
- •3.5. Список алгоритмов
3.2. Методы анализа задач
3.2.1. Если решения нет
при решении задачи линейного программирования достаточно часто оптимального решения получить не удается. это происходит по двум следующим причинам.
причину 1 проиллюстрируем на следующем примере. систему
(3.2.1)
представим графически (рис. 3.2.1). на рисунке видно, что нет таких значений х1 и х2, которые удовлетворяли бы системе (3.2.1). значит, в данном примере одр отсутствует.
рис.
3.2.1
про такую систему говорят, что ограничения несовместны. к сожалению, это очень часто встречается на практике, а не только теоретически возможный вариант. в таких случаях Excel будет выдавать сообщение поиск не может найти подходящего решения. в общем случае несовместность может быть следствием двух причин:
неправильная математическая модель;
неправильные исходные данные.
способы преодоления несовместности мы рассмотрим после того, когда научимся решать задачи линейного программирования в Excel.
причину 2 рассмотрим на следующем примере. построим систему
(3.2.2)
эта система показана на рис. 3.2.2, из которого видно — одр не ограничена сверху.
рис.
3.2.2
в таком случае при максимизации целевой функции
F = x1 mах
решение получено быть не может, т. к. целевая функция, как и одр, не ограничена сверху. если в задаче одр не ограничена, то Excel будет выдавать сообщение значения целевой ячейки не сходятся.
неограниченность целевой функции — это следствие ошибки в математической модели. чтобы избежать таких ошибок, надо выполнять следующие правила:
при максимизации целевой функции она должна быть ограничена сверху либо с помощью ограничений, либо с помощью граничных условий, при этом модель с точки зрения содержания должна иметь вид:
(3.2.3)
при минимизации целевой функции она, соответственно, должна быть ограничена снизу, как это показано в (3.2.4).
(3.2.4)
3.2.2. Двойственность в задачах линейного программирования
еще немного теории. рассмотрим теперь понятие о двойственности.
каждой задаче линейного программирования, которую будем называть исходной, соответствует двойственная задача. правила записи двойственной задачи рассмотрим на таком примере. пусть имеется исходная задача
(3.2.5)
двойственная задача формулируется по следующим правилам:
каждому i-му ограничению исходной задачи соответствует переменная двойственной задачи, которую будем называть двойственной переменной и обозначать zi. в системе (3.2.5) ограничению (а) соответствует переменная z1, ограничению (б) — переменная z2.
каждой переменной исходной задачи соответствует ограничение двойственной задачи. в системе (3.2.5) три переменных х1, х2, х3. значит, двойственная задача должна иметь три ограничения.
матрица коэффициентов при двойственных переменных в ограничениях двойственной задачи является транспонированной матрицей коэффициентов при переменных в ограничениях исходной задачи (3.2.5).
матрица коэффициентов исходной задачи
.
следовательно, транспонированная матрица
.
если в исходной задаче ограничения имеют знаки неравенств Ј, то в двойственной они будут і.
правые части ограничений в двойственной задаче равны коэффициентам при переменных в целевой функции исходной задачи.
коэффициенты при двойственных переменных в целевой функции двойственной задачи равны правым частям ограничений исходной задачи.
максимизация целевой функции исходной задачи заменяется минимизацией целевой функции двойственной задачи.
таким образом, для исходной задачи (3.2.5) можно записать двойственную задачу
(3.2.6)
в общем виде исходной задаче
(3.2.7)
соответствует двойственная
(3.2.8)
важное свойство двойственной задачи заключается в том, что
махF = minFд.
при
этом
.
если последнюю формулу записать для наглядности в форме
,
то видно, что двойственная переменная zi является коэффициентом при bi и, следовательно, показывает, как изменится целевая функция при изменении ресурса bi на единицу. в литературе по оптимизации двойственные переменные принято называть двойственными оценками. в отчетах Excel двойственная оценка называется теневой ценой.
очень существенно, что для нахождения двойственных оценок двойственную задачу решать не требуется. их значения уже находятся в симплекс-таблице оптимального решения исходной задачи, приведенной для рассматриваемого примера на рис. 3.1.8.
определить значение двойственных оценок можно следующим образом. если некоторый i-ый ресурс используется не полностью, т. е. имеется резерв, значит, дополнительная переменная в ограничении для данного ресурса будет больше нуля. в нашем примере таким ресурсом является сырье, поскольку b2 = 110 и его резерв y2 = 26. совершенно очевидно, что если бы сырья было не 110 единиц, а 111, то резерв стал бы равен не 26, а 27. при этом не произошло бы увеличения целевой функции. следовательно, для второго ограничения двойственная переменная z2 = 0. таким образом, если по данному ресурсу есть резерв, то дополнительная переменная будет больше нуля, а двойственная оценка этого ограничения равна нулю.
в рассматриваемом примере трудовые ресурсы и финансы использовались полностью, поэтому их дополнительные переменные равны нулю. в таблице на рис. 3.1.8 переменные у1 и у3 являются свободными, значит у1 = у3 = 0. если ресурс используется полностью, то его увеличение или уменьшение повлияет на объем выпускаемой продукции и, следовательно, на величину целевой функции.
значение двойственной оценки при этом находится в симплекс-таблице (рис. 3.1.8) на пересечении строки целевой функции со столбцом данной дополнительной переменной. для трудовых ресурсов при у1 = 0 двойственная оценка zi = 20, а для финансов при у3 = 0 двойственная оценка z3 = 10.
результаты решения задачи, приведенные на рис. 3.1.8, сведены в таблицу, показанную на рис. 3.2.3.
рис.
3.2.3
из этой таблицы видно, что при увеличении (уменьшении) трудовых ресурсов на единицу, целевая функция увеличится (уменьшится) на 20 единиц и будет равна
при увеличении F = 1320 + 20 1 = 1340,
при уменьшении F = 1320 20 1 = 1300.
аналогично обстоит дело и с финансами. при увеличении (уменьшении) финансов на единицу целевая функция будет равна
при увеличении F = 1320 + 10 1 = 1330,
при уменьшении F = 1320 10 1 = 1310.
у внимательного читателя может возникнуть вопрос: а если ресурсы увеличить (уменьшить) на 5, 10, 15,...,100... иными словами, в каких пределах справедливы эти зависимости?
запомните вопрос и ждите ответа.
а мы пойдем дальше и для рассмотренной задачи распределения ресурсов (3.1.8) по приведенным выше правилам составим двойственную задачу
(3.2.9)
по аналогии с вводом дополнительных переменных уi (3.1.9) введем дополнительные двойственные переменные vj.
(3.2.10)
значения дополнительных двойственных переменных специально вычислять не надо. их значения уже определены в симплекс-таблице, приведенной на рис. 3.1.8. фрагмент этой таблицы с обозначениями основных и дополнительных двойственных переменных показан на рис. 3.2.4, а их значения — на рис. 3.2.5.
рис.
3.2.4
рис. 3.2.5
каков же смысл дополнительных двойственных переменных?
если основные переменные (в нашем примере х1 = 10, х3 = 6) вошли в оптимальное решение, то их дополнительные переменные равны нулю (v1 = 0, v3 = 0). если основные переменные не вошли в оптимальное решение, т. е. равны нулю (в примере х2 = х4 = 0), то соответствующие им дополнительные переменные имеют положительное значение (v2 = 10, v4 = 20). эти величины показывают, насколько уменьшится целевая функция при принудительном выпуске единицы данной продукции. следовательно, если мы захотим принудительно выпустить единицу продукции прод3, то целевая функция F уменьшится на 10 единиц и будет равна 1320 10 1 = 1310.
и тот же вопрос: в каких пределах это справедливо? и тот же ответ: ждите ответа.
в заключение отметим, что в отчетах Excel дополнительная двойственная переменная называется редуцированная стоимость.
из приведенного очевидно, что двойственные и дополнительные двойственные переменные являются мощным средством анализа полученного оптимального решения.