Sei sulla pagina 1di 28

Domande Ricerca Operativa 2

1) Quali sono i principali strumenti di pianificazioni impiegati per la


pianificazione dei sistemi complessi e distribuiti?

La pianificazione dei sistemi complessi e distribuiti richiede l'uso di strumenti e


tecniche specifiche per garantire una pianificazione efficace ed efficiente.
Alcuni principali strumenti impiegati sono:
1. Diagrammi di flusso: strumenti visivi che rappresentano la sequenza
delle attività e delle decisioni all'interno di un sistema complesso. Sono
utili per identificare i punti critici, i vincoli e le dipendenze tra le attività.

2. Diagrammi di Gantt: diagrammi a barre orizzontali che mostrano la


pianificazione temporale delle attività in un progetto.

3. Algoritmi di scheduling: utilizzati per pianificare le attività in un sistema


distribuito in base a criteri specifici, come la priorità, la disponibilità delle
risorse e i tempi di esecuzione

4. Modelli matematici: I modelli matematici, come i modelli di


programmazione lineare, possono essere utilizzati per ottimizzare la
pianificazione di sistemi complessi e distribuiti. Questi modelli
consentono di definire gli obiettivi di pianificazione, i vincoli e le variabili
decisionali, e di trovare la soluzione ottimale in base a tali parametri.

5. Strumenti di simulazione: consentono di creare modelli virtuali di sistemi


complessi e distribuiti per valutare le diverse strategie di pianificazione.
Questi strumenti consentono di testare e confrontare le prestazioni delle
diverse soluzioni in scenari simulati, aiutando a prendere decisioni
informate sulla pianificazione.

6. Strumenti di gestione dei progetti: Gli strumenti di gestione dei progetti


possono essere utilizzati per pianificare e monitorare le attività
all'interno di un sistema complesso e distribuito. Assegnano
responsabilità, tracciano i tempi di esecuzione e gestiscono le risorse.
2) Cosa significa costruire un modello?

Costruire un modello significa creare una rappresentazione astratta,


semplificata e strutturata di un sistema. La costruzione di un modello comporta
diverse fasi, tra cui:
1. Identificazione del sistema o del fenomeno da modellare: È necessario
definire chiaramente cosa si intende modellare e quali sono gli aspetti
rilevanti da considerare.

2. Raccolta dei dati e delle informazioni: È importante raccogliere dati e


informazioni pertinenti sul sistema da modellare.

3. Selezione delle variabili e dei parametri: Bisogna determinare le variabili


che influenzano il sistema e i parametri che definiscono il
comportamento del modello.

4. Definizione delle relazioni e delle equazioni: Bisogna stabilire le relazioni


tra le variabili nel modello.

5. Semplificazione e astrazione: è necessario semplificare e astrarre il


sistema reale per rendere il modello più gestibile e comprensibile.

6. Validazione e verifica: Una volta costruito il modello, è importante


testarlo, verificarne la correttezza e confrontarne i risultati con dati
empirici o con il comportamento atteso del sistema reale. La validazione
del modello aiuta a valutarne l'accuratezza e la capacità di rappresentare
il fenomeno in modo adeguato.

Costruire un modello consente di ottenere una rappresentazione concettuale


che può essere utilizzata per studiare il sistema, fare previsioni, testare ipotesi
o prendere decisioni informate.
3) Cos'è un modello, quali vantaggi offre e come è correlato ai sistemi di
pianificazione dei sistemi complessi e distribuiti?

Un modello, nel contesto dei sistemi complessi e distribuiti, è una


rappresentazione astratta e strutturata di un sistema o di un fenomeno.
I vantaggi offerti dai modelli includono:
1. Comprensione: I modelli consentono di comprendere il funzionamento di
un sistema complesso e distribuito in modo più chiaro e dettagliato.
Rappresentano le relazioni e le dipendenze tra le varie componenti del
sistema, fornendo una visione strutturata e concettuale.

2. Previsione: I modelli permettono di fare previsioni sul comportamento


futuro del sistema, considerando diverse variabili e scenari. Attraverso
l'analisi del modello è possibile valutare gli effetti delle decisioni e delle
azioni nel tempo.

3. Ottimizzazione: I modelli possono essere utilizzati per ottimizzare la


pianificazione dei sistemi complessi e distribuiti. Attraverso l'uso di
algoritmi e tecniche di ottimizzazione, i modelli possono identificare le
soluzioni ottimali in termini di risorse, tempi e vincoli specifici.

4. Decision making: I modelli forniscono una base razionale per prendere


decisioni informate. Essi consentono di valutare e confrontare diverse
opzioni, prevedendo i loro impatti sul sistema complesso e distribuito.

I modelli, inoltre, sono strettamente correlati ai sistemi di pianificazione dei


sistemi complessi e distribuiti in quanto forniscono un quadro concettuale per
la pianificazione e l’ottimizzazione delle attività all’interno di tali sistemi e
forniscono una base razionale per prendere decisioni informate sulle azioni da
intraprendere nel sistema complesso e distribuito.
4) Descrivere gli elementi caratterizzanti il problema di localizzare degli
impianti
L'obiettivo principale dei problemi di localizzazione è determinare la posizione
ottimale per la costruzione di nuovi impianti o per l'allocazione di risorse
esistenti, tenendo conto di diversi fattori e vincoli. Gli elementi caratterizzanti il
problema di localizzazione sono:
1. Obiettivi: Esso possono variare a seconda del contesto specifico. Ad
esempio: possono includere la riduzione dei costi, la massimizzazione
dell'efficienza operativa, la minimizzazione delle distanze o dei tempi di
trasporto e altro ancora. Gli obiettivi devono essere definiti in modo
chiaro per guidare il processo di localizzazione.

2. Dati: È necessario raccogliere dati pertinenti per il problema. Questi dati


possono includere diverse informazioni come ad esempio: le
caratteristiche del territorio, le infrastrutture esistenti, i costi di trasporto
e altro ancora. I dati possono provenire da fonti interne o esterne
all'organizzazione.

3. Vincoli: si è soggetti a diversi vincoli che devono essere considerati nel


processo decisionale. Possono riguardare aspetti come la disponibilità di
terreni, i vincoli finanziari e altri fattori che limitano le scelte possibili.

4. Tecniche di ottimizzazione: Spesso si affrontata come un problema di


ottimizzazione, in cui si cerca di trovare la soluzione ottimale in base agli
obiettivi definiti, applicando tecniche di ottimizzazione come la PL, la PLI
o altre metodologie appropriate per il problema specifico.

5. Valutazione e analisi dei risultati: Una volta individuata una soluzione


potenziale, è importante valutarne l'impatto e analizzarne i risultati
coinvolgendo gli strumenti di simulazione.

5) Dare la definizione di problema di localizzazione degli impianti


Il problema di localizzazione degli impianti è una questione di decisione
strategica che riguarda la determinazione della posizione ottimale per la
costruzione di nuovi impianti o per l'allocazione di risorse esistenti all'interno
di un sistema o di un territorio.
L'obiettivo del problema è trovare la combinazione di posizioni degli impianti
che massimizzi l'efficienza operativa, minimizzi i costi, ottimizzi la copertura
geografica dei servizi, soddisfi la domanda dei clienti o raggiunga altri obiettivi
specifici definiti.
Il problema di localizzazione degli impianti coinvolge la valutazione e l'analisi di
vari fattori, tra cui la distribuzione geografica della domanda, i costi di
trasporto, i vincoli normativi, le infrastrutture esistenti, le caratteristiche del
territorio e altre variabili rilevanti. La soluzione del problema richiede
l'applicazione di tecniche di ottimizzazione e l'utilizzo di modelli matematici per
determinare la combinazione ottimale di posizioni degli impianti che
soddisfano gli obiettivi definiti e rispettano i vincoli specifici.
Le decisioni prese nel contesto del problema di localizzazione degli impianti
possono avere un impatto significativo sulle prestazioni operative, sulla
competitività, sulla soddisfazione del cliente e sulla sostenibilità delle
organizzazioni. Pertanto, l'analisi e la risoluzione del problema di localizzazione
degli impianti sono cruciali per prendere decisioni strategiche riguardo alla
posizione degli impianti e all'allocazione delle risorse.

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


clienti {1,2}
Ecco un possibile grafo di localizzazione con 4 siti candidati (A, B, C, D) e 2
clienti (1, 2):
1
A C

B D
2

Questo grafo rappresenta un semplice scenario di localizzazione degli impianti


in cui i siti candidati sono connessi direttamente ai clienti. Tuttavia, a seconda
dei requisiti specifici e dei vincoli del problema, la struttura del grafo potrebbe
variare, con connessioni diverse tra i siti candidati e i clienti.
7) Definire la scelta greedy nell'applicazione dell'algoritmo greedy al
problema di localizzazione degli impianti

La scelta greedy è una strategia di selezione degli elementi all'interno


dell'algoritmo greedy applicato al problema di localizzazione degli impianti.
Nell'ambito di questo problema, l'algoritmo greedy mira a prendere decisioni
localmente ottimali in ogni fase, senza considerare le possibili conseguenze a
lungo termine.
Si seleziona l'elemento che sembra essere la migliore opzione disponibile in
quel momento. L'idea è selezionare l'opzione che sembra ottimale rispetto alla
situazione corrente, senza considerare come tale scelta influenzerà le future
decisioni e il risultato finale globale.

Nel contesto della localizzazione degli impianti, la scelta greedy si muove


secondi i seguenti passi: inizialmente l’insieme dei siti candidati è vuoto con il
minor costo iniziale; il primo sito scelto è quello con il minor costo iniziale. Il
criterio di selezione dei siti è trovare il sito la cui attivazione massimizza la
diminuzione del costo. Ad ogni iterazione, il sito selezionato viene aggiunto
all’insieme dei precedenti selezionati e si seleziona quello che ottiene il
punteggio più alto in base al criterio di valutazione citato precedentemente.
L’algoritmo termina quando l’aggiunta di nuovi siti non produce una
diminuzione del costo.

L'approccio greedy può semplificare il processo decisionale e fornire una


soluzione in modo rapido. Tuttavia, è importante notare che l'algoritmo greedy
potrebbe non garantire sempre la soluzione ottimale globale, portando, delle
volte, ad una soluzione sub-ottimale complessiva. Pertanto, l'algoritmo greedy
nel contesto della localizzazione degli impianti potrebbe richiedere l'uso di
tecniche aggiuntive, come l'analisi di scenari, per valutare e migliorare la
soluzione trovata.
8) Illustrare attraverso un esempio l'applicazione dell'algoritmo greedy al
problema di localizzazione degli impianti
Per illustrare l'applicazione dell'algoritmo greedy al problema di localizzazione
degli impianti, consideriamo il seguente scenario semplificato:
Dati:
- Siti candidati: A, B
- Clienti: 1, 2, 3,4
- Costo di trasporto da un sito candidato a un cliente:
Fa=4 4

2 1

1 A C
5
4

7
2
2 4 D
6
B
Fb=3

L'obiettivo è selezionare un sito candidato per ciascun cliente in modo da


minimizzare il costo totale di trasporto.
1. Passaggi dell'algoritmo greedy :
- Provo A essendo l’unico attivo:
a. Costo di attivazione: 4;
b. Costo afferente: 2+4+1+5;
c. Costo finale: 4+12=16
- Provo B essendo l’unico attivo:
d. Costo di attivazione: 3;
e. Costo afferente: 7+6+2+4;
f. Costo finale: 3+19=22
2. Scelta greedy: Selezionare iterativamente il sito candidato che ha il costo
di trasporto minimo per il cliente corrente.
La scelta di Greedy è quella di attivare A. Nell’iterazione seguente
l’algoritmo verifica se conviene o meno attivare anche il sito B.

3. Provo A e B attivandoli entrambi:


