Sei sulla pagina 1di 44

LEZ 2

1. Quali sono i principali strumenti di pianificazioni impiegati per la pianificazione dei


sistemi complessi e distribuiti?
I principali strumenti utilizzati nella pianificazione sono i modelli(con la definizione delle
grandezze che lo descrivono e delle variabili con le relazioni e i vincoli a cui sono soggette)
e i metodi della ricerca operativa così da poter essere di supporto nella Scienza delle
Decisioni in quanto si possono così avere basi analitiche tramite le quali poter effettuare la
scelta migliore nell’ambito del nostro sistema di studio.

2. Cosa significa costruire un modello?


Costruire un modello significa fare una rappresentazione sintetica di fenomeni atto di
studio per metterne in evidenza determinate caratteristiche; il modello può essere
matematico se per esprimere il fenomeno sotto osservazione vengono utilizzate relazioni e
strumenti matematici.
Nella costruzione del modello si dovranno seguire dei passi specifici: si dovrà partire
dall’analisi del problema decisionale, si proseguirà poi con l’identificazione del modello da
seguire,si farà un’analisi del modello, si giungerà ad una soluzione e si validerà il modello se
la soluzione è rispondente a ciò che mi aspetto così da verificare se il modello va bene così
oppure ha bisogno di ulteriori affinamenti.

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.

6. Disegnare il grafo di localizzazione con 4 siti candidati {A, B, C, D} e 2 clienti {1,2}

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

Il costo di attivazione è pari a 3+6=9.


Il costo ottimo di afferenza è 6+7+4+5=22.
Il costo totale è 22+9=31.

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

Il costo di attivazione è 3+8=11.


Il costo ottimo di afferenza è 6+1+5+4=16.
Il costo totale è 11+16=27.
10. 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 B e C

Il costo di attivazione è 6+8=14.


Il costo ottimo di afferenza è 6+1+4+4=15.
Il costo totale è 14+15=29.

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

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 A e B sarà:
min fA xA+ fB xB + 6y1A + 8y2A + 6y3A + 7y4A + 6y1B + 7y2B + 4y3B + 5y4B= fA xA+ fB xB +6+7+4+5= fA
xA+ fB xB +22
Per essa dovranno valere sempre i vicoli sulle variabili y servite da un solo sito candidato e
che la y deve essere servita da un sito candidato attivo.

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

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 A e C sarà:
min fA + fC + 6y1A + 8y2A + 6y3A + 7y4A + 10y1C + y2C + 5y3C + 4y4C
= fA + fc +6+1+5+4= fA + fC +16

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

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 A ,B e C sarà:
min fA xA+ fB xB + fC xC + 6y1A + 8y2A + 6y3A + 7y4A + 6y1B + 7y2B + 4y3B + 5y4B+ 10y1C + y2C + 5y3C +
4y4C = fA + fB ++ fC +6+1+4+4= fA + fB + fC +15

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

Provo il sito A ed ho costi pari a : 3+6+8+6+7=30.


Provo il solo sito B: 6+6+7+4+5=28.
Provo il sito C: 8+10+1+5+4=28.
La scelta greedy è il sito B (o alternativamente il sito C).
Provo B ed aggiungo:
 A ed ottengo: 6+3+6+7+4+5=31>28 allora non posso accettarla.
 C ed ottengo: 6+8+6+1+4+4=29>28 e non posso accettarla.
Provo C ed aggiungo:

 A ed ottengo: 8+3+6+1+5+4=27<28 quindi è una possibile candidata.


 B ed ottengo come prima 29>28 e non posso accettarla.
Ho quindi la soluzione ottima finora che è data dall’attivazione dei siti A e C.
Se aggiungo anche B ottengo: 8+3+6+6+1+4+4=32>27 e quindi la scarto.
La soluzione Greedy quindi è attivare i siti A e C con costo pari a 27.
20. Applicare l'algoritmo Greedy al problema di Localizzazione degli Impianti

Attivo soltanto il sito A ed ho un costo pari a : 4+2+4+1+5=16.


Attivo soltanto B: 3+7+6+2+4=22.
Scelgo di attivare A.
Se ad A aggiungo B ottengo un costo di : 4+3+2+4+1+4=18.
Quindi l’algorimo greedy si interrompe qui e tengo attivo soltanto A.
21. Definire la scelta greedy nell'applicazione dell'algoritmo greedy al problema di
localizzazione degli impianti
L’algoritmo di scelta greedy parte dal presupposto di andare a calcolare in diverse
iterazioni il costo totale di alcune soluzioni andando ad attivare prima i siti candidati
singolarmente e lasciando attivo quello a costo totale(attivazione+afferenza) più
basso(facendo per l’appunto una scelta greedy), successivamente si aggiungono un sito alla
volta i restanti e si ricalcolano i costi totali e se qualche costo è più basso si tiene in
considerazione come soluzione la nuova coppia a costo più basso del precedente. Il passo
successivo è come il precedente: si aggiungono singolarmente i siti restanti e si vede se si
ha un miglioramento in termini di costo.
L’algoritmo termina quando in un’iterazione l’aggiunta di un nuovo sito non produce una
diminuzione dei costi: di qui si esce e si rimane con i siti candidati attivati sino a quel punto.

22. Illustrare attraverso un esempio l'applicazione dell'algoritmo greedy al problema di


localizzazione degli impianti
Fa=3

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

MANCANO I COSTI DI ATTIVAZIONE

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.

25. Applicare l'algoritmo Greedy al problema di Localizzazione degli Impianti e illustrarne il


diagramma di flusso
Nel problema di localizzazione degli impianti si cerca di minimizzare il costo totale per
servire tutti i clienti.
L’algoritmo di scelta greedy parte dal presupposto di andare a calcolare in diverse
iterazioni il costo totale di alcune soluzioni andando ad attivare prima i siti candidati
singolarmente e lasciando attivo quello a costo totale(attivazione+afferenza) più basso,
successivamente si aggiungono un sito alla volta i restanti e si ricalcolano i costi totali e se
qualche costo è più basso si tiene in considerazione come soluzione la nuova coppia a
costo più basso del precedente. Il passo successivo è come il precedente: si aggiungono
singolarmente i siti restanti e si vede se si ha un miglioramento in termini di costo.
L’algoritmo termina quando in un’iterazione l’aggiunta di un nuovo sito non produce una
diminuzione dei costi: di qui si esce e si rimane con i siti candidati attivati sino a quel punto.
Nel seguente diagramma di flusso si indica con l’insieme T l’insieme di tutti i siti attivi: si
patrtirà dalla situazione in cui non è attivo nessun sito e si valuterà quello a costo minore.
La condizione di uscita si avrà quando l’aggiunta di qualsiasi altro sito non apporta
miglioramenti a livello di costi.

26. Spiegare l'algoritmo Greedy illustrandone i passi attraverso il diagramma di flusso


L’insieme T è l’insieme dei siti attivati fino a quel momento.
Inizialmente l’insieme T è vuoto e alla prima iterazione si va a scegliere il sito a minor costo
tra tutti quelli disponibili.
Alla seconda iterazione si prova ad aggiungere al sito quelli ancora disponibili uno alla volta
e si valuta se si ha diminuzione di costo oppure no: se c’è diminuzione si valuta quella
maggiore e si sceglie il sito che l’ha resa possibile e si inserisce nell’insieme T e si passa alla
successiva iterazione, altrimenti si esce qualora non si hanno diminuzioni o fossero
terminati i siti a disposizione.

27. Spiegare la Ricerca Locale illustrandone i passi attraverso il diagramma di flusso


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.
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.

28. Applicare l'algoritmo Ricerca Locale al problema di Localizzazione degli Impianti

Fa=3

Fb=6

Fc=7

Faccio dapprima una valutazione Greedy del problema.


Provo A ed ho costo: 3+6+8+6+7=30.
Provo B ed ho costo: 6+6+7+4+5=28.
Provo C ed ho costo: 7+10+1+5+4=27.
Scelgo C.
Provo ad aggiungere A: 7+3+6+1+5+4=26.
Provo ad aggiungere B: 7+6+6+1+4+4=28.
Il mio insieme T comprenderà adesso A e C.
Provo ad inserire B:7+3+6+6+1+4+4=31.
Resto con A e C attivi.
Applico adesso l’algoritmo di Ricerca Locale partendo dalla soluzione greedy A+C con costo
pari a 26.
Se applico la mossa di rimozione di A avrei solo C con costo 27, se rimuovo C avrei solo A
con costo 30: la sola rimozione non va bene.
Se applico lo scambio di A con B avrei costo pari a C+B=28.
Se applico lo scambio a C con B avrei la coppia attiva A+B con costi: 3+6+6+7+4+5=31.
Non posso applicare quindi nessuna mossa perchè qualsiasi soluzione alternativa mi dà un
costo maggiore di 26.
La soluzione ottima è attivare quindi A e C.

29. Applicare la Ricerca Locale al problema di Localizzazione degli Impianti e illustrarne il


diagramma di flusso
COME LA 27
30. Applicare l'algoritmo Ricerca Locale al problema di Localizzazione degli Impianti
Applico l’agoritmo Greedy.
Provo A ed ho costo pari a: 4+2+4+1+5=16.
Provo B ed ho costo pari a: 3+7+6+2+4=22.
Scelgo A.
Aggiungo B: 3+4+2+4+1+4=18.
Attivo quindi soltanto A.
Provo ad applicare la Ricerca Locale e se rimuovo A ho B(costo 22 più alto) ed altre mosse
non posso farle...
Quindi resta soltanto A con costo pari a 16.
31. Spiegare le principali differenze tra algoritmo Greedy e Ricerca Locale
L’algoritmo Greedy è un algoritmo che permette di arrivare ad una soluzione del problema
di localizzazione degli impianti ma nel suo procedere ha dei vincoli che portano a non poter
più eliminare un sito che è stato attivato nei passi precedenti all’attivazione.
Con la Ricerca Locale parto dalla soluzione Greedy e rimuovendo e /o sostituendo i siti
attivi cerco se possa esistere una soluzione migliore nell’ ”intorno” di quella esplorata dal
Greedy.
32. Applicare l'algoritmo Ricerca Locale al problema di Localizzazione degli Impianti

Faccio dapprima una valutazione Greedy del problema.


Provo A ed ho costo: 3+6+8+6+7=30.
Provo B ed ho costo: 6+6+7+4+5=28.
Provo C ed ho costo: 8+10+1+5+4=28.
Scelgo B.
Provo ad aggiungere A: 6+3+6+7+4+5=31.
Provo ad aggiungere C: 6+8+6+1+4+4=29.
Il mio sistema avrà attivo soltanto B con costo totale pari a 28. Se lo sostituisco con A
peggioro con C ho la stessa soluzione in termini di costo.
Se invece scelgo C.
Provo ad aggiungere A: 8+3+6+1+5+4=27.
Provo ad aggiungere B: 8+6+6+1+4+4=29.
Il mio insieme T comprenderà adesso A e C con costo totale pari a 27.
Provo ad inserire B:8+3+6+6+1+4+4=32.
Resto con A e C attivi.
Adesso applico la Ricerca Locale.
Rimuovo A e resto con C: costo 28.
Rimuovo C e resto con A: costo 30.
Se sostitutisco A con B avrei la coppia C+B: costo 29.
Se sostituisco C con B avrei la coppia A+B: costo 31.
Non potendo fare nessuna mossa resto con la coppia A+C con costo 27.

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.

34. Spiegare le principali differenze tra algoritmo Greedy e Ricerca Locale


L’algoritmo Greedy è un algoritmo che permette di arrivare ad una soluzione del problema
di localizzazione degli impianti ma nel suo procedere ha dei vincoli che portano a non poter
più eliminare un sito che è stato attivato nei passi precedenti all’attivazione.
Con la Ricerca Locale parto dalla soluzione Greedy e rimuovendo e /o sostituendo i siti
attivi cerco se possa esistere una soluzione migliore nell’ ”intorno” di quella esplorata dal
Greedy.

35. Spiegare le principali caratteristiche dell'algoritmo Greedy


