• Nie Znaleziono Wyników

Badania Operacyjne

N/A
N/A
Protected

Academic year: 2021

Share "Badania Operacyjne"

Copied!
34
0
0

Pełen tekst

(1)

Badania Operacyjne

kierunek Informatyka, studia II stopnia wyklad

1 Programowanie liniowe

Programowanie liniowe jest jednym z działów teorii zada´n ekstremalnych i głównym nurtem bada´n operacyjnych. Podstawy programowania liniowego stworzył Kantorowicz w latach 30-tych ubiegłego stulecia.

Przedmiotem programowania liniowego s ˛a zadania polegaj ˛ace na szukaniu punktów min- imum (b ˛ad´z maksimum) funkcji liniowej na zbiorze opisanym układem równo´sci lub nierówno´sci liniowych. Najprostszym przykładem zadania programowania liniowego jest zadanie znalezienia punktu minimum funkcji f (x) = ax na przedziale [c, d] ⊂ R+0. W postaci zadania programowania liniowego mo˙zna zapisa´c wiele praktycznych zagadnie´n natury ekonomicznej i produkcyjno-handlowej.

1.1 Modelowanie

Przykład 1 (planowanie produkcji). Wytwórca dysponuje okre´slonymi ilo´sciami ró˙znych

´srodków (surowce, praca, sprz ˛et), wykorzystywanych do produkcji ró˙znych towarów. Wia- domo, jaka ilo´s´c i-tego ´srodka jest potrzebna do produkcji jednostki j-tego towaru, a tak˙ze jaki dochód daje sprzeda˙z ka˙zdej wyprodukowanej jednostki j-tego towaru. Wytwórca powinien tak zaplanowa´c produkcj ˛e, by całkowity dochód uzyskany ze sprzeda˙zy towarów był maksymalny.

Model. Wprowad´zmy nast ˛epuj ˛ace oznaczenia:

m - ilo´s´c ´srodków n- ilo´s´c towarów

aij - ilo´s´c jednostek i-tego ´srodka potrzebna do produkcji jednostki j-tego towaru bi - dost ˛epna ilo´s´c jednostek i-tego ´srodka

xj - wielko´s´c produkcji j-tego towaru

cj - dochód uzyskiwany ze sprzeda˙zy jednostki j-tego towaru

Całkowit ˛a ilo´s´c i-tego ´srodka, wykorzystan ˛a podczas produkcji, mo˙zna wi ˛ec wyrazi´c nast ˛epuj ˛aco:

Xn j=1

aijxj.

(2)

Ilo´s´c ta powinna by´c mniejsza lub równa dost ˛epnej ilo´sci jednostek i-tego ´srodka, czyli Xn

j=1

aijxj ≤ bi, i = 1, ..., m.

Dochód uzyskany ze sprzeda˙zy wszystkich wyprodukowanych towarów wyra˙za si ˛e nast ˛epu- jaco:

Xn j=1

cjxj, przy czym oczywi´scie nale˙zy ˙z ˛ada´c, by

xj ≥ 0, j = 1, ..., n.

Mo˙zna wi ˛ec sformułowa´c opisane zagadnienie w nast ˛epuj ˛acy sposób:

zmaksymalizowa´c funkcjonał kosztu (dochód) Xn

j=1

cjxj

przy ograniczeniach

xj ≥ 0, j = 1, ..., n, Xn

j=1

aijxj ≤ bi, i = 1, ..., m.

Przykład 2 (zagadnienie transportowe). Wytwórca zamierza przesła´c pewn ˛a ilo´s´c jed- nostek towaru z kilku magazynów do kilku punktów sprzeda˙zy. Ka˙zdy punkt sprzeda˙zy zło˙zył zamówienie u wytwórcy na okre´slon ˛a ilo´s´c jednostek towaru. Ka˙zdy magazyn dys- ponuje okre´slonymi zapasami towaru. Wytwórca zna koszt transportu jednostki towaru z ka˙zdego magazynu do ka˙zdego punktu sprzeda˙zy. Nale˙zy tak zaplanowa´c dystrybucj ˛e towaru, by koszt transportu był minimalny.

Model. Aby sformułowa´c powy˙zsze zadanie jako zadanie programowania liniowego, wprowad´zmy nast ˛epuj ˛ace oznaczenia:

m - ilo´s´c magazynów

n- ilo´s´c punktów sprzeda˙zy

ai - ilo´s´c jednostek towaru znajduj ˛acych si ˛e w i-tym magazynie

bj - zapotrzebowanie (ilo´s´c jednostek) na towar zło˙zone przez j-ty punkt sprzeda˙zy xij - ilo´s´c jednostek towaru przesyłana z i-tego magazynu do j-tego punktu sprzeda˙zy cij - koszt przesłania jednostki towaru z i-tego magazynu do j-tego punktu sprzeda˙zy Całkowity koszt transportu mo˙zna wi ˛ec wyrazi´c nast ˛epuj ˛aco:

Xm i=1

Xn j=1

cijxij.

(3)

˙Z ˛ada si ˛e dodatkowo, aby j-ty punkt sprzeda˙zy otrzymał dokładnie bj jednostek towaru i aby i-ty magazyn wysłał dokładnie ai jednostek towaru. Naturalnym zało˙zeniem jest

xij ≥ 0, i = 1, ..., m, j = 1, ..., n.

Mo˙zemy wi ˛ec sformułowa´c nasze zagadnienie w nast ˛epuj ˛acy sposób:

zminimalizowa´c funkcjonał kosztu

Xm i=1

Xn j=1

cijxij, przy ograniczeniach

xij ≥ 0, i = 1, ..., m, j = 1, ..., n.

Xn j=1

xij = ai, i = 1, ..., m, Xm

i=1

xij= bj, j = 1, ..., n.

W przypadku m = 2, n = 3 zadanie przyjmuje posta´c

c11x11+ c12x12+ c13x13+ c21x21+ c22x22+ c23x23→ min . x11≥ 0, x12≥ 0, x13≥ 0, x21≥ 0, x22≥ 0, x23≥ 0,

x11+ x12+ x13= a1

x21+ x22+ x23= a2

x11+ x21 = b1

x12+ x22 = b2

x13+ x23= b3.

1.2 Sformułowanie zadania

Ogólnym zadaniem programowania liniowego nazywamy zadanie postaci:

J(u) = c1u1+ ... + cnun→ min . (1)

uk ≥ 0, k ∈ I (2)

⎧⎪

⎪⎪

⎪⎪

⎪⎨

⎪⎪

⎪⎪

⎪⎪

a1,1u1+ ... + a1,nun ≤ b1 ...

am,1u1+ ... + am,nun≤ bm am+1,1u1+ ... + am+1,nun = bm+1

...

as,1u1+ ... + as,nun = bs

, (3)

(4)

gdzie u = (u1, ..., un) ∈ Rn, natomiast cj, ai,j, bi, i = 1, ..., s, j = 1, ..., n, s ˛a danymi liczbami rzeczywistymi, przy czym nie wszystkie liczby cj i nie wszystkie liczby aij s ˛a równe zero, I ⊂ {1, ..., n} jest ustalonym zbiorem indeksów; mo˙zliwe s ˛a tutaj przypadki:

I =∅, I = {1, ..., n}, m = s, m = 0. Wprowadzaj ˛ac oznaczenia c = (c1, ..., cn),

