МатВектор

Command Palette

Search for a command to run...

♟️ Теория игр35 минСложность 3/5+65 XP

Симплекс-метод: пошаговый алгоритм решения ЗЛП с примером

Как работает симплекс-метод: каноническая форма, базисные и свободные переменные, симплекс-таблица, разрешающий столбец и строка. Две итерации полного примера.

4 интерактива3 квизаУрок 7 из 9Обновлено 04.10.2026Обычный

В прошлом уроке задача про столы и тумбы решилась на чертеже. А теперь усложним: третий продукт, четвёртый станок, двадцать сортов сырья. Рисовать полуплоскости в двадцатимерном пространстве не выйдет — нужен метод, который живёт в любой размерности. Такой метод есть: симплекс-метод, придуманный Джорджем Данцигом в 1947 году для военной логистики. Он не рисует ничего. Он ходит по вершинам многогранника допустимых планов с помощью одной таблицы и двух правил выбора.

Почему вершинный перебор работает без чертежей#

Из графического урока остался один факт: если область допустимых решений ограничена, оптимум линейной функции сидит в вершине. Вершины — их конечное число. Значит, теоретически можно перебрать их все. Симплекс-метод делает это умнее: из текущей вершины он переходит не куда угодно, а в соседнюю — ту, где целевая функция больше. Значение растёт с каждой итерацией, и процесс останавливается, когда лучше уже не бывает.

Соседние вершины отличаются ровно одной образующей прямой: одна граница отошла, другая прижалась. Алгебраический след — обмен ролями между переменными: одна покидает базис, одна занимает её место. Вот и вся механика. Название метод не обязано объяснять: «симплекс» достался ему от ранней геометрической интерпретации Данцига и прижился, хотя ничего простого, кроме таблицы, в методе нет.

Каноническая форма: базисные и свободные переменные#

Переводим задачу про цех в каноническую форму — добавляем балансовые переменные и , недогрузки станков:

— простой станка А в часах, — простой станка Б

Переменных четыре, уравнений два. Делим их на две группы. Свободные переменные — те, что приравниваем нулю: на старте это и , выпуск пуст. Базисные переменные — те, что выражаются из уравнений: , . Набор — базисное решение, и оно в точности соответствует вершине чертежа: нулевой выпуск, станки простаивают.

ПеременнаяРоль на стартеЗначениеСмысл
свободная0столы
свободная0тумбы
базисная8простой станка А, часы
базисная6простой станка Б, часы
Начальный базис читается из канонической формы сразу

Каждая вершина ОДР отвечает своему базису, и переход в соседнюю вершину — это обмен: одна переменная входит в базис, другая выходит. Симплекс-метод — формальная процедура такого обмена, в которой ничего не рисуют и ничего не угадывают.

Симплекс-таблица: что где записано#

Таблица устроена так: строки — базисные переменные с их ценами ; столбцы — все переменные задачи; в правом столбце — правые части, то есть значения базисных переменных. Внизу — строка оценок , где — произведение столбца на вектор цен , а — цена самой переменной. В клетке пересечения строки оценок со столбцом живёт текущее значение .

Начальная таблица задачи о цехе:

Базис$c_B$$x_1$$x_2$$x_3$$x_4$bθ
0121088/2 = 4
0110166/1 = 6
Δ—−2−300F = 0—
Старт: базис из балансовых переменных, все цены базиса нулевые

Оценки здесь — просто минусы цен свободных переменных: , , потому что базисные переменные ничего не стоят. Отрицательные оценки и есть сигнал: текущий план можно улучшить.

Алгоритм за пять шагов#

  1. Привести задачу к канонической форме и записать начальную таблицу: базис — балансовые переменные.
  2. Посмотреть на строку оценок: все ? План оптимален — стоп.
  3. Выбрать разрешающий столбец: , обычно наибольшую по модулю отрицательную оценку.
  4. Выбрать разрешающую строку: для положительных элементов столбца посчитать симплекс-отношения и взять строку с минимумом. Элемент на пересечении — разрешающий.
  5. Пересчитать таблицу методом Жордана–Гаусса: разрешающую строку поделить на разрешающий элемент, из остальных строк вычесть её с подходящими множителями. Вернуться к шагу 2.

Почему минимум работает именно так? Разрешающий элемент — ось вращения: вводимая переменная растёт от нуля, базисные в ответ меняются. Первая базисная переменная, упавшая до нуля, и есть граница роста; шагнуть дальше — план выйдет из ОДР, и это обнаружится в столбце отрицательными числами. Минимальное симплекс-отношение останавливает переменную ровно на границе: новая вершина достигнута, план остался допустимым.

Полный пример: две итерации до оптимума#

Идём по таблице. Разрешающий столбец — : оценка самая отрицательная. Симплекс-отношения: и ; минимум у строки . Разрешающий элемент — двойка на пересечении. Тумбы входят в план, простой станка А уходит из базиса.

Пересчёт. Первую строку делим на 2 — она становится строкой базисной : . Из строки вычитаем её: . Оценки пересчитываем по ценам : для столбца выходит , значит ; для столбца выходит . Значение — в точности вершина чертежа из графического урока.

