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