ai = (ai,1, ..., ai,n), mo˙zemy zapisa´c powy˙zsze zadanie w nast ˛epuj ˛acy sposób:

⎧⎨

J(u) =hc, ui → min .

u∈ U = {u = (u1, ..., un)∈ Rn; ui ≥ 0 dla i ∈ I,

hai, ui ≤ bi dla i = 1, ..., m, hai, ui = bi dla i = m + 1, ..., s}

(4)

(symbolem hx, yi oznaczamy iloczyn skalarny wektorów x = (x1, ..., xn), y = (y1, ..., yn), t.zn. hx, yi =Pn

i=1xiyi). W dalszym ci ˛agu, zapis x≥ y,

gdzie x = (x1, ..., xn), y = (y1, ..., yn), b ˛edzie oznaczał, ˙ze xi ≥ yi, i = 1, ..., n.

Wobec tego, zadanie (4) mo˙zemy zapisa´c nast ˛epuj ˛aco:

½ J(u) =hc, ui → min .

u∈ U = {u = (u1, ..., un)∈ Rn; ui ≥ 0 dla i ∈ I, Au ≤ b, Au = b} (5) gdzie

A =

⎢⎣

a1,1 ... a1,n

... ... am,1 ... am,n

⎥⎦ , A =

⎢⎣

am+1,1 ... am+1,n

... ... as,1 ... as,n

⎥⎦ ,

b =

⎢⎣ b1

... bn

⎥⎦ , b =

⎢⎣ bm+1

... bs

⎥⎦ .

Ka˙zdy punkt u ∈ U nazywamy punktem dopuszczalnym zadania (5). Punkt u ∈ U nazywamy rozwi ˛azaniem zadania (5), gdy

J(u)≤ J(u) dla dowolnego u ∈ U.

Kanonicznym zadaniem programowania liniowego nazywamy zadanie postaci

½ J(u) =hc, ui → min .

u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b} . (6)

(5)

Podstawowym zadaniem programowania liniowego nazywamy zadanie postaci

½ J(u) =hc, ui → min .

u∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au ≤ b} . (7) Zajmiemy si ˛e teraz zagadnieniem „równowa˙zno´sci” zada´n ró˙znego typu.

Rozwi ˛azywanie zadania podstawowego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanon- icznego. Istotnie, niech dane b ˛edzie zadanie podstawowe (7) i rozwa˙zmy w przestrzeni Rn+m zadanie postaci

½ hd, zi → min .

z ∈ Z = {z = (u, v) ∈ Rn+m; z ≥ 0 , Cz = b} , (8) gdzie d = (c, 0) ∈ Rn+m,

C = [A| Im×m] =

⎢⎣

a1,1 ... a1,n

... ... am,1 ... am,n

1 ... 0 ... ... 0 ... 1

⎥⎦

(Im×m jest macierz ˛a jednostkow ˛a wymiaru m × m).

Łatwo zauwa˙zy´c, ˙ze je´sli u ∈ U jest rozwi ˛azaniem zadania (7), to z = (u, v), gdzie v = b− Au,

jest rozwi ˛azaniem zadania (8), t.zn. z ∈ Z oraz hd, zi ≤ hd, zi dla dowolnego z ∈ Z.

Je´sli natomiast z = (u, v) ∈ Z jest rozwi ˛azaniem zadania (8), to u jest rozwi ˛azaniem zadania (7), t.zn. u ∈ U oraz

hc, ui ≤ hc, ui dla dowolnego u ∈ U.

Podobnie, rozwi ˛azywanie zadania ogólnego (5) mo˙zna zast ˛api´c rozwi ˛azywaniem zadania kanonicznego. Rzeczywi´scie, rozwa˙zmy w przestrzeni Rp (p = m + I + J + J, gdzie J ={1, ..., n}ÂI) zadanie postaci

⎧⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎨

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

he, zi =X

i∈I

ciui+X

i∈J

ciwi+X

i∈J

−ciwi → min . z ∈ Z = {z = (v, ui; i∈ I, wi; i∈ J, wi; i∈ J) ∈ Rp; z≥ 0,

v +X

i∈I

Aiui+X

i∈J

Aiwi+X

i∈J

−Aiwi = b, X

i∈I

Aiui+X

i∈J

Aiwi+X

i∈J

−Aiwi = b}

={z ∈ Rp; z≥ 0,

∙ [Im×m£ | Ai; i∈ I | Ai; i∈ J | −Ai; i∈ J]

0| Ai; i∈ I | Ai; i∈ J | −Ai; i∈ J¤ ¸ z =

∙ b b

¸ }

, (9)

(6)

gdzie e = (0, ci; i ∈ I, ci; i∈ J, −ci; i ∈ J) ∈ Rp, Ai - i-ta kolumna macierzy A, Ai - i-ta kolumna macierzy A.

Je´sli u ∈ U jest rozwi ˛azaniem zadania ogólnego (5), to

z = (v, ui; i∈ I, wi; i∈ J, wi; i∈ J), gdzie

v = b− Au, wi = max{0, ui}, i ∈ J, wi = max{0, −ui}, i ∈ J,

jest rozwi ˛azaniem zadania (9) (zauwa˙zmy, ˙ze ui = wi− wi dla i ∈ J).

Je´sli natomiast

z = (v, ui; i∈ I, wi; i∈ J, wi; i∈ J), jest rozwi ˛azaniem zadania (9), to

u = (ui; i∈ I, wi− wi; i∈ J) jest rozwi ˛azaniem zadania (5).

1.3 Interpretacja geometryczna zada´ n programowania liniowego

Rozwa˙zmy zadanie podstawowe (7) w przypadku, gdy n = 2, czyli

⎧⎨

J(u) = c1u1 + c2u2 → min .

u∈ U = {u = (u1, u2)∈ R2; u1 ≥ 0, u2 ≥ 0, ai,1u1+ ai,2u2 ≤ bi, i = 1, ..., m}

. (10)

Wprowad´zmy oznaczenia

U0,1 ={(u1, u2)∈ R2; −u1 ≤ 0}, U0,2 ={(u1, u2)∈ R2; −u2 ≤ 0},

Ui ={(u1, u2)∈ R2; ai,1u1+ ai,2u2 ≤ bi}, i = 1, ..., m.

Oczywi´scie

U = U0,1∩ U0,2∩ U1∩ ... ∩ Um. Mo˙zliwe s ˛a nast ˛epuj ˛ace przypadki:

10 zbiór U jest pusty

20 zbiór U jest niepustym wielobokiem wypukłym i ograniczonym

(7)

30 zbiór U jest niepustym wielobokiem wypukłym i nieograniczonym

Ustalmy liczb ˛e α ∈ R. Równanie

c1u1+ c2u2 = α

opisuje poziomic ˛e funkcjonału J odpowiadaj ˛ac ˛a warto´sci α, czyli zbiór {(u1, u2)∈ R2; J(u) = α}.

Jest to prosta o wektorze normalnym c = (c1, c2). Przy zmianie warto´sci stałej α od −∞

do ∞ prosta ta zmienia swoje poło˙zenie, przesuwaj ˛ac si ˛e w sposób równoległy w kierunku wektora c i „zamiataj ˛ac” cał ˛a płaszczyzn ˛e.

