
- •Задачи линейного программирования
- •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. Сервис, Поиск решения...
- •3.4.3. Решение по нескольким целевым функциям
- •3.4.4. Решения по заказу
- •3.4.5. Решение задач при условных исходных данных
- •3.5. Список алгоритмов
Признак 1
Признак 1 определяет, является ли полученное решение допустимым. Согласно этому признаку решение является допустимым, если в столбце свободных членов В5:В7 (целевая функция не рассматривается) все величины неотрицательные.
Признак 2
Признак 2 определяет наличие оптимального решения, при этом возможны 2 варианта:
Признак 2а
Целевая функция имеет минимальное значение в том случае, когда все элементы в строке целевой функции С4:F4 (свободный член не рассматривается) будут отрицательными. Следовательно, на рис. 3.1.7 приведено решение при минимизации целевой функции. Действительно, если ничего не выпускать, то
х1 = х2 = х3 = х4 = 0,
и при этом прибыль будет F = В4 = 0.
Признак 2б
Целевая функция имеет максимальное значение в том случае, когда все элементы в строке целевой функции С4:F4 будут положительными.
Поскольку таблица на рис. 3.1.7 не удовлетворяет признаку максимизации целевой функции, что нам требуется найти в решаемой задаче, то приступим к ее решению с помощью симплекс-метода.
Как мы говорили, поиск оптимального решения заключается в переборе вершин ОДР. При этом переход от одной вершины к другой производится по достаточно сложному алгоритму симплекс-метода, который заключается в обмене переменных. Каждый переход от одной вершины к другой, который, как мы знаем, называется итерацией, состоит в том, что одна базисная переменная приравнивается к нулю, т. е. переходит в свободную, а одна свободная переменная переводится в базисную. На каждой итерации проверяют удовлетворение признаков допустимого и оптимального решений. Такая процедура продолжается до тех пор, пока не будут удовлетворены оба признака. Применительно к нашей задаче последняя симплекс-таблица, полученная после второй итерации, будет иметь вид, приведенный на рис. 3.1.8.
Рис. 3.1.8
Из этой таблицы видно, что в столбце свободных членов все элементы положительные, тогда по признаку 1 решение является допустимым. В строке целевой функции все элементы также положительные. Следовательно, согласно признаку 2б решение является оптимальным в смысле максимизации целевой функции. В этом случае оптимальным решением будут величины:
х1*= 10, х3*= 6 (которые являются базисными);
х2*= х4*= 0 (так как они свободные);
целевая функция F=1320.
Таков результат решения задачи. Но это еще не все. Симплекс-таблица является мощным средством для выполнения анализа.
Посмотрим, что еще можно узнать из симплекс-таблицы. На рис. 3.1.8 видно, что свободные переменные у1 = у3 = 0, а базисная переменная у2 = 26. Это значит, что в оптимальном плане величины неиспользованных трудовых и финансовых ресурсов равны нулю. Следовательно, эти ресурсы используются полностью. Вместе с тем, величина неиспользованных ресурсов для сырья у2 = 26, значит, имеются излишки сырья. Вот какие выводы можно сделать с помощью симплекс-таблицы.
И это тоже, оказывается, еще не все. Но об этом чуть позже.
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)