L’algoritmo di scelta greedy parte dal presupposto di andare a calcolare in diverse
iterazioni il costo totale di alcune soluzioni andando ad attivare prima i siti candidati
singolarmente e lasciando attivo quello a costo totale(attivazione+afferenza) più
basso(facendo per l’appunto una scelta greedy) e una volta scelto non si può più cambiare,
successivamente si aggiungono un sito alla volta i restanti e si ricalcolano i costi totali e se
qualche costo è più basso si tiene in considerazione come soluzione la nuova coppia a
costo più basso del precedente. Il passo successivo è come il precedente: si aggiungono
singolarmente i siti restanti e si vede se si ha un miglioramento in termini di costo.
L’algoritmo termina quando in un’iterazione l’aggiunta di un nuovo sito non produce una
diminuzione dei costi: di qui si esce e si rimane con i siti candidati attivati sino a quel punto.
36. Spiegare le principali differenze tra la formulazione del problema di Localizzazione degli
Impianti nel caso capacitato e quello non capacitato
Nella versione non capacitata ogni impianto è in grado di fornire tutte le risorse che vuole
in maniera illimitata quindi non si avrà un controllo sulle quantità totali che essa dovrà
fornire ai clienti e potrà servili tutti indipendentemente dalla richiesta che faranno.
In quella capacitata, invece, si dovrà tener conto della capacità massima di produzione dei
siti che dovranno così rapportarsi alla domanda dei clienti per fare in modo di soddisfare
pienamente le loro richieste: si dovranno imporre così vincoli sul fatto che ciò che fornisce
un sito non superi la sua capacità.
Inoltre nella non capacitata un cliente veniva servito esclusivamente da un sito candidato
(quindi la variabile yij era una variabile binaria, nella capacitata invece essa sarà una
variabile con valori compresi (o al massimo uguali) tra 0 e 1.

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.

40. Dare la definizione del problema della pianificazione degli investimenti


Il problema di pianificazione degli investimenti porta a scegliere quali investimenti attivare
o meno tenendo conto di vincoli di budget e della redditività degli stessi.
Si definiranno i costi delle alternative e le relative redditività e si dovrà cercare la soluzione
che restando nel budget fissato mi dia la redditività migliore.

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.

48. Dare la definizione di formulazione ottima di un problema di PL01


La formulazione ottima di un PL01 si ottiene andando a limitare il dominio delle soluzioni al
poliedro delle soluzioni ammissibili in S,pari a convS, ed esso corrisponde anche al più
piccolo dominio della formulazione lineare che così mi porta al valore ottimo della funzione
obiettivo.

49. Definire un criterio di ordinamento delle formulazioni di un problema di PL01


Un ordinamento per le formulazioni PL01 si può fare mettendo a confronto i domini dei
diversi rilassamenti e andando a vedere che quello con dominio incluso nell’altro ha un LB
più alto che tende a rendere quindi più piccolo il gap tra il costo della soluzione e il LB.
Quindi in generale P1 è migliore di P2 se e solo se P1 c P2.

50. Dare la definizione di formulazione lineare di un problema di PL01


Con la formulazione lineare si intende allargare l’insieme S delle soluzioni ammissibili del
problema lineare 01 facendo però in modo che le soluzioni ammissibili date
dall’intersezione del nuovo dominio con l’n-cubo restino le stesse di S: così una
formulazione lineare consente di separare le soluzioni dell’n-cubo ammissibili da quelle che
non lo sono e la formulazione lineare è data da una combinazione convessa dei punti in S.

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).

58. Descrivere i problemi di knapsack con particolare attenzione al problema di knapsack


binario
Il problema di knapsack è un problema di massimizzazione in cui si vuole massimizzare una
funzione avendo come vincoli i costi che si hanno per le variabili che possono essere
attivate: il tutto viene visto come oggetti da un determinato peso e un determinato valore
e si cerca di inserire in uno zaino tutti gli oggetti possibili per ottenere il massimo valore
non eccedendo il peso massimo che lo zaino può contenere.
Il problema di knapsack può essere:
 binario se gli oggetti sono indivisibili e se ne può scegliere al massimo uno per tipo
 senza limitazioni di quantità di ogni singolo oggetto(ne posso portare quanti ne
voglio di ogni tipo)
 con limitazioni nel numero.