W przypadku 20 zawsze istnieje „punkt pierwszego kontaktu” (by´c mo˙ze nie jedyny) przesuwaj ˛acej si ˛e prostej z wielobokiem U . Odpowiednia warto´s´c stałej α wynosi wówczas

minu∈UJ(u) =: J

(8)

W przypadku 30 ów „punkt pierwszego kontaktu” istnieje (by´c mo˙ze nie jedyny) lub nie.

Je´sli nie istnieje, oznacza to, ˙ze zadanie nie ma rozwi ˛azania; w takim przypadku

u∈UinfJ(u) =−∞.

(9)

Z powy˙zszej dyskusji wynika, ˙ze zadanie (10) mo˙ze nie mie´c rozwi ˛aza´n, mo˙ze mie´c jedno rozwi ˛azanie lub mo˙ze mie´c niesko´nczenie wiele rozwi ˛aza´n. Ponadto, w przypadku, gdy zbiór rozwi ˛aza´n jest niepusty, w zbiorze tym istnieje co najmniej jeden punkt, który jest wierzchołkiem wieloboku U .

Podobn ˛a analiz ˛e mo˙zna przeprowadzi´c w przypadku n = 3, zast ˛epuj ˛ac wielobok wielo´s- cianem, a prost ˛a - płaszczyzn ˛a.

(10)

Matod ˛a graficzn ˛a mo˙zna tak˙ze rozwi ˛aza´c niektóre zadania o wi ˛ekszej ni˙z 2 lub 3 ilo´sci zmiennych. Rozwa˙zmy mianowicie zadanie postaci

½ J(u) =hc, ui → min .

u∈ U = {u ∈ Rm+2; u≥ 0 , Au = b}

gdzie

A =

⎢⎣

a1,1 ... a1,m a1,m+1 a1,m+2

... ... ... ... am,1 ... am,m am,m+1 am,m+2

⎥⎦ , b =

⎢⎣ b1

... bm

⎥⎦ ,

przy czym rankA = m i kolumny A1,...,Am s ˛a liniowo niezale˙zne. Wprowad´zmy oz- naczenia

A =

⎢⎣

a1,1 ... a1,m

... ... am,1 ... am,m

⎥⎦ , A =

⎢⎣

a1,m+1 a1,m+2

... ... am,m+1 am,m+2

⎥⎦ ,

u =

⎢⎣ u1

... um

⎥⎦ , u =

∙ um+1 um+2

¸ ,

c =

⎢⎣ c1

... cm

⎥⎦ , c =

∙ cm+1

cm+2

¸ . Zatem

A =h

A | Ai , u =

∙ u u

¸

, c =£ c | c¤

. W konsekwencji warunek

Au = b mo˙zemy zapisa´c jako

Au + Au = b.

St ˛ad

u = A−1b− A−1 Au.

