Sommario della lezione



Documenti analoghi
Sommario della lezione

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Dimensione di uno Spazio vettoriale

Ottimizzazione Multi Obiettivo

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Per poter affrontare il problema abbiamo bisogno di parlare di probabilità (almeno in maniera intuitiva). Analizziamo alcune situazioni concrete.

Calcolo del Valore Attuale Netto (VAN)

1. PRIME PROPRIETÀ 2

Probabilità discreta

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

risulta (x) = 1 se x < 0.

1 Giochi a due, con informazione perfetta e somma zero

Soluzione dell esercizio del 2 Febbraio 2004

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Lezione 9: Cambio di base

13. Campi vettoriali

4 3 4 = 4 x x x 10 0 aaa

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Corrispondenze e funzioni

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Un gioco con tre dadi

Capitolo TOTALI PARZIALI E COMPLESSIVI Aprire la cartella di lavoro Lezione2 e inserire la tabella n 2 nel Foglio1 che chiameremo Totali.

Corso introduttivo all utilizzo di TQ Qualifica

2 Formulazione dello shortest path come problema di flusso

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Convertitori numerici in Excel

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Corso di Informatica

SPECTER OPS. L'obiettivo del giocatore agente è quello che il suo agente completi 3 su 4 missioni obiettivo qualsiasi

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1

Problema del trasporto

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

La distribuzione Normale. La distribuzione Normale

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Algoritmi e strutture dati. Codici di Huffman

Esercizi per il corso di Algoritmi e Strutture Dati

Il principio di induzione e i numeri naturali.

Guida Compilazione Piani di Studio on-line

Plate Locator Riconoscimento Automatico di Targhe

Esercizi di Calcolo delle Probabilita (I)

( x) ( x) 0. Equazioni irrazionali

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Network design

Obiettivo del gioco. Contenuto del gioco: Dedico questo gioco alle mie sorelle Ilona, Kasia e Mariola. Adam Kałuża

I CIRCUITI ELETTRICI. Prima di tutto occorre mettersi d accordo anche sui nomi di alcune parti dei circuiti stessi.

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Programmazione dinamica

Analisi di una Rete Sociale

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Equilibrio bayesiano perfetto. Giochi di segnalazione

Le query di raggruppamento

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

I PROBLEMI ALGEBRICI

Matematica in laboratorio

Luigi Piroddi

Laboratorio di Algoritmi e Strutture Dati

LA MOLTIPLICAZIONE IN CLASSE SECONDA

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Teoria dei Giochi. Anna Torre

