Glossario
Transcript
Glossario
Glossario Accoppiamento perfetto: dato un grafo G=(N,E) un accoppiamento perfetto è un sottoinsieme M ⊆ E tale che ogni nodo di N è toccato da esattamente un lato di M. [Lezione 24] Albero: grafo connesso e senza cicli. Un albero di n vertici ha n - 1 lati. Un albero ammette per ogni coppia di vertici uno e un solo cammino che li connette. [Lezione 3] Albero di branching: vedere Branch and Bound. [Lezione 23] Albero di supporto: dato un grafo G = ( N, E ), un albero di supporto di G è un albero di G contenente tutti i suoi nodi. [Lezione 3] Algoritmo: sequenza di istruzioni in grado di determinare per ogni istanza di un dato problema la corrispondente soluzione in un tempo finito. [Lezione 2] Algoritmo assolutamente approssimato: un algoritmo euristico A è detto assolutamente approssimato per un problema P se e solo se esiste una costante k > 0 tale che per ogni istanza I di P risulta |zopt (I)-zA (I)|≤ k, dove zopt è il valore della soluzione ottima e zA il valore fornito dall’algoritmo A. [Lezione 24] Algoritmo del doppio albero: algoritmo 1-approssimato per il problema del TSP simmetrico con costi che soddisfano la disuguaglianza triangolare. [Lezione 24] Algoritmo del simplesso: algoritmo evolutivo che determina la soluzione ottima di un PL in forma canonica passando da una soluzione ammissibile di base ad un’altra adiacente con valore della f.o. non peggiore oppure stabilisce che il PL è illimitato. Sebbene nel caso peggiore l’algoritmo converge in un numero esponenziale di passi, nel caso medio converge in O( m3 ) passi. [Lezione 13] Algoritmo di Christofides: algoritmo ½-approssimato per il problema del TSP simmetrico con costi che soddisfano la disuguaglianza triangolare. [Lezione 24] Algoritmo di Dantzig-Hitchcock: algoritmo polinomiale di risoluzione del problema del trasporto. Inizialmente si genera una soluzione ammissibile di base o con la regola di Nord-Ovest o con la regola dei costi minimi o con la regola di Vogel. Si controlla se la soluzione corrente è ottima verificando se i costi ridotti delle variabili fuori base sono non negativi. In caso contrario si genera una soluzione ammissibile di base di costo non maggiore risolvendo un problema di ricerca di cicli su un grafo generato nel modo seguente. Il grafo ha un nodo in corrispondenza di ogni variabile di base e un nodo in corrispondenza di una sola variabile fuori base con costo ridotto negativo (variabile entrante). Si collegano i nodi con un arco se e solo se si trovano sulla stessa riga o colonna. Si cerca un ciclo avente solo 2 nodi per ogni riga e per ogni colonna. Si aumenta di ε il valore della variabile entrante e si cambiano in modo opportuno i valori delle variabili del ciclo in modo da soddisfare tutti i vincoli. Si determina il massimo valore di ε che non violi la condizione di non negatività sulle variabili. Si considera questa come la nuova soluzione corrente. [Lezione 17] Algoritmo di Dijkstra: algoritmo polinomiale che determina il cammino minimo da un nodo s a tutti gli altri nodi in grafi con costi non negativi. La complessità è O(nm) o O(n2 ), a seconda della struttura dati utilizzata.[ Lezione 5] Algoritmo di Floyd-Warshall: Algoritmo polinomiale che determina i cammini minimi tra tutte le coppie di nodi s e t anche in presenza di archi con costo negativo ma senza cicli di lunghezza totale negativa. La complessità è O(n3 ). [Lezione 5] Algoritmo di Ford-Fulkerson: algoritmo per il problema in una rete di flusso del massimo flusso (Max flow) da s a t, basato sul teorema del Max flow- Min cut e sull’idea del cammino aumentante. [Lezione 7] Algoritmo di Kruskal: algoritmo che risolve il problema dell'albero di supporto di costo minimo in un grafo (anche non connesso). La complessità nel caso generale è O(mlogn+n 2 ) ma può essere ridotta utilizzando una struttura dati più sofisticata. [Lezione 4] Algoritmo di Prim: algoritmo greedy che risolve in modo esatto il problema dell'albero di supporto di costo minimo in un grafo connesso. La complessità è O(n 3 ) o O(n 2 ) a seconda della struttura dati utilizzata. [Lezione 4] Algoritmo di ricerca locale: algoritmo che consente di migliorare attraverso una procedura iterativa le soluzioni ottenute con tecniche costruttive (ottenute ad es. con algoritmi di tipo greedy). L’algoritmo consiste nell’individuare modifiche (perturbazioni) alla struttura delle soluzioni ammissibili che ne preservino l’ammissibilità e nell’applicare tali modifiche fintantoché il valore della funzione obiettivo migliora. [Lezione 25] Algoritmo ε- approssimato: un algoritmo A è un algoritmo ε- approssimato per un problema P se e solo se esiste una costante ε > 0 tale che per ogni istanza I risulta |zopt (I)-zA (I)|≤ ε| zopt (I)|, dove zopt è il valore della soluzione ottima e zA il valore fornito dall’algoritmo A. [Lezione 24] Algoritmo euristico: algoritmo euristico (dal greco scoprire): algoritmo che fornisce una soluzione ammissibile, non necessariamente ottima, di un problema di ottimizzazione. [Lezione 24] Algoritmo evolutivo: vedere Metodo evolutivo. [Lezione 2] Algoritmo g(n)-approssimato: un algoritmo A è un algoritmo g (n)-approssimato per un problema P se e solo se per ogni istanza I di dimensione n risulta |zopt (I)-zA (I)|≤ g(n)|zopt (I)| dove zopt è il valore della soluzione ottima e zA il valore fornito dall’algoritmo A. [Lezione 24] Algoritmo genetico: algoritmo ispirato dai meccanismi della genetica proposto per la prima volta nel 1973 da John Holland. Un algoritmo genetico richiede di specificare tre operazioni (generalmente di tipo probabilistico) su oggetti detti stringhe rappresentabili come vettori di numeri reali: i) riproduzione: combinazione di stringhe nella popolazione per crearne di nuove; ii) mutazione: alterazione spontanea di caratteri in una stringa; iii) crossover: combinazione di stringhe per scambiare i valori creando al loro posto nuove stringhe. Queste operazioni si possono anche combinare tra loro e inoltre la riproduzione e il crossover possono comprendere la competizione all’interno di popolazioni. I passi di un generico algoritmo genetico sono: 0. Inizializza la popolazione 1. Seleziona i genitori per la riproduzione e le operazioni da eseguire 2. Esegui le operazioni per generare una popolazione intermedia e valuta la capacità di sopravvivenza dei membri della popolazione 3. Seleziona i membri della popolazione che resteranno nella nuova generazione Ripetere i passi da 1 a 3 sino a quando non è verificato un qualche criterio di arresto. [Lezione 25] Algoritmo greedy : algoritmo nel quale la costruzione della soluzione avviene per passi e ad ogni passo viene fatta la scelta più favorevole, compatibile con i vincoli del problema (greedy=ingordo). [Lezione 24] Algoritmo polinomiale: un algoritmo è polinomiale se richiede nel caso peggiore un numero di operazioni elementari f(n )=O(n d ), dove n è la dimensione dell'istanza e d è una costante. [Lezione 9] Analisi di postottimalità: in un problema di programmazione lineare valori entro cui è possibile fare variare un singolo dato (b j o cj ) senza che cambi la composizione della base. [Lezione 16] Analisi di sensitività: in un problema di programmazione lineare variazione della f.o. in seguito a una variazione infinitesima di un singolo dato (b j o cj ). [Lezione 16] Angolo di Nord-Ovest: vedere Regola dell’angolo di Nord-Ovest. [Lezione 17] Ant system: metaeuristica basata su una popolazione di agenti (formiche) che costruiscono simultaneamente soluzioni di un problema applicando un algoritmo greedy con scelte parzialmente casuali (queste ultime permettono ai diversi agenti di costruire soluzioni diverse). L’esecuzione viene ripetuta più volte (ovvero per più generazioni); al termine di ognuna, ma in alcune varianti anche durante l’esecuzione, gli agenti modificano i valori di una funzione ausiliaria (traccia) che a sua volta influenza, insieme ai dati e al caso, le scelte degli agenti. Le modifiche sono volte ad aumentare la probabilità di compiere le scelte che nelle generazioni precedenti hanno portato ai risultati migliori. [Lezione 25] Arco: vedere Grafo orientato. [Lezione 3] Arco saturo: un arco (i,j) ∈ rete di flusso G=(N,A,k) si dice saturo se xij = k ij . [Lezione 7] Arco scarico: un arco (i,j) ∈ rete di flusso G=(N,A,k) si dice scarico se xij = 0 . [Lezione 7] Assegnamento: vedere Problema dello assegnamento. [Lezione 20] Attività critica: attività (i,j) per la quale lo slittamento è nullo, ovvero Tmax[j]-Tmin[i]-di,j =0 dove Tmax[j] è l’istante di fine al più tardi di (i,j), Tmin [i] l’istante di inizio al più presto e d i,j la durata di (i,j). [Lezione 6] Balinski-Gomory: vedere Teorema di Balinski-Gomory. [Lezione 13] Base: dato un PL in forma standard, si dice base ogni insieme di m colonne linearmente indipendenti della matrice dei vincoli. [Lezione 11] Bilanciamento della produzione: vedere Problema di bilanciamento della produzione e Problema di bilanciamento della produzione a multi-periodo. [Lezione 19] Bound: il bound è una limitazione inferiore di un problema di minimizzazione o una limitazione superiore di un problema di massimizzazione. [Lezione 14] Bounds duali (dual bounds): Lower bounds e upper bounds di un PLI. [Lezione 22] Branch and Bound: Metodo di risoluzione di un problema di ottimizzazione basato sulla enumerazione implicita di tutte le soluzioni. Il metodo comprende due fasi: (a) generazione di una partizione ricorsiva della regione ammissibile (branching) (b) risoluzione esplicita o implicita (bounding) dei sottoproblemi generati dalla partizione. La partizione viene rappresentata mediante una struttura ad albero (albero di branching), mentre i bounds come etichette sui nodi. [Lezione 23] Cammino critico: Cammino costituito solo da archi corrispondenti ad attività critiche congiungente il nodo associato all’inizio del progetto a quello associato alla fine del progetto. [Lezione 6] Cammino Hamiltoniano: cammino che passa una e una sola volta per ogni nodo del grafo. [Lezione 25] Cammino non orientato: dato un grafo non orientato G = ( N, E ), un cammino non orientato dal nodo v1 al nodo vk è una sequenza di lati consecutivi [ v1 , v2 ], [ v2 , v3 ],…, [ vk-1, vk ] appartenenti ad E. [Lezione 3] Cammino orientato: dato un grafo orientato G = ( N, A ), un cammino dal nodo v1 al nodo vk è una sequenza di archi consecutivi ( v1 , v2 ), ( v2 , v3 ),… , ( vk-1, vk ) appartenenti ad A. [Lezione 3] Capacità della sezione: data una rete di flusso e una sezione S, si dice capacità della sezione la quantità k(S) = somma della capacità degli archi uscenti da S. [Lezione 7] Capacità di un aeroporto: in una rete di traffico aereo, è una quantità che può essere stimata con buona approssimazione in termini di movimenti all'ora, considerando una serie di parametri. [Lezione 26] Capacità di un settore: in una rete di traffico aereo, è definita come il numero di aerei che i controllori di volo possono monitorare simultaneamente nel settore. [Lezione 26] Christofides: vedere Algoritmo di Christofides. [Lezione 24] Ciclo: cammino chiuso in cui i due estremi coincidono. [Lezione 3] Ciclo Euleriano: ciclo che passa una e una sola volta per ogni arco del grafo. [Lezione 25] Ciclo Hamiltoniano: ciclo che passa una e una sola volta per ogni nodo del grafo. [Lezione 25] Ciclo orientato: cammino orientato in cui i due estremi coincidono. [Lezione 3] Circuito: vedere Ciclo orientato. [Lezione 3] Classi di complessità: classi che permettono di catalogare i problemi di riconoscimento in base alla loro difficoltà ossia in base alla complessità degli algoritmi che li risolvono. Le classi di complessità più importanti sono P, NP, NP-completo e NP-difficile. [Lezione 9] Combinazione convessa: una combinazione convessa di due vettori x e y∈ℜn è qualunque vettore del tipo: z=λx+(1-λ)y , ∀ λ∈[0,1]. [Lezione 11] Convergenza globale: si dice che un metodo evolutivo converge globalmente se è in grado di arrivare alla soluzione ottima partendo da una qualunque soluzione ammissibile. [Lezione 28] Convergenza lineare: si dice che un algoritmo evolutivo converge linearmente con velocità β se lim k →∞ |x k +1 − x* | k | x − x* | =β dove x * = lim k →∞ xk [Lezione 28] Convergenza locale: si dice che un metodo evolutivo converge localmente se è in grado di arrivare alla soluzione ottima solamente partendo da un intorno della soluzione stessa. [Lezione 28] Coppie di soluzioni di base: data una coppia di PL primale-duale P e D, due soluzioni di base per P e per D, x e y, è definita coppia di soluzioni di base se soddisfano l’equazione dello scarto complementare xi ⋅ yi = 0 , per ogni xi * , yi * ≥ 0. Ciò assicura che z( x ) = w( x ), ma non assicura che x e y siano soluzioni ottime poiché non è detto che siano entrambe ammissibili. [Lezione 15] Costi ridotti: in un problema di programmazione lineare in forma standard si definisce vettore dei costi ridotti il vettore: c N = cN − cB B −1 N dove la matrice B è formata dalle colonne in base della matrice A dei vincoli, N è l’insieme delle colonne fuori base di A, cB e cN sono rispettivamente le componenti in base e fuori base del vettore dei costi. [Lezione 16] CPLEX: (C-simPLEX) R. Bixby, ILOG, 1991-2001. Libreria in C con un solutore per la Programmazione Lineare (Simplesso Primale e Duale, Metodi Barriera, Networksimplex) e Programmazione Lineare Intera sviluppata all’Università del Texas e dal 1997 acquisita e sviluppata dalla ILOG è stata la più usata libreria per il calcolo di bound di problemi di ottimizzazione in ambienti di ricerca dalla sua comparsa agli inizi degli anni Novanta. Tuttora è considerata lo stato dell’arte ed è usata come benchmark di riferimento per molti algoritmi esatti ed euristici. [Lezione 18] Critical Path Method (CPM): tecnica che permette di pianificare un progetto costituito da un insieme di attività con relazioni di precedenza. Il progetto è rappresentato mediante un grafo orientato i cui archi rappresentano le attività, i costi le relative durate. Nella costruzione del grafo possono essere aggiunti archi corrispondenti ad attività fittizie. Il minimo tempo di completamento del progetto corrisponde al valore del cammino di costo massimo del grafo. [Lezione 6] Curva di deflusso: funzione crescente che in una rete di traffico lega il tempo di viaggio lungo un arco al numero di veicoli che passano per quell’arco. [Lezione 1] Curva di livello: si definisce curva di livello di una funzione il luogo geometrico di punti in cui la funzione assume uno stesso valore. [Lezione 11] Curva di indifferenza: in un problema di programmazione a molti obiettivi le curve di indifferenza sono i luoghi di punti che il decisore reputa ugualmente soddisfacenti. [Lezione 29] Dantzig-Hitchcock: vedere Algoritmo di Dantzig-Hitchcock. [Lezione 17] Destinazione: in una rete di flusso vengono specificati due vertici s e t, detti sorgente e destinazione. [Lezione 7] Diagramma di Gantt: diagramma a barre che permette di visualizzare la collocazione temporale delle attività di un progetto. L’asse orizzontale rappresenta il tempo e la lunghezza della barra associata a ogni attività la durata. Nel diagramma al più presto (al più tardi) ogni attività (i,j) inizia all’istante Tmin[i] (Tmax [i] ). [Lezione 6] Dijkstra: vedere Algoritmo di Dijkstra. [ Lezione 5] Dilemma del prigioniero: problema di teoria dei giochi nel quale si evidenzia che l’ottimo individuale è peggiore dell’ottimo collettivo che è possibile ottenere cooperando. [ Lezione 1] Dimensione di una istanza: la dimensione di un'istanza I, di un problema, indicata con |I| è il numero di bit necessari a codificarla. [Lezione 9] Direzione ammissibile: dato un problema di programmazione matematica si definisce direzione ammissibile in un punto ammissibile x ogni direzione lungo la quale è consentito uno spostamento infinitesimo nel rispetto dei vincoli. Operativamente se il punto x è regolare l'insieme delle direzioni ammissibili è costituito da D={d∈ℜn : ∇h i ⋅d=0, ∀ vincolo di uguaglianza h i (x)=0 e ∇g l ⋅d≤0, ∀ vincolo di disuguaglianza g l (x)≤0 attivo in x }. [Lezione 27] Distanza di Hamming: si chiama distanza di Hamming d H (s1 ,s2 ) fra due vettori booleani ad n componenti s1 ed s2 il numero delle componenti in cui essi differiscono. [Lezione 25] Disuguaglianza triangolare: dato un grafo G=(N,E) si dice che i costi cij , definiti per ogni arco (i,j)∈ E, soddisfano la disuguaglianza triangolare se per ogni terna di nodi i,j,k in N vale la relazione cik≤cij +cik . [Lezione 24] Dominanza: in un problema di programmazione a molti obiettivi si dice che una soluzione x domina la soluzione x̂ se fh ( x ) ≤ fh ( x̂ ) ∀ h e ∃ q: fq ( x ) < fq ( x̂ ). [Lezione 29] Doppio albero: vedere Algoritmo del doppio albero. [Lezione 24] Dualità: una coppia di problemi di ottimizzazione, uno di massimo e l’altro di minimo, costituisce una coppia di problemi primale-duale se il valore di ogni soluzione ammissibile del problema di massimo è una limitazione inferiore al valore ottimo del problema di minimo e, viceversa, il valore di ogni soluzione ammissibile del problema di minimo è una limitazione superiore al valore ottimo del problema di massimo. [Lezione 14] Dualità debole: vedere Teorema della dualità debole. [Lezione 15] Dualità forte: vedere Teorema della dualità forte. [Lezione 15] Euristica: vedere Algoritmo euristico. [Lezione 24] Euristica Nearest Neighbourhood: euristica greedy per il TSP. [Lezione 24] Euristica Nearest Insertion: euristica greedy per il TSP. [Lezione 24] Extraricavo: in un problema di programmazione lineare l’extraricavo è il ricavo che si può ottenere per la vendita diretta di un fattore di produzione. Si dimostra che gli extraricavi coincidono con i valori ottimi delle variabili di slack del problema duale. [Lezione 16] Floyd-Warshall: vedere Algoritmo di Floyd-Warshall. [Lezione 5] Flusso ammissibile: data una rete di flusso e due nodi s e t, detti sorgente e destinazione, si dice flusso ammissibile da s a t una funzione x: A→ℜ tale che: a) per ogni arco (i,j) ∈ A 0 ≤ xij ≤ k ij ; b) (flusso uscente da h) – (flusso entrante in h) = 0, per ogni h ∈N\{s,t} . [Lezione 7] Flusso attraverso una sezione: dato un flusso ammissibile x, si dice flusso attraverso una sezione (S,N\S) la quantità ϕ (S) = flusso x uscente da S - flusso x entrante in S. [Lezione 7] Ford-Fulkerson: vedere Algoritmo di Ford-Fulkerson. [Lezione 7] Forma canonica di un PL: un problema di PL si dice in forma canonica (forte) se è in forma standard e se soddisfa le condizioni: α) B = I β) cB = 0 γ) b ≥ 0 Si dice in forma canonica debole se soddisfa solo le condizioni α) e β). [Lezione 12] Forma standard di un PL: un problema di PL si dice in forma standard se è della forma min z = cx + d Ax = b ( m ) x≥0(n) rank ( A ) = m ≤ n [Lezione 11] Formulazione di un PLI: si definiscono formulazioni di un problema (PLI) tutti i diversi modelli di programmazione lineare intera, che individuano lo stesso insieme di soluzioni ammissibili. [Lezione 22] Formulazione ideale: si dice formulazione ideale di un problema di programmazione lineare a numeri interi (PLI) quella formulazione per la quale il rilassamento continuo (RPL) ha tutti i vertici della regione ammissibile con coordinate intere. [Lezione 22] Funzione convessa: sia S un insieme convesso, una funzione f:S→ℜ si dice convessa su S se ∀ x,y ∈S risulta f(λx+(1-λ)y)≤λf(x)+(1-λ)f(y) , ∀ λ∈[0,1]. [Lezione 11] Funzione di utilità: per funzioni di utilità si intendono le funzioni matematiche nelle quali sono convertiti gli obiettivi di un problema di programmazione a molti obiettivi in modo da riferirli ad una stessa scala di valori. [Lezione 29] Funzione obiettivo (f.o.): funzione matematica che esprime il criterio di scelta di un problema di decisione. [Lezione 2] Funzione unimodale: una funzione di una variabile si dice unimodale su un intervallo se nell'intervallo in esame ammette un solo minimo (o un solo massimo). [Lezione 28] GAMS: (General Algebraic Modelling System), R.Rosenthal, 1985-1998. Ambiente di sviluppo di modelli di ottimizzazione. Il primo, il più conosciuto, il più potente e flessibile (moltissimi solutori sono utilizzabili via GAMS), ma il meno friendly per quanto riguarda l’editor e l’esportazione di dati da un foglio elettronico o database. Nell’ultima versione del 1998 è utilizzabile come linguaggio di programmazione ad alto livello. [Lezione 18] Gantt: vedere Diagramma di Gantt. [Lezione 9] Gradiente di funzione: data una funzione f: ℜn → ℜ, derivabile, si definisce gradiente di f il vettore ∇f= ∂f , ∂f ,..., ∂f . [Lezione 27] ∂x ∂x ∂x n 1 2 Grado di un nodo: dato un grafo, il grado di un nodo è il numero di lati ad esso incidenti. [Lezione 3] Grafo (non orientato): struttura matematica costituita dalla coppia ( N, E ), dove N è un insieme di nodi (o vertici) ed E è una famiglia di coppie non ordinate di nodi dette lati. [Lezione 3] Grafo bipartito: grafo in cui esiste una partizione ( N1 , N2 ) dell’insieme di nodi N t.c. nessun lato collega nodi dello stesso Ni ( i = 1, 2 ) [Lezione 3] Grafo completo: grafo che contiene un lato per ogni coppia di nodi. [Lezione 3] Grafo connesso: un grafo si dice connesso se tutte le coppie di nodi sono connesse. [Lezione 3] Grafo Euleriano: grafo che possiede un ciclo Euleriano. [Lezione 25] Grafo Hamiltoniano: grafo che possiede un ciclo Hamiltoniano. [Lezione 25] Grafo orientato: struttura matematica costituita dalla coppia ( N, A ), dove N è un insieme di nodi ed A è una famiglia di coppie ordinate di nodi dette archi. [Lezione 3] Greedy: vedere Algoritmo greedy. [Lezione 24] Hamming: vedere Distanza di Hamming. [Lezione 25] Insieme convesso: un insieme S⊆ℜn si dice convesso se ∀x,y∈S, z=λx+(1-λ)y ∈ S, ∀ λ∈[0,1]. [Lezione 1] Intorno: data una soluzione s si definisce intorno N(s) l’insieme di tutte le soluzioni ammissibili che si possono ottenere applicando ad s tutte le mosse possibili (di un certo tipo). [Lezione 25] Intorno 2-opt: nel problema del TSP si definisce intorno 2-opt l’intorno nel quale la mossa è lo scambio di una coppia di archi non adiacenti con un’altra coppia e l’inversione degli archi di un tratto del percorso corrente. [Lezione 25] Intorno 3-opt: nel problema del TSP si definisce intorno 2-opt l’intorno nel quale la mossa è lo scambio di una terna di archi con un’altra terna con l’accortezza di mantenere l’orientazione prevalente. [Lezione 25] Istanza: si ha una istanza di un problema tutte le volte che ai parametri del problema vengono assegnati dei valori. [Lezione 1] Knapsack: vedere Problema dello zaino. [Lezione 20] Kruskal: vedere Algoritmo di Kruskal. [Lezione 4] Kuhn-Tucker: vedere Teorema di Kuhn-Tucker. [Lezione 27] L-intorno: chiamiamo l-intorno di una soluzione s l’insieme Nl (s) ={ ŝ : d(s, ŝ )≤l} dove d: S×S àℜ+ definisce una funzione distanza in S. Nl (s) è quindi l’insieme di tutte le soluzioni ammissibili che si trovano ad una distanza al più pari a l dalla soluzione s. [Lezione 25] Lato di diminuzione: sia T un albero di supporto, un lato e ∉ T è detto di diminuzione se aggiungendolo a T si crea un ciclo C ⊆ T ∪ {e} ed esiste un lato f ∈ C\{e} con ce < cf. [Lezione 4] Lato incidente: dato un grafo non orientato, un lato si dice incidente un dato nodo se quest’ultimo è uno dei suoi estremi. [Lezione 3] Localizzazione: vedere Problema di localizzazione. [Lezione 26] LINDO: (Linear, INteractive, and Discrete Optimizer) Lindo Inc, 79-98. Libreria in Fortran con un solutore per la Programmazione Lineare e Programmazione Lineare Intera: è stato molto usato in ambienti di ricerca dagli anni Ottanta per il calcolo di bound di problemi di ottimizzazione. [Lezione 18] LINGO: Lindo Inc, 1996-2001. Ambiente di sviluppo di modelli di ottimizzazione. Deve il suo successo al fatto di essere commercializzato unitamente a LINDO. [Lezione 18] Livelli di aspirazione: nella programmazione a molti criteri i livelli di aspirazione sono il massimo o il minimo valore che un certo criterio deve assumere nella soluzione finale secondo il decisore. [Lezione 29] Lower bound: limite inferiore al valore della soluzione ottima di un problema di ottimizzazione. [Lezione 22] Massimo flusso (Max flow): in una rete di flusso si definisce problema del massimo flusso da s a t, max{ϕ = flusso x uscente da s tale che x sia un flusso ammissibile}. [Lezione 7] Matroide: un matroide è un sistema di indipendenza (E,ℑ), con l'ulteriore proprietà che per ogni coppia di insiemi indipendenti I e J tali che |I|=|J|+1, ∃ e∈I : J∪{e}∈ℑ. [Lezione 24] Metaeuristica: struttura generale di euristica per problemi NP –difficili. Esempi di metaeuristiche sono tabu search, simulated annealing, algoritmi genetici, ant system, reti neurali. [Lezione 25] Metodo analitico: metodo di risoluzione di un problema basato sulla risoluzione di un sistema di equazioni e\o disequazioni. [Lezione 2] Metodo del gradiente: metodo evolutivo per problemi di ottimizzazione n-dimensionali non vincolati con f.o. derivabile. La formula iterativa è data da x k +1 = x k − α k ∇ f ( x k ) . Scegliendo il passo α k in modo da minimizzare ( ) f x k −α∇ f ( x k ) rispetto ad α≥0, il metodo converge globalmente. [Lezione 28] Metodo delle direzioni ammissibili: metodo evolutivo che estende il metodo del gradiente a problemi di ottimizzazione n-dimensionali vincolati. La formula iterativa è data da x k +1 = xk + α k d k , dove d k è soluzione di: m i ∇ n f ( x ∇ h i ∇ g l ( x ( x k k ) d ) d d k k ) = ≤ 0 ∀ 0 ∀ v i v n i n c o l o c o l o d d i u i g d i u a g l i a n z s u g u a g l i a a h n ( i z a x g ) l = ( 0 x ) k ≤ 0 a t t i v o i n x min ∇ f ( xk ) d k ∇hi ( xk ) d k = 0 ∀ vincolo di uguaglianza hi ( x ) = 0 ∇gl ( xk ) d k ≤ 0 ∀ vincolo di disuguaglianza gl (x ) ≤ 0 attivo in x k Il passo αk è determinato minimizzando f(xk+αd k) nel rispetto di tutti i vincoli del problema di partenza. [Lezione 28] Metodo di bisezione: metodo evolutivo monodimensionale con velocità di convergenza lineare (1/2) per problemi di ottimizzazione non vincolati che hanno funzione obiettivo derivabile. Il metodo consiste nell'applicare alla derivata della f.o. il metodo di bisezione (o del dimezzamento) per la determinazione degli zeri di una funzione. [Lezione 28] Metodo di scomposizione: metodo di risoluzione di un problema basato sulla risoluzione di sottoproblemi più semplici. [Lezione 2] Metodo enumerativo: metodo di risoluzione di un problema basato sulla enumerazione di tutte le soluzioni possibili. [Lezione 2] Metodo euristico: vedere Algoritmo euristico. [Lezione 24] Metodo evolutivo: metodo di risoluzione di un problema attraverso iterazioni successive a partire da una data soluzione iniziale. [Lezione 2] Metodo monodimensionale: metodo evolutivo per funzioni di una sola variabile. [Lezione 28] Modello matematico: schematizzazione di un problema attraverso un insieme di simboli, operazioni e relazioni che definiscono i legami tra le variabili e i dati del problema. [Lezione 1] Mossa: in un algoritmo di ricerca locale si definisce mossa m da una soluzione ad un’altra un operatore del tipo m: S à S, dove S è l’insieme delle soluzioni ammissibili. [Lezione 25] MPL: (Model Development Environment), Maximal Inc, 1996-2001. Ambiente di sviluppo di modelli di ottimizzazione. Molto diffuso nella seconda metà degli anni 90 per la facilità con cui si può interfacciare a database tipo Ms Access o fogli elettronic tipo Ms Excell e per il fatto di offrire gratuitamente la versione demo. [Lezione 18] Nodi adiacenti: due nodi di un grafo si dicono adiacenti se esiste un lato che li collega. [Lezione 3] Nodi connessi: due nodi di un grafo si dicono connessi se esiste un cammino che li collega. [Lezione 3] Nord-Ovest: vedere Regola dell’angolo di Nord-Ovest. [Lezione 17] NP : indica la classe dei problemi di riconoscimento per i quali esiste una prova del fatto che una istanza abbia risposta "si" verificabile in tempo polinomiale. [Lezione 9] NP-completo: un problema P è NP-completo se e solo se P ∈ NP e P' ∝ P, ∀ P'∈NP cioè ogni altro problema in NP si riduce ad esso in tempo polinomiale. [Lezione 9] NP-difficile: un problema è NP-difficile se non appartiene a NP ma ogni altro problema in NP è riducibile ad esso in tempo polinomiale. [Lezione 9] Ordine di complessità: l’ordine di complessità di un algoritmo è il massimo numero di operazioni elementari necessarie per risolvere qualunque istanza di dimensione n. L’ordine di complessità viene indicato mediante l’ordine di funzione. [Lezione 3] Ordine di una funzione: si dice che una funzione f ( n ) è dell’ordine di g( n ) e si scrive f ( n ) = O( g ( n ) ) se esiste una costante c > 0 t.c. f ( n ) <= cg( n ), per n sufficientemente grande. [Lezione 3] Ordine topologico: si dice che i nodi di un grafo G=(N,A) sono numerati in ordine topologico se risulta i <j per ogni (i,j) ∈ A. [Lezione 6] OSL: (Optimization Solution Library) J. Forrester, IBM, 87-92. Libreria in Fortran con un solutore per la Programmazione Lineare (Simplesso Primale e Duale) e Programmazione Lineare Intera è stato usato in ambienti di ricerca a fine anni Ottanta e inizi Novanta per il calcolo di bound di problemi di ottimizzazione. [Lezione 18] Ottimizzazione combinatoria: problema di programmazione matematica con un numero finito di soluzioni ammissibili. [Lezione 2] P : indica la classe dei problemi di riconoscimento che si possono risolvere in tempo polinomiale. [Lezione 9] Paradosso di Braess: paradosso del problema del traffico nel quale aggiungendo una strada alla rete si ottiene una situazione di equilibrio con tempo di viaggio peggiore a quello in assenza di tale strada. [Lezione 1] Pianificazione della produzione con più impianti: vedere Problema di pianificazione della produzione con più impianti. [Lezione 19] Pivot: dato un tableau di un PL si definisce pivot ( perno ) attorno all’elemento a hk l’operazione consistente in: i) dividere la riga h per a hk; ii) combinare linearmente ogni riga i ≠ h con α⋅ (riga h) in modo che a ik = 0 per i = 0, … , m, i ≠ h. L’operazione di pivot permette il cambiamento di base. [Lezione 13] Politica di slot allocation: spesso è prevedibile che un aeromobile, il cui piano di volo prevede il transito attraverso aree congestionate, incorra in un ritardo in aria prima di arrivare a destinazione se parte in orario. Talora un adeguato ritardo in fase di partenza consente di evitare la congestione ed il conseguente ritardo in aria. Questa politica riduce i costi delle compagnie aeree e garantisce la sicurezza dello spazio aereo. [Lezione 26] Postottimalità: vedere Analisi di postottimalità. [Lezione 16] Prezzo ombra: in un problema di programmazione lineare il prezzo ombra di una risorsa è il prezzo che il decisore è disposto a pagare per una unità aggiuntiva della risorsa. Nella teoria della dualità si dimostra che il prezzo ombra di una risorsa coincide con il valore ottimo della corrispondente variabile duale. [Lezione 16] Prim: vedere Algoritmo di Prim. [Lezione 4] Problema a molti decisori: problema di decisione con più di un decisore rispetto a un solo obiettivo in presenza di dati certi. [Lezione 2] Problema a molti obiettivi: problema di decisione con un solo decisore rispetto a più di un obiettivo in presenza di dati certi. [Lezione 2] Problema del cammino minimo: dato un grafo orientato G=(N, A) con una funzione di costo c: A→Z, il problema del cammino minimo dal nodo s al nodo t consiste nel determinare un cammino orientato da s a t in modo tale che sia minima la somma degli archi che lo compongono. [Lezione 5] Problema del commesso viaggiatore (Travelling Salesman Problem): un commesso viaggiatore deve visitare n città esattamente una volta e ritornare al punto di partenza. Il tempo necessario per andare dalla città i alla città j è Cij . Determinare la sequenza di visita delle città in modo da completare il ciclo nel minore tempo possibile. [Lezione 21] Problema del trasporto: risolve il problema del trasferimento a costo minimo delle merci da magazzini sorgenti a clienti destinazione con differenti disponibilità e richieste di merce. Di solito, i costi sono proporzionali alla distanza. [Lezione 18] Problema del TSP simmetrico: problema del commesso viaggiatore con matrice dei costi Cij simmetrica, cioè andare dalla città i alla città j ha lo stesso costo che andare dalla città j alla città i, per ogni coppia di città. [Lezione 21] Problema della rete di traffico aereo: è una rete costituita da aeroporti, aerovie e settori (sottoinsiemi dello spazio aereo). Ciascuno di questi elementi ha una capacità limitata. [Lezione 26] Problema dello assegnamento: ci sono n persone in grado di svolgere n attività. Ad ogni persona deve essere assegnata una sola attività ed ogni attività deve venir svolta da una sola persona. Ad ogni coppia (persona i, attività j) è associato un costo cij che esprime le maggiori o minori attitudini di ciascuna persona a svolgere le diverse attività. Decidere come assegnare le attività alle persone in modo tale da minimizzare il costo complessivo dell’assegnamento. [Lezione 20] Problema dello slot allocation: è il problema di determinare, in una rete aerea che connette più aeroporti, quanto ciascun volo debba essere ritardato a terra in modo da minimizzare un’opportuna funzione che misura la penalità complessiva associata ai ritardi (a terra e in aria) della rete. La soluzione del problema è il vettore degli slot di partenza ed arrivo assegnati ai voli che utilizzano la rete in esame. [Lezione 26] Problema dello zaino (knapsack): dato un contenitore di capacità massima b e n oggetti con valore p j e ingombro wj , j=1,…,n decidere quali oggetti inserire nel contenitore in modo tale da massimizzare il valore totale degli oggetti inseriti rispettando il limite di capacità del contenitore. [Lezione 20] Problema dello zaino multidimensionale: sono dati n oggetti, j=1,…,n, ed m risorse, i=1,…,m. Per ogni oggetto j è noto il profitto p j e l’assorbimento unitario wij di risorsa i e per ogni risorsa i è nota la disponibilità totale b i . Stabilire quali oggetti scegliere in modo tale da massimizzare il valore totale degli oggetti scelti rispettando il limite di ciascuna risorsa. [Lezione 20] Problema di assegnamento e sequenziamento: ci sono m macchine identiche ed n lavorazioni. Ogni lavorazione j, con j=1,…,n, richiede di essere processata da una qualsiasi delle m macchine per un tempo di processamento ininterrotto p j . Ogni macchina processa una sola lavorazione alla volta. Decidere come assegnare le lavorazioni alle macchine in modo da minimizzare il tempo di completamento di tutte le lavorazioni. [Lezione 20] Problema di bilanciamento della produzione: problema di distribuire la forza produttiva tra i prodotti, con lo scopo di determinare il livello di produzione di ogni singolo prodotto per soddisfare una data domanda. [Lezione 19] Problema di bilanciamento della produzione a multi-periodo: risolve il problema di distribuzione della forza produttiva in più periodi di produzione tra i prodotti, con una domanda differenziata per ogni prodotto e ogni mese. Si può tenere in magazzino la merce pagando un costo per ogni prodotto conservato: spesso c’è un vincolo di bilancio del magazzino. [Lezione 19] Problema di copertura con insiemi (set covering): sono dati un insieme M={1,2,…, m} ed una famiglia di n suoi sottoinsiemi S j ⊆ M, con j ∈ N={1,…,n}. Ad ogni sottoinsieme S j è associato un costo cj . Si vuole trovare un insieme T⊆ N tale che S j = M , cioè tale che U j∈T l’unione dei sottoinsiemi scelti copra tutti gli elementi di M ed inoltre sia minimo il loro costo totale. [Lezione 21] Problema di decisione: problema di scegliere una soluzione in un insieme di soluzioni possibili rispetto ad un determinato criterio. [Lezione 2] Problema di gestione del personale: dato un insieme di possibili turni di lavoro del personale, si assegna ad ogni lavoratore un turno in modo da soddisfare le esigenze di forza lavoro nell’azienda: è un problema di set covering particolare. [Lezione 26] Problema di localizzazione: problema di minimizzare il numero di centri di servizio da attivare con il vincolo che ogni utente deve essere “comodamente” collegato ad almeno un centro di servizio; è un particolare problema di set covering. [Lezione 26] Problema di localizzazione di p mediane: data una rete in cui utenti utilizzano dei centri di servizio si vogliono minimizzare i costi di collegamento utente-centro e di installazione dei centri, con i vincoli che ogni utente deve essere collegato ad un centro, l’utente è collegato ad un centro se e solo se il centro è attivo, vi è un numero massimo di centri da attivare (p), ed ogni centro può servire un numero massimo di utenti. [Lezione 26] Problema di ottimizzazione: vedere Problema di programmazione matematica. [Lezione 2] Problema di pianificazione della produzione con più impianti: problema della distribuzione della forza produttiva tra i prodotti che possono essere fabbricati da più impianti con costi e quote di produzione diversi. [Lezione 19] Problema di programmazione matematica: problema di decisione con un solo decisore rispetto a un solo obiettivo in presenza di dati certi. [Lezione 2] Problema di produzione con lotto minimo: si vuole determinare un piano di produzione di un singolo prodotto su un orizzonte temporale di n periodi. Per ciascun periodo t=1,…,n sono noti la domanda da soddisfare Dt ed il costo di produzione Ct e di magazzino It , per unità di prodotto. La dimensione del lotto minimo di produzione è pari a L, mentre la capacità massima di produzione è C. Pianficare la produzione in modo da soddisfare la domanda prevista, minimizzando i costi di produzione e magazzino. [Lezione 20] Problema di riconoscimento: problema che ammette risposta "si" o "no". [Lezione 9] Problema di sequenziamento ottimale: ci sono m macchine, k=1,…,m, ed n lavorazioni, j=1,…,n. Ogni lavorazione j richiede l’attraversamento delle macchine nell’ordine 1,2,…, m, ed un tempo di processamento ininterrotto S jk su ciascuna macchina k. Ogni macchina processa una sola lavorazione alla volta. Decidere in quale ordine processare le lavorazioni su ciascuna macchina in modo da minimizzare il tempo di completamento di tutte le lavorazioni. [Lezione 20] Problema di teoria dei giochi: problema di decisione con più di un decisore rispetto a più obiettivi in presenza di dati certi. [Lezione 2] Problema di teoria delle decisoni: un problema decisionale si dice problema di teoria delle decisioni se c’è un solo decisore un solo obiettivo, informazioni incerte sui dati ma il decisore può compiere degli esperimenti per aumentare la sua informazione sullo stato di natura. [Lezione 2] Problema di trasporto: problema di trasportare i prodotti di m impianti, ognuno con capacità produttiva ai , i=1,…,m ad n clienti, ognuno con domanda b j da soddisfare, attraverso una rete nella quale cij ≥0 è il costo di trasporto di una unità di prodotto dall’impianto i al cliente j. Il problema si risolve in modo efficiente attraverso l’algoritmo di Dantzig-Hitchcock. [Lezione 17] Problema di trasporto e localizzazione di impianti: in un sistema di produzione e distribuzione monoprodotto ci sono n siti candidati ad ospitare unità produttive, ognuna con capacità massima a i , per i=1,…,n. Vi sono m magazzini, ognuno con una domanda b j da soddisfare, per j=1,…,m. Indichiamo con cij ≥0 il costo di trasporto di una unità di prodotto dal sito i al magazzino j. L’attivazione di una unità produttiva nel sito i ha un costo fisso fi >0. Decidere dove aprire le unità produttive e come trasportare il prodotto dalle unità produttive aperte ai magazzini in modo da soddisfare la domanda e da minimizzare i costi di apertura e di trasporto. [Lezione 21] Problema duale: vedere Dualità. [Lezione 14] Problema illimitato: un problema di programmazione matematica si dice illimitato se la funzione obiettivo può assumere valori arbitrariamente grandi (per problemi di massimo) o arbitrariamente piccoli (per problemi di minimo) in corrispondenza di soluzioni ammissibili. [Lezione 12] Problema in ambiente incerto: problema di decisione con informazioni non certe sui dati. [Lezione 2] Problema inammissibile: un problema di programmazione matematica si dice inammissibile se la sua regione ammissibile è vuota. [Lezione 12] Problema primale: vedere Dualità. [Lezione 14] Problema secondario: analisi della velocità di convergenza o della complessità computazionale per un metodo di risoluzione di un problema di decisione. [Lezione 2] Produzione con lotto minimo: vedere Problema di produzione con lotto minimo. [Lezione 20] Programmazione a molti criteri: programmazione a molti obiettivi con variabili discrete. [Lezione 29] Programmazione dinamica: tecnica di risoluzione di un problema di ottimizzazione attraverso la quale una soluzione ottima composta da una sequenza di decisioni elementari viene calcolata in modo ricorsivo (ad es. per risolvere il problema del cammino minimo). [Lezione 6] Programmazione lineare (PL): un problema di programmazione lineare (o programma lineare) è un problema di programmazione matematica con funzione obiettivo e vincoli lineari. [Lezione 10] Programmazione lineare intera (PLI): un PLI è un problema di programmazione lineare in cui alcune variabili sono vincolate a essere intere. [Lezione 10] Punto di equilibrio (di Nash): in un problema di teoria dei giochi un punto di equilibrio è una soluzione nella quale nessuno dei decisori ha interessa a cambiare la sua scelta singolarmente cioè a meno che anche gli altri decisori non cambino le proprie scelte. [Lezione 1] Punto di minimo (massimo) globale: punto nel quale la funzione obiettivo assume valori non maggiori minori) di quelli assunti in tutto il suo dominio. [Lezione 2] (non Punto di minimo (massimo) locale: punto nel quale la funzione obiettivo assume valore non maggiori (non minori) di quelli assunti in un intorno. [Lezione 2] Punto regolare: un punto ammissibile x si dice regolare se i gradienti dei vincoli attivi in x sono linearmente indipendenti. [Lezione 27] Rank reversal: in un problema di programmazione multicriterio il rank reversal consiste nel cambiamento di ordinamento sulla prima posizione dell'ordinamento stesso in seguito alla variazione di un peso. [Lezione 30] Regione ammissibile: insieme di tutte le possibili soluzioni di un problema di decisione. Data una formulazione matematica del problema la regione ammissibile è costituita dall’insieme dei punti soddisfacenti tutti i vincoli ed eventuali condizioni di segno o interezza sulle variabili. [Lezione 2] Regione paretiana: insieme delle soluzioni efficienti (o paretiane). [Lezione 29] Regola dei minimi costi: metodo per trovare una soluzione ammissibile di base per il problema del trasporto che consiste nel considerare nella tabella delle allocazioni corrente la posizione corrispondente all’elemento di costo minimo, nel saturare il vincolo più restrittivo tra quello di riga e quello di colonna e nell’aggiornare l’altro vincolo. Si ripete il procedimento aggiornando la tabella dei costi, finchè tutti i vincoli non sono saturi. [Lezione 17] Regola dell’angolo di Nord-Ovest: metodo per trovare una soluzione ammissibile di base per il problema del trasporto che consiste nel considerare la posizione più in alto a sinistra (NordOvest) della tabella delle allocazioni corrente, nel saturare il vincolo più restrittivo tra quello di riga e quello di colonna , nell’aggiornare l’altro vincolo e nel ripetere il procedimento finchè tutti i vincoli non sono saturi. [Lezione 17] Regola di Vogel: metodo per trovare una soluzione ammissibile di base per il problema del trasporto. In corrispondenza ad ogni vincolo (riga e colonna) si determinano i valori assoluti degli scarti tra i due costi migliori. Si seleziona il vincolo (riga o colonna) di scarto massimo e si sceglie la posizione relativa al costo minimo della riga o colonna così selezionata. Viene saturato il vincolo più restrittivo tra quello di riga e quello di colonna e si aggiorna l’altro vincolo. Si ripete il procedimento aggiornando la tabella dei costi, finchè tutti i vincoli non sono saturi. [Lezione 17] Regola triangolare: regola che consente di calcolare il nuovo valore di un elemento δ del tableau a seguito di una operazione di pivot sull’elemento α. Indicando con β l’elemento nella stessa colonna di α e riga di δ e con γ l’elemento nella stessa colonna di δ e riga di α, il nuovo valore di δ è δˆ = δ − βγ . [Lezione 13] α Rete di flusso: è un grafo orientato G=(N,A,k) in cui ad ogni arco (i,j) ∈ A è associata una quantità reale detta capacità kij≥0 . [Lezione 7] Rete incrementale: data una rete di flusso G=(N,A,k) e un flusso ammissibile x si definisce rete incrementale associata ad x, la rete di flusso G=(N,A) ottenuta dalla rete originale G sostituendo ogni arco (i,j) ∈ A con due archi un arco diretto (i,j) di capacità k ij =k ij -x ij ≥0, cioè la capacità residua e un arco inverso (j,i) di capacità k ji =xij ≥0, cioè il flusso su (i,j). [Lezione 7] Ricerca locale: vedere Algoritmo di ricerca locale. [Lezione 25] Riduzione polinomiale: dati due problemi P1 e P2 ∈ NP, si dice che P1 si riduce in tempo polinomiale a P2 (e si indica con P1 ∝ P2 ) se esiste un algoritmo per risolvere P1 che chiama un certo numero di volte un ipotetico algoritmo per P2 e risulta polinomiale se si suppone che quello per P2 richieda un’unica unità di tempo. [Lezione 9] Rilassamento: un problema (RP) zR =max{f(x): x∈T} si definisce rilassamento del problema (PLI) z*=max{cTx: x∈S} se: (a) S⊆T (b) cTx ≤ f(x) ∀ x∈S [Lezione 22] Rilassamento combinatorico: quando il rilassamento di un problema (PLI) dà luogo ad un problema (RP) di tipo combinatorico si parla di rilassamento combinatorico. [Lezione 22] Rilassamento lineare (o continuo): dato un programma lineare a numeri interi (PLI) z*=max{cTx: x∈P∩ Zn } con P={x∈ℜn : Ax ≤ b } indichiamo con rilassamento lineare, o continuo, il problema (RPL) zLP =max{cTx: x∈P}. [Lezione 22] Rosa dei venti: rappresentazione di un problema multicriterio mediante un poligono di k vertici (dove k è il numero di criteri) ognuno dei quali è unito al centro del poligono mediante un raggio. Ogni alternativa è rappresentata da una spezzata che unisce k punti, ognuno su un raggio diverso, in modo tale che la distanza dell' h-mo punto dal centro del poligono sia proporzionale al valore del criterio h per l'alternativa considerata. [Lezione 30] Scarto complementare: vedere Teorema dello scarto complementare. [Lezione 15] Set covering: vedere Problema di copertura con insiemi. [Lezione 21] Sezione: in una rete di flusso si definisce sezione una partizione (S,N \S) dell’insieme dei nodi tale che s ∈S e t ∈ N \S. [Lezione 7] Simplesso: vedere Algoritmo del simplesso. [Lezione 13] Simulated annealing: metodo euristico ispirato dall'analogia tra i problemi di ottimizzazione combinatoria e i problemi di meccanica statistica (simulated annealing=ricottura simulata). L'idea di base consiste nel generare uno spostamento casuale a partire dal punto della regione ammissibile analizzato per ultimo accettando di esaminare il nuovo punto non solo se la funzione obiettivo migliora, ma anche quando peggiora. Ciò non avviene sempre ma con una probabilità data da una legge simile a quella di Boltzmann, dove la "temperatura" diventa un parametro di controllo della procedura. [Lezione 25] Sistema di indipendenza: Un sistema di indipendenza è una coppia di insiemi (E,ℑ) dove E è un insieme finito e ℑ è una famiglia di sottoinsiemi di E tale che se I,J ⊆ E e J⊆I∈ℑ allora anche J∈ℑ. [Lezione 24] Slittamento di una attività: in un problema di pianificazione di progetti lo slittamento di un’attività (i,j) è definito come Tmax[j]- Tmin [i]-d i,j , cioè come l’istante di fine al più tardi di (i,j) meno l’istante di inizio al più presto, meno la durata di (i,j). [Lezione 6] Slot allocation: vedere Problema dello slot allocation. [Lezione 26] Soluzione ammissibile di un PL: dato un PL in forma standard si dice soluzione ammissibile ogni vettore x t.c. Ax = b, x ≥ 0 . [Lezione 11] Soluzione di base: dato un PL in forma standard si dice soluzione di base una soluzione con n-m variabili nulle. Notare che una soluzione di base può anche non essere ammissibile. [Lezione 11] Soluzione di base degenere: dato un PL in forma standard, una soluzione di base degenere è una soluzione di base con almeno una componente nulla. [Lezione 12] Soluzione di un PL: dato un PL in forma standard si dice soluzione ogni vettore x t.c. Ax = b . [Lezione 11] Soluzione ottima di un PL: dato un PL in forma standard si dice soluzione ottima un vettore x* t.c. Ax* = b, x* ≥ 0 e cx* ≤ cx, per ogni x ammissibile. [Lezione 11] Soluzioni efficienti (o paretiane): in un problema di programmazione a molti obiettivi sono le soluzioni non dominate da nessuna altra. Sono chiamate anche paretiane dal nome dell'economista svizzero Alfredo Pareto che per primo le studiò alla fine dell'800. [Lezione 29] Soluzioni supportate: in un problema di programmazione multicriterio l'insieme delle soluzioni supportate è l'insieme di tutte le soluzioni che si possono ottenere facendo variare i pesi. [Lezione 30] Sorgente: in una rete di flusso vengono specificati due vertici s e t, detti sorgente e destinazione. [Lezione 7] Sottografo: un grafo G’ = ( N’, E’ ) si dice sottografo di G = ( N, E ) se N’ ⊆ N e il sottoinsieme E’ ⊆ E contiene solo lati con entrambi i nodi in N’. [Lezione 3] Sottospazio tangente: dato un problema di programmazione matematica si definisce sottospazio tangente in un punto ammissibile x l'intersezione degli iperpiani tangenti ai vincoli attivi in x . Operativamente se il punto x è regolare il sottospazio tangente può essere determinato come l'insieme delle direzioni ortogonali ai gradienti dei vincoli attivi in x , ossia M={d∈ℜn : ∇h i ⋅d=0, ∀ vincolo di uguaglianza h i (x)=0 ∇g l ⋅d=0, ∀ vincolo di disuguaglianza g l (x)≤0 attivo in x }. [Lezione 27] Stato di natura: dato un problema decisionale in ambiento incerto lo stato di natura è il vettore delle condizioni ambientali (indicato con ω∈Ω) che non sono sotto il controllo del decisore. [Lezione 2] Strategia di branching: scelta delle variabili sulle quali fare branching nell’algoritmo di Branch and Bound. [Lezione 23] Tableau: dato un PL in forma standard, si definisce tableau una matrice con m + 1 righe e n + 1 colonne in cui la riga 0 contiene, dalla posizione 1 alla posizione n, i coefficienti della f.o. e nella posizione 0 l’opposto del termine noto della f.o., le righe dalla riga 1 alla riga m contengono la matrice dei vincoli e infine la colonna 0 dalla posizione 1 alla posizione m contiene il vettore dei termini noti dei vincoli. [Lezione 13] Tabu search: la tabu search (=ricerca con tabu) è una metaeuristica per risolvere problemi di ottimizzazione globale, in particolare di ottimizzazione combinatoria. Il metodo consiste nello spostarsi da una soluzione ad un’altra scegliendo la migliore soluzione non proibita nell’intorno della soluzione corrente. Le soluzioni vengono proibite sulla base di certi attributi con lo scopo di evitare cicli e di guidare la ricerca verso regioni inesplorate. Se non ci fossero soluzioni proibite una volta giunti ad un punto di ottimo locale non sarebbe più possibile spostarsi. [Lezione 25] Taglio non orientato: dato un grafo non orientato G = ( N, E ), si definisce taglio indotto da S ⊆ N, e si indica con δ( S ), il sottoinsieme di lati di E con un estremo in S e l’altro in N \ S. [Lezione 3] Taglio orientato entrante ( uscente ): dato un grafo orientato G = ( N, A ) si definisce taglio entrante indotto da S ⊆ N, e si indica con δ-( S ), il sottoinsieme di archi di A con il primo estremo in N \ S e il secondo estremo in S. Viceversa si definisce taglio uscente indotto da S ⊆ N, e si indica con δ+ ( S ), il sottoinsieme di archi di A con il primo estremo in S e il secondo estremo in N \ S. [Lezione 3] Tasso di sostituzione: nella programmazione a molti obiettivi variazione di un obiettivo che in corrispondenza ad una variazione unitaria di un altro obiettivo produce una soluzione indifferente. [Lezione 29] Teorema della dualità debole: data una coppia primale-duale di PL entrambi dotati di soluzioni ammissibili, x per il problema zmax e y per il problema wmin risulta sempre z max( x ) ≤ wmin( y ). [Lezione 15] Teorema della dualità forte: se entrambi i problemi di programmazione lineare di una coppia primaleduale sono dotati di soluzioni ammissibili allora entrambi ammettono soluzione ottima e i valori delle soluzioni ottime coincidono. [Lezione 15] Teorema dello scarto complementare: data una coppia di PL primale-duale P e D, due soluzioni ammissibili per P e per D, x* e y* , risultano ottime se e solo se xi* ⋅ yi * = 0 per ogni xi * , yi * ≥ 0. (N.B.: Si sta usando la convenzione di indicare nel duale con y1 , … , yn le variabili di slack e con yn+1 ,…yn+m le variabili naturali ). [Lezione 15] Teorema di Balinski-Gomory: dato un PL in forma canonica debole dopo un numero finito di operazioni di pivot si ha che: i) si è raggiunta la condizione γ) della forma canonica forte; oppure ii) si è ottenuta una riga con il termine noto negativo e tutti gli altri termini non negativi (problema inammissibile). [Lezione 13] Teorema di convergenza del simplesso: dato un PL in forma canonica forte si può verificare una e una sola delle seguenti tre possibilità: i) la soluzione di base è ottima (nel tableau i costi ridotti sono non negativi); ii) il problema è illimitato (nel tableau un costo ridotto è negativo e la colonna corrispondente è non positiva); iii) la soluzione è transitoria e dopo un numero finito di passi di pivot ci si riconduce al caso i) o al caso ii). [Lezione 13] Teorema di Kuhn-Tucker: sia x un punto di minimo locale per f(x) nella regione ammissibile X e sia x punto regolare allora ∃ m coefficienti λi e p coefficientiµl ≥0 t.c. m p i =1 l =1 ∇f ( x ) + ∑ λ i∇ hi ( x ) + ∑ µ l ∇ g l ( x ) = 0 hi ( x ) = 0 µl g l (x ) = 0 . [Lezione 27] Teorema fondamentale della dualità: data una coppia di PL primale-duale P e D ( zmax e w min ) si può presentare solo uno dei seguenti quattro casi: i) P e D entrambi con soluzioni ottime e i loro valori coincidono; ii) z → +∞, D inammissibile; iii) w → -∞, P inammissibile; iv) P e D entrambi inammissibili. [Lezione 15] Teorema fondamentale della PL: dato un PL in forma standard: 1) se esiste una soluzione ammissibile, esiste anche una soluzione ammissibile di base; 2) se esiste una soluzione ottima di valore finito, esiste anche una soluzione ottima di base. [Lezione 11] Teoremi di corrispondenza: sono l’insieme del teorema della dualità forte, della dualità debole e dello scarto complementare. [Lezione 15] Teoria dei giochi: vedere Problema di teoria dei giochi. [Lezione 2] Teoria delle decisioni: vedere Problema di teoria delle decisioni. [Lezione 2] Trasporto e localizzazione di impianti: vedere Problema di trasporto e localizzazione di impianti. [Lezione 21] Travelling Salesman Problem (TSP): vedere Problema del commesso viaggiatore. [Lezione 21] 1-albero: dato un grafo G=(N,E) con N={1,2,…, n}, un 1-albero è un sottografo di G formato da due lati adiacenti al nodo 1 e da un albero sui nodi rimanenti {2,3,…,n}. [Lezione 22] Upper bound: limite superiore al valore della soluzione ottima di un problema di ottimizzazione. [Lezione 22] Valore del flusso: data una rete di flusso si dice valore del flusso ϕ0 = ϕ(s). [Lezione 7] Variabile: in un modello matematico le variabili rappresentano quantità di cui non è noto a priori il valore e di cui si vuole tenere conto nella rappresentazione. [Lezione 1] Variabile di base: dato un PL in forma standard, si dice variabile di base una variabile corrispondente ad un elemento della base. [Lezione 11] Variabile di slack (scarto): variabile non negativa aggiunta o sottratta ad un vincolo di disuguaglianza per trasformarlo in uno di uguaglianza. La variabile è aggiunta al primo membro del vincolo se è della forma ax ≤ b, sottratta se è della forma ax ≥ b. [Lezione 11] Variabile fuori base: dato un PL in forma standard, si dice variabile fuori base una variabile che non corrisponde ad un elemento della base. [Lezione 11] Variabile libera: una variabile si dice libera se non è ristretta in segno. [Lezione 11] Variabile naturale: si dice variabile naturale qualunque variabile presente nella formulazione originale di un PL. [Lezione 11] Vincolo: equazione o disequazione che deve essere soddisfatta da ogni soluzione ammissibile di un problema di decisione. [Lezione 2] Vincolo attivo: dato un problema di programmazione matematica un vincolo si dice attivo in un punto ammissibile x se è soddisfatto con il segno di uguaglianza. [Lezione 27] Vogel: vedere Regola di Vogel. [Lezione 17] XMP: (eXperimental Mathematical Programming) R. Marsten, U. Arizona, 79-87. Libreria in Fortran con un solutore per la Programmazione Lineare (Simplesso Primale e Duale) e la Programmazione Lineare Binaria è stato molto usato in ambienti di ricerca negli anni Ottanta e inizi Novanta per il calcolo di bound di problemi di ottimizzazione. [Lezione 18] XPRESS, B. Daniels, Dash, 1997-2001. Libreria in C con un solutore per la Programmazione Lineare e Programmazione Lineare Intera è stata usata in ambienti di ricerca da metà anni Novanta per il calcolo di bound di problemi di ottimizzazione. [Lezione 18] Zaino: vedere Problema dello zaino. [Lezione 20]