Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Исследование операций.doc
Скачиваний:
48
Добавлен:
08.12.2018
Размер:
1.51 Mб
Скачать

4. Симплексный метод

Идея метода

Пусть имеем ЗЛП

(1)

(i=1, 2, …, m) (2)

, (j=1, 2, …, n) (3)

Нахождение такой вершины многогранника, в которой целевая функция достигает оптимума.

Задача заключается в переборе всех вершин. Одним из методов перебора является симплексный метод. Он включает в себя:

  1. нахождение исходного опорного плана (исходной вершины многогранника планов);

  2. целенаправленный перебор опорных планов, при котором каждый следующий план ближе к оптимальному, чем предыдущий.

Число шагов в симплексном методе конечно. При каждом шаге мы находим такой опорный план, при котором значение целевой функции будет больше (меньше) значения целевой функции для предыдущих планов.

Процесс повторяется до тех пор, пока либо не получим оптимального решения, либо не убедимся в отсутствии решения, либо не убедимся в неограниченности целевой функции.

Построение опорных планов

Основой симплексного метода является получение опорного плана, исходя из известного.

Пусть дана ЗЛП (1) – (3)

Предположим, что нам известен некоторый исходный опорный план, который содержит m положительных компонент. Этому плану соответствует некоторый базис, состоящий из m векторов. Без ограничения общности можно считать, что система ограничений ЗЛП содержит m единичных векторов. Пусть это будут первые m векторов. Тогда система ограничений запишется в виде:

…, …,

Векторы образует базис m – мерного пространства. Поэтому соответствующие переменные будут базисными, а остальные переменные будут свободными.

Полагая свободные переменные равными 0, мы получим исходный опорный план:

(4)

Этому исходному плану соответствует разложение:

(5)

Рассмотрим случай, как из исходного плана можно получить опорный.

Векторы образуют базис m – мерного пространства, поэтому каждый из векторов (j=1, …, n) может быть разложен по векторам базиса единственным образом: .

Пусть для некоторого вектора , не входящего в базис (k>m) имеем разложение (6)

Хотя бы один из коэффициентов разложения положительный. Умножим обе части равенства (6) на некоторое положительное число >0 и вычтем из (5). Получим

План (j=1,…,n)

На такой вектор будет план на ЗЛП, если все его компоненты неотрицательны . Остается рассмотреть только те разности, для которых .

Нам нужно выбрать такое чтобы значит .

Таким образом, для того, чтобы вектор хi был планом ЗЛП необходимо и достаточно, чтобы удовлетворяла условию: , здесь min берется только для тех i для которых .

Вектор x1 содержит m+1 компоненту, поэтому план не является опорным. Для того, чтобы план этот план был опорным нам нужно из x1 исключить одну компоненту, то есть приравнять её к нулю.

Можно показать, что векторы образуют базис.

План х1 будет опорным. Таким образом, от плана x0 мы перешли к другому плану x1 тоже опорному. Этот переход от одного плана к другому соответствует исключению из базиса одного из первоначальных базисных векторов и включению в базис другого вектора.

Основная идея Симплекс-метода состоит в определении того вектора, который следует включить в базис. При этом может получиться, что все компоненты вектора Ak, которые мы включаем в базис будут неположительны. В этом случае все разности будут положительны, а вектор x1 ,будет содержать m+1 положительную компоненту и нельзя найти такое число чтобы одна из компонент обратилась в нуль. В этом случае векторы будут линейно зависимы и план x1 определяет некоторую внутреннюю точку многогранника планов, в которой целевая функция достичь max (min) не может. Как бы мы не двигали гиперплоскость, которая определяется целевой функцией, наибольшего и наименьшего значения этой функции мы никогда не достигнем, т.е. в таком случае ЗЛП не определение max (min) целевой функции неразрешимы, т.е. целевая функция неограниченна на многограннике планов.

Критерии отыскания оптимального плана

Выше мы изложили метод нахождения опорного плана, исходя из старого. Всего можно получить различных опорных планов.

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

пусть (8), где все .

Разложение любого вектора имеет по векторам базиса вид (9)

Этому разложению вектора соответствует единственное ??? (10)

Обозначим через коэффициенты целевой функции, соответствующей вектору . Тогда справедлива следующая теорема.

Теорема 1. Для отыскания , если для некоторого вектора выполнено условие , то план не является оптимальным и можно построить такой план , что .

Доказательство. Умножим обе части (9) и (10) на и вычтем из равенств (7) и (8) соответственно. Будем иметь:

(11)

Так как все числа положительны, то всегда можно выбрать такое , что все коэффициенты при векторах разложения (11) будут неотрицательны. Тогда план

исходной задачи и для этого плана , т.к. и , то . Что и требовалось доказать.

Следствие. Если для всех векторов , имеют место условия (12), тогда план является оптимальным.

Условия (12) являются условиями оптимальности плана ЗЛП на отыскание max значения целевой функции. Разности называются оценками плана.

Таким образом: Для того, чтобы план ЗЛП отыскания max целевой функции был оптимальным необходимо и достаточно, чтобы все оценки плана были неотрицательны.

Для ЗЛП на отыскание минимального значения целевой функции имеет место следующая теорема:

Теорема 2. Для отыскания , если для некоторого вектора выполнено условие , то план не является оптимальным и можно построить такой план , что .

Следствие. Если для всех векторов , имеют место условия (12), тогда план является оптимальным.

Таким образом: Для того, чтобы ЗЛП на отыскание min значения целевой функции имела оптимальный план необходимо и достаточно, чтобы оценки этого плана были неположительны.

Алгоритм симплекс метода

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

При количестве переменных более трех задача теряет геометрическую наглядность, так как трудно представить себе, например, четырехмерное пространство. Однако идея получения решения, рассмотренного выше, сохраняет смысл и для случая многомерного пространства.

На основе этой идеи создан и разработан один из основных методов решения задач линейного программирования - так называемый симплекс-метод.

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

Первый шаг. Найти допустимый план, соответствующий одной из вершин области допустимых планов.

Второй шаг. Проверить, оптимален ли найденный план. Если оптимален, вычисления окончены. Если нет - следующий план.

Третий шаг. Переход к другой вершине (другому допустимому плану), в которой значение целевой функции меньше, проверка его на оптимальность и т.д.

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