Modelli e algoritmi per problemi di equilibrio di reti
Transcript
Modelli e algoritmi per problemi di equilibrio di reti
Modelli e algoritmi per problemi di equilibrio di reti Marco Sciandrone Dipartimento di Ingegneria dell’Informazione Università di Firenze E-mail: [email protected] 1 Sommario In questi appunti vengono considerati modelli di reti di traffico, ispirati ai principi di Wardrop e finalizzati alla previsione di flussi lungo gli archi di una rete di trasporto derivanti dalle scelte che ogni singolo utente effettua per determinare li cammino dalla propria origine alla propria destinazione. Faremo essenzialmente riferimento al modello basato sul concetto di equilibrio di Wardrop. Verrà mostrato che, sotto opportune ipotesi, calcolare un punto di equilibrio equivale a risolvere una disequazione variazionale la cui soluzione, a sua volta, sotto ulteriori ipotesi, può essere ottenuta risolvendo un problema di minimizzazione di una funzione convessa con vincoli lineari. In relazione al problema di programmazione convessa, verranno messe in evidenza le maggiori difficoltà che esso presenta, e verranno analizzati gli algoritmi usualmente adottati. 1 Notazione Introduciamo preliminarmente la notazione adottata. Siano - G = hN, Ai un grafo orientato; - P un insieme di coppie origine/destinazione (O-D); - dp la domanda tra la coppia origine/destinazione p ∈ P ; - Kp l’insieme dei cammini che connettono la coppia p; - K l’insieme di tutti i cammini, ossia K = ∪p∈P Kp ; - δa,k una funzione tale che δa,k = 1 se a appartiene al cammino k 0 altrimenti Il flusso del cammino k è hk , con hk ≥ 0. Il flusso di un arco a ∈ A, indicato con va , è dato dalla somma dei flussi dei cammini che attraversano l’arco, ossia X va = hk δa,k . k∈K Introdotta una matrice di incidenza arco-cammino ∆(|A| × |K|), possiamo esprimereF il vettore dei flussi degli archi v in funzione del vettore dei flussi dei cammini h nel modo seguente v = ∆h. Esiste una funzione definita dall’utente che fornisce, per ogni arco a ∈ A con flusso va , un costo sa (v) (stiamo assumendo, per generalità, che il costo di un arco dipende dal flusso degli archi della rete). Il costo di un cammino k, denotato con sk , è la somma dei costi degli archi appartenenti al cammino k X sa (v)δa,k . sk = a∈a 2 Per ogni coppia origine-destinazione p, la somma dei flussi dei cammini deve essere uguale alla domanda dp , ossia abbiamo il vincolo X hk = dp . k∈Kp Il costo della rete S(v) è la somma totale dei costi degli utenti, ossia X XX X S(v) = hk sk = hk δa,k sa (v) = va sa (v). k∈K a∈A k∈K a∈A Il problema di assegnamento di traffico in una rete di trasporto riguarda la previsione di flussi lungo gli archi della rete derivanti dalle scelte che ogni singolo utente effettua per determinare li cammino dalla propria origine alla propria destinazione. Nel seguito introdurremo i principi di ottimalità di Wardrop, che sono usualmente adottati nella formulazione del problema di assegnamento di trafficoIllustriamo con un esempio, infine, la notazione introdotta. Si consideri la rete descritta in figura 1. Abbiamo: - due coppie O-D: la coppia (2-3) e la coppia (4-3), quindi l’insieme P è {(2 − 3), (4 − 3)}; - la domanda d1 della coppia (2-3) è 2, la domanda d2 della coppia (4-3) è 2; - l’insieme K1 dei cammini della coppia (2-3) è {(2, 3), (2, 1, 3)}; l’insieme K2 dei cammini della coppia (4-3) è {(4, 3), (4, 1, 3)}; - si assumano le seguenti funzioni di costo s1 (v) = 2 s2 (v) = 15 s3 (v) = 4 s4 (v) = 16 s5 (v) = v5 + v52 ; - ponendo i flussi dei cammini come segue h2,3 = 1 h2,1,3 = 1 h4,3 = 1 h4,1,3 = 1, abbiamo i seguenti flussi di archi v1 = 1 v2 = 1 v3 = 1 v4 = 1 v5 = 1 + 1 = 2, e i seguenti costi dei cammini s2,3 = 15 s2,1,3 = 2 + (2 + 22 ) = 8 s4,3 = 16 s4,1,3 = 4 + (2 + 22 ) = 10. Osserviamo che per entrambe le coppie tutti i cammini sono utilizzati (hk > 0). Secondo il principio di equilibrio di Wardrop, descritto formalmente nel paragrafo successivo, la rete non è in equilibrio, perché per ognuna delle due coppie O-D, i cammini utilizzati (hk > 0) hanno costi differenti. Secondo il principio di Wardrop gli utenti si distribuiscono in modo che, per ogni coppia O-D, tutti i cammini utilizzati hanno lo stesso costo, e quelli non utilizzati hanno un costo non inferiore. 3 2 v2 v1 v5 1 v3 3 v4 4 Figure 1: Esempio di rete con due coppie O-D: (2,3) e (4,3) 2 I principi di ottimalità di Wardrop Nel problema di assegnamento di traffico usualmente due principi di ottimalità di Wardrop sono adottati: - il primo principio è basato sull’analisi di un comportamento intuitivo per una rete di traffico, secondo cui ogni utente tende a minimizzare il proprio tempo di viaggio, di conseguenza questo principio è detto di tipo user equilibrium; - il secondo principio, di tipo system optimum, corrisponde alla situazione in cui deve essere minimizzato il tempo complessivo di viaggio di tutti gli utenti.. Nel seguito descriveremo formalmente i modelli relativi ai due principi, e analizzeremo in maggiore dettaglio quello corrispondente al principio di tipo user equilibrium. 2.1 Il primo principio di Wardrop di tipo “user equilibrium” Il primo principio di Wardrop afferma che all’equilibrio il costo di un cammino effettivamente utilizzato (hk > 0) per una coppia origine/destinazione è minore o uguale del costo di qualsiasi altro cammino che congiunge la stessa coppia. L’equilibrio di Wardrop è del tipo “user equilibrium” (UE) poiché ogni utente sceglie la strada che è migliore per se stesso. In particolare, un equilibrio di questo tipo viene raggiunto quando nessun utente può abbassare il proprio costo di trasporto attraverso una azione unilaterale. Ciascuno utente agisce in modo non cooperativo. Nell’esempio della figura 1 si può verificare che la seguente soluzione costituisce un equilibrio h2,3 = 0 h2,1,3 = 2 h4,3 = 1 h4,1,3 = 1. Infatti i flussi degli archi sono v1 = 2 v2 = 0 v3 = 1 v4 = 1 4 v5 = 2 + 1 = 3, e i costi dei cammini diventano s2,3 = 15 s2,1,3 = 2 + (3 + 32 ) = 14 s4,3 = 16 s4,2,3 = 4 + (3 + 32 ) = 16, per cui il principio di Wardrop è soddisfatto (per ogni coppia tutti i cammini utilizzati hanno lo stesso costo, e i cammini non utilizzati hanno costo non inferiore). Possiamo ora introdurre in modo formale l’equilibrio di Wardrop. Denotiamo con up il costo del cammino minimo della coppia p, ossia poniamo up = min sk . k∈Kp Un vettore di flussi di cammini con componenti h⋆k , k ∈ K, e un vettore di costi minimi con componenti u⋆p , p ∈ P , soddisfano l’equilibrio di Wardrop se h⋆k > 0 sk (h⋆ ) − u⋆p ≥ 0 P k∈Kp sk (h⋆ ) = u⋆p implica h⋆k = dp ∀p ∈ P, hk ∈ Kp ∀p ∈ P, hk ∈ Kp ∀p ∈ P h⋆ ≥ 0, u⋆ ≥ 0. Le condizioni precedenti possono essere scritte in modo più sintetico come segue. ∀p ∈ P, hk ∈ Kp sk (h⋆ ) − u⋆p h⋆k = 0 ∀p ∈ P, hk ∈ Kp sk (h⋆ ) − u⋆p ≥ 0 P ⋆ ∀p ∈ P k∈Kp hk = dp (2) (3) h⋆ ≥ 0, u⋆ ≥ 0. 2.2 (1) (4) Il paradosso di Braess L’esempio di rete che mostriamo, noto come paradosso di Braess, evidenzia il fatto che il primo principio di Wardrop modella un comportamento non cooperativo degli utenti di una rete. Si consideri la rete definita nella parte sinistra della figura 2. Abbiamo: - una coppia O-D: la coppia (1-4), quindi l’insieme P è {(1 − 4)}; - la domanda d1 della coppia (1-4) è 6; - l’insieme K1 dei cammini della coppia (1-4) è {(1, 2, 4), (1, 3, 4)}; - si assumano le seguenti funzioni di costo s1 (v) = 10v1 s2 (v2 ) = v2 + 50 5 s3 (v3 ) = v3 + 50 s4 (v4 ) = 10v4 ; - ponendo i flussi dei cammini come segue h1,2,4 = 3 h1,3,4 = 3, abbiamo i seguenti flussi di archi v1 = 3 v2 = 3 v3 = 3 v4 = 3, e i seguenti costi dei cammini s1,2,4 = 30 + (3 + 50) = 83 s1,3,4 = (3 + 50) + 30 = 83, per cui possiamo concludere che il primo principio di Wardrop è soddisfatto (per ogni coppia tutti i cammini utilizzati hanno lo stesso costo, e i cammini non utilizzati hanno costo non inferiore). Si consideri ora la rete definita nella parte destra della figura 2. Si osservi che tale rete è stata ottenuta aggiungendo un arco alla rete precedentemente analizzata. In questo modo gli utenti hanno a disposizione un cammino in più, ossia il cammino (1 − 2 − 3 − 4). Si assuma la seguente funzione di costo per l’arco aggiunto: s(v5 ) = v5 + 10. La soluzione precedentemente trovata non costituisce per la nuova rete un equilibrio di Wardrop. Infatti, il costo del nuovo cammino, avente flusso pari a 0, è s1,2,3,4 = 30 + 10 + 30 = 70, e questo costo è strettamente minore del costo (pari a 83) dei due cammini ((1−2−4) e (1−3−4)) effettivamente utilizzati. Possiamo verificare che la soluzione in termini di flussi di cammino che fornisce un equilibrio di Wardrop è h1,2,4 = 2 h1,3,4 = 2 h1,2,3,4 = 2. Infatti, a tale soluzione corrispondono i flussi degli archi v1 = 4 v2 = 2 v3 = 2 v4 = 4 v5 = 2, per i quali si ottengono i seguenti costi dei cammini s1,2,4 = 40 + (2 + 50) = 92 s1,3,4 = (2 + 50) + 40 = 92, s1,2,3,4 = 40 + (2 + 10) + 40 = 92. Tutti i cammini utilizzati hanno lo stesso costo, non ci sono cammini a flusso nullo, per cui la rete è in equilibrio. Osserviamo che con l’aggiunta di un cammino in più, il costo della coppia (1 − 4) è passato da 83 a 92. Contrariamente a quello che intuitivamente si poteva attendere, aver fornito una possibilità in più agli utenti ha determinato un peggioramento della “qualità” del servizio, e ciò è conseguenza del comportamento non cooperativo degli utenti. 6 2 v1 2 v2 v1 4 1 v3 1 4 v5 v4 v3 v4 v2 3 3 Figure 2: Paradosso di Braess 2.3 Il secondo principio di Wardropo di tipo “system optimum” Analizziamo brevemente la formulazione del problema nel caso (virtuale) in cui ci sia un supervisore che gestisce la rete in modo centralizzato. L’obiettivo sarebbe quello di minimizzare il costo totale della rete (il tempo totale di trasporto) definito come segue X S= va sa (v), (5) a∈A con i vincoli di soddisfacimento delle domande delle varie coppie e i vincoli di non negatività delle variabili. Di conseguenza, il problema da risolvere sarebbe il seguente problema di ottimizzazione vincolata X minh,v va sa (v) a∈A P k∈Kp va = hk = dp P k∈K hk δa,k ∀p ∈ P ∀a ∈ A h≥0 3 Reti simmetriche: formulazione del problema di equilibrio come problema di ottimizzazione In questo paragrafo mostreremo che, sotto opportune ipotesi, il problema di determinare una soluzione di equilibrio di Wardrop è equivalente a quello di determinare la soluzione di un problema di ottimizzazione vincolata con funzione obiettivo convessa e vincoli lineari. A questo fine, verrà inizialmente definita una formulazione equivalente in termini di disequazione variazionale. Successivamente verranno introdotte delle ipotesi sulla matrice Jacobiana da cui segue, da risultati noti, l’equivalenza con un problema di ottimizzazione. 7 Abbiamo visto che, data una soluzione (h⋆ , u⋆ ) dell’equilibrio di Wardrop, possiamo determinare, in modo univoco, la soluzione v ⋆ in termini di flussi di archi mediante le relazioni X va⋆ = δak h⋆k ∀a ∈ A. k∈K Data una soluzione v ⋆ in termini di flussi di archi, possiamo determinare, in generale in modo non univoco, una soluzione h⋆ in termini di flussi di cammini, da cui si ottiene u⋆p = min sk (h⋆ ) k∈Kp ∀p ∈ P. Possiamo quindi indifferentemente riferirci a una soluzione di equilibrio come a una coppia (h⋆ , u⋆ ), o a una coppia (v ⋆ , h⋆ ). Diremo che un vettore di flussi di archi v è ammissibile se esiste un vettore di flussi di cammino h ≥ 0 tale che X hk = dp p∈P k∈Kp X va = δak hk a∈A k∈K Nel seguito assumiamo che valgano le ipotesi delle proposizioni 6 e 7 delle appendici B e C. Proposizione 1. Una coppia (v ⋆ , h⋆ ) è una soluzione di equilibrio se e solo se soddisfa le seguenti condizioni X sa (v ⋆ )(va − va⋆ ) ≥ 0 per ogni v ammissibile a∈a X h⋆k = dp p∈P k∈Kp va⋆ = (6) X δak h⋆k a∈A k∈K h⋆k ≥ 0 k ∈ K. Proof. Supponiamo che (h⋆ , u⋆ ) sia una soluzione di equilibrio. Mostreremo che, dato il vettore v ⋆ con componenti X δak h⋆k va⋆ = a ∈ A, k∈K (v ⋆ , h⋆ ) la coppia soddisfa le condizioni espresse dalla (6). X hk = dp , Osserviamo che dalle condizioni (1), (2), (4) segue, per ogni h ≥ 0 tale che k∈Kp (sk (h⋆ ) − u⋆p )(hk − h⋆k ) ≥ 0 Sommando otteniamo X X sk (h⋆ )(hk − h⋆k ) ≥ X p∈P p∈P k∈Kp 8 u⋆p ∀p ∈ P, k ∈ Kp . (7) X (8) k∈Kp (hk − h⋆k ) = 0. Utilizzando le relazioni sk (h) = X δak sa (v) X δak hk a∈A va = k∈K otteniamo XX X sa (v ⋆ )(δak hk − δak h⋆k ) = X sa (v ⋆ )(va − va⋆ ) ≥ 0. (9) a∈A a∈A p∈P k∈Kp Viceversa, ora supponiamo che valgano le condizioni espresse dalla (6). Mostreremo che la coppia (v ⋆ , h⋆ ) rappresenta una soluzione di equilibrio. Nelle ipotesi poste esiste ed è unico il vettore v̂ dei flussi degli archi. Per quanto dimostrato in precedenza risulta X sa (v̂)(va⋆ − v̂a ) ≥ 0. a∈A D’altra parte, per ipotesi abbiamo X sa (v ⋆ )(v̂a − va⋆ ) ≥ 0. a∈A Sommando membro a membro otteniamo X (sa (v ⋆ ) − sa (v̂)) (va⋆ − v̂a ) ≤ 0. a∈A La precedente relazione a l’ipotesi di s funzione monotona implicano (s(v ⋆ ) − s(v̂))T (v ⋆ − v̂) = 0, da cui segue, tenendo conto che s è strettamente monotona, v ⋆ = v̂. Dalla Proposizione 1 segue che il problema di calcolo di una soluzione di equilibrio può essere ricondotto a quello di risolvere una disequazione variazionale nella coppia (v, h), oppure nel vettore h (questa disequazione variazionale si ottiene utilizzando la (6) e la relazione tra v e h). Mostreremo ora che, sotto opportune ipotesi sui costi degli archi, il problema di calcolo di una soluzione di equilibrio è equivalente a quello di determinare la soluzione di un problema di minimizzazione con funzione obiettivo convessa e vincoli lineari. Ricordiamo che, data una funzione F : U → Rn continuamente differenziabile sull’insieme aperto e convesso U ⊆ Rn , se la matrice Jacobiana di F è simmetrica allora F è il gradiente di una funzione θ e risulta (a meno di una costante) θ(x) = Z 1 F (x0 + t(x − x0 ))T (x − x0 )dt, (10) 0 dove x0 è un punto arbitrario di U . Si assuma ora che la funzione di costo di ogni arco dipenda solo dal flusso dell’arco stesso, ossia sa (v) = sa (va ). (11) 9 Supponendo continuamente differenziabile la funzione s : R|A| → R|A| , abbiamo che la matrice Jacobiana di s esiste ed è simmetrica (in particolare, dalla (11) segue che è diagonale). Quindi esiste una funzione f : R|A| → R tale che Z 1 s(v 0 + t(v − v 0 ))T (v − v0 )dt. f (v) = 0 Posto v 0 = 0, tenendo conto dell’ipotesi (11), possiamo scrivere Z 1X XZ 1 sa (tva )va dt. sa (tva )va dt = f (v) = a∈A 0 0 a∈A Ponendo x = tva , si ottiene f (v) = XZ va sa (x)dx. a∈A 0 Supponiamo che le funzioni sa (va ) siano monotone strettamente crescenti. La funzione s risulta quindi strettamente monotona, di conseguenza, da risultati noti, la funzione f (v) risulta strettamente convessa. Infatti, sotto ipotesi di continua differenziabilità abbiamo che una funzione è (strettamente) convessa se e solo se il suo gradiente è (strettamente) monotono. Determinare una soluzione (v ⋆ , h⋆ ) equivale a determinare una soluzione del seguente problema strettamente convesso di minimizzazione X Z va min sa (x) dx a∈A 0 P k∈Kp hk = dp hk ≥ 0 va = P ∀p ∈ P (12) ∀k∈K k∈K δak hk ∀a ∈ A In modo equivalente, con una semplice sostituzione X δak hk , va = k∈K possiamo formulare il problema (12) come segue P X Z k∈K δak hk sa (x) dx min a∈A 0 P k∈Kp hk = dp ∀p ∈ P hk ≥ 0 (13) ∀k∈K Possiamo ora dimostrare che le derivate della funzione obiettivo (13) rappresentano i costi dei vari cammini. Proposizione 2. Si consideri il problema (13). La derivata parziale della funzione obiettivo rispetto al flusso di cammino hk è il costo sk del cammino stesso. 10 Dim. Per dimostrare la tesi dobbiamo preliminarmente richiamare la formula di Leibniz R b(y) R b(y) ∂ ∂ ∂y a(y) f (x, y) dx = a(y) ∂y f (x, y) dx +f (b(y), y) ∂b(y) ∂y −f (a(y), y) ∂a(y) ∂y Indicando con f (h) la funzione obiettivo del problema (13) e usando la formula di Leibniz possiamo scrivere ! X X ∂f (h) X sa (va )δak = sk . hk δak δak = = sa ∂hk a∈A a∈A k∈K Abbiamo quindi che la derivata parziale della funzione obiettivo rispetto al flusso di cammino hk è esattamente il costo sk del cammino. ✷ 4 Metodi di ottimizzazione per il calcolo di soluzioni di equilibrio Denotato con N il numero totale di cammini tra tutte le coppie origine/destinazione, e con m il numero degli archi del grafo, indichiamo con x ∈ RN il vettore delle variabili di flusso dei cammini e con y ∈ Rm il vettore delle variabili di flusso degli archi. Con questa notazione, il problema (12) può essere scritto in forma compatta come segue minx,y F (y) y = Hx (14) x ∈ X1 × X2 . . . × XP , dove - la funzione obiettivo F (y) è separabile, ossia abbiamo F (y) = m X Fi (yi ); (15) i=1 - P è il numero di coppie origine/destinazione; - nl è il numero di cammini tra la coppia origine/destinazione l e Xl è l’insieme dei punti in Rnl tali che (l) (l) (l) (l) x1 + x2 + . . . + xn(l)l = bl , x1 , x2 , . . . , xn(l)l ≥ 0, (l) dove xj rappresenta quindi il flusso del cammino j che congiunge la coppia origine/destinazione l, bl è la domanda della coppia origine/destinazione l (si noti che, rispetto alla notazione usata in precedenza, la domanda è rappresentata dal simbolo bl al posto di dl per evitare ambiguità rispetto al concetto di direzione, indicato con d, utilizzato nel seguito) ; 11 - H è la matrice di incidenza arco/cammino, i cui elementi sono definiti come segue 1 se arco i appartiene cammino j Hij = 0 altrimenti Il numero N di variabili di flusso di cammini è quindi pari a n1 + n2 + . . . nP , dove ricordiamo che P è il numero di coppie origine/destinazione. Per comodità scriviamo la matrice H nel modo che segue T h1 hT 2 (16) H = . , .. hTm per cui abbiamo yi = hTi x i = 1, . . . , m. (17) Il problema (14) può essere equivalentemente scritto, con una semplice sostituzione, nello spazio dei flussi dei cammini min f (x) (18) x ∈ X1 × X2 . . . × XP , dove - f è una funzione convessa continuamente differenziabile che assume la forma (si vedano la (15) e la (17)) m X Fi (hTi x); f (x) = i=1 - ∂f (x) (h) ∂xj è il costo del cammino j che connette la coppia origine/destinazione h (si veda la Proposizione 2). Osserviamo che in applicazioni reali significative il numero nh di cammini tra una qualsiasi coppia origine/destinazione h è talmente elevato che non è ragionevole pensare di enumerare a priori tutti i possibili cammini. Gli algoritmi per la soluzione del problema considerato possono essere distinti in due classi: (I) la classe degli algoritmi che “operano” nello spazio dei flussi degli archi; (II) la classe degli algoritmi che “operano” nello spazio dei flussi dei cammini. Gli algoritmi della classe (I) fanno riferimento, in genere, ad una formulazione per archi differente da quella introdotta. Il metodo di Frank-Wolfe appartiene alla classe (I) ed è il metodo più noto. Come vedremo, la sua definizione tiene conto sia della formulazione (14) che della formulazione (18), nel senso che la (18) consente di definire una direzione ammissibile e di discesa dk nello spazio dei flussi dei cammini, da cui si ottiene una direzione dky = Hdk ammissibile e di discesa nello spazio dei flussi degli archi; lo spostamento lungo dky viene determinato tenendo conto della funzione obiettivo della formulazione (14). 12 Gli algoritmi della classe (II) si riferiscono alla formulazione (18). Questi algoritmi vengono generalmente definiti nell’ambito di una strategia di tipo column generation (ossia una strategia in cui vengono iterativamente aggiunte solo le variabili necessarie per raggiungere l’ottimalità) al fine di evitare l’enumerazione a priori delle variabili di flusso di cammini. Possono inoltre essere basati su tecniche di decomposizione al fine di gestire in modo efficiente l’elevato numero di variabili. È importante osservare gli algoritmi della classe (II) richiedono la memorizzazione di tutti i cammini con flusso positivo. Quindi richiedono l’assunzione implicita che il numero di cammini effettivamente utilizzati all’equilibrio non sia “troppo elevato”. Il concetto di “troppo elevato” dipende dalla capacità di memoria del mezzo di calcolo impiegato. 5 Metodo di Frank-Wolfe In questo paragrafo mostreremo che il metodo di Frank-Wolfe può essere applicato per la soluzione del problema di ottimizzazione di reti simmetriche anche di dimensione molto elevata perché richiede esclusivamente la memorizzazione dei flussi degli archi. Preliminarmente descriviamo in modo sintetico il metodo di Frank-Wolfe per un generico problema di ottimizzazione vincolata. Si consideri il problema min f (x) (19) x ∈ X, in cui f : Rn → R è una funzione continuamente differenziabile e X ⊂ RN è un insieme compatto, convesso e non vuoto. Alla generica iterazione k, data la soluzione corrente xk , viene risolto il problema (con funzione obiettivo lineare) min ∇f (xk )T x (20) x ∈ X. Indicata con x̂k una soluzione del problema sopra introdotto, si definisce la direzione dk = (x̂k − xk ). Si osservi che se il punto xk non è un punto critico, allora la direzione dk è di discesa e ammissibile. Si pone xk+1 = xk + αk dk , dove il passo αk può essere determinato con una ricerca di linea inesatta tipo Armijo, oppure, nel caso convesso, con una ricerca di linea esatta con il metodo della bisezione ad esempio. In entrambi i casi l’intervallo di ricerca sarà [0, 1] . Nel seguito analizzeremo l’applicazione del metodo di Frank-Wolfe al problema di calcolo di equilibrio di reti nella formulazione (14) utilizzando l’equivalenza con il problema (18). Come anticipato, mostreremo che il metodo richiede esclusivamente la memorizzazione dei flussi degli archi, per cui può essere applicato per la soluzione di problemi di dimensione anche molto elevata. Il problema (20) per il calcolo della direzione di Frank-Wolfe riferito alla formulazione (18) genera L sottoproblemi indipendenti di Programmazione Lineare. Il generico sottoproblema l 13 assume la forma (l) (l) (l) (l) (l) (l) min c1 x1 + c2 x2 + . . . + cnl xnl (l) (l) (l) x 1 + x 2 + . . . + x n l = bl (l) xj ≥ 0, (l) (l) j = 1, . . . , nl (l) in cui i coefficienti c1 , c2 , . . . , cnl sono i costi dei vari cammini che congiungono la coppia origine/destinazione l. Dalle condizioni di ottimalità per problemi con vincoli di simplesso (si veda l’Appendice D) segue che, denotato con i l’indice del cammino di costo minimo, una (l) soluzione x̂(l) si ottiene ponendo x̂i = bl e tutte le altre componenti pari a zero. In questo k modo otteniamo un vettore x̂ che ha tutte le componenti nulle tranne quelle corrispondenti ai cammini di costo minimo tra le varie coppie origine/destinazione (queste coppie sono P ). Il calcolo di x̂k necessita quindi della soluzione di P problemi di cammino minimo (da calcolare, ad esempio, con l’algoritmo di Dijkstra). L’applicazione del metodo di Frank-Wolfe per la soluzione del problema (18) richiederebbe l’enumerazione di tutti i cammini della rete e la memorizzazione dei relativi flussi, che è proibitivo in problemi reali. Consideriamo quindi la formulazione (14), in cui la funzione obiettivo dipende solo dai flussi degli archi, la cui memorizzazione è possibile anche in reti di dimensione molto elevata. Tenendo conto che y = Hx, abbiamo che la direzione di Frank-Wolfe, riferita al problema (14), è definita come segue k x̂ − xk k d = , dky in cui dky = H x̂k − Hxk = ŷ k − y k . Osservazione. Siano xk e x̂k due punti ammissibili per il problema (18). Si assuma che la direzione dkx = x̂k − xk (21) dky = H x̂k − Hxk = Hdkx = ŷ k − y k , (22) sia di discesa per f . Allora, posto la direzione k d = dkx dky è ammissibile e di discesa per il problema (14). Infatti, l’ammisibilità della direzione dk segue dalla convessità dell’insieme ammissibile e dal fatto che i punti k k x x̂ k k y ŷ 14 sono entrambi ammissibili. Per quanto riguarda la proprietà di essere di discesa, segue dalle relazioni F (y k ) = f (xk ) = F (Hxk ), F (y k + tdky ) = F (Hxk + tH(x̂k − xk )) = f (xk + tdkx ), f (xk + tdkx ) < f (xk ) per t sufficientemente piccolo. ✷ Una volta calcolata dky , si pone y k+1 = y k + αk dky , dove al solito il passo αk viene determinato con una ricerca unidimensionale nell’intervallo [0, 1]. Si osservi che in pratica non occorre memorizzare il vettore corrente dei flussi xk . L’impiego del metodo di Frank-Wolfe consente quindi di “operare” nello spazio dei flussi di archi, per cui non ha limiti di applicabilità legati alle dimensioni del problema. Tuttavia, può risultare non molto efficiente in termini di rapidità di convergenza, per cui sono correntemente studiati nuovi algoritmi che analizzeremo nei prossimi paragrafi. 6 Metodi di tipo gradiente proiettato Si consideri il generico problema (19). L’iterazione k del metodo del gradiente proiettato si può descrivere come segue: xk+1 = xk + αk dk , dove αk è, al solito, il passo che può essere determinato con una ricerca unidimensionale, dk = P (xk − ∇f (xk )) − xk , essendo P (xk − ∇f (xk )) la proiezione del punto xk − ∇f (xk ) nell’insieme ammissibile X. Per determinare il punto proiezione P (xk − ∇f (xk ) occorre risolvere il problema min kxk − ∇f (xk ) − xk2 (23) x ∈ X. Se X è il prodotto cartesiano di T insiemi convessi compatti, ossia, X = X1 × X2 . . . × XT , il problema di proiezione (23) è decomponibile in T sottoproblemi indipendenti. Tuttavia, anche se decomponibile, il problema di proiezione può non essere di facile soluzione. Nel caso di problemi di equilibrio di reti l’insieme ammissibile del generico sottoproblema (generica coppia origine/destinazione) è {x ∈ Rp : x1 + x2 + . . . + xp = 1, x ≥ 0}. La proiezione su un insieme ammissibile del tipo sopra descritto può essere fatta con con un algoritmo molto semplice ed efficiente brevemente descritto a fine paragrafo. 15 Con riferimeno ora all’applicazione del metodo del gradiente proiettato al problema (18) riguardante la formulazione nello spazio dei flussi dei cammini, per ogni coppia origine/destinazione si procede con una strategia di tipo (column generation) per evitare di enumerare a priori tutte le variabili del problema. Con una strategia column generation viene iterativamente aggiornato il sottoinsieme di variabili effettivamente utilizzate. La scelta di tale sottoinsieme deve garantire la possibilità di soddisfare, almeno asintoticamente, le condizioni di ottimalità. Nel caso specifico, ad ogni iterazione k, il working set (che individua le variabili rispetto alle quali viene effettuata la minimizzazione) è costituito dagli indici delle componenti di xk strettamente maggiori di zero e dalla componente corrispondente al cammino di costo minimo. L’aggiunta della variabile corrispondente al cammino di costo minimo ha due motivazioni: (i) consente di garantire proprietà di convergenza; (ii) consente di definire una direzione di discesa. Si osservi che per ottenere una direzione di discesa è sufficiente aggiungere una variabile corrispondente a un qualsiasi cammino di costo inferiore a quello dei cammini che hanno flusso positivo. Algoritmo di proiezione Consideriamo il problema di proiezione di un punto x̄ ∈ Rn su un insieme X della forma X = {x ∈ Rn : x1 + x2 . . . + xn = d, x ≥ 0}. Il problema che stiamo quindi considerando è min 12 kx − x̄k2 x1 + x2 . . . + xn = d x≥0 Descriviamo inizialmente in modo informale l’idea alla base dell’algoritmo di proiezione. Si proietta il punto x̄ sull’iperpiano H = {x ∈ Rn : x1 + x2 . . . + xn = d} e si ottiene il punto x̃ le cui componenti sono 1 x̃i = x̄i + n d− n X x̄i i=1 ! i = 1, . . . , n. Se x̃ ≥ 0 allora l’algoritmo termina. Altrimenti si fissano a zero le componenti x̃i < 0 e si ripete la procedura di proiezione nel sottospazio individuato dalle restanti componenti x̃i > 0. Lo schema formale dell’algoritmo è il seguente. Inizializzazione Poni k = 0 e x0i = x̄i + 1 n d− n X i=1 16 x̄i ! per i = 1, . . . , n. Passo 1. If xk ≥ 0 then Stop, Else poni I = {i : xki > 0}. End If Passo 2. Per i = 1, . . . , n poni xk+1 = i 0 k xi + se i ∈ /I 1 |I| d− X xki i∈I ! se i ∈ I, poni k = k + 1 e vai al Passo 1. Si può dimostrare che l’algoritmo termina al più in n iterazioni. 7 Metodi di decomposizione Si consideri il problema min f (x) (24) x ∈ X1 × X2 . . . × XP Rn in cui f : → R è una funzione convessa differenziabile e x ∈ Rn è il vettore dei flussi dei cammini. Il vettore x è decomposto in L blocchi, uno per ogni coppia origine/destinazione. Ogni blocco avrebbe quindi una dimensione pari al numero di cammini che congiungono la coppia origine/destinazione cui si riferisce il blocco. Tuttavia, poiché non è pensabile di enumerare a priori tutti i possibili cammini, come detto si adotta una strategia di tipo column generation, secondo la quale, ad ogni iterazione k, per ogni blocco si considerano i cammini attualmente in uso (hk > 0) e quelli eventuali a flusso nullo di costo minimo. Formalmente poniamo x = (x1 , x2 , . . . , xP ) , dove xj ∈ Rnj , e osserviamo che la dimensione di xj varia, in genere, con l’iterazione k. Ad ogni iterazione k, si considera quindi un problema della forma minx f (x) (25) x ∈ X k = X1k × X2k × . . . × XPk dove Xik , con i = 1, . . . L, sono sottoinsiemi, di dimensione minore, degli innsiemi Xi . Nel seguito si deve intendere che, ad ogni iterazione k, il problema considerato è della forma (25). Per non appesantire la notazione verrà omessa la dipendenza degli insiemi Xi dal punto corrente xk . Uno degli schemi più noti di decomposizione sequenziale, noto come metodo di Gauss-Seidel, consiste in una sequenza di minimizzazioni globali rispetto ai singoli blocchi. 17 Algoritmo di Gauss-Seidel Dati: punto iniziale x0 = (x01 , . . . , x0L ) ∈ X1 × X2 × . . . XP , k = 0. While criterio d’arresto non soddisfatto For i = 1, . . . , P calcola xk+1 ∈ Arg min f (x1k+1 , . . . , ξ, . . . , xkP ). i ξ∈Xi (26) End For k+1 Poni xk+1 = (xk+1 1 , . . . , xP ), k = k + 1. End While Lo schema concettuale dell’Algoritmo di Gauss-Seidel si particolarizza: (i) con la scelta del metodo per la soluzione del sottoproblema (26); (ii) con il criterio d’arresto utilizzato nel calcolo della soluzione del sottoproblema (26). Per quanto riguarda il punto (i), possibili scelte sono: - il metodo del gradiente proiettato (già descritto); - il metodo di decomposizione di tipo Gauss-Southwell. Per quanto riguarda il punto (ii), osserviamo che lo schema concettuale di decomposizione descritto riguarda un Algoritmo di Gauss-Seidel di tipo esatto, nel senso che prevede di determinare la soluzione esatta dei vari sottoproblemi. È possibile tuttavia pensare a strategie di tipo GaussSeidel inesatto, in cui ogni sottoproblema viene risolto in modo approssimato, e il livello di approssimazione viene determinato dal criterio d’arresto che potrà essere basato su una misura della violazione delle condizioni di ottimalità e sul numero di iterazioni massimo previsto per ogni sottoproblema. Si osservi che nello schema presentato k rappresenta il contatore delle iterazioni esterne. Nel successivo sottoparagrafo analizzeremo un metodo utilizzabile per risolvere il generico sottoproblema che, nella forma generale e indipendente dalla particolare coppia origine/destinazione, è formulato come segue min f (x) x1 + x2 + . . . + xp = b (27) x ≥ 0, rappresenta il costo del cammino j. in cui ricordiamo che ∂f∂x(x) j Richiamiamo brevemente le condizioni di ottimalità per il sottoproblema convesso (27) (si veda l’Appendice D). Un punto ammissibile x⋆ è soluzione se e solo se x⋆i > 0 implica ∂f (x⋆ ) ∂f (x⋆ ) ≤ ∂xi ∂xj 18 j = 1, . . . , n. (28) Queste condizioni si utilizzano sia per definire un criterio di arresto sia per progettare nuovi algoritmi. In particolare, il criterio di arresto usualmente adottato è basato sulle condizioni di ottimalità (28): le iterazioni interne per la soluzione del sottoproblema si arrestano quando la differenza quando la differenza dei costi dei cammini massimo e minimo è minore di una data tolleranza ǫ. 7.1 Metodo di decomposizione di Gauss-Southwell Il metodo di tipo gradiente proiettato descritto in precedenza è un metodo di ottimizzazione che può essere applicato all’interno di uno schema di decomposizione. Una differente possibilità, descritta in questo paragrafo, riguarda l’impiego di un metodo di decomposizione all’interno dello schema “esterno” di decomposizione di tipo Gauss-Seidel. Il metodo che prenderemo in considerazione in questo paragrafo è il metodo di decomposizione noto come metodo di Gauss-Southwell. Si consideri il sottoproblema min f (x) x1 + x2 + . . . + xp = b (29) x ≥ 0, dove p è il numero di cammini che, ad una data iterazione esterna k, hanno flusso maggiore di zero. Sia x̄ un punto ammissibile che non sia soluzione. Si consideri la coppia di indici (i, j) in cui i corrisponde al cammino di costo minimo (∂f (x̄)/∂xi minima) e j corrisponde al cammino di costo massimo (∂f (x̄)/∂xj massima). La coppia di variabili (xi , xj ) è quella che viola maggiormente le condizioni di ottimalità (28). Si verifica facilmente che la direzione d(i,j) in cui +1 se h = i (i,j) −1 se h = j dh = 0 altrimenti è una direzione di discesa e ammissibile in x̄. La direzione d(i,j) è tale per cui, muovendosi lungo essa, ci sarà un aumento di flusso per il cammino di costo minimo e una diminuzione di flusso per il cammino di costo massimo. In letteratura, con riferimento ai metodi basati sull’impiego di tale direzione, si parla di path equilibration algorithms. Il metodo di Gauss-Southwell si basa su una iterazione della forma xk+1 = xk + αk dk , dove il passo αk viene determinato con una ricerca di linea esatta (bisezione) oppure inesatta (Armijo). Nel primo caso si parla di metodo di Gauss-Southwell esatto, nel secondo caso di metodo di Gauss-Southwell inesatto. Si osservi che la ricerca di linea andrà condotta nell’intervallo [0, x̄j ], perché x̄j è la massima quantità di flusso che può essere diminuita senza violare il vincolo xj ≥ 0. 19 Una volta aggiornato il vettore dei flussi dei cammini si aggiunge eventualmente una nuova variabile (column generation) nel caso in cui questa corrisponda a un cammino di costo minimo e flusso nullo. Il procedimento si itera fino al soddisfacimento del criterio di arresto, che può prevedere anche un numero massimo di iterazioni. 8 Criterio d’arresto Si consideri il problema min f (x) (30) x ∈ X, dove f : Rn → R è una funzione continuamente differenziabile convessa. Un punto x⋆ ∈ X è soluzione del problema se e solo se ∇f (x⋆ )T (x − x⋆ ) ≥ 0 ∀x ∈ X (31) In modo equivalente, possiamo dire che x⋆ ∈ X è soluzione del problema se e solo se ∇f (x⋆ )T (x̂ − x⋆ ) = 0, dove (32) ˆ ˆx ∈ arg min ∇f (x⋆ )T x. x∈X Si osservi che x̂ è il punto che definisce la direzione di Frank-Wolfe. Dato un punto xk ∈ X, se non è soluzione risulta ∇f (xk )T (xk − x̂k ) > 0, (33) x̂k ∈ arg min ∇f (xk )T x. x∈X Sulla base della (32) e della (33) , un criterio d’arresto può essere il seguente ∇f (xk )T xk − ∇f (xk )T x̂k ≤ ǫ, (34) dove ǫ > 0 è la tolleranza. Nel problema di equilibrio di reti le componenti del gradiente ∇f (x) rappresentano i costi dei cammini, per cui ∇f (xk )T xk è il costo della rete. Per la struttura del problema, il punto x̂k è ottenuto assegnando, per ogni coppia Origine-Destinazione p, tutta la domanda dp sul cammino di costo minimo, per cui abbiamo k T k ∇f (x ) x̂ = P X πp (xk )dp , p=1 dove πp (xk ) è il costo del cammino di costo minimo della coppia p. Il relative gap introdotto e utilizzato nella letteratura di modelli di equilibrio di traffico è PP k p=1 πp (x )dp rgap = 1 − , C(xk ) 20 dove C(xk ) è il costo della rete. Sulla base delle osservazioni precedenti otteniamo rgap = ∇f (xk )T xk − ∇f (xk )T x̂k . ∇f (xk )T xk Si noti che un criterio d’arresto sul relative gap è ottenuto normalizzando il primo membro del criterio (34). Tuttavia può essere introdotto un criterio d’arresto alternativo. Un criterio d’arresto usualmente adottato nei problemi di ottimizzazione si basa sui concetti di Lower Bound (LB) e di Upper Bound (UB). Denotato con f ⋆ il valore minimo di f (x), per x ∈ X, un Lower Bound (LB) è un valore tale che f ⋆ ≥ LB. Un Upper Bound (UB) è un valore tale che f ⋆ ≤ U B. Un criterio d’arresto comunemente usato è quello basato sulla condizione U B − LB ≤ ǫ. |LB| (35) Si noti che il valore f (xk ), con xk ∈ X, costituisce un UB. Vediamo come definire un Lower Bound. Dalla convessità di f e dalla definizione di x̂k segue f (x⋆ ) ≥ f (xk ) + ∇f (xk )T (x⋆ − xk ) ≥ f (xk ) + ∇f (xk )T (x̂k − xk ). Quindi la quantità f (xk ) + ∇f (xk )T (x̂k − xk ) è un Lower Bound. Di conseguenza, il criterio (35) assume la forma U B − LB ∇f (xk )T (xk − x̂k ) = ≤ ǫ. |LB| |f (xk ) + ∇f (xk )T (x̂k − xk )| 9 Il problema con domanda elastica Nell’analisi fin qui svolta abbiamo assunto che la domanda di ogni coppia origine/destinazione è fissata e nota a priori. Un modello più realistico, denominato modello con domanda elastica, è quello in cui la domanda di ogni coppia è variabile e dipende dal “costo” (inteso in senso generale) associato a quella coppia. Assumiamo quindi che la domanda dp della coppia p sia funzione del costo associato a quella coppia: dp = Dp (up ), dove up è il costo minimo della coppia p, Dp (.) è la funzione domanda. Possiamo ragionevolmente assumere che la funzione Dp sia una funzione monotonicamente decrescente. 21 Il problema di ottimizzazione nel modello con domanda elastica assume la forma min XZ va sa (x) dx − a∈A 0 P k∈Kp XZ p∈P dp 0 Dp−1 (w)dw hk = dp ∀p ∈ P hk ≥ 0 ∀k∈K dp ≥ 0 ∀p∈P va = P k∈K δak hk (36) ∀ a ∈ A, dove Dp−1 (.) è la funzione inversa della funzione domanda. Per semplicità di esposizione, coerentemente con quanto fatto in precedenza, con un cambio di notazione riscriviamo come segue il problema (36) minx,y f (x) − g(y) eT x(p) = yp ∀p∈P (37) x≥0 0 ≤ yp ≤ ȳp ∀ p ∈ P. Si osservi che il vincolo yp ≤ ȳp viene introdotto per ragioni computazionali e che si può ragionevolmente assumere che l’upper bound ȳp sulla domanda sia “sufficientemente elevato” da non essere mai attivo. Per la soluzione del problema (37) possiamo individuare due classi di metodi: (I) metodi che vengono applicati alla formulazione originaria (37); II metodi basati su formulazioni equivalenti del problema che, utilizzando una rete opportunamente modificata, conducono a problemi con domanda fissa. In relazione ai metodi della classe I si consideri, con una semplice sostituzione, il problema equivalente nelle sole variabili x: minx Z(x) = f (x) − XZ p∈P eT x(p) 0 eT x(p) ≤ ȳp Dp−1 (w)dw ∀p∈P x ≥ 0. Abbiamo ∂Z(x) ∂f (x) = − Dp−1 (eT x(p) ) = chp − Dp−1 (yp ), ∂x(p),h ∂x(p),h 22 (38) dove chp è il costo del cammino h della coppia p. Si consideri il metodo di Frank-Wolfe: il sottoproblema lineare riferito all coppia p è il seguente X minx Z(x(p) ) = chp − Dp−1 (yp ) x(p),h h∈Kp eT x(p) ≤ ȳp ∀p∈P (39) x ≥ 0. Il problema (39) può essere risolto analiticamente - se chp − Dp−1 (yp ) ≥ 0 per ogni h si pone x⋆(p) = 0; - sia h̄ l’indice corrispondente al costo “più negativo”, ossia, sia tale che ch̄p − Dp−1 (yp ) < 0 e ch̄p ≤ chp : si pone x⋆(p),h̄ = ȳp e tutte le altre componenti pari a zero. In relazione alla classe II, considereremo la formulazione di tipo “excess demand”. Si consideri il problema (38) e si introducano, per p = 1, . . . , P , le variabili (eccesso di domanda) zp = ȳp − yp . Nelle nuove variabili (x, z), l’insieme ammissibile è definito come segue eT x(p) + zp = ȳp ∀ p ∈ P x≥0 zp ≥ 0 ∀ p ∈ P, e quindi ha la forma dell’insieme ammissibile del problema con domanda fissa. Per quanto riguarda la funzione obiettivo, consideriamo il termine g(y). Ogni termine della sommatoria può essere decomposto Z ȳp Z yp −1 Dp (w)dw + Dp−1 (w)dw. 0 ȳp Il primo integrale non dipende dalle variabili del problema e quindi può essere omesso nel problema di minimizzazione. Posto w = ȳp − v, possiamo scrivere Z yp ȳp Dp−1 (w)dw =− Z ȳp −yp 0 Dp−1 (ȳp − v)dv = − Z zp Wp (v)dv, 0 dove Wp (v) = Dp−1 (ȳp − v). Di conseguenza, il problema (36) nelle nuove variabili assume la 23 forma min XZ va sa (x) dx + a∈A 0 P k∈Kp XZ p∈P zp Wp (v)dv 0 hk + zp = ȳp ∀p ∈ P hk ≥ 0 ∀k∈K zp ≥ 0 ∀p∈P va = P k∈K δak hk (40) ∀ a ∈ A, Dal confronto tra la formulazione con domanda fissa (12) e la formulazione con domanda elastica (40) segue che quest’ultima corrisponde alla formulazione con domanda fissa di una rete estesa ottenuta da quella originaria aggiungendo P archi, ognuno dei quali congiunge una coppia origine/destinazione. Il costo del p−esimo arco aggiunto sarà W (zp ) = Dp−1 (yp ). Un qualsiasi algoritmo per problemi con domanda fissa può quindi essere applicato al problema (40) relativo alla rete estesa. Criterio d’arresto Abbiamo visto che il problema di equilibrio con domanda elastica, nel modello “excess demand” è equivalente al problema con domanda fissa riferito a una rete ottenuta da quella originaria aggiungendo un arco per ogni coppia O/D. Per definire un criterio d’arresto possiamo quindi riferirci a questa rete “estesa” e definire il relative gap introdotto nel paragrafo 8. Per quanto riguarda il numeratore, sarà dato dalla differenza tra il costo totale della rete e il costo corrispondente alla soluzione (in x, z) di FrankWolfe. Il costo totale della rete è X X ∇f (xk )T xk + Wp (zp )zp = ∇f (xk )T xk + Dp−1 (yp )(ȳp − yp ). (41) p∈P p∈P Il costo corrispondente alla soluzione di Frank-Wolfe è X π̃p ȳp , p∈P dove π̃p = min{Dp−1 (yp ), πp (x)}. P Di conseguenza, ricordando che yp = k∈Kp xk , il relative gap assume la forma rgap = P p∈P P k∈Kp P sk − Dp−1 (yp ) hk + p∈P Dp−1 (yp ) − π̃p ȳp den dove den è un termine di normalizzazione (ad esempio, il costo della rete (41)). 24 , (42) 10 Il problema della stima della domanda delle Origini/Destinazioni In questo paragrafo analizzeremo un problema che emerge nei casi applicativi in cui la domanda delle varie coppie Origini/Destinazioni non è nota. Realisticamente possiamo immaginare che un sistema di sensori misuri, quando la rete è in equilibrio, il flusso di un sottoinsieme degli archi. A partire da queste stime di flusso di archi si vuole quindi determinare la domanda delle varie coppie O/D. Il problema, come vedremo, può essere formulato come problema di ottimizzazione bilivello. Per ovviare alle difficoltà dei problemi bilivello, sono state proposte riformulazioni a singolo livello, che possono essere viste come “approssimazioni“ del problema bilivello. 10.1 Definizione di problema di ottimizzazione bilivello Si consideri il problema bilivello minx,y F (x, y) x∈X (43) G(x, y) ≤ 0 y ∈ arg minz {f (x, z) : g(x, z) ≤ 0}, dove x ∈ Rn1 e y ∈ Rn2 . Il vettore x contiene le variabili di upper level (controllate dal leader) il vettore y quelle di lower level (controllate dal follower). Analogamente le funzioni F : Rn1 × Rn2 → R, f : Rn1 × Rn2 → R sono le funzioni obiettivo dell’upper level e lower level, rispettivamente. Le funzioni G : Rn1 × Rn2 → R, g : Rn1 × Rn2 → R definiscono gli upper level constraints e i lower level constraints. Definiamo il problema rilassato: minx,y F (x, y) x∈X (44) G(x, y) ≤ 0 g(x, y) ≤ 0 e l’insieme ammissibile rilassato: Ω = {(x, y) : x ∈ X, G(x, y) ≤ 0, g(x, y) ≤ 0}. Dato x̄ ∈ X, introduciamo l’insieme ammissibile di lower level Ω(x̄) = {y : g(x̄, y) ≤ 0}, e l’insieme di reazione razionale R(x̄) = {y : y ∈ {arg min f (x̄, z) : z ∈ Ω(x̄)}}. z Distinguiamo tra: 25 - ottimizzazione bilivello ottimistica, quando c’è cooperazione tra leader e follower, e quindi il primo può scegliere nell’insieme R(x) l’elemento y ad esso più “favorevole“ (rispetto alla funzione obiettivo F (x, y)); - ottimizzazione bilivello pessimistica, quando il follower opera in maniera antitetica rispetto alle aspettative del leader, e quindi quest’ultimo ottiene dall’insieme R(x) l’elemento y ad esso più “sfavorevole“ (rispetto alla funzione obiettivo F (x, y)). Nel caso di ottimizzazione bilivello ottimistica, diremo che il punto (x⋆ , y ⋆ ) è un punto di minimo locale per il problema (43) se: x⋆ ∈ X G(x⋆ , y ⋆ ) ≤ 0 g(x⋆ , y ⋆ ) ≤ 0 F (x⋆ , y ⋆ ) ≤ F (x⋆ , y) ∀y ∈ R(x⋆ ), e se esiste un intorno aperto I(x⋆ , δ) tale che φo (x⋆ ) ≤ φo (x) ∀x ∈ X ∩ I(x⋆ , ρ), dove φo (x) = min{F (x, y) : y ∈ R(x), G(x, y) ≤ 0}. y Il punto si dice di minimo globale se φo (x⋆ ) ≤ φo (x) ∀x ∈ X. Nel caso di ottimizzazione bilivello pessimistica, diremo che il punto (x⋆ , y ⋆ ) è un punto di minimo locale per il problema (43) se: x⋆ ∈ X G(x⋆ , y ⋆ ) ≤ 0 g(x⋆ , y ⋆ ) ≤ 0 F (x⋆ , y ⋆ ) ≥ F (x⋆ , y) ∀y ∈ R(x⋆ ), e se esiste un intorno aperto I(x⋆ , δ) tale che φp (x⋆ ) ≤ φp (x) ∀x ∈ X ∩ I(x⋆ , ρ), dove φp (x) = max{F (x, y) : y ∈ R(x), G(x, y) ≤ 0}. y Il punto si dice di minimo globale se φp (x⋆ ) ≤ φp (x) 26 ∀x ∈ X. 10.2 Ottimizzazione bilivello per il problema della stima ′ Si assuma che su un sottinsieme di archi A ⊂ A sia noto il flusso in condizioni di equilibrio della rete, ossia abbiamo ′ ya = ȳa ∀a ∈ A . A partire da queste misure parziali vogliamo determinare le domande della varie coppie OD. Dobbiamo quindi determinare un vettore di flussi di cammini x, un vettore delle domande d, un vettore di flussi di archi y in modo che: ′ - i flussi sugli archi a ∈ A siano uguali a quelli misurati ȳa ; - la rete sia in equilibrio. A questo fine formuliamo il problema di ottimizzazione bilivello: X minx,y,d 21 (ya − ȳa )2 a∈A ′ (45) d≥0 ′ x ∈ arg minz {f (z) : eT z (p) = dp , z (p) ≥ 0, p = 1, . . . , P, ya = hTa z, a ∈ A }, dove ha rappresenta la riga a della matrice di incidenza archi/cammini H. Un problema di ottimizzazione bilivello presenta, in generale, una “complessità“ che rende difficoltosa la definizione di algoritmi efficienti. Nel paragrafo successivo vedremo un approccio basato su un’approssimazione del problema bilivello con un problema convesso a singolo livello. 10.3 Ottimizzazione a singolo livello per il problema della stima In questo paragrafo definiamo un problema convesso a singolo livello che “approssima“ il problema bilivello (45) per la stima delle domande OD. L’idea è di definire un’unica funzione obiettivo data dalla somma pesata della funzione dell’upper level e della funzione obiettivo del lower level. Abbiamo quindi il problema di ottimizzazione: minx,y,d 12 X a∈A eT x(p) = dp , ya = hTa x, 2 (ya − ȳa ) + τ f (x) − τ P X ûp dp p=1 ′ p = 1, . . . , P, (46) ′ a∈A x ≥ 0, dove ûp , per p = 1, . . . , P è un parametro positivo “associato“ al costo minimo della coppia p, il cui ruolo sarà più chiaro nel seguito. 27 La funzione Lagrangiana associata al problema (46) assume la forma L(x, y, d, λ, µ, ξ) = 1 2 X a∈A P X p=1 e abbiamo (ya − ȳa )2 + τ f (x) − τ P X ûp dp + p=1 ′ T (p) λp e x − dp + X a∈A µa (ya − hTa x) − P X T ξ(p) x(p) , p=1 ′ ∂L() = ya − ȳa + µa ya X ∂L() ∂f () µa δai − ξ(p).i =τ + λp − x(p).i x(p).i ′ a∈A ∂L() = −τ ûp − λp . dp Dalle condizioni KKT otteniamo µa = ȳa − ya , X (ȳa − ya )δai − ξ(p).i = 0, τ c(p),i + λp − a∈A ′ da cui segue τ c(p),i − τ ûp − X (ȳa − ya )δai = ξ(p).i ≥ 0. a∈A′ Utilizzando le condizioni di complementarità possiamo scrivere x(p),i ≥ 0 τ c(p),i − τ ûp − X a∈A (ȳa − ya )δai ≥ 0 ′ (47) x(p),i τ c(p),i − τ ûp − X a∈A ′ (ȳa − ya )δai = 0 Si osservi che se ûp fosse pari a zero allora si avrebbe flusso non nullo solo per quei cammini x(p),i tali che X (ȳa − ya )δai = τ c(p),i > 0, a∈A ′ e quindi i flussi calcolati ya tenderebbero ad essere una sottostima dei flussi misurati ȳa . Prima di dimostrare un risultato di “equivalenza“, premettiamo il risultato seguente. 28 Proposizione 3. Si assuma ûp = u⋆p p = 1, . . . , P, dove u⋆p è il costo minimo della p−esima coppia OD. Ogni soluzione del problema P X u⋆p dp min f (x) − p=1 eT x(p) = dp (48) p = 1, . . . , P x≥0 è una soluzione di equilibrio. Proof. Per dimostrare la tesi basta provare che un punto che soddisfa le condizioni KKT del problema (48) soddisfa le condizioni di Wardrop. Dalle condizioni KKT otteniamo c(p).i − λp x(p).i − ξ(p),i = 0 −u⋆p + λp = 0, da cui segue la tesi. Possiamo ora dimostrare il seguente risultato. ′ Proposizione 4. Si assuma che le stime ȳa , con a ∈ A siano esatte e si supponga che ûp = u⋆p p = 1, . . . , P. Allora ogni soluzione (x⋆ , y ⋆ , d⋆ ) del problema (46) è una soluzione di equilibrio tale che ′ ya⋆ = ȳa a∈A, e avente costi dei cammini minimi pari a u⋆p , per p = 1, . . . , P. Proof. Si vede facilmente che una soluzione (x, y, d) di equilibrio è tale che ′ ya = ȳa a∈A, e (x, y, d) ∈ arg min{τ f (x) − τ P X u⋆p dp : eT x(p) = dp , x(p) ≥ 0, p = 1, . . . , P, y = Hx}. p=1 Infatti, una soluzione di equilibrio di Wardrop soddisfa le condizioni x(p),i ≥ 0 c(p),i − u⋆p ≥ 0 x(p),i c(p),i − u⋆p = 0, 29 (49) da cui segue che valgono le condizioni (47). Osserviamo che P min x,y,d∈F P X X 1X 1X u⋆p dp ≥ min u⋆p dp . (ya − ȳa )2 + τ f (x) − τ (ya − ȳa )2 + min τ f (x) − τ x,y,d∈F x,y,d∈F 2 2 ′ ′ p=1 a∈A a∈A p=1 Abbiamo visto che in corrispondenza di una soluzione di equilibrio vale l’uguaglianza, da cui segue che per ogni soluzione (x⋆ , y ⋆ , d⋆ ) di (46) deve valere l’uguaglianza. Quindi abbiamo ′ ya⋆ = ȳa ⋆ ⋆ ⋆ (x , y , d ) ∈ arg min{τ f (x) − τ P X a∈A, u⋆p dp : eT x(p) = dp , x(p) ≥ 0, p = 1, . . . , P, y = Hx}, p=1 da cui possiamo dedurre, tenendo conto della Proposizione 3, che (x⋆ , y ⋆ , d⋆ ) è una soluzione di equilibrio ed è tale che i flussi calcolati sono uguali ai flussi misurati. Cenni sugli algoritmi per la soluzione del problema a singolo livello In relazione al problema (46) osserviamo: (i) il termine relativo alla stima dei flussi degli archi è tale per cui si può considerare una rete ′ “equivalente“ con pesi sugli archi a ∈ A pari a 1 sa (ya ) − (ȳa − ya ); τ (ii) i parametri τ e ûp , p = 1, . . . , P devono essere fissati dall’utente. Per quanto riguarda il punto (i), la difficoltà ad esso connessa è l’eventuale presenza di cicli sconnessi negativi, che rende “difficile“ la determinazione del cammino di lunghezza minima. Una strategia proposta è quella di applicare un algoritmo di cammino minimo in grado di individuare la presenza di cicli negativi. Nel caso siano individuati tali cicli, i pesi dei corrispondenti archi vengono posti a zero. Per quanto riguarda il punto (ii), sono stati proposti dei criteri per scegliere θ ed è stata definita una procedura che modifica iterativamente, durante l’esecuzione dell’algoritmo di minimizzazione, i valori di ûp , p = 1, . . . , P . 11 Equilibrio di Nash ed equlibrio di Wardrop Si consideri un insieme di P giocatori, ognuno dei quali corrisponde ad una coppia OD. Ad ogni giocatore i associamo un vettore di flussi di archi y i . I flussi degli archi devono soddisfare le leggi di conservazione del flusso ai nodi: X X i i yhj = qji ∀nodo j, ∀coppia OD i, yjl − l∈S(j) h∈P (j) dove 30 - S(j) e P (j) sono gli insiemi successori e predecessori di j; - qji è la domanda del nodo j rispetto alla coppia i, ossia i se j = origine d −di se j = destinazione qji = 0 altrimenti Il vettore delle variabili di decisione del giocatore i è [yai ]a∈A . Il costo del giocatore i è X si (y) = yai Sai (y), a∈A dove Sai (y) è il costo dell’arco a, per il giocatore i, che dipende dai flussi di tutti i giocatori. Sotto opportune ipotesi si può dimostrare l’esistenza dell’equilibrio di Nash. Si assuma ora che Sai (y) = Sa (y) per ogni arco a, per ogni giocatore i, ossia che la funzione di costo di ogni arco sia la stessa per ogni giocatore. Come visto in precedenza, un vettore y ⋆ = [ya⋆ ]a∈A è un equilibrio di Wardrop se X X Sa (y ⋆ ), Sa (y ⋆ ) ≤ a∈Ci⋆ a∈Ci dove - Ci⋆ è un qualsiasi cammino appartenente all’insieme dei cammini della coppia i effettivamente utilizzati; - Ci è un qualsiasi cammino della coppia i; Consideriamo il seguente problema: è possibile approssimare un equilibrio di Wardrop y ⋆ con un vettore y ⋆ (n) derivante da un equilibrio di Nash per un gioco con nP giocatori (n giocatori per ogni coppia i, i = 1, . . . , P )? Assumiamo che gli n giocatori di ogni coppia i siano “identici”. Indichiamo con y N ash (n) il punto di equilibrio di Nash. Si osservi che il vettore y N ash (n) rappresenta un vettore di flussi di archi ottenuti sommando le variabili di decisione degli nP giocatori. Sotto opportune ipotesi si può dimostrare che y ⋆ = lim y N ash (n). n→∞ 31 12 Appendice A: richiami sulle disequazioni variazionali Siano dati un insieme X ⊆ Rn non vuoto, chiuso e convesso, e una funzione continua F : Rn → Rn . Una disequazione variazionale, indicata con V I(X, F ), è il problema di determinare un vettore x⋆ ∈ X tale che F (x⋆ )T (x − x⋆ ) ≥ 0 ∀x ∈ X. Si consideri un problema di ottimizzazione del tipo minf (x) x ∈ S, (50) in cui f : Rn → R è una funzione continuamente differenziabile e S è un insieme convesso. Sappiamo che un punto x⋆ di minimo locale soddisfa le condizioni di ottimalità ∇f (x⋆ )T (x − x⋆ ) ≥ 0 ∀x ∈ S, ossia x⋆ è soluzione della disequazione variazionale V I(S, ∇f ). Quindi determinare un punto critico per il problema (50) equivale a risolvere una V I. Viceversa, data una disequazione variazionale V I(X, F ), non è sempre possibile associare ad essa un problema di ottimizzazione equivalente. Questa associazione è possibile se e solo se F è il gradiente di “qualche” funzione. Da un risultato di analisi, sotto opportune ipotesi di differenziabilità su insiemi aperti e convessi, si ha che F è il gradiente di una funzione f se e solo se la matrice Jacobiana di F è simmetrica. In tal caso, la funzione f , a meno di una costante, assume la forma Z 1 f (x) = F (x0 + t(x − x0 ))T (x − x0 )dt, 0 dove x0 è un punto arbitrario nell’insieme considerato. Esistenza della soluzione di una disequazione variazionale. Una condizione sufficiente di esistenza di una V I(X, F ) è quella che richiede che l’insieme X sia compatto e convesso, e la funzione F sia continua. Per avere risultati di convergenza che prescindano dalla compattezza dell’insieme X, occorre introdurre i concetti di monotonia, stretta monotonia, forte monotonia di una funzione vettoriale. Sia F : X ⊆ Rn → Rn . Diremo che la funzione F è monotona se comunque presi due vettori x1 , x2 ∈ X risulta (F (x1 ) − F (x2 ))T (x1 − x2 ) ≥ 0. Diremo che la funzione F è strettamente monotona se comunque presi due vettori distinti x1 , x2 ∈ X risulta (F (x1 ) − F (x2 ))T (x1 − x2 ) > 0. Diremo che F è strettamente monotona se esiste una costante α > 0 tale che (F (x1 ) − F (x2 ))T (x1 − x2 ) ≥ αkx1 − x2 k2 . Si osservi che la forte implica la stretta che implica la monotonia. La F è monotona se e solo se la matrice Jacobiana è semidefinita positiva in tutti i punti di X. 32 Se la matrice Jacobiana è definita positiva in tutti i punti di X allora F è strettamente monotona. Se la matrice Jacobiana è uniformemente definita positiva in tutti i punti di X allora F è fortemente monotona. Se F è strettamente monotona la V I(X, F ) ha al più una soluzione. Se F è fortemente monotona la soluzione di V I(X, F ) esiste ed è unica. Metodi di soluzione L’algoritmo di base è quello di proiezione. Data una costante τ > 0, all’iterazione k si pone xk+1 = P [xk − τ F (xk )], dove P è l’operatore di proiezione su X. Se esistono costanti α e L maggiori di zero tali che (F (x) − F (y))T (x − y) ≥ αkx − yk2 , kF (y) − F (x)k ≤ L, ky − xk e se la costante τ è tale che τ< 2α , L2 allora il metodo converge. Esiste un altro metodo, detto metodo di proiezione sull’iperpiano, che converge sotto ipotesi molto meno restrittive. La strategia del metodo è la seguente: - viene generato il punto y k = P [xk − τ F (xk )]; - viene determinato un punto z k con una ricerca di linea, a partire da xk lungo la direzione dk = y k − xk ; - si calcola il punto wk compe proiezione del punto xk lungo l’iperpiano passante per z k e ortogonale a F (z k ); - il punto xk+1 è ottenuto proiettando wk su X. Si osservi che il punto wk si ottiene risolvendo il problema seguente: min 21 kxk − wk2 F (z k )T (w − z k ) = 0. Scrivendo la funzione Lagrangiana abbiamo 1 L(w, λ) = kxk − wk2 + λF (z k )T (w − z k ). 2 Dall’annullamento del gradiente della Lagrangiana (condizioni KKT) segue w⋆ = xk − λ⋆ F (z k ) da cui si ottiene λ⋆ = F (z k )T (xk − z k ) . kF (z k )k2 Possiamo quindi concludere che risulta w k = w ⋆ = xk − F (z k )T (xk − z k ) F (z k ). kF (z k )k2 33 13 Appendice B: equivalenza tra equilibrio di Wardrop e soluzione di una disequazione variazionale In questo paragrafo verrà mostrato che, sotto opportune ipotesi, determinare una soluzione che rappresenti un equilibrio di Wardrop, ossia una coppia di vettori (h⋆ , u⋆ ) che soddisfa le condizioni (1)-(4), equivale a determinare una soluzione di una disequazione variazionale, ossia un vettore x⋆ tale che F (x⋆ )T (x − x⋆ ) ≥ 0 ∀x ≥ 0, (51) dove x = (h, u), F : Rn → Rn , n = |K| + |P |, e le prime |K| componenti di F sono della forma sk (h) − up , e le ultime P componenti sono della forma X hk − dp . k∈Kp Con una notazione compatta possiamo scrivere sk (h⋆ ) − u⋆p p∈P,k∈K p F (x⋆ ) = X h⋆k − dp k∈Kp p∈P . La proposizione seguente stabilisce formalmente l’equivalenza tra la formulazione definita dalle condizioni (1)-(4) dell’equilibrio di Wardrop e la disequazione variazionale (51). |K| |P | Proposizione 5. Si assuma sk (h) > 0 e dp ≥ 0 per ogni p ∈ P , k ∈ Kp , h ∈ R+ , u ∈ R+ . Una coppia (h⋆ , u⋆ ) rappresenta un equilibrio di Wardrop se e solo se soddisfa la disequazione variazionale (51) Proof. Si assuma che x⋆ = (h⋆ , u⋆ ) soddisfi le condizioni (1)-(4). Mostreremo che x⋆ è soluzione della disequazione variazionale (51). Dalle condizioni (1)-(4) segue X X X X h⋆k − dp u⋆p = 0. (52) sk (h⋆ ) − u⋆p h⋆k + F (x⋆ )T x⋆ = p∈P p∈P k∈Kp k∈Kp Inoltre, tenendo conto che hk ≥ 0 e sk (h⋆ ) − u⋆p ≥ 0, possiamo scrivere X X sk (h⋆ ) − u⋆p hk ≥ 0. F (x⋆ )T x = p∈P k∈Kp La (52) e la (53) implicano F (x⋆ )T (x − x⋆ ) = F (x⋆ )T x ≥ 0, ossia che x⋆ è soluzione della disequazione variazionale (51). Si assuma ora che x⋆ sia soluzione della disequazione variazionale (51). Si ponga x̂ = x⋆ + ei , 34 (53) dove ei è l’i-esimo asse coordinato in Rn . Risulta x̂ ≥ 0, inoltre 0 ≤ F (x⋆ )T (x̂ − x⋆ ) = F (x⋆ )T ei = Fi (x⋆ ), (54) sk (h⋆ ) − u⋆p ≥ 0 p ∈ P, k ∈ Kp , X h⋆k − dp ≥ 0 p ∈ P. (55) da cui segue (56) k∈Kp Sia i ∈ {1, . . . , n} tale che x⋆i = eTi x⋆ > 0. Si ponga x̂ = x⋆ − αei , con α > 0 sufficientemente piccolo da assicurare che x̂i = x⋆i − α > 0. Possiamo scrivere 0 ≤ F (x⋆ )T (x̂ − x⋆ ) = −αFi (x⋆ ), da cui segue Fi (x⋆ ) ≤ 0. Tenendo conto della (54) otteniamo Fi (x⋆ ) = 0. Riassumendo abbiamo x⋆i > 0 implica Fi (x⋆ ) = 0, ossia h⋆k > 0 sk (h⋆ ) = u⋆p p ∈ P, k ∈ Kp , X h⋆k = dp p ∈ P. implica implica u⋆p > 0 (57) (58) k∈Kp Possiamo quindi scrivere in forma sintetica sk (h⋆ ) − u⋆p h⋆k = 0 ∀p ∈ P, hk ∈ Kp ∀p ∈ P, hk ∈ Kp sk (h⋆ ) − u⋆p ≥ 0 P ⋆ ⋆ ∀p ∈ P k∈Kp hk − dp up = 0 P ⋆ ∀p ∈ P k∈Kp hk ≥ dp h⋆ ≥ 0, u⋆ ≥ 0. (59) (60) (61) (62) (63) Osserviamo che le condizioni (59)-(63) implicano che le condizioni (1), (2), (4) sono soddisfatte. Supponiamo per assurdo che (h⋆ , u⋆ ) non rappresenti un equilibrio di Wardrop. Allora necessariamente deve essere violata la condizione (3). Abbiamo perciò che esiste un p̂ ∈ P tale che X h⋆k > dp̂ . k∈Kp̂ Dalla (61) segue u⋆p̂ = 0. Per ipotesi dp̂ ≥ 0, di conseguenza esiste un k̂ ∈ Kp̂ tale che hk̂ > 0. Dalla (59) si ottiene sk̂ (h⋆ ) = u⋆p̂ = 0, in contraddizione con l’ipotesi sk (h) > 0 per ogni h ≥ 0. 35 14 Appendice C: esistenza e unicità dell’equilibrio di Wardrop Abbiamo visto che determinare una soluzione che rappresenti un equilibrio di Wardrop equivale a determinare una soluzione di una disequazione variazionale nelle ipotesi di costi dei cammini positivi e domande non negative. Posto x = (h, u) e assumendo valide le ipotesi della Proposizione 5, abbiamo che x⋆ rappresenta un equilibrio di Wardrop se e solo se x⋆ ≥ 0 e x⋆ è soluzione della disequazione variazionale (51). Indicato con P rojC [x] l’operatore di proiezione di un vettore x su un insieme C convesso, chiuso e non vuoto, abbiamo che x⋆ è una soluzione di equilibrio se e solo se ⋆ ⋆ n [x − F (x ]. x⋆ = P rojR+ (64) Infatti, vale la (64) se e solo se (x⋆ − F (x⋆ ) − x⋆ )T (x − x⋆ ) ≤ 0 ∀x ≥ 0, ossia se e solo se x⋆ è soluzione della disequazione variazionale (51). Nelle ipotesi poste, determinare x⋆ equivale a risolvere il seguente problema di punto fisso: x = H(x), (65) n → Rn è tale che, dato x ≥ 0,si ha H(x) = P roj n [x − F (x)]. Il Teorema del in cui H : R+ R+ + punto fisso di Brouwer assicura che un problema del tipo (65) ammette soluzione se H : S → S è una funzione continua, e S è un insieme non vuoto, convesso e compatto. Si osservi che l’insieme n è chiuso e convesso ma non limitato. Vale il seguente risultato di esistenza della soluzione. R+ |K| |P | Proposizione 6. Si assuma sk (h) > 0 e dp ≥ 0 per ogni p ∈ P , k ∈ Kp , h ∈ R+ , u ∈ R+ . Si supponga inoltre che le funzioni sk siano continue. Allora il problema di equilibrio ammette soluzione, ossia esiste una coppia (h⋆ , u⋆ ) che soddisfa le condizioni (1)-(4). n è un insieme Proof. Nelle ipotesi poste la funzione H(x) = P rojC (x − F (x)), dove C ⊆ R+ convesso, chiuso e non vuoto, è una funzione continua. Per dimostrare la tesi faremo prima vedere che il problema del punto fisso x = P rojC (x − F (x)), n . Sia ammette una soluzione x⋆ su un opportuno insieme C sottoinsieme stretto di R+ α1 > maxp∈P dp . Per ogni k ∈ K il problema max sk (h) 0 ≤ h ≤ α1 ammette soluzione essendo la funzione continua e l’insieme ammissibile compatto e non vuoto. Sia α2 > max max sk (h), k∈K 0≤h≤α1 e si definisca C come l’insieme dei vettori x = (h, u) tali che 0 ≤ h ≤ α1 0 ≤ u ≤ α2 36 Per quanto detto in precedenza la funzione H = P rojC è una funzione continua, inoltre, per come è definito l’insieme C, il dominio della funzione H è un insieme convesso, chiuso e limitato. Valgono quindi le ipotesi del Teorema di Brouwer, per cui esiste un vettore x̂ = (ĥ, û) tale che x̂ = P rojC [x̂ − F (x̂)]. Possiamo quindi scrivere, per k ∈ K e p ∈ P Fk (ĥ, û)T (hk − ĥk ) ≥ 0 0 ≤ hk ≤ α1 (66) Fp (ĥ, û)T (up − ûp ) ≥ 0 0 ≤ u p ≤ α2 . (67) Osserviamo che α1 e α2 sono stati scelti in modo tale che risulta ĥ < α1 û < α2 . Di conseguenza, possiamo dimostrare che risulta Fk (ĥ, û) ≥ 0 Fp (ĥ, û) ≥ 0. (68) Infatti, se avessimo una componente Fk,j (ĥ, û) < 0, potremmo prendere un vettore h̄ con tutte le componenti uguali a quelle di h̄k , tranne la j−esima, che potremmo prendere strettamente maggiore (ad esempio uguale ad α1 ). Risulterebbe Fk (ĥ, û)T (h̄k − ĥk ) = Fk,j (ĥ, û)(h̄k,j − ĥk,j ) < 0, in contraddizione con la (66). Utilizzando la (68) abbiamo Fk (ĥ, û)T (hk − ĥk ) ≥ 0 ĥk ≤ hk Fp (ĥ, û)T (up − ûp ) ≥ 0 ûp ≤ up . Tenendo conto anche delle (66) e (67) otteniamo Fk (ĥ, û)T (hk − ĥk ) ≥ 0 0 ≤ hk Fp (ĥ, û)T (up − ûp ) ≥ 0 0 ≤ up , da cui segue n [x̂ − F (x̂)]. x̂ = P rojR+ Dalla precedente relazione si ottiene F (x̂)T (x − x̂) ≥ 0 ∀x ≥ 0. Utilizzando la Proposizione 5 possiamo concludere che x̂ = (ĥ, û) soddisfa le condizioni (1)(4). Prima di introdurre un risultato di unicità della soluzione di equilibrio, richiamiamo le seguenti definizioni. Sia G : X ⊆ Rn → Rn . Diremo che la funzione G è monotona se comunque presi due vettori x1 , x2 ∈ X risulta (G(x1 ) − G(x2 ))T (x1 − x2 ) ≥ 0. Diremo che la funzione G è strettamente monotona se comunque presi due vettori distinti x1 , x2 ∈ X risulta (G(x1 ) − G(x2 ))T (x1 − x2 ) > 0. Possiamo ora enunciare e dimostrare un risultato di unicità della soluzione di equilibrio. 37 Proposizione 7. Si assuma che la funzione s : R|A| → R|A| sia strettamente monotona. Allora la soluzione v ⋆ in termini di flussi di archi è unica. Proof. Espandendo la formulazione in termini di disequazione variazionale (51) si ottiene X X X X h⋆k − dp )(up − u⋆p ) ≥ 0. (sk (h⋆ ) − u⋆p )(hk − h⋆k ) + ( p∈P k∈Kp p∈P k∈Kp Tenendo conto che sk (h⋆ ) = X δak sa (v ⋆ ), a∈A possiamo scrivere X X X sk (v ⋆ ) − u⋆p a∈A p∈P k∈Kp ! (hk − h⋆k ) + X p∈P X k∈Kp h⋆k up − X k∈Kp h⋆k u⋆p + dp up − dp u⋆p ≥ 0, oppure, equivalentemente, X X X X X hk u⋆p + dp (up − u⋆p ) ≥ 0. h⋆k up − ( sk (v ⋆ ) − u⋆p )(hk − h⋆k ) + p∈P k∈Kp a∈A k∈Kp k∈Kp Si considerino due soluzioni (v ⋆ , u⋆ ) e (v̂, û). Utilizzando la precedente relazione otteniamo X X X X X ĥk u⋆p + dp (ûp − u⋆p ) ≥ 0, h⋆k ûp − ( sk (v ⋆ ) − u⋆p )(ĥk − h⋆k ) + p∈P X p∈P k∈Kp a∈A k∈Kp k∈Kp X X X X h⋆k ûp + dp (u⋆p − ûp ) ≥ 0. ĥk u⋆p − ( sk (v̂) − ûp )(h⋆k − ĥk ) + k∈Kp a∈A k∈Kp k∈Kp Sommando membro a membro si ha X X (sa (v ⋆ ) − sa (v̂)) (va⋆ − v̂a ) − dp (u⋆p − ûp ) + dp (ûp − u⋆p ) a∈A = X p∈P (sa (v ⋆ ) − sa (v̂)) (va⋆ − v̂a ) ≤ 0. a∈A La precedente relazione a l’ipotesi di s funzione monotona implicano (s(v ⋆ ) − s(v̂))T (v ⋆ − v̂) = 0, da cui segue, tenendo conto che s è strettamente monotona, v ⋆ = v̂. 38 15 Appendice D: Condizioni di ottimalità per problemi con vincoli di simplesso Sia x∗ ∈ Rn un punto di minimo locale del problema min f (x) n X xi = r (69) i=1 x ≥ 0, con r > 0. Allora risulta x⋆i > 0 implica ∂f (x⋆ ) ∂f (x⋆ ) ≤ per ogni j ∈ {1, . . . , n}. ∂xi ∂xj (70) Infatti, sia i ∈ {1, . . . , n} tale che x⋆i > 0 e sia j ∈ {1, . . . , n} con j 6= i. Si verifica facilmente che la direzione d tale che di = −1, dj = 1, dh = 0, h ∈ {1, . . . , n}, h 6= i, j è ammissibile in x⋆ . Essendo x⋆ un minimo locale deve necessariamente risultare ∇f (x⋆ )T d = ∂f (x⋆ ) ∂f (x⋆ ) − ≥ 0. ∂xj ∂xi Le condizioni (70) possono essere ricavate dalle condizioni KKT (si lascia per esercizio). Di conseguenza, se la f è convessa le condizioni (70) sono necessarie e sufficienti di minimo globale. Consideriamo ora un caso particolare di programmazione convessa, ossia il caso di funzione obiettivo lineare: min c1 x1 + c2 x2 + . . . + cn xn n X xi = r (71) i=1 x ≥ 0, Da quanto detto in precedenza segue che una soluzione x⋆ si ottiene per via analitica. In particolare, indicato con i l’indice “di costo minimo”, ossia tale che ci ≤ cj j = 1, . . . , n, una soluzione x⋆ si ottiene ponendo x⋆i = r x⋆j = 0, j 6= i, j = 1, . . . , n. 39