9. Urti e conservazione della quantità di moto.

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Esercizi su lineare indipendenza e generatori

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Intelligenza Artificiale

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Calcolo delle Probabilita, INGEGNERIA INFORMATICA, semestre II, laurea (ord. Leonardo.

b. Che cosa succede alla frazione di reddito nazionale che viene risparmiata?

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

CALCOLO COMBINATORIO

Capitolo 2. Operazione di limite

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Esercizi su. Funzioni

Università di Milano Bicocca. Esercitazione 6 di Matematica per la Finanza. 14 Maggio 2015

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

ICARO Terminal Server per Aprile

Fondamenti e didattica di Matematica Finanziaria

Politecnico di Milano Facoltà di Ingegneria dell Informazione AGENTI AUTONOMI E SISTEMI MULTIAGENTE Appello COGNOME E NOME

Organizzazione degli archivi

Le basi della Partita Doppia in parole Facile e comprensibile. Ovviamente gratis.

Soluzioni del giornalino n. 16

CORSO DI CALCOLO DELLE PROBABILITÀ E STATISTICA. Esercizi su eventi, previsioni e probabilità condizionate

Attività 9. La città fangosa Minimal Spanning Trees

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

Consideriamo due polinomi

INdAM QUESITI A RISPOSTA MULTIPLA

La f(x) dovrà rimanere all interno di questo intorno quando la x è all interno di un intorno di x 0, cioè I(x 0 ), cioè:

Regolamento CAMPIONATO e COPPA THE BEST TWENTY :

Transcript:

Sommario della lezione Ulteriori applicazioni del Massimo Flusso 1. Connettività di grafi. Selezione di progetti 3. Trasporto in reti 4. Eliminazione in tornei Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 1/3

Connettività di grafi Problema: Dato un grafo diretto G = (V, E) e due nodi s e t, trovare il minimo numero di archi che disconnette t da s. Def. Un insieme di archi F E disconnette s da t se tutti i cammini da s a t usano almeno un arco di F. s 3 6 t 4 7 Il problema trova applicazione nell analisi della tolleranza ai guasti di reti di calcolatori (ed in tante altre situazioni...) Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. /3

Il risultato Il minimo numero di archi che disconnette t da s = massimo numero di cammini arco-disgiunti da s a t. Proviamo innanzitutto il. Sia F E un insieme di cardinalità k minima di archi che disconnette t da s. Ogni cammino da s a t deve usare almeno un arco di F (altrimenti F non disconnetterebbe t da s) pertanto il massimo numero di cammini arco-disgiunti da s a t è al più k s 3 6 t s 3 6 t 4 7 4 7 Nell esempio, abbiamo cammini arco disgiunti da s a t e archi bastano a disconnettere t da s. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 3/3

Proviamo ora la diseguaglianza oppposta Sia k il massimo numero di cammini arco-disgiunti da s a t. Nella lezione scorsa vedemmo che tale numero corrispondeva anche al valore del massimo s-t flusso f nel grafo. Ricordiamo inoltre che la massimalità di f implicava che in G esiste un taglio (A, B) di capacità c(a, B) = v(f) = k. Gli archi che vanno da A a B (ovviamente in numero di k visto che ogni arco ha capacità pari a 1) costituiscono un insieme F che disconnette t da s, per cui la minima cardinalità di un F che disconnette t da s è k. s 3 6 t s 3 6 t A 4 7 B 4 7 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 4/3

Ricordando il risultato provato nella lezione scorsa: Il massimo numero di cammini da s a t in G che sono arco-disgiunti = valore del massimo flusso in G da s a t e quello appena provato: Il minimo numero di archi che disconnette t da s = massimo numero di cammini arco-disgiunti da s a t. otteniamo Risultato: Il minimo numero di archi che disconnette t da s = valore del massimo flusso in G da s a t che ci fornisce anche un algoritmo di complessità O(mn)) per risolvere il problema, dove come al solito n = V, m = E. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. /3

E se volessimo studiare gli stessi problemi relativamente a vertici? ovvero considerare i seguenti problemi: Problema 1: Determinare il massimo numero di cammini tra due vertici di un grafo in modo tale che nessuna coppia di cammini abbiano vertici in comune? (ovvero i cammini siano vertici-disgiunti) Problema : Determinare il minimo numero di vertici che disconnette un vertice t da s? Bisogna rifare tutto da capo? No. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 6/3

Basta considerare grafi con capacità anche sui vertici ovvero, generalizzare il concetto di rete di flusso mediante un grafo diretto G = (V, E) con le seguenti caratteristiche: associato ad ogni arco e E vi è un numero c(e) 0, capacità dell arco e associato ad ogni nodo u V vi è un numero d(u) 0 capacità del nodo u vi è un nodo s chiamato sorgente, senza archi entranti vi è un nodo t chiamato destinazione, senza archi uscenti In tale situazione un flusso f deve soddisfare le seguenti condizioni 1. (Vincoli sulle capacità) e E 0 f(e) c(e) e u V e entranti in u f(e) d(u). (Vincoli sulla conservazione del flusso) v V, s v t, vale e entranti in v f(e) = e uscenti da v f(e) Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 7/3

