ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I
Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si vuole determinare un sottoinsieme M degli n oggetti in modo che: a) la somma dei pesi degli oggetti in M sia non inferiore ad un valore prefissato a; b) la cardinalita` di M sia non inferiore ad un valore prefissato b; c) la somma dei costi degli oggetti in M sia minima. 1)- Dimostrare che il problema e` NP-difficile. 2)- Definire un modello di Programmazione Lineare Intera per il problema allo ammissibile per i seguenti problemi: 3.1) problema originale; 3.2) problema con vincolo a) imposto e vincolo b) sostituito dal vincolo che impone che la cardinalita` di M deve essere uguale a b; 3.3) problema con vincolo a) imposto e vincolo b) sostituito dal vincolo che impone che la cardinalita` di M non deve superare b; 3.4) problema con vincolo b) imposto e vincolo a) sostituito dal vincolo che impone che la somma dei pesi degli oggetti in M deve essere uguale ad a.
Esercizio 2 Date n operazioni ed m macchine, a ciascuna operazione j (j = 1,, n) sono associati un istante iniziale a j ed un istante finale b j. Ciascuna macchina e` in grado di eseguire in ogni istante al piu` una operazione e di lavorare complessivamente per un periodo di tempo minore o uguale ad un valore dato C. 1)- Dimostrare che il problema della determinazione di una soluzione ammissibile e` NP-difficile (si ricordi che il Partition Problem e` NP-difficile). 2)- Definire un modello di Programmazione Lineare Intera per il problema nel caso in cui si voglia minimizzare il numero di macchine utilizzate.
Esercizio 3 Da un deposito si devono servire m clienti. Tali clienti possono essere serviti utilizzando n viaggi diversi. In particolare, ciascun cliente i (i = 1,, m) puo` essere servito da un sottoinsieme V i di viaggi (con V i contenuto nell insieme {1, 2,, n}). Ciascun viaggio j (j = 1,, n) ha un costo c j ed un tempo di percorrenza t j (con c j e t j non negativi). Si vuole determinare un sottoinsieme S degli n viaggi in modo che: a) ciascun cliente sia servito da almeno un viaggio di S; b) la somma dei tempi di percorrenza dei viaggi di S sia non inferiore ad un valore prefissato d; c) la somma dei costi dei viaggi di S sia minima. 1)- Definire un modello di Programmazione Lineare Intera per il problema allo ammissibile. 4)- Come al punto 3) nel caso in cui nel vincolo b) si impone che la somma dei tempi di percorrenza dei viaggi di S sia uguale al valore prefissato d.
Esercizio 4 Sono dati m articoli ed n veicoli : ad ogni articolo j (j = 1,, m) e` associato un peso positivo p j ; ad ogni veicolo i (i = 1,, n) e` associata una capacita` positiva a i. Si supponga inoltre: m > n > 0. Si devono determinare gli articoli da caricare sui veicoli in modo che: a) la somma dei pesi degli articoli caricati su ciascun veicolo i sia non superiore alla capacita` a i ; b) ciascun articolo j sia caricato su non piu` di un veicolo; c) il numero globale degli articoli caricati sui veicoli sia inferiore ad un valore prefissato k; d) la somma dei pesi degli articoli caricati sui veicoli sia massima. 1)- Definire un modello di Programmazione Lineare Intera per il problema allo ammissibile per i seguenti problemi: 3.1) problema originale; 3.2) problema con non inferiore al posto di inferiore nel vincolo c); 3.3) problema con uguale al posto di inferiore nel vincolo c).
Esercizio 5 Sia dato un grafo orientato G = (V, A), con V = n e A = m. Ad ogni arco (i, j) di A e` associato un costo positivo c i,j. Si supponga inoltre che l insieme dei vertici V sia partizionato in K sottoinsiemi ( regioni ) R 1, R 2,..., R K, con R 1 = {1}. Si vuole determinare un circuito elementare di G (cioe` un circuito che passi al massimo una volta per ciascun vertice di G) che visiti almeno un vertice di ciascuna delle K regioni, in modo che la somma dei costi degli archi del circuito sia minima. 1)- Dimostrare che il problema e` NP-difficile. 2)- Definire un modello di Programmazione Lineare Intera per il problema allo 3)- Nell ipotesi che il grafo G sia completo e che la matrice dei costi (c i,j ) soddisfi la condizione di triangolarita` (cioe` si abbia: c i,k + c k,j <= c i,j per ogni tripletta (i, j, k) di vertici di V), si ridefinisca il modello di Programmazione Lineare Intera in modo da rendere i vincoli del modello piu` stringenti.
Esercizio 6 Sia dato un grafo orientato completo G = (V, A), con V = n. Ad ogni arco (i, j) di A e` associato un costo positivo c i,j (con c i,i = infinito per ogni vertice i). Ad ogni vertice i di V e` associato un premio positivo p i. Dato un vertice r, si vuole determinare un circuito elementare di G (cioe` un circuito che passi al massimo una volta per ciascun vertice di G) passante per r e tale che: a) la somma dei costi degli archi del circuito sia minima; b) la somma dei premi associati ai vertici del circuito sia non inferiore ad un valore prefissato a; c) il numero dei vertici del circuito aventi un premio minore di b sia non inferiore ad una percentuale d del numero dei vertici del circuito (con b e d valori noti, d compreso tra 0 e 1). 1)- Definire un modello di Programmazione Lineare Intera per il problema allo 2)- Dimostrare che il problema e` NP-difficile (si determinino almeno due problemi NP-difficili riducibili al problema allo studio). ammissibile. 4)- Definire la complessita` del problema nel caso in cui si abbia: c i,j = K per ogni arco (i, j) di G (con K valore prefissato).
Esercizio 7 Sono dati n lavori ed m macchine. Il costo per eseguire il lavoro j (j = 1,, n) sulla macchina i (i = 1,, m) e` uguale a c i,j, mentre il corrispondente tempo di lavorazione e` uguale a t i,j. Se la macchina i (i = 1,, m) viene utilizzata, si ha un costo uguale a b i (il costo e` nullo se la macchina i non viene utilizzata). I valori c i,j, t i,j e b i sono interi positivi. Si deve assegnare ciascun lavoro ad una ed una sola macchina, in modo che: a) il tempo globale di lavorazione su ciascuna macchina i (i = 1,, m) sia non superiore ad un valore prefissato a i (con a i positivo ed intero); b) il costo globale sia minimo. 1)- Definire la complessita` del problema della determinazione di una soluzione ammissibile per il problema allo 3)- Definire un modello di Programmazione Lineare Intera per il problema allo studio, minimizzando il numero dei vincoli. 4)- Definire ulteriori modelli di Programmazione Lineare Intera che, pur utilizzando un numero maggiore di vincoli, possano fornire lower bound (ottenuti con il rilassamento continuo) migliori di quelli ottenibili con il modello della domanda 3).
Esercizio 8 Sia dato un grafo orientato completo G = (V, A), con V = n. Ad ogni arco (i, j) di A sono associati un peso p i,j ed un tempo non negativo t i,j. Siano inoltre dati due sottoinsiemi di archi S e T disgiunti (con S e T contenuti in A). Si vuole determinare un circuito Hamiltoniano H di G tale che: a) la somma dei pesi degli archi di H sia massima; b) la somma dei tempi degli archi di H sia non superiore ad un valore prefissato d; c) il numero degli archi di H appartenenti al sottoinsieme S sia non inferiore al numero degli archi di H appartenenti al sottoinsieme T. 1)- Definire un modello di Programmazione Lineare Intera per il problema allo ammissibile per il problema allo 4)- Definire la complessita` del problema della determinazione di una soluzione ammissibile nel caso in cui il vincolo b) non sia imposto.
Esercizio 9 Sono dati n depositi ed m clienti. Ciascun cliente i (i = 1,, m) ha un potenziale profitto non negativo p i. Ciascun deposito j (j = 1,, n) ha un costo non negativo c j ed e` in grado di servire un sottoinsieme degli m clienti. In particolare, per ogni coppia [deposito j, cliente i] (con j = 1,, n e i = 1,, m) e` nota una quantita` a i,j, con a i,j = 1 se il deposito j e` in grado di servire il cliente i e a i,j = 0 in caso contrario. Per ogni sottoinsieme S dei depositi, il corrispondente profitto globale e` dato dalla differenza tra (la somma dei profitti dei clienti che possono essere serviti dai depositi di S) e (la somma dei costi dei depositi di S). Si vuole determinare un sottoinsieme S* degli n depositi in modo che: a) S* contenga al massimo d depositi (con d valore prefissato maggiore di 0 e minore o uguale ad n); b) il profitto globale di S* sia massimo; c) il costo totale dei depositi di S* sia non inferiore ad un valore prefissato non negativo b. 1)- Definire un modello di Programmazione Lineare Intera per il problema allo ammissibile. 4)- Definire la complessita` del problema della determinazione di una soluzione ammissibile nei casi in cui: 4.1) il sottoinsieme S* deve contenere esattamente d depositi; 4.2) il costo totale dei depositi del sottoinsieme S* sia uguale a b.
Esercizio 10 Sia dato un grafo orientato completo G = (V, A), con V = n. Ad ogni arco (i, j) di A e` associato un tempo non negativo t i,j (con t i,i = infinito per ogni vertice i di V) che soddisfa la condizione di triangolarita` (cioe` si abbia: c i,k + c k,j <= c i,j per ogni tripletta (i, j, k) di vertici di V). Ad ogni vertice i di V e` associato un profitto positivo a i. Dato un vertice h di V, si vuole determinare un circuito elementare di G (cioe` un circuito che passi al massimo una volta per ciascun vertice di G) passante per h e tale che: a) il numero degli archi del circuito sia non superiore ad un valore prefissato r (con r compreso tra 2 ed n, estremi compresi); b) la somma dei tempi degli archi del circuito sia non superiore ad un valore prefissato d; c) la somma dei profitti associati ai vertici del circuito sia massima. 1)- Definire un modello di Programmazione Lineare Intera (PLI) per il problema allo ammissibile per il problema allo 4)- Definire il modello di PLI per la variante del problema in cui la funzione obiettivo c) consista nel massimizzare la quantita`: alfa * (somma dei profitti associati ai vertici del circuito) beta * (tempo massimo degli archi del circuito) con alfa e beta valori prefissati non negativi.