a. Costo di attivazione: 4+3;
b. Costo afferente: 2+4+1+4;
c. Costo finale: 7+11=18
4. Aggiungere anche B non conviene, quindi l’algoritmo termina attivando
solo il sito A ad un costo minimo pari a 16. È importante notare
l’algoritmo potrebbe non garantire una soluzione ottimale globale.
9) Spiegare le principali caratteristiche della Ricerca Locali

La Ricerca Locale (Local Search) è un paradigma di ricerca e ottimizzazione in


cui l'obiettivo è trovare una soluzione ottima o soddisfacente attraverso una
sequenza di miglioramenti locali. Essa si concentra sull'esplorazione dello
spazio delle soluzioni, facendo riferimento solo alle soluzioni correnti e alle
loro vicinanze, senza considerare la ricerca di soluzioni globali.
Le principali caratteristiche della Ricerca Locale:
1. Soluzioni correnti: parte da una soluzione iniziale e cerca di migliorarla
iterativamente attraverso una serie di mosse locali. La soluzione corrente
viene aggiornata man mano che vengono applicate le mosse di
miglioramento.

2. Vicinanza delle soluzioni: si basa sulla definizione di una relazione di


"vicinanza" tra le soluzioni. Le mosse di miglioramento vengono applicate
alle soluzioni adiacenti per esplorare lo spazio delle soluzioni.

3. Funzione di valutazione: si utilizza una funzione di valutazione per


valutare la qualità delle soluzioni. Questa funzione fornisce un valore che
indica quanto una soluzione sia ottima rispetto all'obiettivo del
problema. La funzione di valutazione viene utilizzata per determinare se
una mossa locale migliora la soluzione corrente o meno.

4. Criterio di arresto: La Ricerca Locale può essere soggetta a un criterio di


arresto che determina quando terminare l'algoritmo. Il criterio di arresto
può essere basato su un numero massimo di iterazioni, un tempo limite,
un valore soglia per la qualità della soluzione o altri fattori specifici del
problema.

5. Ottimalità locale: si tende a convergere verso una soluzione ottimale


locale, che è la migliore soluzione raggiungibile nelle immediate
vicinanze della soluzione corrente. Non c'è garanzia che la soluzione
ottimale globale venga raggiunta utilizzando solo la Ricerca Locale ma la
possiamo combinare con altre tecniche per cercare di avvicinarci alla
soluzione ottimale globale.

6. Adattabilità: La Ricerca Locale è un paradigma flessibile che può essere


adattato a diversi problemi e contesti.
10) Spiegare le principali differenze tra algoritmo Greedy e Ricerca Locale
Le principali differenze tra l'algoritmo Greedy e la Ricerca Locale sono le
seguenti:
1. Approccio globale vs. approccio locale: L'algoritmo Greedy è un
approccio basato sulla scelta della mossa che sembra essere la migliore
in ogni fase, senza considerare le possibili conseguenze a lungo termine.
D'altra parte, la Ricerca Locale si concentra sul miglioramento iterativo di
una soluzione corrente utilizzando mosse locali, esplorando solo le
soluzioni adiacenti.

2. Esplorazione dello spazio delle soluzioni: L'algoritmo Greedy può non


esplorare l'intero spazio delle soluzioni, ma si limita a selezionare la
mossa migliore in base alla situazione corrente. D'altra parte, la Ricerca
Locale esplora solo le soluzioni vicine alla soluzione corrente, applicando
mosse locali per migliorare la soluzione corrente. Non esplora
necessariamente tutto lo spazio delle soluzioni a meno di integrazioni di
tecniche di ottimizzazione.

3. Funzione di valutazione: Entrambi gli approcci utilizzano una funzione di


valutazione per valutare la qualità delle soluzioni. Tuttavia, nella Ricerca
Locale, la funzione di valutazione viene utilizzata principalmente per
determinare se una mossa locale migliora o peggiora la soluzione
corrente. Nell'algoritmo Greedy, la funzione di valutazione può essere
utilizzata per selezionare la mossa migliore in base al criterio di
valutazione scelto.

4. Adattabilità: Entrambi gli approcci sono adattabili a diversi problemi e


contesti. Tuttavia, la Ricerca Locale offre maggiore flessibilità nel
personalizzare le mosse di miglioramento, la definizione di vicinanza
delle soluzioni e la funzione di valutazione per affrontare le specifiche
caratteristiche e vincoli del problema in questione.

In sintesi, l'algoritmo Greedy si concentra sulla scelta locale ottimale in ogni


fase senza considerare le conseguenze globali, mentre la Ricerca Locale si
concentra sull'iterativo miglioramento locale della soluzione corrente,
esplorando solo le soluzioni vicine.

11) Spiegare le principali caratteristiche dell'algoritmo Greedy


L'algoritmo Greedy è un approccio di risoluzione dei problemi che fa scelte
localmente ottimali in ogni passo, senza preoccuparsi di ottenerle globalmente
ottimali. Questo significa che l'algoritmo prende la decisione che sembra
essere la migliore al momento, sperando che porterà a una soluzione globale
ottimale. Di seguito sono elencate le principali caratteristiche dell'algoritmo
Greedy:
1. Scelta localmente ottimale: L'algoritmo Greedy fa scelte basate solo sulle
informazioni disponibili nel punto corrente, senza considerare l'intero
problema. In ogni passo, seleziona l'opzione che sembra essere la
migliore tra quelle disponibili in quel momento.

2. Non considera le conseguenze future: L'algoritmo Greedy non valuta le


conseguenze delle sue scelte future a causa della sua natura basata su
scelte localmente ottimali, portando a soluzioni sub-ottimali globali.

3. Velocità di esecuzione: Poiché fa scelte localmente ottimali, può


raggiungere una soluzione accettabile in tempi più brevi rispetto ad altri
approcci di risoluzione.

4. Semplicità: L'algoritmo Greedy è relativamente semplice da


implementare poiché non richiede la gestione di complessi insiemi di
soluzioni o la valutazione di tutte le combinazioni possibili. Di solito,
richiede solo un criterio di selezione per determinare la scelta ottima in
ogni passo.

5. Può essere utilizzato come approccio approssimativo: Nonostante il fatto