Zauwa˙zmy teraz, ˙ze rozwi ˛azywanie zadania wyj´sciowego mo˙zna zast ˛api´c rozwi ˛azywaniem zadania postaci ( D

c, A−1b− A−1 AuE +­

c, u®

→ min . u∈ U = {u ∈ R2; u≥ 0 , A−1 Au≤ A−1b}

(=) Dokładniej, je´sli u jest rozwi ˛azaniem zadania (=), to

u =

∙ u u

¸ ,

(11)

gdzie

u = A−1b− A−1 Au,

jest rozwi ˛azaniem zadania wyj´sciowego. Na odwrót, je´sli u =

∙ u u

¸

jest rozwi ˛azaniem zadania wyj´sciowego, to u jest rozwi ˛azaniem zadania (=).

1.4 Punkty wierzchołkowe

Punkt v ∈ V ⊂ Rnnazywamy punktem wierzchołkowym (punktem ekstremalnym) zbioru wypukłego i domkni ˛etego V , je´sli przedstawienie

v = αv1+ (1− α)v2, (11)

gdzie α ∈ (0, 1), v1, v2 ∈ V , mo˙zliwe jest tylko wtedy, gdy v1 = v2. Innymi słowy, punkt v ∈ V jest punktem wierzchołkowym zbioru V , gdy nie jest on punktem wewn ˛etrznym niezdegenerowanego odcinka o ko´ncach nale˙z ˛acych do V . Poj ˛ecie punktu wierzchołkowego jest poj ˛eciem fundamentalnym w teorii programowania liniowego.

W dalszej cz ˛e´sci wykładu poka˙zemy, ˙ze je´sli zadanie kanoniczne (przy dowolnym n ∈ N) posiada rozwi ˛azanie, to w´sród rozwi ˛aza´n jest co najmniej jeden punkt wierzchołkowy zbioru

U ={u ∈ Rn; u≥ 0, Au = b}. (12)

Teraz podamy charakteryzacj ˛e punktów wierzcholkowych zbioru postaci (12).

Twierdzenie 1 Niech dany b ˛edzie zbiór U postaci (12) i punkt v ∈ Rn, przy czym A ∈ Rm×nÂ{0}, r := rankA. Punkt v jest punktem wierzchołkowym zbioru U wtedy i tylko wtedy, gdy istniej ˛a wska´zniki j1,...,jr∈ {1, ..., n} takie, ˙ze

⎧⎪

⎪⎨

⎪⎪

vj ≥ 0, j ∈ {j1, ..., jr} vj = 0, j /∈ {j1, ..., jr} Aj1vj1 + ... + Ajrvjr = b

kolumny Aj1, ..., Ajr s ˛a liniowo niezale˙zne w Rm

(13)

Układ wektorów Aj1,...,Ajr wyst ˛epuj ˛acych w warunkach (13) nazywamy baz ˛a punktu wierzchołkowego v, a odpowiednie współrz ˛edne vj1,...,vjr- współrz ˛ednymi bazowymi punktu wierzchołkowego v. Punkt wierzchołkowy, którego wszystkie współrz ˛edne bazowe s ˛a do- datnie nazywamy nieosobliwym. Punkt wierzchołkowy, którego co najmniej jedna współrz ˛edna bazowa jest równa zero nazywamy osobliwym. Zmienne uj1,...,ujr nazywamy zmiennymi bazowymi, a pozostałe - zmiennymi wolnymi (przy ustalonej bazie Aj1,...,Ajr).

Z twierdzenia 1 wynika, ˙ze baza nieosobliwego punktu wierzchołkowego zbioru (12) jest wyznaczona jednoznacznie. Osobliwy punkt wierzchołkowy mo˙ze mie´c wiele baz.

(12)

1.5 Metoda sympleksowa

Metoda sympleksowa polega na „uporz ˛adkowanym” sprawdzaniu warto´sci funkcjonału kosztu w punktach wierzchołkowych zbioru ograniczaj ˛acego („uporz ˛adkowanie” oznacza tu, ˙ze warto´sci funkcjonału kosztu w kolejnych punktach nie rosn ˛a).

Rozwa˙zmy zadanie kanoniczne postaci

½ J(u) =hc, ui → min .

u∈ U = {u ∈ Rn; u≥ 0 , Au = b} (14) gdzie 0 6= A ∈ Rm×n, przy czym zakłada´c b ˛edziemy w tym rozdziale, ˙ze U 6= ∅ (kwestia niepusto´sci zbioru U omówiona b ˛edzie w dalszej cz ˛e´sci wykładu). Oczywi´scie rankA ≤ min{m, n} (podobnie, jak wcze´sniej, rankA oznacza´c b ˛edziemy przez r). Równo´s´c

Au = b mo˙zemy zapisa´c w postaci układu równa´n

Xn j=1

ai,juj = bi, i = 1, ..., m.

Nie zmniejszaj ˛ac ogólno´sci rozwa˙za´n, mo˙zemy zało˙zy´c, ˙ze r = m. Oczywi´scie r ≤ n. Je˙zeli r = n, to powy˙zszy układ ma dokładnie jedno rozwi ˛azanie u, przy czym u ≥ 0 (gdyby która´s ze współrz ˛ednych punktu u była ujemna, to zbiór U byłby pusty, co sprzeczne byłoby z naszym zało˙zeniem). W konsekwencji zbiór U jest jednoelementowy i tym samym u jest rozwi ˛azaniem zadania (14).

B ˛edziemy wi ˛ec zakłada´c w dalszym ci ˛agu, ˙ze r = m oraz r < n. Równo´s´c Au = b

mo˙zemy wi ˛ec zapisa´c w postaci

⎧⎨

a1,1u1+ ... + a1,nun= b1 ...

ar,1u1+ ... + ar,nun= br

(15) gdzie r = rankA < n.

Podamy teraz opis metody sympleksowej. Przypu´s´cmy, ˙ze dany jest punkt wierzchołkowy v zbioru

U ={u ∈ Rn; u≥ 0 , Au = b}

i załó˙zmy, ˙ze kolumny A1,...,Ars ˛a baz ˛a tego puntu, v1,...,vr- jego współrz ˛ednymi bazowymi (kwestia wyznaczenia „pocz ˛atkowego” punktu wierzchołkowego v zbioru U i okre´slenia jego współrz ˛ednych bazowych omówiona b ˛edzie w dalszej cz ˛e´sci wykładu). Wprowad´zmy nast ˛epuj ˛ace oznaczenia

u =

⎢⎣ u1 ... ur

⎥⎦ , v =

⎢⎣ v1 ... vr

⎥⎦ , c =

⎢⎣ c1 ... cr

⎥⎦ ,

(13)

B =

⎢⎣

a1,1 ... a1,r

... ... ar,1 ... ar,r

⎥⎦ = [A1 | ... | Ar] .

Wówczas układ (15) mo˙zemy zapisa´c w postaci

Bu+ Ar+1ur+1+ ... + Anun= b. (16) Z liniowej niezale˙zno´sci kolumn A1,...,Ar(jest to baza punktu v) wynika, ˙ze det B 6= 0. W konsekwencji istnieje macierz odwrotna B−1. Współrz ˛edne niebazowe punktu v s ˛a zerowe, a wi ˛ec z (16) otrzymujemy

Bv = b, sk ˛ad

v = B−1b.

Mno˙z ˛ac równo´s´c (16) lewostronnie przez B−1, otrzymujemy u +

Xn k=r+1

B−1Akuk= B−1b = v. (17)

Oznaczmy

γs,k = (B−1Ak)s dla k = r + 1, ..., n, s = 1, ..., r

gdzie (B−1Ak)soznacza s-t ˛a współrz ˛edn ˛a wektora-kolumny B−1Ak. Równo´s´c (17) mo˙zemy teraz zapisa´c w postaci nast ˛epuj ˛acego układu równa´n

⎧⎪

⎪⎨

⎪⎪

u1+ γ1,r+1ur+1+ ... + γ1,nun= v1 u2+ γ2,r+1ur+1+ ... + γ2,nun= v2

...

ur+ γr,r+1ur+1+ ... + γr,nun= vr

. (18)

Okre´slmy tak˙ze

γs,k = (B−1Ak)s

dla k = 1, ...r, s = 1, ..., r (oczywi´scie γs.k = δs,k dla k = 1, ..., r, s = 1, ..., r, gdzie δs,k

jest symbolem Kronekera).

Dokonajmy cz ˛e´sciowego podsumowania. Pokazali´smy, ˙ze maj ˛ac ustalony punkt wierz- chołkowy v zbioru U i wiedz ˛ac, ˙ze współrz ˛edne z indeksami 1,...,r s ˛a jego współrz ˛ednymi bazowymi, mo˙zna zapisa´c ograniczenia (15) w równowa˙znej postaci (16) lub (17) lub (18).

Warto´s´c funkcjonału kosztu J w punkcie u spełniaj ˛acym ograniczenia typu równo´sci (15), mo˙zna zapisa´c w nast ˛epuj ˛acej postaci

J(u) = hc, ui = Xn

i=1

ciui =hc, ui + Xn i=r+1

ciui

=

* c, v−

Xn i=r+1

B−1Aiui +

+ Xn i=r+1

ciui

= hc, vi − Xn i=r+1

c, B−1Ai

®− ci)ui.

(14)

Poniewa˙z

hc, vi = hc, vi = J(v), wi ˛ec

J(u) = J(v)− Xn i=r+1

iui, (19)

gdzie

i

c, B−1Ai

®− ci, i = r + 1, ..., n.

Okre´slmy tak˙ze

i

c, B−1Ai

®− ci (20)

dla i = 1, ..., r (oczywi´scie

i

c, B−1Ai

®− ci =hc, eii − ci = ci− ci = 0

dla i = 1, ..., r, gdzie ei jest i-t ˛a kolumn ˛a macierzy jednostkowej o wymiarach r × r).

Zadanie (14) mo˙zemy wi ˛ec zapisa´c w nast ˛epuj ˛acej postaci

⎧⎨

J(u) = J(v)− Pn i=r+1

iui → min .

U ={u = (u1, ..., un)∈ Rn; u≥ 0 , u spełnia (18)}

(21)

Wyst ˛epuj ˛ace w powy˙zszym opisie wielko´sci γs,k, vi, ∆i zapiszemy w postaci tzw. tablicy sympleksowej, odpowiadaj ˛acej punktowi wierzchołkowemu v

(15)

Tablica sympleksowa I (dla punktu v)

u1 ... ui ... us ... ur ur+1 ... uk ... uj ... un u1 1 ... 0 ... 0 ... 0 γ1,r+1 ... γ1,k ... γ1,j ... γ1,n v1

... ... ... ... ... ... ... ... ... ... ui 0 ... 1 ... 0 ... 0 γi,r+1 ... γi,k ... γi,j ... γi,n vi

... ... ... ... ... ... ... ... ... ... us 0 ... 0 ... 1 ... 0 γs,r+1 ... γs,k ... γs,j ... γs,n vs

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

ur 0 ... 0 ... 0 ... 1 γr,r+1 ... γr,k ... γr,j ... γr,n vr 0 ... 0 ... 0 ... 0 ∆r+1 ... ∆k ... ∆j ... ∆n J(v) Analizuj ˛ac tablic ˛e sympleksow ˛a I, mo˙zemy wyró˙zni´c trzy przypadki:

10 spełnione s ˛a nierówno´sci

i

c, B−1Ai

®− ci ≤ 0 (22)

dla i = r + 1, ..., n, t.zn. w ostatnim wierszu tablicy sympleksowej wszystkie liczby ∆i

