Метод нулевого базиса
Метод нулевого базиса — это способ построения начального опорного плана (базисного решения) в задачах линейного программирования, применяемый в симплекс-методе. Он используется для нахождения допустимого базисного решения, когда исходная задача содержит ограничения-равенства или неравенства типа «≥», а также в случаях, когда стандартное введение искусственных переменных приводит к нежелательному увеличению размерности задачи. Метод нулевого базиса позволяет сформировать начальную симплекс-таблицу без введения дополнительных переменных, используя нулевые значения для части базисных переменных.
История возникновения
Метод нулевого базиса был разработан в середине XX века в рамках развития теории линейного программирования. Его появление связано с необходимостью решения задач, в которых стандартные методы построения начального базиса, такие как метод искусственного базиса (М-метод), оказывались неэффективными из-за большого числа искусственных переменных. Конкретные авторы метода нулевого базиса в открытых источниках не указываются, однако он рассматривается как частный случай более общего подхода к построению начального решения в симплекс-методе. В советской и российской научной литературе метод нулевого базиса описывался в учебных пособиях по математическому программированию, например, в работах В. А. Емельянова, А. А. Корбута и других авторов.
Суть метода
Метод нулевого базиса применяется в задачах линейного программирования, записанных в канонической форме:
\[ \begin{cases} \mathbf{A}\mathbf{x} = \mathbf{b}, \\ \mathbf{x} \geq \mathbf{0}, \\ \mathbf{c}^T \mathbf{x} \to \min. \end{cases} \]
Здесь \(\mathbf{A}\) — матрица ограничений размера \(m \times n\), \(\mathbf{b}\) — вектор правых частей, \(\mathbf{c}\) — вектор коэффициентов целевой функции. Если в исходной задаче присутствуют неравенства типа «≥», они предварительно преобразуются в равенства введением дополнительных (остаточных) переменных.
Основная идея метода нулевого базиса заключается в том, что в качестве начального базиса выбирается набор из \(m\) переменных, среди которых часть может быть равна нулю. При этом не требуется вводить искусственные переменные, как в М-методе. Вместо этого начальное базисное решение строится следующим образом:
- Выбирается подмножество из \(m\) переменных, которые будут базисными. Обычно это переменные, соответствующие столбцам матрицы \(\mathbf{A}\), образующим единичную подматрицу (если такая есть), или переменные, которые можно сделать базисными путём элементарных преобразований.
- Значения базисных переменных вычисляются из системы уравнений \(\mathbf{A}\mathbf{x} = \mathbf{b}\). Если среди них оказываются отрицательные, то решение недопустимо, и требуется пересчёт.
Метод нулевого базиса особенно эффективен, когда в матрице \(\mathbf{A}\) имеются столбцы, соответствующие единичным векторам (например, после введения дополнительных переменных для неравенств типа «≤»). В таких случаях начальный базис формируется из этих переменных, и их значения равны соответствующим компонентам вектора \(\mathbf{b}\). Если же все компоненты \(\mathbf{b}\) неотрицательны, то начальное решение является допустимым.
Алгоритм применения
Алгоритм метода нулевого базиса включает следующие шаги:
- Приведение задачи к канонической форме. Все ограничения-неравенства преобразуются в равенства введением дополнительных переменных. Целевая функция приводится к виду минимизации.
- Формирование начальной симплекс-таблицы. В таблицу включаются все переменные, включая дополнительные. Если в матрице ограничений есть единичные столбцы, они используются как базисные.
- Проверка допустимости. Вычисляются значения базисных переменных. Если все они неотрицательны, начальное решение считается допустимым. В противном случае применяются методы устранения отрицательности (например, двойственный симплекс-метод или переход к другому набору базисных переменных).
- Итерации симплекс-метода. После получения допустимого базисного решения выполняется стандартная процедура симплекс-метода: выбор разрешающего столбца, разрешающей строки, пересчёт таблицы до достижения оптимальности.
Пример применения
Рассмотрим задачу линейного программирования:
\[ \begin{aligned} & x_1 + 2x_2 \geq 4, \\ & 3x_1 + x_2 \geq 6, \\ & x_1, x_2 \geq 0, \\ & F = 2x_1 + 3x_2 \to \min. \end{aligned} \]
Приведём к канонической форме, введя остаточные переменные \(x_3\) и \(x_4\) со знаком минус:
\[ \begin{cases} x_1 + 2x_2 - x_3 = 4, \\ 3x_1 + x_2 - x_4 = 6, \\ x_1, x_2, x_3, x_4 \geq 0. \end{cases} \]
Матрица ограничений не содержит единичных столбцов. Для применения метода нулевого базиса можно взять в качестве начальных базисных переменных \(x_3\) и \(x_4\), выразив их через остальные:
\[ x_3 = x_1 + 2x_2 - 4, \quad x_4 = 3x_1 + x_2 - 6. \]
При \(x_1 = x_2 = 0\) получаем \(x_3 = -4\), \(x_4 = -6\), что недопустимо. Однако метод нулевого базиса позволяет выбрать другой набор базисных переменных. Например, можно взять \(x_1\) и \(x_2\) в качестве базисных, решив систему:
\[ \begin{cases} x_1 + 2x_2 = 4 + x_3, \\ 3x_1 + x_2 = 6 + x_4. \end{cases} \]
При \(x_3 = x_4 = 0\) получаем \(x_1 = 1.6\), \(x_2 = 1.2\), что является допустимым базисным решением. Таким образом, метод нулевого базиса позволяет начать симплекс-процесс с этого решения, не вводя искусственных переменных.
Сравнение с другими методами
Метод нулевого базиса часто сравнивают с методом искусственного базиса (М-методом). Основные различия:
- М-метод вводит искусственные переменные в каждое ограничение, не содержащее базисной переменной, и добавляет их в целевую функцию с большим штрафным коэффициентом \(M\). Это увеличивает размерность задачи и может приводить к вычислительным погрешностям.
- Метод нулевого базиса не требует введения дополнительных переменных, что сокращает размерность симплекс-таблицы. Однако он применим не всегда: для его использования необходимо, чтобы в матрице ограничений можно было выделить \(m\) линейно независимых столбцов, образующих базис, и чтобы соответствующее базисное решение было неотрицательным (или могло быть сделано таковым путём преобразований).
В российской учебной литературе метод нулевого базиса часто рассматривается как частный случай двухфазного симплекс-метода, где первая фаза заключается в поиске допустимого базисного решения без искусственных переменных.
Применение
Метод нулевого базиса используется в задачах линейного программирования, где:
- Исходные ограничения содержат равенства или неравенства типа «≥»;
- Матрица ограничений имеет разреженную структуру, позволяющую легко выделить базисные столбцы;
- Требуется минимизировать вычислительные затраты, связанные с введением искусственных переменных.
В практических расчётах метод нулевого базиса применяется реже, чем М-метод или двухфазный симплекс-метод, из-за сложности автоматического выбора начального базиса. Однако он может быть полезен при ручном решении задач небольшой размерности или в специализированных алгоритмах, где структура задачи известна заранее.
Критика и ограничения
Основные недостатки метода нулевого базиса:
- Не всегда удаётся сразу найти допустимое базисное решение, особенно если в задаче много ограничений-равенств.
- Требует предварительного анализа матрицы ограничений, что усложняет автоматизацию.
- В случае, когда начальное решение оказывается недопустимым, приходится применять дополнительные процедуры (например, двойственный симплекс-метод), что снижает эффективность.
В современной вычислительной практике метод нулевого базиса уступает место более универсальным алгоритмам, таким как метод внутренней точки или модифицированный симплекс-метод с автоматическим выбором начального базиса.
Источники
- Емельянов В. А., Корбут А. А. Математическое программирование. — М.: Наука, 1976.
- Таха Х. А. Введение в исследование операций. — М.: Вильямс, 2005.
- Лунгу К. Н. Линейное программирование. — М.: Физматлит, 2008.
- Карманов В. Г. Математическое программирование. — М.: Наука, 1986.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →