• Nie Znaleziono Wyników

Minimalizacja wklęsłej funkcji na wielościanie wypukłym*

N/A
N/A
Protected

Academic year: 2021

Share "Minimalizacja wklęsłej funkcji na wielościanie wypukłym*"

Copied!
13
0
0

Pełen tekst

(1)

S t a n is ła w L. K r y ń sk i (Warszawa)

Minimalizacja wklęsłej funkcji na wielościanie wypukłym*

(Praca wpłynęła do Redakcji 20. 11. 1979)

1. Wstęp.

1.1. Rozważamy problem wyznaczenia globalnego minimum wklęsłej funkcji na wielościanie wypukłym: dla danego wielościanu D a R n i wklęsłej funkcji / : R" ->

R znaleźć z e D takie, że:

(PW) f(z) = min f(x).

x e D

Problem ten krótko nazwiemy zadaniem programowania wklęsłego (PW).

1.2. Wprost z definicji funkcji wklęsłej i podstawowych własności wielościanu wypukłego wynika, źe dla każdego zadania (PW) istnieje rozwiązanie z e D będące wierzchołkiem wielościanu D. Spostrzeżenie to pozwala sprowadzić rozwiązywanie zadania do przeglądu wszystkich wierzchołków wielościanu i badania wartości funkcji/ w tych wierzchołkach. Jednak podobnie, jak na przykład w programowaniu liniowym, pożądane jest znalezienie metody nie wymagającej wyznaczania całego zbioru wierzchołków, który, aczkolwiek skończony, może mieć przecież dowolnie dużą moc. Podstawowym problemem, który zjawia się przy konstruowaniu takiego algorytmu dla zadania (PW), podobnie zresztą jak dla innych nie wypukłych zadań programowania matematycznego, jest to, że funkcja / może mieć na D minima lokalne nie będące minimami globalnymi. Wobec tego błędna byłaby np. metoda, która ograniczałaby się jedynie do badania wartości funkcji w wierzchołkach są- siednich (zob. definicja w § 2.1) dla danego wierzchołka i wyznaczająca ciąg wierz- chołków®1,®2, ..., ®fc, ®fe+1, ..., ®r taki, że l°®fc, ®fc+1 są sąsiednie dla k = 1 ,..., r — 1;

2 °/(®fc+1) < f(v k) ,k = 1, . . . , r —1; 3° dla każdego wierzchołka ® sąsiedniego dla vr jest/(®) ^ /(®r)- Zauważmy, że ten schemat jest wykorzystany w znanej metodzie

„sympleks” dla programowania liniowego, przy czym, o ile tam wiadomo, że ®r jest istotnie rozwiązaniem optymalnym, to w przypadku programowania wklęsłego jedyną dostępną informacją jest, że vr jest minimum lokalnym.

* Praca wykonana w ramach problemu 49/13.3.

5*

[63]

(2)

1.3. Tuy [5] zaproponował metodę, która wychodząc z wierzchołka będącego minimum lokalnym / na D, konstruuje ciąg pomocniczych zadań programowania liniowego. W pracy [5] nie podano jednak dowodu zbieżności tego algorytmu. Co więcej, okazało się później (Zwart [6]), że algorytm Tuy’a w ogólnym przypadku nie jest skończony i nie wyznacza rozwiązania zadania (PW).

W niniejszej pracy opisany jest algorytm będący modyfikacją oryginalnej kon- cepcji Tuy’a. Algorytm ten zawsze, tj. dla każdej pary D , f wyznacza minimum glo- balne funkcji/ na wielościanie D. Dowód zbieżności podany jest w pkcie 8 artykułu.

2. Podstawowe założenia, definicje i oznaczenia.

2.1. Wprowadzimy i przypomnimy tu pewne pojęcia i fakty niezbędne w dalszych częściach artykułu. Opieramy się przy tym głównie na monografii [4].

Zbiorem wielościennym nazywamy podzbiór przestrzeni Rn będący przecięciem skończonej liczby półprzestrzeni domkniętych. Wielościan jest ograniczonym zbio- rem wielościennym. Nie będziemy definiować takich obiektów, jak wierzchołek zbioru wielościennego, krawędź, promień ekstremalny, kombinacja wypukła punktów, powłoka wypukła zbioru, czy stożek wypukły, zakładając, że są one znane czytelni- kowi. Dla zbiorów P lt P2 <= Rn ich suma algebraiczna jest zdefiniowana jako zbiór P x+ P 2 = { * i+ x 2| g P i >x 2 e P 2}- Symbole convP oraz coneP oznaczają, od- powiednio, powłokę wypukłą zbioru P cz Rn oraz najmniejszy stożek wypukły za- wierający P. Dla zbioru wielościennego W cz R” przez V{W) oznaczymy zbiór jego wierzchołków, natomiast przez R(W ) zbiór jego promieni ekstremalnych. Przy- pomnijmy, że dla każdego zbioru wielościennego W cz Rn zachodzi

W = conv V( JF)+coneP( W).

