BOiE 03 algorytm sympleks

background image

Rozdział 3

Algorytm sympleks

3.1

Wprowadzenie

Stosowanie geometrycznej metody rozwiązywania ZPL jest możliwe właściwie tylko w przy-

padku zagadnień, w których sformułowaniu występują tylko dwie zmienne decyzyjne. Jeże-

li liczba zmiennych decyzyjnych jest równa 3, to możliwa jest geometryczna interpretacja

ograniczeń (wyznaczają one pewien wielokąt wypukły zawarty w pierwszym oktancie ukła-

du współrzędnych), ale, na ogół, trudne jest wykonanie dostatecznie dokładnego rysunku

ilustrującego wzajemne położenie zbioru rozwiązań dopuszczalnych i poziomic funkcji ce-

lu, które są płaszczyznami w R

3

. W przypadku większej liczby zmiennych decyzyjnych

praktycznie niemożliwe jest efektywne sporządzenie rysunków mogących ułatwić znalezie-

nie rozwiązania ZPL. Dodatkową trudność sprawia duża liczba dopuszczalnych rozwiązań

bazowych (czyli wierzchołków zbioru rozwiazań dopuszczalnych D), jakie należy wyliczyć,

aby poprawnie opisać wielościan D (np. dla ZPL z ośmioma zmiennymi bazowymi i za-

wierajacego cztery ograniczenia liczba takich wierzchołków może być równa 70). Rodzi się

więc pytanie, czy istnieje metoda rozwiązywania ZPL, która działa niezależnie od liczby

zmiennych decyzyjnych, jest efektywna i nie wymaga wyznaczania wsystkich dopuszczal-

nych rozwiązań bazowych. Na szczęście, odpowiedź na to pytanie jest twierdząca i brzmi:

algorytm sympleks. Jest to algorytm iteracyjny, który startuje od dowolnie ustalonego

dopuszcalnego rozwiązania bazowego i w każdym kroku zastępuje aktualne rozwiązanie no-

wym „sąsiednim” dopuszczalnym rozwiązaniem bazowym, dla którego wartość funkcji celu

jest bliższa wartości optymalnej, przy czym zmiana wartości funkcji celu przy przejściu

od „starego” do „nowego” rozwiązania jest największa z możliwych. Przez „rozwiązania

sąsiednie” rozumiemy tutaj dwa dopuszczalne rozwiązania bazowe, dla których zbiory ich

zmiennych bazowych różnią się jednym elementem. Rozwiązania takie odpowiadają końcom

łączącej je krawędzi w wielościanie D.

1

background image

W poprzednim rozdziale pokazaliśmy, w jaki sposób przekształcić dowolne ZPL do

zagadnienia równoważnego zapisanego w bazowej postaci kanonicznej. W dalszym ciągu

omówimy stosowanie algorytmu sympleks właśnie dla takiej postaci ZPL. Istnieją modyfi-

kacje tego algorytmu, które działają przy nieco innych założeniach (np. nie wymaga się, aby

kanoniczna postać zagadnienia była bazowa), ale wydaje się, że opis algorytmu sympleks i

uzasadnienie jego poprawności są najłatwiejsze w postulowanej powyżej sytuacji.

3.2

Wskaźniki optymalności

Zacznijmy od przypomnienia ogólnych założeń. Dane jest ZPL:

f (x

1

, x

2

, . . . , x

n

) = c

1

x

1

+ c

2

x

2

+ . . . + c

n

x

n

max

(min)

a

11

x

1

+ a

12

x

2

+ . . . + a

1n

x

n

=

b

1

,

. . .

a

m1

x

1

+ a

m2

x

2

+ . . . + a

mn

x

n

=

b

m

,

x

1

­ 0, x

2

­ 0, . . . , x

n

­ 0.

(3.1)

gdzie współczynniki a

ij

oraz b

i

są ustalonymi liczbami rzeczywistymi, b

i

­ 0 dla każdego

