Definizione 1.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M.

Documenti analoghi
L6 Visual Tracking. Corso di Visione Artificiale Ing. Matteo Panciroli ANNO ACCADEMICO DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE

UNIVERSITÀ DEGLI STUDI ROMA TRE Collegio Didattico in Ingegneria Informatica corso di Ricerca operativa 2. Esercizi sul problema dell assegnamento

Possibile applicazione

min det det Allora è unimodulare se e solo se det 1, 1, 0 per ogni sottomatrice quadrata di di qualsiasi dimensione.

Introduzione ai grafi

Algoritmo basato su cancellazione di cicli

Se il grafo è bipartito, un accoppiamento viene anche detto assegnamento.

Appunti sui problemi di matching

3.3 Problemi di PLI facili

I Appello Ricerca Operativa 2 bis Compito A

Teoria dei Grafi Elementi di base della Teoria dei Grafi

Metodi e Modelli per l Ottimizzazione Combinatoria Problema dell assegnamento e matrici totalmente unimodulari

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

Formulazioni. Consideriamo il seguente problema di Knapsack 0-1. max (5x x 2. ) st 3x x 2. < 6 x {0,1} 2

DISPIEGAMENTO CENTRALIZZATO L ACCOPPIAMENTO PERFETTO DI PESO MINIMO IL PROBLEMA DEL SENSORI MOBILI IL PROBLEMA (1)

Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia

Parte IV: Matrici totalmente unimodulari

a 11 a 12 a 1n a 21 a 22 a 2n a m1 a m2 a mn mentre le variabili decisionali sono rappresentate dal vettore colonna n-dimensionale x,

7.1 Progettare un algoritmo per costruire ciclo euleriano di un grafo non orientato.

Grafi e reti di flusso

Gestione della produzione e della supply chain Logistica distributiva

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

Esempi. In R 2, le coppia (2, 5) è combinazione lineare dei vettori (0, 1) e (1, 1). Infatti:

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Matrici unimodulari e totalmente unimodulari

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

Massimo flusso e matching

Prima prova Intermedia di Ricerca Operativa 2 COMPITO A Esercizio 1 (7 punti): LIFO

Il problema del commesso viaggiatore

Introduzione ai grafi. Introduzione ai grafi p. 1/2

Il valore di flusso che si ottiene è

ESERCIZIO 1. Ricordiamo il teorema di Gallai: Per ogni grafo G con n nodi si ha: μ(g)+ ρ(g) = n (2) Se inoltre G non ha nodi isolati

Progettazione di Algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 22 Febbraio Attenzione:

Algoritmi Avanzati Soluzioni dello scritto del 2 febbraio 2004 (appello straordinario)

Grafi e Funzioni di Costo ESERCIZI

Ottimizzazione Combinatoria A. A

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Esercitazione 2. Progettare un algoritmo che risolva tale problema in tempo O( E + V log V ).

Lezione 17 Maggio 23

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Ottimizzazione Combinatoria A. A

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Esercizi di ottimizzazione combinatoria

2.3.3 Cammini ottimi nei grafi senza circuiti

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Rango di una matrice e teorema di Rouché-Capelli

1 Teorema di Bolzano. Definition 1 Sia A un insieme limitato. scriveremo e = sup A, se:

Parte V: Rilassamento Lagrangiano

Algoritmo del simplesso

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Certificati dei problemi in NP

11. Misure con segno.

RICERCA OPERATIVA (a.a. 2018/19)

Matrici delle differenze finite

Branch-and-bound per TSP

FLUSSI SU RETI. Una piccola introduzione. Ricerca Operativa. Prof. R. Tadei. Politecnico di Torino. Flussi su Reti / 1.

Esame di Ricerca Operativa del 07/06/2019

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Programmazione Lineare: problema del trasporto Ing. Valerio Lacagnina

A =, c d. d = ad cb. c d A =

Grafi Stessa distanza

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola:

Programmazione Lineare Intera: Piani di Taglio

INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

Esame di Ricerca Operativa del 19/02/2019. Esercizio 1. Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso:

Esercizio 1. Variabili decisionali:

Soluzioni della settima esercitazione di Algoritmi 1

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Esame di Ricerca Operativa del 09/01/15. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Aniello Murano Classe dei problemi NP. Nella lezione precedente abbiamo visto alcuni problemi che ammettono soluzione polinomiale

A T x b x 0. che chiameremo problema primale, possiamo associare ad esso un altro problema di PL, detto problema duale, definito come segue.

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare:

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II

Modelli di Programmazione Lineare. PRTLC - Modelli

G è 2-colorabile se ogni nodo può essere colorato di bianco o di nero in modo che nodi connessi da archi siano colorati con colori distinti.

Problema di flusso massimo

i completi l'esecuzione dell'algoritmo di programmazione dinamica per questo problema restituendo il valore ottimo e una soluzione ottima del problema

MATEMATICA DISCRETA CLAUDIA MALVENUTO PRIMA PROVA IN ITINERE 24 APRILE 2014