Jeśli W jest wielościanem, to R (W ) = 0 i powyższa równość redukuje się do W = convF(JP).

Jeśli x jest wierzchołkiem wielościanu W, to wierzchołkiem sąsiednim dla x nazy- wamy każdy wierzchołek w taki, że odcinek o końcach x, w jest krawędzią wielo- ścianu. Zbiór wierzchołków sąsiednich dla x (przy ustalonym wielościanie) ozna- czymy Vs(x).

Niech W cz R n będzie wielościanem mającym niepuste wnętrze. Powiemy, że jest on niezdegenerowanyij), jeśli każdy jego wierzchołek ma dokładnie n sąsiednich

wierzchołków.

Przypomnijmy ponadto, że f : P - > R jest funkcją wklęsłą na zbiorze wypukłym P cz Rn, jeśli dla dowolnych x , y e P oraz każdej liczby A takiej, że 0 < A ^ 1 za- chodzi

f(X x + (1 - X)y) » A/(x) + (1 - X)f(y) .

2.2. Zakładamy, że wielościan D występujący w sformułowaniu zadania (PW) jest dany za pomocą układu nierówności liniowych, to jest

O Podana tu definicja wielościanu niezdegenerowanego jest innym sformułowaniem warunku

niezdegenerowania występującego w programowaniu liniowym.

(3)

D = {x e R n\Ax ^ b},

gdzie A jest macierzą w x « , natomiast b e R m. (Nierówność w' < w" dla wektorów w’, w" przestrzeni Rm jest równoważna temu, źe w- < w" dla / = 1, m).

Bez straty ogólności możemy przyjąć, że intD ^ 0 . W celu uproszczenia roz- ważań zakładamy(2) ponadto, że D jest wielościanem niezdegenerowanym (podobne założenie występuje w pracy [5]).

3. Pewne własności funkcji wklęsłej. Podamy tu kilka prostych lematów dotyczą- cych funkcji wklęsłej określonej na zbiorze wielościennym. Będą one wykorzystane przy konstrukcji algorytmu i dowodzie jego zbieżności.

Wprost z definicji funkcji wklęsłej i równości W = eonvV (W ) dla wielościanu wynika poniższy lemat:

L

e m a t

1. Jeśli W jest wielościanem w R" oraz f: W -*• R jest funkcją wklęsłą, to istnieje wierzchołek w taki, że

(Vx e W )f(x) ^ /(w),

Inaczej mówiąc, funkcja wklęsła osiąga minimum globalne na wielościanie w jednym z jego wierzchołków.

Zwróćmy uwagę na następującą własność funkcji wklęsłej:

L

e m a t

2. Niech f: R” -* R będzie wklęsła oraz załóżmy, że dla pewnych a e R"

i a g R zachodzi

(V t ^ 1 )f(ta) ^ a.

Wówczas dla każdego b e Rn i każdego t ^ 0 spełnione jest Ą b + ta) ^ f(b).

D o w ó d . Ustalmy b e Rn, t ^ 1. Dla każdego e > 1 mamy z definicji funkcji wklęsłej

f i b + ta ) - / ( l ( rt ) + - ? = l . ( - ^ r „ ) ) > L n O H - l z L Ą - J L - a ) .

Et l Et \

Ale ——— ^ 1, z założenia wynika więc, że / I——— a l ^ “ i w konsekwencji

f ( b + ta) ^ — f(e b ) + - — — a.

e e

f, jako funkcja wklęsła na całej przestrzeni Rn, jest ciągła. Stąd lim (-/(rf> ) + -^—L a) = /(6 ) e— * 1 \ 6 £ /

(2) Przypadek ogólny, tj. wielościanu zdegenerowanego, można sprowadzić do rozpatrywanego tu za pomocą np. techniki analogicznej do metody perturbacji znanej z programowania liniowego.

Możliwe jest również uogólnienie opisanego algorytmu, w którym nie korzysta się z metody per-

turbacji (zob. notki 3 i 4).

(4)

i ostatecznie otrzymujemy f(b + ta) ^ f(b). Dla t e [0, 1) nierówność ta jest również prawdziwa, z definicji bowiem funkcji wklęsłej i pierwszej części dowodu mamy

f(b + ta) ^ (1 - t)f(b) + tf{b + a) ^ f(b ). m Poniższy lemat 3 można uważać za ogólniejszą wersję lematu 1.

L

e m a t

3. Niech W będzie zbiorem wielościennym o wierzchołkach w1, ...,w m i pro- mieniach ekstremalnych p 1, . . . , p r oraz f: W -> Rn funkcją wklęsłą. Wówczas dla każdego x e W zachodzi:

f(x) ^ in f {/(w1 + tpj)\ i = 1, = 1, r, t ^ 0}.

D o w ó d . Jak wiemy, zbiór wielościenny W można przedstawić w postaci W = conv{w1, ..., M ^j+conelp1, ...,p r). Jeśli więc x e W, to x = X ^w*’ + m

« = i + X PjPi dla pewnych A; ^ 0, fij ^ 0 (/ = 1, . ..,m ,j = 1, ..., r), przy czym