che l'algoritmo Greedy non garantisca la soluzione ottima, può essere
utilizzato come approccio approssimativo per ottenere una soluzione
ragionevolmente buona in tempi rapidi. In alcuni casi, l'algoritmo Greedy
può fornire soluzioni accettabili anche se non ottimali.

Le caratteristiche dell'algoritmo Greedy lo rendono adatto per problemi in cui


una scelta localmente ottimale può portare a una soluzione globalmente
accettabile.

12) Spiegare le principali differenze tra la formulazione del problema di


Localizzazione degli Impianti nel caso capacitato e quello non
capacitato
La formulazione del problema di Localizzazione degli Impianti può variare a
seconda che il problema sia formulato come un problema di localizzazione
capacitato o non capacitato. Ecco le principali differenze tra le due
formulazioni:
1. Capacità degli impianti: Nel caso capacitato, gli impianti hanno una
capacità limitata. Nel caso non capacitato, gli impianti non hanno
restrizioni di capacità.

2. Assegnazione dei clienti: Nel caso capacitato, è necessario bilanciare


considerare l'assegnazione dei clienti tra impianti in modo tale che la
capacità di ogni impianto non venga superata e si ottimizzi sulla capacità
disponibile dell’impianto. Nel caso non capacitato, non ci sono restrizioni
sull'assegnazione e ogni cliente può essere assegnato a qualsiasi
impianto senza considerare limiti di capacità.

3. Complessità del problema: Il problema di localizzazione degli impianti


capacitato è generalmente considerato più complesso rispetto a quello
non capacitato a causa dell'introduzione delle restrizioni di capacità.

4. Obiettivi di ottimizzazione: Nel caso capacitato, oltre a minimizzare i costi


di trasporto o il tempo di percorrenza, è necessario considerare anche
l'ottimizzazione dell'utilizzo delle capacità degli impianti. Nel caso non
capacitato, l'obiettivo principale potrebbe essere semplicemente
minimizzare i costi di trasporto o ottimizzare la distanza complessiva tra
gli impianti e i clienti senza considerare le restrizioni di capacità.

In conclusione, la principale differenza tra la formulazione del problema di


Localizzazione degli Impianti capacitato e non capacitato risiede nella presenza
o assenza di restrizioni di capacità degli impianti.

13) Definire la formulazione del problema di Localizzazione degli Impianti


nel caso capacitato

La formulazione del problema di Localizzazione degli Impianti nel caso


capacitato prevede la ricerca delle posizioni ottimali per un insieme di impianti
al fine di soddisfare la domanda di un insieme di clienti, tenendo conto delle
restrizioni di capacità degli impianti. La formulazione del problema può variare
leggermente a seconda del contesto specifico, ma di seguito viene fornita una
definizione generale del problema:
1. Raccolta di dati: si parte con il raccogliere un insieme di dati come siti
candidati, clienti, costi di trasporto o distanza associata alla coppia
cliente-impianto, la capacità massima dell’impianto.
2. Obiettivo da ottenere: essi possono variare a seconda del contesto
specifico. Ad esempio: trovare la posizione ottimale dell’impianto così da
minimizzare il costo totale di trasporto o distanza percorsa.
3. Vincoli:
a. Vincoli di capacità: L'assegnazione dei clienti a ciascun impianto
deve rispettare la capacità massima di quell'impianto.
b. Vincoli di assegnazione: Ogni cliente deve essere assegnato a un
solo impianto.

14) Illustrare le principali differenze tra il problema di Localizzazione degli


Impianti nella versione non capacitata e versione capacitata
Il problema di Localizzazione degli Impianti può essere formulato in due
versioni: la versione non capacitata e la versione capacitata. Ecco le principali
differenze tra le due versioni:
1. Capacità degli impianti:
a. Versione non capacitata: gli impianti non hanno restrizioni di
capacità e non hanno limite sulle quantità di risorse disponibili.
b. Versione capacitata: In questa versione, gli impianti hanno una
capacità limitata e dispone di una quantità limitata di risorse.
2. Assegnazione dei clienti:
a. Versione non capacitata: non ci sono restrizioni sull'assegnazione
dei clienti agli impianti senza considerare i limiti.
b. Versione capacitata: l'assegnazione dei clienti agli impianti deve
tener conto delle restrizioni di capacità bilanciandola.
3. Complessità del problema:
a. Versione non capacitata: generalmente è considerata più semplice
in termini di complessità computazionale, poiché non ci sono
restrizioni di capacità da considerare e l'ottimizzazione si concentra
principalmente sulla scelta delle posizioni degli impianti per
minimizzare i costi di trasporto o la distanza complessiva.
b. Versione capacitata: è più complessa. La gestione delle capacità
richiede una pianificazione più accurata e un'ottimizzazione delle
assegnazioni dei clienti per massimizzare l'utilizzo delle risorse
disponibili. Ciò può comportare una complessità computazionale
maggiore nel trovare una soluzione ottimale.
4. Obiettivi di ottimizzazione:
a. Versione non capacitata: l'obiettivo principale è solitamente
minimizzare i costi di trasporto o la distanza complessiva tra gli
impianti e i clienti.
b. Versione capacitata: oltre a minimizzare i costi di trasporto o la
distanza, è necessario tenere conto dell'ottimizzazione dell'utilizzo
delle capacità degli impianti

In sintesi, le principali differenze tra la versione non capacitata e la versione


capacitata del problema di Localizzazione degli Impianti riguardano la presenza
o l'assenza di restrizioni di capacità degli impianti, l'assegnazione dei clienti agli
impianti, la complessità del problema e gli obiettivi di ottimizzazione.
15) Spiegare come definire i vincoli del problema di localizzazione degli
impianti usando un Foglio MS Excel
Per definire i vincoli del problema di localizzazione all’interno di MS Excel
seguiamo i seguenti passi:
1. Primo vincolo: ogni cliente “i” deve essere servito da esattamente un
impianto V. Effettueremo la somma delle variabili indicati dal cliente “i”
indipendentemente dal sito che fornisce il servizio e questa somma la si
porrà uguale a 1. 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.
2. Secondo vincolo: un cliente non può essere servito da un sito se in quel
sito non è attivo l’impianto. Si crea una tabella per i vincoli di afferenza
dove confluiranno 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). Si definiranno delle
celle in cui memorizzare tale differenza (Yij-Xj) delle variabili che
costituisce il membro a sinistra della disuguaglianza.
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.

