Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3. Cos'è un modello, quali vantaggi offre e come è correlato ai sistemi di pianificazione dei
sistemi complessi e distribuiti?
Un modello è una rappresentazione sintetica e semplificata di sistemi per evidenziarne
determinate caratteristiche: si possono avere modelli matematici in cui le caratteristiche
del sistema vengono descritte tramite formalismi e strumenti matematici.
Tra i vantaggi ci sono il fatto che la soluzione può essere trovata matematicamente in
maniera automatica, si possono effettuare simulazioni e si possono fare deduzioni a livello
analitico per risolvere classi di problemi.
Tra gli svantaggi c’è sicuramente il fatto che il modello potrebbe essere troppo semplificato
o mal posto o potrebbe essere inapplicabile cioè che seppur formalmente corretto, non
può essere applicato al fenomeno sotto osservazione.
Il modello matematico può essere applicato nell’ambito dei sistemi di pianificazione in
quanto tramite delle analisi si può scegliere tra le diverse soluzioni di un problema quella
che porta maggiori vantaggi e/o minor costi attraverso una sequenza che va dall’analisi del
problema,passando per l’identificazione e l’analisi del modello,per arrivare ad una
soluzione numerica e alla validazione: se la soluzione ottenuta non è accettabile o è non
rilevante allora si riparte da capo.
LEZ 3
4. Descrivere gli elementi caratterizzanti il problema di localizzare degli impianti
Gli elementi principali del problema di localizzazione degli impianti sono i siti di produzione
e i siti di domanda di cui si dovranno stabilire le capacità di produzione e valutare dove sia
più efficiente produrre in termini di costi di “consegna” e si dovrà tenere conto dei costi di
produzione in cui si dovranno considerare anche i costi relativi all’istallazione,
manutenzione e approvvigionamento dell’impianto stesso.Si dovrà fare in modo di
scegliere di attivare gli impianti in modo tale da minimizzare i costi di produzione e
distribuzione andando quindi a massimizzare il “guadagno” del sistema.
5. Dare la definizione di problema di localizzazione degli impianti
Il problema di localizzazione degli impianti ricade nell’ambito della pianificazione di un
sistema complesso e distribuito.
Si dovranno identificare i siti di produzione e quelli di domanda e valutare se si riesce a
garantire la richiesta e come suddividere le produzioni in modo tale da rendere il più
efficiente possibile il sistema a livello di costi e benefici.
La scelta dei siti ottimali avviene attraverso la funzione obiettivo che terrà conto sia delle
caratteristiche degli impianti sia della struttura della domanda: si potranno avere obiettivi
singoli o multipli.
Il modello scelto dovrà tener conto anche della capacità di produzione complessiva dei
diversi siti.
Il tutto potrà svilupparsi tramite il modello classico in cui gli impianti sono i siti di
produzione e i clienti sono le strutture che richiedono servizi.
Il problema di localizzazione si potrà rappresentare tramite grafo di localizzazione o tramite
programmazione lineare intera.
A B
D
C
LEZ 4
7. Dato il grafo di localizzazione in figura, determinare il costo della soluzione ottima del
problema di localizzazione degli impianti in cui sono attivati gli impianti A e B
8. Dato il grafo di localizzazione in figura, determinare il costo della soluzione ottima del
problema di localizzazione degli impianti in cui sono attivati gli impianti A, B e C
Il costo di attivazione è 3+6+8=17.
Il costo ottimo di afferenza è 6+1+4+4=15.
Il costo totale è 17+15=32.
9. Dato il grafo di localizzazione in figura, determinare il costo della soluzione ottima del
problema di localizzazione degli impianti in cui sono attivati gli impianti A e C
LEZ 5
11. Dato il grafo di localizzazione in figura, definire le variabili del problema e i vincoli che
descrivono la regione ammissibile della formulazione del problema come problema di PLI
xA∈ { 0,1 } xB∈ { 0,1 } che rappresentano se attivare(1) o meno(0) il sito di produzione A o B.
Le variabili y indicano se il sito A (oppure B) servono il sito cliente i(con i che può essere 1,2,3,4):se
lo servono varranno 1 altrimenti 0.
y1A∈ { 0,1 } y2A∈ { 0,1 } y3A∈ { 0,1 } y4A∈ { 0,1 }
y1B∈ { 0,1 } y2B∈ { 0,1 } y3B∈ { 0,1 } y4B∈ { 0,1 }
Per i vincoli abbiamo:
y1A + y1B = 1
y2A + y2B = 1
y3A + y3B = 1
y4A + y4B = 1
che esprimono il fatto che ogni sito cliente può essere servitor da un solo sito candidato,
e
y1A ≤ xA y2A ≤ xA y3A ≤ xA y4A ≤ xA
y1B ≤ xB y2B ≤ xB y3B ≤ xB y4B ≤ xB
che esprimono il fatto che il sito cliente y è servito dal sito candidato A se il sito è attivo.
Si definisce la funzione obiettivo:
min fA xA+ fB xB + 6y1A + 8y2A + 6y3A + 7y4A + 6y1B + 7y2B + 4y3B + 5y4B
con fA e fB che rappresentano I costi di attivazione dei siti candidati.
12. Dato il grafo di localizzazione in figura, scrivere la funzione obiettivo e il valore che essa
assume nella soluzione della formulazione del problema come problema di PLI in cui
sono attivati gli impianti A e B
13. Dato il grafo di localizzazione in figura, definire le variabili del problema e i vincoli che
descrivono la regione ammissibile della formulazione del problema come problema di PLI
xA∈ { 0,1 } xB∈ { 0,1 } che rappresentano se attivare(1) o meno(0) il sito di produzione A o B.
Le variabili y indicano se il sito A (oppure B) servono il sito cliente i(con i che può essere 1,2,3,4):se
lo servono varranno 1 altrimenti 0.
y1A∈ { 0,1 } y2A∈ { 0,1 } y3A∈ { 0,1 } y4A∈ { 0,1 }
y1B∈ { 0,1 } y2B∈ { 0,1 } y3B∈ { 0,1 } y4B∈ { 0,1 }
Per i vincoli abbiamo:
y1A + y1B = 1
y2A + y2B = 1
y3A + y3B = 1
y4A + y4B = 1
che rappresentano il fatto che ogni sito cliente i può essere servito soltanto da un sito candidato
e
y1A ≤ xA y2A ≤ xA y3A ≤ xA y4A ≤ xA
y1B ≤ xB y2B ≤ xB y3B ≤ xB y4B ≤ xB
che rappresentano il fatto che ogni sito cliente i può essere servito dal sito candidato x se
quest’ultimo è attivo.
Si definisce la funzione obiettivo:
min fA xA+ fB xB + 2y1A + 4y2A + 1y3A + 5y4A + 7y1B + 6y2B + 2y3B + 4y4B
con fA e fB che rappresentano I costi di attivazione dei siti candidati
14. Dato il grafo di localizzazione in figura, definire le variabili del problema e i vincoli che
descrivono la regione ammissibile della formulazione del problema come problema di PLI
xA∈ { 0,1 } xB∈ { 0,1 } che rappresentano se attivare(1) o meno(0) il sito di produzione A o B.
Le variabili y indicano se il sito A (oppure B) servono il sito cliente i(con i che può essere 1,2,3,4):se
lo servono varranno 1 altrimenti 0.
y1A∈ { 0,1 } y2A∈ { 0,1 } y3A∈ { 0,1 } y4A∈ { 0,1 }
y1B∈ { 0,1 } y2B∈ { 0,1 } y3B∈ { 0,1 } y4B∈ { 0,1 }
Per i vincoli abbiamo:
y1A + y1B = 1
y2A + y2B = 1
y3A + y3B = 1
y4A + y4B = 1
che rappresentano il fatto che ogni sito cliente i può essere servito soltanto da un sito candidato
e
y1A ≤ xA y2A ≤ xA y3A ≤ xA y4A ≤ xA
y1B ≤ xB y2B ≤ xB y3B ≤ xB y4B ≤ xB
che rappresentano il fatto che ogni sito cliente i può essere servito dal sito candidato x se
quest’ultimo è attivo.
Si definisce la funzione obiettivo:
min fA xA+ fB xB + 2y1A + 4y2A + 1y3A + 1y4A + 3y1B + 6y2B + 2y3B + 4y4B
con fA e fB che rappresentano I costi di attivazione dei siti candidati
15. Dato il grafo di localizzazione in figura, scrivere la funzione obiettivo e il valore che essa
assume nella soluzione della formulazione del problema come problema di PLI in cui
sono attivati gli impianti A e C
16. Dato il grafo di localizzazione in figura, scrivere la funzione obiettivo e il valore che essa
assume nella soluzione della formulazione del problema come problema di PLI in cui
sono attivati gli impianti B e C
Si definisce la funzione obiettivo:
min fA xA+ fB xB + fC xC + 6y1A + 8y2A + 6y3A + 7y4A + 6y1B + 7y2B + 4y3B + 5y4B+ 10y1C + y2C + 5y3C +
4y4C
il valore che essa assume nel caso siano attivati gli impianti B e C sarà:
min fB xB+ fC xC + 6y1B + 7y2B + 4y3B + 5y4B+ 10y1C + y2C + 5y3C + 4y4C
= fB + fC +6+1+4+4= fB + fC +15
17. Dato il grafo di localizzazione in figura, scrivere la funzione obiettivo e il valore che essa
assume nella soluzione della formulazione del problema come problema di PLI in cui
sono attivati gli impianti A, B e C
18. Dato il grafo di localizzazione in figura, definire le variabili del problema e i vincoli che
descrivono la regione ammissibile della formulazione del problema come problema di PLI
xA∈ { 0,1 } xB∈ { 0,1 } che rappresentano se attivare(1) o meno(0) il sito di produzione A o B.
Le variabili y indicano se il sito A (oppure B) servono il sito cliente i(con i che può essere 1,2,3,4):se
lo servono varranno 1 altrimenti 0.
y1A∈ { 0,1 } y2A∈ { 0,1 } y3A∈ { 0,1 } y4A∈ { 0,1 }
y1B∈ { 0,1 } y2B∈ { 0,1 } y3B∈ { 0,1 } y4B∈ { 0,1 }
Per i vincoli abbiamo:
y1A + y1B = 1
y2A + y2B = 1
y3A + y3B = 1
y4A + y4B = 1
che rappresentano il fatto che ogni sito cliente i può essere servito soltanto da un sito candidato
e
y1A ≤ xA y2A ≤ xA y3A ≤ xA y4A ≤ xA
y1B ≤ xB y2B ≤ xB y3B ≤ xB y4B ≤ xB
che rappresentano il fatto che ogni sito cliente i può essere servito dal sito candidato x se
quest’ultimo è attivo.
Si definisce la funzione obiettivo:
min fA xA+ fB xB + 4y1A + 3y2A + 2y3A + 1y4A + 2y1B + 4y2B + 2y3B + 6y4B
con fA e fB che rappresentano i costi di attivazione dei siti candidati.
LEZ 6
19. Applicare l'algoritmo Greedy al problema di Localizzazione degli Impianti
Fb=6
Fc=5
Provo A: 3+6+8+6+7=30.
Provo B: 6+6+7+4+5=28.
Provo C: 5+10+1+5+4=25.
Scelgo C.
Attivo insieme a C:
A : 5+3+6+1+5+4=24< 25
B : 5+6+6+1+4+4=26>25
Allora insieme a C attivo anche A.
Se attivo adesso insieme a C e ad A anche B:3+6+5+6+1+4+4=29>24.
Allora scelgo di mantenere attivo soltanto A e C.
23. Applicare l'algoritmo Greedy al problema di Localizzazione degli Impianti
LEZ 7
24. Fornire alcuni esempi di problema di localizzazione degli impianti
Esempi di problema di localizzazione degli impianti possono essere :
Impianto di produzione di energia con diversi siti candidati dove è possibile istallare
gli impianti cercando di minimizzare i costi e massimizzare i benefici.
Centri di assistenza della produzione in modo da servire tutti gli impianti che
richiedono assistenza e cercando di ottimizzare le distanze tra i centri e gli impianti,
i costi di affitto/acquisto dei mezzi per l’assistenza, ecc.
Fa=3
Fb=6
Fc=7
LEZ 8
33. Spiegare le principali caratteristiche della Ricerca Locale
Per la ricerca locale si parte da una soluzione già trovata e si cerca di affinarla mediante
alcune mosse che possono essere scelte tra la rimozione di un sito e la
rimozione+sostitutzione(scambio).
Si applicano le mosse alla soluzione già trovata e si valutano gli effetti: se nessuna mossa
apporta miglioramenti allora si esce dall’algoritmo, se le mosse apportano miglioramenti si
sceglie quella che fa diminuire maggiormente il costo totale del problema di localizzazione
e si riparte dalla nuova soluzione per verificare se con nuove mosse si possa avere un
ulteriore miglioramento.
37. Definire la formulazione del problema di Localizzazione degli Impianti nel caso capacitato
Il problema di localizzazione del caso capacitato è un problema lineare intero misto e tiene
conto del fatto che i siti di produzione hanno una capacità limitata, ai siti clienti viene
associata una domanda.
Si individueranno le variabili binarie che diranno se un sito è attivo o meno,si avranno
variabili del tipo yij che rappresenteranno la frazione della domanda del cliente i soddisfatta
dal sito j e quindi dovrà essere compresa (al massimo uguale) tra 0 e 1,la domanda dei
diversi clienti dovrà essere totalmente soddisfatta ( yiA + yiB + yiC +...=1),i vari clienti
potranno essere serviti da un particolare sito solo se quest’ultimo è attivo,la quantità
fornita in totale da un impianto non potrà eccedere la sua capacità e si dovrà minimizzare
la funzione che esprimerà il totale dei costi del sistema (costi di attivazione+costi di
afferenza).
38. Illustrare le principali differenze tra il problema di Localizzazione degli Impianti nella
versione non capacitata e versione capacitata
VEDI 36 e 37
LEZ 9
39. Descrivere quali sono le principali differenze tra la Programmazione Lineare e la
Programmazione Lineare Intera
La prima differenza che salta all’occhio è che la programmazione lineare è costituita da
problemi di di ottimizzazione in cui la funzione obiettico e le variabili sono continue,
mentre in quella intera ho che le variabili possono assumere soltanto valori interi
(indivisibilità delle risorse,scelta tra un numero finito di alternative,...).
Della PLI fanno parte anche i problemi che possono assumere valori binari (utilizzati
soprattutto nel caso di scelta).
In generale le soluzioni per PL sono più semplici di quelli PLI che hanno più vincoli sui valori
che le variabili e le soluzioni possono assumere.
LEZ 10
41. Spiegare come definire i vincoli del problema di localizzazione degli impianti usando un
Foglio MS Excel
Come primo vincolo si ha che la richiesta di un cliente debba essere completamente
soddidsfatta quindi si dovrà fare la somma delle variabili che mi indicano che il cliente i è
servito indipendentemente dal sito che fornisce il servizio e questa somma si dovrà
porre=1 quindi in excel si sommano i valori delle variabili presenti in una riga.Si definirà una
cella in cui memorizzare la somma delle variabili che costituisce il membro a sinistra
dell’uguaglianza.
Altro vincolo è che un cliente può essere servito da un impianto soltanto se quest’ultimo è
attivo: si crea così una tabella per i vincoli di afferenza dove si faranno confluire le
differenze tra le variabili che mi indicano se un cliente è servito o meno da un sito e le
variabili che mi indicano se il sito che sta servendo il cliente è attivo o meno(Yij-Xj) e si farà
in modo che queste differenze siano tutte minori di 0. Se la variabile X=0 allora il
corrispondente y sarà al massimo 0, se X è 1(cioè attivo) allora il sito Yi potrà essere
servito(1) o meno(0) da X.
Si definiranno delle celle in cui memorizzare tale differenza (Yij-Xj) delle variabili che
costituisce il membro a sinistra della disuguaglianza.
42. Spiegare come definire la funzione di costo del problema di localizzazione degli impianti
usando un Foglio MS Excel
Una volta creata una tabella in cui siano presenti i costi di attivazione e le variabili dei siti
candidati(che mi dicono se il sito è attivo o meno) e i costi di afferenza e le variabili che mi
dicono se un cliente è servito o meno da un sito candidato, possiamo calcolare i costi di
afferenza motiplicando i costi di afferenza in tabella con l’elemento della tabella delle
variabili che mi indica se il cliente è servito da quel sito o no e poi sommando tutti i
contributi.
Si calcola anche il costo di attivazione moltiplicando ogni costo del singolo sito candidato
con la variabile ad esso associata e poi sommando il tutto.
Alla fine si dovranno sommare i costi di afferenza e quelli di attivazione e registrarli in una
nuova cella.
LEZ 11
43. Dati due problemi di PL, definire l'equivalenza tra i due problemi
Due problemi P1 e P2 si definiscono equivalenti se sono entrambi inammisibili, se sono
entrambi illimitati o se ammettono entrambi soluzioni finite ed esistono relazioni di
trasformazione dalla regione ammissibile X1 alla X2 e viceversa in modo tale che se applico
la trasformazione alla soluzione di P1 essa diventa la soluzione di P2 e vale poi anche il
contrario con l’altra trasformazione(da X2 a X1).
Esempi di equivalenza sono:
Stessa funzione obiettivo e stessa regione ammissibile.
Funzione obiettivo che varia al massimo per una costante e stessa regione
ammissibile
Problema di min di P1 e max di P2 con funzioni obiettivo cambiate di segno e stessa
regione ammissibile
44. Descrivere quali sono le principali differenze tra la Programmazione Lineare Intera e la
Programmazione Lineare {0,1}
La programmazione lineare intera è un problema in cui le variabili possono assumere tutti i
valori interi a rappresentare il fatto che si potrà scegliere tra un numero finito di possibili
alternative, mentre il PL01 può assumere soltanto 2 valori(appunto 0 e 1) e questo sta a
significare che un “evento” si verifichi oppure no.
Il PLI potrebbe essere illimitato mentre il PL01 no in quanto la cardinalità delle soluzioni
sarà pari a 2^n(con n pari al numero di eventi binari da considerare).
45. Definire il processo di formulazione di un problema di Programmazione Lineare Intera
Il processo di formulazione di un problema lineare intero consiste nell’associare un
modello matematico ad un problema reale mediante relazioni matematiche quali
uguaglianze e disuguaglianze lineari che insieme ai vincoli sulle variabili definiscano la
regione ammissibile delle soluzioni.
La formulazione del problema quindi dovrà portare alla definizione di una regione
ammissibile e alla formulazione di una funzione obiettivo.
46. Dati due formulazioni di un problema, definire l'equivalenza tra le due formulazioni
Due formulazioni si definiscono equivalenti quando entrambe(attraverso equazioni e
disequazioni diverse) portano allo stesso insieme di soluzioni ammissibili
LEZ 12
47. Dare la definizione di lower bound di un problema di PL01
Il Lower Bound rappresenta il limite inferiore della funzione obiettivo e anche qualora non
si potesse raggiungere darebbe un’indicazione di massima sulla bontà della soluzione
trovata mediante il calcolo della differenza tra LB e il valore trovato(gap).
In generale sarà sempre LB<= cT*X con X soluzione del problema.
LEZ 13
51. Descrivere le possibili strategie di separazione per il metodo branch and bound per la
soluzione di un problema di PL01
La strategia di separazione ci dice come partizionare l’insieme delle soluzioni ammissibili
generando diversi sottoproblemi.
La soluzione di un sottoproblema porterà all’identificazione di un LBi che sarà confrontato
con un UB di riferimento(valore di una soluzione ammissibile):
se LBi≥UB il sottoproblema i viene rimosso dalla lista senza essere risolto
se invece LBi<UB se la soluzione fa parte di quelle ammissibili(ha tutte componenti
0 o 1) allora sostituiamo quella di UB con la nuova e sostituiamo UB con LBi,
altrimenti andremo a separare il problema perchè una delle componenti sarà
continua e si farà in modo di creare due sottoproblemi con quella variabile fissata
nei valori ammissibili dal problema originale(cioè quella variabile continua sarà
fissata al valore 0 per un sottoproblema ed al valore 1 per l’altro sottoproblema) e
saranno inseriti nella lista dei problemi aperti e quello da cui si era partiti verrà
rimosso.
52. Descrivere le possibili strategie di soluzione per il metodo branch and bound per la
soluzione di un problema di PL01
Per quanto riguarda le strategie di soluzione si tratta di risolvere il sottoproblema in
maniera approssimata mediante la ricerca del Lower Bound.
Si potranno adottare 3 strategie di soluzione:
Determinare la soluzione ottima del rilassamento lineare(togliamo i vincoli di
interezza sulle variabili)
Rilassamento della formulazione(eliminare alcuni vincoli): si può dividere il dominio
delle soluzioni dove ricercare il minimo in sottodomini e un LB del sottodominio lo
sarà anche del dominio intero.
Cambio della funzione obiettivo con una nuova funzione f(x)≤ z(x)=cTx per ogni x
dell’insieme delle soluzioni così che sia più semplice minimizzare f(x) per trovare un
LB che sia valido anche per la funzione originaria.
53. Descrivere la metodologia branch and bound per la soluzione di un problema di PL01
La metodologia branch and bound consiste nell’esplorare in maniera parziale l’insieme
delle soluzioni del problema PL01 valutando la funzione obiettivo su sottoinsiemi più piccoli
delle soluzioni. Il metodo è detto anche di enumerazione implicita in quanto segue il
metodo di enumerazione completa escludendo dell’enumerazione soluzioni di cui si può
dimostrare facilmente la non ottimalità.
Si decompone ricorsivamente l’insieme S delle soluzioni e si confronta il LB di ogni
sottoinsieme con un valore di riferimento: se LBi è ≥ del valore di riferimento si può
scartare tutto il sottoinsieme.
I sottoproblemi del problema PL01 vengono gestiti tramite una lista dei sottoproblemi
aperti e l’efficienza del metodo dipenderà dalle strategie che si adotteranno(strategie di
soluzione, separazione e selezione).
54. Descrivere le possibili strategie di selezione per il metodo branch and bound per la
soluzione di un problema di PL01
Una volta che il problema iniziale è stato diviso in più sottoprolemi si potrà selezionare da
essi mediante tecnica FIFO oppure LIFO oppure calcolare i LBi di ogni sottoproblema e
ordinarli per LB crescenti(se si vuole favorire la determinazione di soluzioni ammissibili)
oppure LB decrescenti(se si vuole favorire l’eliminazione del sottoproblema).
55. Descrivere il diagramma di flusso del metodo branch and bound di un problema PL01
Si risolve il problema iniziale dando un’indicazione di una soluzione ammissibile con il suo
UB.
Applico una strategia di soluzione al problema e valuto il nuovo LB e lo confronto con UB:
Se è maggiore vado avanti ed elimino il sottoproblema dalla lista dei problemi
Se è minore valuto la soluzione e se appartiene al set delle soluzioni ammissibili S
allora aggiorno la soluzione e il UB, ma se non ne fa parte decompongo il problema
ed aggiungo i sottoproblemi alla lista: in entrambi i casi eliminerò dalla lista il
problema trattato e incrementerò di uno il conto dell’iterazione.
Di nuovo valuterò la lista e se è vuota termino altrimenti rifaccio le stesse cose di prima.
LEZ 14
56. Descrivere una strategia di soluzione esatta per il problema di knapsack binario
Il knapsack binario può essere visto come un problema con una funzione obiettivo da
massimizzare e una disuguaglianza sulle n variabili di decisione: quindi è come se fosse un
problema PL01.
Si può facilmente riporatare il problema di massimizzazione in uno di minimizzazione
( mettendo la funzione obiettivo con un segno -) e valutare l’opposto della condizione sulle
variabili: mi sono riportato al caso in cui si può applicare il metodo branch and bound.
In questo caso ordinerò le variabili in ordine decrescente del rapporto
costo/ingombro,determinerò gli indici da porre =1 o meno valutando se la somma degli
ingombri eccede l’ingombro ammissibile o meno, calcolerò un Upper Bound e lo
confronterò con il LB e se UB<LB eliminerò la partizione dalla Lista altrimenti vedrò se
quello che ho ottenuto può essere soluzione(cioè ha componenti intere e pari a 0 oppure
1) oppure se ha componenti reali scomporrò il problema ed riprenderò l’iter dall’inizio.
57. Descrivere una possibile strategia di soluzione per i problemi di PL01 caratterizzati da n
variabili decisionali in {0,1} e da un vincolo lineare di disuguglianza
Una possibile strategia di soluzione è rappresentata dalla metodologia branch and bound
che consiste nell’esplorare in maniera parziale l’insieme delle soluzioni del problema PL01
valutando la funzione obiettivo su sottoinsiemi più piccoli delle soluzioni. Il metodo è detto
anche di enumerazione implicita in quanto segue il metodo di enumerazione completa
escludendo dell’enumerazione soluzioni di cui si può dimostrare facilmente la non
ottimalità.
Si decompone ricorsivamente l’insieme S delle soluzioni e si confronta il LB di ogni
sottoinsieme con un valore di riferimento: se LBi è ≥ del valore di riferimento si può
scartare tutto il sottoinsieme altrimenti si vedrà se la soluzione è a variabili intere e limitate
a 0/1 e si aggiornerà il LB con il nuovo e la soluzione con il nuovo vettore, altrimenti se ha
componenti reali si dividerà il problema in due sottoproblemi che si aggiungeranno in una
lista dei sottoproblemi aperti e l’iter riprenderà dall’inizio e terminerà quando la lista dei
sottoproblemi sarà esaurita.
L’efficienza del metodo dipenderà dalle strategie che si adotteranno(strategie di soluzione,
separazione e selezione).
LEZ 16
59. Dimostrare che una metrica norma è una metrica
Per dimostrare che una metrica norma è una metrica si dovrà dimostrare che la metrica
norma è simmetrica,ha l’elemento nullo e per essa vale la disuguaglianza triangolare.
LEZ 17
61. Illustrare la procedura generale di soluzione di un problema di clustering dei dati
Per risolvere un problema di clustering si dovranno seguire diversi passi.
Rappresentare i dati in istanze in numero finito in cui andranno definiti il numero,il
tipo e la scala delle caratteristiche e il numero di cluster ed opzionalmente si
potranno fare una selezione delle caratteristiche (selezionando un sottoinsieme
delle caratteristiche più efficace) e/o un’estrazione delle caratteristiche
(effettuando trasformazioni sulle caratteristiche per produrre caratteristiche più
significative)
Definire una misura di similarità sulle istanze in genere misurato tramite una
funzione di distanza
Applicare un algoritmo di clustering che raggruppa le istanze in gruppi omogenei in
base alla similarità sulle distanze: si può avere hard clustering se ogni istanza
appartiene ad un solo cluster o fuzzy clustering se si dà un grado di appartenenza
per ciascun cluster presente.
Astrazione sui dati che rappresenta il momento di estrazione dell’informazione
mediante semplici rappresentazioni del cluster mediante un “prototipo” del cluster
o elementi rappresentativi tipo centroide o baricentro.
Valutazione dei risultati mediante uno studio sull’andamento del cluster(facendo
un’analisi dei dati in input si può capire se vale la pena fare un’analisi del cluster) e
l’analisi sulla validità del cluster che valuta i risultati del clustering in base a criteri di
ottimalità utilizzando un confronto esterno(confronto con una struttura a priori dei
dati), un esame interno (cerca di capire se la struttura è adeguata per i dati in
esame) e controllo relativo( confronta 2 strutture e misura il loro valore relativo)
62. Definire il ruolo della misura di similarità nella metodologia generale di soluzione del
problema di clustering dei dati
La misura di similarità è un’aspetto fondamentale del problema di clustering in quanto dà
una misura di quanto le istanze possano essere ritenute veramente simili e quindi definisce
un parametro in base al quale fare clustering. La misura di similarità in genere viene
ottenuta mediante distanza che potrà essere metrica, semimetrica o metrica norma.
63. Definire il ruolo dell'algoritmo di clustering e dell'astrazione sui dati nella metodologia
generale di soluzione del problema di clustering dei dati
L’algoritmo di clustering è un aspetto fondamentale in quanto è qui che si creano i cluster
delle istanze che verrannno raggruppate in gruppi omogenei mediante le misure di
similarità sulle istanze.
L’astrazione sui dati è la parte in cui si riesce ad estrarre l’informazione dai dati e quindi è
la parte che restituisce rappresentazioni semplici del cluster che permettono di carpire
informazioni su tutto il cluster.
LEZ 18
64. Dare la definizione di clustering partizionale e di partizione dei nodi di un grafo
Per clustering partizionale si intende una partizione delle istanze del training set in base
alla misura di similarità.
Una partizione P è costituita da k sottoinsiemi V dell’insieme X delle istanze in modo che
ogni Vi sia non vuoto, l’unione di tutti i Vk mi dia l’insieme X e che presi due qualsiasi V essi
siano a intersezione nulla.
I dati potranno essere organizzati in un grafo con dei nodi N che rappresentano le istanze e
una serie di archi A che connettono le coppie di istanze. Se m è il numero degli archi ed n il
numero dei nodi, ho un grafo completo se m=n(n-1)/2.
65. Definire gli insiemi multi-taglio e partizione di una partizione dei nodi di un generico
grafo non orientato
Un insieme multi taglio è l’insieme che comprende tutte le connessioni degli elementi di un
sottinsieme di una partizione con tutti gli elementi che non appartengono al sottoinsieme.
L’insieme partizione invece contiene tutte le connessioni tra gli elementi dello stesso
sottoinsieme della partizione.
Per l’insieme multi taglio si può definire un vettore Y in modo tale che Yij=1 se i e j fanno
parte di due sottoinsiemi diversi e Yij=0 altrimenti.
Per l’insieme partizione invece si può definire un vettore X in modo che Xij=1 se i e j
appartengono allo stesso sottoinsieme e Xij=0 altrimenti.
LEZ 19
67. Descrivere il ruolo della relazione di dissimilarità nella formulazione del problema di
clustering partizionale
Tramite la matrice di dissimilarità (in cui ogni elemento ij rappresenta la relazione di
dissimilarità tra due elementi di uno stesso sottoinsieme ) si può arrivare a fare un
confronto tra diverse partizioni di uno stesso Grafo andando a sommare gli elementi al
disopra della diagonale della matrice: più il valore è basso più la partizione è fatta da
sottoinsiemi con elementi simili.
Le relazioni di dissimilarità entrano nella definizione della funzione obiettivo in quanto
verranno moltiplicati i valori della dissimilarità con il vettore incidenza dell’insieme di
partizione E(P(G)).
68. Descrivere la formulazione del problema di clustering partizionale come problema di
programmazione matematica
Per avere uno studio del problema si dovrà calcolare una funzione obiettivo andando a
sommare gli elementi che si ottengono moltiplicando gli elementi del vettore di incidenza
con il relativo valore della relazione di dissimilarità e cercando poi di minimizzare la
somma.
Il vettore di incidenza dovrà soddisfare i vincoli di dimensione (sommaXij>= s-1) .
69. Dare le definizione generale del problema di partizione in clique con vincolo di
dimensione
Per clique si intende un sottoinsieme dei nodi di un grafo tutti connessi tra di loro mediante
un arco non orientato.
Una partizione in clique significa che ogni sottoinsieme dei nodi è un clique.
Il vincolo sulle dimensioni è che s≤1 e quindi poichè la somma degli xij≥ s-1=0 è sempre
soddisfatta per qualsiasi vettore xp appartenente al vettore delle soluzioni ammissibili.
LEZ 20
70. Descrivere la formulazione del problema di partizione in clique dei nodi di un grafo
basata sulle disequazioni triangolo
La partizione in clique può essere fatta sempre fatta qualora il grafo sia completo e il
problema relativo si può trasformare in un PL01 che si potrà sempre risolvere per trovare la
soluzione ottima.
La prima risoluzione è quella per enumerazione, ma diventa rapidamente inefficiente
all’aumentare della cardinalità dell’insieme S delle soluzioni; pertanto si cerca una
soluzione attraverso il poliedro P=conv(S) che potrà essere definito mediante delle
disuguaglianze.
Per il problema di partizione in clique si hanno le disuguaglianze triangolo:
xij+ xik- xjk≤1 valida per ogni terna i,j,k di nodi del grafo.
Questa disequazione da sola non basta in quanto se ad esempio il primo e il terzo
elemento della disequazione valgono 1, la disequazione è verificata ma i tre nodi non fanno
parte di una clique.
Allora si dovrà scrivere un set di disequazione per ogni terna e dovranno essere verificate
tutte e 3 :
xij+ xik- xjk≤1 xij- xik+ xjk≤1 -xij+ xik+ xjk≤1
71. Definire una disequazioni triangolo e spiegare le implicazioni logiche relative ai nodi di un
grafo
xij+ xik- xjk≤1
Si possono verificare diversi casi:
a) Tutti e 3 sono uguali a 0 quindi i,j,k non formano una clique;
b) ij=1 e gli altri =0 :i e j formano una clique, mentre k ne è escluso;
c) ik=1 e gli altri =0 :i e k formano una clique, mentre j ne è escluso;
d) jk=1 e gli altri =0 :j e k formano una clique, mentre i ne è escluso;
e) ij e ik=1 mentre jk=0: non soddisfano la disequazione;
f) ij e jk=1 mentre ik=0: soddisfano la disequazione, ma non formano una clique;
g) ik e jk=1 mentre ij=0: soddisfano la disequazione, ma non formano una clique;
h) se ij, ik e jk=1: soddisfano la disequazione e formano un a clique.
Una sola disequazione quindi non basta per definire il problema di partizione in clique.
LEZ 21
72. Definire l'algoritmo euristico di separazione delle disequazioni a due partizioni per il
problema di partizione in clique dei nodi di un grafo
Si assegna una soluzione x’ valida per il poliedro P’ e si vogliono determinare 2 insiemi
disgiunti S e T in modo tale che la disequazione a 2 partizioni sia violata( si dovrà avere |S|
=1 e la disequazione sarà la somma dei “costi” relativi al vettore multi-taglio – la somma
dei “costi relativi ai vettori di incidenza≤1 perchè |s|=1).
Si procede per iterazioni successive e si assegna a S il nodo i e si determina l’insieme W con
tutti gli altri nodi del grafo.
A questo punto si forma l’insieme T a partire dal primo elemento di W e aggiungendo via
via gli altri se il costo degli archi che legano gli elementi in T è =0.
Se |T|>1 allora la disequazione a 2 partizioni è violata
73. Dimostrare che una disequazione triangolo è un caso particolare di disequazione a due
partizioni
Supponiamo di avere 3 nodi indicati con 1,2 e 3 e vogliamo definire su di esso una
disequazione a 2 partizioni con |S|=1 e |T|=2 con S={1} e T={2,3}.
La disequazione associata alla partizione sarà: x12+ x13- x23≤1 che è esattamente la
disequazione triangolo.
74. Spiegare in che relazione sono tra loro la formulazione con disequazioni triangolo e
disequazioni a due partizioni valide per il problema di partizione in clique dei nodi di un
grafo
Poichè le soluzioni con disequazioni triangolo sono un caso particolare delle disequazioni a
2 partizioni si può definire un poliedro P’’ con tutte le possibili disequazioni della
formulazione a 2 partizioni ed indicando con P’ il poliedro di tutte le disequazioni triangolo
si ha la relazione P’’ è incluso in P’ quindi una soluzione che soddisfa tutte le disequazioni
triangolo, può non essere soluzione del 2 partizione.
75. Illustrare la famiglia di disequazioni a due partizioni valide per il problema di partizione in
clique dei nodi di un grafo
x(δ(S,T))-E(S)-E(T)≤min{|S|,|T|} con |S|≠|T| dove δ(S,T) è l’insieme degli archi che
connettono nodi in S con nodi in T e con E(S) ed E(T) che sono gli insieme partizione relativi
ai sottoinsiemi S e T.
LEZ 22
76. Illustrare come applicare il metodo dei piani di taglio al problema di partizione in clique
dei nodi di un grafo
Quando si vuole fare una partizione in clique si può utilizzare il metodo dei piani di taglio
per ottenere la soluzione ottima in un numero finito di passi utilizzando 2 concetti chiave
per il metodo:rafforzamento graduale per un poliedro e definizione della sequenza di
Gomory.
Si parte dall’individuazione di una soluzione partendo dal fatto che si rilassano alcuni
vincoli del problema, si valuta la soluzione e si controlla se i vincoli rilassati potevano
essere “dimenticati” oppure no...in tal caso si aggiungono i vincoli violati e si trova una
nuova soluzione, fino a che non arrivo ad una soluzione che rispetti tutti i vincoli e le
caratteristiche che dovrò ottenere.
77. Illustrare le principali caratteristiche del metodo dei piani di taglio
Le principali caratteristiche sono il rafforzamento di una disequazione valida per un
poliedro e la sequenza di Gomory.
Il rafforzamento consiste nell’andare ad inserire mano mano alcune disequazioni al
problema risolto in un poliedro ed ottenuta non andando a considerare tutti i vincoli: ad
esempio l’interezza della soluzione consente il rafforzamento di una disequazione valida
per un poliedro che contiene tutte le soluzioni di un problema PL01.
La sequenza di Gomory è una sequenza di poliedri { P0, P1,P2,......., Pt} in modo tale che
P0 ɔ P1ɔ....ɔ Pt e che ogni poliedro è formulazione del problema PL01, la soluzione al passo i-
1 non appartiene al poliedro i e che la soluzione del poliedro t è a componenti intere così
che la soluzione in t rappresenta l’ottimo del PL01.
78. Definire i principali passi del metodo dei piani di taglio
Supponiamo di avere un insieme di nodi e le relazioni di costo tra i vari nodi e di voler
trovare una partizione in clique partendo dal fatto che conosciamo le disequazioni
triangolo e quella a due partizioni.
Dapprima si cerca una soluzione che sia ottenuta andando a considerare un set parziale
delle disequazione dei nodi. Una volta trovata si vede se essa rispetta tutte le disequazioni
triangolo o meno: se qualche disequazione non è rispettata viene aggiunta al problema e
ricalcolata una nuova soluzione altrimenti, se le rispetta tutte, si vede se la soluzione è a
componenti intere(allora si è trovata la soluzione ottima) oppure no e in questo caso si
procede a verificare se la disequazione a due partizioni è violata o meno.
Se è violata si aggiunge la disequazione al set dei vincoli, altrimenti si valuta se la soluzione
è a valori interi oppure no: se si ho la soluzione altrimenti applico il metodo branch and
bound per risolvere il problema PL01 fino a che non ottengo una soluzione in 0,1.
LEZ 23
79. Spiegare il ruolo dell'algoritmo euristico nella soluzione dei problemi di partizione in
clique dei nodi di un grafo
L’algoritmo euristico permette in pochi passi di ottenere una soluzione al problema di
partizione in clique quando è presente un vincolo di dimensione, ma la sulla bontà della
soluzione trovata non si può dire nulla. Può essere usato come base di partenza per
applicare il metodo branch and bound per ottenere rapidamente una soluzione migliore.
80. Illustrare i principali metodi di risoluzione del problema di partizione in clique dei nodi di
un grafo
Si potranno utilizzare il metodo dei piani di taglio(o Morgov) che utilizza disuguaglianze
triangolo, disequazioni 2 partizioni e affinamento branch and bound, il metodo euristico
che divide in clique molto rapidamente in base alle distanze tra nodi.
81. Illustrare il metodo euristico per la soluzione dei problemi di partizione in clique dei nodi
di un grafo
Il metodo euristico è un metodo molto rapido per ripartire in clique i nodi di un grafo.
Si parte dall’individuazione dei 2 nodi a distanza maggiore e si prendono in considerazione
loro 2.
Da questo punto si parte da uno dei 2 nodi scelti e si ordinano gli altri in ordine crescente di
distanza dal nodo scelto.
Si ha un vincolo sulla dimensione s e dall’ordinamento dei nodi ottenuti si scelgono s-1 nodi
da aggiungere a quello di partenza per formare il primo sottoinsieme.
Si usa il secondo nodo scelto e si ordinano in ordine crescente per distanza i nodi rimasti e
si scelgono i primi s-1 nodi per formare il secondo sottoinsieme.
Adesso si vede come procedere a seconda del numero n dei nodi rimasti ancora non
associati a nessun sottoinsieme: se n≥ 2*s allora si ripetono i passi precedenti, se s ≤ n <2s
allora si crea un nuovo sottoinsieme con i nodi rimasti, invece se n<s si aggiungono i nodi
rimasti ai sottoinsiemi con cui hanno distanza minore.
LEZ 25
82. Dato un grafo orientato G(N,A) dichiarare e definire in AMPL delle adeguate strutture
dati per rappresentare tale dati
nel .dat:
set P:= bottiglie lattine cartoni scatole barattoli;
set prezzi:= prezzo(bottiglie) prezzo(lattine) prezzo(cartoni) prezzo(scatole)
prezzo(barattoli);
param vett := prezzo(bottiglie) 10 prezzo(lattine) 4 prezzo(cartoni) 2 prezzo(scatole) 3
prezzo(barattoli) 5 ;
84. Illustrare i principali operatori per gli insiemi disponibili in AMPL
I principali operatori sugli insiemi in AMPL sono: union, inter(intersezione), diff(differenza :
A diff B elementi di A che non sono in B), symdiff(insieme deglei elementi che sono in A e in
B ma non in entrambi),card e whitin(sottoinsieme)
85. Spiegare le principali differenze tra insiemi e parametri in AMPL
Un insieme sarà dichiarato e definito: esso conterrà un numero di elementi che potrà
essere da 0 a n, gli elementi saranno tutti diversi e tutti gli elementi devono avere la stessa
dimensione: sugli insiemi si potranno applicare le operazioni tipiche degli insiemi (tipo
unione, intersezione, ...).L’insieme sarà indicato con set.
I parametri sono i dati del problema e restano costanti anche quando viene utilizzato il
solutore. Su di essi si possono basare eventuali restrizioni per le variabili indicati da
operatori matematici e si possono dare indicazioni sul tipo(intero, positivo, ...) e possono
essere anche rappresentati tramite vettori (parametro a dimensione 0 è un parametro
standard, a dimensione 1 è un vettore).Il parametro verrà indicato con param.
LEZ 26
LEZ 27
89. Descrivere come è possibile formulare il problema di flusso di costo minimo in AMPL
Per formulare il problema di flusso di costo minimo in AMPL si dovrà partire dalla
formulazione del problema a partire dal Grafo (che dà indicazioni sui nodi e gli archi),dalle
capacità associate agli archi, dalla domanda di ogni nodo e dal vettore di costo per andare
a definire i vincoli sulle capacità e sulle domande.
Si definirà un file .mod che contiene le dichiarazioni delle strutture e il .dat contenente i
valori di variabili e elementi degli insiemi.
Nel .mod andranno dichiarati:
gli insiemi NODI e ARCHI e il parametro a due dimensioni M(contiene informazioni
sugli orientamenti degli archi rispetto ai nodi)
i vettori capacità c, domanda d e costo w che saranno dei parametri
il parametro delle variabili
la struttura e definizione della funzione obiettivo w*x
la struttura e la descrizione dei vincoli.
Un esempio per il file .mod è il seguente:
set NODI;
set ARCHI;
param M {NODI, ARCHI};
param capacita{ARCHI};
param domanda{NODI};
param costi{ARCHI};
var x {j in ARCHI}>=0 ,<=capacita[j];
solve;
ma se volessi scegliere il solutore potrei fare:
91. Illustrare le principali istruzioni AMPL per la dichiarazione di variabili, funzione obiettivo
e vincoli
Per dichiarare le variabili si userà l’istruzione
var
seguito dal nome e da determinate caratteristiche e vincoli che la variabile dovrà
rispettare.
Un esempio per le variabili nel caso di minimizzazione dei costi in una rete di flusso può
essere:
var x {j in ARCHI} >=0 , <=capacità[j];
con questa istruzione dico che il vettore x ha la cardinalità degli archi e dovrà rispettare i
vincoli relativi alle capacità degli archi.
Per indicare la funzione obiettivo scriverò:
set NODI;
set ARCHI;
param M {NODI,ARCHI};
param costo {ARCHI};
param domanda {NODI};
param capacita {ARCHI};
var x {j in ARCHI} >=0 , <=capacità[j];
minimize Costo_Totale: sum{j in ARCHI} costo[j]*x[j];
subject to Incidenza {i in NODI}: sum {j in ARCHI} M[i,j] * x[j] = domanda[j];
Nel file .dat andremo ad inserire i valori degli insiemi, della matrice M, dei vettori capacita,
costo e domanda che andranno tarati in base al valore assunto nel problema in
considerazione.
LEZ 28
93. Definire il problema del cammino di costo minimo da s a t
Per definire il problema di flusso di costo minimo si può dovranno definire le variabili x del
flusso,i vincoli di capacità e di conservazione del flusso( una volta assegnato un grafo con
nodi, archi, costi, domande e capacità) e stabilire la funzione di costo da minimizzare:
si porrà il vettore domanda con valore -1 nel nodo sorgente e 1 nel nodo pozzo e tutti gli
altri nodi verranno impostati a domanda nulla e le capacità si imposteranno come se non
avessero limiti (valore infinito, ma poichè le domande sono al più pari ad uno i flussi non
eccederanno quella soglia).
94. Dimostrare che il problema del cammino di costo minimo da s a t è un caso particolare di
problema di flusso di costo minimo
Il problema di costo minimo parte dall’assunzione che si andrà a studiare il grafo con
nodi,archi,costi, capacità, domande e si dovranno valutare i flussi per riuscire a minimizzare
una funzione di costo che mi permetta di andare da un nodo sorgente s ad un nodo pozzo
t: quindi si può partire dal problema di rete di flusso di costo minimo e porre delle
condizioni sul vettore domanda(ponendo a -1 la domanda del nodo sorgente e a 1 la
domanda del nodo pozzo e a 0 tutte le altre componenti del vettore) e mettendo la
capacità di ogni arco pari ad infinito. Inoltre dovrà valere la regola che il flusso entrante
dovrà essere uguale al flusso uscente per ogni nodo diverso da s e t.
La struttura del problema sarà praticamente la stessa, con dei valori imposti però nel
vettore domanda.
95. Spiegare la differenza tra una rete di flusso e una rete di flusso con i nodi speciali pozzo e
destinazione
La rete di flusso con nodi speciali sorgente s e destinazione t è una normale rete di flusso
con delle imposizioni in più sul vettore domanda che sarà con una componente pari ad 1
nel nodo corrispondente al pozzo, con valore -1 nel nodo sorgente e 0 per tutti gli altri
nodi( nella flusso di rete non si hanno queste limitazioni e la domanda può assumere valori
più disparati) e le capacità possono essere dichiarate infinite (cosa che non succedeva nelle
reti di flusso) in quanto poichè le domande sono al massimo unitarie le capacità di ogni
arco saranno al massimo unitarie e non ho particolari vincoli sulle capacità stesse.
96. Descrivere come è possibile formulare il problema del cammino di costo minimo da s a t
in AMPL
Il problema del costo minimo sarà dato da:
min wT x
M x = d vincolo sulle domande
0|A|≤x≤c vincolo sulle capacità
che è lo stesso del problema di flusso di costo minimo per le reti.
Si potrà usare quindi il file .mod che si usa per le reti di flusso di costo minimo:
set NODI;
set ARCHI;
param M {NODI,ARCHI};
param costo {ARCHI};
param domanda {NODI};
param capacita {ARCHI};
var x {j in ARCHI} >=0 , <=capacità[j];
minimize Costo_Totale: sum{j in ARCHI} costo[j]*x[j];
subject to Incidenza {i in NODI}: sum {j in ARCHI} M[i,j] * x[j] = domanda[j];
Nel file .dat si andranno a definite (set) i nodi e gli archi, ad inserire i valori del vettore
domanda(con valore -1 per sorgente, 1 per pozzo e 0 per tutti gli altri) e si imposterà la
matrice M sugli orientamenti degli archi del problema, e si metterà il vettore capacità con
tutte le componenti ad infinito e si assegneranno i valori al vettore costo.
97. Descrivere le istruzioni utili alla dichiarazione del problema del cammino di costo minimo
da s a t in AMPL
Nel file .mod useremo le istruzioni set per creare l’insieme dei nodi e degli archi,
l’istruzione param per definire i vettori domanda,costo e capacità e la matrice M, si userà
l’istruzione var per definire le variabili del problema (i flussi associati agli archi), si definirà
la funzione obiettivo con minimize seguito dalla funzione di costo e si metterà il vincolo
sulle domande con subject to (in genere il vincolo di capacità viene inserito nella
dichiarazione della variabile).
Nel file .dat si andranno a definite (set) i nodi e gli archi, ad inserire i valori del vettore
domanda(con valore -1 per sorgente, 1 per pozzo e 0 per tutti gli altri) e si imposterà la
matrice M sugli orientamenti degli archi del problema, e si metterà il vettore capacità con
tutte le componenti ad infinito e si assegneranno i valori al vettore costo.
LEZ 29
98. Scrivere la formulazione del problema del massimo flusso da s a t
Per formulare il problema di massimo flusso dobbiamo preliminarmente aggiungere agli
archi del grafo l’arco orientato che connette il pozzo alla sorgente e definire il vettore dei
flussi x con i vincoli di capacità e di conservazione del flusso(d=0).
Il problema di massimo flusso sarà dato da:
max wT x
M x = d vincolo sulle domande o di conservazione del flusso
0|A|≤x≤c vincolo sulle capacità
M è la matrice che mi indica le orientazioni degli archi ed avrà valori 1 se il nodo della riga è
destinazione dell’arco sulla colonna, -1 se è sorgente, 0 altrimenti.
Con il vettore d che ha tutti 0, le capacità tutte con valore finito tranne quella relativa
all’arco fittizio pozzo-sorgente che sarà infinita ed i costi sono tutti 0 tranne quello dell’arco
pozzo-sorgente che sarà pari ad 1.
LEZ 30
101. Definire le istruzioni MODEL e DATA in AMPL e descrivere ruolo e caratteristiche
dei file .mod e .dat
Nel file .mod vengono definite le strutture del problema in esame. Per problemi di flusso
minimo,di percorso minimo o flusso massimo vengono creati(tramite l’istruzione set) gli
insiemi di nodi e archi, vengono dichiarati i parametri con le loro dimensioni, vengono
dichiarate le variabili e imposti i vicoli sulle strutture dichiarate e indicata la funzione
obiettivo.
Nel file .dat invece vengono assegnati i valori agli insiemi e ai parametri in base al problema
che vorrò risolvere.
L’istruzione model nome_file.mod; serve a caricare il file in AMPL, l’istruzione data
nome_file.dat; serve a caricare in AMPL il file dei dati.
102. Definire le istruzioni SOLVE e DISPLAY in AMPL
Una volta caricato il file .mod e .dat (in questo ordine altrimente torna un errore)
l’istruzione solve; risolve il problema e trova la soluzione andando a mostrare il risultato
della funzione obiettivo (per scegliere il solutore prima dell’istruzione solve; si può inserire
option solver nome_solver; così che si risolverà con il solutore scelto invece che con quello
di default).
L’istruzione display seguito dal nome della variabile che vogliamo osservare ci restituisce i
valori della variabile relativi alla soluzione della funzione obiettivo trovata.
103. Descrivere come è possibile formulare il problema del massimo flusso da s a t in
AMPL
Il file MF.mod sarà:
set NODI;
set ARCHI;
param M {NODI,ARCHI};
param costo {ARCHI};
param domanda {NODI};
param capacita {ARCHI};
var x {j in ARCHI} >=0;
maximize Costo_Totale: sum{j in ARCHI} costo[j]*x[j];
subject to Incidenza {i in NODI}: sum {j in ARCHI} M[i,j] * x[j] = domanda[j];
subject to Capacita{j in ARCHI}: x[j]<= capacita[j];
Nel file .dat ci saranno le assegnazioni dei valori con istruzione set NODI e set ARCHI
seguito dall’operatore := e dalla lista di nodi e archi, poi con param M: si assegneranno i
valori alla matrice M andando ad indicare tutti gli archi seguiti da := e poi su ogni riga
sottostante un nodo seguito dai valori da assegnare, lo stesso con param
domanda:= ,param costo:= , param capacita:= seguiti da nodi/archi alternati ai valori che
assumono in quel nodo/arco i parametri(param capacita e costo possono essere anche
assegnati in un’unica istruzione param: capacita costo:= .
LEZ 31
104. Descrivere come è possibile formulare il problema del minimo taglio s-t in AMPL
Il minimo taglio in AMPL si può formulare andando a valutare gli elementi che
corrispondono ai vincoli del problema del massimo flusso: se il problema del massimo
flusso ammette soluzione ottima anche il taglio minimo s-t ammette soluzione ottima ed è
pari proprio al flusso massimo.
Poichè i vincoli del MF sono le variabili del duale taglio minimo s-t, visualizzandole
dall’esecuzione del MF ottengo la soluzione per il taglio minimo senza ulteriori fatiche.
E ricaviamo il duale:
min cTy
zu – zv + yuv ≥ 0|A| uv∈A
zt – zs ≥ 1
y ≥ 0|A’|
z∈R|N|
Consideriamo una soluzione del problema duale (z*,y*) e definiamo due sottoinsieme N1 ed
N2 dell’insieme dei nodi N in modo che :
N1:={ i∈N : zi ≤ 0} ed N2:={ i∈N : zi ≥ 1}
Il vincolo zt – zs ≥ 1 è soddisfatto soltanto per le coppie zs appartenete a N1 e zt
appartenente a N2.
Per ogni altro arco (u,v) si avrà che :
a) z*u ,z*v appartiene a N1 allora y*uv ≥ 0
b) z*u ,z*v appartiene a N2 allora y*uv ≥ 0
c) z*u appartiene a N1 e ,z*v appartiene ad N2 allora y*uv ≥ 1
d) z*u appartiene a N2 e ,z*v appartiene ad N1 allora y*uv ≥ -1
poichè vogliamo minimizzare la capacità allora nei casi a,b, d assumiamo il valore 0 per le
componenti y*uv , nel caso c avremo y*uv = 1.
Se valuto così il taglio minimo s-t ho che una qualsiasi soluzione ammissibile per il flusso
massimo è un lower bound per il taglio minimo s-t ed all’ottimo la soluzione del massimo
flusso è pari al valore del minimo taglio s-t.
LEZ 32
108. Illustrare il ruolo del comando RESET in AMPL, sia da riga di comando che da
file .dat
Con la funzione RESET si può cancellare il valore o tutti i valori precedentemente assegnati
ai parametri/insiemi precedentemente dichiarati: si possono cancellare tutti i valori con
l’istruzione reset data; oppure i valori di una serie di parametri/insiemi indicati in una lista
scrivendo l’istruzione reset data <lista>; .
109. Illustrare il ruolo del comando DATA in AMPL, sia da riga di comando che da
file .dat
Il comando DATA nel file .dat viene inserito in testa al file indicando che nel seguito
verranno definite le diverse entità dichiarate nel file .mod.
Il comando data può essere utilizzato anche nell’interprete ed in questo caso si userà un
set di istruzioni del tipo:
ampl: model file.mod;
ampl: data;
ampl data:
in questo caso entro nella modalità dati e da qui posso definire i valori delle diverse entità
che però devono trovare rispondenza nelle dichiarazioni del file.mod.
Inoltre se un’entità risulta già definita, non è possibile definirla di nuovo senza
preventivamente fare un reset o un update.
Ogni volta che utilizzo una funzione tipo reset, update, display esco dalla modalità data e se
volessi continuare a definire entità dovrei riscrivere il comando data.
Lo script dovrà essere salvato nella stessa directory dell’eseguibile AMPL con
estensione .run.
Così se scrivo:
ampl: commands nome_script.run;
vengono eseguite tutte le istruzioni precedenti e a video mostrata la soluzione, mentre nel
file_soluzione troverò le variabili1 e 2 del problema.
LEZ 33
112. Illustrare le componenti principali del metodo del simplesso dinamico
Il metodo del simplesso dinamico parte da una valutazione implicita dei vincoli della
rappresentazione esterna del poliedro P (regione delle soluzione).
Non valuta direttamente le disequazioni ma parte dalla valutazione di una possibile
soluzione trovata su un sottoinsieme di P e vede se soddisfa tutti i vincoli del problema: se
li soddisfa allora ho trovato la soluzione, altrimenti aggiungo il vincolo violato e cerco una
nuova soluzione.
113. Illustrare il diagramma di flusso del metodo del simplesso dinamico
Nel diagramma di flusso del metodo ho una partizione del problema originale in un
problema in cui considero meno vincoli.
Vado a trovare una soluzione del sottoproblema e posso avere 2 possibilità date nel
metodo del simplesso:la soluzione non esiste e quindi non esisterà nemmeno per il
problema P, oppure esiste e potrà essere valutata su P.
Anche in questo caso ho due possibilità fornite dall’oracolo di separazione: se rispetta tutti
i vincoli di P allora ho una soluzione appartenente a P e quindi termino, oppure viola un
vincolo e questo lo aggiungo al set preso in considerazione all’inizio e riparto da capo alla
ricerca di un a soluzione per il nuovo set di vincoli.
114. Descrivere il funzione di un generico oracolo di separazione
L’oracolo di separazione serve a dare informazioni implicite sulla rappresentazioni di un
problema PL.
Valuto una soluzione e vedo se essa appartenga al poliedro(cioè rispetta tutte le
disequazioni) e quindi ho trovato la soluzione ottima, oppure vedo se non ho rispettato
qualche vincolo e lo aggiungo al set di vincoli utilizzati per trovare una soluzione.
LEZ 34
115. Descrivere la formulazione di un problema di pianificazione degli investimenti su
un orizzonte temporale di almeno due periodi
Si deve andare a considerare:
un insieme di possibili investimenti I={1,2,...,n}
un indice di redditività c per ogni investimento
un indice temporale T={1,2}
un budget b per ogni periodo temporale
un vettore di flussi di cassa dell’investimento i sull’orizzonte temporale T(i flussi
possono essere positivi in caso di ritorno dell’investimento o negativi in caso di
finanziamento dell’investimento).
Si definirà la redditicità totale la somma degli indici di redditività degli investimenti
effettuati nei limiti dei budget relativi ai 2 periodi T presi in considerazione.
Per ogni periodo si dovrà avere che la somma dei flussi di cassa non ecceda il budget
relativo a quel periodo.
Supponiamo di avere un sottoinsieme F di investimenti effettuati: si definirà una
variabile binaria x per ogni investimento e varrà 1 se fa parte di F(quindi è stato
finanziato) e 0 altrimenti.
Il problema sarà dato da:
max cTx
Ax≤b per ogni periodo in cui A è la matrice dei flussi di cassa, x il vettore che mi dice se
l’investimento è finanziato o meno e b il vettore del budget(in questo caso composto di
soli 2 valori)
x ∈ {0,1}