j= i

Z m = i.

i=i Niech J będzie zbiorem indeksów, J = {/| Af > 0} oraz m jego mocą. Wówczas

r

możemy zapisać x = X X i uj’Pj > co z kolei przekształca się następująco:

i eJ j= 1

x = r X T ' +im ' X W p ‘ = X Ź T - ( w < + i a , Ą ■

i e J 7=1 i e j 7=1 '

r

Ponieważ X X h l r — 1 oraz h /r ^ 0 dla / e j , to

i e J j = 1

x e conv {w‘4-— ł m x, pJ i e J , j = 1, ..., r>. J Z lematu 1 otrzymujemy

f(x ) > min | / pJ j i e J , ; = 1, ..., rj i stąd natychmiast

/(x ) ^ inff/C w ^tpO l i = l , ...,m ,j = 1, ..., r, t ^ 0). ■ Bezpośrednio z lematów 2 i 3 otrzymujemy

W n iosek . Niech W będzie zbiorem wielościennym o wierzchołkach w1, ..., wm

i promieniach ekstremalnych p 1, . . . , p r oraz f: Rn -*• R funkcją wklęsłą. Ponadto

załóżmy, że istnieje liczba rzeczywista a taka, że dla j = 1, r oraz t ^ 1 zachodzi

f(tp j) > a. Wówczas (3 w1)(V x e W )f(x) ^ /(vv‘).

(5)

4. Idea algorytmu.

4.1. Algorytm opisywany w niniejszym artykule w pierwszej fazie wyznacza wierzchołek wielościanu D będący minimum lokalnym funkcji / na D. Bez straty ogólności można przyjąć, że ten wierzchołek jest początkiem układu współrzędnych 0.

Ideę algorytmu można przedstawić następująco:

Niech x będzie wierzchołkiem o najmniejszej wartości funkcji celu / wśród wierz- chołków zbadanych dotychczas oraz a = f(x). Mamy daną rodzinę Z n-elemento- wych afinicznie niezależnych podzbiorów Rn, Z = {U1} ..., Up}, o której wiemy, że jeśli a: e V (D )\ (J cone U, to f( x ) ^ a. Ponadto znane są dolne oszacowania

U e Z

a (U) wartości funkcji / na zbiorach F(Z))nconeZ7 dla U e Z . Jeśli Z = 0 lub m ina(t/) ^ a, to a: jest oczywiście rozwiązaniem optymalnym zadania (PW). W prze-

U e Z _ _

ciwnym przypadku wybieramy U e Z taki, że a(t/) = min a(t/) i badamy, czy

_ U e Z

w zbiorze K(D)ncone U mogą istnieć wierzchołki mające mniejszą niż a wartość funkcji /. W tym celu rozwiązujemy pewne zadanie pomocnicze, prostsze niż (PW), opisane dokładniej w następnym punkcie. Po jego rozwiązaniu aktualizujemy rodzinę Z eliminując z niej zbiór U (jeśli odpowiedź jest negatywna) lub wprowa- dzając do niej zamiast U pewne nowe podzbiory Up+1, ..., Up+k takie, że

k______________________

U cone Up+i = cone U (jeśli odpowiedź jest pozytywna); konstrukcja zbiorów Up+i i= i opisana jest w pkcie 7.

4.2. Wspomnieliśmy powyżej, że w początkowej fazie algorytm wyznacza wierz- chołek a:0 e V(D) będący minimum lokalnym funkcji / na D, a dokładniej taki, że f(x) ^ f(x°) dla a; e Fs(x°). Dokonujemy tego w sposób naszkicowany już w § 1.2.

Tu ograniczymy się więc jedynie do zapisania ścisłego schematu tej prostej proce- dury.

1° Znajdź dowolny wierzchołek v x e V(D), i = 1.