Il problema di Knapsack binario potrà essere risolto tramite strategia di Branch and Bound
imponendo vincoli sulle variabili di decisione che potranno essere “attivate” o meno.

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.

60. Definire il problema di clustering dei dati


Con il termine di clustering si indica che un insieme di dati verranno divisi in classi
omogenee: in generale quindi viene utilizzato per identificare la necessità di classificare
delle osservazioni e la classificazione potrà essere supervisionata(se esiste una definizione
a priori dove classificare le osservazioni) o non supervisionata.
Si utilizzerà un metodo induttivo per passare dalle osservazioni alle regole che ci danno
informazioni sulle classi di dati e rappresentano i criteri di classificazione indotti
automaticamente analizzando i dati.
In genere si parlerà di apprendimento automatico come processo automatico di estrazione
delle informazioni da un sistema sotto osservazione e si parte con una serie di osservazioni
di addestramento:l’apprendimento automatico diviene sempre più importante perchè oggi
aumentano i dati e sono sempre più eterogenei e ottenuti da diverse fonti.
Gli oggetti saranno classificati mediante una qualche misura di similarità e il concetto di
separazione avverrà sulla base dell a dissimilarità tra due elementi: due elementi dello
stesso cluster saranno “distanti” meno di due elementi qualsiasi appartenenti a cluster
diversi.

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.

66. Siano x e y i vettori di incidenza dell'insieme multi-taglio e dell'insieme partizione di una


partizione P. Dire a cosa corrisponde il vettore z = x + y
Il vettore z corrisponde al vettore che mi indica quali sono gli archi presenti nella partizione
a grafo: le componenti pari ad 1 mi dicono che la coppia di istanze ij è collegata mentre se
fosse 0 non si avrebbe un arco nel grafo che collega l’istanza i all’istanza j.

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

Supponiamo di avere un set di nodi pari a A,B,C,D,E e i relativi archi orientati.


Per definirli in AMPL dobbiamo dichiararli nel file .mod:
set N;
set A;
param M { N, A}

Nel file .dat invece andranno definiti:


set N:= A B C D E ;
set A:= AB AC BC BE CD DB DE;
param M :=
A AB -1 A AC -1 A BC 0 A BE 0 A CD 0 A DB 0 A DE 0
B AB 1 B AC 0 B BC -1 B BE -1 B CD 0 B DB 1 B DE 0
C AB 0 C AC 1 C BC 1 C BE 0 C DC -1 C DB 0 C DE 0
D AB 0 D AC 0 D BC 0 D BE 0 D CD 1 D DB -1 D DE -1
E AB 0 E AC 0 E BC 0 E BE 1 E CD 0 E DB 0 E DE 1;
OPPURE
param M:
AB AC BC BE CD DB DE :=
A -1 -1 0 0 0 0 0
B 1 0 -1 -1 0 1 0
C 0 1 1 0 -1 0 0
D 0 0 0 0 1 -1 -1
E 0 0 0 1 0 0 1
83. Dato un insiemi di prezzi definiti sull'insieme di prodotti P = {bottiglie, lattine, cartoni,
scatole, barattoli}, con
Prezzo(bottiglie) = 10
Prezzo(lattine) = 4
Prezzo(cartoni) = 2
Prezzo(scatole) = 3
Prezzo(barattoli) = 5
dichiarare e definire in AMPL delle adeguate strutture dati per rappresentare tale dati
Nel file .mod dichiariamo:
set P;
param prezzo(bottiglie);
param prezzo(lattine);
param prezzo(cartoni);
param prezzo(scatole);
param prezzo(barattoli);

Nel file .dat definiamo:


set P:= bottiglie lattine cartoni scatole barattoli;
param prezzo(bottiglie) := 10;
param prezzo(lattine) := 4;
param prezzo(cartoni) := 2;
param prezzo(scatole) := 3;
param prezzo(barattoli) := 5;

Oppure si poteva fare in altro modo:


nel .mod:
set P;
set prezzi;
param vett {prezzi};

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

86. Formulare il problema di flusso di costo minimo come problema di Programmazione


Matematica
La formulazione matematica del MCF è data da:
min wT x in cui x rappresenta il vettore del flusso e w è il vettore dei costi, entrambi
definiti sugli archi.
M x = d vincolo sulle domande o di conservazione del flusso (d è il vettore delle domande
definito sui nodi ed è >0 se è una domanda e <0 se è un’offerta.La somma delle domande d
è nulla)
0|A|≤x≤c vincolo sulle capacità (c è il vettore delle capacità definito sugli archi)
M rappresenta la matrice dell’istanza del grafo: avrà righe pari al numero di nodi e colonne
pari al numero di archi ed ogni elemento ij mi dice se l’arco associato j è uscente dal nodo
i(valore -1), entrante nel nodo i(valore 1) oppure non tocchi il nodo i (valore 0).
Il vettore 0|A|è il vettore nullo ed ha un numero di elementi pari alla cardinalità degli archi.
L’insieme delle soluzione è rappresentato dal poliedro Q = {x ∈ ℝ|A| : M x = d, 0|A| ≤ x ≤ c }

87. Illustrare il problema del flusso di costo minimo (MCF)


Nel MCF si avranno tutte le condizioni della rete di flusso per quanto riguarda i vincoli (di
capacità e di conservazione del flusso) a cui si andrà ad aggiungere la funzione obiettivo da
minimizzare.
La funzione obiettivo sarà data dal prodotto tra il trasposto del vettore dei costi w e il
vettore dei flussi x.
88. Dare la definizione di flusso e di rete di flusso
Dato un grafo orientato G(N,A) in cui siano assegnati le capacità c>0 definite sugli archi e le
domande d definite sui nodi si definisce flusso un vettore x a componenti continue definite
sugli archi in cui ogni componente non ecceda la capacità e che la somma dei flussi sui
nodi(presi positivi se entranti nel nodo e negativi se uscenti dal nodo) sia pari alla domanda
del nodo.
Per definire una rete di flusso si dovrà definire anche un vettore w dei costi definito sugli
archi che potrà avere componenti positive o negative e la somma delle domande dovrà
essere nulla(domanda positiva rappresenta una domanda, domanda negativa rappresenta
un’offerta); per la rete valgono gli stessi vincoli dei flussi sulle capacità e sulle domande
singole.

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];

minimize Costo_Totale: sum{j in ARCHI} costi[j]*x[j];


subject to Incidenza {i in NODI}: sum {j in ARCHI} M[I,j]*x[j]=domanda[i];

90. Descrivere le istruzioni utili al caricamento e soluzione di un modello in AMPL


Per caricare i file una volta nel programma ampl si scriveranno le istruzioni:
 model nome_file.mod;
 data nome_file.dat;
che dovranno essere indicati in questo ordine altrimenti ritorna un messaggio di errore.
Per risolvere un problema si potrebbe indicare soltanto l’istruzione

 solve;
ma se volessi scegliere il solutore potrei fare:

 option solver nome_solver;


 solve;

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ò:

 minimize Costo_Totale: sum{j in ARCHI} costo[j]*x[j];


Per i vincoli uno è già inserito nella variabile(vincolo di capacità), per quello di domanda ho:

 subject to Incidenza {i in NODI}: sum {j in ARCHI} M[i,j] * x[j] = domanda[j];


ottengo un numero di relazioni pari al numero dei nodi i e faccio in modo che la domanda
di ogni nodo sia soddisfatta sommando l’elemento della Matrice delle istanze che indica
l’arco j relativamente al nodo i( valore 1 se entrante, -1 se uscente, 0 se non tocca i)
moltiplicato valore della variabile.
92. Descrivere le istruzioni utili alla dichiarazione del problema di flusso di costo minimo in
AMPL
Nel file .mod mettiamo:

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.

99. Definire il problema del massimo flusso da s a t


