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]