
- •Вырожденность и зацикливание при решении задач линейного программирования
- •Связь между решениями прямой и двойственной задач
- •Основные теоремы двойственности и их экономическое содержание
- •Графический метод решения задач нелинейного программирования
- •2.1 Градиентные методы решения задач
- •Основы теории массового обслуживания
- •Потоки событий
- •Уравнения Колмогорова для вероятностей состояний. Финальные вероятности состояний
- •Классификация систем массового обслуживания
- •Задачи теории массового обслуживания
- •Одноканальная смо с отказами
- •6.3. Одноканальная смо с ожиданием и ограниченной очередью
- •6.6. Многоканальная смо с ожиданием
- •Процессы размножения и гибели
Алгоритм решения ЗЛП графическим методом.
1) Записывают уравнения прямых, соответствующих ограничениям (3.3.4), и строят их на плоскости x1ox3.
2) Определяют области, в которых выполняются ограничения задачи. Для этого выбирают произвольную точку на плоскости х1ох2 и подставляют ее координаты в первую часть одного из неравенств. Если неравенство верно, то искомая полуплоскость находится с той же стороны от прямой, что и точка; в противном случае искомая полуплоскость лежит с противоположной стороны от прямой. Эти действия последовательно выполняются для всех неравенств (3.3.4).
3) Определяют область допустимых решений задачи как область пересечения т полуплоскостей, соответствующих т ограничениям задачи.
4) Определяют
направление возрастания (убывания)
целевой функции f. Это можно
сделать двумя способами. Можно построить
вектор-нормаль
,
его направление показывает направление
возрастания функции f,
и противоположном направлении функция
убывает. Можно просто построить две
линии уровня функции f = K1; f = K2;
(K1, K2 –
произвольные константы, K1
K2),
и по их расположению определить
направление возрастания (убывания)
функции.
5) Определяют граничную точку (точки) области допустимых решений, в которых целевая функция принимает максимальное или минимальное значение.
6) Вычисляют значения найденной точки, решая совместно уравнения, задающие прямые, на пересечении которых находится эта точка, или выявляя уравнение граничной прямой области допустимых решений, с которой совпадает линия уровня целевой функции.
Возможны следующие варианты областей допустимых решений (рис. 3.2):
Алгоритм решения системы (3.21)–(3.22) симплекс-методом
Шаг 1. Получение начального решения.
Выбираются т переменных, называемых базисными и обладающих следующим свойством: они входят с коэффициентом 1 только в одно уравнение и с коэффициентом 0 в остальные уравнения системы (3.22).
Остальные п – т переменных называют свободными.
Все свободные переменные полагаются равными 0, а базисные переменные — равные правым частям соответствующих ограничений системы (3.22).
Пусть т базисных переменных — это переменные x1, x2,...,xm (в противном случае переменные всегда можно перенумеровать).Тогда начальное решение Х0 имеет следующий вид:
Хо ={x1= b1,х2=b2,...,хт = bm,xm+l = 0,...,хn = 0}.
Если
все bi
0,
то начальное решение является допустимым.
Переходят к шагу 3. В противном случае
используют алгоритм нахождения начального
решения.
Шаг 3. Выражение функции f только через свободные переменные.
Значения
коэффициентов cj,
, естественно,
отличны от значений коэффициентов в
формуле (3.21), но для простоты обозначены
той же буквой.)
Переход к шагу 3.
Шаг 4. Проверка решения на оптимальность.
Составляется
симплекс-таблица (табл. 3.3). В левой
колонке симплекс-таблицы находятся
базисные переменные, в колонке свободных
членов – правые части соответствующих ограничений.
В i-й
строке,
j-м столбце
стоит коэффициент при j-й
переменной в i-м
ограничении (3.22),
,
.
В последней строке (f –
строке) стоит коэффициент с противоположным
знаком при j-ой
переменной в целевой функции f.
В
последнем столбце стоят значения
свободных членов, входящего в ограничения.
Таблица 3.3
Базисные переменные |
Коэффициенты при переменных |
Свободные члены |
||||||||
x1 |
x2 |
… |
xm |
… |
xp |
… |
xn |
|||
x1 x2 … xq … xm |
a11 a21 … aq1 … am1 |
a11 a22 … aq2 … am2 |
…… ... … … … … |
a1m a2m … aqm … aAmn |
…… ... … … … … |
a1p a2p … aqp … amp |
…… ... … … … … |
a1n a2n … aqn … amn |
b1 b2 … bq … bm |
|
-f |
-c1 |
-c2 |
|
-cm |
|
-cp |
|
-cn |
0 |
Для проверки решения на оптимальность просматривается последняя f -строка. Если коэффициенты, стоящие при свободных переменных неотрицательны, то полученное решение оптимально. Полученное решение единственно, если все эти коэффициенты положительны. Если среди неотрицательных коэффициентов встречается хотя бы один нулевой, то задача имеет бесконечное множество решений. Если в последней строке есть хотя бы один отрицательный коэффициент, а в соответствующем этому коэффициенту столбце нет ни одного положительного элемента, то целевая функция f не ограничена на области допустимых решений. Если хотя бы один из коэффициентов, стоящих при свободных переменных, отрицательный и в соответствующем ему столбце есть хотя бы положительный элемент, то полученное решение может быть улучшено. Переход к шагу 4.
Шаг 5. Получение нового решения.
Шаг 5.1. Выбор переменной, вводимой в список базисных переменных.
Просматривается последняя строка симплекс-таблицы. Среди элементов этой строки выбирается максимальный по абсолютной величине отрицательный элемент. Столбец, в котором стоит этот элемент, называется разрешающим. Пусть, например, это p-й столбец. Переменная хр, стоящая в этом столбце, вводится в список базисных переменных.
Шаг 5.2. Выбор переменной, выводимой из списка базисных переменных.
Находят
отношение элементов столбца свободных
членов к элементам разрешающего столбца.
При делении на отрицательный элемент
и 0 результат полагают равным
.
Среди этих отношений находят минимальное.
Строка, соответствующая минимальному
отношению, называется разрешающей.
Пусть, например, это q-я строка.
Базисная переменная xq, стоящая
в этой строке, выводится из списка
базисных переменных. Элемент симплекс
– таблицы aqp, стоящий
на пересечении разрешающей строки и
разрешающего столбца, называется
разрешающим элементом.
Шаг 5.3. Выполнение симплекс – преобразования и переход к новой симплекс-таблице.
Элемент aij новой симплекс-таблицы вычисляется с помощью следующего симплекс – преобразования:
(3.23)
(3.24)
Таким образом, при переходе к новой симплекс-таблице все элементы разрешающей строки делятся на разрешающий элемент (3.23), а все остальные элементы симплекс – таблицы, включая коэффициенты целевой функции и свободные члены, пересчитываются по формуле (3.24).
Новое решение имеет следующий вид: все свободные переменные в нем полагаются равными 0, а все базисные переменные – свободным членам, стоящим в одной строке с ними.
После построения новой симплекс-таблицы следует перейти к шагу 3
Сравнивая две сформулированные задачи, видим, что двойственная задача составляется согласно следующим правилам:
1. Целевая функция исходной задачи (32) – (34) задается на максимум, а целевая функция двойственной (35) – (37) – на минимум.
2. Матрица
(38)
составленная из коэффициентов при неизвестных в системе ограничений (33) исходной задачи (32) – (34), и аналогичная матрица
(39)
в двойственной задаче (35) – (37) получаются друг из друга транспонированием (т. е. заменой строк столбцами, а столбцов – строками).
3. Число переменных в двойственной задаче (35) – (37) равно числу ограничений в системе (33) исходной задачи (32) – (34), а число ограничений в системе (36) двойственной задачи – числу переменных в исходной задаче.
4. Коэффициентами при неизвестных в целевой функции (35) двойственной задачи (35) – (37) являются свободные члены в системе (33) исходной задачи (32) – (34), а правыми частями в соотношениях системы (36) двойственной задачи – коэффициенты при неизвестных в целевой функции (32) исходной задачи.
5.
Если переменная xj исходной
задачи (32) – (34) может принимать только
лишь положительные значения, то j–е
условие в системе (36) двойственной задачи
(35) – (37) является неравенством вида “?
”. Если же переменная xj может
принимать как положительные, так и
отрицательные значения, то 1
– соотношение
в системе (54) представляет собой уравнение.
Аналогичные связи имеют место между
ограничениями (33) исходной задачи (32) –
(34) и переменными двойственной задачи
(35) – (37). Если i –
соотношение в системе (33) исходной задачи
является неравенством, то i–я
переменная двойственной задачи
. В
противном случае переменная уj может
принимать как положительные, так и
отрицательные значения.
Двойственные
пары задач обычно подразделяют на симметричные
и несимметричные. В симметричной паре
двойственных задач ограничения (33)
прямой задачи и соотношения (36) двойственной
задачи являются неравенствами вида
“
”.
Таким образом, переменные обеих задач
могут принимать только лишь неотрицательные
значения.
Вырожденность и зацикливание при решении задач линейного программирования
Если
при соблюдении условия допустимости
для исключения из базиса можно выбрать
более чем 1 вариант, то следующая итерация
симплекс метода приведёт к вырожденному
решению, когда одна из базисных переменных
равна нулю. Последующие итерации могут
не привести к улучшению значений целевой
функции и становится возможным бесконечное
повторение одной и той же последовательности
итераций, не улучшающих решение. Такая
ситуация называется зацикливанием.
Чтобы обеспечивать единственность
выбора выводимого вектора, исходя из
условий допустимости, разработано
несколько специальных приёмов.
Пусть
Pj это
произвольный в-р, который соответствует
j-му столбцу матрицы (А,I). Выбираем малое
положительное число E >0. Определяем
величину:
bE =
b + E*P1 +
E2 *
P2 +
… + En *Pn
Из
теории С-М следует, что если bE представляет
собой вектор правой части ограничения,
а матрица
В=(P1 ,
P2 ,…,Pm)
явл-ся базисом, то значение i-ой базисной
переменной может быть выражено след.
обр.:
Из
(*) следует, что для малого положительного
Е, формируя вектор bE можно
однозначно идентифицировать переменную,
подлежащую исключению из базиса. При
практических расчётах нет необходимости
задавать bE подобным
образом, поскольку данный способ можно
реализовать выбирая в качестве исключаемой
ту переменную, которой лексикографически
соответствует наименьшей строке таблицы
(в строке где больше нулей).
Связь между решениями прямой и двойственной задач
Рассмотрим пару двойственных задач, образованную основной задачей линейного программирования и двойственной к ней. Исходная задача: найти максимум функции
(43)
при условиях
(44)
(45)
Двойственная задача: найти минимум функции
(46)
при условиях
(47)
Каждая из задач двойственной пары (43) – (45) и (46), (47) фактически является самостоятельной задачей линейного программирования и может быть решена независимо одна от другой. Однако при определениисимплексным методом оптимального плана одной из задач тем самым находится решение и другой задачи.
Существующие зависимости между решениями прямой и двойственной задач характеризуются сформулированными ниже леммами и теоремами двойственности.
Лемма
1. Если
Х – некоторый план исходной задачи (43)
– (45), a Y – произвольный план
двойственной задачи (46), (47), то значение
целевой функции исходной задачи при
плане Х всегда не превосходит значения
целевой функции двойственной задачи
при плане Y, т. е.
Лемма
2. Если
для
некоторых планов X* и
Y* задач
(43) – (45) и (46), (47), то X* –
оптимальный план исходной задачи, а
Y* –
оптимальный план двойственной задачи.
Теорема
8 (первая
теорема двойственности). Если одна из
задач двойственной пары (43) – (45) или
(46), (47) имеет оптимальный план, то и другая
имеет оптимальный план и значения
целевых функций задач при их оптимальных
планах равны между собой, т. е.
Если же целевая функция одной задачи из двойственной пары неограничена (для исходной (43) – (45) – сверху, для двойственной (46), (47) – снизу), то другая задача вообще не имеет планов.
Теорема
9 (вторая
теорема двойственности). План
задачи
(43) – (45) и план
задачи
(46), (47) являются оптимальными планами
этих задач тогда и только тогда, когда
для любого
выполняется
равенство