i = 1, 2, . . . , m oraz m < n. Zbiór rozwiązań dopuszczalnych zadania (3.1), czyli zbiór

wszystkich punktów (x

1

, x

2

, . . . , x

n

) R

n

spełniających ograniczenia, będziemy oznaczać

symbolem D, tak jak to robiliśmy dotychczas. Zauważmy, że wymiar zbioru D jest równy

n − m i jest mniejszy od wymiaru przestrzeni R

n

, ale nadal jest to wielościan zawarty w

pierwszym ortancie układu współrzędnych przestrzeni R

n

, którego wierzchołki wyznaczone

są przez odpowiednie dopuszczalne rozwiązania bazowe układu równań

a

11

x

1

+ a

12

x

2

+ . . . + a

1n

x

n

= b

1

,

a

21

x

1

+ a

22

x

2

+ . . . + a

2n

x

n

= b

2

,

..

.

a

m1

x

1

+ a

m2

x

2

+ . . . + a

mn

x

n

= b

m

.

(3.2)

Wobec uwagi poczynionej na końcu poprzedniego podrozdziału będziemy zakładać,

że układ równań tworzących ograniczenia w ZPL (3.1) zapisany jest w bazowej postaci

kanonicznej, a jego zmiennymi bazowymi są x

1

, x

2

, . . ., x

m

. Założenie to de facto nie

wprowadza żadnych dodatkowych warunków, lecz służy jedynie wygodzie zapisu. Przy

2

background image

takim założeniu układ ograniczeń (3.2) można zapisać prościej w nastepującej postaci:

x

1

+ a

1 m+1

x

m+1

+ a

1 m+2

x

m+2

+ . . . + a

1n

x

n

= b

1

,

x

2

+ a

2 m+1

x

m+1

+ a

2 m+2

x

m+2

+ . . . + a

2n

x

n

= b

2

,

..

.

x

m

+ a

m m+1

x

m+1

+ a

m m+2

x

m+2

+ . . . + a

mn

x

n

= b

m

.

(3.3)

Ze względu na założenie o znakach prawych stron ograniczeń, rozwiązanie bazowe

¯

X = (b

1

, b

2

, . . . , b

m

, 0, 0, . . . , 0)

układu równań (3.3) jest dopuszczalnym rozwiązaniem bazowym. Zbudowanie następnego

dopuszczalnego rozwiązania bazowego polega na zastąpieniu jednej ze zmiennych bazowych

(nazywanej dalej: zmienną wychodzacą z bazy) przez odpowiednią zmienną niebazo-

wą (czyli zmienną wchodzącą do bazy). Zmienną wychodzacą z bazy wybieramy tak,

aby w nowym rozwiązaniu bazowym wszystkie wartości zmiennych były nieujemne. W po-

przednim rozdziale został omówiony sposób, jak to zrobić: po ustaleniu, która zmienna

ma wejść do bazy, zmienną wychodzącą z bazy wyznacza się obliczając ilorazy wyjścia

dla wszystkich dodatnich zmiennych bazowych i wybierając tę zmienną, dla której iloraz

wyjścia jest najmniejszy. Pozostaje więc znaleźć kryterium pozwalające na optymalny wy-

bór zmiennej wchodzącej do bazy. W celu znalezienia tego kryterium należy przeprowadzić

pewne rozważania teoretyczne.

Rozważmy dowolne rozwiązanie dopuszczalne X = (x

1

, x

2

, . . . , x

n

) układu równań

(3.3). Wówczas

x

i

= b

i

n

X

s=m+1

a

is

x

s

dla

i = 1, 2, . . . , m,

Korzystając z tej równości możemy teraz obliczyć różnicę pomiędzy wartościami funkcji

celu f dla rozwiązań X i ¯