s ˛a niedodatnie. W tym przypadku punkt v, dla którego skonstruowana została tablica sympleksowa, jest rozwi ˛azaniem zadania. Istotnie, bowiem dla dowolnego u ∈ U mamy

J(u) = J(v)− Xn i=r+1

iui ≥ J(v)

(bo ∆i ≤ 0, ui ≥ 0).

20 istnieje wska´znik k ∈ {r + 1, ..., n} taki, ˙ze

½ ∆k > 0

γi,k≤ 0 dla i = 1, ..., r (czyli B−1Ak≤ 0) (23) Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni, a pozostałe - niedodatnie. W tym przypadku inf

u∈UJ(u) =−∞ (dowód tego faktu pomijamy).

Oznacza to, ˙ze zadanie nie ma rozwi ˛azania.

30 nie zachodz ˛a przypadki 10 i 20; w konsekwencji istniej ˛a wska´zniki k ∈ {r + 1, ..., n}, i∈ {1, ..., r} takie, ˙ze

k > 0, γi,k > 0. (24)

Oznacza to, ˙ze w k-tej kolumnie tablicy sympleksowej ostatni element (∆k) jest dodatni i co najmniej jedna z liczb γi,k jest dodatnia.

Załó˙zmy, ˙ze zachodzi przypadek 30 i okre´slmy zbiór

Ik={i ∈ {1, ..., r}, γi,k > 0}.

(16)

Niech s ∈ Ik b ˛edzie takim wska´znikiem, ˙ze vs

γs,k = min

i∈Ik

vi

γi,k (25)

Współczynnik γs,k, gdzie wska´zniki k, s s ˛a okre´slone przez (24) i (25), nazywany jest elementem rozwi ˛azuj ˛acym tablicy sympleksowej I.

Mo˙zna pokaza´c, ˙ze układ kolumn

A1, ..., As−1, As+1, ..., Ar, Ak (26) jest baz ˛a pewnego punktu wierzchołkowego w, przy czym

J(w)≤ J(v).

Z faktu, ˙ze macierz A ma r wierszy wynika, wobec twierdzenia charakteryzuj ˛acego punkty wierzchołkowe, i˙z baza (26) wyznacza punkt wierzchołkowy w sposób jednoz- naczny. Mo˙zna wi ˛ec znale´z´c współrz ˛edne punktu w, korzystaj ˛ac z tego twierdzenia.

Przejd´zmy teraz do przypadku ogólnego. Łatwo zauwa˙zy´c, ˙ze je´sli współrz ˛ednymi bazowymi punktu v s ˛a

vj1, ..., vjr,

gdzie 1 ≤ j1 < ... < jr ≤ n, to wzory wyra˙zaj ˛ace zmienne bazowe i funkcjonał kosztu przy pomocy zmiennych niebazowych, przyjmuj ˛a posta´c (poni˙zej symbolem Iv oznaczamy zbiór {j1, ..., jr}) ⎧

⎪⎪

⎪⎪

uj1 = vj1 − P

k /∈Iv

γj1,kuk ...

ujr = vjr − P

k /∈Iv

γjr,kuk

(27)

J(u) = J(v)−X

k /∈Iv

kuk, (28)

gdzie

γji,k = (B−1Ak)i ; i = 1, ..., r, k = 1, ..., n (29) (w szczególno´sci γji,k = δji,k dla i = 1, ..., r, k ∈ Iv),

B = [Aj1 | ... | Ajr] , vji = (B−1b)i, i = 1, ..., r,

vk = 0, k /∈ Iv,

k = Xr

i=1

cji(B−1Ak)i− ck, k = 1, ..., n (30) (w szczególno´sci ∆k = 0 dla k ∈ Iv).

W tym przypadku tablica sympleksowa dla punktu v jest nast ˛epuj ˛aca:

Tablica sympleksowa II (dla punktu v)

(17)

u1 ... uj1 ... uji ... uk ... ujs ... uj ... ujr ... un

uj1 γj1,1 ... 1 ... 0 ... γj1,k ... 0 ... γj1,j ... 0 ... γj1,n vj1

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

uji γji,1 ... 0 ... 1 ... γji,k ... 0 ... γji,j ... 0 ... γji,n vji

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

ujs γjs,1 ... 0 ... 0 ... γjs,k ... 1 ... γjs,j ... 0 ... γjs,n vjs

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

ujr γjr,1 ... 0 ... 0 ... γjr,k ... 0 ... γjr,j ... 1 ... γjr,n vjr

1 ... 0 ... 0 ... ∆k ... 0 ... ∆j ... 0 ... ∆n J(v) Tak, jak wcze´sniej, nale˙zy rozwa˙zy´c trzy przypadki:

10 spełniony jest warunek

k ≤ 0, k /∈ Iv (22’)

20 istnieje k /∈ Iv takie, ˙ze

k > 0, γji,k ≤ 0, i = 1, ..., r (23’) 30 nie zachodzi przypadek 10 i 20; w konsekwencji istniej ˛a k /∈ Iv oraz ji ∈ Iv takie, ˙ze

k> 0, γji,k > 0. (24’) Podobnie, jak wcze´sniej, łatwo sprawdzi´c, ˙ze w pierwszym przypadku punkt v jest rozwi ˛azaniem zadania (14), w drugim - inf

u∈Uhc, ui = −∞, czyli zadanie (14) nie ma rozwi ˛azania. W trzecim przypadku mo˙zna wybra´c element rozwi ˛azuj ˛acy γjs,k na podstawie warunku (24’) oraz warunku

jmini∈Iv,k

vji

γji,k = vjs

γjs,k, (25’)

gdzie Iv,k ={ji ∈ Iv; γji,k > 0}, które s ˛a analogiczne do warunków (24), (25).

Nast ˛epnie, nale˙zy wykona´c przej´scie do nowego punktu wierzchołkowego w. Z warunków (24’) i (25’) wynika, ˙ze baz ˛a punktu w b ˛edzie układ kolumn

Aj1, ..., Ajs−1, Ajs+1, ..., Ajr, Ak, przy czym

J(w)≤ J(v).

Współrz ˛edne punktu w mo˙zna wyznaczy´c na podstawie twierdzenia charakteryzuj ˛acego punkty wierzchołkowe.

(18)

Uwaga 1. Mo˙zna pokaza´c, ˙ze

⎧⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎨

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

⎪⎪

wj1 = vj1 − γj1,k vjs γjs,k

...

wji = vji − γji,k vjs γjs,k

...

wjs−1 = vjs−1− γjs−1,k vjs γjs,k

wjs = vjs − γjs,k vjs γjs,k = 0 wjs+1 = vjs+1− γjs+1,k vjs

γjs,k

... wjr = vjr − γjr,k

vjs γjs,k

wk= γvjs

js,k

wl = 0, l /∈ Iv, l6= k, Tablica sympleksowa dla punktu w przyjmuje posta´c

Tablica sympleksowa III (dla punktu w)

u1 ... uj1 ... uji ... uk ... ujs ... uj ... ujr ... un

uj1 γ0j1,1 ... 1 ... 0 ... 0 ... γ0j1,js ... γ0j1,j ... 0 ... γ0j1,n wj1

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

uji γ0ji,1 ... 0 ... 1 ... 0 ... γ0ji,js ... γ0ji,j ... 0 ... γ0ji,n wji

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

