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

Автор работы: Пользователь скрыл имя, 27 Ноября 2011 в 08:57, контрольная работа

Описание работы

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

Файлы: 1 файл

Симплекс-метод.doc

— 237.50 Кб (Скачать файл)
п.2.2. Симплексный метод

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

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

    Пусть требуется найти максимальное значение функции

F=c1x1+c2x2+…+cnxn

при условиях

    Здесь — заданные постоянные числа (m<n и bi>0) Векторная форма данной задачи имеет следующий вид: найти максимум функции

                     (2.35)

при условиях

              x1P1+x2P2+…+xmPm+…+xnPn=P0, (2.36)

                   хj≥0  (2.37)

где 

    Так как 

b1P1+b2P2+…+bmPm=P0,

то по определению опорного плана X=(b1;b2;…;bm;0;…;0) является опорным планом данной задачи (последние n—m компонент вектора Х равны нулю). Этот план определяется системой единичных векторов Р1, Р2,…, Рm, которые образуют базис m- мерного пространства. Поэтому каждый из векторов Р1, Р2,..., Рn, а также вектор Р0 могут быть представлены в виде линейной комбинации векторов данного базиса. Пусть

    Положим ; . Так как векторы P1, P2, …, Pm – единичные, то xij=aij и , а .

    Теорема 2.5. (признак оптимальности опорного плана). Опорный план задачи (2.35)-( 2.37) является оптимальным, если для любого j .

    Теорема 2.6. Если для некоторого j=k и среди чисел aik нет положительных (aik 0), то целевая функция (2.35) задачи (2.35)-( 2.37) не ограничена на множестве ее планов.

    Теорема 2.7. Если опорный план Х задачи (2.35) - (2.37) не вырожден и , но среди чисел aik есть положительные (не все aik 0), то существует опорный план Х’ такой, что F(Х’)  > F(Х).

    Сформулированные  теоремы позволяют проверить, является ли найденный опорный план оптимальным, и выявить целесообразность перехода к новому опорному плану.

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

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

    В столбце Р0 записывают положительные компоненты исходного опорного плана, в нем же в результате вычислений получают положительные компоненты оптимального плана. Столбцы векторов Рj представляют собой коэффициенты разложения этих векторов по векторам данного базиса.

    В табл. 2.2 первые m строк определяются исходными данными задачи, а показатели (m+1)-й строки вычисляют. В этой строке в столбце вектора Р0 записывают значение целевой функции, которое она принимает при данном опорном плане, а в столбце вектора Рj – значение .

    Значение  zi находится как скалярное произведение вектора Рj, на вектор С6=(с1;c2; ...; сm):

    Значение  F0 равно скалярному произведению вектора Р0 на вектор Сб:

.

    После заполнения табл. 2.2 исходный опорный план проверяют на оптимальность. Для этого просматривают элементы (m+1)-й строки таблицы. В результате может иметь место один из следующих трех случаев:

    1. для  j=m+1, m+2, …, n (при zj=cj). Поэтому в данном случае

числа для всех j от 1 до n;

    1. для некоторого j и все соответствующие этому индексу величины aij0 ;
    2. для некоторых индексов j, и для каждого такого j по крайней мере

одно  из чисел aij положительно.

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

    Для определения вектора, подлежащего  исключению из базиса, находят min(bi/aik) для всех aik>0. Пусть этот минимум достигается при i = r. Тогда из базиса исключают вектор Рr, а число ark называют разрешающим элементом.

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

    После выделения направляющей строки и  направляющего столбца находят  новый опорный план и коэффициенты разложения векторов Рj через векторы нового базиса, соответствующего новому опорному плану. Это легко реализовать, если воспользоваться методом Жордана - Гаусса. При этом можно показать, что положительные компоненты нового опорного плана вычисляются по формулам:

                (2.38)

Таблица 2.2

i Базис C6 P0 c1 c2 cr cm cm+1 ck cn
P1 P2 Pr Pm Pm+1 Pk Pn
1

2

.

.

.

r

.

.

.

m

P1

P2

.

.

.

Pr

.

.

.

Pm

c1

c2

.

.

.

cr

.

.

.

cm

b1

b2

.

.

.

br

.

.

.

bm

1

0

.

.

.

0

.

.

.

0

0

1

.

.

.

0

.

.

.

0

.

.

.

.

.

.

0

0

.

.

.

1

.

.

.

0

.

.

.

.

.

.

0

0

.

.

.

0

.

.

.

1

a1m+1

a2m+1

.

.

.

arm+1

.

.

.

amm+1

.

.

.

.

.

.

a1k

a2k

.

.

.

ark

.

.

.

amk

.

.

.

.

.

.

a1n

a2n

.

.

.

arn

.

.

.

amn

m+1     F0 0 0 0 0 ∆m+1 ∆k ∆n
 

Таблица 2.3

i Базис C6 P0 c1 c2 cr cm cm+1 ck cn
P1 P2 Pr Pm Pm+1 Pk Pn
1

2

.

.

.

r

.

.

.

m

P1

P2

.

.

.

Pr

.

.

.

Pm

c1

c2

.

.

.

cr

.

.

.

cm

b’1

b’2

.

.

.

b’r

.

.

.

b’m

1

0

.

.

.

0

.

.

.

0

0

1

.

.

.

0

.

.

.

0

.

.

.

.

.

.

a’1r

a’2r

.

.

.

a’rr

.

.

.

a’mr

.

.

.

.

.

.

0

0

.

.

.

0

.

.

.

1

a’1m+1

a’2m+1

.

.

.

a’rm+1

.

.

.

a’mm+1

.

.

.

.

.

.

0

0

.

.

.

1

.

.

.

0

.

.

.

.

.

.

a’1n

a’2n

.

.

.

a’rn

.

.

.

a’mn

m+1     F0 0 0 z’r-cr 0 z’m+1-cm+1 0 z’n-cn
 

а коэффициенты разложения векторов Рj, через векторы нового базиса, соответствующего новому опорному плану - по формулам:

                (2.39)

После вычисления и согласно формулам (2.38) и (2.39) и значения заносят в табл. 2.3. Элементы (m+1)-й строки этой таблицы могут быть вычислены либо по формулам:

                (2.40)

                (2.41)

либо  на основании их определения.

    Наличие двух способов нахождения элементов  (m+1)-й строки позволяет осуществлять контроль правильности проводимых вычислений.

    Из  формулы (2.40) следует, что при переходе от одного опорного плана к другому наиболее целесообразно ввести в базис вектор Рj, имеющий индекс j, при котором максимальным по абсолютной величине является число . Однако с целью упрощения вычислительного процесса в дальнейшем будем вектор, вводимый в базис, определять, исходя из максимальной абсолютной величины отрицательных чисел . Если же таких чисел несколько, то в базис будем вводить вектор, имеющий такой же индекс, как и максимальное из чисел сj, определяемых данными числами .

    Итак, переход от одного опорного плана  к другому сводится к переходу от одной симплекс-таблицы к другой. Элементы новой симплекс-таблицы можно вычислить как с помощью рекуррентных формул (2.38)-( 2.41), так и по правилам, непосредственно вытекающим из них. Эти правила состоят в следующем.

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

    Элементы  векторов Р0 и Рj, в строке новой симплекс-таблицы, в которой записан вектор, вводимый в базис, получают из элементов этой же строки исходной таблицы делением их на величину разрешающего элемента. В столбце С6 в строке вводимого вектора проставляют величину ck, где k - индекс вводимого вектора.

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

    1. число, стоящее в исходной симплекс-таблице на месте искомого элемента

Информация о работе Симплексный метод