problemi di assegnazione problemi di assegnazione

problemi di assegnazione
I problemi di assegnazione fanno parte dei problemi lineari
lineari.
I problemi di assegnazione (o problemi di assegnamento)
assegnamento sono quei
problemi di ricerca operativa in cui bisogna assegnare diverse attività in
maniera ottimale.
Il problema di assegnazione è considerato un problema combinatorio e
generalmente questi problemi vengono risolti grazie all’attribuzione di n
risorse ad n destinazioni di modo che ci sia una corrispondenza biunivoca
tra la n-esima risorsa e l’n-esima destinazione.
Ad esempio sono problemi si assegnazione:
-
-
La distribuzione di n lavori a n ditte, in modo che a ogni ditta ne sia
assegnato uno e uno soltanto
L’assegnazione di n operai o gruppi di operai a n lavori, in modo che
a ogni lavoro sia assegnato uno solo operario o un solo gruppo di
operai
L’assegnazione di n equipaggi a n voli
L’assegnazione di n autisti a n autocarri
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
15
Risorsa
Ai
Destinazione
Bk
R1
D1
R2
D2
R3
D3
tabella dei costi
O dei tempi detta matrice dell’efficienza.
dell’efficienza.
A1
A2
…
An
B1
C11
A21
…
Cn1
B2
C12
A22
…
Cn2
…
…
…
…
..
Bn
C1n
C2n
…
Cnn
Dove:
Ai indicano le risorse
Bk indicano le destinazioni
Cik indicano i costi (o i tempi)
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
16
spiegazione dei vincoli
Per l’impostazione del modello matematico si faccia riferimento ad un
indice booleano, il quale assumerà valore 0 in caso di non assegnazione e 1
in caso di assegnazione.
Il modello matematico di rappresentazione può essere così descritto dalla
seguente formula.
z = ∑i =1 ∑k =1 cik xik
i =n
k =n
da minimizzare
con i seguenti vincoli
∑ i = n xik = 1
 i =1
 k =n
∑ k =1 xik = 1

 xik ≥ 0
con i e k = 1,2,3,4, n
Si ha quindi la seguente tabella:
A1
A2
…
An
B1
X11
X21
…
Xn1
B2
X12
X22
…
Xn2
…
…
…
…
..
Bn
X1n
X2n
…
Xnn
Per questo particolare caso di programmazione lineare, si utilizza il
Metodo Ungherese per risolvere il problema.
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
17
definizione del metono ungherese
Il teorema sul quale si basa il metodo Ungherese è il seguente.
“ Se nella matrice dell’efficienza si sottrae uno stesso numero da tutti gli
elementi di una riga o di una colonna, l’assegnazione ottima per la prima
matrice è ottima anche per la seconda “.
risoluzione di un problema
Dato un problema e una situazione iniziale:
-
in ogni riga si sottrae il valore minore presente nella stessa
in ogni colonna si sottrae l’elemento minore
in modo da avere almeno uno zero per ogni riga e per ogni colonna.
A questo punto si cerca nella matrice ottenuta una soluzione ottima:
- si cerchia nella riga con minor numero di zeri uno zero
- si barrano gli altri zeri presenti nella riga
- si barrano anche gli zeri presenti nella colonna dello 0 cerchiato
- si ripete il procedimento per le altre righe e colonne
Se vi sono uno zero per ogni riga e per ogni colonna la soluzione trovata
fa parte delle soluzioni ottime.
A questo punto si può calcolare il costo, mediante somma di tutti i
numeri che si erano sottratti.
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
18
esempio
Si devono assegnare 4 lavori (A1, A2, A3, A4) a 4 imprese (B1, B2, B3, B4).
La matrice dei costi, espressi in unità convenzionali è la seguente:
A1
A2
A3
A4
B1
3
2
3
3
B2
5
3
4
2
B3
6
6
2
4
B4
4
2
5
2
Determinare l’assegnazione di costo complessivo minimo.
Dette Xik le variabili, il problema ammette il seguente modello matematico:
Z = 3X11 + 5X12 + 6X13 + 4X14 + 2X21 + 3X22 + 6X23 + 2X24 + 3X31 + 4X32 + 2X33
+ 5X34 + 3X41 + 2X42 + 4X43 + 2X44 da minimizzare
Con vincoli:
∑i =n xik = 1
 i =1
 k =n
∑k =1 xik = 1

 xik = 0
oppure
(i = 1, 2, 3, 4)
( k = 1, 2, 3, 4)
xik = 1
(i, k = 1, 2, 3, 4)
Si utilizza il Metodo Ungherese e si ottiene:
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
19
L’assegnazione ottima risulta quindi A1B1, A2B4, A3B3, A4B2 con costo
pari a Z= 3+2+2+2 = 9.
Se non si otteneva un’assegnazione ottima si procedeva con il seguente
metodo:
-
Si segnano con una crocetta le righe senza zeri segnati
Si segnano con una crocetta le colonne che hanno nelle righe segnate
degli zeri barrati
Si segnano con una crocetta le righe che hanno nelle colonne segnate
zeri cerchiati
Si traccia una riga nelle colonne segnate e nelle righe che non sono
segnate
Si sottrae il numero minore presente nella matrice che non è coperto
dalle righe e lo si aggiunge nelle zone di incrocio
Si cerca una soluzione ottima nella matrice trovata.
Il problema può ammettere più di una soluzione ottima, tutte con lo stesso
costo minimo.
Eventi del ‘900 e sicurezza informatica – Tesina esame 2008 2009
Delbianco Samanta
20