Il bello di grafi siffatti è che non sono più difficili da trattare di quelli soliti, ovvero di grafi con capacità solo sugli archi. Infatti, dato un grafo con capacità c(e) sugli archi e capacità d(u) sui nodi avremmo una situazione siffatta, in cui la somma dei flussi entranti nel nodo deve essere d(u): c c c c c 3 d(u) c 6 c 3 u d(u) u c 6 c 1 c 4 c 1 c 4 Potremmo trasformarla in una situazione come quella di destra, in cui si introduce un nodo fittizio u, connesso a u con un arco con capacità d(u). Nel grafo risultante dopo la trasformazione sopra delineata (effettuata ovviamente per ogni nodo) vi sono solo capacità su archi (che sappiamo trattare). È altresì ovvio che esiste un flusso di valore k nel grafo di partenza (con capacità anche sui nodi) se e solo se ne esiste uno dello stesso valore nel grafo modificato (con capacità solo sugli archi). Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 8/3

Riassumendo... Le tecniche di flusso introdotte permettono quindi di risolvere anche questioni che coinvolgono condizioni su nodi, ad esempio determinare il massimo numero di cammini nodo-disgiunti tra una coppia di nodo del grafo, o determinare il minimo numero di nodi necessari a disconnettere una coppia di nodi nel grafo, etc. Basterà imporre le opportune limitazioni sia alla capacità sugli archi, che sui nodi. Ad es., per determinare il massimo numero di cammini nodo-disgiunti tra due vertici s e t di un grafo G, basterà calcolare il massimo flusso da s a t in G, dove avremo imposto che la capacità di ciascun nodo è pari a 1, trasformare il grafo come prima descritto e risolvere il problema del massimo flusso nel grafo trasformato per ottenere la risposta. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 9/3

Esempio: Vie di Fuga Supponiamo di avere una griglia, e dei punti in essa. Il problema è di stabilire se esistono cammini vertice-disgiunti da ciascun punto alla frontiera della griglia non ha soluzione Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 10/3

Formulazione del problema in termini di flusso Input: Grafo griglia G = (V, E), consistente di n colonne ed n righe di vertici. Il vertice generico nella riga i e colonna j può essere rappresentato dalla coppia (i, j). Ogni vertice ha quattro vicini, tranne che per i vertici sulla frontiera (che ne hanno o due o tre). In input abbiamo anche m n punti (x 1, y 1 ),...,(x m, y m ) per i quali vogliamo stabilire se ci sono o meno m cammini disgiunti da essi alla frontiera della griglia (non importa dove, purchè si possa raggiungere la frontiera) Definiamo un grafo di flusso G = (V, E ) nel seguente modo: V = V {s, t} E = E {archi da s ad ogni punto (x i, y i )} {archi da ogni punto della frontiera a t} Ogni arco di G ha capacità pari a 1, ogni nodo di G ha capacità pari a 1. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 11/3

Esempio 1 s t Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 1/3

Vale il seguente risultato Il problema delle vie di fuga ha soluzione positiva (ovvero esistono i cammini nodi-disgiunti dagli m punti in input sulla griglia alla frontiera della griglia) se e solo se nel grafo G esiste un massimo flusso di valore m. Prova: per esercizio. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 13/3

Selezione di progetti Input: insieme di progetti P, a ciascun progetto v P è associato un ricavo p(v) che può essere sia positivo (guadagno) che negativo (costo). Ad es., alcuni progetti generano guadagno (creare pagine web interattive per e-commerce, ridisegnare siti web, etc.) altri progetti, che possono essere necessari per la realizzazione di quelli che generano guadagno, richiedono invece spese (acquisire licenze software, aggiornare server, etc.) Input: insieme di prerequisiti E: se (v, w) E, allora prima di eseguire il progetto v occorre necessariamente aver eseguito il progetto w un insieme di progetti A P è fattibile se i progetti prerequisiti di ogni progetto v A appartengono essi stessi ad A Output: un insieme di progetti A fattibile e di profitto profitto(a) = v A p(v) massimo. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 14/3