X (pamiętamy,że ¯

x

i

= b

i

dla i = 1, . . . , m:

f (X) − f ( ¯

X) =

m

X

i=1

c

i

x

i

+

n

X

s=m+1

c

s

x

s

m

X

i=1

c

i

b

i

=

=

m

X

i=1

c

i

b

i

n

X

s=m+1

a

is

x

s

+

n

X

s=m+1

c

s

x

s

m

X

i=1

c

i

b

i

=

=

n

X

s=m+1

m

X

i=1

a

is

c

i

− c

s

!

x

s

.

Ponieważ wszystkie wartości x

s

są nieujemne, znak różnicy f (x) − f

x) zależy od znaków

wyrażeń w nawiasach w ostatniej sumie. Przyjmujemy następującą definicję.

3

background image

Definicja 1. Przy wprowadzonych powyżej oznaczeniach, dla każdej zmiennej niebazowej

x

s

liczbę

s

=

m

X

i=1

a

is

c

i

− c

s

nazywamy wskaźnikiem optymalności dla tej zmiennej.

Oczywiście, w praktyce zmienna niebazowa może mieć indeks mniejszy lub równy m.

Zakres zmienności dla tego indeksu, którym posługiwaliśmy się wyżej, był konsekwencją

przyjętego założenia mającego na celu uproszczenie notacji.

Posługując się oznaczeniem wskaźnika optymalności można powyżej otrzymaną równość

zapisać następująco:

f (X) = f ( ¯

X)

n

X

s=m+1

s

x

s

.

(3.4)

Załóżmy teraz, że rowiązywane ZPL polega na maksymalizacji funkcji celu. Jeżeli ∆

s

­ 0

dla s = m + 1, . . . , n, to z równości (3.4) wynika, że f (X) ¬ f ( ¯

X) dla każdego rozwią-

zania dopuszczalnego x, a więc ¯

X jest optymalnym rozwiązaniem rozważanego zadania.

Z drugiej strony, jeżeli istnieje taki wskaźnik s, że x

s

> 0 oraz ∆

s

< 0, to f (X) > f ( ¯

X

i, w konsekwencji, rozwiązanie bazowe ¯

X nie jest rozwiązaniem optymalnym. Podobne

rozumowanie przeprowadzone w przypadku ZPL(min) pokazuje, że wówczas ¯

X jest roz-

wiązaniem optymalnym, jeżeli wszystkie wskaźniki optymalności są niedodatnie. Zachodzi

więc twierdzenie:

Twierdzenie 1. Niech ¯

X będzie bazowym rozwiązaniem dopuszczalnym ZPL

f (x) max

(min)

Ax = b,

x ­ 0,

zaś X będzie dowolnym rozwiązaniem dopuszczalnym tego zadania. Wówczas

1) jeżeli dla każdej zmiennej niebazowej odpowiadający jej wskażnik optymalności spełnia

warunek

j

­ 0, to f (X) ¬ f ( ¯

X); w szczególności ¯

X jest rozwiązaniem ZPL(max),

2) jeżeli dla każdej zmiennej niebazowej odpowiadający jej wskażnik optymalności spełnia

warunek

j

¬ 0, to f (X) ­ f ( ¯

X); w szczególności ¯

X jest rozwiązaniem ZPL(min).

Na koniec rozważań poświęconych wskaźnikom optymalności zajmiemy się problemem

wymiany zmiennej bazowej w nieoptymalnym bazowym rozwiazaniu dopuszczalnym. Ak-

tualnie rozważane rozwiązanie bazowe nie jest optymalne, gdy ∆

s

< 0 dla pewnego s w

przypadku ZPL(max) oraz gdy ∆

s

> 0 dla pewnego s w przypadku ZPL(min). W tym

4

background image

przypadku wzór (3.4) pozwala wybrać zmienną niebazową, która zostanie wprowadzona do

bazy w następnym rozwiązaniu. Wyboru tej zmiennej należy dokonać w taki sposób, aby w

przypadku ZPL(max) (odpowiednio: ZPL(min)) przyrost (odpowiednio: spadek) wartości

celu był jak największy. Można to zrobić podstawiając wartość 1 w miejsce sprawdzanej