Soluzione. V : insieme dei nodi del grafo A: insieme degli archi del grafo K: insieme degli indici delle coppie di origine-destinazione (s k,t k )

RICERCA OPERATIVA (a.a. 2014/15) Nome: Cognome: Matricola:

PROBLEMA DEL COMMESSO VIAGGIATORE

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

FACOLTA DI ECONOMIA ESAME SCRITTO DI RICERCA OPERATIVA. Verona, 6 Giugno 1996

ALBERI ORIENTATI. Definizione: Albero orientato = rooted tree = grafo orientato con le seguenti proprietà: - ha un nodo fissato, detto radice (r);

Algoritmi e Strutture Dati II: Parte B Anno Accademico Lezione 1

Esame di Ricerca Operativa del 06/02/17

RICERCA OPERATIVA (a.a. 2003/04) Nome Cognome:

Transcript:

Matching. Definizioni Definizione. (Matching di un grafo G = (N, A)) Il matching di un grafo è un sottoinsieme M di archi tali per cui nessuna coppia di essi condivida lo stesso nodo. Definizione.2 (Matching completo) Il matching completo è un matching M N il cui numero di archi (cardinalità) è M = (cioè la massima cardinalità 2 possibile). Definizione.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M. Definizione.4 (Arco libero) Un arco è libero se non è accoppiato. Definizione.5 (Vertice esposto) Un vertice esposto è un vertice non incidente con archi accoppiati. Definizione.6 (Vertice accoppiato) Un vertice accoppiato è un vertice non esposto, cioè incidente con un arco accoppiato. Definizione.7 (Cammino alternante) Un cammino alternante è un cammino p = [u, u 2,..., u 2k ] tale per cui gli archi [u, u 2 ]... [u 2k, u 2k ] siano liberi e gli archi [u 2, u 3 ]... [u 2k 2, u 2k ] siano accoppiati. Definizione.8 (Vertice esterno (outer)) Un vertice esterno è un vertice di posizione dispari di un cammino alternante p che cominci con un vertice esposto. Definizione.9 (Vertice interno (inner)) Un vertice interno è un vertice di posizione pari di un cammino alternante p che comincia con un vertice esposto. Definizione.0 (Cammino aumentante) Un cammino aumentante è un cammino p = [u, u 2,..., u 2k ] alternante dove u e u 2k sono esposti.

