Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Решение задачи линейного программирования симплекс-методом



 

Прямая задача.

Рассмотрим задачу линейного программирования в канонической форме:

Найти максимум (минимум) функции

 

 

 

при условиях

 

 

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

Симплекс – метод – это алгебраический метод решения задач линейного программирования. В процессе вычислений производиться последовательный обход вершин многогранника решений (ОДР) с проверкой в каждой вершине условий оптимальности. При этом каждый переход в смежную вершину сопровождается улучшением целевой функции.

Вычислительные процедуры симплекс – метода

 

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

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

Обозначим: N– общее количество переменных в ЗЛП, представленной в канонической форме; n- количество исходных переменных; m - количество ограничений, nq - количество дополнительных переменных, тогда N=n+nq. Каждая вершина многогранника решений имеет m - ненулевых переменных и

(N-m) - нулевых переменных. Ненулевые переменные называются базисными, нулевые переменные – небазисными. Дополним систему равенств равенством целевой функции, при этом будем считать, что z является m+1 базисной переменной, которая всегда присутствует в базисе для любой вершины.

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

При выборе начального допустимого базиса для составления симплекс-таблицы на первом шаге исходные x1, x2 переменные приравниваются к нулю и являются небазисными, среди введённых дополнительных переменных выбираются переменные с коэффициентами равными единице. Переменные x3, x4, x5 в равенствах (2) - (4) являются базисными и в z - строку входят с коэффициентами, равными 0. Для заполнения симплекс-таблицы необходимо целевую функцию преобразовать к виду

 

.


Таким образом, окончательно получаем:

 


(1)

(2)

(3)

(4)

 

При составлении симплекс-таблицы придерживаются следующих правил:

1. в крайнем левом столбце располагаются базисные переменные и z;

2. в крайнем правом столбце располагаются правые части ограничений;

3. в первой строке располагаются переменные в определённом порядке: сначала z, потом небазисные переменные, базисные переменные располагаются в последних m столбцах перед правой частью.

 

  св. z x1 x2 x3 x4 x5
z 0 1 -C1 -C2 0 0 0
X3 b1 0 a11 a12 1 0 0
X4 b2 0 a21 a22 0 1 0
X5 b3 0 a31 a32 0 0 1

 

Идею рассмотрим на примере:

 


7x1+5x2→ max

2x1+3x2≤ 19

2x1+x2≤ 13

3x2≤ 15

3x1≤ 18

x1≥ 0, x2≥ 0


Запишем задачу в каноническом виде. При необходимости предварительно неравенство преобразовать так чтобы все свободные члены были неотрицательными.

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

 

7x1+5x2→ max

2x1+3x2+x3 =19

2x1+x2 +x4 =13

 3x2 +x5 =15

3x1 +x6 =18

xi≥ 0, (i=1, …n)

 

В нашем случае базисными переменными являются x3, x4, x5, x6. Остальные переменные являются свободными (x1, x2). Придавая произвольные значения свободным переменным мы будем получать различные значения базисных. Любое решение системы ограничений задачи называется допустимым. Опорным называется решение задачи, записанное в каноническом виде в котором свободные переменные равны 0.

Теорема 1:

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


7x1+5x2→ max

x3=19-2x1-3x2 (0; 0; 19; 13; 15; 18)

x4 =13-2x1-x2 первоначальный опорный план

x5 =15-3x2        

x6 =18-3x1 F(x1, x2 )=7*0+5*0=0     

xi≥ 0, (i=1, …n)

 

На интуитивном уровне понятно, что естественным будет увеличение x1, так как коэффициент при нем больше чем при x2. Оставляя x2=0, мы можем увеличивать до тех пор, пока x3, x4, x5, x6 будут оставаться неотрицательными.

 

x1=min {19/2; 13/2; ∞; 18/3}=6

 

Это означает что при x1=6, x6=0, то есть x1-переходит в число базисных, а x6-в число свободных.

 

x1=6-1/3 x6

 

Выражаем неизвестные переменные и целевую функцию через свободные переменные:

 

x3=19-2(6-1/3 x6)-3 x2=19-12+2/3 x6-3 x2=7+2/3 x6-3 x2

x4=13-2(6-1/3 x6)- x2=1+2/3 x6- x2

x5= x5=15

F(x2; x6) =42-7/3 x6+5 x2

 

При данном опорном плане (6; 0; 7; 1; 15; 0) x2 переводиться из свободных в базисные переменные:


x2=min{∞; 7/3; 1/11; 15/3}=1

 

Выражаем x2 через x4

 

x2=1+2/3 x6- x4

 

Выражаем неизвестные переменные и целевую функцию через свободные переменные:

 

x3=7+2/3 x6-3(1+2/3x6 –x4)= 7+2/3 x6-3-2x6+3x4=4-4/3x6+3 x4

x5= 12-2x6+3x4-

F=42-7/3 x6+5(1+2/3x2- x4) =47-7/3x6 +10/3x6-5x4=47+x6-5x4

 

x6 положительное, следовательно можно увеличивать

 