Es. : Estrazione da cave all aperto Blocchi di materiale vengono estratti dalla superficie per estrarre sostanze Ciascun blocco v ha un valore netto p(v) =(valore della sostanza contenuta in v) (costo dell estrazione del blocco v) Non si può estrarre il blocco v prima di w o prima di x Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 1/3

Introduciamo il grafo G = (V, E) dei prerequisiti V =insieme dei progetti, (v, w) E se prima di eseguire il progetto v occorre necessariamente aver eseguito il progetto w Nel grafo di sotto, l insieme {v, w, x} è un insieme fattibile di progetti, l insieme {v, x} non è un insieme fattibile di progetti. w v x Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 16/3

Formuliamo il problema come un problema di minimo taglio assegniamo capacità a tutti gli archi dei prerequisiti aggiungiamo un arco (s, v) con capacità c(s, v) = p(v) se p(v) > 0 aggiungiamo un arco (v, t) con capacità c(v, t) = p(v) se p(v) < 0 Poniamo inoltre: p(s) = p(t) = 0. u w p(u) p(w) s p(y) y z p(z) t p(v) p(u) v x Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 17/3

Osservazione: Sia A P un sottoinsieme di progetti fattibile. Definiamo il taglio (A, B ) con A = A {s}, B = (P A) {t}. Per definizione di fattibilità nessun arco (i, j) E attraversa il taglio (in quanto se i A dipende da j allora anche j A) Esempio: A = {w, v, x} u w s y z t v x Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 18/3

Per A P fattibile, e per A = A {s}, B = (P A) {t} vale: c(a, B ) = v P:p(v)>0 p(v) v A p(v) Ricordiamo che gli archi del grafo di flusso possono essere divisi in 3 categorie: 1.gli archi di E che descrivono le precedenze,. gli archi che fuoriescono da s e 3. gli archi che entrano in t. Inoltre, gli archi di E non attraversano il taglio (come prima notato) e quindi non contribuiscono alla sua capacità c(a, B ). Gli archi che entrano in t contribuiscono a c(a, B ) per la quantità ( p(v)) v A:p(v)<0 mentre quelli che fuoriescono da s contribuiscono a c(a, B ) per la quantità p(v) = p(v) p(v) v/ A:p(v)>0 v P:p(v)>0 v A:p(v)>0 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 19/3

Per A P fattibile, e per A = A {s}, B = (P A) {t} Otteniamo quindi c(a, B ) = c(e) + c(e) e:e fuoriesce da A e và in t = ( p(v)) + = v A:p(v)<0 p(v) v P:p(v)>0 v A che è quello che volevamo provare. e:e fuoriesce da A e parte da s p(v) v P:p(v)>0 v A:p(v)>0 p(v) p(v) Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 0/3

Posto C = v P:p(v)>0 p(v) e notando che ogni arco (v, w) che definisce precedenze tra progetti ha capacità > C, otteniamo che ogni taglio (A, B ) di capacità c(a, B ) C definisce implicitamente un insieme fattibile A = A {s}, in quanto nessun arco di precedenze può attraversare tale taglio, avrebbe infatti da solo una capacità maggiore della capacità c(a, B ) dell intero taglio. Mettendo tutto insieme, otteniamo che la capacità di tali tagli (A, B ) è uguale a c(a, B ) = v P:p(v)>0 p(v) v A p(v) = C profitto(a) e quindi per trovare un insieme di profitto massimo (che era il nostro obiettivo) basta trovare un taglio (A, B ) di capacità minima ed estrarne s, (e questo lo sappiamo fare, con l algoritmo di Ford e Fulkerson). Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 1/3

Il Problema del Trasporto Input: Grafo diretto G = (V, E) Nodi fornitori s i con quantità di fornitura f i, i = 1,...,p Nodi richiedenti r i con quantità di richiesta g i, i = 1,...,q fi g i funzione capacità c : E R + Output: trovare dei percorsi su cui far viaggiare le cose, in modo che le richieste siano soddisfatte, ed i vincoli sulle capacità degli archi siano rispettati. 11 s 1 4 r 1 17 1 4 16 s 19 9 r 8 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. /3