zmiennych niebazowej i 0 w miejsce pozostałych zmiennych niebazowych, a następnie wy-

bierając tę zmienną niebazową, dla której wartość bezwzględna różnicy f (X) − f ( ¯

X) jest

największa. W przypadku ZPL(max) będzie to ta zmienna niebazowa x

s

, dla której ∆

s

ma

wartość najmniejszą, a w przypadku ZPL(min) — ta zmienna niebazowa x

s

, dla której ∆

s

ma wartość największą.

3.3

Opis algorytmu sympleks

Wnioski dotyczące wskaźników optymalności sformułowane w poprzednim podrozdziale

pozwalają na opisanie procedury iteracyjnej, w wyniku stosowania której albo zostanie

znalezione rozwiązanie optymalne ZPL, albo zostanie ustalone, że takie rozwiązanie opty-

malne nie istnieje.

Algorytm sympleks

Dane jest ZPL w bazowej postaci kanonicznej:

f (x

1

, x

2

, . . . , x

n

) = c

1

x

1

+ c

2

x

2

+ . . . + c

n

x

n

max

(min)

a

11

x

1

+ a

12

x

2

+ . . . + a

1n

x

n

=

b

1

,

. . .

a

m1

x

1

+ a

m2

x

2

+ . . . + a

mn

x

n

=

b

m

,

x

1

­ 0, x

2

­ 0, . . . , x

n

­ 0.

(3.5)

gdzie współczynniki a

ij

oraz b

i

są ustalonymi liczbami rzeczywistymi, b

i

­ 0 dla każdego

i = 1, 2, . . . , m oraz m < n, przy czym z kolumn macierzy A = [a

ij

] można wybrać m

kolumn tworzących pełny układ kolumn macierzy jednostkowej I

m

.

Krok 1. Tworzymy tablicę sympleksową:

zmienne

c

1

c

2

. . .

c

n

iloraz

bazowe

c

B

x

1

x

2

. . .

x

n

b

wyjścia

x

k

1

c

k

1

a

11

a

12

. . .

a

1n

b

1

..

.

..

.

..

.

..

.

..

.

..

.

x

k

m

c

k

m

a

m1

a

m2

. . .

a

mn

b

m

j

.

5

background image

Tablica ta zawiera w nagłówku środkowych kolumn nazwy wszystkich zmiennych decy-

zyjnych i współczynniki znajdujące się we wzorze funkcji celu przy tych zmiennych. Każda

z tych kolumn zawiera wyrazy z odpowiedniej kolumny macierzy współczynników układu

równań tworzących ograniczenia ZPL. W dwóch kolumnach z lewej strony tabeli wpisujemy

nazwy zmiennych bazowych i odpowiednie współczynniki c

j

w ten sposób, że na przecięciu

wiersza i kolumny zawierających zmienną x

j

znajduje się liczba 1. Dwiema kolumnami po

prawej stronie tabeli są: kolumna wyrazów wolnych kolejnych ograniczeń (kolumna ta ozna-

czona jest w nagłówku symbolem b) i kolumna, w której wpisywane bedą ilorazy wyjścia.

W ostatnim wierszu tabeli wpiszemy w każdej kolumnie zmiennej niebazowej obliczony dla

tej zmiennej wskaźnik optymalności.

Krok 2. Z tablicy sympleksowej odczytujemy dopuszczalne rozwiązanie bazowe X przy-

pisując każdej zmiennej bazowej x

k

i

odpowiednią wartość wyrazu wolnego b

i

znajdującego

się w tym samym wierszu. Zmiennym niebazowym przypisujemy wartość 0.

Krok 3. Dla każdej zmiennej niebazowej x

j

obliczamy wskaźnik optymalności

j

=

m

X

i=1

c

k

i

a

ij

− c

j

i umieszczamy go w ostatnim wierszu tablicy w kolumnie zmiennej niebazowej x

j

.