uk γ0k,1 ... 0 ... 0 ... 1 ... γk,j0 s ... γ0k,j ... 0 ... γ0k,n wk

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

ujs−1 γ0js

−1,1 ... 0 ... 0 ... 0 ... γ0js

−1,js ... γ0js

−1,j ... 0 ... γ0js

−1,n wjs−1 ujs+1 γ0js+1,1 ... 0 ... 0 ... 0 ... γ0js+1,js ... γ0js+1,j 0 γ0js+1,n wjs+1

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

ujr γ0jr,1 ... 0 ... 0 ... 0 ... γ0jr,js ... γ0jr,j ... 1 ... γ0jr,n wjr

01 ... 0 ... 0 ... 0 ... ∆j0s ... ∆0j ... 0 ... ∆0n J(w) gdzie współczynniki γ0i,j, ∆0j s ˛a okre´slone przy pomocy wzorów analogicznych do (29),

(30) z macierz ˛a B postaci

[Aj1 | ... | Ak | ... | Ajs−1 | Ajs+1 | ... | Ajr]

(zakładamy tu, ˙ze wiersze i kolumny ustawione s ˛a w kolejno´sci rosn ˛acych indeksów).

(19)

Uwaga 2. Mo˙zna pokaza´c, ˙ze ( γ0ji,j = γji,jγγji,k

js,kγjs,j ; i = 1, ..., r, i6= s, j = 1, ...n, γ0k,j = γγjs,j

js,k, j = 1, ...n, oraz

0j = ∆j − ∆kγjs,j

γjs,k dla j = 1, ..., n.

Opisany wi ˛ec został jeden krok metody sympleksowej w dowolnym przypadku (co do bazy punktu wierzchołkowego), czyli przej´scie od jednego punktu wierzchołkowego (v) zbioru U do drugiego punktu wierzchołkowego (w) tego zbioru (w przypadku 30) w taki sposób,

˙ze

J(w)≤ J(v).

1.6 Reguła antycykliczna

Podczas realizacji metody sympleksowej mo˙ze si ˛e zdarzy´c, ˙ze 0 = min

ji∈Iv,k

vji

γji,k = vjs γjs,k.

Ze wzorów podanych w Uwadze 1 wynika, ˙ze w takim przypadku w = v

i

J(w) = J(v),

a przej´scie od punktu v do punktu w oznacza jedynie przej´scie od bazy Aj1, ..., Ajr

do bazy

Aj1, ..., Ak, ..., Ajs−1, Ajs+1, ..., Ajr.

Mo˙zna poda´c przykłady zada´n pokazuj ˛ace, ˙ze przy ustalonym sposobie wyboru elementu rozwi ˛azuj ˛acego (n.p. cz ˛esto spo´sród indeksów k, js spełniaj ˛acych warunki (24’)-(25’) wybiera si ˛e najmniejsze warto´sci) metoda sympleksowa mo˙ze si ˛e „zap ˛etli´c”, t.zn. w kole- jnych iteracjach punkt wierzchołkowy nie b ˛edzie si ˛e zmieniał, a jego bazy b ˛ed ˛a zmieniały si ˛e w sposób okresowy (cykliczny).

Mo˙zna jednak okre´sli´c (na ró˙zne sposoby) reguł ˛e wyboru elementu rozwi ˛azuj ˛acego w taki sposób, by unikn ˛a´c owego zap ˛etlenia. Ka˙zda taka reguła nazywana jest reguł ˛a antycyk- liczn ˛a. Podamy teraz opis jednej z takich reguł.

Do tablicy sympleksowej punktu v (dla uproszczenia przyjmijmy, ˙ze kolumny A1,...,Ar

tworz ˛a baz ˛e punktu v) dopisujemy r×r - wymiarow ˛a macierz jednostkow ˛a [di,j]. Dopisane wyrazy przekształcamy w ka˙zdej iteracji zgodnie ze wzorami podanymi w Uwadze 2,

(20)

przy czym nie tworzymy współczynników „∆”. Element rozwi ˛azuj ˛acy γs,k wybieramy w nast ˛epuj ˛acy sposób.

Niech ∆k > 0 i Ik ={i ∈ {1, ..., r}, γi,k> 0} 6= ∅. Okre´slmy zbiór Ik,1 ={s ∈ Ik; min

i∈Ik

vi

γi,k = vs γs,k}.

Je´sli zbiór Ik,1 zawiera wi ˛ecej ni˙z jeden element, to tworzymy zbiór Ik,2={s ∈ Ik,1; min

i∈Ik,1

di,1

γi,k = ds,1

γs,k}.

Je´sli mamy ju˙z okre´slony zbiór Ik,m (m ≥ 2) i zawiera on wi ˛ecej ni˙z jeden element, to tworzymy zbiór

Ik,m+1 ={s ∈ Ik,m; min

i∈Ik,m

di,m

γi,k = ds,m

γs,k}.

Dowodzi si ˛e, ˙ze istnieje l ∈ {1, ..., r +1} takie, ˙ze zbiór Ik,l składa si ˛e z jednego elementu s, przy czym wszystkie zbiory Ik,i, i = 1, ..., l − 1, zawieraj ˛a wi ˛ecej ni˙z jeden element. Jako indeks s, słu˙z ˛acy do okre´slenia elementu rozwi ˛azuj ˛acego, przyjmujemy ów jedyny element zbioru Ik,l.

Mo˙zna pokaza´c, ˙ze stosowanie w ka˙zdym kroku metody sympleksowej takiego sposobu wyboru indeksu s, wyznaczaj ˛acego element rozwi ˛azuj ˛acy, pozwala unikn ˛a´c zap ˛etlenia i w sko´nczonej ilo´sci kroków rozwi ˛aza´c zadanie, b ˛ad´z stwierdzi´c, ˙ze rozwi ˛azanie nie istnieje (1).

1.7 Wybór pocz ˛ atkowego punktu wierzchołkowego

Niech dane b ˛edzie zadanie kanoniczne

J(u) =hc, ui → min . (31)

u ∈ U = {u = (u1, ..., un)∈ Rn; u≥ 0 , Au = b}, (32) gdzie ∅ 6= A ∈ Rm×n. Opisuj ˛ac metod ˛e sympleksow ˛a, zakładali´smy mi ˛edzy innymi,

˙ze zbiór U jest niepusty i znany jest „pocz ˛atkowy” punkt wierzchołkowy tego zbioru.

Poka˙zemy teraz jak stwierdzi´c, czy U 6= ∅ i znale´z´c ów punkt wierzchołkowy.

Bez zmniejszania ogólno´sci rozwa˙za´n mo˙zemy zało˙zy´c, ˙ze bi ≥ 0 dla i = 1, ..., m (mno˙z ˛ac w razie potrzeby odpowiednie równania przez −1).

Rozwa˙zmy zadanie pomocnicze postaci

J1(z) = un+1+ ... + un+m → min . (33)

1Zatem nie mo˙ze si ˛e tak˙ze zdarzy´c, ˙ze w nieuporz ˛adkowany sposób b ˛edziemy „przerabia´c” bazy jednego punktu wierzchołkowego, a tak˙ze, i˙z w niesko´nczony sposób (cykliczny lub nie) b ˛edziemy przerabia´c punkty wierzchołkowe (przej´scie do kolejnego punktu wierzchołkowego w 6= v oznacza, ˙ze vs 6= 0 i w konsekwencji J(w) < J(v)).

(21)

z ∈ Z = {z =

∙ u w

¸

∈ Rn+m; z ≥ 0, Cz = b}, (34) gdzie C = [A | Im×m], w = (un+1, ..., un+m). Układ

Cz = b zapiszmy w postaci ⎧

a1,1u1+ ... + a1,nun+ un+1= b1 ...

am,1u1+ ... + am,nun+ un+m= bm . Łatwo wida´c, ˙ze zbiór Z jest niepusty, bowiem

z0 := (0, b)∈ Z.

Łatwo te˙z wida´c, ˙ze z0 jest punktem wierzchołkowym zbioru Z z baz ˛a zło˙zon ˛a z ostat- nich m kolumn macierzy C, czyli wektorów jednostkowych e1,...,em ∈ Rm (rankC = m).

Mo˙zna wi ˛ec do zadania (33)-(34) zastosowa´c metod ˛e sympleksow ˛a z pocz ˛atkowym punk- tem wierzchołkowym z0.

Poniewa˙z

J1(z)≥ 0, z ∈ Z, wi ˛ec niemo˙zliwy jest przypadek

z∈ZinfJ1(z) =−∞.

Zatem, stosuj ˛ac metod ˛e sympleksow ˛a, w sko´nczonej ilo´sci kroków otrzymamy punkt wierz- chołkowy z = (v, w)∈ Z b ˛ed ˛acy rozwi ˛azaniem zadania (33)-(34).

Mo˙zliwe s ˛a tutaj dwa przypadki.

10 J1(z) > 0. Wówczas zbiór U (dany przez (32)) jest zbiorem pustym. Istotnie, w przeciwnym bowiem razie (czyli gdyby istniał punkt u ∈ U) punkt z = (u, 0) nale˙załby do zbioru Z oraz spełniona byłaby równo´s´c

J1(z) = 0,

co sprzeczne jest z nierówno´sci ˛a J1(z) > 0 i optymalno´sci ˛a punktu z.

20 J1(z) = 0. Wówczas punkt z jest postaci (v, 0). Jako punkt uzyskany przy pomocy metody sympleksowej z jest punktem wierzchołkowym zbioru Z. St ˛ad wynika,

˙ze v jest punktem wierzchołkowym zbioru U . Istotnie, poniewa˙z z ≥ 0, wi ˛ec v ≥ 0, natomiast z równo´sci

Cz = b wynika, ˙ze

Av = b.

A wi ˛ec

v ∈ U.

(22)

Przypu´s´cmy teraz, ˙ze

v = αu + (1− α)eu,

gdzie α ∈ (0, 1), u, eu ∈ U. Punkty z = (u, 0), ez = (u, 0)e nale˙z ˛a oczywi´scie do zbioru Z, przy czym

z = αz + (1− α)ez.

Poniewa˙z z jest punktem wierzchołkowym zbioru Z, wi ˛ec to oznacza, ˙ze z =ez,

sk ˛ad

u =eu.

A zatem v jest punktem wierzchołkowym zbioru U .

Pokazali´smy wi ˛ec, ˙ze maj ˛ac wyj´sciowe zadanie (31)-(32) i rozwa˙zaj ˛ac zadanie pomoc- nicze (33)-(34), potrafimy stwierdzi´c (stosuj ˛ac metod ˛e sympleksow ˛a do zadania (33)-(34)), czy U 6= ∅ i, je´sli tak, wyznaczy´c pocz ˛atkowy punkt wierzchołkowy zbioru U.

Uwaga 3. Mo˙zna pokaza´c, ˙ze analizuj ˛ac tablic ˛e sympleksow ˛a dla punktu z = (v, 0) b ˛ed ˛acego rozwi ˛azaniem zadania (33)-(34)), mo˙zna