2° Oblicz f(p) dla v e Vs(vl). Wyznacz f l = min {f(v)\ v e Vs(v')} = f(v).

3° Jeśli f l < to idź do 4°. W przeciwnym przypadku a:0 = v l. Stop.

4 ° v i+1 = Zwiększ i o 1; idź do 2°.

Zgodnie z uwagą w § 4.1 przyjmijmy dalej, że

a

:0 = 0.

Wobec założenia o niezdegenerowaniu wielościanu D (zob. § 2.2), wyznaczenie zbioru Vs(vł) wierzchołków sąsiednich dla v \ wymagane w kroku 2°, jest proste(3) i sprowadza się do wykonania n przekształceń sympleksowych macierzy bazowej układu A x + Iy = b, y ^ 0, odpowiadającej rozwiązaniu bazowemu, w którym a; = v l.

(3) Gdy pominiemy założenie o niezdegenerowaniu, wówczas do wyznaczania zbioru wierz- chołków sąsiednich dła v l wskazane jest użycie metody lepszej niż zwykły przegląd wszystkich roz- wiązań bazowych, sąsiednich dla rozwiązania układu A x + Iy = b, y > 0, w którym x = v '. Metoda taka może być oparta np. na algorytmie Czernikowej (Żurn. Wyczysl. Mat. i Mat. Fiz. 5, 2 (1965);

por. też [2]).

(6)

Uzupełnieniem początkowej iteracji jest ustalenie startowej rodziny Z. Ma ona jeden element(4), mianowicie Z = {Fs(x0)}.

5. Zadanie pomocnicze.

5.1. Zadanie pomocnicze jest jednoznacznie określone za pomocą pewnego liniowo niezależnego układu U = {u1, c Rn i liczby rzeczywistej a spełnia- jących poniższe warunki (a) i (b):

(a) (Vuł e U)fiu1) > a, (b) /(O) ^ a.

Zadanie pomocnicze dla danej pary (U, a) oznaczać będziemy przez ZP{U, a) a otrzymujemy je w następujący sposób:

Dla każdego i = 1, ..., n znajdujemy

= sup{<9 e.R| f( 0 u l) ^ a).

Niech / oznacza zbiór indeksów, / = {/eJVj 0 4 < 4-oo}, gdzie N = {1, . Jeżeli 1 = 0 , to powiemy, że zadanie pomocnicze nie ma rozwiązań. Załóżmy, że / 7^0. Połóżmy 0 / = &i dla i e I oraz Ot = 1 dla i e N \ I . Określamy macierz B = (Bx, ..., 2?„), której kolumny są wektorami Bt = &i * u1 dla z = 1, ..., n. Jest ona nieosobliwa. Za pomocą macierzy B definiujemy następujące obiekty:

stożek K{B) = {x e J*"| tf" 1* ^ 0 ),

hiperpłaszczyznę H{B) = {jcek" I Y

j

= 1},

i e l

półprzestrzeó P(B) = ]>] 08_1*)i > 1},

i e l

gdzie (B~1x)i oznacza i-tą współrzędną wektora B~1x.

5.2. Zauważmy, że hiperpłaszczyzna H(B) zawiera punkty Bi dla i e l oraz jest równoległa do kierunków wektorów Bj dla j e N \ I . Wobec liniowej niezależności zbioru {B i, ..., Bn} jest to jedyna hiperpłaszczyzna o tej własności. P{B) jest otwartą półprzestrzenią, wyznaczoną przez H{B) i nie zawierającą początku układu współ- rzędnych. Ponadto zachodzi równość K(B) = cone U.

Istotną własnością macierzy B, wykorzystywaną w dowodzie zbieżności algo- rytmu, jest to, że jeśli x e K (B )\P (B ), to f(x) ^ a (zob. lemat 4). Można też po- kazać, że jeśli P' jest inną półprzestrzenią otwartą taką, że dla jc e K (B )\P ' zachodzi f(x ) ^ a, to K (B )\P (B ) 3 K ( B ) \P \ Inaczej mówiąc, hiperpłaszczyzna H{B)

(4) W wielościanie zdegenerowanym zbiór V,(x°) może mieć więcej niż n elementów i dlatego inaczej należy konstruować startową rodzinę Z. W pewnych przypadkach łatwo znaleźć taki n-ele- mentowy liniowo niezależny zbiór U, że eonet/ => D oraz /(«) 5* f(x°) dla u e U. Wtedy przyjmiemy startowe Z = {U} (por. [2]). Natomiast zawsze można wyznaczyć taką rodzinę Z ln-elementowych liniowo niezależnych zbiorów, że dla każdego U e Z zachodzi U <= V,(x°) oraz LJ cone U => D.

U e Z

W pracy [1] opisano procedurę „P” generującą taką rodzinę, która ponadto spełnia warunek

int conet/' n int coneU" = 0 dla U' ^ u", U’, U” e Z.

(7)

„odcina” największą możliwą (przy użyciu hiperpłaszczyzny) część stożka K{B) =

= cone U nie zawierającą punktów o mniejszej niż a wartości funkcji /.

5.3. Niech

q