16) 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;
- le variabili dei siti candidati (che mi dicono se il sito è attivo o meno)
- i costi di afferenza
- le variabili che mi dicono se un cliente è servito o meno da un sito
candidato
possiamo calcolare i costi di afferenza moltiplicandoli con l’elemento della
tabella delle variabili che indica se il cliente è servito da quel sito o no e poi
sommiamo tutti i contributi.
Alla fine, si dovranno sommare i costi di afferenza e quelli di attivazione e
registrarli in una nuova cella che corrisponderà al costo finale.

17) Dati due problemi di PL, definire l'equivalenza tra i due problemi
Per definire l'equivalenza tra due problemi di Programmazione Lineare (PL), è
necessario considerare due aspetti principali: la formulazione del problema e la
soluzione ottimale.
1. Formulazione del problema: le formulazioni devono essere tali che i
problemi siano inammissibili (non vuoti), illimitati, abbiano la stessa
regione ammissibile e funzione obiettivo la stessa funzione obiettivo che
differisce per una costante.
2. Soluzione ottimale: ammettono entrambe soluzioni ottime finite ed
esistono due trasformazioni tali che: per ogni soluzione ottima in P1 sia
ottima in P2 e viceversa. Ciò significa che entrambi i problemi devono
raggiungere lo stesso valore ottimo per la funzione obiettivo, e le variabili
devono assumere gli stessi valori ottimali.

18) Descrivere quali sono le principali differenze tra la Programmazione


Lineare Intera e la Programmazione Lineare {0,1}

La PL {0,1} è una sottoclasse specifica di problemi di PLI. Le principali differenze


sono:
1. Sulle variabili: Nella PLI, le variabili possono assumere solo valori interi.
Nella PL {0,1} le variabili possono assumere solo valori. Quindi, mentre
nella PLI si ha flessibilità nella scelta dei valori delle variabili tra gli interi,
nella PL {0,1} le variabili sono limitate a due opzioni binarie.
2. Sulla funzione obiettivo: Nella PLI la funzione obiettivo possono essere
presenti sia coefficienti interi che frazionari. Nella PL {0,1} i coefficienti
devono essere limitati a valori binari. Ciò implica che nella PL {0,1}
l'obiettivo è spesso formulato come una funzione di conteggio che conta
le variabili che assumono valore 1.
3. Sui vincoli: Nella PLI i vincoli includono sia equazioni che disuguaglianze.
Inoltre, i coefficienti dei vincoli possono essere interi o frazionari. Nella
PL {0,1} variabili sono limitate a valori binari (0 o 1). Ciò implica che i
vincoli nella PL {0,1} spesso coinvolgono condizioni di "selezione" o
"esclusione" delle variabili binarie.
4. Sulla complessità computazionale: la PL {0,1} è una forma più restrittiva e
specifica di PLI, il che significa che i problemi di PL {0,1} possono essere
risolti in modo più efficiente rispetto alla PLI generale.
19) Definire il processo di formulazione di un problema di Programmazione
Lineare Intera
Il processo di formulazione di un problema di Programmazione Lineare Intera
(PLI) comprende diversi passaggi per identificare e definire correttamente le
variabili, la funzione obiettivo e i vincoli del problema che definiscano la
regione ammissibile. L’obiettivo è di trovare un problema di ottimizzazione
nella seguente forma:

{
t
min c x
Ax ≤ b Di seguito sono forniti i passaggi chiave per formulare un problema di
n
x∈Z
PLI:
1. Identificazione delle variabili: Identifica le variabili intere che
rappresentano le quantità o le decisioni da ottimizzare nel problema.

2. Definizione della funzione obiettivo: Stabilisci l'obiettivo del problema e


traducilo in una funzione obiettivo lineare che deve essere minimizzata o
massimizzata. La funzione obiettivo deve coinvolgere le variabili
identificate nel passaggio precedente e può includere coefficienti interi o
frazionari.

3. Formulazione dei vincoli: Identifica i vincoli che limitano le variabili del


problema. I vincoli devono essere espressi come equazioni o
disuguaglianze lineari e possono coinvolgere le variabili e i coefficienti
interi o frazionari.

4. Specificazione del dominio delle variabili: Definisci i limiti o i range validi


per le variabili.

5. Revisione e validazione della formulazione: Verifica che tutti i requisiti, i


vincoli e l'obiettivo siano correttamente rappresentati e che la
formulazione sia consistente.

6. Risoluzione del problema;

7. Interpretazione dei risultati: Analizza i risultati ottenuti e interpreta la


soluzione ottimale nel contesto del problema originale.

20) Dare la definizione di lower bound di un problema di PL01

Il lower bound (limite inferiore) di un problema di Programmazione Lineare