Базис$c_B$$x_1$$x_2$$x_3$$x_4$bθ
31/211/2044 : (1/2) = 8
01/20−1/2122 : (1/2) = 4
Δ—−1/203/20F = 12—
После первой итерации: в базисе тумбы, прибыль 12

Отрицательная оценка осталась одна — столбец . Отношения: и — уходит простой станка Б, столы входят в план. Разрешающий элемент . Делим строку на него: получается строка : . Из строки вычитаем половину новой: . Столбец читает ответ: , .

Базис$c_B$$x_1$$x_2$$x_3$$x_4$bθ
3011−12—
210−124—
Δ—0011F = 14—
Финальная таблица: все оценки неотрицательны

Строка оценок стала неотрицательной: , . Все — план оптимален. Ответ: , , — ровно то, что дал чертёж. Балансовые переменные обнулились: оба станка загружены до упора, свободного часа нет.

Три сигнала таблицы: оптимум, бесконечность, вырожденность#

  • Все оценки неотрицательны — план оптимален. Если при этом нулевая оценка стоит у свободной переменной, оптимум не единственный: есть целая грань равноценных планов.
  • В разрешающем столбце нет положительных элементов — целевая функция не ограничена: улучшать можно бесконечно, симплекс-отношения считать не из чего.
  • Минимальное симплекс-отношение равно нулю — вырожденность: из базиса уйдёт переменная с нулевым значением, а за шаг не изменится.

Вырожденность — не ошибка, а состояние: у многогранника вершина, где сходится больше ограничений, чем нужно для базиса. Метод продолжает работать, просто один шаг оказывается бесплатным. Теоретически возможен цикл — возврат к старому базису; на практике его обрывают правилом выбора строки, например правилом Блэнда: брать строку с наименьшим номером уходящей переменной.

Геометрически алгоритм выглядит скромно: старт в вершине , шаг к , шаг к . Две итерации — потому что задачу из немногих переменных метод проходит за считанные ходы. В промышленных задачах с тысячами ограничений вершин триллионы, но симплекс всё равно приходит к ответу за десятки шагов: он не блуждает, а всегда лезет вверх по склону .

Откуда метод берётся и куда идёт#

Пересчёт таблицы — элементарные преобразования строк, те же, что в методе Гаусса: делим строку, вычитаем из других, обнуляем столбец. Разница только в маршруте: гаусс приводит систему к ступенчатому виду раз и навсегда, симплекс после каждого пересчёта заново решает, какой столбец ввести в базис. Термин закреплён в словарной статье про метод Гаусса, а потренировать сами преобразования строк можно в тренажёре СЛАУ.

Финальная таблица щедрее, чем кажется: оценки при балансовых переменных — это готовые теневые цены ресурсов. В нашем примере и означают: лишний час любого станка стоит тысячу. Откуда это берётся и как читать — двойственность в ЛП.

Проверь себя+10 XP

Строка оценок таблицы: . Какой столбец разрешающий по правилу «наибольшая по модулю отрицательная оценка»?

Проверь себя+10 XP

Столбец , разрешающий столбец . Какая строка уйдёт из базиса?

Проверь себя+10 XP

В разрешающем столбце все элементы отрицательны или нули. Что это значит?

Частые вопросы

Как выбрать разрешающий элемент в симплекс-таблице?

Сначала столбец: среди отрицательных оценок берут максимальную по модулю. Потом строку: для положительных элементов этого столбца считают и берут минимум. Элемент на пересечении — разрешающий: его выносят делением строки и обнулением столбца в остальных строках.

Что делать, если в разрешающем столбце нет положительных элементов?

Это признак неограниченности: соответствующую свободную переменную можно увеличивать бесконечно, не наткнувшись ни на одну границу, а целевая функция растёт без предела. Максимума не существует. В прикладной модели проверьте, не забыто ли ограничение по спросу, бюджету или фонду времени — обычно виновата постановка, а не метод.

Чем симплекс-метод отличается от метода Гаусса?

Гаусс решает систему линейных уравнений раз и навсегда. Симплекс решает задачу оптимизации: он использует те же преобразования строк (Жордан–Гаусс), но между шагами выбирает, какой столбец ввести в базис и какой вывести, чтобы целевая функция росла. Гаусс — двигатель, симплекс — руль и маршрут.

Что такое вырожденный базисный план?

План, у которого хотя бы одна базисная переменная равна нулю. На таблице он виден нулём в столбце b: минимальное симплекс-отношение равно нулю и F за итерацию не меняется. Метод продолжает работать; при зацикливании меняют правило выбора строки — например, на правило Блэнда.

Готовитесь к контрольной?

Чеклист тем по «Теория игр»: что вы уже умеете, что повторить и в каком порядке.

Открыть чеклист предмета →

Проверьте себя в бою

Босс-экзамен по «Теория игр»: квизы всех уроков плюс бесконечный поток сгенерированных задач. Каждая попытка — новый расклад.

Начать босс-экзамен →