(

x

, H(Bj) oznacza odległość punktu x e Rn od hiperpłaszczyzny H(B). Rozwiązując zadanie pomocnicze ZP(U, u) poszukujemy takiego punktu x* e V(D )nK(B)nP(B), że

@(x*, H(B)) = m ax£(x, H(B)) dla x e V(D )nK(B)nP(B).

Rozwiązaniem dopuszczalnym dla Z P(t/, a) nazywamy każdy punkt x należący do zbioru V(D)nK(B)r\P(B).

Dla sformułowania procedury rozwiązującej zadanie pomocnicze wygodniejsza będzie inna, ale równoważna powyższej, jego postać. Wobec liniowej niezależności zbioru {Bt , ..., B„} dla każdego x e Rn istnieje dokładnie jeden wektor X e Rn taki, że x = BX. Zauważmy, że zachodzą następujące związki:

(c) x < = K (B )o X ^ 0, x e P(B) A, > 1, x e V(D) o Xe V(D'),

i e l

gdzie D' jest wielościanem, D' = {A e P"| ABX ^ b).

Odległość

q

(

x

,H (B )) można wyrazić wzorem

i e l

gdzie A = (Ai, ..., A„) = B~1x , g = 1 /||^ ] ą || jest dodatnim współczynnikiem nie

i e l

zależącym od x, a || • || oznacza euklidesową normę w Rn. Wynika z tego, że dla x e P (B ), a więc gdy 2 h = X! odległość punktu x od hiperpłasz-

i e l i e l

czyzny H(B) można zapisać jako

i e l

Z powyższych spostrzeżeń otrzymujemy, że x* jest rozwiązaniem Z P (t/, a) wrtedy i tylko wtedy, kiedy A* = B~xx* jest rozwiązaniem zadania

(ZP) max ^ A,, A e V(D'), X ^ 0, A, > 1.

i e l i e l

5.4. Zadanie (ZP) jest szczególnym przypadkiem następującego ^-problemu rozpatrywanego przez Pollatschka i Avi-Itzhaka [3]:

(n) max cTx ,

x e n —Pr\C

gdzie c e Rn, P cz R" jest wielościanem wypukłym, natomiast C cz Rn jest takim zbiorem, że n = P n C cz V(P).

W pracy [3] autorzy opisali algorytm rozwiązujący zadania tego typu. W pierw-

szym kroku wymaga on zastosowania algorytmu „sympleks” do zadania liniowego

max{cTx| x e P ). Następnie wierzchołki wielościanu P są przeglądane w porządku

(8)

malejących wartości funkcji celu. Pierwszy napotkany wierzchołek należący do C jest rozwiązaniem rc-problemu.

Przyjmijmy P = (A e 7?"| A B l 0}, C = V{D')n {A e Rnl £ A, > l}

oraz cT = (c1, ..., c„), gdzie ct = 1 dla i e I, ct = 0 dla z e W \7.

Przy tak określonych P, C, c wystarczy w (tt) podstawić x = X, aby otrzymać zadanie (ZP).

5.5 Schemat procedury rozwiązującej ZP (U, a) zapiszemy następująco:

1° Oblicz @i dla i = 1, ..., n. Jeśli min0j < +oo, to idź do 2°. W przeciwnym przypadku ZP {U, a) nie ma rozwiązań. Stop.

2° Wyznacz macierz B = (B1} Bn).

3° Rozwiąż zadanie liniowe

Niech A1 będzie rozwiązaniem, k: = 1.

4° Jeśli ź* > 1, to idź do 5°. W przeciwnym przypadku ZP( U, a) nie ma roz- wiązań. Stop.

5° Jeśli Xk e V(D'), to x* = BXk jest rozwiązaniem ZP (U, a). Stop.

W przeciwnym przypadku idź do 6°.

6° Jeśli {A1, ..., Xk} = V(P), to ZP {U, oc) nie ma rozwiązań. Stop.

W przeciwnym przypadku wyznacz wierzchołek Afc+1, Afe+1 e V ( P ) \ {A1, ..., Aft}

Zwiększ k o 1; idź do 4°.

Jedynym elementem powyższej procedury wymagającym odwołania się do metody [3] jest wyznaczenie punktu Afc+1 w 6°.

6. Własności zadania pomocniczego. Ustalmy liniowo niezależny zbiór U =

= {u1, ..., un} c R" i liczbę a taką, że/(«') ^ a dla i = 1, ..., n;f(0) ^ a . W spo- sób opisany w § 5.1 wyznaczamy macierz B i zbiór indeksów I.

L

e m a t

4. Dla każdego x e K (B )\P (B ) zachodzi f(x) ^ a.

D o w ó d. Macierz B określiliśmy tak, że /(Ą ) ^ a, i = 1, ...,« , a ponadto f(@Bi) ^ a dla 0 > 1, i e JV \7. Zbiór 7T (5)\P(5) jest albo wielościanem o wierz- chołkach Bx, ..., 7?„, 0 (jeśli 7 = W), albo nieograniczonym zbiorem wielościennym o wierzchołkach Bt dla / e 7, 0 i promieniach ekstremalnych Bj dla j e N \ I . W pier- wszym przypadku tezę otrzymujemy natychmiast z lematu 1, w drugim zaś z wniosku podanego po lemacie 3. ■

ABX^b9 A$i0 | g / max

/e J

taki, że

i e l i e l

(9)

Poniższe spostrzeżenie wyjaśnia rolę zadań pomocniczych ZP(U, a) w algorytmie problemu (PW).

W n io sek . Jeśli ZP (U, a) nie ma rozwiązań, to w stożku cone U nie istnieje wierz- chołek wielościanu D, któremu odpowiada mniejsza niż a wartość funkcji f.

D o w ó d . Przypomnijmy, że cone U = K(B). Z założenia wynika, że jeśli x e F(D)ncone U, to x e K (B )\P (B ). Z lematu 4 natychmiast otrzymujemy f(x ) ^

^ a. ■

7. Algorytm. Przed podaniem schematu algorytmu omówimy sposób modyfi- kowania rodziny Z oraz wyznaczania ograniczeń a(C7) dla U e Z .

7.1. Jak stwierdziliśmy już w § 4.1, rozwiązując zadanie pomocnicze dla wybra- nego elementu U e Z , szukamy odpowiedzi na pytanie, czy w zbiorze cone U istnieją wierzchołki wielościanu D o mniejszej wartości funkcji / niż a. Jeśli odpowiedź jest negatywna, czyli ZP(£/, a) nie ma rozwiązań, to nowa rodzina Z ' ma postać Z ' = Z \{ U } . W przeciwnym przypadku nie możemy wykluczyć zbioru U (do- kładniej : cone U) z dalszych rozważań i postępujemy wówczas następująco:

Przede wszystkim, jeśli w punkcie x* będącym rozwiązaniem zadania pomocni- czego zachodzi f(x*) < a = f(x), gdzie x jest najlepszym znalezionym dotychczas wierzchołkiem, to przyjmujemy nowe x = x* oraz a = f(x*). Zbiór U usuwamy z rodziny Z wprowadzając do niej zamiast niego zbiory

Uj = {B1} . . ., B j _ lt x * ,B J+1, . . . , B n}

dla

je N (x * ) = {i e N \ A? = ( 5 - 1x*)i > 0},

gdzie Bi są kolumnami macierzy B znalezionej dla U (zob. § 5.1). Zauważmy, że Uj dla fe N (x * ) są liniowo niezależne oraz (_J cone Uj = cone U. Tak więc

je N(x*)

nowa rodzina Z ' ma postać

Z ' = (Z\{C 7})u {t7,|;eiV (x*)}.

7.2. Uzupełnieniem procedury modyfikującej wartość a, wektor x oraz rodzinę Z w każdej iteracji jest szacowanie dolnych ograniczeń wartości fu n k c ji/ w zbiorach V(D)r\cone Uj dla je N (x * ). Mianowicie określmy liczby

ot(Uj) = min ( {/(??Bj)| i e I, i # j }u {/(O), f ( x *)})

dla j e N(x*), przy czym rj = ^ Af jest optymalną wartością funkcji celu w zadaniu

i e l

(ZP).

L

e m a t

5. Jeśli x e V(D)nconeUj, to f(x) ^ a (Uj).

D o w ó d . Ustalmy x e F(D )nconeUj. Istnieją liczby y 1} y n ^ 0 takie, że x = S yiBi + yjX*. Ale x* = BA* = X!

n

Z tego otrzymujemy następujące

i* f=I

(10)

przedstawienie punktu x:

____________ __ n

X = + = ^ ( y i + y j t y B t + y j k f B j = Y a , # , ,

M y /= 1 My i= 1

gdzie

[Yi + yj** dla i

(1) Aj = ty., A? dla i = j .

Ponieważ x* jest optymalnym rozwiązaniem zadania pomocniczego, a x e cone C/ =

= K(B), więc

(2) 2 A* < Z A* =

<e/ f e /

Po prostych rachunkach otrzymujemy z (1) i (2)

(3) +

i e l i * j

Wykonujemy następujące trywialne przekształcenie:

x = 'S^ Y

i b i

+ Y

j

X* = ' ^ y iBi+ ' ^ y iBi + yjX* =

i j t j i e l i f i

l * i i * j

= Y i ~ v (riB‘)+ y jx * + ' } l y ‘B‘-

i e l ' i# /

My M7

Mamy przy tym yjr] ^ 0 dla i e I, i # j , yj > 0 oraz y, ^ 0 dla i £ /, a ponadto z (3)

X I Yifo+ yj < 1 •

My

16/

Wynika z tego, że i g conv({0, x* }u {rjBi\ i e I, i ^ 7})+cone {Bi| i 4 1, i ¥= j}- Ponieważ dla i £ / zachodzi f{@Bt) ^ a dla każdego O ^ 1, to na podstawie wniosku z lematu 3 otrzymujemy

f ( x

) > m in({/(?/5i)| i e / , i # j} u {/(O),/(>*)}). ■

7.3. Znamy już wszystkie elementy opisywanego algorytmu. Poniżej przedsta- wiamy jego pełny schemat.

Krok 0. (Iteracja początkowa) Zgodnie z rozważaniami w § 4.2 wyznacz x° e F(D), a0: = /(*°) (zakładamy dalej, że x° = 0). Z 0: = (Fs(x0)}; a(Fs(*°)): = d, gdzie //jest dolnym ograniczeniem/ na D (dostatecznie mała liczba), k: = 0.

Krok 1. Jeśli Z* = 0 , to jc* jest minimum globalnym. Stop.

W przeciwnym razie oblicz a: = min (a(C/)| U e Z*} . Idź do kroku 2.

Krok 2. Jeśli a ^ a*, to ** jest minimum globalnym. Stop.

(11)

W przeciwnym razie wybierz U e Z k taki, że a (U) = a. Połóż Z k: = {U e Z k\

a(J7) < afc}. Idź do kroku 3.

Krok 3. Rozwiąż zadanie ZP {U, ak). Jeśli nie ma rozwiązania, to idź do kroku 4.

W przeciwnym przypadku idź do kroku 5.

Krok 4. Połóż Z*+1: = Z'k\ { U } , xfc+1: = xk, a*+1: = a*. Zwiększ k o l . Idź do kroku 1.

Krok 5. Niech x* = BA* będzie rozwiązaniem ZP(U, cck). Przyjmij a:*+1: = x*, jeśli f(x*) < (x.k albo xfe+1: = X?, jeśli f(x*) ^ otk; ock+1: = f( x k+1).

Krok 6. Niech N(x*) — (ij A* > 0}. Uf. = {Bk, ..., Ą _ 1} x*, BJ+l, ..., B„}

dla j e N(x*). Oblicz a (Uj) dla j e N(x*) zgodnie z § 7.2. Połóż Z k+ k: = (Zk\ {U})u u {Uj\ je N (x * )} . Zwiększ k o l . Idź do kroku 1.

8. Dowód zbieżności algorytmu.

8.1. Pokażemy najpierw, że algorytm jest skończony, tzn. istnieje k takie, że Z k = 0 lub a ^ a*. Zauważmy, że z konstrukcji rodziny Z k dla k = 0, 1, ... oraz definicji zadania pomocniczego wynika, że każde rozwiązywane w toku działania algorytmu zadanie pomocnicze jest elementem przynajmniej jednego ciągu postaci

ZP(U°, ZP(Us, ocks),

gdzie k 0 = 0, U° e Z 0, UJ+1 = (BJ\ { B Jij} )'j{ x f} dla pewnego ije N (x f), j =

= 0, ...,5 —1, przy czym Bj jest zbiorem kolumn macierzy B dla zadania ZP(UJ, a^), B{ jest kolumną o numerze iJt x* zaś jest rozwiązaniem zadania ZP(UJ, <xkj). Po- nadto kj < kj+1 dla j = 0, 1, ..., 5— 1.

T w ie r d z e n ie 1. Każdy ciąg ZP(C/°, afco), ..., ZP(Us, cck) opisany powyżej ma nie więcej niż V(D) + 1 elementów.

D o w ó d . Pokażemy, że x* # x* dla j < p; j , p = 0, ..., s — 1. Ustalmy p ^ 5—1. Dlay = 0 , l , . . . , p oznaczmy Kj = cone U-7’(przypomnijmy, że cone UJ =

= K(Bj)) oraz Pj = P(BJ), gdzie BJ jest macierzą B dla zadania ZP(UJ, <xk}). Dla 7 = 0 , 1 , . . . , / ? —1 zachodzi inkluzja UJ+1 <= Kj. Z tego otrzymujemy

(1) K 0=> K k => K2 => ... ^ Kp.

Można teraz pokazać (łatwy dowód rachunkowy wykorzystujący wprost defi- nicję zbiorów Pj,Pj+x ,K J+1 oraz związki (c) z § 5.3 pomijamy), że:

(2) KJ+1\ P J+1 o KJ+1\ P j , j = 0, 1, ...,/? —1.

Z (1) i (2) wynika następująca zależność:

(3) K ,\ P J+l => Kp\ P j , 7 = 0 , 1 , . . . , / ? —1.

Przypuśćmy, że dla pewnego j < p mamy x* = x*. Wówczas z konstrukcji zadania pomocniczego otrzymujemy

(4) x* e K pn P p.

(12)

Zauważmy jednak, że z definicji zbiorów Kj+ i * Pj+1 oraz z konstrukcji macierzy B j+1 wynika

(5) x f e K J+ 1 \ P J+1.

Otrzymujemy więc x* e Kp\ P J+1, a ponieważ na podstawie (3) Kp\ P j +1 c: Kp\ P p, to ostatecznie wynika z tego

(6) x ? t P p,

co jest oczywiście sprzeczne z (4). Dlatego musi być x f # **.

Pokazaliśmy w ten sposób, że dla każdegop = 1, , j — 1 i każdego j — 0, 1, ...

...,p — 1 zachodzi x* # x p . Ponieważ x* e V(D), j = 0, 1, ..., 1, a zbiór F(D) jest skończony, to otrzymujemy z tego s < V(D). m

8.2. W n io sek . Algorytm jest skończony, tzn. istnieje k takie, że a ^ a k lubZk = 0 . D o w ó d . Każde zadanie pomocnicze rozwiązywane podczas stosowania al- gorytmu należy do pewnego ciągu opisanego w § 8.1. Liczba takich ciągów jest skończona, każdy bowiem zbiór postaci U j+1 możemy otrzymać z Uj dla danego cx.kj i wyznaczonego x* na co najwyżej n sposobów. Wynika z tego i z twierdzenia 1, że wszystkich ciągów jest nie więcej niż nM, gdzie M = V(jD), a więc skończona liczba. Konsekwencją powyższego jest to, że algorytm zawsze prowadzi do rozwią- zywania skończonej liczby zadań pomocniczych. Jeżeli więc dla każdego k otrzy- mamy a < a*, to istnieje k takie, że Z k = 0 .

8.3. Pozostaje jedynie pokazać, że ostatni wierzchołek x k wyznaczony przez algorytm jest rozwiązaniem optymalnym zadania (PW). Rozważymy dwa możliwe przypadki zakończenia algorytmu opisane w krokach 1 i 2. Wprowadźmy w tym celu zbiory T'k,T'k' i Tk określone następująco:

Tk = U

( Zj - Z j) ,

I=o

przy czym Z'- jest zbiorem zdefiniowanym w kroku 2 algorytmu;

Tk = zbiór takich układów U, że zadanie ZP (U, cnj) było rozwiązywane dla pewnego j < k, ale nie miało rozwiązań;

Tk = Ti u T*".

Zauważmy, że dla każdego k — 1, 2, ... zachodzi U cone U =3 D.

Ue Tk^jZk

T w ie r d z e n ie 2. Ostatni wyznaczony przez algorytm punkt xk jest rozwiązaniem optymalnym zadania (PW).

D o w ó d . Z wniosku w § 8.2 wiemy, że algorytm jest skończony. Niech k będzie numerem ostatniej iteracji. Sprowadza się ona do sprawdzenia, że Z k = 0 lub a ^ a*. Musimy pokazać, że jest rozwiązaniem zadania (PW).

Niech x e V(D) będzie dowolnym wierzchołkiem. Istnieje U e T k^JZk takie, że

x e cone U. Jeśli U e Tk = Tku Tk , to zachodzi jeden z następujących przypadków:

(13)

(a) U e Z j \ Z j dla pewnego j < k; oznacza to, że a.(U) ^ ctj, a ponieważ ccj ^ afe oraz f(x) ^ ct(U), więc f(x) ^ a* = f( x k);

(b) ZP(C/, aj) było rozwiązywane dla pewnego j < k, przy czym nie miało rozwiązania; wynika z tego, że f(x ) ^ aj (zob. wniosek w § 6.2), ponieważ jednak ccj ^ <xk, to znowu otrzymujemy f(x ) ^ <xk = f( x k).

Jeśli natomiast U e Z k (czyli Z k ^ 0 ), to mamy do czynienia z przypadkiem a ^ a* w iteracji Ar-tej; wiemy jednak, że cn{U) ^ a i f(x) ^ a(t/). Z tego wynika, że/(x) ^ a otk = f( x k).

W ten sposób otrzymaliśmy następujące stwierdzenie:

(V xeF(Z >))/(* )» /(* * ).

Z lematu 1 wynika teraz bezpośrednio, że x k jest rozwiązaniem optymalnym zadania (PW). ■

Prace cytowane

[1] S. K r y ń s k i , Algorytm programowania wklęsłego, Prace IOK PAN 31, Warszawa 1976.

[2] —, Minimization o f a concave functions under linear constrains (Modification of Tuy's method), w: Survey of Mathematical Programming, Proceedings (ed. A. Prekopa), Budapest 1976.

[3] M. A. P o 11 a t s c h e k, B. A v i - 11 z h a k,

Sorting feasible basie Solutions o f a linear program,

w: Development in Operations Research (ed. B. Avi-Itzhak), Gordon&Breach, 1970.

[4] R. T. R o c k a f e 11 a r, Convex analysis, Princeton 1970.

[5] [H. T u y], X . T y ii, Bozuymoe npozpaMMupoeauue npu AuueuHbix oepaHuneuunx, JJokji.

AH CCCP 159, 1 (1964).

[6] P. B. Z w a r t , Nonlinear programming: Counterexamples to two global optimization algorithms,

Operations Res. 21 (1973).

Cytaty

Powiązane dokumenty

■ Na bramkach NOR (realizujące funkcje zanegowanej sumy) można zrealizować dowolną funkcję boolowską. ■ Na bramkach NAND (realizujące funkcje zanegowanego iloczynu)

W nawiązaniu do naszego artykułu poglądowego dotyczącego postrzegania iluzji wzrokowych osób cierpiących na schizofrenię [1] oraz często spotykanego w internecie stwierdzenia,

W metodzie interpolacji Powella korzystamy z lokalnego przybliżenia funkcji wielomianem drugiego stopnia (wykład).. Wykorzystamy tę zależność do znalezienia minimum/maksimum

Każda formuła (języka MRZ), która jest prawdziwa w klasie wszystkich takich struktur modelowych, w których relacja alternatywności jest relacją równoważnościową, jest te-

Ile może wynosić miara zewnętrzna zbioru

 metoda graficzna – tablic Karnaugha (stosuje się ją do minimalizacji funkcji maksymalnie 6 zmiennych). Wiersze i kolumny tablicy opisane są zmiennymi wejściowymi funkcji

2. Dane są dwie funkcje:  y 1  =  (1,2,3,6)    i    y 2

dzimy następujące oznaczenia: Przez CT oznaczymy produkt tichonowski przestrzeni r dwupunktowych. Otoczenia w przestrzeni Cr są określone w sposób następujący: Dla