Симплекс-метод: основные этапы
Что такое симплекс-метод и зачем он нужен?
Симплекс-метод — это математический алгоритм для решения задач линейного программирования 📈. Представь, что у тебя есть ограниченные ресурсы (например, время, деньги, материалы), и ты хочешь максимизировать прибыль или минимизировать затраты. Симплекс-метод помогает найти оптимальное решение среди множества возможных вариантов!
💡 Запомни: Симплекс-метод работает только для линейных задач, где целевая функция и ограничения выражаются линейными уравнениями или неравенствами.
Основные этапы метода включают: преобразование задачи в стандартную форму, построение начальной симплекс-таблицы, итеративное улучшение решения и проверку на оптимальность. Давай разберем каждый шаг подробно! 🚀
Этап 1: Приведение задачи к стандартной форме
Прежде чем применять симплекс-метод, задачу нужно записать в стандартной форме. Вот ключевые требования:
- Целевая функция должна быть на максимизацию (если на минимизацию — умножь на -1).
- Все ограничения должны быть равенствами (не неравенствами).
- Все переменные неотрицательные (
x₁ ≥ 0, x₂ ≥ 0, ..., xₙ ≥ 0).
Как преобразовать ограничения-неравенства? Добавляем дополнительные переменные (slack variables)!
- Если ограничение типа
≤, добавляем переменную со знаком+. - Если ограничение типа
≥, добавляем переменную со знаком-.
Пример преобразования:
Исходная задача: Максимизировать: Z = 3x₁ + 5x₂ При ограничениях: 2x₁ + 4x₂ ≤ 8 6x₁ + 2x₂ ≤ 12 x₁ ≥ 0, x₂ ≥ 0 Стандартная форма: Максимизировать: Z = 3x₁ + 5x₂ + 0s₁ + 0s₂ При ограничениях: 2x₁ + 4x₂ + s₁ = 8 6x₁ + 2x₂ + s₂ = 12 x₁ ≥ 0, x₂ ≥ 0, s₁ ≥ 0, s₂ ≥ 0
Этап 2: Построение начальной симплекс-таблицы
Симплекс-таблица — это удобный способ организовать данные задачи. Она содержит коэффициенты целевой функции и ограничений.
Структура таблицы:
| Базисные переменные | Коэффициенты | x₁ | x₂ | s₁ | s₂ | Решение (RHS) |
|---|---|---|---|---|---|---|
| s₁ | 0 | 2 | 4 | 1 | 0 | 8 |
| s₂ | 0 | 6 | 2 | 0 | 1 | 12 |
| Z | 1 | -3 | -5 | 0 | 0 | 0 |
🎯 Совет: Обрати внимание на строку Z — в ней записаны коэффициенты целевой функции с противоположным знаком. Это нужно для вычислений!
Этап 3: Итеративное улучшение решения
Симплекс-метод работает итеративно: на каждом шаге мы улучшаем значение целевой функции, пока не достигнем optimum.
- Выбор ведущего столбца: Найди столбец с наибольшим по модулю отрицательным числом в строке Z (для максимизации). Это будет переменная, которую мы введем в базис.
- Выбор ведущей строки: Для каждого ограничения вычисли отношение RHS к коэффициенту в ведущем столбце (только положительные значения). Выбери строку с наименьшим отношением.
- Пересчет таблицы: Используя элемент на пересечении ведущих строки и столбца (ведущий элемент), преобразуй таблицу методом Жордана-Гаусса.
Пример для нашей таблицы:
- Ведущий столбец: x₂ (наибольшее отрицательное число в Z: -5).
- Отношения для строк: s₁: 8/4 = 2; s₂: 12/2 = 6 → min = 2, ведущая строка s₁.
- Ведущий элемент = 4.
После пересчета получим новую таблицу:
| Базис | C | x₁ | x₂ | s₁ | s₂ | RHS |
|---|---|---|---|---|---|---|
| x₂ | 5 | 0.5 | 1 | 0.25 | 0 | 2 |
| s₂ | 0 | 5 | 0 | -0.5 | 1 | 8 |
| Z | 1 | -0.5 | 0 | 1.25 | 0 | 10 |
Этап 4: Проверка на оптимальность
Решение оптимально, если в строке Z нет отрицательных коэффициентов (для задачи максимизации). В нашем примере в строке Z еще есть отрицательное число (-0.5 при x₁), значит, нужно продолжать итерации.
Повторяем шаги:
- Ведущий столбец: x₁.
- Отношения: x₂: 2/0.5 = 4; s₂: 8/5 = 1.6 → min = 1.6, ведущая строка s₂.
- Ведущий элемент = 5.
После пересчета:
| Базис | C | x₁ | x₂ | s₁ | s₂ | RHS |
|---|---|---|---|---|---|---|
| x₂ | 5 | 0 | 1 | 0.3 | -0.1 | 1.2 |