R. Tadei - F. Della Croce - Ricerca Operativa e Ottimizzazione.. Algoritmo per la ricerca del massimo matching La motivazione dell attributo aumentante dell ultima definizione è dovuta al seguente lemma Lemma. Sia P l insieme degli archi di un cammino alternante p = [u, u 2,..., u 2k ] rispetto ad un matching M. Allora M = M P è un matching di cardinalità M +. Dimostrazione Si ricorda che M P = (M P ) (P M) = (M P ) (M P ). Dimostriamo dapprima che M P sia un matching. Supponiamo per assurdo che M P non lo sia, cioè che due archi e, e incidano lo stesso nodo. Siccome M P = (M P ) (P M) abbiamo tre possibilità. e, e M P 2. e, e P M 3. e M P e P M Nel primo caso avremmo che due archi in M incidono lo stesso nodo, contro l ipotesi iniziali in quanto M è un matching. Nel secondo caso, tutti gli archi appartenenti a P M sono della forma [u 2j, u 2j ] e quindi due di essi non possono incidere sullo stesso vertice. Nel terzo caso supponiamo che un arco e = [u 2j, u 2j ] P M abbia un nodo in comune con un altro arco e M P ; assumiamo, per esempio, che tale nodo sia u 2j : ma u 2j è un vertice dell arco e = [u 2j, u 2j+ ] M e quindi i due archi e e e appartenenti a M hanno in comune un nodo, contro le ipotesi. Se ne conclude che M è un matching; inoltre P = 2k di cui k sono liberi ([u, u 2 ], [u 3, u 4 ],..., [u 2k, u k2 ] e k appartengono a M: da ciò si ottiene che M = M P = M + P 2 P M = M + 2k 2 (k ) = M +. Dal lemma precedente deriva il seguente Teorema.2 Un matching M in un grafo G = (N, A) è massimo se e solo se non esiste alcun cammino aumentante in G = (N, A) rispetto a M. Dimostrazione L implicazione matching massimo = non esiste cammino aumentante segue direttamente dal lemma.. Dimostriamo ora l implicazione inversa (non esiste cammino aumentante = matching massimo). Supponiamo per assurdo che il matching M non sia massimo, cioè che esista una matching M tale che M > M. Consideriamo gli archi in M M ; questi archi formano un sottografo di G. Siccome gli archi di un matching non possono incidere sullo stesso nodo, il sottografo 2 Progetto Leonardo Editrice Esculapio Bologna

Capitolo I Matching G (V, M M ) è tale per cui i suoi vertici non abbiano più di due archi incidenti. Se il numero di tali archi è due allora uno appartiene a M e l altro a M. Se ne deduce che tutte le componenti connesse di G sono dei cammini o dei circuiti di lunghezza pari. Siccome M > M deve verificarsi il caso in cui uno dei cammini abbia più archi appartenenti a M : questo comporta l esistenza di un cammino aumentante, contro l ipotesi. I passi dell algoritmo sono i seguenti. Porre M = { }. 2. Cercare un cammino aumentante. Se esso non esiste, STOP; il matching è massimo. 3. Aggiornare il matching corrente applicando il lemma.: Ritornare al passo 2. M {[u, u 2 ]... [u 2k, u 2k ]} \ {[u 2, u 3 ]... [u 2k 2, u 2k ]}. Si dimostra che la complessità di questo algoritmo applicato ad un grafo bipartito B (N, N 2, A) è O (min { N, N 2 } A ). Algoritmo Ungherese per il problema dell assegnamento L ultimo lemma presentato viene fortemente utilizzato dall algoritmo ungherese, che modifica progressivamente la matrice C dei costi tramite somme e sottrazioni di costanti sulle righe e sulle colonne. Questi aggiornamenti della matrice dei costi vengono fatti in modo tale da garantire sempre costi non negativi e cercando contemporaneamente di aumentare gli elementi nulli (e conseguentemente gli accoppiamenti di costo nullo) sino a raggiungere la soluzione ottima, consistente appunto in n accoppiamenti di costo nullo. I passi dell algoritmo. Analizzare la matrice C per trovare il valore minimo di ciascuna riga e sottrarre tale valore ad ogni elemento della riga: in questo modo si aggiorna la matrice C il cui generico elemento vale ora c ij = c ij min j c ij i =,..., n. 2. Analizzare la matrice C per trovare il valore minimo di ciascuna colonna e sottrarre tale valore ad ogni elemento della colonna: in questo modo si aggiorna nuovamente la matrice C il cui generico elemento vale ora c ij = c ij min i c ij j =,..., n. 3

R. Tadei - F. Della Croce - Ricerca Operativa e Ottimizzazione 3. Sia dato il grafo bipartito B = (N, N 2, A), in cui N e N 2 corrispondono rispettivamente alle righe ed alle colonne della matrice C e A sia formato dall insieme di coppie (i, j) tali che c ij = 0. Verificare, con l algoritmo per la ricerca del massimo matching, se esiste un matching completo, ossia se ci sono n accoppiamenti di costo nullo, uno per ogni riga e per ogni colonna, sulla matrice C. Se è così, STOP. 4. Applicare alla matrice C la procedura U (updating) per aggiornarla e tornare al passo 3. Procedura U. Considerare la matrice C reinizializzata, ossia con tutte le righe e le colonne non barrate. 2. Etichettare tutte le righe che non sono state accoppiate dall algoritmo per la ricerca del massimo matching. 3. Etichettare le colonne che hanno degli 0 in corrispondenza delle righe etichettate. 4. Etichettare le righe che sono state accoppiate, dall algoritmo per la ricerca del massimo matching, con le colonne etichettate. 5. Ripetere i passi 2 e 3 finché non ci sono più righe o colonne da etichettare. 6. Barrare ogni riga non etichettata ed ogni colonna etichettata. 7. Trovare il minimo tra gli elementi non barrati della matrice ed indicarlo con δ. 8. Sottrarre il valore δ agli elementi non barrati ed aggiungere δ a quelli barrati sia per riga che per colonna. 9. La matrice così ottenuta è la nuova matrice C. Si noti che alla fine del passo 5, se tutto è stato eseguito correttamente, ogni zero deve essere barrato e la somma del numero di righe e di colonne barrate deve essere pari al numero degli accoppiamenti ottenuti dall algoritmo per la ricerca del massimo matching. Esempio. Si risolva il problema di assegnamento caratterizzato dalla seguente matrice dei costi 2 3 4 A 8 5 2 B 4 7 7 5 C 3 5 4 2 D 3 6 3 Applichiamo i passi dell algoritmo ungherese 4 Progetto Leonardo Editrice Esculapio Bologna

Capitolo I Matching. 2. 2 3 4 A 0 7 4 B 0 3 3 C 3 2 0 D 2 0 5 2 2 3 4 A 0 7 2 B 0 3 C 3 0 0 D 2 0 3 2 3. Ricerca del massimo matching A B C D 2 3 4 4. Visto che il matching non è completo, ossia la soluzione non è ottima, applichiamo la procedura U per aggiornare la matrice C 2 3 4 A 0 7 2 B 0 3 C 3 0 0 D 2 0 3 2 La matrice aggiornata è la seguente δ = min (7, 2,, 3,, ) = 2 3 4 A 0 6 0 B 0 2 0 0 C 2 3 0 0 D 3 0 3 2 5

R. Tadei - F. Della Croce - Ricerca Operativa e Ottimizzazione 3. Ricerca del massimo matching A B C D 2 3 4 La soluzione è ottima (matching completo) ed è data dagli accoppiamenti A, B 3, C 4, D 2, mentre il valore della funzione obiettivo è. 6 Progetto Leonardo Editrice Esculapio Bologna