Comments
Description
Transcript
Monica Gazzetta
UNIVERSITÀ DEGLI STUDI DI FERRARA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Specialistica in MATEMATICA IL LEMMA DI FARKAS E LE CONDIZIONI DI KARUSH-KUHN-TUCKER NELL’OTTIMIZZAZIONE LINEARE E NON LINEARE Relatori: Laureanda: Chiar.mo Prof. Josef Eschgfäller Monica Gazzetta Dott.ssa Silvia Bonettini Anno Accademico 2008-2009 Indice Introduzione 3 I. IL METODO DEL SIMPLESSO 1. Il lemma di Farkas 2. Programmi lineari in forma standard 13 3. Programmi lineari in forma normale 18 4. Il metodo del simplesso 26 5. Geometria elementare degli insiemi convessi 31 II. 5 ALCUNE APPLICAZIONI 6. Il separatore di Bennett-Mangasarian 37 7. Grafi 40 8. Flussi in un grafo diretto 44 III. 9. OTTIMIZZAZIONE NON LINEARE Il cono tangente 54 10. Le condizioni di Karush-Kuhn-Tucker 57 11. Il caso generale 60 12. Restrizioni lineari 64 13. Restrizioni convesse 65 Bibliografia 69 1 2 Introduzione Lo scopo di questa tesi è quello di presentare ed approfondire (anche dal punto di vista geometrico ed algebrico) alcuni concetti basilari della programmazione lineare e non lineare che sono il lemma di Farkas e le condizioni di Karush-Kuhn-Tucker (dette anche condizioni di KKT). In questo lavoro inoltre, è stato descritto un algoritmo di risoluzione per problemi di programmazione lineare, il metodo del simplesso, e sono state presentate alcune sue possibili applicazioni pratiche. Il lemma di Farkas è l’argomento del primo capitolo ed è forse il più importante teorema di alternativa per sistemi lineari e viene inoltre utilizzato in numerosi contesti come la programmazione lineare e non lineare, la teoria dei sistemi di disequazioni lineari, i modelli economici multisettoriali e la teoria dei giochi. Questo lemma afferma che il sistema Ax = b ( dove A è una matrice m × n e x e b sono vettori rispettivamente appartenenti ad Rm ed Rn ) con la condizione x ≥ 0 ammette soluzione se e solo se non la ammette il sistema costituito dalle due condizioni yA ≥ 0 e yb < 0 con y ∈ Rm . Grazie al lemma di Farkas, si può dimostrare, sotto opportune ipotesi, che se un punto è soluzione di un problema di programmazione in generale non lineare, allora in tale punto sono soddisfatte le condizioni di KKT. Le condizioni di Karush-Kuhn-Tucker sono descritte nel capitolo 10 e costituiscono la parte fondamentale della terza sezione della tesi. Esse sono una generalizzazione del metodo dei moltiplicatori di Lagrange applicato a problemi in cui sono presenti anche vincoli di disuguaglianza e rappresentano lo scheletro della programmazione non lineare costituendo condizioni necessarie per la soluzione di un problema di programmazione non lineare in cui i vincoli soddisfano opportune condizioni di regolarità dette condizioni di qualificazione dei vincoli. Esempi di queste qualificazioni che vengono trattate nella tesi sono il requisito di indipendenza lineare dei vincoli e il requisito di Mangasarian-Fromovitz. Per problemi di programmazione lineare invece, le condizioni di KKT sono sia necessarie che sufficienti. Queste questioni vengono descritte nei capitoli 11, 12 e 13 dove sono presenti rispettivamente vincoli generici, vincoli lineari e vincoli convessi. Nel capitolo 9 diamo alcune definizioni che caratterizzano le condizioni di KKT dal punto di vista geometrico. La prima parte della tesi riguarda la teoria e l’implementazione del metodo del simplesso. Questo algoritmo è stato inventato dal matematico e statistico statunitense George B. Dantzig nel 1947 e rappresenta ancora oggi uno dei metodi più famosi e più efficaci nella risoluzione di problemi di programmazione lineare, problemi in cui si cerca di massimizzare o minimizzare una funzione lineare sotto opportuni vincoli di uguaglianza e disuguaglianza anch’essi lineari. L’insieme di definizione dei vincoli è detto insieme ammissibile ed è un poliedro convesso. Se il problema di programmazione lineare am3 mette una soluzione ottimale, questa è anche un vertice del poliedro (teorema fondamentale della programmazione lineare, cap. 3). Queste considerazioni geometriche sono alla base del metodo inventato da Dantzig, la cui idea principale può quindi essere cosı̀ descritta: si determina un vertice iniziale del poliedro e si decide se tale punto è una soluzione ottima; se non lo è si determina in modo adeguato un nuovo vertice del poliedro e se ne testa l’ottimalità e cosı̀ via. L’algoritmo del simplesso si applica in una prima formulazione ai programmi lineari nella forma f x = max (risp. min), x ≥ 0, Ax = b (forma normale) oggetto del capitolo 3. Questo tuttavia non è limitativo perchè, come viene descritto nel cap. 2, ogni altro programma lineare può essere ricondotto alla forma normale utilizzando opportune variabili di slack o di surplus. Gli aspetti teorici del metodo del simplesso vengono approfonditi nel capitolo 3 mentre l’algoritmo tradotto in Matlab (o Octave) è presentato nel quarto capitolo. Nel capitolo 5 vengono invece descritte alcune proprietà degli insiemi convessi. Nella seconda parte della tesi esponiamo alcuni possibili campi di applicazione del metodo del simplesso: la teoria dei grafi e dei flussi, risp. capitoli 7 e 8, e il separatore di Bennett-Mangasarian nel cap. 6. In quest’ultimo in particolare si cerca di far vedere come il problema di trovare un iperpiano che separa due insiemi di punti distinti possa essere ricondotto ad un problema di programmazione lineare. È un risultato che viene ad esempio utilizzato nella ricerca sperimentale riguardante la diagnosi e la prognosi del carcinoma mammario. È opportuno ricordare che oltre al metodo del simplesso esistono altri metodi altrettanto efficaci per la risoluzione di problemi di programmazione lineare e non lineare: i metodi a punto interno. Questi dal punto di vista geometrico si differenziano notevolmente dal metodo del simplesso in quanto la ricerca della soluzione ottimale non viene effettuata esaminando i vertici del poliedro ammissibile ma rimanendo all’interno dell’insieme di definizione dei vincoli. I metodi a punto interno discendono dalla condizioni di KKT opportunamente modificate (in modo da rimanere sempre all’interno della regione ammissibile) a cui viene applicato il metodo di Newton. 4 I. IL METODO DEL SIMPLESSO 1. Il lemma di Farkas Situazione 1.1. n, m ∈ N + 1. Definizione 1.2. Usiamo le seguenti notazioni: Rnm := insieme delle matrici reali con n righe ed m colonne Rm := R1m = insieme dei vettori riga reali con m coefficienti Rn+ := {x ∈ Rn | x ≥ 0} R+ m := {f ∈ Rm | f ≥ 0} R+ := [0, ∞) n m Definizione 1.3. Siano A ∈ Rm n , X ⊂ R , U ⊂ Rm , b ∈ R , f ∈ Rn . Definiamo allora: AX := {Ax | x ∈ X} U A := {uA | u ∈ U } (AX = b) := {x ∈ X | Ax = b} (U A = f ) := {u ∈ U | uA = f } (AX ≤ b) := {x ∈ X | Ax ≤ b} (U A ≥ f ) := {u ∈ U | uA ≥ f } In modo analogo sono definiti (AX ≥ b), (U A ≤ f ), ecc. Avremo quindi ad esempio (ARn+ = b) = {x ∈ Rn+ | Ax = b}. Nota 1.4. Useremo le seguenti notazioni e formule ben note del calcolo matriciale: i (1) Per A ∈ Rm n denotiamo con A la i-esima riga, con Aj la j-esima colonna di A. n (2) Per A ∈ Rm n , B ∈ Rs abbiamo allora (AB)ij = Ai Bj (AB)i = Ai B (AB)j = ABj AB = n X Aα B α α=1 Abbiamo quindi in particolare, per x ∈ Rn ed f ∈ Rm , 5 Ax = n X Aα xα α=1 fA = m X fα Aα α=1 (3) Con kx, yk = xt y risp. kf, gk = f gt denoteremo il prodotto scalare di x, y ∈ Rn risp. f, g ∈ Rm . (4) Per vettori v1 , ..., vk in uno spazio vettoriale sia SV(v1 , ..., vk ) il sottospazio vettoriale generato da questi vettori. Similmente per un sottoinsieme X denoteremo con SV(X) il sottospazio vettoriale generato da X . (5) Per X ⊂ Rn sia X ⊥ := {v ∈ Rn | kx, vk = 0 per ogni x ∈ X}. X ⊥ è un sottospazio vettoriale di Rn , anche quando X stesso non è un sottospazio vettoriale. (6) W sia un sottospazio vettoriale di Rn . Allora: dim W + dim W ⊥ = n W ⊥⊥ = W L ⊥ Rn = W W (7) Per vettori v1 , ..., vk in uno spazio vettoriale reale sia POS(v1 , ..., vk ) := {λ1 v1 + ... + λk vk | λ1 , ..., λk ∈ R+ }. Similmente per un sottoinsieme X sia POS(X) := {λ1 x1 + ... + λk xk | k ≥ 1, λi ∈ R+ , xi ∈ X per i = 1, ..., k}. Osservazione 1.5. Sia A ∈ Rm n . Allora: (1) ARn = SV(A1 , ..., An ). (2) ARn+ = POS(A1 , ..., An ). Dimostrazione. (1) Sia x ∈ Rn . Allora Ax = n X Ak xk ∈ SV(A1 , ..., An ) k=1 e viceversa. Il punto (2) si dimostra in modo analogo considerando x ∈ Rn+ . m Lemma 1.6. Siano A ∈ Rm n e b ∈ R . Allora sono equivalenti: (1) b ∈ ARn . (2) (Rm A = 0)b = 0. Dimostrazione. (1) =⇒ (2): Sia f ∈ Rm con f A = 0. Poiché per ipotesi b ∈ ARn , esiste x ∈ Rn tale che b = Ax. Allora f b = f Ax = 0. (2) =⇒ (1): Sia b ∈ / ARn = SV(A1 , ..., An ) =: W . Per la nota 1.4 b = w + y con w ∈ W e y ∈ W ⊥ . Necessariamente y 6= 0 perché b 6∈ W . Abbiamo 6 kb, yk = kw + y, yk = kw, yk + ky, yk = ky, yk = 6 0 Inoltre kAj , yk = 0 per ogni j perché y ∈ W ⊥ . Con f := y t abbiamo allora f A = 0 ed f b 6= 0. Definizione 1.7. V sia uno spazio vettoriale reale ed x, y ∈ V . Poniamo allora [x, y] := x + [0, 1](y − x) = {x + t(y − x) | t ∈ [0, 1]} Un sottoinsieme X ⊂ V si dice convesso se per ogni x, y ∈ X si ha [x, y] ⊂ X . Per t ∈ R sia [x, y]t := x + t(y − x). Osservazione 1.8. V e W siano spazi vettoriali reali ed x, y ∈ V . ϕ : V → W sia un’applicazione affine. Allora: (1) ϕ([x, y]t ) = [ϕ(x), ϕ(y)]t per ogni t ∈ R. (2) ϕ([x, y]) = [ϕ(x), ϕ(y)]. (3) Se X è un sottoinsieme convesso di V , allora ϕ(X) è un sottoinsieme convesso di W . Dimostrazione. (1) Per ipotesi esistono un’applicazione lineare ϕ0 : V −→ W e un vettore b ∈ W tali che ϕ = ϕ0 + b. Abbiamo allora ϕ(x + t(y − x)) = ϕ0 (x + t(y − x)) + b = ϕ0 (x) + tϕ0 (y) − tϕ0 (x) + b = ϕ0 (x) + b + t(ϕ0 (y) + b − ϕ0 (x) − b) = ϕ(x) + t(ϕ(y) − ϕ(x)) = [ϕ(x), ϕ(y)]t . (2) Dal punto (1) abbiamo direttamente ϕ([x, y]) ⊂ [ϕ(x), ϕ(y)]. Sia z ∈ [ϕ(x), ϕ(y)], ad esempio z = [ϕ(x), ϕ(y)]t con t ∈ [0, 1]. Allora z = ϕ([x, y]t ) ∈ ϕ([x, y]). (3) Siano u = ϕ(x) e v = ϕ(y) con x, y ∈ X . Allora [u, v] = [ϕ(x), ϕ(y)] = ϕ([x, y]) ⊂ ϕ(X). Nell’ultima inclusione abbiamo sfruttato il fatto che [x, y] ⊂ X perché X è convesso. Lemma 1.9. v1 , ..., vk siano vettori linearmente indipendenti di Rm . Allora l’insieme POS(v1 , ..., vk ) è chiuso. Dimostrazione. Possiamo trovare vk+1 , ..., vm tali che v1 , ..., vk , vk+1 , ..., vm sia una base di Rm . Per ogni x ∈ Rm esistono λ1 (x), ..., λm (x) ∈ R tali che x = λ1 (x)v1 + ... + λm (x)vm . Le funzioni λi : Rm → R che cosı̀ otteniamo sono continue. Perciò l’insieme POS(v1 , ..., vk ) = (λ1 ≥ 0, ..., λk ≥ 0, λk+1 = 0, ..., λm = 0) è chiuso. Proposizione 1.10 (lemma di Carathéodory). Sia X ⊂ Rm e SV(X) 6= 0. Sia d := dim SV(X). Allora: (1) Ogni punto di POS(X) è combinazione lineare a coefficienti non negativi di al massimo d punti linearmente indipendenti di X . (2) Sia D la famiglia di tutti gli insiemi che consistono di esattamente d vettori linearmente indipendenti di X . [ Allora POS(X) = POS(D). D∈D 7 Dimostrazione. (1) Sia v ∈ POS(X). Esistono quindi λ1 , ..., λk ≥ 0 ed x1 , ..., xk ∈ X tali che v = λ1 x1 + ... + λk xk . Scegliamo k minimale (ciò implica λj > 0 per ogni j ) e supponiamo per assurdo che k > d. Siccome per ipotesi dim SV(X) = d, i vettori x1 , ..., xk devono essere linearmente dipendenti, perciò esistono α1 , ..., αk ∈ R non tutti nulli tali che α1 x1 + ... + αk xk = 0. αj α1 Possiamo assumere che α1 > 0 e che ≥ per ogni j . Ciò implica λ1 λj k X αj αj λj ≥ (λj − λ1 per ogni j . Abbiamo però λ1 )xj = v . α1 α1 j=1 In questa rappresentazione tutti i coefficienti sono ≥ 0 e il primo è nullo, in contraddizione alla minimalità di k. [ (2) Ciò implica anche che POS(X) ⊂ POS(D) perché per il punto D∈D (1) per ogni elemento x ∈ POS(X) esistono elementi x1 , ..., xk ∈ X linearmente indipendenti con x ∈ POS(x1 , ..., xk ) e k ≤ d; se k < d, allora possiamo trovare xk+1 , ..., xd tali che {x1 , ..., xk , xk+1 , ..., xd } =: D ∈ D con naturalmente ancora x ∈ POS(D). Viceversa POS(D) ⊂ POS(X) per ogni D ∈ D . Proposizione 1.11. Siano v1 , ..., vk ∈ Rm . Allora l’insieme POS(v1 , ..., vk ) è chiuso. = {v1 , ..., vk }. D sia definito come nella prop. Dimostrazione. Sia X[ 1.10. Allora POS(X) = POS(D). Per il lemma 1.9 per ogni D∈D D ∈ D l’insieme POS(D) è chiuso. Nel nostro caso D è un insieme finito e quindi anche POS(X) è chiuso. m n Corollario 1.12. Sia A ∈ Rm n . Allora l’insieme AR+ è chiuso in R . Dimostrazione. Per l’oss. 1.5 abbiamo ARn+ = POS(A1 , ..., An ). L’enunciato segue dalla proposizione 1.11. Osservazione 1.13. L’enunciato del cor. 1.12 non è banale, perché in genere un’applicazione lineare Rn −→ Rm non trasforma chiusi in chiusi. Un esempio è la proiezione sulla prima coordinata R2 → R che trasforma l’iperbole {x | x1 x2 = 1}, un insieme chiuso, in R \ 0. Osservazione 1.14. X sia un sottoinsieme chiuso e non vuoto di Rm ed y ∈ Rm . Allora esiste un punto p ∈ X che possiede distanza minimale da y . Dimostrazione. Siccome X 6= ∅, possiamo scegliere un punto (arbitrario) z ∈ X . Allora l’insieme A =: {a ∈ X | |a−y| ≤ |z−y|} è compatto e non vuoto, per cui la funzione continua |a − y| : A −→ R assume a un minimo in qualche punto p. Lemma 1.15 (legge del parallelogramma). Siano x, y ∈ Rm . Allora 8 |x + y|2 + |x − y|2 = 2|x|2 + 2|y|2 Dimostrazione. |x + y|2 + |x − y|2 = |x|2 + |y|2 + 2kx, yk + |x|2 + |y|2 − 2kx, yk = 2|x|2 + 2|y|2 . Teorema 1.16. X sia un sottoinsieme chiuso, convesso e non vuoto di Rm ed y ∈ Rm . Allora esiste un punto p ∈ X che possiede distanza minimale da y . p è univocamente determinato. Dimostrazione. (1) L’esistenza è stata dimostrata nell’oss.1.14. (2) Dimostriamo l’unicità . Sia q ∈ X tale che |p − y| = |q − y|. Allora r := p+q 2 ∈ X perchè X è convesso. Inoltre |r − y|2 = |p − y|2 − 14 |p − q|2 (*) Infatti per il lemma 1.15 applicato a x = p − y e y = q − y risulta p+q − y|2 2 = |(p − y) + (q − y)|2 4|r − y|2 = 4| = 2|p − y|2 + 2|q − y|2 − |p − q|2 = 4|p − y|2 − |p − q|2 dove abbiamo utilizzato l’ipotesi |p−y| = |q−y|. Ciò mostra l’uguaglianza (*). Se fosse p 6= q , risulterebbe |r − y| < |p − y| e p non avrebbe piú distanza minimale da y . L’uguaglianza (*) e la relazione |r−y|2 < |p−y|2 per p 6= q sono anche evidenti dalla figura. q r y p Definizione 1.17. Nella situazione del teorema 1.16 il punto p si chiama la proiezione di y su X . È immediato che y = p se e solo se y ∈ X . Definizione 1.18. Per p, v ∈ Rm poniamo: H(p, v) := {x ∈ Rm | kx − p, vk = 0} O(p, v) := {x ∈ Rm | kx − p, vk ≤ 0} SO(p, v) := {x ∈ Rm | kx − p, vk < 0} Se v 6= 0, allora H(p, v) è l’iperpiano ortogonale a v passante per p, O(p, v) l’insieme dei punti che, riferendoci a p + v , si trovano oltre o su questo iperpiano, O(p, −v) l’insieme dei punti che non si trovano oltre questo iperpiano, cioè dalla stessa parte di p + v . SO significa strettamente oltre. 9 Proposizione 1.19. X sia un sottoinsieme chiuso, convesso e non vuoto di Rm ed y ∈ Rm . Per un punto p ∈ X sono allora equivalenti: (1) p è la proiezione di y su X . (2) X ⊂ O(p, y − p). Dimostrazione. (1) =⇒ (2): Siano p la proiezione di y su X ed x ∈ X . Allora per ogni t ∈ [0, 1] il punto p + t(x − p) ∈ X perchè X è convesso. Per la definizione di p abbiamo |y − p|2 ≤|y − (p + t(x − p))|2 = |(y − p) − t(x − p)|2 = 2 2 . 2 |y − p| + t |x − p| − 2tky − p, x − pk ovvero 2tky − p, x − pk ≤ t2 |x − p|2 Per ogni t ∈ (0, 1] abbiamo perciò 2ky − p, x − pk ≤ t|x − p|2 . Ciò è possibile solo se ky − p, x − pk ≤ 0. (2) =⇒ (1): Siano X ⊂ O(p, y − p) ed x ∈ X . Allora ky − p, p − xk ≥ 0 e quindi |y − x|2 = |y − p + p − x|2 = |y − p|2 + |p − x|2 + 2ky − p, p − xk ≥ |y − p|2 Lemma 1.20. X sia un sottoinsieme chiuso, convesso e non vuoto di Rm ed y ∈ Rm . p sia la proiezione di y su X . Allora: (1) X ⊂ O(p + t(y − p), y − p) per ogni t ≥ 0. (2) In particolare X ⊂ O(y, y − p). (3) Se y ∈ / X , allora X ⊂ SO(y, y − p). Dimostrazione. Sia x ∈ X . Allora per t ≥ 0 si ha k(x − p) − t(y − p), y − pk = kx − p, y − pk − t|y − p|2 ≤ 0 essendo per la prop 1.19 kx − p, y − pk ≤ 0. Sia ora y ∈ / X . Allora y 6= p e quindi per t = 1 otteniamo kx − y, y − pk = kx − p, y − pk − |y − p|2 < 0. Lemma 1.21. X sia un sottoinsieme chiuso, convesso e non vuoto di Rm ed y ∈ Rm \ X . p sia la proiezione di y su X ed y ∗ := p+y 2 . Allora: y ∈ SO(y ∗ , p − y) X ⊂ SO(y ∗ , y − p) 10 Dimostrazione. (1) 2ky − y ∗ , p − yk = 2ky − p+y , p − yk = −ky − p, y − pk < 0 2 (2) Sia x ∈ X . Allora p+y , y − pk 2 = kx − p, y − pk + kx − y, y − pk < 0 2kx − y ∗ , y − pk = 2kx − Infatti per la prop. 1.19 abbiamo kx − p, y − pk ≤ 0, mentre dal lemma 1.20 segue che kx − y, y − pk < 0. X p y Corollario 1.22. X sia un sottoinsieme chiuso, convesso e non vuoto di Rm ed y ∈ Rm \ X . p sia la proiezione di y su X . Sia ancora y ∗ := p+y 2 . Allora ky, y − pk > ky ∗ , y − pk > kx, y − pk per ogni x ∈ X . Dimostrazione. Sia x ∈ X . Per il lemma 1.21 abbiamo ky − y ∗ , y − pk > 0 > kx − y ∗ , y − pk ovvero ky, y − pk − ky ∗ , y − pk > 0 > kx, y − pk − ky ∗ , y − pk e quindi ky, y − pk > ky ∗ , y − pk > kx, y − pk Corollario 1.23. X sia un sottoinsieme chiuso e convesso di Rm ed y ∈ Rm \ X . Allora esistono α ∈ R ed f ∈ Rm tali che f y > α > f x per ogni x ∈ X . Sostituendo f con −f ed α con −α possiamo naturalmente anche ottenere f y < α < f x per ogni x ∈ X . Dimostrazione. L’enunciato è banale per X = ∅ e segue altrimenti dal corollario 1.22, se poniamo f := (y − p)t ed α := ky ∗ , y − pk Osservazione 1.24. Sia X ⊂ Rm . Allora POS(X) è convesso. Dimostrazione. Siano u, v ∈ POS(X). Allora esistono λ1 , ..., λk , µ1 , ..., µl ∈ R+ e x1 , ..., xk , y1 , ..., yl ∈ X tali che u = λ1 x1 + ... + λk xk e v = µ1 y1 + ... + µl yl . Sia t ∈ [0, 1]. Allora 11 u + t(v − u) = λ1 x1 + ... + λk xk + tµ1 y1 + ... + tµl yl − tλ1 x1 − ... − tλk xk = (1 − t)λ1 x1 + ... + (1 − t)λk xk + tµ1 y1 + ... + tµl yl I coefficienti (1 − t)λi e tµj sono tutti non negativi, per cui vediamo che u + t(v − u) ∈ POS(X). n Corollario 1.25. Sia A ∈ Rm n . Allora AR+ è convesso. Dimostrazione. Ciò segue dall’oss. 1.24 perché ARn+ = POS(A1 , ..., An ) per l’oss. 1.5. m Teorema 1.26 (lemma di Farkas). Siano A ∈ Rm n e b ∈ R . Allora sono equivalenti: (1) b ∈ ARn+ . (2) (Rm A ≥ 0)b ≥ 0. Dimostrazione. (1) =⇒ (2): Siano x ∈ Rn+ ed f ∈ Rm tali che b = Ax ed f A ≥ 0. Allora f b = f Ax ≥ 0. (2) =⇒ (1): Sia b ∈ / ARn+ . Dai corollari 1.12 e 1.25 sappiamo che ARn+ è un sottoinsieme convesso, chiuso e non vuoto di Rm ; quindi per il corollario 1.23 esistono α ∈ R e f ∈ Rm tali che f b < α < f Ax per ogni x ∈ Rn+ . Ciò deve valere in particolare per x = 0 e questo implica α < 0 e quindi anche f b < 0. D’altra parte però f A ≥ 0 e ciò è in contraddizione con l’ipotesi (2). Infatti sia ad esempio f Aj < 0. Siccome x := tAj = Atδj ∈ ARn+ , abbiamo α < f tAj = tf Aj per ogni t ≥ 0, ma ciò non è possibile perché lim tf Aj = −∞. t−→∞ m Osservazione 1.27. Siano A ∈ Rm n e b ∈ R . Denotiamo con δ la n matrice identica in Rn . Allora: (1) (A δ)Rn+ = {Ax + u | x ∈ Rn+ , u ∈ Rm + }. (2) (ARn+ ≤ b) 6= ∅ ⇐⇒ b ∈ (A δ)Rn+ . m Proposizione 1.28. Siano A ∈ Rm n e b ∈ R . Allora sono equivalenti: (1) (ARn+ ≤ b) 6= ∅. (2) (R+ m A ≥ 0)b ≥ 0. Dimostrazione. (1) =⇒ (2): Siano x ∈ Rn+ ed f ∈ R+ m tali che Ax ≤ b ed f A ≥ 0. Allora f b ≥ f Ax ≥ 0. (2) =⇒ (1): Supponiamo che (ARn+ ≤ b) = ∅. Per l’oss. 1.27 ciò significa che b ∈ / (A δ)Rn+ . Per il teorema 1.26 possiamo quindi trovare un f ∈ Rm tale che f (A δ) ≥ 0 ed f b < 0. Ma f (A δ) = (f A f ) ≥ 0 è equivalente alle due condizioni f A ≥ 0 ed f ≥ 0, cioè ad f ∈ (R+ m A ≥ 0). Adesso però f b < 0 è in contrasto con la nostra ipotesi. 12 2. Programmi lineari in forma standard m Situazione 2.1. n, m ∈ N + 1 ed A ∈ Rm n , f ∈ Rn , b ∈ R , quando non indicato diversamente. Definizione 2.2. Un programma lineare di massimizzazione in forma standard è un problema di ottimizzazione della forma f x = max x≥0 Ax ≤ b con A, f, b come nella situazione 2.1. Si cercano quindi vettori non negativi x ∈ Rn per i quali f x è massimale sotto il vincolo Ax ≤ b. Denotiamo con (f (ARn+ ≤ b) = max) l’insieme degli x ∈ Rn+ (detti soluzioni del problema) con Ax ≤ b in cui f x assume un massimo su (ARn+ ≤ b), mentre indichiamo con f (ARn+ ≤ b) = max (senza parentesi esterne) il problema stesso. Gli elementi di (ARn+ ≤ b) si chiamano punti ammissibili del problema. Definizione 2.3. Un programma lineare di minimizzazione in forma standard è un problema di ottimizzazione della forma ub = min u≥0 uA ≥ f con A, f, b come nella situazione 2.1. Si cercano quindi vettori riga non negativi u ∈ Rm per i quali ub è minimale sotto il vincolo uA ≥ f . + Denotiamo con ((R+ m A ≥ f )b = min) l’insieme degli u ∈ Rm (detti soluzioni del problema) con uA ≥ f in cui ub assume un minimo su + (R+ m A ≥ f ), mentre indichiamo con (Rm A ≥ f )b = min (senza parentesi esterne) il problema stesso. Gli elementi di (R+ m A ≥ f ) si chiamano punti ammissibili del problema duale. Osservazione 2.4. I problemi f (ARn+ ≤ b) = max e (R+ m A ≥ f )b = min si determinano a vicenda e si dicono uno il duale dell’altro. Lemma 2.5. Siano x una soluzione del problema f (ARn+ ≤ b) = max ed u una soluzione del problema (R+ m A ≥ f )b = min. Allora f x ≤ uAx ≤ ub. Dimostrazione. Per ipotesi Ax ≤ b e f ≤ uA con x ≥ 0 e f ≥ 0, per cui f x ≤ uAx ≤ ub. Proposizione 2.6. Siano x ∈ (ARn+ ≤ b) ed u ∈ (R+ m A ≥ f ) tali che f x ≥ ub. 13 Allora x è una soluzione di f (ARn+ ≤ b) = max ed u una soluzione di (R+ m A ≥ f )b = min. Dimostrazione. Siano y ∈ (ARn+ ≤ b) e v ∈ (R+ m A ≥ f ). Per il lemma 2.5 abbiamo f y ≤ ub ≤ f x ≤ vb. Proposizione 2.7. (1) Sia (ARn+ ≤ b) = ∅. Allora o (R+ mA ≥ f ) = ∅ oppure l’insieme (R+ A ≥ f )b non è limitato inferiormente. Il problema m (R+ A ≥ f )b = min quindi non possiede soluzione. m n (2)Sia (R+ m A ≥ f ) = ∅. Allora o (AR+ ≤ b) = ∅ oppure l’insieme n f (AR+ ≤ b) non è limitato superiormente. Il problema f (ARn+ ≤ b) = max quindi non possiede soluzione. Dimostrazione. Dimostriamo solo il primo enunciato essendo il secondo il suo duale. Sia (ARn+ ≤ b) = ∅. Per la prop. 1.28 esiste quindi un elemento g ∈ R+ m tale che gA ≥ 0 e gb < 0. + Se (R+ m A ≥ f ) = ∅ è chiaro che il problema (Rm A ≥ f )b = min non possiede soluzione. + Assumiamo quindi che (R+ m A ≥ f ) 6= ∅. Sia ad esempio u ∈ Rm tale che uA ≥ f . Allora per ogni λ ≥ 0 si ha che u + λg ≥ 0 e (u + λg)A = uA + λgA ≥ f , per cui u + λg ∈ (R+ m A ≥ f ). Siccome gb < 0, si ha che lim (u + λg)b = lim (ub + λgb) = −∞. λ−→∞ λ−→∞ Osservazione 2.8. Se il problema f (ARn+ ≤ b) = max possiede una soluzione x, allora il valore max f (ARn+ ≤ b) = f x è ben definito. Similmente, se il problema (R+ m A ≥ f )b = min possiede una soluzio+ ne u, allora il valore min(Rm A ≥ f )b = ub è ben definito. Teorema 2.9. Gli insiemi (ARn+ ≤ b) e (R+ m A ≥ f ) siano entrambi non vuoti. Allora i problemi f (ARn+ ≤ b) = max e (R+ m A ≥ f )b = min sono entrambi risolubili e si ha max f (ARn+ ≤ b) = min(R+ m A ≥ f )b Dimostrazione. (1) È sufficiente dimostrare che esistono x ∈ (ARn+ ≤ b) ed u ∈ (R+ m A ≥ f ) tali che f x ≥ ub. L’enunciato allora si ottiene applicando la prop. 2.6. (2) Il nostro scopo quindi è quello di trovare un elemento x ∈ Rn+ ed t t t un elemento u ∈ R+ m tali che Ax ≤ b, uA ≥ f (cioè −A u ≤ −f ) ed f x ≥ ub. L’ultima disuguaglianza è equivalente a −f x + bt u ≤ 0. (3) Scrivendo il problema in forma matriciale, ponendo A 0 b B := 0 −At ∈ Rm+n+1 e c := −f t ∈ Rm+n+1 m+n t −f b 0 ≤ c) 6= ∅. dobbiamo dimostrare che (BRm+n + (4) Ma per la prop.1.28 in caso contrario esiste p ∈ R+ m+n+1 tale che pB ≥ 0 e pc < 0. + + p è quindi della forma p = (g h α) con g ∈ R+ m , h ∈ Rn ed α ∈ R . Inoltre 14 e A pB = (g h α) 0 −f 0 −At = (gA − αf bt − hAt + αbt ) ≥ 0 b pc = (g h α) −f t = gb − hf t < 0 0 cosicché otteniamo (I) gA ≥ αf (II) αbt ≥ hAt (III) gb < hf t Essendo α ∈ R+ , abbiamo α = 0 oppure α > 0. Dimostriamo che entrambi i casi implicano una contraddizione. (5) Sia α = 0. Allora gA ≥ 0 ≥ hAt . Per ipotesi gli insiemi (ARn+ ≤ b) n e (R+ m A ≥ f ) sono entrambi non vuoti. Perciò esistono x ∈ R+ ed t t t + u ∈ Rm tali che Ax ≤ b ed uA ≥ f , quindi anche A u ≥ f . Ma allora gb ≥ gAx ≥ 0 ≥ hAt ut ≥ hf t e questo contraddice la disuguaglianza (III). (6) Rimane il caso α > 0. Le disuguaglianze (I) e (II) significano però ht g A ≥ f ) e ∈ (ARn+ ≤ b). che ∈ (R+ m α α ht g Dal lemma 2.5 segue f ≤ b ovvero hf t = f ht ≤ gb, ancora in α α contrasto con (III). Corollario 2.10. Siano x ∈ (ARn+ ≤ b) ed u ∈ (R+ m A ≥ f ). Allora sono equivalenti: (1) x è una soluzione di f (ARn+ ≤ b) = max ed u una soluzione di (R+ m A ≥ f )b = min. (2) f x = ub. (3) f x = uAx = ub. (4) f x ≥ ub. Dimostrazione. (1) =⇒ (2): Teorema 2.9. (2) =⇒ (3): Per il lemma 2.5 si ha f x ≤ uAx ≤ ub, ma essendo per ipotesi f x = ub segue che f x = uAx = ub. (3) =⇒ (4): Chiaro. (4) =⇒ (1): Proposizione 2.6. 15 Nota 2.11. Come nella dimostrazione del teorema 2.9 siano A 0 b B := 0 −At ∈ Rm+n+1 e c := −f t ∈ Rm+n+1 . m+n −f bt 0 x ≤ c) con z = (1) Sia z ∈ (BRm+n , x ∈ Rn+ ed y ∈ Rm +. + y Se poniamo u := y t , allora x è una soluzione di f (ARn+ ≤ b) = max ed u è una soluzione di (R+ m A ≥ f )b = min. (2) Siano viceversa x una soluzione di f (ARn+ ≤ b) = max ed u una + t soluzione di (Rm A ≥ f )b = min. Allora con y := u abbiamo x ≤ c). ∈ (BRm+n z := + y Dimostrazione. Siano z, x, y, u come nell’enunciato. Abbiamo quindi le seguenti disuguaglianze: x ≥ 0, y ≥ 0 Ax ≤ b −At ut ≤ −f t −f x + bt ut ≤ 0 La terza disuguaglianza è equivalente ad uA ≥ f , la quarta, essendo bt ut = ub, è equivalente a f x ≥ ub. Il punto (1) segue adesso dalla prop. 2.6, il punto (2) combinando il teorema 2.9 con la prop. 2.6. Osservazione 2.12. Il teorema 2.9 e la nota 2.11 dimostrano l’importanza e l’utilità del principio di dualità nella programmazione lineare. Vediamo in particolare che la sola ricerca di un punto ammissibile (senza un compito di massimizzazione o minimizzazione) non è più facile della soluzione del problema di ottimizzazione che, come visto nella nota 2.11, può essere ricondotta alla ricerca di un punto ammissibile. Esempio 2.13. Consideriamo il seguente problema di massimo: x1 + 2x2 = max 7x1 + 4x2 ≤ 28 4x1 + 5x2 ≤ 20 3x1 + 10x2 ≤ 30 Per la nota 2.11 questo problema di ottimizzazione è equivalente a quello della ricerca di un punto 1 x x2 1 z= y2 y y3 che soddisfa la disuguaglianza 16 7 4 0 0 0 4 5 0 0 0 3 10 0 0 0 0 0 −7 −4 −3 0 0 −4 −5 −3 −1 −2 28 20 30 x1 x2 y1 y2 y3 ≤ 28 20 30 −1 −2 0 Corollario 2.14. (1) x sia una soluzione di f (ARn+ ≤ b) = max e 1 ≤ k ≤ m. Se esiste una soluzione u di (R+ m A ≥ f )b = min tale che uk 6= 0, allora Ak x = bk . (2) u sia una soluzione di (R+ m A ≥ f )b = min e 1 ≤ k ≤ n. Se esiste n una soluzione x di f (AR+ ≤ b) = max tale che xk 6= 0, allora uAk = fk . Dimostrazione. Dimostriamo solo il primo enunciato, essendo il secondo il suo duale. Per il corollario 2.10 uAx = ub, e quindi u(b − Ax) = 0, cioè m X uj (bj − Aj x) = 0. Per ipotesi però u ≥ 0 e b − Ax ≥ 0, quindi j=1 uj (bj − Aj x) ≥ 0 per ogni j = 1, ..., m. Ma allora necessariamente uj (bj − Aj x) = 0 per ogni j = 1, ..., m, per cui l’ipotesi uk 6= 0 implica bk − Ak x = 0. 17 3. Programmi lineari in forma normale m Situazione 3.1. n, m ∈ N + 1 ed A ∈ Rm n , f ∈ Rn , b ∈ R , quando non indicato diversamente. Definizione 3.2. Un programma lineare di massimizzazione (risp. minimizzazione) in forma normale è un problema di ottimizzazione della forma f x = max (risp. min) x≥0 Ax = b con A, f , b come nella situazione 3.1. Gli elementi di (ARn+ = b) sono detti punti ammissibili. Nota 3.3. (1) Sia dato un problema f (ARn+ ≤ b) = max in forma standard. Introducendo un vettore variabile ausiliario p otteniamo un problema in forma normale x (f 0) = max p x ≥0 p x (A δ) =b p equivalente al primo, nel senso che da ogni soluzione del problema in forma normale otteniamo una soluzione del problema in forma standard. (2) Viceversa, dato un problema f (ARn+ = b) = max in forma normale, considerando f x = max x≥0 Ax ≤ b −Ax ≤ −b otteniamo un problema in forma standard equivalente al primo, nel senso che da ogni soluzione del problema in forma standard otteniamo una soluzione del problema in forma normale. (3) In modo analogo (usando le matrici trasposte) ogni problema di minimizzazione in forma standard (def. 2.3) è equivalente ad un problema in forma normale e viceversa. Osservazione 3.4. V e W siano spazi vettoriali reali, ϕ : V −→ W un’applicazione affine ed Y sia un sottoinsieme convesso di W . Allora ϕ−1 (Y ) è convesso. Dimostrazione. Siano a, b ∈ ϕ−1 (Y ), cioè ϕ(a), ϕ(b) ∈ Y . Per l’oss. 1.8 però ϕ([a, b]) = [ϕ(a), ϕ(b)] ⊂ Y e quindi, utilizzando l’ipotesi che Y sia convesso, si ha che [a, b] ⊂ ϕ−1 (Y ). 18 Corollario 3.5. L’insieme (ARn+ = b) è chiuso e convesso. Dimostrazione. Identificando A con l’applicazione Ax possiamo x scrivere (ARn+ = b) = A−1 (b)∩Rn+ . Poiché A è continua, l’insieme A−1 (b) è chiuso. Inoltre, essendo A un’applicazione affine e b un convesso, per l’oss. 3.4 anche A−1 (b) è convesso. Infine Rn+ è un chiuso convesso e, siccome l’intersezione di insiemi chiusi e convessi è ancora chiuso e convesso, otteniamo l’enunciato. Definizione 3.6. V sia uno spazio vettoriale reale ed X un suo sottoinsieme convesso. Un vertice (o punto estremale) di X è un punto x ∈ X che soddisfa la seguente condizione: Se u, v ∈ X ed x ∈ [u, v], allora x ∈ {u, v} Denotiamo con vertici(X) l’insieme dei vertici di X . Esempio 3.7. (1) X sia un poligono convesso in R2 . I vertici di X nel senso della geometria elementare coincidono con i vertici nel senso della definizione 3.6. (2) vertici(Rn ) = ∅. (3) vertici(Rn+ ) = {0}. (4) X := {z ∈ Rn | |z| ≤ 1} sia la palla unitaria chiusa in Rn . Allora vertici(X) = {z ∈ Rn | |z| = 1}. (5) X := {z ∈ Rn | |z| < 1} sia la palla unitaria aperta in Rn . Allora vertici(X) = ∅. Lemma 3.8. V sia uno spazio vettoriale reale, X un sottoinsieme convesso di V ed x ∈ X . Allora sono equivalenti: (1) x ∈ vertici(X). (2) X \ {x} è convesso. (3) x = u+v con u, v ∈ X implica u = v . 2 Dimostrazione. (1) =⇒ (2): Supponiamo per assurdo che esistano u, v ∈ X \{x} tali che [u, v] 6⊂ X \{x}. Allora x ∈ [u, v], ma per ipotesi ciò implica che x ∈ {u, v}. Quindi ad esempio u = x, una contraddizione. (2) =⇒ (1): X \ {x} sia convesso ed u, v ∈ X con x ∈ [u, v]. Dobbiamo dimostrare che x ∈ {u, v}. Se cosı̀ non fosse avremmo u, v ∈ X \ {x} e quindi per ipotesi [u, v] ⊂ X \ {x}, una contraddizione. (1) =⇒ (3): Sia 2x = u + v con u, v ∈ X . Per ipotesi x ∈ {u, v}, ad esempio x = u. Allora x = v e quindi u = v . (3) =⇒ (1): Siano u, v ∈ X ed x = u + t(v − u) con t ∈ [0, 1]. Per t = 0 e t = 1 si ha rispettivamente x = u e x = v . 19 1 l’ipotesi implica u = v e quindi x = u = v . 2 1 1 Rimangono i casi 0 < t < e < t < 1. Per simmetria è sufficiente 2 2 1 trattare il caso 0 < t < . 2 Poniamo y := u + 2t(v − u). Allora y ∈ X perché 0 < 2t < 1. Inoltre u+y y = u + 2(x − u) = 2x − u, cosicché x = . L’ipotesi implica u = y e 2 quindi x = u. Per t = u x= u+y 2 y v Definizione 3.9. Sia α ⊂ {1, ..., n} un sottoinsieme di cardinalità |α| = s. Poniamo allora: (1) Aα := matrice in Rm s che si ottiene da A cancellando tutte le colonne Aj per cui j ∈ / α. (2) fα := vettore in Rs che si ottiene da f cancellando gli elementi fj per cui j ∈ / α. (3) Per x ∈ Rn sia xα il vettore in Rs che si ottiene da x cancellando gli elementi xj per cui j ∈ / α. Poniamo inoltre 1 − α := {1, ..., n} \ α. 0 ∅ Per s = 0 abbiamo Rm 0 = R = R0 = 0, per cui A∅ = f∅ = x = ∅. Con queste convenzioni possiamo scrivere Ax = Aα xα + A1−α x1−α f x = fα xα + f1−α x1−α Esempio 3.10. Siano A ∈ R35 ed x ∈ R5 . Con α = {1, 4} si ha 1 − α = {2, 3, 5}. Perciò 1 1 1 A1 A14 A2 A13 A15 x Aα xα + A1−α x1−α = A21 A24 + A22 A23 A25 x4 3 3 A1 A4 A32 A33 A35 1 1 A12 x2 + A13 x3 + A15 x5 A1 x + A14 x4 4 1 2 2 A22 x2 + A23 x3 + A25 x5 A1 x + A4 x + = 4 1 3 3 A32 x2 + A33 x3 + A35 x5 A1 x + A4 x = Ax x2 x3 x5 Definizione 3.11. Per x ∈ Rn sia [x] := {i ∈ {1, ..., n} | xi 6= 0}. Osservazione 3.12. 0 ∈ vertici(ARn+ = 0). Dimostrazione. Usiamo il lemma 3.8. Siano u, v ∈ (ARn+ = 0) e tali u+v che 0 = . È chiaro che ciò implica u = v = 0. 2 20 Teorema 3.13. Per x ∈ (ARn+ = b) sono equivalenti: (1) x ∈ vertici(ARn+ = b). (2) Le colonne di A[x] sono linearmente indipendenti. Dimostrazione. Se x = 0, allora [x] = ∅ e l’enunciato segue dall’oss. 3.9, perché l’insieme vuoto è linearmente indipendente. Possiamo quindi assumere che x 6= 0 e che [x] = {1, ..., s} con 1 ≤ s ≤ n. (1) =⇒ (2): Sia x ∈ vertici(ARn+ = b) e sia λ1 A1 + ... + λs As = 0 una combinazione lineare delle colonne Ai con i ∈ [x] e λi ∈ R per i = 1, ..., s. Supponiamo per assurdo che i λi non siano tutti nulli, ad esempio possiamo supporre λ1 6= 0. Siccome xi > 0 per ogni i = 1, . . . , s, possiamo trovare un elemento ε > 0 tale che xi ± ελi ≥ 0 per ogni i = 1, ..., s. Definiamo i vettori 1 1 x − ελ1 x + ελ1 .. .. . . s s x − ελs x + ελs u := e v := 0 0 .. .. . . 0 0 u+v Allora u, v ∈ Rn+ ed x = . 2 s s P P λk Ak = Ax = b, e similAk (xk + ελk ) = Ax + ε Inoltre Au = k=1 k=1 mente Av = b. Perciò u, v ∈ (ARn+ = b). Per ipotesi x ∈ vertici(ARn+ = b) e quindi per il punto (3) della prop. 3.8 risulta u = v . Ma ciò non è possibile perchè λ1 6= 0. (2) =⇒ (1): Le colonne di A[x] siano linearmente indipendenti. Siano u+v . Ciò implica ui + v i = 0 per ogni u, v ∈ (ARn+ = b) tali che x = 2 i = 1, . . . , s, e quindi ui = v i = 0, essendo u, v ≥ 0. D’altra parte abbias P mo Au = Av = b e quindi 0 = A(u − v) = (ui − v i )Ai . Per ipotesi ciò i=1 implica ui = v i per ogni i = 1, . . . , s, e quindi u = v . Per la prop. 3.8 quindi risulta che x ∈ vertici(ARn+ = b). Definizione 3.14. Sia α ⊂ {1, ..., n}. A si dice α-invertibile, se |α| = m ≤ n e la matrice quadratica Aα è invertibile. Osservazione 3.15. Un insieme di indici α tale che A sia α-invertibile esiste se e solo se rango(A) = m. Si noti che rango(A) = m da solo implica m ≤ n. Lemma 3.16. K sia un campo e V uno spazio vettoriale su K . Siano v1 , . . . , vn ∈ V e W := SV(v1 , . . . , vn ). Siano m := dim W e 1 ≤ s ≤ m tali che i vettori v1 , . . . , vs siano linearmente indipendenti. 21 Allora possiamo trovare m − s indici j1 , . . . , jm−s ∈ {s + 1, . . . , n} in modo tale che gli m vettori v1 , . . . , vs , vj1 , . . . , vjm−s siano linearmente indipendenti. Dimostrazione. (1) Se s = m non c’è nulla da dimostrare. Supponiamo quindi che s < m e dimostriamo che esiste un indice j ∈ {s + 1, . . . , n} tale che gli s + 1 vettori v1 , . . . , vs , vj sono linearmente indipendenti. Infatti, se cosı̀ non fosse, avremmo vj ∈ SV(v1 , . . . , vs ) per ogni j ∈ {1, . . . , n} e quindi W = SV(v1 , . . . , vs ) in contraddizione all’ipotesi dim W = m. (2) Se adesso s + 1 = m, non c’è più nulla da dimostrare. Altrimenti ripetiamo il ragionamento con s + 1 al posto di s. Corollario 3.17. x sia un vertice di (ARn+ = b). Se rango(A) = m, allora [x] è contenuto in un insieme di indici α tali che A sia α-invertibile. Osservazione 3.18. Sia x ∈ (ARn+ = b) ed [x] contenuto in un insieme di indici α tali che A sia α-invertibile. Allora abbiamo x1−α = 0 e quindi b = Ax = Aα xα + A1−α x1−α = Aα xα , per cui xα = A−1 α b. Perciò x è univocamente determinato dalle relazioni xα = A−1 α b x1−α = 0 Definizione 3.19. Sia rango(A) = m. Poniamo J(A) := {α ⊂ {1, ..., n} | |α| = m ed Aα invertibile} J + (A, b) := {α ∈ J(A) | A−1 α b ≥ 0} Proposizione 3.20. Sia rango(A) = m. Allora l’applicazione θ : J + (A, b) −→ vertici(ARn+ = b) definita da θ(α) = x con xα = A−1 α b x1−α = 0 è suriettiva. Dimostrazione. Ciò segue dall’oss. 3.18 e dal cor. 3.17. Corollario 3.21. Sia rango(A) = m. Allora l’insieme dei vertici di (ARn+ = b) è finito. Dimostrazione. J + (A, b) è finito e quindi, poichè l’immagine di un insieme finito è finito, anche vertici(ARn+ = b) è un insieme finito. Proposizione 3.22. Sia (ARn+ = b) 6= ∅. Allora vertici(ARn+ = b) 6= ∅. Dimostrazione. Scegliamo x ∈ (ARn+ = b) in modo tale che |[x]| sia minimale. (1) Se x = 0, allora b = 0 ed x ∈ vertici(ARn+ = b) per l’oss. 3.12. 22 (2) Sia quindi x 6= 0. Poniamo α := [x]. Dobbiamo dimostrare che le colonne di Aα sono linearmente indipendenti. Supponiamo che non lo siano. Allora possiamo trovare un vettore λ ∈ Rs \ 0 tale che Aα λ = 0. Possiamo assumere che almeno uno dei coefficienti di λ sia minore di 0. Siccome xi > 0 per ogni i ∈ α, esiste ε > 0 tale che xi + ελi ≥ 0 per ogni i ∈ α ed xh + ελh = 0 per almeno un h ∈ α. Sia ora y ∈ Rn+1 definito dalle relazioni y α = xα + ελ y 1−α = 0 Allora y ≥ 0, inoltre Ay = Aα y α + A1−α y 1−α = Aα y α = Aα (xα + ελ) = Aα xα + εAα λ = Aα xα = Ax = b Quindi y ∈ (ARn+ = b) e |[y]| < |[x]|, una contraddizione al fatto che abbiamo scelto x in modo tale che |[x]| sia minimale. Osservazione 3.23. Il problema f (ARn+ = b) = max abbia una soluzione. Se poniamo µ := max f (ARn+ = b), allora con A b B := , c := f µ si ha (f (ARn+ = b) = max) = (BRn+ = c). Per il cor. 3.5 l’insieme (f (ARn+ = b) = max) è perciò chiuso e convesso (ciò è banalmente vero anche quando è vuoto). Proposizione 3.24. vertici(f (ARn+ = b) = max) = (f (ARn+ = b) = max) ∩ vertici(ARn+ = b) Dimostrazione. (1) Se il problema f (ARn+ = b) = max non ha soluzione, l’enunciato è banalmente vero. (2) Altrimenti con µ := max f (ARn+ = b) poniamo P := (ARn+ = b), R := (f Rn+ = µ). Allora (f (ARn+ = b) = max) = P ∩ R, per cui dobbiamo dimostrare che vertici(P ∩ R) = P ∩ R ∩ vertici(P ). Adesso usiamo il lemma 3.8. Sia x ∈ vertici(P ∩R). Dobbiamo dimostrare che x ∈ vertici(P ). Siano u+v u, v ∈ P tali che x = . Però f u ≤ µ, f v ≤ µ, e se ad esempio 2 fu + fv f u < µ, si avrebbe f x = < µ. Perciò f u = f v = µ, cosicché 2 u, v ∈ P ∩ R, e quindi u = v , perché x ∈ vertici(P ∩ R). Viceversa, sia x ∈ P ∩ R ∩ vertici(P ). Siano u, v ∈ P ∩ R tali che u+v . Allora u = v perché x ∈ vertici(P ). Quindi x ∈ vertici(P ∩ R). x= 2 Teorema 3.25 (teorema fondamentale della programmazione lineare). Se il problema f (ARn+ = b) = max possiede una soluzione, allora esiste anche una soluzione che è un vertice di (ARn+ = b). Dimostrazione. Con le notazioni dell’oss. 3.23, dalla prop. 3.24 abbiamo (f (ARn+ = b) = max) ∩ vertici(ARn+ = b) = vertici(BRn+ = c). 23 Siccome per ipotesi l’insieme (BRn+ = c) = (f (ARn+ = b) = max) non è vuoto, dalla prop. 3.22 segue che anche vertici(BRn+ = c) 6= ∅. Nota 3.26. Mediante l’algoritmo di eliminazione di Gauss possiamo sempre ottenere la condizione rango(A) = m richiesta nella prop. 3.20 e nel corollario 3.21. L’insieme dei vertici di (ARn+ = b) allora è finito e per il teorema 3.25 una soluzione del problema di massimo si trova percorrendo tutti i vertici e calcolando max {f x | x ∈ vertici(ARn+ = b)}. Il numero dei vertici è però molto alto già in problemi di modeste dimensioni, per cui è necessario un algoritmo migliore, il metodo del simplesso, che verrà presentato nel prossimo capitolo. Esempio 3.27. Consideriamo il problema di massimo 3x1 + x2 − x3 + 2x4 − 2x5 + x6 = max 3x1 + 2x2 − 5x3 + 4x4 − x5 − x6 = 18 x1 − x2 − x3 + 4x4 − 6x5 + x6 = 15 che possiamo scrivere nella solita forma f x = max Ax = b x≥0 con 3 1 −1 2 −2 1 f := 3 2 −5 4 −1 −1 A := 1 −1 −1 4 −6 1 18 b := 15 Chiaramente rango(A) = 2. Per applicare l’idea della nota 3.26 dob6 biamo considerare le = 15 sottomatrici 2 × 2 Aα di A e calcolare 2 α α xα = A−1 α b ogni volta che Aα sia invertibile. Se x ≥ 0, calcoliamo fα x . Il massimo dei valori cosı̀ ottenuti è il massimo cercato. Alla pagina seguente riportiamo la tabella con i calcoli effettuati. Il valore massimo che si ottiene è 81. 24 α {1,2} {1,3} {1,4} {1,5} {1,6} {2,3} {2,4} {2,5} {2,6} {3,4} {3,5} {3,6} {4,5} {4,6} {5,6} Aα 3 2 1 −1 3 −5 1 −1 3 4 1 4 3 −1 1 −6 3 −1 1 1 2 −5 −1 −1 2 4 −1 4 2 −1 −1 −6 2 −1 −1 1 −5 4 −1 4 −5 −1 −1 −6 −5 −1 −1 1 4 −1 4 −6 4 −1 4 1 −1 −1 −6 1 −1 Aα −1 −2 1 −5 −1 3 −1 5 1 2 −1 3 4 −4 1 8 −1 3 −6 1 1 − 17 −1 3 1 1 1 4 −1 3 −1 5 − 17 1 2 4 −4 1 12 1 2 −6 1 1 − 13 1 2 1 1 1 2 4 −4 1 − 16 1 −5 −6 1 1 29 1 −5 1 1 − 16 1 −5 −6 1 1 − 20 −4 4 1 1 1 8 −4 4 1 1 − 17 6 −1 25 α −1 b x = Aα 48/5 −27/5 57/2 27/2 3/2 27/8 93/17 −27/17 33/4 27/4 −57/7 −48/7 1 4 93/13 −48/13 33 48 −3/4 57/16 −93/29 −57/29 −11/2 57/6 93/20 3/5 33/8 −3/2 −33/7 −53/7 x 48/5 −27/5 57/2 27/2 3/2 27/8 93/17 −27/17 33/4 27/4 −57/7 −48/7 1 4 93/13 −48/13 33 48 −3/4 57/16 −93/29 −57/29 −11/2 57/6 93/20 3/5 33/8 −3/2 −33/7 −53/7 fx 72 45/4 63/2 9 81 18 4. Il metodo del simplesso m Situazione 4.1. n, m ∈ N + 1 ed A ∈ Rm n , f ∈ Rn , b ∈ R . Supponiamo inoltre che rango(A) = m. Definizione 4.2. Per x ∈ Rn sia J(x, A) := {α ∈ J(A) | [x] ⊂ α}. Osservazione 4.3. Sia x ∈ (ARn+ = b). Allora x ∈ vertici(ARn+ = b) ⇐⇒ J(x, A) 6= ∅ Dimostrazione. (1) Sia x ∈ vertici(ARn+ = b). Poichè rango(A) = m, dal corollario 3.17 segue che J(x, A) 6= ∅. (2) Sia α ∈ J(A) con [x] ⊂ α. Allora le colonne di Aα sono linearmente indipendenti e quindi anche le colonne di A[x] lo sono. Per il teorema 3.13 si ha che x ∈ vertici(ARn+ = b). Lemma 4.4. Siano x, y ∈ (ARn = b) ed α ∈ J(x, A). Allora 1−α f y = f x + (f − fα A−1 α A)1−α y 1−α = 0. Dimostrazione. L’ipotesi implica xα = A−1 α b ed x α 1−α Inoltre b = Ay = Aα y + A1−α y , per cui −1 1−α = xα − A−1 A 1−α y α = A−1 1−α y α b − Aα A1−α y α cosicché 1−α + f 1−α f y = fα y α + f1−α y 1−α = fα xα − fα A−1 1−α y α A1−α y −1 1−α = f x + (f − fα Aα A)1−α y Corollario 4.5. Siano x ∈ (ARn+ = b) ed α ∈ J(x, A) tali che (f − fα A−1 α A)1−α ≤ 0. Allora x è una soluzione del problema f (ARn+ = b) = max. Dimostrazione. Infatti dal lemma 4.4 si ha che f y ≤ f x per ogni y ∈ (ARn+ = b). Definizione 4.6. Siano x ∈ Rn ed α ∈ J(x, A). Per j ∈ 1 − α e t ∈ R definiamo x(t, j, α) ∈ Rn mediante xα (t, j, α) := xα − tA−1 α Aj xj (t, j, α) := t xi (t, j, α) := 0 per i ∈ (1 − α) \ {j} Osservazione 4.7. Siano x ∈ (ARn = b), α ∈ J(x, A), j ∈ 1 − α e t ∈ R. Allora: (1) Ax(t, j, α) = b. (2) f x(t, j, α) = f x + t(fj − fα A−1 α Aj ). (3) x(0, j, α) = x. 26 Dimostrazione. (1) Ax(t, j, α) = Aα xα (t, j, α) + A1−α x1−α (t, j, α) j = Aα (xα − tA−1 α Aj ) + Aj x (t, j, α) = Aα xα − tAj + tAj = Aα xα = b (2) Per il punto (1) possiamo applicare il lemma 4.4, ottenendo 1−α f x(t, j, α) = f x + (f − fα A−1 (t, j, α) α A)1−α x −1 = f x + t(f − fα A−1 α A)j = f x + t(fj − fα Aα Aj ) (3) Chiaro. Corollario 4.8. Nelle ipotesi dell’oss. 4.7 sia fj − fα A−1 α Aj > 0. Allora f x(t, j, α) > f x per ogni t > 0. Proposizione 4.9. Siano x ∈ (ARn+ = b), α ∈ J(x, A), j ∈ 1 − α ed n −1 fj − fα A−1 α Aj > 0. Se Aα Aj ≤ 0, allora il problema f (AR+ = b) = max non possiede soluzioni. Dimostrazione. Per l’oss. 4.7 lim f x(t, j, α) = ∞. Dobbiamo però vet−→∞ rificare che x(t, j, α) ≥ 0 per ogni t ≥ 0. Ma per t ≥ 0 l’ipotesi A−1 α Aj ≤ 0 implica x(t, j, α) = xα (t, j, α) + x1−α (t, j, α) j α −1 = xα − tA−1 α Aj + x (t, j, α) = x − tAα Aj + t ≥ 0 Nota 4.10. Siano x ∈ vertici(ARn+ = b), α ∈ J(x, A), j ∈ 1 − α e m w := A−1 α Aj ∈ R . Scriviamo α nella forma α = {α1 , . . . , αm }. Assumiamo che fj −fα w > 0 e che esista almeno un indice i ∈ {1, . . . , m} tale che wi > 0. Siano t := min{xαi /wi | i ∈ {1, . . . , m}, wi > 0}, ad esxαk empio t = k , e β := (α ∪ {j}) \ {αk }. Allora: w (1) |β| = m. (2) [x(t, j, α)] ⊂ β . (3) β ∈ J(A). (4) x(t, j, α) ∈ vertici(ARn+ = b). (5) Se t > 0, allora f x(t, j, α) > f x. Dimostrazione. (1) Chiaro. (2) Bisogna dimostrare che xαk (t, j, α) = 0. Ma xαk (t, j, α) = xαk − twk = 0. (3) Dobbiamo dimostrare che le colonne di A[β] sono linearmente indipendenti. Possiamo assumere che α = {1, . . . , m}, k = m e j > m. In particolare allora wm > 0. Siano λ1 , . . . , λm−1 , λj ∈ R tali che λ1 A1 + . . . + λm−1 Am−1 + λj Aj = 0. Però Aj = Aα w, per cui abbiamo 27 0 = λ1 A1 + . . . + λm−1 Am−1 + λj Aα w = λ1 A1 + . . . + λm−1 Am−1 + λj (A1 w1 + . . . + Am wm ) = (λ1 + λj w1 )A1 + . . . + (λm−1 + λj wm−1 )Am−1 + λj wm Am Siccome le colonne di α sono linearmente indipendenti, segue che λ1 + λj w1 = . . . = λm−1 + λj wm−1 = λj wm = 0. Ma wm 6= 0 e quindi λj = 0 e ciò a sua volta implica λ1 = . . . = λm−1 = 0. (4) Teorema 3.13 (oppure oss. 4.3). (5) Ciò segue dal cor. 4.8. Definizione 4.11. Un vertice di (ARn+ = b) si dice non degenere se |[x]| = m. Osservazione 4.12. Sia x ∈ (ARn+ = b). Allora sono equivalenti: (1) x è un vertice non degenere di (ARn+ = b). (2) J(x, A) = {[x]}. Dimostrazione. Chiaro per l’oss. 4.3, perché per ogni α ∈ J(x, A) vale |α| = m. Teorema 4.13. x sia un vertice non degenere di (ARn+ = b). Sia α := [x] = {α1 , . . . , αm }. Allora: (1) Se (f − fα A−1 α A)1−α ≤ 0, allora x è una soluzione del problema f (ARn+ = b) = max. (2) Altrimenti esiste j ∈ 1 − α tale che fj − fα A−1 α Aj > 0. In questo caso poniamo w := A−1 A . j α Se w ≤ 0, allora il problema f (ARn+ = b) = max non possiede soluzioni. Altrimenti, posto t := min{xαi /wi | i ∈ {1, . . . , m}, wi > 0}, si ha f x(t, j, α) > f x. Dimostrazione. (1) Cor. 4.5. (2) Il caso w ≤ 0 segue dalla prop. 4.9. Se non vale w ≤ 0, per la nota 4.10 è sufficiente dimostrare che t > 0. Ma per ipotesi α = [x], per cui xαi > 0 per ogni i ∈ {1, . . . , m}, cosicché anche t > 0. Nota 4.14. L’algoritmo del simplesso per la risoluzione del problema di massimo f (ARn+ = b) = max può cosı̀ essere formulato nel modo seguente (x è un vertice non degenere di (ARn+ = b)): (1) α = [x] (necessariamente |α| = m). Scriviamo α = {α1 , . . . , αm } con α1 < . . . < αm . (2) β = 1 − α. (3) g = fα A−1 α . 28 (4) Determiniamo il più piccolo indice j ∈ 1 − α tale che fj > gAj , se un tale j esiste. (5) Se j non esiste, x è un punto di massimo, l’algoritmo restituisce x e termina. i (6) w = A−1 α Aj ; t = ∞. Cerchiamo l’insieme I := {i ∈ α | w > 0}. (7) Per i = 1, . . . , m controlliamo se wi > 0; in tal caso sia s = xαi /wi e se s < t, allora poniamo t = s e k = i. (8) Se dopo il ciclo in (7) risulta ancora t = ∞, allora il problema non possiede soluzione e viene restituito il valore ∞ (o un altro valore che esprime la non risolubilità). (9) x = x(t, j, α). (10) α = (α \ {αk }) ∪ {j}. (11) Torniamo al punto (2). La scelta di j e k nei punti (4) e (7) porta il nome di regola di Bland e garantisce che l’algoritmo termina sempre e non incorre in cicli infiniti; una dimostrazione si trova ad esempio in Geiger/Kanzow, pagg. 108-111. Nota 4.15. Traduciamo l’algoritmo in Octave (o in Matlab): function y=simplesso(A,b,f,x,mostra=0) n=length(x);alfa=find(x)’; while 1 if mostra X=x’, Ax=(A*x)’ endif beta=complement(alfa,1:n); f_alfa=f(alfa); A_alfa=A(:,alfa); g=f_alfa/A_alfa; trovatoj=0; for j=beta Aj=A(:,j); if f(j)>g*Aj trovatoj=1;break; endif; endfor if !trovatoj y=x; break; endif w=A_alfa\Aj; t=Inf; for i=1:length(alfa) if w(i)>0 s=x(alfa(i))/w(i); if s<t t=s; k=i; endif; endif; endfor if t==Inf y=Inf; break; endif x=sostituzione(x,t,j,alfa,w,n); alfa=union(complement(alfa(k),alfa),j); endwhile; end function y=sostituzione(x,t,j,alfa,w,n) y=zeros(n,1); y(alfa)=x(alfa)-t*w; y(j)=t; end Osservazione 4.16. Octave per il calcolo di programmi lineari prevede la funzione glpk; cfr. Eaton/Bateman/Hauberg, pagg. 339-345. 29 Osservazione 4.17. Quando il problema è dato nella forma standard, f x = max x≥0 Ax ≤ b con la tecnica della nota 3.3 la possiamo trasformare in forma normale x (f 0) = max p x ≥0 p x (A δ) =b p 0 è un vertice non degenere del nuovo In questo caso il vettore b problema e possiamo applicare l’algoritmo della nota 4.14. Osservazione 4.18. Consideriamo adesso un problema della forma f x = max x≥0 Ax = b con A, f, b definiti come in precedenza. Esso evidentemente è equivalente al problema f x − ∞u1 − . . . − ∞um = max x ≥ 0, u ≥ 0 Ax + u = b dove con ∞ calcoliamo in modo naturale. ∞ in Matlab (o Octave) viene rappresentato da Inf e i calcoli vengono eseguiti correttamente. Ciò ci permette di applicare di nuovo l’algoritmo del simplesso. Una dimostrazione dettagliata si trova in Geiger/Kanzow, pagg. 111-115. 30 5. Geometria elementare degli insiemi convessi Nota 5.1. V sia uno spazio vettoriale reale. Continuiamo la discussione delle proprietà geometriche elementari degli insiemi convessi iniziata nel primo capitolo. Definizione 5.2. Usiamo le notazioni introdotte in precedenza e poniamo inoltre: Rn++ := {x ∈ Rn | x > 0} R++ m := {f ∈ Rm | f > 0} Rnstoc := {λ = (λ1 , . . . , λn ) ∈ Rn+ | n X λh = 1} h=1 La condizione x > 0 significa che xh > 0 per ogni h; la condizione f > 0 è definita similmente. Rnstoc è l’insieme dei vettori stocastici in Rn . Per un sottoinsieme A di uno spazio topologico sia int A l’interno di A. Lemma 5.3. Siano a, x ∈ Rm e t, ρ ∈ R++ . Allora a + t(|Rm − x| < ρ) = (|Rm − (a + tx)| < tρ) Dimostrazione. Per y ∈ Rm sono equivalenti: (1) |y − (a + tx)| < tρ (2) | y−a t − x| < ρ (3) y−a t ∈ (|Rm − x| < ρ) (4) y ∈ a + t(|Rm − x| < ρ) Proposizione 5.4. X sia un sottoinsieme convesso di Rm . Allora anche int X e X sono convessi. Dimostrazione. (1) Siano x, y ∈ int X e t ∈ (0, 1). Allora esiste ρ > 0 tale che (|Rm − x| < ρ) ⊂ X . Sia z := tx+ (1− t)y . Dobbiamo dimostrare che z ∈ int X . Usando la convessità di X e il lemma 5.3 con a = (1 − t)y si ha che 5.3 X ⊃ (1 − t)y + t(|Rm − x| < ρ) = (|Rm − ((1 − t)y + tx)| < tρ) = (|Rm − z| < tρ) Abbiamo quindi trovato un intorno aperto di z contenuto in X per cui z ∈ int X . (2) Siano u, v ∈ X e t ∈ [0, 1]. Allora esistono due successioni x̃, ỹ in X tali che x̃ −→ u, ỹ −→ v . Ciò implica tx̃+(1−t)ỹ −→ tu+(1−t)v =: z . Per la convessità di X però gli elementi di tx̃ + (1 − t)ỹ appartengono tutti ad X e quindi z ∈ X . 31 Definizione 5.5. Per sottoinsiemi X, Y di V e λ ∈ R poniamo: X + Y := {x + y | x ∈ X, y ∈ Y } λX := {λx | x ∈ X} Osservazione 5.6. X ed Y siano sottoinsiemi convessi di V e sia λ ∈ R. Allora anche gli insiemi X + Y e λX sono convessi. Dimostrazione. (1) Ciò è evidente per λX . (2) Siano u1 , u2 ∈ X + Y . Allora esistono x1 , x2 ∈ X e y1 , y2 ∈ Y tali che u1 = x1 + y1 e u2 = x2 + y2 . Per t ∈ [0, 1] allora tx1 + (1 − t)x2 ∈ X e ty1 + (1 − t)y2 ∈ Y , per cui tu1 + (1 − t)u2 = t(x1 + y1 ) + (1 − t)(x2 + y2 ) = (tx1 + (1 − t)x2 ) + (ty1 + (1 − t)y2 ) ∈ X + Y X +Y X Y Definizione 5.7. Un cono di V è un sottoinsieme non vuoto X di V tale che λX ⊂ X per ogni λ > 0. m m Esempio 5.8. Gli insiemi Rm + e R++ sono coni convessi di R . L’insieme (R+ × 0) ∪ (0 × R+ ) in R2 (l’unione dei due semiassi delle coordinate) è un cono, ma non è convesso. Osservazione 5.9. X sia un cono di V . Allora X è convesso se e solo se X + X ⊂ X . Dimostrazione. Siano x, y ∈ X . (1) X sia convesso. Allora x+y 2 ∈ X perché X è convesso, e quindi x+y ∈ X perché X è un cono. x+y =2 2 (2) Sia X + X ⊂ X e siano t ∈ [0, 1] e z := tx + (1 − t)y . Per t = 0 risp. t = 1 si ha rispettivamente z = y ∈ X e z = x ∈ X . Per t ∈ (0, 1) invece tx ∈ X e (1 − t)y ∈ X perché X è un cono. Per ipotesi quindi z ∈ X . Osservazione 5.10. L’intersezione di una famiglia arbitraria di sottoinsiemi convessi di V è ancora convessa. Abbiamo utilizzato questa osservazione già nel cor. 3.5. Definizione 5.11. Generalizzando la notazione della def. 1.7 per sottoinsiemi non vuoti X1 , . . . , Xn ⊂ V poniamo 32 n X [X1 , . . . , Xn ] := { λk xk | n ∈ N + 1, x1 ∈ X1 , . . . , xn ∈ Xn , λ ∈ Rnstoc } k=1 Si noti che [X1 ] = X1 . Definizione 5.12. Per X ⊂ V sia conv X l’intersezione di tutti i sottoinsiemi convessi di V che contengono X . Per l’oss. 5.10 questo insieme, la chiusura convessa di X , è il più piccolo insieme convesso in V che contiene X . Per X = {x1 , . . . , xn } scriviamo conv(x1 , . . . , xn ) invece di conv X . Osservazione 5.13. Sia X un sottoinsieme non vuoto di V . Allora conv X = { n X λk xk | n ∈ N + 1, x1 , . . . , xn ∈ X, λ ∈ Rnstoc } = ∞ [ n=1 k=1 [X, . . . , X] | {z } n Dimostrazione. È immediato che l’insieme alla destra è convesso e contenuto in ogni insieme convesso che contiene X . Osservazione 5.14. Siano X1 , . . . , Xn sottoinsiemi non vuoti di V . Allora [X1 , . . . , Xn ] ⊂ conv(X1 ∪ . . . ∪ Xn ) Teorema 5.15. X1 , . . . , Xn siano sottoinsiemi convessi e non vuoti di V . Allora l’insieme [X1 , . . . , Xn ] è convesso e [X1 , . . . , Xn ] = conv(X1 ∪ . . . ∪ Xn ). Dimostrazione. Per l’oss. 5.14 è sufficiente dimostrare che [X1 , . . . , Xn ] è convesso. Siano u, v ∈ [X1 , . . . , Xn ] e t ∈ [0, 1]. Allora esistono x1 , y1 ∈ X1 , . . . , xn , yn ∈ Xn e λ, µ ∈ Rnstoc tali che u = λ1 x1 + . . . + λn xn e v = µ1 y1 + . . . µn yn . Ponendo s := 1 − t abbiamo n n X X ρk zk (sλk xk + tµk yk ) = su + tv = k=1 k=1 ρk dove per ogni k abbiamo posto := sλk + tµk e ( k tµk sλ per ρk 6= 0 k xk + ρk yk ρ zk := xk altrimenti Dalla convessità di Xk segue che zk ∈ Xk per ogni k. Inoltre n n n n X X X X ρk = (sλk + tµk ) = s λk + t µk = s + t = 1 k=1 k=1 k=1 k=1 Ciò mostra che su + tv ∈ [X1 , . . . , Xn ]. Corollario 5.16. Siano x1 , . . . , xn ∈ V . Allora conv(x1 , . . . , xn ) = [x1 , . . . , xn ]. Osservazione 5.17. Siano X1 , . . . , Xn sottoinsiemi non vuoti di V . Allora [X1 , . . . , Xn ] = [ [x1 , . . . , xn ] = (x1 ,...,xn )∈X1 ×...×Xn [ (x1 ,...,xn )∈X1 ×...×Xn 33 conv(x1 , . . . , xn ) Corollario 5.18. X1 , . . . , Xn siano sottoinsiemi convessi e non vuoti di V . Allora [ conv(x1 , . . . , xn ) conv(X1 ∪ . . . ∪ Xn ) = (x1 ,...,xn )∈X1 ×...×Xn Proposizione 5.19. X sia un sottoinsieme limitato di Rm . Allora conv X è limitato. Dimostrazione. Siccome X è limitato, esiste una palla K tale che X ⊂ K . Allora conv X ⊂ conv K = K . Proposizione 5.20. X sia un aperto di Rm . Allora anche conv X è un aperto. Dimostrazione. Dobbiamo dimostrare che conv X ⊂ int conv X . Per ipotesi però int X = X , per cui 5.4 conv X = conv int X ⊂ conv int conv X = int conv X Osservazione 5.21. La chiusura convessa di un chiuso di Rm invece in generale non è più un chiuso. Infatti sia X := (R × 0) ∪ {i} in R2 = C l’insieme costituito dalla retta reale e dal[ numero immaginario i. Per il cor. 5.18 allora conv X = [a, i] = (R × [0, 1]) ∪ {i}. Ma questo insieme non è chiuso. a∈R Definizione 5.22. Per X ⊂ Rm ed Y ⊂ Rk usiamo l’abbreviazione x | x ∈ X, y ∈ Y ⊂ Rm+k X2Y := y Per k = 1 ed Y = {1} abbiamo in particolare ⊂ Rm+1 . X21 x ∈ Rm+1 . Similmente per x ∈ Rm abbiamo x21 = 1 Lemma 5.23. Siano X ⊂ Rm e v ∈ Rm . Allora v ∈ conv X ⇐⇒ v21 ∈ POS(X21) Dimostrazione. Per X = ∅ l’enunciato è banalmente vero. Sia quindi X 6= ∅. (1) Sia v ∈ conv X . Allora esistono x1 , . . . , xn ∈ X e λ ∈ Rnstoc tali che v = λ1 x1 + . . . λn xn . Ciò implica v21 = (λ1 x1 + . . . + λn xn )21 = λ1 (x1 21) + . . . + λn (xn 21) ∈ POS(x21) (2) Sia viceversa v21 ∈ POS(X21). Allora esistono x1 , . . . , xn ∈ X e λ1 , . . . , λn ≥ 0 tali che v21 = λ1 (x1 21) + . . . + λn (xn 21). Ma ciò è equivalente alle relazioni v = λ1 x1 + . . . λn xn e λ1 + . . . + λn = 1. 34 Definizione 5.24. I punti x1 , . . . , xs ∈ V si dicono affinemente indipendenti, se una coppia di relazioni λ1 x1 + . . . + λs xs = 0 λ1 + . . . + λs = 0 con λ1 , . . . , λs ∈ R implica λ1 = . . . = λs = 0. Definizione 5.25. X sia un sottoinsieme non vuoto di V . La dimensione dim X di X è definita come la dimensione dello spazio affine aff X generato da X . È chiaro che dim X è uguale alla dimensione usuale di X , se X è un sottospazio affine di X . Si dimostra facilmente che dim X coincide con il massimo d ∈ N tale che esistono d + 1 punti affinemente indipendenti in X . Osservazione 5.26. Siano x1 , . . . , xs ∈ Rm e λ1 , . . . , λs ∈ R. Allora sono equivalenti: (1) λ1 x1 + . . . + λs xs = 0 e λ1 + . . . + λs = 0. (2) λ1 (x1 21) + . . . + λs (xs 21) = 0. Corollario 5.27. X sia un sottoinsieme non vuoto di Rm . Allora dim X = dim SV(X21) − 1 Corollario 5.28. Siano x1 , . . . , xs ∈ Rm . Allora sono equivalenti: (1) I punti x1 , . . . , xs sono affinemente indipendenti. (2) x1 21, . . . , xs 21 sono linearmente indipendenti. Teorema 5.29 (teorema di Carathéodory). X sia un sottoinsieme non vuoto di Rm con dim X = d. Allora conv X = [X, . . . , X]. | {z } d+1 Dimostrazione. Sia v ∈ conv X . Per il lemma 5.23 v21 ∈ POS(X21). Per il lemma di Carathéodory (prop. 1.10) e il cor. 5.27 esistono x1 , . . . , xd+1 ∈ X e λ1 , . . . , λd+1 ∈ R+ tali che v21 = λ1 (x1 21) + . . . + λd+1 (xd+1 21) Ciò significa che v = λ1 x1 + . . . λd+1 xd+1 e λ1 + . . . + λd+1 = 1 e vediamo che v ∈ [x1 , . . . , xd+1 ]. Lemma 5.30. X1 , . . . , Xn siano sottoinsiemi compatti e non vuoti di Rm . Allora [X1 , . . . , Xn ] è compatto. Dimostrazione. L’applicazione f : X1 × . . . × Xn × Rnstoc −→ Rm (x1 , . . . , xn , λ) −→ λ1 x1 + . . . λn xn è continua e si ha [X1 , . . . , Xn ] = f (X1 × . . . × Xn × Rnstoc ). Anche il simplesso Rnstoc è compatto e ciò implica l’enunciato. 35 Proposizione 5.31. X sia un compatto di Rm . Allora anche conv X è compatto, quindi chiuso e limitato. Dimostrazione. Segue dal teorema 5.29 e dal lemma 5.30. Corollario 5.32. Siano x1 , . . . , xn ∈ Rm . Allora conv(x1 , . . . , xn ) è compatto. Proposizione 5.33. Siano x1 , . . . , xn ∈ Rm ed y ∈ Rm . Per un punto p ∈ X sono allora equivalenti: (1) p è la proiezione di y su conv(x1 , . . . , xn ). (2) |xk − p, y − p| ≤ 0 per ogni k = 1, . . . , n. Dimostrazione. Sia z = n X λk xk con λ ∈ Rnstoc . Per la prop. 1.19 è k=1 sufficiente dimostrare che la condizione (2) implica k z − p, y − p k≤ 0. n n n X X X k k λk = 1. λ (xk − p) perchè λ xk − p = Osserviamo che z − p = k=1 k=1 k=1 Perciò k z − p, y − p k= n X (2) λk k xk − p, y − p k ≤ 0 k=1 dove abbiamo anche usato che i coefficienti λk sono tutti non negativi. Lemma 5.34. X sia un sottoinsieme chiuso e convesso di Rm tale che 0∈ / X . Allora esistono α ∈ R ed f ∈ Rm tali che f x > α > 0 per ogni x ∈ X. Dimostrazione. Ciò segue dal cor. 1.23 per y = 0. Corollario 5.35. Siano x1 , . . . , xn ∈ Rm tali che 0 ∈ / conv(x1 , . . . , xn ). Allora esistono α ∈ R ed f ∈ Rm tali che f xk > α > 0 per ogni k = 1, . . . , n. Osservazione 5.36. Siano x1 , . . . , xn ∈ Rm ed α ∈ R tali che f xk > α risp. f xk ≥ α per ogni k = 1, . . . , n. Allora f z > α risp. f z ≥ α per ogni z ∈ conv(x1 , . . . , xn ). Dimostrazione. Supponiamo che f xk > α per ogni k = 1, . . . , n. n X λk xk con λ ∈ Rnstoc . Allora Sia z = k=1 fz = n X k=1 k λ f xk > α n X λk = α k=1 Qui abbiamo usato che n X λk = 1 e che i coefficienti λk , i quali sono k=1 non negativi, non possono essere tutti nulli. Nello stesso modo si dimostra la seconda parte dell’enunciato. 36 II. ALCUNE APPLICAZIONI 6. Il separatore di Bennett-Mangasarian k Situazione 6.1. Siano X ∈ Rm n , Y ∈ Rn . e := {X 1 , . . . , X m } ed Osservazione 6.2. Consideriamo i sottoinsiemi X Ye := {Y 1 , . . . , Y k } di Rn . Seguendo il lavoro di Bennett/Mangasarian, faremo vedere come il compito di separare in modo approssimato (ma e ed Ye tramite un iperpiano possa essere riconottimale) i punti di X dotto ad un compito di programmazione lineare. 1 .. (l) Definizione 6.3. Per l ∈ N + 1 siano 1 := . ∈ Rl , 1 1(l) := (1, . . . , 1) ∈ Rl . Definizione 6.4. Per α ∈ R sia α+ := max(α, 0). 1 1 v v+ n X .. .. n Per v = . ∈ R siano v+ := . e kvk1 := |v i |. n i=1 vn v+ Si osservi che per v ≥ 0 si ha kvk1 = 1(n) v . e e Ye si dicono linearmente separabili, Definizione 6.5. Gli insiemi X n se esiste v ∈ R tale che min X i v > max Y j v 1≤i≤m 1≤j≤k Lemma 6.6. Sono equivalenti: e e Ye sono linearmente separabili. (1) X (2) Esistono w ∈ Rn ed α ∈ R tali che Xw ≥ (α + 1)1(m) Y w ≤ (α − 1)1(k) Dimostrazione. (1) =⇒ (2): Ponendo MIN := min X i v , MAX := max Y j v , α := 1≤j≤k MIN + MAX MIN − MAX e w := 1≤i≤m 2v MIN − MAX , abbiamo X iw ≥ 2 MIN MIN − MAX = MIN − MAX + MIN + MAX MIN − MAX Y jw ≤ 2 MAX MIN − MAX = MIN + MAX −(MIN − MAX) MIN − MAX (2) =⇒ (1): Chiaro. 37 =1+α =α−1 per ogni i per ogni j e Lemma 6.7. Sono equivalenti: e e Ye sono linearmente separabili. (1) X 1 (2) min{ m k(−Xw + (α + 1)1(m) )+ k1 + k1 k(Y w − (α − 1)1(k) )+ k1 | w ∈ Rn , α ∈ R} = 0. Dimostrazione. È chiaro che (2) è equivalente alla condizione che esistono w ∈ Rn ed α ∈ R tali che −Xw + (α + 1)1(n) ≤ 0 e Y w −(α−1)1(k) ≤ 0 e quindi, per il lemma 6.6, alla lineare separabilità e e Ye . di X Osservazione 6.8. min{(1 + α)+ + (1 − α)+ | α ∈ R} = 2. Dimostrazione. Per α ∈ R sia f (α) := (1 + α)+ + (1 − α)+ . Allora f (0) = 2. Consideriamo 3 casi: (1) Sia α ≤ −1. Allora (1 + α)+ = 0, (1 − α)+ = 1 + |α| e quindi f (α) = 0 + 1 + |α| ≥ 2. (2) Sia −1 ≤ α ≤ 1. Allora (1 + α)+ = 1 + α, (1 − α)+ = 1 − α e quindi f (α) = 1 + α + 1 − α = 2. (3) Sia α ≥ 1. Allora (1 + α)+ = 1 + α, (1 − α)+ = 0 e quindi f (α) = 1 + α + 0 ≥ 2. e e Ye siano linearmente separabili. Osservazione 6.9. X Allora nel punto (2) del lemma 6.7 w 6= 0. Dimostrazione. Altrimenti avremmo la contraddizione 1 k ((α + 1)+ 1(m) )+ k1 + k1 k ((1 − α)1(k) )+ k1 0 = min{ m | α ∈ R} 6.9 = min{(1 + α)+ + (1 − α)+ | α ∈ R} = 2 Lemma 6.10. Siano g : Rn −→ Rm , h : Rn −→ Rk ed E ⊂ Rn . Sia x0 ∈ E . Allora sono equivalenti: (1) kg(x0 )+ k1 + kh(x0 )+ k1 = min{kg(x)+ k1 + kh(x)+ k1 | x ∈ E}. k (2) Esistono y0 ∈ Rm + e z0 ∈ R+ tali che y0 ≥ g(x0 ), z0 ≥ h(x0 ) e 1(m) y0 + 1(k) z0 = min{1(m) y + 1(k) z | y ∈ Rn+ , z ∈ Rm + , x ∈ E, y ≥ g(x), z ≥ h(x)}. Dimostrazione. Nelle soluzioni in (2) necessariamente y = g(x)+ e z = h(x)+ . Per y ≥ 0 però 1(m) y =k y k1 e similmente per z ≥ 0. Proposizione 6.11. Il compito di minimizzazione 1 k(−Xw + (α + 1)1(m) )+ k1 + k1 k(Y w − (α − 1)1(k) )+ k1 min{ m | w ∈ Rn , α ∈ R} è equivalente al compito di ottimizzazione lineare 38 1 n k min{ m 1(m) y + k1 1(k) z | y ∈ Rm + , z ∈ R+ , w ∈ R , Xw − α1(m) + y ≥ 1(m) , −Y w + α1(k) + z ≥ 1(k) }. Dimostrazione. La dimostrazione discende dal lemma 6.10 con g(x) = −Xw + (α + 1)1(m) e h(x) = Y w − (α − 1)1(k) . Nota 6.12. Nei lavori di Bennett/Mangasarian e Mangasarian/Street/Wolberg questi risultati vengono applicati a compiti di diagnosi e prognosi per il carcinoma mammario. 39 7. Grafi Definizione 7.1. Un grafo diretto è una coppia (P, S) in cui P è un insieme finito ed S ⊂ P × P una relazione binaria su P . Gli elementi di P si dicono posizioni (o vertici) del grafo diretto, gli elementi di S archi (o spigoli). Per un arco s = (a, b) ∈ S la posizione a si chiama l’inizio (o la provenienza) di s, la posizione b la fine (o il punto d’arrivo) di s. Poniamo allora s1 := a, s2 := b e, per A, B ⊂ P , S(A, B) := {s ∈ S | s1 ∈ A, s2 ∈ B} = S ∩ (A × B) Nota 7.2. Un grafo diretto viene spesso rappresentato disegnando le posizioni come punti nel piano e unendo per ogni arco (a, b) le posizioni a e b con una freccia diretta da a verso b. Esempio 7.3. b a c e d La figura corrisponde al grafo diretto (P, S) con: P = {a, b, c, d, e} S = {(a, b), (a, c), (a, e), (b, a), (b, c), (c, d), (c, e), (d, c), (d, e)} Definizione 7.4. Un cappio in un grafo diretto è un arco della forma (a, a), cioè è un arco in cui la fine coincide con l’inizio. Nota 7.5. Fissando una numerazione a1 , . . . , an dell’insieme delle posizioni di un grafo diretto (P, S) con |P | = n, gli possiamo associare una matrice di adiacenza A ∈ {0, 1}nn ponendo ( 1 se (ai , aj ) ∈ S Aij = 0 se (ai , aj ) ∈ /S Viceversa ogni matrice A ∈ {0, 1}nn determina, a meno di isomorfia, un grafo diretto che risulta senza cappi se e solo se la matrice contiene solo zeri nella diagonale principale. Esempio 7.6. Per il grafo dell’esempio 7.3 con le posizioni elencate nell’ordine a, b, c, d, e, la matrice di adiacenza diventa 40 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 Viceversa la matrice 0 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 corrisponde ad un grafo diretto della forma Definizione 7.7. Una posizione a in un grafo diretto (P, S) si dice isolata, se sono soddisfatte le seguenti condizioni: (1) (a, y) ∈ / S per ogni y ∈ P . (2) (x, a) ∈ / S per ogni x ∈ P . Ciò significa che non ci sono archi che hanno a come inizio o fine. Nella figura le posizioni a e c sono isolate. a b c d e Definizione 7.8. Un grafo diretto (P, S) si dice bipartito, se non possiede posizioni isolate e se esistono sottoinsiemi A, B ⊂ P tali che: (1) A ∩ B = ∅. (2) S ⊂ (A × B) ∪ (B × A). Si noti che la condizione che (P, S) non abbia posizioni isolate implica P = A ∪ B . Inoltre è chiaro che un grafo diretto bipartito non possiede cappi. Gli insiemi A e B non sono univocamente determinati, nemmeno quando si trascura l’ordine in cui vengono presi, come mostra il grafo diretto bipartito (P, S) dato da P := {1, 2, 3, 4}, S := {(1, 2), (3, 4)}, in cui possiamo prendere ad esempio A = {1, 3}, B = {2, 4} oppure A = {1, 4}, B = {2, 3}. 41 Definizione 7.9. Un grafo diretto (P, S) si dice unidirezionalmente bipartito, se non possiede posizioni isolate e se esistono sottoinsiemi A, B ⊂ P tali che: (1) A ∩ B = ∅. (2) S ⊂ (A × B). È chiaro che (P, S) è allora anche bipartito, per cui non possiede cappi e P = A ∪ B . In questo caso però gli insiemi A e B sono univocamente determinati, infatti A = {a ∈ P | esiste b ∈ P con (a, b) ∈ S} B = {b ∈ P | esiste a ∈ P con (a, b) ∈ S} Le posizioni in A si chiamano sorgenti, le posizioni in B destinazioni. Definizione 7.10. Nella teoria dei grafi si considerano anche multigrafi diretti. Questi possono essere definiti come coppie (P, G) in cui P è un insieme finito e G : P × P −→ N è un’applicazione. Anche in questo caso gli elementi di P si chiamano posizioni o vertici. Nota 7.11. Un multigrafo diretto (P, G) viene spesso rappresentato disegnando le posizioni nel piano e unendo, per (a, b) ∈ P × P , le posizioni a e b con tante frecce (dirette da a verso b) quante sono indicate dalla molteplicità G(a, b). Fissando una numerazione a1 , . . . , an dell’insieme delle posizioni di un multigrafo diretto (P, G) con |P | = n, gli possiamo associare una matrice di adiacenza A ∈ Nnn ponendo Aij = n con n = G(ai , aj ). Viceversa ogni matrice A ∈ Nnn determina, a meno di isomorfia, un multigrafo diretto con n posizioni. Cosı̀ ad esempio la matrice 0 1 0 0 3 0 0 1 0 0 1 1 0 1 1 0 0 0 0 0 0 0 0 2 0 corrisponde ad un multigrafo diretto della forma Nella numerazione usata la prima posizione si trova in alto a sinistra, le altre si ottengono procedendo in senso orario. 42 Nota 7.12. Ogni grafo diretto (P, S) può essere considerato come un multigrafo diretto (P, G) se poniamo ( 1 se (a, b) ∈ S G(a, b) := 0 altrimenti Viceversa ogni multigrafo diretto (P, G) con G ≤ 1 è essenzialmente la stessa cosa come un grafo diretto. 43 8. Flussi in un grafo diretto Definizione 8.1. Una rete è una quintupla R = (P, S, α, ω, c) in cui: (1) (P, S) è un grafo diretto senza cappi. (2) α, ω ∈ P sono due posizioni con α 6= ω . α si chiama la sorgente della rete, ω la destinazione. (3) c : S −→ R+ è un’applicazione. c si chiama la capacità della rete. Situazione 8.2. R = (P, S, α, ω, c) sia una rete. Per A, B ⊂ P usiamo la notazione S(A, B) := {s ∈ S | s1 ∈ A, s2 ∈ B} introdotta nella def. 7.1. Definizione 8.3. Un flusso in R è una funzione f : S −→ R+ . Definizione 8.4. Per un flusso f in R ed A, B ⊂ P sia X f (A, B) := f (s) s∈S(A,B) Per s ∈ S abbiamo in particolare f (s) = f (s1 , s2 ). Definizione 8.5. Per un flusso f : S −→ R+ ed a ∈ P definiamo ingresso(a, f ) := f (P, a) uscita(a, f ) := f (a, P ) ∂f (a) := ingresso(a, f ) − uscita(a, f ) = f (P, a) − f (a, P ) ∂f (a) si chiama il flusso locale in a indotto da f . Otteniamo cosı̀ un’applicazione ∂f : P −→ R. Osservazione 8.6. f sia un flusso in R ed a ∈ P . Allora f (P, a) = f (P \ a, a) f (a, P ) = f (a, P \ a) Dimostrazione. Chiaro perché, per definizione di rete, il grafo diretto è senza cappi, per cui S(P, a) = S(P \ a, a) e S(a, P ) = S(a, P \ a). Osservazione 8.7. Per A, B, C ⊂ P con A ∩ B = ∅ abbiamo ˙ S(A ∪ B, C) = S(A, C)∪S(B, C) ˙ S(C, A ∪ B) = S(C, A)∪S(C, B) Per un flusso f abbiamo quindi f (A ∪ B, C) = f (A, C) + f (B, C) f (C, A ∪ B) = f (C, A) + f (C, B) 44 Lemma 8.8. f sia un flusso in R ed A ⊂ P . Allora X ∂f (a) = f (P \ A, A) − f (A, P \ A) a∈A Dimostrazione. Usando l’oss. 8.7 abbiamo X X ∂f (a) = (f (P, a) − f (a, P )) = f (P, A) − f (A, P ) a∈A a∈A = f (A, A) + f (P \ A, A) − f (A, A) − f (A, P \ A) = f (P \ A, A) − f (A, P \ A) Corollario 8.9. Sia f un flusso in R. Allora X ∂f (a) = 0. a∈P Dimostrazione. Per il lemma 8.8 abbiamo X ∂f (a) = f (∅, P ) − f (P, ∅) = 0 a∈P Definizione 8.10. Un flusso f : S −→ R+ si dice ammissibile, se sono soddisfatte le seguenti condizioni: (1) f ≤ c. (2) ∂f (a) = 0 per ogni a ∈ P \ {α, ω}. La prima condizione significa che il flusso non supera la capacità disponibile, la seconda che per ogni a ∈ P \ {α, ω} si ha uscita(a, f ) = ingresso(a, f ) Osservazione 8.11. Esiste sempre un flusso ammissibile in R. Infatti il flusso nullo 0 è ammissibile. s Proposizione 8.12. f sia un flusso ammissibile in R. Allora ∂f (ω) = −∂f (α). Dimostrazione. Dal cor. 8.9 e dalla condizione (2) nella def. 8.10 abbiamo X X 0= ∂f (a) = ∂f (a) + ∂f (α) + ∂f (ω) = ∂f (α) + ∂f (ω) a∈P a∈P \{α,ω} Definizione 8.13. f sia un flusso in R. Allora val(f ) := ∂f (ω) si chiama il valore del flusso. val(f ) è quindi il flusso locale nella destinazione. Se f è ammissibile, allora val(f ) = −∂f (α). Osservazione 8.14. Spesso la sorgente α e la destinazione ω sono scelte in modo tale che S(P, α) = ∅ e S(w, P ) = ∅. In questo caso val(f ) = ingresso(ω, f ) e, se f è ammissibile, si ha anche val(f ) = uscita(α, f ). 45 Definizione 8.15. Un flusso massimale in R è un flusso ammissibile di valore massimale. Definizione 8.16. Un taglio (o una sezione, in inglese cut) di R è un sottoinsieme X ⊂ P tale che α ∈ X , ω ∈ / X. X cap(X) := c(X, P \ X) = c(s) s∈S(X,P \X) si chiama allora la capacità di X . Denotiamo con T (R) l’insieme dei tagli di R. Siccome per ipotesi α 6= ω , si ha sempre T (R) 6= ∅. Ad esempio {α} ∈ T (R) e P \ ω ∈ T (R). Osservazione 8.17. f sia un flusso ammissibile in R ed A, B ⊂ P . Allora f (A, B) ≤ c(A, B). Lemma 8.18. f sia un flusso ammissibile in R ed X un taglio di R. Allora val(f ) = f (X, P \ X) − f (P \ X, X) ≤ cap(X) / P \ X si ha ∂f (a) = 0 per ogni elemento Dimostrazione. Siccome α ∈ a ∈ P \ X diverso da ω . Perciò X 8.8 val(f ) = ∂f (ω) = ∂f (a) = f (X, P \ X) − f (P \ X, X) a∈P \X 8.17 ≤ f (X, P \ X) ≤ c(X, P \ X) = cap(X) Corollario 8.19. f sia un flusso ammissibile in R. Allora val(f ) ≤ c(α, P \ α) val(f ) ≤ c(P \ ω, ω) Corollario 8.20. f sia un flusso ammissibile in R ed X un taglio di R tale che val(f ) = cap(X). Allora f è un flusso massimale ed X un taglio di capacità minimale. Corollario 8.21. f sia un flusso ammissibile in R ed X un taglio di R. Assumiamo che ( c(s) per s ∈ S(X, P \ X) f (s) = 0 per s ∈ S(P \ X, X) Allora val(f ) = cap(X), per cui f è un flusso massimale ed X un taglio di capacità minimale. Dimostrazione. L’ipotesi implica 8.18 val(f ) = f (X, P \ X) − f (P \ X, X) = f (X, P \ X) = c(X, P \ X) = cap(X) 46 Esempio 8.22. Nella figura è rappresentato un flusso ammissibile con valore 6. Per ogni arco s abbiamo indicato f (s) e c(s) nella forma f (s) : c(s). D 5:6 ω 4:5 F 1:3 1:3 1:2 E C 1:3 2:7 1:3 2:6 α 5:7 3:5 B A In questo esempio cap(α) = c(α, P \α) = 10, cap(P \ω) = c(P \ω, ω) = 9, quindi ogni flusso ammissibile in questa rete possiede un valore ≤ 9. Definizione 8.23. Un cammino in R è una successione γ = (a0 , a1 , . . . , an ) di punto distinti con n ≥ 1 tale che (ai−1 , ai ) ∈ S per ogni i = 1, . . . , n. γ si chiama allora un cammino da a0 ad an . Per a, b ∈ P sia C(a, b) l’insieme dei cammini da a a b. Proposizione 8.24. X sia un taglio di R e γ = (a0 , . . . , an ) ∈ C(α, ω). Allora esiste un i ∈ {1, . . . , n} tale che (ai−1 , ai ) ∈ S(X, P \ X). Dimostrazione. Siccome a0 = α ∈ X ed an = ω ∈ P \ X , deve esistere un più piccolo i ≥ 1 tale che ai ∈ P \ X . Allora (ai−1 , ai ) ∈ S(X, P \ X). Osservazione 8.25. f sia un flusso ammissibile in R e γ = (a0 , . . . , an ) ∈ C(α, ω). Per l’ipotesi (1) della def. 8.10 allora c(ai−1 , ai ) − f (ai−1 , ai ) ≥ 0 per ogni i = 1, . . . , n. Sia ∆ := ∆(γ, f ) := min {c(ai−1 , ai ) − f (ai−1 , ai )}. 1≤i≤n Se allora definiamo un flusso g : S −→ R+ ponendo ( f (s) + ∆ se s = (ai−1 , ai ) per un i ∈ {1, . . . , n} g(s) := f (s) altrimenti (*) allora g è un flusso ammissibile in R con val(g) = val(f ) + ∆. Dimostrazione. (1) È chiaro che g ≤ c. (2) Sia b ∈ P \ {α, ω}. Se b ∈ / {a0 , . . . , an }, allora g(P, b) = f (P, b) e g(b, P ) = f (b, P ), per cui ∂g(b) = ∂f (b) = 0. Sia b ∈ {a0 , . . . , an }. Siccome b 6= α, ω , deve esistere un i ∈ {1, . . . , n − 1} tale che b = ai . Siccome i punti che appaiono in γ sono tutti distinti, i è univocamente determinato e gli unici archi in S(P, b) risp. S(b, P ) in cui avviene l’aumento in (∗) sono (ai−1 , ai ) e (ai , ai+1 ). Ciò implica ingresso(b, g) = ingresso(b, f ) + ∆ uscita(b, g) = uscita(b, f ) + ∆ 47 per cui ∂g(b) = ∂f (b) = 0. (3) Nello stesso modo si vede che ingresso(ω, g) = ingresso(ω, f ) + ∆ mentre uscita(ω, g) = uscita(ω, f ), perché ω non può apparire all’interno di γ . Ciò implica val(g) = ∂g(ω) = ∂f (ω) + ∆ = val(f ) + ∆. Esempio 8.26. Nella rete dell’esempio 8.22 possiamo prima considerare il cammino (α, A, B, C, ω) in cui ∆ = 2, ottenendo il flusso D 5:6 ω 4:5 F 3:3 1:3 1:2 E C 1:3 1:3 2:7 4:6 7:7 α 5:5 B A di valore 8, e successivamente il cammino (α, F, E, D, ω) in cui ∆ = 1, ottenendo cosı̀ un flusso di valore 9 il quale, come abbiamo visto nell’esempio 8.22, è già un flusso massimale: D 6:6 ω 5:5 F 3:3 1:3 2:2 E C 2:3 2:7 1:3 4:6 7:7 α 5:5 B A Nota 8.27. Può accadere però che la tecnica dell’oss. 8.25 non sia applicabile, cioè può accadere che ∆(γ, f ) = 0 per ogni γ ∈ C(α, ω), pur non essendo f massimale. Consideriamo ad esempio il flusso f descritto dalla figura A B 4:7 3:4 5:5 ω 1:3 1:5 α 6:6 4:7 C Calcoliamo ∆(γ, f ) per ogni γ ∈ C(α, ω): 48 γ (α, A, B, w) (α, A, B, C, w) (α, A, C, w) (α, C, w) ∆(γ, f ) 0 0 0 0 Quindi non possiamo aumentare il valore del flusso con il metodo dell’oss. 8.25. Se però diminuiamo di 1 il carico sull’arco (B, C), possiamo aumentare di 1 il carico sugli archi (B, ω) e (α, C), ottenendo il flusso ammissibile A B 4:7 4:4 5:5 ω 1:3 0:5 α 6:6 5:7 C Per il cor. 8.19 questo è un flusso ammissibile di valore massimale. Definizione 8.28. Un semicammino in R è una successione γ = (a0 , ε1 , a1 , ε2 , . . . , an−1 , εn , an ) tale che: (1) n ≥ 1. (2) a0 , . . . , an sono punti distinti di P . (3) ε1 , . . . , εn ∈ {1, −1}. (4) Per ogni i = 1, . . . , n vale: εi = 1 =⇒ (ai−1 , ai ) ∈ S εi = −1 =⇒ (ai , ai−1 ) ∈ S γ si chiama allora un semicammino da a0 ad an . Per a, b ∈ P sia S(a, b) l’insieme dei semicammini da a a b. Poniamo vertici(γ) := {a0 , . . . , an }. Definizione 8.29. f sia un flusso ammissibile in R e γ = (a0 , ε1 , a1 , . . . , an−1 , εn , an ) un semicammino in R. Diciamo che γ è f -aumentante se per ogni i = 1, . . . , n si ha εi = 1 =⇒ f (ai−1 , ai ) < c(ai−1 , ai ) εi = −1 =⇒ f (ai , ai−1 ) > 0 Per a, b ∈ P denotiamo con Sf (a, b) l’insieme dei semicammini f -aumentanti da a a b. Esempio 8.30. Nella prima figura dell’oss. 8.27 il semicammino (α, 1, C, −1, B, 1, ω) da α a ω è f -aumentante. Infatti per ε1 = 1 si ha f (α, C) < c(α, C) perché 4 < 7; per ε2 = −1 si ha f (B, C) = 1 > 0 ed infine per ε3 = 1 si ha f (B, w) < c(B, w) perché 3 < 4. Definizione 8.31. γ = (a0 , ε1 , a1 , . . . , an−1 , εn , an ) sia un semicammino in R. Poniamo allora 49 Sγ+ := {(ai−1 , ai ) | i = 1, . . . , n ed εi = 1} Sγ− ed εi = −1} := {(ai , ai−1 ) | i = 1, . . . , n Sγ := Sγ+ ∪ Sγ− È chiaro che Sγ+ ∩ Sγ− = ∅. Infatti sia (ai−1 , ai ) = (aj , aj−1 ), ovvero ai−1 = aj e ai = aj−1 . Siccome i punti a0 , . . . , an sono distinti, ciò implica i − 1 = j e i = j − 1, e ciò è impossibile. Definizione 8.32. f sia un flusso ammissibile in R e γ = (a0 , ε1 , a1 , . . . , an−1 , εn , an ) un semicammino in R. Per s ∈ Sγ poniamo ∆(γ, f, s) := c(ai−1 , ai ) − f (ai−1 , ai ) se (ai−1 , ai ) ∈ Sγ+ ∆(γ, f, s) := f (ai , ai−1 ) se (ai , ai−1 ) ∈ Sγ− Definiamo adesso ∆(γ, f ) := min ∆(γ, f, s) s∈Sγ Esempio 8.33. Nella prima figura della nota 8.27 consideriamo ancora il semicammino γ = (α, 1, C, −1, B, 1, ω). Allora ∆(γ, f, (α, C)) = c(α, C) − f (α, C) = 7 − 4 = 3 ∆(γ, f, (B, C)) = f (B, C) = 1 ∆(γ, f, (B, ω)) = c(B, ω) − f (B, ω) = 4 − 3 = 1 per cui ∆(γ, f ) = 1. Osservazione 8.34. Nella situazione della def. 8.29 γ è f -aumentante se e solo se ∆(γ, f ) > 0. Proposizione 8.35. f sia un flusso ammissibile in R e γ ∈ S(α, ω). Sia ∆ := ∆(γ, f ). Se allora definiamo un flusso g : S −→ R+ ponendo per s ∈ Sγ+ f (s) + ∆ (*) g(s) := f (s) − ∆ per s ∈ Sγ− f (s) per s ∈ S \ Sγ allora g è un flusso ammissibile in R e val(g) = val(f ) + ∆. Dimostrazione. (1) È chiaro che 0 ≤ g ≤ c. (2) Sia γ = (a0 , ε1 , a1 , . . . , an−1 , εn , an ). Sia b ∈ P \ {α, ω}. Se b ∈ / {a0 , . . . , an }, allora g(b, P ) = f (b, P ) e g(P, b) = f (P, b) per cui, essendo f un flusso ammissibile, si ha ∂g(b) = ∂f (b) = 0. Supponiamo ora che b ∈ {a0 , . . . , an }. Siccome b 6= α, ω , deve esistere un i ∈ {1, . . . , n − 1} tale che b = ai . Siccome i punti che appaiono in γ sono tutti distinti, i è univocamente determinato e gli aumenti in (∗) avvengono solo su semicammini di una delle quattro forme seguenti per le quali abbiamo calcolato i cambiamenti: 50 (ai−1 , −1, b, −1, ai+1 ) . . . (ai−1 , −1, b, 1, ai+1 ) (ai−1 , 1, b, −1, ai+1 ) (ai−1 , 1, b, 1, ai+1 ) ingresso(b, g) = ingresso(b, f ) − ∆ ... uscita(b, g) = uscita(b, f ) − ∆ ... ingresso(b, g) = ingresso(b, f ) ... uscita(b, g) = uscita(b, f ) − ∆ + ∆ ... ingresso(b, g) = ingresso(b, f ) + ∆ − ∆ ... uscita(b, g) = uscita(b, f ) ... ingresso(b, g) = ingresso(b, f ) + ∆ ... uscita(b, g) = uscita(b, f ) + ∆ In tutti questi casi risulta ∂g(b) = ∂f (b) = 0. (3) Per calcolare val(g) consideriamo i due casi possibili εn = 1 e εn = −1: εn = 1 εn = −1 ... ingresso(ω, g) = ingresso(ω, f ) + ∆ ... uscita(ω, g) = uscita(ω, f ) ... ingresso(ω, g) = ingresso(ω, f ) ... uscita(ω, g) = uscita(ω, f ) − ∆ perché ω non può apparire all’interno di γ . Ciò implica val(g) = ∂g(ω) = ∂f (ω) + ∆ = val(f ) + ∆. Corollario 8.36. f sia un flusso ammissibile in R. Se esiste un semicammino f -aumentante da α ad ω , allora f non è un flusso massimale. Osservazione 8.37. f sia un flusso ammissibile in R tale che Sf (α, ω) = ∅. Siano Γ := {γ ∈ Sf (α, a) | a ∈ P } [ X := {α} ∪ vertici(γ) γ∈Γ L’ipotesi implica che ω ∈ / X , perciò [ X è un taglio di R. vertici(γ). Se Γ 6= ∅, si ha naturalmente X = γ∈Γ Teorema 8.38. f sia un flusso ammissibile in R. Allora sono equivalenti: (1) f è massimale. (2) Non esiste un semicammino f -aumentante da α a ω . (3) Esiste un taglio X di R di capacità minimale tale che val(f ) = cap(X). (4) Esiste un taglio X di R tale che val(f ) = cap(X). Dimostrazione. (1)=⇒(2): Corollario 8.36. (2)=⇒(3): Sia Sf (α, ω) = ∅. Definiamo il taglio X come nell’oss. 8.37. Per costruzione allora s ∈ S(X, P \ X) =⇒ f (s) = c(s) 51 s ∈ (P \ X, X) =⇒ f (s) = 0 Per il cor. 8.21 val(f ) = cap(X) ed X è un taglio di capacità minimale. (3)=⇒(4): Chiaro. (4)=⇒(1): Corollario 8.20. Teorema 8.39. f sia un flusso massimale in R ed Y un taglio di capacità minimale di R. Allora val(f ) = cap(Y ). Dimostrazione. (1) Dal lemma 8.18 sappiamo che val(f ) ≤ cap(Y ). (2) Per il teorema 8.38 esiste un taglio X di R di capacità minimale tale che val(f ) = cap(X). Siccome anche Y è di capacità minimale, abbiamo cap(X) = cap(Y ). Proposizione 8.40. Per ogni s ∈ S sia c(s) ∈ N. Allora: (1) Esiste sempre un taglio di capacità minimale di R. (2) Esiste sempre un flusso massimale f in R tale che f (s) ∈ N per ogni s ∈ S . Dimostrazione. (1) Chiaro, perché P è un insieme finito. (2) Iniziando con il flusso nullo f0 := 0, per ogni i = 0, 1, . . . proces diamo nel modo seguente: Se Sfi (α, ω) = ∅, ci fermiamo. Altrimenti sia γ ∈ Sfi (α, ω). È chiaro che ∆(γ, fi ) ∈ N + 1. Per la prop. 8.35 troviamo un flusso ammissibile fi+1 con val(fi+1 ) = val(fi ) + ∆(γ, fi ) ≥ val(fi ) + 1 Per costruzione inoltre fi+1 (s) ∈ N per ogni s ∈ S . Siccome val(fi+1 ) ≤ c(P \ ω, ω) per il cor. 8.19, l’algoritmo deve terminare. Nota 8.41. Seguendo Aigner, pagg. 305-307, facciamo vedere adesso come il problema dei flussi massimali possa essere risolto nell’ambito della programmazione lineare. Definiamo una matrice M ∈ RPS ponendo, per p ∈ P ed s ∈ S , se p = s2 1 Msp := −1 se p = s1 0 altrimenti Senza perdere di generalità possiamo Xassumere che (ω, α) ∈ S e che c(ω, α) = ∞ (oppure che c(ω, α) > c(s)). s∈S\{ω,α} Numerando P ∈ S , possiamo identificare P con {1, . . . , m} ed S con {1, . . . , n}. Allora M ∈ Rm n. Per la rete della nota 8.27, aggiungendo l’arco (ω, α), M è data dalla tabella 52 α A B C ω αA -1 1 0 0 0 αC -1 0 0 1 0 AB 0 -1 1 0 0 AC 0 -1 0 1 0 BC 0 0 -1 1 0 Bω 0 0 -1 0 1 Cω 0 0 0 -1 1 ωα 1 0 0 0 -1 La capacità c può essere identificata con un vettore c ∈ Rn+ , e similmente un flusso ammissibile f con un vettore x ∈ Rn+ tale che x ≤ c con M x = 0. Quest’ultima equazione esprime proprio la condizione (2) della def. 8.10. Il valore del flusso è uguale alla componente x(ω,α) . Il problema del flusso massimale è quindi equivalente al problema di ottimizzazione lineare Mx = 0 0≤x≤c (∗) (0 . . . 01)x = max Usando il comando glpk di Matlab per il nostro esempio troviamo cosı̀ una soluzione con le istruzioni: M=[-1 -1 0 0 0 0 0 1; 1 0 -1 -1 0 0 0 0; 0 0 1 0 -1 -1 0 0; 0 1 0 1 1 0 -1 0; 0 0 0 0 0 1 1 -1]; A=[M; eye(8)]; b=[0 0 0 0 0 5 7 7 3 5 4 6 Inf]’; f=[0 0 0 0 0 0 0 1]; [x,m]=glpk(f’,M,b,[],[],’SSSSSUUUUUUUU’,’CCCCCCCC’,-1) Usando il teorema 2.9 con questo ragionamento possiamo dimostrare l’esistenza di un flusso massimale anche senza la condizione che c(s) ∈ N per ogni s ∈ S (cfr. prop. 8.40). Infatti con M 0 A := −M , b := 0 , f := (0 . . . 01) δ c il problema (*) può essere scritto nella forma f x = max x≥0 Ax ≤ b Siccome c ≥ 0 e quindi anche b ≥ 0, abbiamo X := (ARn+ ≤ b) 6= ∅ perché 0 ∈ X e Y := (R+ m A ≥ f ) 6= ∅ perché (0 f ) ∈ Y . Dal teorema 2.9 segue che il nostro problema possiede una soluzione. 53 III. OTTIMIZZAZIONE NON LINEARE 9. Il cono tangente Situazione 9.1. X sia un sottoinsieme di Rn , Ω un aperto di Rn tale che X ⊂ Ω ed f : Ω −→ R una funzione di classe C 1 . In questa parte della tesi seguiamo soprattutto Geiger/Kanzow, pagg. 41-76. Nota 9.2. Usiamo le seguenti abbreviazioni: (1) [R++ ↓ 0] := { tk ∈ RN | t0 > t1 > t2 > . . . > 0 e lim tk = 0} k−→∞ k (2) Per y ∈ Rn sia [X −→ y] := { xk ∈ X N | lim xk = y} k−→∞ k Ponendo X = Rn e X = R++ abbiamo in particolare definito gli insiemi [Rn −→ y] e [R++ −→ 0]. Osservazione 9.3. Sia tk ∈ [R++ −→ 0]. Ponendo n0 := 0 troviamo k un indice n1 > n0 tale che tn1 < tn0 , poi un indice n2 > n1 tale che tn2 < tn1 ecc. In questo modo otteniamo una successione tnj ∈ [R++ ↓ 0]. j Definizione 9.4. Sia x ∈ X . Un vettore v ∈ Rn si dice tangente ad X in x, se esistono due successioni xk ∈ [X −→ x] e tk ∈ [R++ −→ 0] k k xk − x xk − x ∈ [Rn −→ v], cioè tali che lim = v. tali che k−→∞ t tk k k L’insieme T(X, x) di tutti i vettori tangenti ad X in x si chiama il cono tangente di X in x. Osservazione 9.5. Siano x ∈ X e v ∈ Rn . Usando l’oss. 9.3 vediamo che v ∈ T(X, x) se e solo se esistono due successioni xk ∈ [X −→ x] e tk ∈ [R k ++ k xk − x ∈ [Rn −→ v]. ↓ 0] tali che tk k Osservazione 9.6. Sia x ∈ X . Allora T(X, x) è un cono di Rn (nel senso della def. 5.7). Dimostrazione. È chiaro che 0 ∈ T(X, x), per cui T(X, x) 6= ∅. Se v ∈ T(X, x) e λ > 0, e se xk ∈ [X −→ x] e tk ∈ [R++ −→ 0] k k xk − x = v , allora evidentemente sono tali che lim k−→∞ tk xk − x tk /λ ∈ [R++ −→ 0] e lim = λv , per cui λv ∈ T(X, x). k−→∞ tk /λ k Osservazione 9.7. x sia un punto interno di X (rispetto alla topologia di Rn ). Allora T(X, x) = Rn . 54 Dimostrazione. Sia v ∈ Rn . Dobbiamo far vedere che v è tangente ad X in x. Siccome x è un punto interno di X , esiste un m ∈ N + 1 tale 1 1 che xk = x + m+k v ∈ X per ogni k ∈ N. Poniamo tk := m+k . ++ xk −x Allora tk ∈ [R −→ 0], xk ∈ [X −→ x], mentre tk = v per ogni k k k ∈ N, per cui sicuramente k xk − x ∈ [Rn −→ v]. tk Lemma 9.8. Sia x ∈ X . Allora T(X, x) è un sottoinsieme chiuso di Rn . Dimostrazione. Siano v ∈ T(X, x) e vj ∈ [T(X, x) −→ v]. j (j) Allora per ogni j ∈ N esistono due successioni xk ∈ [X −→ x] e k (j) xk − x (j) tk ∈ [R++ ↓ 0] tali che lim k−→∞ k (j) tk = vj . Ciò implica che possiamo trovare una successione mj ∈ NN tale (j) |xmj 1 j, (j) tmj − x| ≤ 0 < che per ogni j ∈ N + 1 si abbia x(j) − x mj (j) − vj ≤ 1j . L’ultima disuguaglianza implica tm j x(j) − x x(j) − x mj mj (j) − v ≤ (j) − vj + |vj − v| tm tm j e j e vediamo che (j) xmj − lim (j) j−→∞ tmj j ≤ 1j x x(j) mj j ++ −→ 0] e ∈ [X −→ x], t(j) mj ∈ [R j = v , cosicché v ∈ T(X, x). Definizione 9.9. x ∈ X è un punto di minimo locale di f in X , se esiste un intorno U ∈ U(x, in X) tale che f (x) ≤ f (u) per ogni u ∈ U Per la definizione di topologia in Rn (e quindi su X ) ciò è equivalente alla condizione che esista r > 0 tale che f (x) ≤ f (u) ogni u ∈ X per cui |x − u| < r . Definizione 9.10. Per x ∈ Ω e v ∈ Rn sia f (x + tv) − f (x) f ′ (x; v) := lim t−→0 t la derivata in direzione v di f in x. È noto dall’analisi che f ′ (x; v) =k ∇f (x), v k. Osservazione 9.11. x sia un punto interno di X . Allora sono equivalenti: (1) f ′ (x; v) ≥ 0 per ogni v ∈ T(X, x). (2) f ′ (x; v) = 0 per ogni v ∈ T(X, x). (3) ∇f (x) = 0. 55 Dimostrazione. Le implicazioni (3)=⇒(2)=⇒(1) sono banali. L’implicazione (1)=⇒(3) segue dall’oss. 9.7. Lemma 9.12. x sia un punto di minimo locale di f in X . Allora f ′ (x; v) ≥ 0 per ogni v ∈ T(X, x). Dimostrazione. Sia v ∈ T(X, x). Allora esistono successioni xk − x ∈ [Rn −→ v]. xk ∈ [X −→ x] e tk ∈ [R++ −→ 0] tali che t k k k k Per il teorema del valor medio esiste una successione ξk tale che k ξk ∈ [x, xk ] e f (xk ) − f (x) =k ∇f (ξk ), xk − x k per ogni k. L’ipotesi che x sia un punto di minimo locale di f in X implica che f (xk ) − f (x) ≥ 0 per k >> 0 e quindi anche k ∇f (ξk ), xkt−x k≥ 0 per k k >> 0. Inoltre ξk −→ x perché ξk ∈ [x, xk ] per ogni k. Ciò implica k f ′ (x; v) =k ∇f (x), v k= lim k ∇f (ξk ), k−→∞ xk − x k≥ 0 tk Esempio 9.13. Consideriamo il caso n = 1, X = [0, 1] e Ω un intervallo aperto che contiene [0, 1]. Il cono tangente di X coincide con [0, ∞), il cono tangente in 1 con (−∞, 0]. Il lemma 9.12 afferma che se 0 è un punto di minimo locale di f in X , allora f ′ (0) ≥ 0, e se 1 è un punto di minimo locale in X , allora f ′ (1) ≤ 0. Osservazione 9.14. Il cono tangente T(X, x) in generale è piuttosto complicato, cosicché spesso non è possibile applicare direttamente il lemma 9.12. Descriveremo adesso, in alcuni casi importanti, condizioni di ottimalità più pratiche. 56 10. Le condizioni di Karush-Kuhn-Tucker Situazione 10.1. Siano date funzioni f, g1 , . . . , gm , h1 , . . . , hp : Rn −→ R tutte di classe C1 . Sono ammessi i casi m = 0 o p = 0. Sia X := (g1 ≤ 0, . . . , gm ≤ 0, h1 = 0, . . . , hp = 0). Poniamo anche g := (g1 , . . . , gm ), h := (h1 , . . . , hp ). Il risultato principale di questo capitolo è il teorema 10.11 che, come conseguenza del lemma di Farkas, ci fornisce una condizione necessaria e facilmente verificabile per un minimo locale di f in X . Definizione 10.2. Per x ∈ X sia I(x) := {i ∈ {1, . . . , m} | gi (x) = 0}. Definizione 10.3. Per x ∈ X sia Tl(x) := {v ∈ Rn |k ∇gi (x), v k≤ 0 per ogni k ∇hj (x), v k= 0 i ∈ I(x), per ogni j ∈ {1, . . . , p}} Tl(x) si chiama il cono tangente linearizzato di X in x. Si noti che esso nel caso generale dipende non solo da X , ma anche dalla scelta delle restrizioni gi ed hj che usiamo per descrivere X . È immediato che Tl(x) è un cono nel senso della def. 5.7. Proposizione 10.4. Sia x ∈ X . Allora T(X, x) ⊂ Tl(x). Dimostrazione. La dimostrazione è molto simile alla dimostrazione del lemma 9.12. Sia v ∈ T(X, x). Allora esistono successioni xk ∈ [X −→ x] e k tk ∈ [R k ++ xk − x ∈ [Rn −→ v]. −→ 0] tali che tk k (1) Sia i ∈ I(x). Per il teorema del valor medio esiste una successione ξk tale che ξk ∈ [x, xk ] e gi (xk ) = gi (x)+ k ∇gi (ξk ), xk − x k per ogni k k. Per ipotesi però gi (x) = 0 perché i ∈ I(x) e gi (xk ) ≤ 0 perché ogni k≤ 0 xk ∈ X . Perciò k ∇gi (ξk ), xk −x k≤ 0 e quindi anche k ∇gi (ξk ), xkt−x k per ogni k. Passando al limite otteniamo k ∇gi (x), v k≤ 0. (2) Nello stesso modo si dimostra che k ∇hj (x), v k= 0 per ogni j = 1, . . . , p. Definizione 10.5. Un punto x ∈ X si dice regolare nel senso di Abadie, se T(X, x) = Tl(x). Esempio 10.6. Troveremo fra poco semplici condizioni sufficienti affinché un punto sia regolare nel senso di Abadie. Non è comunque sempre cosı̀, come mostra il seguente esempio. Sia X := {x ∈ R2 | 0 ≤ x2 ≤ (x1 )3 } = {x ∈ R2 | −x2 ≤ 0, x2 − (x1 )3 ≤ 0} X è quindi l’insieme dei punti nel primo quadrante che si trovano al di sotto della parabola cubica data dall’equazione x2 = (x1 )3 . 57 Sia x0 := 0 0 . È chiaro che T(X, x) = R+ × 0. 2 2 1 3 Con g1 (x) invece := −x e g2 (x) := x − (x) troviamo 0 0 −3(x1 )2 , da cui ∇g1 (x0 ) = ∇g1 (x) = , e ∇g2 (x) = −1 −1 1 0 da cui ∇g2 (x0 ) = . 1 Siccome g1 (x0 ) = g2 (x0 ) = 0, abbiamo I(x0 ) = {1, 2}, cosicché per v ∈ R2 si ha v ∈ Tl(x0 ) ⇐⇒ −v 2 ≤ 0 e v 2 ≤ 0 ⇐⇒ v 2 = 0, per cui Tl(x0 ) = R × 0. T(X, x0 ) non coincide perciò con Tl(x0 ), cosicché x0 non è un punto regolare nel senso di Abadie. Definizione 10.7. Definiamo un’applicazione L : Rn × Rm × Rp −→ R tramite p m X X µj hj (x) λi gi (x) + L(x, λ, µ) := f (x) + j=1 i=1 = f (x)+ k λ, g(x) k + k µ, h(x) k L’applicazione L si chiama la funzione di Lagrange di (X, f ) (o più precisamente della situazione descritta dalle funzioni f, g, h). Definizione 10.8. Le condizioni di Karush-Kuhn-Tucker (KKT) rispetto alla situazione 10.1 sono ∇x L(x, λ, µ) = 0 g(x) ≤ 0 h(x) = 0 λ≥0 k λ, g(x) k= 0 Il gradiente ∇x rispetto alla variabile x è definito da p m X X µj ∇hj (x) λi ∇gi (x) + ∇x L(x, λ, µ) := ∇f (x) + j=1 i=1 I parametri λ1 , . . . , λm , µ1 , . . . , µp (oppure anche i vettori λ, µ) vengono detti moltiplicatori di Lagrange. Un punto (x, λ, µ), in cui le condizioni di KKT sono soddisfatte, si chiama un punto di KKT di (X, f ) (o più precisamente della situazione descritta dalle funzioni f, g, h). Si noti che la seconda e la terza condizione implicano che x ∈ X . Osservazione 10.9. Se m = p = 0, le condizioni KKT si riducono alla condizione ∇f (x) = 0. Osservazione 10.10. (x, λ, µ) sia un punto di KKT di (X, f ). Allora λi gi (x) = 0 per ogni i = 1, . . . , m. Quindi per ogni i = 1, . . . , m almeno uno dei due numeri λi e gi (x) deve essere uguale a zero. 58 Se inoltre λi + gi (x) 6= 0 per ogni i = 1, . . . , m (cioè se λi e gi (x) non si annullano simultaneamente per nessun indice i), allora (x, λ, µ) si dice un punto di KKT stretto di (X, f ). Teorema 10.11. Sia x ∈ X un punto regolare nel senso di Abadie. x sia un punto di minimo locale di f in X . Allora esistono λ ∈ Rm e µ ∈ Rp tali che (x, λ, µ) sia un punto di KKT di (X, f ). Dimostrazione. Per il lemma 9.12 abbiamo f ′ (x; v) ≥ 0 per ogni v ∈ T(X, x) e quindi, per ipotesi, per ogni v ∈ Tl(x). Sia I(x) = {i1 , . . . , ik } con i1 < . . . < ik , quindi k = |I(x)| (è ammesso il caso I(x) = ∅ e quindi k = 0). Consideriamo la matrice A := (−∇gi1 (x), . . . , −∇gik (x), ∇h1 (x), −∇h1 (x), . . . , ∇hp (x), −∇hp (x)) che appartiene a Rnk+2p . Allora v ∈ Tl(x) ⇐⇒ v t A ≥ 0 ⇐⇒ v t ∈ (Rn A ≥ 0) Siccome f ′ (x; v) = v t ∇f (x), abbiamo quindi (Rn A ≥ 0)∇f (x) ≥ 0. k+2p Per il lemma di Farkas (teorema 1.26) ciò implica ∇f (x) ∈ AR+ . È quindi possibile trovare coefficienti (λi1 , . . . , λik , µ11 , µ12 , . . . , µp1 , µp2 ) ∈ R+ tali che ∇f (x) = −λi1 ∇gi1 (x) − . . . − λik ∇gik (x) + (µ11 − µ12 )∇h1 (x) + . . . + +(µp1 − µp2 )∇hp (x) Ponendo λi := 0 per i ∈ / I(x) e µj := µj1 − µj2 per j = 1, . . . , p abbiamo ∇x L(x, λ, µ) := ∇f (x) + m X λi ∇gi (x) + p X j=1 i=1 con g(x) ≤ 0, h(x) = 0, λ ≥ 0, k λ, g(x) k= 0. (x, λ, µ) è perciò un punto di KKT. 59 µj ∇hj (x) = 0 11. Il caso generale Situazione 11.1. Come nel capitolo precedente siano date funzioni f, g1 , . . . , gm , h1 , . . . , hp : Rn −→ R tutte di classe C1 . Sia ancora X := (g1 ≤ 0, . . . , gm ≤ 0, h1 = 0, . . . , hp = 0). Poniamo g := (g1 , . . . , gm ), h := (h1 , . . . , hp ). Denotiamo con ∇h := (∇h1 , . . . , ∇hp ) la trasposta della jacobiana di h. L’insieme di indici I(x) è stato definito nella def. 10.2. Lemma 11.2. Sia x ∈ X . I vettori ∇h1 (x), . . . , ∇hp (x) siano linearmente indipendenti e v ∈ Rn tale che k ∇hj (x), v k= 0 per ogni j = 1, . . . , p. Allora esistono ε > 0 e una curva ϕ : (−ε, ε) −→ Rp con le seguenti proprietà: (1) ϕ è di classe C1 . (2) ϕ(0) = 0. (3) ϕ̇(0) = 0. (4) hj (x+tv +∇h(x)ϕ(t)) = 0 per ogni t ∈ (−ε, ε) ed ogni j = 1, . . . , p. Se le funzioni hj sono tutte di classe C2 , anche ϕ è di classe C2 . Dimostrazione. Per ogni j = 1, . . . , p definiamo un’applicazione Hj : Rp+1 −→ R tramite Hj (y, t) := hj (x + tv + ∇h(x)y) ottenendo cosı̀ una funzione H : Rp+1 −→ Rp con H(0, 0) = 0. La jacobiana Hy′ (0, 0) è data da Hy′ (0, 0) = (∇h(x))t ∇h(x) ed è quindi invertibile essendo per ipotesi i vettori ∇h1 (x), . . . , ∇hp (x), cioè le colonne della matrice ∇h(x), linearmente indipendenti. Per il teorema delle funzioni implicite esistono ε > 0 ed una funzione ϕ : (−ε, ε) −→ Rp di classe C1 (risp. di classe C2 se anche le funzioni hj sono tutte di classe C2 ) tali che ϕ(0) = 0 e H(ϕ(t), t) = 0 per ogni t ∈ (−ε, ε). Inoltre ϕ̇(t) = −(Hy′ (ϕ(t), t))−1 Ht′ (ϕ(t), t), per cui ϕ̇(0) = −(Hy′ (0, 0))−1 Ht′ (0, 0) = −(Hy′ (0, 0))−1 (∇h(x))t v = 0 H(ϕ(t), t)) = 0 significa però proprio hj (x+tv +∇h(x)ϕ(t)) = 0 per ogni j = 1, . . . , p. Corollario 11.3. Sia x ∈ X . I vettori ∇h1 (x), . . . , ∇hp (x) siano linearmente indipendenti e v ∈ Rn tale che k ∇hj (x), v k= 0 per ogni j = 1, . . . , p. Allora esistono ε > 0 e una curva γ : (−ε, ε) −→ Rn con le seguenti proprietà: (1) γ è di classe C1 . (2) γ(0) = x. 60 (3) γ̇(0) = v . (4) hj (γ(t)) = 0 per ogni t ∈ (−ε, ε) ed ogni j = 1, . . . , p. Se le funzioni hj sono tutte di classe C2 , anche γ è di classe C2 . Dimostrazione. Nel lemma 11.2 è sufficiente porre γ(t) := x + tv + ∇h(x)ϕ(t). Proposizione 11.4. Sia x ∈ X . I vettori ∇h1 (x), . . . , ∇hp (x) siano linearmente indipendenti e v ∈ Rn tale che k ∇hj (x), v k= 0 per ogni j = 1, . . . , p, come nel lemma 11.2, ma anche k ∇gi (x), v k< 0 per ogni i ∈ I(x). Allora esistono ε > 0 e una curva γ : (−ε, ε) −→ Rn con le seguenti proprietà: (1) γ è di classe C1 . (2) γ(0) = x. (3) γ̇(0) = v . (4) hj (γ(t)) = 0 per ogni t ∈ (−ε, ε) ed ogni j = 1, . . . , p. (5) gi (γ(t)) < 0 per ogni t ∈ (0, ε) ed ogni i = 1, . . . , m. Se le funzioni gi ed hj sono tutte di classe C2 , anche γ è di classe C2 . Dimostrazione. Usiamo la curva γ del cor. 11.3, restringendo, se necessario, ε. Infatti per i ∈ / I(x), dalla continuità di gi segue gi (γ(t)) < 0 per ogni t sufficientemente piccolo. Possiamo quindi assumere che gi (γ(t)) < 0 per ogni t ∈ (−ε, ε) ed ogni i = 1, . . . , m. Sia i ∈ / I(x) fissato. Definiamo α : (−ε, ε) −→ R tramite α(t) := gi (γ(t)). Allora α̇(t) =k ∇gi (γ(t)), γ̇(t) k e quindi α̇(0) =k ∇gi (γ(0)), γ̇(0) k=k ∇gi (x), v k< 0. Ciò implica α(t) < 0 per ogni t > 0 sufficientemente piccolo. Restringendo ancora ε troviamo che gi (γ(t)) < 0 per ogni i = 1, . . . , m ed ogni t ∈ (0, ε). Definizione 11.5. Un punto x ∈ X si dice regolare nel senso di MangasarianFromovitz, se sono soddisfatte le seguenti condizioni: (1) I vettori ∇h1 (x), . . . , ∇hp (x) sono linearmente indipendenti. (2) Esiste un vettore v ∈ Rn tale che k ∇hj (x), v k= 0 per ogni j = 1, . . . , p e tale che k ∇gi (x), v k< 0 per ogni i ∈ I(x). In tal caso v si chiama un vettore di Mangasarian-Fromovitz per x. Queste condizioni coincidono con le ipotesi della prop. 11.4. Lemma 11.6. Sia x ∈ X un punto regolare nel senso di MangasarianFromovitz e sia v un vettore di Mangasarian-Fromovitz per x. Sia u ∈ Tl(x). Allora u + θv ∈ T(X, x) per ogni θ > 0. Dimostrazione. Sia θ > 0 fissato. (1) Allora anche u + θv è un vettore di Mangasarian-Fromovitz per x. Infatti, usando l’ipotesi che u ∈ Tl(x), abbiamo 61 k ∇hj (x), u + θv k=k ∇hj (x), u k +θ k ∇hj (x), v k= 0 per ogni j = 1, . . . , p e k ∇gi (x), u + θv k=k ∇gi (x), u k +θ k ∇gi (x), v k< 0 per ogni i ∈ I(x). (2) Per la prop. 11.4 esistono ε > 0 e una curva γ : (−ε, ε) −→ Rn con le proprietà enunciate in quella proposizione, con u + θv al posto di v . In particolare abbiamo γ(0) = x e γ̇(0) = u + θv . Ma allora γ(1/k) − γ(0) γ(1/k) − x u + θv = γ̇(0) = lim = lim k−→∞ k−→∞ 1/k 1/k e siccome lim γ(1/k) = γ(0) = x, vediamo che u + θv ∈ T(X, x). k−→∞ Proposizione 11.7. Sia x ∈ X un punto regolare nel senso di MangasarianFromovitz. Allora x è un punto regolare nel senso di Abadie. Dimostrazione. Per la prop. 10.4 dobbiamo dimostrare che Tl(x) ⊂ T(X, x). Siano u ∈ Tl(x) e v un vettore di Mangasarian-Fromovitz per x. Per il lemma 11.6 u + θv ∈ T(X, x) per ogni θ > 0. Ma lim u + θv = u, θ−→0 quindi vediamo che u ∈ T(X, x). Dal lemma 9.8 sappiamo però che T(X, x) è chiuso e quindi u ∈ T(X, x). Teorema 11.8. Sia x ∈ X regolare nel senso di Mangasarian-Fromovitz. x sia inoltre un punto di minimo locale di f in X . Allora esistono λ ∈ Rm e µ ∈ Rp tali che (x, λ, µ) sia un punto di KKT di (X, f ). Dimostrazione. Ciò segue dal teorema 10.11 applicando la prop. 11.7. Definizione 11.9. Sia x ∈ X . Diciamo che x è un punto a vincoli linearmente indipendenti, se i gradienti ∇gi (x) per i ∈ I(x) e ∇h1 (x), . . . , ∇hp (x) sono linearmente indipendenti. Lemma 11.10. x sia un punto a vincoli linearmente indipendenti. Allora x è regolare nel senso di Mangasarian-Fromovitz. Dimostrazione. La condizione (1) della def. 11.5 è evidentemente soddisfatta. (2) Possiamo assumere che I(x) = {1, . . . , q} con 0 ≤ q ≤ m. Per ipotesi esistono vettori Aq+p+1 , . . . , An ∈ Rn tali che la matrice A := (∇g1 (x), . . . , ∇gq (x), ∇h1 (x), . . . , ∇hp (x), Aq+p+1 , . . . , An ) sia invertibile. Sia b := (−1, . . . , −1, 0, . . . , 0, 1 . . . 1)t . Allora l’equazione At v = b | {z } | {z } q p possiede un’unica soluzione v perché la matrice A è invertibile. È immediato che v soddisfa la condizione (2) della def. 11.5. Teorema 11.11. x sia un punto di minimo locale di f in X e allo stesso tempo anche un punto a vincoli linearmente indipendenti. 62 Allora esistono, univocamente determinati, λ ∈ Rm e µ ∈ Rp tali che (x, λ, µ) sia un punto di KKT di (X, f ). Dimostrazione. (1) Per il lemma 11.10 l’esistenza di λ e µ segue dal teorema 11.8. (2) Dimostriamo l’unicità. Assumiamo di nuovo che I(x) = {1, . . . , k} con 0 ≤ k ≤ m. Dall’oss. 10.10 sappiamo che λi = 0 per i > k. Inoltre k X i=1 λi ∇gi (x) + p X µj ∇hj (x) = −∇f (x) j=1 Questa rappresentazione, e quindi i numeri λ1 , . . . , λk , µ1 , . . . , µp , sono univocamente determinati perché, per ipotesi, i vettori ∇g1 (x), . . . , ∇gk (x), ∇h1 (x), . . . , ∇hp (x) sono linearmente indipendenti. 63 12. Restrizioni lineari Situazione 12.1. Siano f : Rn −→ R di classe C1 ed a1 , . . . , am , b1 , . . . , bp ∈ Rn , α1 , . . . , αm , β1 , . . . , βp ∈ R. Sia X := {x ∈ Rn | a1 x ≤ α1 , . . . , am x ≤ αm , b1 x = β1 , . . . , bp x = βp } Ponendo gi := ai x − αi per i = 1, . . . , m ed hj := bj x − βj per x x j = 1, . . . , p abbiamo X = (g1 ≤ 0, . . . , gm ≤ 0, h1 = 0, . . . , hp = 0) come nei capitoli precedenti. Proposizione 12.2. Ogni punto di X è regolare nel senso di Abadie. Dimostrazione. Sia x ∈ X . Per la prop. 10.4 dobbiamo solo dimostrare che Tl(x) ⊂ T(X, x). Sia v ∈ Tl(x). Siccome ∇gi (x) = (ai )t e ∇hj (x) = (bj )t per ogni i, j , ciò significa che ai v ≤ 0 per ogni i ∈ I(x) e bj v = 0 per ogni j = 1, . . . , p. Per k ∈ N + 1 siano tk := grande abbiamo allora 1 k ed xk := x + tk v . Per k sufficientemente ai xk = ai (x + tk v) = αi + tk ai v ≤ αi per i ∈ I(x) ai xk = ai (x + tk v) = ai x + tk ai v < αi per i ∈ / I(x) bj xk = bj (x + tk v) = βj + tk bj v = βj per j = 1, . . . , p Ciò mostra che xk ∈ X per k >> 0. Inoltre da un lato xk −→ x, xk − x = v −→ v , per cui v ∈ T(X, x). dall’altro tk k k k Teorema 12.3. x sia un punto di minimo locale di f . Allora esistono λ ∈ Rm e µ ∈ Rp tali che sono soddisfatte le seguenti condizioni: (∇f (x))t + m X λi ai + p X µj bj = 0 j=1 i=1 ai x ≤ αi per i = 1, . . . , m bj x per = βj j = 1, . . . , p λ≥0 λi (ai x − αi ) = 0 per i = 1, . . . , m Dimostrazione. Per la prop. 12.2 x è regolare nel senso di Abadie, per cui possiamo applicare il teorema 10.11. Le condizioni nell’enunciato sono esattamente le condizioni di KKT, tenendo conto dell’oss. 10.10. 64 13. Restrizioni convesse Osservazione 13.1. X sia un sottoinsieme convesso di Rn ed f : Rn −→ R una funzione convessa. Se x è un punto di minimo locale di f in X , allora x è anche un punto di minimo globale, cioè f (x) ≤ f (y) per ogni y ∈ X . Possiamo quindi tralasciare le specificazioni ”locale” risp. ”globale”. Dimostrazione. Altrimenti esiste un y ∈ X tale che f (y) < f (x). Siccome x è un punto di minimo locale, possiamo trovare t ∈ (0, 1] con f (x + t(y − x)) ≥ f (x). La funzione f è però convessa, per cui f (x + t(y − x)) ≤ f (x) + tf (y) − tf (x) < f (x) + tf (x) − tf (x) = f (x) una contraddizione. Nell’ultima disuguaglianza abbiamo utilizzato la condizione che t > 0. Lemma 13.2. La funzione f : Rn −→ R sia di classe C1 . Allora sono equivalenti: (1) f è convessa. (2) Per x, y ∈ Rn vale k ∇f (x), y − x k≤ f (y) − f (x). Dimostrazione. Corsi di Analisi. Situazione 13.3. Siano f, g1 , . . . , gm : Rn −→ R funzioni convesse di classe C1 e b1 , . . . , bm ∈ Rn , β1 , . . . , βp ∈ R. Siano X := {x ∈ Rn | g1 (x) ≤ 0, . . . , gm (x) ≤ 0, b1 x = β1 , . . . , bp x = βp } e := {x ∈ Rn | g1 (x) < 0, . . . , gm (x) < 0, b1 x = β1 , . . . , bp x = βp } X e sono convessi. È immediato che gli insiemi X e X Osservazione 13.4. Sia (x, λ, µ) ∈ Rn × Rm × Rp . Allora sono equivalenti: (1) (x, λ, µ) è un punto di KKT di (X, f ). (2) ∇f (x) + X λi ∇gi (x) + i∈I(x) gi (x) ≤ 0 per ogni bj x = βj p X µj (bj )t = 0 j=1 i = 1, . . . , m per ogni j = 1, . . . , p λ≥0 k λ, g(x) k= 0 / I(x) per Dimostrazione. È sufficiente osservare che λi = 0 per i ∈ l’oss. 10.10. Proposizione 13.5. (x, λ, µ) ∈ Rn × Rm × Rp sia un punto di KKT di (X, f ). Allora x è un punto di minimo di f in X . 65 Dimostrazione. Per definizione abbiamo x ∈ X . Sia y ∈ X . Dalle condizioni di KKT e dal lemma 13.2 segue f (y) ≥ f (x)+ k ∇f (x), y − x k = f (x) − X λi k ∇gi (x), y − x k − = f (x) − µj bj (y − x) j=1 i∈I(x) X p X λi k ∇gi (x), y − x k i∈I(x) dove abbiamo tenuto conto dell’oss. 13.4 e del fatto che anche y ∈ X . Però anche le funzioni gi sono convesse, perciò dal lemma 13.2 otteniamo X X λi k ∇gi (x), y − x k≤ λi (gi (y) − gi (x)) i∈I(x) i∈I(x) = X λi gi (y) ≤ 0 i∈I(x) e ciò mostra f (x) ≤ f (y). Definizione 13.6. Per x ∈ X sia Tls(x) := {v ∈ Rn |k ∇gi (x), v k< 0 per ogni bj v = 0 per i ∈ I(x), j = 1, . . . , p} Tls(x) si chiama il cono tangente linearizzato stretto di X in x. Lemma 13.7. Sia x ∈ X . Allora Tls(x) ⊂ T(X, x). Dimostrazione. Sia v ∈ Tls(x). Per k ∈ N + 1 poniamo tk := xk := x + tk v . Allora xk −→ x, tk ∈ [R++ −→ 0] e k 1 k e k xk − x = v ∈ [Rn −→ v]. Pertanto è sufficiente dimostrare che tk k k xk ∈ X per k >> 0. (1) In primo luogo per ogni j = 1, . . . , p ed ogni k ∈ N + 1 abbiamo bj xk = bj (x + tk v) = bj x + tk bj v = βj perché x ∈ X e v ∈ Tls(x). (2) Sia i ∈ {1, . . . , m} ed i ∈ / I(x). Allora gi (x) < 0 e quindi gi (xk ) < 0 per k >> 0. (3) Sia i ∈ I(x) e quindi gi (x) = 0. Per ipotesi gi (x + tv) − gi (x) gi (xk ) gi (x + tv) 0 >k ∇gi (x), v k= lim = lim = lim t−→0 t−→0 k−→∞ t t tk Ciò implica gi (xk ) < 0 per k >> 0. e 6= ∅, allora Lemma 13.8. Sia x ∈ X . Se X Tls(x) = T(X, x) = Tl(x). Dimostrazione. (1) Siccome per il lemma 9.8 T(X, x) è chiuso, la prop. 10.4 e il lemma 13.7 implicano che Tls(x) ⊂ T(X, x) ⊂ Tl(x). 66 (2) È sufficiente dimostrare quindi che Tl(x) ⊂ Tls(x). Sia v ∈ Tl(x) e quindi k ∇gi (x), v k≤ 0 per ogni i ∈ I(x) e bj v = 0 per ogni j = 1, . . . , p. e 6= ∅, perciò possiamo trovare y ∈ Rn tale che gi (y) < 0 Per ipotesi X per ogni i = 1, . . . , m e bj y = βj per ogni j = 1, . . . , p. Dal lemma 13.2 abbiamo k ∇gi (x), y − x k≤ gi (y) − gi (x) = gi (y) < 0 per ogni i ∈ I(x), mentre bj (y − x) = bj y − bj x = βj − βj = 0 per ogni j = 1, . . . , p. Se per k ∈ N + 1 poniamo tk := k1 e wk := v + tk (y − x), abbiamo quindi k ∇gi (x), wk k=k ∇gi (x), v k +tk k ∇gi (x), y − x k< 0 per ogni i ∈ I(x) e bj wk = bj v = 0, cosicché wk ∈ Tls(x) per ogni k ∈ N + 1. Però lim wk = v e vediamo che v ∈ Tls(x). k−→∞ e 6= ∅. Allora per x ∈ X sono equivalenti: Teorema 13.9. Sia X (1) x è un punto di minimo per f in X . (2) Esiste (λ, µ) ∈ Rm × Rp tale che (x, λ, µ) è un punto di KKT di (X, f ). Dimostrazione. (1)=⇒(2): Lemma 13.8 e teorema 10.11 (2)=⇒(1): Prop. 13.5. Teorema 13.10. Le funzioni gi per i = 1, . . . , m siano della forma gi (x) = ai x − αi con ai ∈ Rn ed αi ∈ R. Allora per x ∈ X sono equivalenti: (1) x è un punto di minimo per f in X . (2) Esiste (λ, µ) ∈ Rm × Rp tale che (x, λ, µ) è un punto di KKT di (X, f ). e = ∅, allora possiamo aggiungere le funDimostrazione. Se qui X i zioni a x − αi alle funzioni bj x − βj , trovandoci cosı̀ in un caso x x in cui le ipotesi del teorema 13.9 (o del lemma 13.8) sono banalmente soddisfatte. 67 68 Bibliografia M. Aigner: Diskrete Mathematik. Vieweg 2004. W. Alt: Nichtlineare Optimierung. Vieweg 2002. I. Baroncelli: Ottimizzazione genetica. Tesi, Ferrara 1991. K. Bennett/O. Mangasarian: Robust linear programming discrimination of two linearly inseparable sets. Opt. Meth. Software 1 (1992), 23-34. D. Bertsekas: Nonlinear programming. Athena Scientific 1999. S. Boyd/L. Vandenberghe: Convex optimization. Cambridge UP 2008. R. Cottle/E. Johnson/R. Wets: George B. Dantzig (1914-2005). Notices AMS March 2007, 344-362. G. Dantzig: Linear programming. Operations Res. 50/1 (2002), 42-47. J. Eaton/D. Bateman/S. Hauberg: GNU Octave. Network Theory 2008. S. Gass: The life and times of the father of linear programming. OR/MS Today August 2005, 10p. C. Geiger/C. Kanzow: Theorie und Numerik restringierter Optimierungsaufgaben. Springer 2002. J. Gross/J. Yellen: Graph theory and its applications. Chapman & Hall 2006. F. Jarre/J. Stoer: Optimierung. Springer 2004. D. Jungnickel: Optimierungsmethoden. Springer 1999. O. Mangasarian/W. Street/W. Wolberg: Breast cancer diagnosis and prognosis via linear programming. Op. Res. 43/4 (1995), 570-578. J. Matoušek/B. Gärtner: Understanding and using linear programming. Springer 2007, 220p. Eur 41. J. Nocedal/S. Wright: Numerical optimization. Springer 2006. 69