(1) znale´z´c rz ˛ad macierzy A wyst ˛epuj ˛acej w zadaniu (31)-(32), wskaza´c baz ˛e punktu wierzchołkowego v1 zbioru (32) (por Uwaga 4) i otrzyma´c tablic ˛e sympleksow ˛a punktu v1 zawieraj ˛ac ˛a r wierszy (nie licz ˛ac wiersza zawieraj ˛acego współczynniki

i), gdzie r = rankA lub

(2) otrzyma´c „nowe” zadanie, dla którego natychmiast mo˙zna wskaza´c pocz ˛atkowy punkt wierzchołkowy, jego baz ˛e i tablic ˛e sympleksow ˛a, przy czym ilo´s´c równo´sci wys- t ˛epuj ˛acych w ograniczeniach jest równa rz ˛edowi macierzy opisuj ˛acej te ograniczenia.

Uzupełniaj ˛ac rozwi ˛azanie tego zadania (otrzymane metod ˛a sympleksow ˛a) zerowymi współrz ˛ednymi, otrzymujemy rozwi ˛azanie wyj´sciowego zadania. Je´sli nowe zadanie nie ma rozwi ˛azania, to nie ma go tak˙ze zadanie wyj´sciowe.

Uwaga 4. Maj ˛ac punkt wierzchołkowy v1 zbioru U mo˙zna wyznaczy´c rz ˛ad macierzy A i wskaza´c współrz ˛edne bazowe punktu v1 w nast ˛epuj ˛acy sposób. Dodatnie współrz ˛edne punktu v1 s ˛a oczywi´scie jego współrz ˛ednymi bazowymi. Uzupełniaj ˛ac układ kolumn odpowiadaj ˛acych tym˙ze dodatnim współrz ˛ednym kolumnami spo´sród pozostałych kolumn tak, by otrzymany układ stanowił baz ˛e powłoki liniowej wszystkich kolumn, otrzymamy baz ˛e punktu v1 (zna´c te˙z b ˛edziemy rankA i współrz ˛edne bazowe punktu v1). Ta metoda w praktyce jest stosowana w przypadku małych warto´sci m i n.

Z powy˙zszych rozwa˙za´n wynika nast ˛epuj ˛ace

Twierdzenie 2 Je´sli zbiór U dany przez (32) jest niepusty, to ma co najmniej jeden punkt wierzchołkowy.

(23)

Korzystaj ˛ac z opisu metody sympleksowej, udowodnimy teraz dwa podstawowe fakty teorii programowania liniowego.

Twierdzenie 3 Na to, aby kanoniczne zadanie postaci (31)-(32) miało rozwi ˛azanie, t.zn.

aby istniał punkt u ∈ U taki, ˙ze

hc, ui = inf

u∈Uhc, ui potrzeba i wystarcza, aby

1) zbiór U był niepusty

2) funkcjonał J(u) = hc, ui był ograniczony z dołu na zbiorze U.

Dowód. Konieczno´s´c. Konieczno´s´c warunków 1) i 2) jest oczywista.

Dostateczno´s´c. Z warunku 1) i twierdzenia 2 wynika, ˙ze istnieje punkt wierzchołkowy zbioru U . Mo˙zna wi ˛ec, startuj ˛ac z tego punktu, rozwi ˛azywa´c zadanie metod ˛a symplek- sow ˛a. Z warunku 2) wynika, ˙ze w ˙zadnej iteracji nie zajdzie przypadek 20 (z opisu metody sympleksowej). Oznacza to, ˙ze po sko´nczonej ilo´sci kroków metoda sympleksowa zako´nczy si ˛e znalezieniem rozwi ˛azania u zadania (31)-(32).