{0,1} rappresenta il valore minimo che può essere ottenuto dalla funzione
obiettivo del problema. È il valore inferiore teorico che la soluzione ottimale
del problema non può superare.
Per determinare il lower bound di un problema di PL {0,1}, è necessario
esaminare le caratteristiche del problema, compresi i coefficienti della funzione
obiettivo, i vincoli e le proprietà strutturali.
Consideriamo un generico problema di PL01 con l’insieme delle soluzioni
ammissibili S ⊆ {0,1}^n e vettore dei costi elementari c ϵ Rn
min c^T x
xϵS
Indichiamo un x ̅ϵ S una qualsiasi soluzione ammissibile del problema PL01 e
con z̅ , tale che z=̅ c^T x ̅ ϵ R, il valore della soluzione ammissibile x ̅ ϵ S.
Si supponga di conoscere un qualsiasi valore reale LB che sia un limite inferiore
del problema PL01 tale che LB<= min{c^Tx : x ϵ S }.
Dal momento che LB è un limite inferiore del problema (PL01), allora per ogni
soluzione ammissibile x ̅ϵ S risulta LB <= z ̅ = c^T x ̅
Tanto più il valore z ̅ è vicino al valore LB tanto più “buona” è la soluzione x .̅
Anche nel caso in cui non si conosca il valore ottimo z* del problema, la
conoscenza del limite inferiore LB ci permette di stabilire quanto sia “buona”
una soluzione x ̅ϵ S.
La differenza gap = z ̅ – LB ci permette di capire quanto la soluzione ammissibile
x ̅ sia lontana dalla soluzione ottima x* del problema PL01 anche nel caso in cui
né la soluzione ottima x* né il valore z* siano noti.
È importante notare che il lower bound di un problema di PL {0,1} può essere
utile per valutare l'efficienza di algoritmi di risoluzione, confrontare diverse
soluzioni o stabilire un limite inferiore per il valore ottimo del problema.
Tuttavia, il lower bound non garantisce che la soluzione ottimale sia
effettivamente raggiungibile e potrebbe esserci un divario tra il lower bound e
il valore ottimo effettivo del problema.

21) 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; tale formulazione
ottima è costituita dal poliedro P* contenuto in tutti i poliedri che contengono
la regione ammissibile del problema intero.
Esso corrisponde al più piccolo dominio della formulazione lineare che così mi
porta al valore ottimo della funzione obiettivo.
La migliore formulazione 𝑃∗ di un problema di PL01 è il più piccolo insieme
convesso contenente le soluzioni ammissibili 𝑆⊆{0,1}^𝑛 del problema di PL01,
vale a dire l’involucro convesso delle soluzioni in 𝑆 : 𝑃∗=𝑐onv(𝑆).
P* è contenuto in tutte le formulazioni lineari del problema di PL01.
Dal momento che ogni vertice di P* è una soluzione in S, se ottimizziamo la
funzione obiettivo del problema di PL01 abbiamo l’equivalenza tra i due
problemi:
min cTx min cTx
xϵS x ϵ P*
quindi possiamo anche riscrivere il problema considerando la soluzione ottima.

22) Definire un criterio di ordinamento delle formulazioni di un problema di


PL01

Dato un problema di PL01 esistono diverse formulazioni lineari per il problema.


A ogni formulazione lineare corrisponde un diverso rilassamento lineare e un
diverso lower bound.
Nel criterio di ordinamento, date due formulazioni lineari 𝑃1 e 𝑃2 di un
problema di PL01, confrontando i domini dei diversi rilassamenti, una
formulazione è tanto migliore quanto è più alto del lower bound nel dominio
incluso in maniera che il gap sia il più piccolo possibile; allora, possiamo dire
che 𝑃1 è migliore di 𝑃2 se e solo se 𝑃1⊂𝑃2.
La definizione è giustificata dal fatto che se 𝑃1⊂𝑃2, allora la soluzione del
rilassamento corrispondente e P1 approssima meglio il valore dell’ottimo
intero. Sulla base di questa definizione è possibile affermare che dato un
problema di PLI può esistere una formulazione “ottima”; tale formulazione è
costituita dal poliedro contenuto in tutti i poliedri che contengono la regione
ammissibile del problema intero.

23) Dare la definizione di formulazione lineare di un problema di PL01

Si definisce formulazione lineare di un problema di PL01 con insieme delle


soluzioni ammissibili 𝑆⊆{0,1}𝑛 e vettore dei costi elementari c∈ℝ𝑛 il poliedro
𝑃={𝑥∈ℝ𝑛:𝐴𝑥≤𝑏} se e solo se 𝑆=𝑃∩{0,1}𝑛
Data una formulazione lineare di un problema di PL01, la sua intersezione con
l’𝑛–Cubo Unitario coincide con l’insieme delle soluzioni ammissibili del
problema.
Le proprietà della formulazione lineare sono:
1. Una formulazione lineare P del problema consente sempre di separare i
vettori a componenti {0,1} corrispondenti a soluzioni ammissibili del
problema dai vettori a componenti {0,1} che non appartengono a S.

2. Una formulazione lineare esiste sempre ed è data dall’insieme di tutti


vettori esprimibili come combinazione convessa dei punti in S.

3. Data una formulazione lineare P del problema, possiamo scrivere


l’equivalenza tra i problemi di ottimizzazione.

24) Descrivere le possibili strategie di separazione per il metodo branch and


bound per la soluzione di un problema di PL01

Dato un sotto problema (Si,c), la strategia di separazione determina come


partizionare l’insieme delle soluzioni ammissibili in due o più sotto insiemi,
generando due o più sotto problemi, qualora non si sia riusciti a chiudere il
problema (Si, c).
Supponiamo che applicando una delle possibili strategie di soluzione venga
determinato un lower bound (LBi) per il problema (Si,c) in corrispondenza di
una soluzione xR del rilassamento e che sia nota una soluzione ammissibile x ̅ ϵ
S del problema con valore UB = z ̅ = cT x ̅ .
- Se LBi > UB allora possiamo chiudere il problema perché nessuna
soluzione ammissibile in Si avrà valore migliore di x ̅ ϵ S. Il problema
(Si,c) viene rimosso senza essere stato risolto.
- Se LBi <= UB allora c’è la possibilità che la soluzione ottima in Si avrà
valore migliore di x ̅ ϵ S, in tal caso:
o Se xR ϵ Si allora la strategia di soluzione ha prodotto la soluzione
ottima. Tutte le componenti della soluzione xR sono in {0,1}.
In tal caso, se LBi < UB allora abbiamo trovato una soluzione
ammissibile migliore di x ̅ϵS, quindi poniamo x ̅= xR.
Il sotto problema (Si,c) viene rimosso perché è stato risolto.
o Altrimenti, dobbiamo separare il sotto problema (Si,c) di cui
ammettiamo di conoscere una formulazione Pi:
 Dal momento che xR ∉ Si almeno una componente di xR