Risoluzione del Problema del Trasporto mediante Massimo Flusso Il Problema del Trasporto può essere risolto creando e risolvendo un problema collegato di Massimo Flusso Creiamo una supersorgente s. Per ogni nodo fornitore s i, aggiungiamo un arco da s a s i di capacità pari alla quantità di fornitura f i Creiamo una superdestinazione t. Per ogni nodo richiedente r i aggiungiamo un arco da r i a t con capacità pari alla quantità di richiesta g i Trova il massimo flusso da s a t nella rete di flusso così ottenuta Se il massimo flusso = gi alora tale massimo flusso rappresenta una soluzione al Problema del Trasporto originale, altrimenti il Problema del Trasporto non è risolubile con i parametri dati. s 1 4 r 1 11 17 s 1 t 16 4 8 s 19 9 r Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 3/3

Risoluzione del Problema del Trasporto mediante Massimo Flusso Nel nostro esempio, il massimo flusso da s a t è ottenuto mediante l algoritmo di Ford e Fulkerson. Il valore del massimo flusso ottenuto è. I numeri in rosso rappresentano i valori del flusso su ciascun arco Poichè il valore del massimo flusso ==17+8=somma delle richieste, otteniamo che il flusso in questione è una soluzione al problema del Trasporto 11 s 1 4 4 r 1 17 1 1 13 4 16 s 19 18 9 8 r 8 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 4/3

Perchè l algoritmo funziona in generale Per ogni nodo r i che richiedeva una quantità g i abbiamo creato un arco (r i, t) di tale capacità. In tale rete il flusso non può superare il valore g i, in quanto esiste ovviamente il taglio (V {t}, {t}) esattamente di tale capacità Se esiste un flusso (massimo) di valore g i, necessariamente su ogni arco (r i, t) deve viaggiare una quantità di flusso pari a g i, per la legge di conservazione di flusso, la stessa quantità deve entrare in r i il che fornisce una soluzione al Problema del Trasporto 11 s 1 4 r 1 17 11 17 s 1 t 16 4 8 16 s 19 9 r 8 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. /3

Problema delle danze Una scuola vuole organizzare un ballo di fine anno. Ogni coppia di studenti composta da un ragazzo ed una ragazza che intendono danzare insieme devono registrarsi (altrimenti non possono danzare insieme). I regolamenti della scuola impongono che ogni data coppia non possa danzare insieme più di 3 volte. In più, ogni studente non può danzare più di 10 volte in totale. Problema: massimizzare il numero di danze in totale. Esercizio: formalizzare il problema come un problema di massimo flusso. Suggerimento: Definire un nodo per ogni studente ed ogni studentessa. Inserire un arco di opportuna capacità tra le coppie registrate. Definire opportune capacità associate ad ogni nodo. Indi, procedere come nel Problema del Trasporto, introducendo una sorgente connessa ad ogni studente ed una destinazione connessa ad ogni studentessa. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 6/3

Il Problema del Baseball Il campionato americano di baseball è diviso in tornei e passano alla fase successiva le squadre che hanno avuto il maggior numero di vittorie (non vi sono pareggi nel baseball). Ad ogni istante della stagione, i tifosi sono interessati a sapere se la loro squadra può ancora teoricamente passare il torneo, o è già matematicamente eliminata. w(i) g(i) g(i, j) squadra vinte da giocare Y H C B Yale 33 8 1 6 1 Harvard 9 4 1 0 3 Cornell 8 7 6 0 1 Brown 7 1 3 1 Harvard è già eliminata o può ancora arrivare prima nel girone? Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 7/3