Twierdzenie 4 Je´sli zadanie (31)-(32) ma rozwi ˛azanie, to w´sród rozwi ˛aza´n co najmniej jeden punkt jest punktem wierzchołkowym.

Dowód. Z twierdzenia 3 wynika, ˙ze U 6= ∅ i funkcjonał J jest ograniczony z dołu na U . Z twierdzenia 2 wynika, ˙ze zbiór U ma co najmniej jeden punkt wierzchołkowy.

„Startuj ˛ac” z tego punktu, w sko´nczonej ilo´sci kroków matody sympleksowej, otrzymamy rozwi ˛azanie u, które jest punktem wierzchołkowym zbioru U (w ˙zadnej iteracji nie zajdzie przypadek 20, gdy˙z

u∈UinfJ(u) >−∞).

Dowód twierdzenia jest zako´nczony.

(24)

2 Programowanie nieliniowe

2.1 Zasada Fermata

Rozwa˙zmy zadanie postaci (minimalizacyjne zadanie bezwarunkowe)

½ f0(u)→ inf ,

u∈ Rn (35)

gdzie f0 : Rn→ R.

Punkt u ∈ Rn nazywamy punktem lokalnego minimum dla tego zadania, je´sli istnieje otoczenie V punktu u takie, ˙ze

f0(u)≤ f0(u)

dla dowolnego u ∈ V (gdy V = Rn mówimy, ˙ze u jest punktem globalnego minimum dla rozpatrywanego zadania). Prawdziwe jest nast ˛epuj ˛ace:

Twierdzenie 5 (zasada Fermata) Je´sli u jest punktem lokalnego minimum dla zada- nia (35) i funkcja f0 ma w punkcie u gradient ∇f0(x), to

∇f0(u) = 0.

Dowód. Istnienie gradientu funkcji f0 w punkcie u oznacza istnienie pochodnej funkcji ϕi : [−1, 1] 3 t 7→ f0(u+ tei)∈ R

w punkcie t = 0, gdzie ei jest i-tym wektorem jednostkowym, i = 1, ..., n. Poniewa˙z u

jest punktem lokalnego minimum funkcjonału f0, wi ˛ec ϕ0i(0) = 0, i = 1, ..., n.

A wi ˛ec ∇f0(u) = 0, co ko´nczy dowód.

2.2 Zasada mno˙zników Lagrange’a

Rozwa˙zmy zadanie postaci

½ f0(u)→ inf ,

u∈ U = {u ∈ Rn; fi(u) = θ, i = 1, ..., m} (36) gdzie fi : Rn→ R, i = 1, ..., m.

Mówimy, ˙ze punkt u ∈ Rn jest punktem lokalnego minimum dla zadania (36), je´sli istnieje otoczenie V tego punktu takie, ˙ze dla dowolnego punktu u ∈ V , spełniaj ˛acego ograniczenia

fi(u) = θ, i = 1, ..., m, mamy

f0(u)≤ f0(u)

(gdy V = Rn mówimy, ˙ze u jest punktem globalnego minimum).

(25)

Twierdzenie 6 (o funkcji uwikłanej) Niech dane b ˛ed ˛a funkcje gi = gi(w, z) : Rs+n → R, i = 1, ..., n, klasy C1 oraz punkt (a, b) ∈ Rs+n taki, ˙ze

gi(a, b) = 0, i = 1, ..., n det[∂gi

∂zj

(a, b)]1≤i,j≤n6= 0.

Wówczas istnieje δ > 0 i funkcja z = z(w) = (z1(w), ..., zn(w)) : K(a, δ)→ Rn klasy C1 taka, ˙ze

z(a) = b,

gi(w, z(w)) = 0, i = 1, ..., n.

Twierdzenie 7 (zasada mno˙zników Lagrange’a) Je´sli funkcje fi, i = 0, ..., m s ˛a klasy C1 na Rn i punkt u jest punktem lokalnego minimum (maksimum) dla zadania (36), to istnieje niezerowy wektor (λ0, λ1, ..., λm)∈ R1+m taki, ˙ze

Pm

i=0λi∇fi(u) = 0.

Dowód. Warunek dany w tezie twierdzenia oznacza liniow ˛a zale˙zno´s´c wektorów

∇f0(u),∇f1(u), ...,∇fm(u)

w przestrzeni Rn. Przypu´s´cmy, ˙ze warunek ten nie jest spełniony, tzn. powy˙zsze wektory s ˛a liniowo niezale˙zne. Oznacza to, ˙ze m + 1 ≤ n. W przypadku, gdy m + 1 < n mo˙zemy uzupełni´c układ wektorów ∇f0(u),∇f1(u), ...,∇fm(u)wektorami dm+1, ..., dn−1tak, by układ wektorów ∇f0(u),∇f1(u), ...,∇fm(u), dm+1, ..., dn−1 był układem liniowo nieza- le˙znym w Rn.

Rozwa˙zmy teraz funkcje

g0(t, u) = f0(u)− f0(u) + t, gi(t, u) = fi(u), i = 1, ..., m,

gi(t, u) =hdi, u− ui , i = m + 1, ..., n − 1,

okre´slone na R1+n. Łatwo wida´c, ˙ze powy˙zszy układ funkcji spełnia zało˙zenia twierdzenia o funkcji uwikłanej z punktem (a, b) postaci (0, u). Z twierdzenia tego wynika, ˙ze istnieje δ > 0 i funkcja u = u(t) = (u1(t), ..., un(t)) : (−δ, δ) → Rn klasy C1 (dla naszych celów wystarcza ci ˛agło´s´c) taka, ˙ze

u(0) = u oraz

f0(u(t)) = f0(u)− t, fi(u(t)) = 0, i = 1, ..., m,

dla t ∈ (−δ, δ). To oznacza w szczególno´sci, ˙ze dla t ∈ (0, δ) punkty u(t) spełniaj ˛a ograniczenia typu równo´sci wyst ˛epuj ˛ace w zadaniu (36), przy czym

f0(u(t)) = f0(u)− t < f0(u) < f0(u) + t = f0(u(−t)).

Przeczy to optymalno´sci punktu u.

Cytaty

Powiązane dokumenty

(i) Poszczeg´ olne zadania nale˙zy oddawa´ c na osobnych kartkach podpisanych imieniem i nazwiskiem. (ii) Ka˙zde zadanie warte jest 5 punkt´ ow, niezale˙znie od stopnia

wstaw wynik zamiast x 1 z prawej strony wszystkich równa´n (czyli uaktualnij współczyn- niki przy zmiennych niebazowych i wyrazy wolne). Po operacji wymiany bazy otrzymujemy

[r]

[r]

 mo˙zna pisa´c ogólne funkcje działaj ˛ ace dla wszystkich pochodnych pewnej klasy bazowej;.  elastyczny system typów: mo˙zna dodawa´c nowe typy bez modyfikacji ju˙z istniej

Znajd´ z uk lad r´ owna´ n liniowych, kt´ orego zbiorem rozwi aza´

Rozwi azanie ka˙zdego zadania TRZEBA napisa´c na ODDZIELNEJ kartce (lub kartkach).. GAL, egzamin TEMAT

Matematyka dla Chemik´ ow