non è a componenti in {0,1} bensì in (0,1);
 Si scelga una componente xRn t.c. 0 < xR n <1
 Si definiscano i due poliedri P1i e P2i
 P1i = Pi ∩ {xn = 0} = {x € Pi:xn = 0}
 P 2 i = Pi ∩ {xn = 1} = {x € Pi:xn = 1}
 Ogni soluzione ammissibile in Si appartiene a P1i oppure
P2i ma non a entrambi
 S1i = P1i ∩ {0,1}n e S2i = P2i ∩{0,1}n rappresentano una
partizione di Si in quanto
 S1i U S2i = S
 S1i ∩ S2i = Ø
Il sotto problema (Si,c) viene rimosso senza essere stato
risolto e viene sostituito dai sotto problemi (S1 i,c) e (S2 i,c).

25) Descrivere la metodologia branch and bound per la soluzione di un


problema di PL01

Dato un generico problema di programmazione lineare {0,1} di minimizzazione


caratterizzato da un insieme delle soluzioni ammissibili S ⊆ {0,1}n e da un
vettore di costo x € Rn:
min cTx
xϵS
Un metodo di soluzione è il metodo branch and bound che:

● Esplora in maniera implicita (parziale) l’insieme S;


● Valuta la funzione obiettivo su un sottoinsieme piccolo di S;

Il problema viene decomposto ricorsivamente in una partizione di problemi tali


che l’insieme delle soluzioni dei sotto problemi generati sia più piccolo di S.
Ciascuno dei sotto problemi generati viene risolto in maniera approssimata,
determinando opportuni limiti inferiori che permettano di volta in volta di
decidere se il sotto problema può essere eliminato senza essere risolto oppure
se va decomposto ulteriormente.
I sotto problemi nei quali il problema di PL01 viene decomposto vengono
gestiti tramite una lista L dei sotto problemi aperti.
L’efficienza del metodo branch and bound dipende dalla qualità delle strategie
che si intendono adottare e che ne caratterizzano la struttura:

1. Strategia di soluzione scelta per risolvere (approssimativamente) i sotto


problemi di PL01 presenti nella lista L dei sotto problemi aperti;

2. Strategia di separazione scelta per partizionare un sotto problema


qualora la strategia di soluzione non permetta di chiudere il problema
(rimuovendolo dalla lista L dei sotto problemi aperti);

3. Strategia di selezione scelta per decidere quale sotto problema


considerare per primo nella lista L dei sotto problemi aperti.

La metodologia Branch and Bound sfrutta l'esplorazione dell'albero di ricerca e


l'utilizzo di bound per ridurre lo spazio delle soluzioni da esaminare,
aumentando l'efficienza dell'algoritmo nel trovare la soluzione ottima del
problema di PL{0,1}.
26) Descrivere una strategia di soluzione esatta per il problema di knapsack
binario

Definiamo le strategie caratterizzanti il metodo branch and bound per il


problema di knapsack binario con n variabili di decisione in {0,1}.
max cTx
aTx <= b
x ϵ {0,1}n
La strategia di soluzione che andremmo a esaminare è quella del rilassamento
lineare
max cTx
(RL) aTx<=b
0n <= x <=1n

1. Ordiniamo gli indici delle variabili in ordine decrescente: ci1/ai1>=…


>=cin/ain
2. Determiniamo l’indice in ϵ{1,…,n} tale che:
⅀ aij >= b da j=1 a h-1
⅀aij < b da j=1 a h
3. Poniamo:
a. xik* = 1 se ik<ih

b. xik* = 1/aij (b - ⅀aij) se ik = ih

c. xik* = 0 se ik>ih

4. Calcoliamo il limite superiore


a. UB = cTx* = ⅀ci xi*

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

Dato un generico problema di Programmazione Lineare PL01 di minimizzazione


caratterizzato da n variabili decisionali in {0,1}, S⊆{0,1}n , e da un vincolo
lineare di disuguaglianza un metodo di soluzione è il metodo branch and
bound.
Il problema viene decomposto ricorsivamente in una partizione di problemi tali
che l’insieme delle soluzioni dei sotto problemi generati sia più piccolo di S.
Ciascuno dei sotto problemi generati viene risolto in maniera approssimata,
determinando opportuni limiti inferiori che permettano di volta in volta di
decidere se il sotto problema può essere eliminato senza essere risolto oppure
se va decomposto ulteriormente.
Di seguito sono elencati i passi principali della strategia di soluzione:
1. Inizializzazione: Si parte con la formulazione del problema originale che
include la definizione delle variabili binarie, la funzione obiettivo e il
vincolo lineare di disuguaglianza.
2. Rilassamento lineare: Si esegue il rilassamento delle variabili binarie del
problema originale, ottenendo una versione lineare continua del
problema. Si risolve il rilassamento lineare ottenendo la soluzione ottima
del rilassamento.
3. Controllo di fattibilità: Si verifica se la soluzione ottima del rilassamento
lineare soddisfa il vincolo lineare di disuguaglianza. Se la soluzione è
fattibile (cioè soddisfa il vincolo), si procede al passo 5. Altrimenti, si
passa al passo successivo.
4. Branching: Si seleziona una variabile binaria che ha un valore frazionario
nella soluzione ottima del rilassamento lineare. Si crea una copia del
problema originale, introducendo due nuovi sotto-problemi: uno in cui la
variabile selezionata è fissata a 0 e l'altro in cui è fissata a 1. Si procede
con i due sotto-problemi in modo indipendente.
5. Bound: Si calcola un bound per ogni sotto-problema generato. Il bound
rappresenta un limite superiore del valore ottimo del problema
all'interno del sotto-problema. Se il bound è inferiore al valore ottimo
corrente, il sotto-problema può essere eliminato perché non può
generare una soluzione migliore.

6. Esplorazione dell'albero: Si seleziona uno dei sotto-problemi attivi con il


bound più alto e si ripete il processo dai passi 2 al 5 fino a quando non si
ottiene una soluzione ottima o non si termina l'esplorazione dell'intero
albero.
7. Terminazione: L'algoritmo termina quando tutti i sotto-problemi sono
stati esplorati o quando si è raggiunta una soluzione ottima.