Il Problema del Baseball: analisi preliminare Il massimo numero di vittorie cui Harvard può arrivare è W = 9 + 4 = 33 (vincendo i 4 rimanenti incontri) Supponendo che Harvard li vinca, non sarà eliminata se e solo se: Brown ha al più u(b) = W w(b) = 33 7 = 6 vittorie nei rimanenti incontri Cornell ha al più u(c) = W w(c) = 33 8 = vittorie nei rimanenti incontri Yale ha al più u(y ) = W w(y ) = 33 33 = 0 vittorie nei rimanenti incontri Sia P l insieme delle squadre tranne Harvard: P = {Y, C, B} Sia Q l insieme di tutte le possibili coppie di squadre in P : Q = {(Y, C), (Y, B), (C, B)} Il numero totale di incontri da effettuarsi tra squadre in P è G = 6 + 1 + 1 = 8. Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 8/3

Soluzione del Problema del Baseball mediante Flusso Il Problema del Baseball può essere risolto creando e risolvendo un istanza collegata del problema del Massimo Flusso Crea un nodo sorgente O (tutti gli incontri partono da qui) Crea un nodo per ciascuna coppia (X, Y ) di Q; aggiungi un arco da O a ciascuna coppia (X, Y ) con capacità pari al numero di partite da giocare tra X e Y Crea un nodo per ciascuna squadra di P ; per ciascuna coppia (X, Y ) di Q aggiungi un arco da (X, Y ) alla squadra X ed alla squadra Y di P, con capacità pari al numero di partite da giocare tra X e Y Crea un nodo destinazione T (le vittorie di ciascuna squadra sono qui memorizzate ). Aggiungi un arco da ogni squadra X in P al nodo T, la capacità dell arco è pari a u(x) (il massimo numero di vittorie che la squadra X può avere nei rimanenti incontri affinchè Harvard si qualifichi) Y,C 6 Y S 6 1 1 Y,B B,C 6 1 1 1 1 C B 0 6 T Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 9/3

Soluzione del Problema del Baseball mediante Flusso Trova il massimo flusso da O a T nella rete Se il flusso su ciascun arco da O alle squadre è proprio uguale alla capacità dello stesso arco, allora Harvard può ancora sperare di diventare prima nel girone, altrimenti è matematicamente eliminata Infatti ciò vorrebbe dire che è possibile rispettare i vincoli che le squadre Y, C, B non vincano più di u(y ), u(c), u(b) volte, rispettivamente, giocando tutte le partite. Nel nostro esempio i valori del massimo flusso sono espressi in rosso, e poichè l arco da O a {Y, C} non è usato al massimo della sua capacità, ne segue che Harvard è matematicamente eliminata. S 6 1 11 1 Y,C Y,B B,C 6 1 1 1 6 1 1 1 Y C B 0 6 T Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 30/3

Ritornando alla tabella... e ricordando la precedente figura, abbiamo che il valore del massimo flusso compatibile con il fatto che Brown abbia al più u(b) = W w(b) = 33 7 = 6 vittorie nei rimanenti incontri, Cornell ne abbia al più u(c) = W w(c) = 33 8 =, e Yale ne abbia al più u(y ) = W w(y ) = 33 33 = 0, richiede che il massimo numero di partite da giocare tra Yale e Cornell sia. Poichè invece il numero di partite è 6, ne segue invece che se Yale ne vince 1 va a 34 e Harvard non può raggiungere tale punteggio, mentre invece se le perde tutte e 6 allora Cornell necessariamente va a 34 e di nuovo Harvard non può raggiungere tale punteggio w(i) g(i) g(i, j) squadra vinte da giocare Y H C B Yale 33 8 1 6 1 Harvard 9 4 1 0 3 Cornell 8 7 6 0 1 Brown 7 1 3 1 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 31/3

Esercizio: può Detroit ancora vincere il girone? w(i) g(i) g(i, j) squadra vinte da giocare NYY BAL BOS TOR DET New York Yankees 7 8 3 8 7 3 Baltimore Orioles 71 8 3 7 4 Boston Red Sox 69 7 8 0 0 Toronto Blue Jays 63 7 7 7 0 0 Detroit Lions 49 7 3 4 0 0 Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 013/14 p. 3/3