Per problema di massimo flusso si intende andare alla ricerca su un grafo in cui siano
presenti una sorgente s ed un pozzo t il massimo flusso ammissibile uscente da s ed
entrante in t e che rispetta tutti i vincoli di capacità sui flussi e la conservazione del flusso.
100. Dimostrare che il problema del massimo flusso da s a t è un caso particolare di
problema di flusso di costo minimo
Si può vedere il problema di flusso massimo come caso particalore di problema di flusso di
costo minimo su una rete di flusso in cui siano individuati un nodo sorgente e un nodo
pozzo.
Si dovrà aggiungere un arco fittizio dal pozzo alla sorgente con capacità infinita, mentre le
altre capacità avranno tutte valore finito, si imposterà il vettore domanda come vettore
nullo (conservazione del flusso) e si porrà il vettore dei costi pari a 0 tranne per il costo
relativo all’arco fittizio pozzo-sorgente che sarà pari ad 1.
In questo caso si dovrà massimizzare la funzione obiettivo e quindi il valore del flusso in
uscita da t ed entrante in s (che poi è anche quello uscente da s ed entrante in t per la
conservazione del flusso).

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.

105. Scrivere la formulazione del problema del minimo taglio s-t


Il problema del minimo taglio s-t è quello di determinare un sottoinsieme W dei nodi N di
un grafo in modo tale che s appartenga a W e sia minima la capacità del taglio.
La sua formulazione sarà:
min cTy
zu – zv + yuv ≥ 0|A| uv∈A
zt – zs ≥ 1
y ≥ 0|A’|
z∈R|N|
cTy rappresenta la capacità del taglio ed è dato dalla somma delle capacità degli archi che
vengono “tagliati” per formare l’insieme W.
106. Dimostrare che il problema del minimo taglio s-t è un il duale del problema di
massimo flusso da s a t
Partiamo dalla definizioni del massimo flusso :
max wT x
M x = d vincolo sulle domande
0|A|≤x≤c vincolo sulle capacità

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.

107. Definire il problema del minimo taglio s- t


Il problema del minimo taglio s-t è quello di determinare un sottoinsieme W dei nodi N di
un grafo in modo tale che s appartenga a W e sia minima la capacità del taglio: esso può
essere visto come il duale del flusso massimo.

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.

110. Definire le istruzioni di gestione input/output in AMPL


Per quanto riguarda l’input esiste la funzione READ seguita da una lista di entità a cui
assegnare il valore che dovrà essere immesso nell’ordine in cui le entità sono presenti nella
lista, mentre se ho i dati in un file si può immettere l’input tramite il file utilizzando dopo la
lista il simbolo < seguito dal nome del file.txt.
Si possono inserire anche entità a più dimensioni e verrà indicato dalle parentesi graffe con
gli indici delle dimensioni e l’intervallo della dimensione.
Se volessi assegnare valori a 2 parametri a e b e poi ad un vettore monodimensionale di
dimensione n posso scrivere:
ampl: param a;
ampl: param b;
ampl: param c {1..n};
ampl: read a, b, {i in 1..n} c[i];
ampl?
Da qui si potranno inseririre I 2 + n valori da asssegnare ad a,b e c separandoli con le
virgole.
Per l’output si utilizzano le istruzioni display e print seguiti dalla lista delle entità di cui si
vogliono visualizzare i valori e se voglio visualizzarli non nel canale standard (video) allora
userò > e il file dove registrare i dati (in questo modo sovrascriverò il file) oppure >> per
scrivere i dati di seguito a quelli già scritti in precedenza.
La differenza tra print e display è che il print mostra il dato non formattato (scrive solo il
valore) mentre il display mostra il nome della variabile= valore.
111. Illustrare il ruolo del comando COMMANDS in AMPL
Il COMMANDS legge un file .run e lo esegue.
Il file .run è uno script che contiene una serie di comandi da eseguire così che se devo
eseguire la stessa sequenza di comandi posso richiamare la stringa con COMMANDS.
Esempio di script può essere:
model nome_file.mod;
data nome_file.dat;
option solver cplex;
solve;
display nome_variabile1>>file_soluzione.sol.txt;
display nome_variabile2>>file_soluzione.sol.txt;

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}

Potrebbero piacerti anche