Магистратура → Настройка → Линейное программирование ↓
Метод симплекс
Метод симплекс — это алгоритм, используемый для решения задач линейного программирования, который включает в себя поиск максимального или минимального значения линейной функции, удовлетворяющей линейным ограничениям. Линейное программирование является важным инструментом оптимизации в таких областях, как экономика, инженерия, военная сфера, бизнес и наука.
Введение в линейное программирование
Линейное программирование включает в себя набор уравнений и неравенств, представляющих математическую модель, оптимальное решение которой необходимо найти. Для задачи линейного программирования целью является оптимизация (максимизация или минимизация) линейной целевой функции при условии линейных равенств и/или неравенств. Общая форма задачи линейного программирования представлена следующим образом:
Максимум (или минимум):c 1 x 1 + c 2 x 2 + ... + c n x n
при условии:a 11 x 1 + a 12 x 2 + ... + a 1n x n ≤ b 1
a 21 x 1 + a 22 x 2 + ... + a 2n x n ≤ b 2
,a m1 x 1 + a m2 x 2 + ... + a mn x n ≤ b m
x 1 , x 2 , ..., x n ≥ 0
Что такое метод симплекс?
Метод симплекс представляет собой итеративную процедуру, которая систематически исследует угловые точки (или вершины) допустимой области для нахождения оптимального значения целевой функции. Эта процедура включает в себя переход от одной вершины к другой, улучшая значение целевой функции на каждом шаге, до достижения наилучшего возможного значения.
Процедура метода симплекс
- Преобразование задачи в стандартную форму.
- Определение пригодного начального решения.
- Продолжать искать более лучшее решение, пока улучшение невозможно.
- Оценка и интерпретация решения.
Шаг 1: Преобразование в стандартную форму
Чтобы применить метод симплекс, задача линейного программирования должна быть преобразована в стандартную форму. Это включает в себя:
- Удовлетворение, чтобы все ограничения были в виде линейных уравнений.
- Введение избыточных переменных для преобразования неравенств в равенства.
- Обеспечение того, чтобы все переменные были неотрицательными.
Рассмотрим следующий пример:
Максимум:3x 1 + 5x 2
при условии:x 1 + 2x 2 ≤ 8
3x 1 + 2x 2 ≤ 12
x 1 , x 2 ≥ 0
Введение избыточных переменных:
x 1 + 2x 2 + s 1 = 8
3x 1 + 2x 2 + s 2 = 12
x 1 , x 2 , s 1 , s 2 ≥ 0
Избыточные переменные s 1
и s 2
представляют собой неиспользованные ресурсы из ограничений.
Шаг 2: Определение начального решения
При установке равным нулю переменных решения (в данном случае x 1
и x 2) и установке избыточных переменных равными значениям ограничений, определяется начальное базовое допустимое решение.
В нашем примере начальное решение:
x 1 = 0
,x 2 = 0
,s 1 = 8
,s 2 = 12
Шаг 3: Повторение для улучшения решения
Чтобы выполнить рекурсию, создается таблица. Строка целей содержит отрицательные коэффициенты целевой функции. Рекурсия включает в себя:
- Цель - выбрать входящую переменную, имеющую самый отрицательный коэффициент в строке.
- Выбор выпадающих переменных с использованием теста минимальной пропорции.
- Поворот для обновления решения.
Начальная таблица: | базис | x 1 | x 2 | s 1 | s 2 | правая сторона | | S 1 | 1 | 2 | 1 | 0 | 8 | | S 2 | 3 | 2 | 0 | 1 | 12 | | z | -3 | -5 | 0 | 0 | 0 |
Итерация 1:
Входящая переменная - x 2
(самый отрицательный коэффициент в z-строке: -5
).
Для минимального соотношения: RHS / коэффициент x 2 = min(8/2, 12/2) = 4
, следовательно, s 1
- выпадающая переменная.
Поворот для замены s 1
на x 2
.
Панторная таблица: | базис | x 1 | x 2 | s 1 | s 2 | правая сторона | | x 2 | 0.5 | 1 | 0.5 | 0 | 4 | | S2 | 2.0 | 0 | -1 | 1 | 4 | | z | -0.5 | 0 | 2.5 | 0 | 20 |
Итерация 2:
Самый отрицательный коэффициент в новой z-строке: -0.5
(для x 1
).
Используя минимальное соотношение: RHS / коэффициент x 1 = min(4/0.5, 4/2) = 2
, так что s 2
- выпадающая переменная.
Поворот для замены s 2
на x 1
.
Поворотная таблица: | базис | x 1 | x 2 | s 1 | s 2 | правая сторона | | x 2 | 0.5 | 1 | 0.5 | 0 | 4 | | x1 | 1 | 0 | -0.5 | 0.5 | 2 | | Z | 0 | 0 | 3 | 0.5 | 22 |
Значение целевой функции улучшилось до 22, и больше нет отрицательных коэффициентов, следовательно, текущее решение является оптимальным.
Визуальный пример
Затененная область на графике представляет собой допустимую область, где все ограничения пересекаются. Круг отмечает точку оптимального решения, в которой достигается максимальное значение целевой функции.
Шаг 4: Оценка и интерпретация решения
Метод симплекс предоставляет наилучшие возможные значения для переменных решения в пределах допустимой области. Из окончательной таблицы мы можем определить оптимальное решение:
x 1 = 2, x 2 = 4
Значение целевой функции:22
Это означает, что максимальное значение целевой функции 3x 1 + 5x 2
равно 22
при x 1 = 2
и x 2 = 4
.
Свойства метода симплекс
- Метод симплекс движется по ребру допустимой области, обеспечивая улучшение или сохранение решения на каждом шаге, пока не будет найдено оптимальное решение.
- Он эффективно обрабатывает линейные целевые функции с ограничениями, что делает его подходящим для крупномасштабных задач линейного программирования.
- Хотя метод обычно начинается с нуля, все же требуется некоторая предварительная обработка для преобразования любой задачи в стандартную форму.
- Алгоритм конечен; он либо сходится к оптимальному решению, либо распознает, что для заданных ограничений не существует решения.
Преимущества и ограничения
Преимущества метода симплекс включают его способность обеспечивать точные оптимальные решения задач линейного программирования и его применимость к широкому диапазону задач, выходящих за рамки только ограничений вида ≤. Тем не менее, у этого метода есть некоторые ограничения:
Преимущества
- Обеспечивает точное решение.
- Может эффективно обрабатывать сложные задачи.
- Он широко понятен и используется, существуют множество библиотек и программного обеспечения для его поддержки.
Ограничения
- Может быть вычислительно затратным на очень больших наборах данных.
- Он не работает напрямую с нелинейными задачами.
- Циклирование может представлять проблему (иногда, но это можно решить с помощью стратегий против циклирования).
Заключение
Метод симплекс остается мощным инструментом для оптимизации, особенно в области исследовательских операций. Он предоставляет структурированный подход к поиску оптимальных решений для задач, требующих максимизации или минимизации при линейных ограничениях. Понимание его сильных и слабых сторон позволяет практикам эффективно применять этот метод для решения реальных задач с надежностью и точностью.