x6=min{18; ∞; 3; 6}=1

x4=4/3-4/9 x6- 1/3x3

F=47+x6-5(4/3-4/9-1/3x3)

 

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

Теорема 2:

1. Пересечение замкнутых множеств, множество нетривиальных ограничений.

2. Множество решений системы линейных нестрогих неравенств и уравнений является замкнутым.

 


α X=(α x1, x2, …, α xn)

X+Y=(x1+y1, x2+y2, … xn+yn)

 

Линейные координаты X1, X2, …Xn называется точка P=λ 1x1+ λ 2x2+…+ λ kxk

Теорема 3:

 

Множество P={λ 1x1+ λ 2x2+…+ λ kxk} 0≤ hi ≤ 1 для i= 1, …kn å Ri=1, 1≤ i ≤ k выпуклая линейная комбинация точек x1, x2, …xn. Если k=2, то это множество называется отрезком. X1, X2 – концы отрезка. Угловой точкой замкнутого множества называется точка, которая не является нетривиальной линейной комбинацией точек множества (угловая точка).

Нетривиальность означает, что хотя бы одна из λ отлична от 0 или 1.

 

 

 

 


Теорема 4:

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

Теорема 5:

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

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

 

Переход к новому опорному плану

 

F1=F(x1); F2=F(x2) F2-F1=-υ kΔ k=F2 можно доказать, где υ k рассмотренный выше минимум, который определяется при введении k-ой переменной в базис, а Δ k=å сjxj(1)k, где n ≤ j ≤ 1, X1=(x1(1); x2(1); …xn(1))- оценка k-ой переменной, поэтому если решается задача на максимум, то величина Δ F2 положительной должна быть, Δ k – отрицательная. При решении задач на минимум Δ F2-отрицательная, Δ k - положительная. Эти величины вычисляются и если среди Δ F2 все значения не положительны, то при решении задач на минимум наоборот. Если при решении на максимум среди Δ F2 несколько положительных, то вводим в базис тот вектор, при котором эта величина достигает максимум, а если задача решается на минимум и среди Δ F2 несколько отрицательных, то в число базисных включается вектор с наименьшим значением Δ F2, то есть с наибольшим по абсолютной величине. При выполнении этих условий гарантируется наибольшее возможное изменении значения функции.

Решение задачи будет единственным, если для любых векторов xk не входящих в базис, оценки Δ k≠ 0, если хотя бы одно из таких Δ k=0, то решение не является единственным, для нахождения другого решения переходим к другому опорному плану, включая в базис xk, где Δ k=0. Перебор все такие опорные решений составляют их в линейную комбинацию, которая и будет решением задачи.

Если для любого некоторого Δ k противоречащих условию оптимальности коэффициенты при переменной xk≤ 0, то система ограничений не ограничена, то есть оптимального плана не существует.


Двойственная задача

 

Двойственная задача (ДЗ) – это вспомогательная задача линейного программирования, формулируемая с помощью определённых правил непосредственно из условий прямой задачи. Заинтересованность в определении оптимального решения прямой задачи путём решения двойственной к ней задачи обусловлена тем, что вычисления при решении ДЗ могут оказаться менее сложными, чем при прямой задачи (ПЗ). Трудоёмкость вычислений при решении ЗЛП в большей степени зависит от числа ограничений, а не от количества переменных. Для перехода к ДЗ необходимо, чтобы ПЗ была записана в стандартной канонической форме. При представлении ПЗ в стандартной форме в состав переменных xj включаются также избыточные и остаточные переменные.

Двойственная задача имеет:

1. m переменных, соответствующих числу ограничений прямой задачи;

2. n ограничений, соответствующих числу переменных прямой задачи.

Двойственная задача получается путём симметричного структурного преобразования условий прямой задачи по следующим правилам:

· Каждому ограничению bi ПЗ соответствует переменная yi ДЗ;

· Каждой переменной xj ПЗ соответствует ограничение Cj ДЗ;

· Коэффициенты при xj в ограничениях ПЗ становятся коэффициентами левой части соответствующего ограничения ДЗ;

· Коэффициенты Cj при xj в целевой функции ПЗ становятся постоянными правой части ограничения ДЗ;

· Постоянные ограничений bi ПЗ становятся коэффициентами целевой функции ДЗ.

Рассмотрим следующие две задачи:

 


F = С1х12х2+... +Сnxn→ max

(5)
a11x1 + a22x2 +... + a1mxn ≤ b1

a21x1 + a22x2 +... + a2mxn ≤ b2

.......................

am1x1 + am2x2 +... + amnxn ≤ bm

xj≥ 0 j=1, …, n

 

Z = b1х1+b2х2+... +bnxn→ min

(6)
a11y1 + a21y2 +... + am1y1 ≤ C1

a12y1 + a22y2 +... + am2y2 ≤ C2

.......................

a1nyn + a2myn +... + anmyn ≤ Cn

yi≥ 0 i=1, …, m

 


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 124; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.046 с.)
Главная | Случайная страница | Обратная связь