Durante l'esecuzione dell'algoritmo, viene mantenuto un valore ottimo


corrente, che viene aggiornato ogni volta che una soluzione ottima migliore
viene trovata. Questo valore viene utilizzato come bound per i sotto-problemi
successivi, consentendo di eliminare i sotto-problemi che non possono
migliorare la soluzione corrente.

28) Descrivere i problemi di knapsack con particolare attenzione al


problema di knapsack binario

Il problema dello zaino, o knapsack problem, è un problema di ottimizzazione


combinatoria che coinvolge la selezione di oggetti da inserire in uno zaino
limitato in base al loro valore e al loro peso. L'obiettivo è massimizzare il valore
totale degli oggetti selezionati rispettando la capacità massima dello zaino.
Si considerino n potenziali progetti sui quali investire. Ciascun progetto i è
caratterizzato da un costo ai e da un ritorno ci. Ciascun progetto può essere
realizzato oppure no, ma non può essere realizzato parzialmente. Si desidera
massimizzare il ritorno complessivo dei progetti realizzati tenendo conto che il
budget disponibile per la realizzazione di tutti i progetti è b.
Definiamo n variabili di decisione in {0,1} che rappresentino l’evento “realizzare
un progetto”:
- xi = {1 se il progetto i viene realizzato
0 altrimenti
Il vincolo logico sul budget disponibile può essere espresso calcolando il costo
di realizzazione come somma dei costi dei singoli progetti moltiplicati per la
variabile di decisione relativa al progetto:
- a1x1 + a2x2 + …. + anxn <= b.
La funzione obiettivo può essere analogamente espressa calcolando il beneficio
da massimizzare come la somma dei ritorni dei singoli progetti moltiplicati per
la variabile di decisione relativa al progetto:
- max c1x1 + c2x2 + …. + cnxn
In forma matriciale, la formulazione naturale del problema di knapsack binario
è la seguente:
max cTx
a Tx <= b
x ϵ {0,1}n

Il problema dello zaino binario è noto per essere un problema NP-completo, il


che significa che non esiste un algoritmo efficiente per risolverlo in modo
esatto in tutti i casi. Tuttavia, possono essere utilizzate diverse strategie di
risoluzione, come l'algoritmo di branch and bound, per ottenere soluzioni
approssimate o soluzioni esatte in casi specifici.

29) Dimostrare che una metrica norma è una metrica

Per dimostrare che una metrica norma è effettivamente una metrica, è


necessario verificare che soddisfi le seguenti proprietà:

1. Simmetria: La distanza tra due punti non deve dipendere dall'ordine in


cui vengono considerati. Formalmente, per ogni coppia di punti x e y, la
norma d(x, y) deve essere uguale alla norma:
d(y, x): d(x, y) = ||x-y|| = ||-1(x-y)||= |-1|||y-x||=||y-x||= d(y, x).
2. Disuguaglianza triangolare: La distanza tra due punti più la distanza tra
un terzo punto non può essere maggiore della distanza diretta tra i primi
due punti. Formalmente, per ogni tripletta di punti x, y e z, la norma d(x,
y) più la norma d(y, z) deve essere maggiore o uguale alla norma:

d(x, z): d(x, y) = || x-y|| = ||x-y+z-z||=||(x-z)+(z-y)|| <=||x-z||+||z-y||


= d(x,z)+ d(y, z)

3. Identità dei punti: La distanza tra un punto e se stesso deve essere zero.
Formalmente, per ogni punto x, la norma d(x, x) deve essere uguale a
zero: d(x, x) = 0.

30) 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 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.
Il problema di clustering dei dati è un problema di analisi dei dati e di
apprendimento automatico non supervisionato di estrazione delle informazioni
da un sistema.
Gli oggetti saranno classificati mediante una qualche misura di similarità e il
concetto di separazione avverrà sulla base della dissimilarità tra due elementi:
due elementi dello stesso cluster saranno “distanti” meno di due elementi
qualsiasi appartenenti a cluster
Formalmente, il problema di clustering può essere definito come segue:
Dati:
- Un insieme di n elementi da clusterizzare, indicati da x₁, x₂, ..., xₙ;
- Una funzione di similarità o dissimilarità tra coppie di elementi, che misura la
somiglianza o la differenza tra gli elementi.

Variabili decisionali:
- Un insieme di k cluster, indicati da C₁, C₂, ..., Cₖ.

Obiettivo:
- Assegnare ogni elemento xᵢ a uno dei cluster Cⱼ in modo da minimizzare la
similarità o dissimilarità media all'interno dei cluster e massimizzare la
similarità o dissimilarità media tra i cluster.

31) Illustrare la procedura generale di soluzione di un problema di


clustering dei dati

La procedura generale per la soluzione di un problema di clustering dei dati


deve avere a disposizione:
- Dati da organizzare
- Specifici algoritmi di soluzione
Per risolvere un problema di clustering si dovranno seguire diversi passi:
- Raccolta dei dati: Raccogliere l'insieme di dati che si desidera
clusterizzare. 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 e/o un’estrazione delle caratteristiche.
- Preprocessing dei dati: Prima di applicare l'algoritmo di clustering, è
spesso necessario eseguire operazioni di preprocessing sui dati. Bisogna
definire una misura di similarità sulle istanze in genere misurato tramite
una funzione di distanza.
- Selezione e applicare dell'algoritmo di clustering: Scegliere l'algoritmo di
clustering più adatto per il problema specifico. 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.
- Interpretazione dei cluster: 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 baricentro.
- Valutazione dei risultati: Valutare la qualità dei risultati del clustering
mediante uno studio sull’andamento 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, un esame interno e controllo relativo
- Iterazione e ottimizzazione: Se i risultati del clustering non sono
soddisfacenti o non corrispondono alle aspettative, è possibile ripetere i
passaggi precedenti apportando modifiche alla configurazione
dell'algoritmo, ai parametri o al preprocessing dei dati. È un processo
iterativo per migliorare la qualità del clustering.

Potrebbero piacerti anche