- •§2. Математические модели и методы их расчета
- •2.1. Понятие операционного исследования
- •Основные этапы операционного исследования:
- •2.2. Принципы построения математических моделей
- •2.3. Оптимизационные модели
- •§3. Постановка задачи линейного программирования
- •3.1. Примеры задач линейного программирования
- •3.2 Общая формулировка задачи линейного программирования
- •3.3 Каноническая форма задачи линейного программирования
- •§4. Графический метод решения задач лп
- •§ 5. Метод последовательного уточнения плана (симплекс-метод)
- •Алгоритм симплексного метода задачи на максимум
- •§6. Прямая и двойственная задача линейного программирования.
- •6.1 Постановка задачи
- •Правила построения двойственной задачи по имеемой прямой задаче:
- •6.2 Геометрическая интерпретация двойственных задач.
- •6.3. Основные теоремы двойственности
§ 5. Метод последовательного уточнения плана (симплекс-метод)
В случае большого числа переменных геометрический метод становится невозможным. Одним из методов решения задач линейного программирования является метод последовательного уточнения плана (симплекс-метод).
Геометрический смысл симплексного метода состоит в последовательном переходе от одной вершины многогранника ограничений (называемой первоначальной) к соседней, в которой линейная функция принимает лучшее (по крайней мере, не худшее) значение (по отношению к цели задачи) до тех пор, пока не будет найдено оптимальное решение — вершина, где достигается оптимальное значение функции цели (если задача имеет конечный оптимум).
Симплексный метод, позволяющий решить любую задачу линейного программирования, универсален. В настоящее время он используется для компьютерных расчетов, однако несложные примеры с применением симплексного метода можно решать и вручную.
Для реализации симплексного метода — последовательного улучшения решения — необходимо освоить три основных элемента:
• способ определения какого-либо первоначального допустимого базисного решения задачи;
• правило перехода к лучшему (точнее, не худшему) решению;
• критерий проверки оптимальности найденного решения.
Для использования симплексного метода задача линейного программирования должна быть приведена к каноническому виду, т.е. система ограничений должна быть представлена в виде уравнений. Алгоритм конкретной вычислительной реализации этих элементов рассмотрим на примерах.
Алгоритм симплексного метода задачи на максимум
1.Математическую модель задачи привести к каноническому (стандартному) виду.
Выбираем базисные и свободные переменные.
Построить начальную симплекс-таблицу исходя из стандартного вида.
Исходную расширенную систему заносим в первую симплексную таблицу. Последняя строка таблицы, в которой приведено уравнение для линейной функции цели, называется оценочной. В левом столбце таблицы записываем основные переменные (базис), в первой строке таблицы — все переменные (отмечая при этом основные), во втором столбце — свободные члены расширенной системы. Последний столбец подготовлен для оценочных отношений, необходимых при расчете наибольшего возможного значения переменной. В рабочую часть таблицы (начиная с третьего столбца и второй строки) занесены коэффициенты аij при переменных из расширенной системы. Далее таблица преобразуется по определенным правилам.
3. Проверяем выполнение критерия оптимальности при решении задачи на максимум — отсутствие в последней строке отрицательных коэффициентов. Если таких нет, то решение оптимально, достигнут max F в левом нижнем углу таблицы, получаем оптимальное базисное решение.
4. Если критерий оптимальности не выполнен, то наибольший по модулю отрицательный коэффициент в последней строке определяет разрешающий столбец s.
5. Составляем оценочные ограничения каждой строки по следующим правилам:
6. Вычислить разрешающую строку и ведущий элемент
Определяем
Если конечного минимума нет, то задача не имеет конечного оптимума. Если минимум конечен, то выбираем строку, на которой он достигается (любую, если их несколько), и называем ее разрешающей строкой q. На пересечении разрешающих строки и столбца находится разрешающий элемент aqs.
7. Построить новую симплекс-таблицу-второй шаг.
При построении новой таблицы убрать из базиса строку с переменной разрешающей строки в предыдущей таблице. Ввести в базис строку с названием разрешающего столбца предыдущей таблицы.
Построение ведущей строки в новой таблице. Почленно поделить всю разрешающую строку на разрешающий элемент.
Построение других строк в новой таблице. Почленно умножить ведущую строку на соответствующие этим строкам элементы разрешающего столбца из предыдущей таблицы и прибавить к соответствующим строкам в старой таблице.
8. Проверяем таблицу второго шага на оптимальность. Если в строке целевой функции нет отрицательных элементов, тогда таблица имеет оптимальный план, записать ответ. Если в строке ЦФ есть отрицательный элемент (элементы), тогда переходят к следующему (третьему) шагу, строят новую симплекс-таблицу в соответствии и затем проверяют ее на оптимальность. Построение таблиц заканчивается с нахождением оптимального плана.
Пример
Математическая модель задачи
max (Z= 6x1+5x2+4x3+3x4)
2x1+3x2+2x3+x4< 25
4x1+x2+3x3+2x4< 30
3x1+5x2+2x3+2x4< 42
x1, x2, x3, x4 > 0