Главная > Математика > Исследование операций: задачи, принципы, методология
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

§ 8. Основная задача линейного программирования

Любую задачу линейного программирования можно свести к стандартной форме, так называемой «основной задаче линейного программирования» (ОЗЛП), которая формулируется так: найти неотрицательные значения переменных которые удовлетворяли бы условиям-равенствам

и обращали бы в максимум линейную функцию этих переменных:

Убедимся в этом. Во-первых, случай, когда L надо обратить не в максимум, а в минимум, легко сводится к предыдущему, если попросту изменить знак L на обратный (максимизировать не L, а . Кроме того, от любых условий-неравенств можно перейти к условиям-равенствам ценой введения некоторых новых «дополнительных» переменных. Покажем, как это делается, на конкретном примере.

Пусть требуется найти неотрицательные значения переменных , удовлетворяющие ограничениям-неравенствам

и обращающие в максимум линейную функцию от этих переменных:

Начнем с того, что приведем условия (8.3) к стандартной форме, так, чтобы знак неравенства был а справа стоял нуль. Получим:

А теперь обозначим левые части неравенств (8.5) соответственно через :

Из условий (8.5) и (8.6) видно, что новые переменные также должны быть неотрицательными.

Какая же теперь перед нами стоит задача? Найти неотрицательные значения переменных такие, чтобы они удовлетворяли условиям - равенствам (8.6) и обращали в максимум линейную функцию этих переменных (то, что в i не входят дополнительные переменные неважно: можно считать, что они входят, но с нулевыми коэффициентами). Перед нами — основная задача линейного программирования (ОЗЛП).

Переход к ней от первоначальной задачи с ограничениями-неравенствами (8.3) «куплей» ценой увеличения числа переменных на два (число неравенств).

Возможен и обратный переход: от ОЗЛП к задаче с ограничениями-неравенствами. Пусть перед нами основная задача линейного программирования с ограничениями-равенствами (8.1). Предположим, что среди этих равенств линейно независимыми являются . В линейной алгебре доказывается (см., например, [4]), что максимальное число линейно независимых равенств, связывающих переменных равно , так что вообще . В линейной алгебре также доказывается, что систему из независимых равенств с переменными всегда можно разрешить относительно каких-то переменных (называемых «базисными») и выразить их через остальные переменных (называемых «свободными»). Свободным переменным можно придавать какие угодно значения, не нарушая условий (8.1). Так вот, для того чтобы перейти от условий-равенств (8.1) к условиям-неравенствам, достаточно разрешить уравнения (8.1) относительно каких-то базисных переменных, выразить их через свободные, а затем вспомнить, что все переменные должны быть неотрицательными, и записать условия их неотрицательности в виде ограничений-неравенств. А потом «забыть» о базисных переменных и манипулировать только свободными, число которых будет . При этом надо будет освободить от базисных переменных также и функцию L, подставив в нее их выражения через свободные. Таким образом, при переходе от ОЗЛП к задаче с ограничениями-неравенствами число переменных не увеличивается, а уменьшается на число независимых условий-равенств в ОЗЛП. Примеров такого перехода мы приводить не будем, предоставляя пытливому читателю самому убедиться в его возможности.

Итак, всякая задача линейного программирования может быть сведена к стандартной форме ОЗЛП.

Мы не будем подробно останавливаться на способах решения этой задачи. Им посвящены специальные руководства (например, [4, 53), они описаны во многих книгах по исследованию операций (например, [6, 7]). В следующем параграфе мы изложим только некоторые соображения общего характера относительно существования решения ОЗЛП и способов его нахождения. Никакими расчетными алгоритмами мы заниматься не будем, а отошлем интересующегося читателя к вышеупомянутым руководствам.

<< Предыдущий параграф Следующий параграф >>
Оглавление