Krok 4. Sprawdzamy, czy otrzymane rozwiązanie X jest optymalne. W przypadku ZPL(max)

rozwiązanie jest optymalne, jeżeli wszystkie wskaźniki optymalności są nieujemne: ∆

j

­ 0.

W przypadku ZPL(min) rozwiązanie jest optymalne, jeżeli wszystkie wskaźniki optymal-

ności są niedodatnie: ∆

j

¬ 0. Jeżeli rozwiązanie jest optymalne, to kończymy procedurę

sympleksową. W przeciwnym wypadku wykonujemy następny krok.

Krok 5. Ustalamy zmienną, która wejdzie do bazy w następnym dopuszczalnym rozwią-

zaniu bazowym. Czynimy to znajdując w przypadku ZPL(max) (odpowiednio: ZPL(min))

najmniejszy (odpowiednio: największy) ze wskaźników optymalności; jest on oczywiście

niedodatni (odpowiednio: nieujemny). Zmienna, w której kolumnie znajduje się znaleziony

wskaźnik optymalności, jest zmienną wchodzącą do bazy. Załóżmy, że jest to zmienna x

j

0

.

Krok 6. Ustalamy zmienną, która opuści bazę w następnym dopuszczalnym rozwiązaniu

bazowym. W tym celu dla wszystkich dodatnich wyrazów kolumny zmiennej x

j

0

obliczamy

ilorazy wyjścia:

b

i

a

ij

0

i = 1, . . . , m,

(o ile

a

ij

0

> 0).

Najmniejszy z obliczonych ilorazów wyjścia wyznacza zmienną wychodzącą z bazy.

Przyjmijmy, że zmienna ta znajduje się w wierszu o numerze i

0

, czyli zmienną wychodzącą

z bazy jest x

k

i0

.

6

background image

Krok 7. Element stojący na skrzyżowaniu kolumny zawierającej zmienną wchodzącą do

bazy i wiersza zawierającego zmienną wychodzącą z bazy nazywamy elementem cen-

tralnym lub głównym. Korzystając z metody eliminacji Gaussa-Jordana przekształcamy

macierz








a

11

a

12

. . . a

1n

b

1

a

21

a

22

. . . a

2n

b

2

..

.

..

.

..

.

..

.

a

m1

a

m2

. . . a

mn

b

m








zawartą w tablicy sympleksowej w ten sposób, aby kolumna o numerze j

0

stała się ko-

lumną macierzy jednostkowej z elementem 1 w wierszu o numerze i

0

. Otrzymane współ-

czynniki zapisujemy w nowej tablicy sympleksowej, w której z lewej strony zastępujemy

nazwę zmiennej wychodzącej z bazy nazwą zmiennej wchodzącej do bazy i wpisujemy od-

powiadający jej współczynnik c

j

. Nazwy pozostałych zmiennych i odpowiednie wartości

współczynników pozostawiamy bez zmian. Dla tak otrzymanej nowej tablicy sympleksowej

powracamy do kroku 2.

7


Wyszukiwarka

Podobne podstrony:
BOiE 03 algorytm sympleks
03 Algorytmy zadania
03 Algorytmy
03 Algorytmy, Prywatne, Informatyka, Algorytmy
Algorytmy i struktury danych 03 Algorytmy sortowania i przeszukiwania
algorytmy cw1 2011 03 19
FWD FWD PD pracownia algorytmy 03 - Slanie lozka pustego, skrypt
Wykład z Algorytmów 0 03 2008
algorytm obliczen podnosnika srubowego 2013 03 11
Z Wykład 02.03.2008, Zajęcia, II semestr 2008, Algorytmy i struktury danych
algorytm obliczen podnosnika srubowego 2013 03 11(1)
03 Sejsmika04 plytkieid 4624 ppt
03 Odświeżanie pamięci DRAMid 4244 ppt
podrecznik 2 18 03 05
Układy Napędowe oraz algorytmy sterowania w bioprotezach

więcej podobnych podstron