Fondamenti di Ricerca Operativa

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Ricerca Operativa"

Transcript

1 Politecnico di Milano Anno Accademico 2010/2011 Fondamenti di Ricerca Operativa Corso del Prof. Edoardo Amaldi Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria Informatica

2

3 Fondamenti di Ricerca Operativa Capitolo 1: La Ricerca Operativa Capitolo 1: La Ricerca Operativa Il concetto di Ricerca Operativa Definizione La Ricerca Operativa (in inglese detta Operations Research) è quella branca della matematica applicata nella quale si utilizzano dei modelli matematici e dei metodi quantitativi avanzati per analizzare e risolvere problemi decisionali complessi, con lo scopo generale di fornire uno strumento di supporto alla presa di decisioni. Per brevità, la Ricerca Operativa viene spesso indicata mediante l acronimo RO. Problema decisionale Il termine problema decisionale (o problema di scelta) è utilizzato per indicare un problema che consiste nella scelta tra diverse alternative ammissibili, sulla base di uno o più criteri. Esempi di problemi decisionali Esempio n. 1: assegnamento di task Come primo esempio di problema decisionale, supponiamo di avere un certo numero di progetti da assegnare ad altrettanti ingegneri, ciascuno dei quali deve essere assegnatario di uno e un solo progetto. Supponendo che ogni ingegnere possa svolgere uno qualsiasi tra i progetti dati e indicando con il tempo che il -esimo ingegnere impiega per lo svolgimento dell -esimo progetto, vogliamo che l assegnamento dei progetti sia tale da rendere minimo il tempo totale di esecuzione degli progetti. Ingegnere Progetto Tabella 1: Tabella dei tempi di esecuzione degli m progetti da parte degli m ingegneri (m = 3). A tale scopo, possiamo innanzitutto osservare che i possibili assegnamenti sono in numero finito, e precisamente sono. Di conseguenza, è possibile valutare i tempi totali per ciascuna delle soluzioni ammissibili e risolvere il problema mediante un analisi esaustiva di tutte le possibilità. Ogni possibile soluzione può poi essere rappresentata mediante una matrice nella quale l elemento di posizione è uno zero se l -esimo progetto viene assegnato al -esimo ingegnere, e in caso contrario è pari a zero. Ad esempio, se supponiamo che l -esimo progetto venga sempre assegnato all -esimo ingegnere, la matrice che si ottiene è: Come messo in evidenza dalla precedente formula la crescita del numero di casi possibili avviene in maniera esponenziale rispetto al numero di ingegneri e progetti, perciò i tempi di esecuzione di un simile algoritmo con un moderno calcolatore diventerebbero ben presto enormi (già con un numero non particolarmente elevato si raggiungerebbero tempi di esecuzione dell'ordine dei secoli). Esempio n. 2: problema di network design Un altro esempio di problema risolvibile mediante la ricerca operativa è quello che consiste nell individuare il modo per collegare un certo numero di città (o di uffici) mediante un insieme di collegamenti (sapendo che solo alcune coppie prestabilite di città o uffici possono essere collegate in maniera diretta), facendo in modo che il costo totale di collegamento risulti essere il minimo possibile. 3

4 Capitolo 1: La Ricerca Operativa Fondamenti di Ricerca Operativa La figura seguente mostra un possibile grafo nel quale sono rappresentate le varie città da collegare, mettendo in evidenza i collegamenti diretti possibili con i relativi costi, indicati dai numeri associati ai collegamenti stessi. Si noti che si suppone che tutti i collegamenti siano bidirezionali Figura 1: Grafo dei possibili collegamenti diretti tra città e dei costi associati ai collegamenti stessi. Per risolvere tale problema, è necessario costruire il grafo ricoprente connesso e aciclico con costo minimo tra tutti quelli possibili. Il numero di sottografi con tali caratteristiche che si possono ottenere a partire da G dipende naturalmente, oltre che dal numero di nodi, anche dal numero di possibili collegamenti diretti. Indichiamo con m il numero di possibili collegamenti diretti. Se si suppone che la scelta di inserire oppure no uno di tali collegamenti nel sottografo finale non influenzi le scelte successive (anche se è bene sottolineare che in realtà tali scelte non sono indipendenti), allora il numero di sottografi possibili da analizzare sarebbe pari a. Supponendo che siano possibili tutti i collegamenti diretti tra le coppie di nodi del grafo, ovvero ipotizzando, allora tale considerazione ci porta facilmente a dedurre che il numero di diverse soluzioni ammissibili è non superiore a situazione è pari a.. Più in particolare, è stato dimostrato che il numero di soluzioni alternative in questa Esempio n. 3: organizzazione dei turni del personale La Ricerca Operativa può anche essere utilizzata per organizzare i turni del personale, andando ad individuare la soluzione che rispetti al meglio le varie esigenze e minimizzando al contempo il numero di persone coinvolte (al fine di ridurre il costo da affrontare per il pagamento degli stipendi). Esempio n. 4: organizzazione degli sportelli della banca Un altro possibile problema di scelta si pone nel momento in cui si deve determinare il numero di sportelli che è necessario aprire in una banca al fine di minimizzare il tempo di attesa per i clienti, stabilendo eventualmente anche la tipologia di tali sportelli. Esempio n. 5: scelta di un PC portatile Un esempio di problema di scelta che è più facile trovarsi ad affrontare nella vita di tutti i giorni è quello della scelta del PC portatile da comprare: in tal caso, occorre tenere conto di diversi criteri, tra i quali i più importanti sono il prezzo, il peso e le prestazioni. Cenni storici Le origini della Ricerca Operativa sono legate all ambito militare: tale disciplina è infatti nata durante la Seconda Guerra Mondiale, con lo scopo di sfruttare al meglio le limitate risorse che gli eserciti dovevano assegnare alle varie operazioni da compiere. In tale contesto nacque il termine Operations Research, che veniva allora utilizzato per indicare il modo più efficace di condurre le operazioni. Tra i problemi risolti dalla Ricerca Operativa nell ambito militare si ricordano quelli di posizionamento dei radar, di approvvigionamento dei convogli e di logistica. Nel dopoguerra ci si rese conto che le tecniche della Ricerca Operativa potevano essere usate anche in ambito industriare ed economico: con il boom economico le dimensioni delle imprese e delle organizzazioni crebbe notevole, e di conseguenza si rese necessario affrontare problemi molto più complessi di quelli ai quali si era abituati. Lo sviluppo della Ricerca Operativa è stato inoltre fortemente incentivato prima dai progressi teorici nel Calcolo Numerico, e poi soprattutto dalla massiccia diffusione dell informatica, che consente di risolvere rapidamente gli algoritmi utilizzati in tale disciplina. In inglese si utilizza oggi il termine Management Science, che indica un ambito più soft della Ricerca Operativa. 4

5 Fondamenti di Ricerca Operativa Capitolo 1: La Ricerca Operativa Schema generale di uno studio di Ricerca Operativa In generale, lo schema che si segue per la risoluzione di un problema decisionale mediante la Ricerca Operativa è rappresentato nella figura seguente: Problema Modello Algoritmo Programma Figura 2: Schema generale di uno studio di Ricerca Operativa. Come messo in evidenza dal diagramma, si parte da un problema, dal quale si ricava un modello, ovvero una rappresentazione semplificata della realtà. Il modello deve essere un giusto compromesso tra le esigenze di semplificazione e la necessità di esprimere i dettagli relativi al problema in analisi. A partire da tale modello si ricava poi un algoritmo, il quale verrà risolto per mezzo di un opportuno programma. Caratteristiche dei problemi decisionali I problemi decisionali si differenziano tra loro per una serie di caratteristiche, in base alle quali vengono identificate le varie sotto-branche della Ricerca Operativa stessa. Le caratteristiche principali dei problemi decisionali sono: Numero di decisori Alcuni problemi decisionali prevedono la presenza di un solo soggetto incaricato di prendere la decisione stessa; in altri casi invece i decisori in gioco sono più di uno: esempi di questo tipo sono i problemi relativi ad una relazione di coppia, l incontro tra la domanda e l offerta nella compravendita di un bene, le decisioni prese all interno del C.d.A. di un azienda,. I problemi decisionali che prevedono più di un decisore vengono studiati dalla branca della Ricerca Operativa nota come Teoria dei Giochi. Numero degli obiettivi Talvolta i criteri in base ai quali effettuare la scelta sono più di uno (come nell esempio della scelta del computer portatile da acquistare). Tali problemi vengono risolti mediante la Programmazione multi-obiettivo. Grado di certezza dei parametri I parametri del modello matematico realizzato per la risoluzione del problema possono essere noti solamente con un certo livello di incertezza, e non in maniera esatta: in tal caso si parla di Programmazione stocastica. La Programmazione Matematica Definizione La Programmazione Matematica (PM) è quel ramo della Ricerca Operativa che si occupa di risolvere i problemi decisionali con variabili di decisione reali, caratterizzati da un solo decisore, un solo criterio di scelta e che si svolgono in ambito certo. La Programmazione Matematica è detta a volte anche Ottimizzazione Matematica. Formalizzazione di un problema di PM Un problema di Programmazione Matematica può perciò essere formalizzato mediante un modello costituito da: Variabili di decisione Indichiamo con il vettore delle variabili di decisione. Le variabili di decisione sono grandezze numeriche il cui valore individua una soluzione del problema. Esse sono dette talvolta anche variabili di scelta e rappresentano di fatto le variabili indipendenti del problema. In un problema di PM, tutte le variabili di decisione devono essere reali, ovvero si deve avere: 5

6 Capitolo 1: La Ricerca Operativa Fondamenti di Ricerca Operativa Regione ammissibile Chiamiamo regione ammissibile il sottoinsieme di contenente tutti e soli i valori che può assumere perché la soluzione da esso individuata sia ammissibile. Avremo perciò: La regione ammissibile è a volte indicata con il termine campo di scelta e identifica di fatto il range entro il quale si troveranno i valori delle variabili di decisione. Essa è costituita da un insieme dei vincoli, solitamente rappresentato da un sistema di equazioni o, più spesso, di disequazioni. Tali vincoli possono essere: - Vincoli tecnici, ovvero legati alle risorse utilizzabili e disponibili. - Altri vincoli, legati alla non negatività delle variabili (che di solito rappresentano delle quantità e perciò sono sempre maggiori o uguali a zero), alla loro interezza,. Funzione obiettivo La funzione obiettivo è una funzione definita da in, la quale esprime in modo quantitativo il gradimento o il costo di ciascuna soluzione ammissibile. Essa corrisponde perciò, in maniera intuitiva, alla variabile dipendente nel problema analizzato. L obiettivo che ci si pone è quello di minimizzare o di massimizzare la funzione obiettivo: opt con, opt = min oppure opt = max. Si noti che minimizzare una funzione equivale a massimizzare la sua opposta, perciò in seguito non ci soffermeremo molto sulla distinzione tra le due diverse situazioni. Risoluzione di un problema di Programmazione Matematica Individuazione di un ottimo globale Risolvere un problema di PM consiste nell individuare una soluzione ammissibile globalmente ottima, ovvero un vettore tale che: 1. Se opt = min, allora valga la relazione: 2. Se opt = max, allora valga la relazione: Casi particolari Talvolta può avvenire che: 1. Il problema sia inammissibile, ovvero si abbia. Questo significa che non è possibile fissare in alcun modo i valori delle variabili di decisione rispettando i vincoli imposti dalla regione ammissibile, perché quest ultima è vuota. 2. Il problema sia illimitato, ovvero per una qualsiasi soluzione ammissibile, è possibile trovare un altra soluzione ammissibile migliore rispetto alla precedente. In simboli: Se opt = min, allora Se opt = max, allora 3. Vi sia un numero elevatissimo (anche infinito) di soluzioni ottime (cioè con lo stesso valore ottimo). Ottimo locale Per le problematiche appena elencate, in alcuni casi ci si deve accontentare di una soluzione ammissibile localmente ottima, ovvero di una soluzione tale che: - Se opt = min, allora: - Se opt = max, allora: Per un valore opportuno. Naturalmente, un problema può ammettere più di un ottimo locale. 6

7 Fondamenti di Ricerca Operativa Capitolo 1: La Ricerca Operativa Casi particolari di Programmazione Matematica Vediamo ora alcuni casi particolari di Programmazione Matematica. Programmazione Lineare (PL) Si parla di Programmazione Lineare (PL) quando la funzione è lineare e la regione ammissibile è del tipo:, con e è lineare per ogni. Si noti che con è indicato il numero di variabili di decisione e con il numero di vincoli. Programmazione Lineare Intera (PLI) Si parla di Programmazione Lineare Intera (PLI) quando la funzione è lineare e la regione ammissibile è del tipo:, con e è lineare per ogni. Si osserva perciò che la PLI è equivalente alla PL, con la sola aggiunta del vincolo di interezza di tutte le variabili di decisione. Programmazione Non Lineare Si parla di Programmazione Non Lineare quando la funzione racchiuso tra superfici regolari, ovvero del tipo: è regolare e la regione ammissibile è un volume, dove è regolare per ogni. Possiamo perciò affermare che la Programmazione Non Lineare comprende al proprio interno sia i problemi di PL, sia i problemi di PLI. In ogni caso, parleremo in seguito soprattutto di problemi di Programmazione Lineare relativi a reti o grafi e, in un secondo momento, di Programmazione Lineare Intera, senza invece analizzare il caso generale di Programmazione Non Lineare. Programmazione a molti obiettivi Come abbiamo già accennato, in alcuni casi gli obiettivi possibili sono più di uno (programmazione a molti obiettivi). In questo caso, solitamente si cerca di ricondursi al caso di programmazione ad un solo obiettivo. A tale scopo, gli approcci possibili sono diversi, ma i due più importanti sono quelli che indicheremo come approccio senza priorità e approccio con priorità. Approccio senza priorità L approccio senza priorità prevede che, detto un obiettivo da minimizzare e detto un obiettivo da massimizzare, si crei un nuovo obiettivo a partire da e convertiti opportunamente in unità di misura omogenee, mediante l utilizzo di due opportuni scalari e. Si otterrà così: min Approccio con priorità Una soluzione alternativa è quella che consiste nell ottimizzare uno degli obiettivi, considerato prioritario rispetto agli altri, riducendo questi ultimi a semplici vincoli di qualità: Dove è una costante opportuna. Ad esempio, nel caso della scelta del computer portatile, è possibile ottimizzare rispetto alle prestazioni, imponendo però che il prezzo ed il peso siano inferiori a opportune soglie. 7

8 Capitolo 1: La Ricerca Operativa Fondamenti di Ricerca Operativa Programmazione Matematica e simulazione Oltre all approccio della Programmazione Matematica, è possibile adottare l approccio della simulazione. Così come la PM, quello della simulazione è un approccio di tipo modellistico, che prevede che si effettui una ricostruzione del sistema reale, sul quale effettuare sperimentalmente la valutazione delle soluzioni possibili per individuare la migliore. Ovviamente, non possono essere valutate tutte le soluzioni ammissibili, e perciò non si ha garanzia di ottimalità. In generale, la simulazione si utilizza quando si devono affrontare dei problemi difficili da formalizzare. Inoltre, spesso si utilizza la Programmazione Matematica per individuare le soluzioni di un problema, e poi attraverso la simulazione si effettua una validazione delle soluzioni trovate o si valuta la qualità di queste ultime. Esempi di modelli Esempio n. 1: mix produttivo Il testo del problema Una azienda produce tre tipi di apparecchiature elettroniche, indicate con, e. Le fasi critiche del ciclo produttivo sono 3: assemblaggio, finitura e controllo di qualità. Si conoscono inoltre i tempi, espressi in ore-uomo, necessari per il completamento di ciascuna fase produttiva per ogni singola apparecchiatura dei 3 tipi prima elencati: Fase Prodotto Assemblaggio Finitura Controllo di qualità Tabella 2: Ore-uomo necessarie per completare le fasi produttive in relazione ai tipi di apparecchiature prodotte. La disponibilità produttiva dell azienda nell orizzonte di pianificazione espressa di 1000 ore-uomo per la fase di assemblaggio, di 800 ore-uomo per la finitura e di 300 ore-uomo da dedicare al controllo di qualità. È noto inoltre che il margine lordo unitario espresso in migliaia di euro è pari a 15 per il prodotto prodotto e a 2 per il prodotto., a 10 per il Si suppone che l azienda possa vendere tutto ciò che produce. Formulare in termini matematici il problema di determinare un piano di produzione che massimizzi il margine lordo complessivo. Il modello corrispondente Variabili di decisione Nel caso analizzato, è opportuno usare 3 variabili di decisione, che indichino per ciascuna tipologia di apparecchiatura la quantità di pezzi da produrre: quantità di apparecchiature della tipologia prodotte dall azienda ( ) Funzione obiettivo In questo caso, la funzione obiettivo è il margine di guadagno dell azienda, che si desidera rendere massimo: Vincoli I vincoli da imporre sono i seguenti: - Limite della disponibilità produttiva relativa alla fase di assemblaggio: - Limite della disponibilità produttiva relativa alla fase di finitura: - Limite della disponibilità produttiva relativa alla fase di controllo di qualità: - Non negatività delle quantità prodotto: Si noti che in questo caso non è stato posto il vincolo di interezza delle variabili, perché ciò consente di rendere molto più semplice la risoluzione del problema. Il problema così formulato è un problema di ottimizzazione lineare. 8

9 Fondamenti di Ricerca Operativa Capitolo 1: La Ricerca Operativa Esempio n. 2: pianificazione degli investimenti Il testo del problema Una società di investimenti finanziari deve decidere la composizione di un portafoglio di titoli. Gli investimenti possibili sono riassunti nella seguente tabella: Investimento Area Capitale [ ] (KEuro) Rendimento atteso [ ] A (settore auto) Germania % B (settore auto) Italia 150 9% C (settore informatica) U.S.A % D (settore informatica) Italia % E (settore elettrodomestici) Italia 125 8% F (settore elettrodomestici) Francia 100 7% G (titoli di stato a breve) Italia 50 3% H (titoli di stato a lungo) Inghilterra 80 5% Tabella 3: Investimenti a disposizione della società di investimenti finanziari. Il capitale a disposizione della società è di 600 KEuro. È noto anche che la società può compiere al massimo 5 investimenti, allo scopo di evitare un eccessiva frammentazione della gestione. Inoltre, è necessario mantenere una certa diversificazione per area geografica, e perciò non si possono effettuare più di 3 investimenti in Italia, né più di 3 investimenti all estero. Formulare in termini matematici il problema di selezione degli investimenti in modo tale da massimizzare il ritorno atteso rispettando i vincoli che mirano a ridurre il rischio. Il modello corrispondente Variabili di decisione In questo caso, possiamo utilizzare una variabile di decisione per ogni investimento, assegnando a tale variabile il valore 0 se il corrispondente investimento non viene effettuato, 1 in caso contrario: - ( ) Funzione obiettivo La funzione obiettivo è il ritorno atteso, che deve essere massimizzato e che è dato dall espressione seguente: Vincoli I vincoli da imporre sono i seguenti: - Investire un capitale non superiore a quello a disposizione della società: - Non superare i 3 investimenti effettuati in Italia: - Non superare i 3 investimenti effettuati all estero: - Imposizione del fatto che le variabili abbiano il valore 0 o 1, e nessun altro valore. Se ad esempio il testo del problema avesse richiesto anche che in presenza di almeno un investimento nel settore informatico si dovesse effettuare almeno un investimento in titoli di stato, allora sarebbe stato necessario aggiungere il vincolo: 9

10 Capitolo 1: La Ricerca Operativa Fondamenti di Ricerca Operativa Esempio n. 3: problema di assegnazione Il testo del problema Proviamo ora a formalizzare un modello matematico relativo all esempio n. 1 di problema decisionale, già esposto in precedenza. Il modello corrispondente Variabili di decisione - - Funzione obiettivo Vogliamo minimizzare il tempo totale per l esecuzione dei progetti, ovverto: Vincoli - Ogni progetto deve essere assegnato ad uno e un solo ingegnere: - Ogni ingegnere deve essere assegnatario di uno e un solo progetto: - Imposizione del fatto che le variabili abbiano il valore 0 o 1, e nessun altro valore. Se ad esempio il testo del problema avesse richiesto anche che in presenza di almeno un investimento nel settore informatico si dovesse effettuare almeno un investimento in titoli di stato, allora sarebbe stato necessario aggiungere il vincolo: Esempio n. 4: localizzazione di impianti Il testo del problema Supponiamo che si abbiano 3 pozzi petroliferi, situati nei punti, e, ciascuno dei quali estrae greggio. Si vuole costruire una raffineria, e a tale scopo si desidera individuare la posizione in cui localizzarla in modo da minimizzare il costo degli oleodotti (che si assume essere proporzionale al quadrato della lunghezza degli oleodotti stessi). Si sa che è vietato costruire una raffineria nel raggio di 100 km attorno al punto. Gli oleodotti possono però attraversare anche l area vietata. Il modello corrispondente Variabili di decisione Funzione obiettivo È il costo degli oleodotti, che deve essere minimizzato: ascissa e ordinata del punto in cui situare la raffineria. Vincoli - Il ( ) deve avere una distanza da non inferiore a 100: - I valori di e devono essere reali: 10

11 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi Capitolo 2: Ottimizzazione su grafi Molti problemi decisionali possono essere formulati utilizzando il linguaggio messo a disposizione dalla teoria dei grafi, anche se in alcuni casi si tratta di problemi che apparentemente non hanno la struttura di una rete. Riprendiamo perciò il concetto di grafo per poi andare ad analizzare le tecniche di ottimizzazione sui grafi stessi. Il concetto di grafo Definizione di grafo non orientato Un grafo non orientato (detto anche grafo semplice) è una coppia ordinata di insiemi, nella quale è un insieme di nodi (o vertici) e è un insieme di coppie di nodi non ordinate, ciascuna delle quali è detta lato o collegamento, che rappresenta appunto il collegamento tra i due nodi facenti parte della coppia stessa. Si noti che le coppie non ordinate verranno in seguito distinte dalle coppie ordinate mediante l utilizzo delle parentesi quadre anziché delle parentesi tonde. In genere indicheremo e. Esempio di grafo non orientato La figura seguente mostra la rappresentazione schematica del grafo matematicamente così descritto: Figura 3: Rappresentazione grafica di un esempio di grafo non orientato. Definizione di grafo orientato Un grafo orientato (o grafo diretto) è una coppia ordinata di insiemi, nella quale è un insieme di nodi (o vertici) e è un insieme di coppie di nodi ordinate, ciascuna delle quali è detta arco, che rappresenta appunto il collegamento tra i due nodi facenti parte della coppia stessa. In sostanza quindi un grafo orientato è del tutto simile ad un grado orientato, salvo il fatto che in un grafo orientato vi è la possibilità che alcuni collegamenti possano essere percorsi solo in un verso e non nel verso opposto. Esempio di grafo orientato La figura seguente mostra la rappresentazione schematica del grafo matematicamente così descritto: Figura 4: Rappresentazione grafica di un esempio di grafo orientato. 11

12 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa Definizioni relative ai grafi Nodi adiacenti (successori) In un grafo non orientato, due nodi sono detti adiacenti se esiste un lato che li collega, ovvero se esiste un lato avente per estremi i due nodi in analisi. In un grafo orientato, un nodo si dice adiacente a (o successore di ) se esiste l arco. Lato (arco) incidente in un nodo e arco uscente da un nodo In un grafo non orientato un lato si dice incidente in un nodo se il nodo è un estremo del lato stesso. In un grafo orientato, un arco si dice incidente su un nodo se esiste un nodo per il quale si ha, mentre si dice uscente da un nodo se esiste un nodo per il quale si ha. Grado di un nodo In un grafo non orientato, chiamiamo grado di un nodo il numero di lati incidenti nel nodo stesso. In un grafo orientato, si chiama grado di ingresso di un nodo il numero di archi incidenti sul nodo stesso, mentre si chiama grado di uscita del nodo il numero di archi uscenti dal nodo stesso. Cammino (orientato) da un nodo ad un altro In un grafo non orientato, si chiama cammino dal nodo al nodo una sequenza di lati del tipo: Analogamente, in un grafo orientato, si chiama cammino orientato dal nodo al nodo un insieme di archi del tipo: Nodi connessi In un grafo qualsiasi, un nodo si dice connesso a un nodo se esiste un cammino (orientato nel caso di grafo adiacente) da a. Si osserva facilmente che due nodi adiacenti sono necessariamente connessi. Grafo connesso Un grafo si dice connesso se per ogni possibile coppia di nodi oppure esiste un cammino (eventualmente orientato) da a. In altri termini, un grafo connesso è un grafo nel quale ogni nodo è connesso ad ogni altro nodo. Ciclo e circuito In un grafo non orientato si dice ciclo un cammino da un nodo al nodo stesso. In altri termini, il ciclo è un cammino nel quale vale. In un grafo orientato si dice circuito un cammino da un nodo al nodo stesso. Il circuito è quindi un cammino orientato nel quale vale. Grafo ciclico e grafo aciclico Un grafo si dice ciclico se contiene almeno un ciclo (o circuito). IN caso contrario, il grafo si dice aciclico. Grafo completo Un grafo si dice completo se ognuno dei suoi nodi è adiacente a tutti i restanti nodi del grafo stesso. In altri termini, un grafo è completo se esistono tutti i lati (o tutti gli archi) possibili tra i nodi appartenenti all insieme. In un grafo non orientato completo si ha: Mentre in un grafo orientato completo vale la relazione: Si può affermare che nel caso generale il numero di archi non supera il valore indicato dalle formule sopra riportate. 12

13 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi Grafo bipartito Un grafo si dice bipartito se esiste una bi-partizione dell insieme tale che nessun lato colleghi nodi dello stesso sottoinsieme di. Per bi-partizione di si intende chiaramente una coppia di insiemi tale che e. Si osserva che in un grafo bipartito il numero massimo di archi è dato dal prodotto tra le cardinalità delle due partizioni di, ovvero: Esempio: La figura seguente mostra un esempio di grafo bipartito: Figura 5: Esempio di grafo bipartito. Si nota infatti in maniera immediata che ogni arco del grafo collega un nodo della bi-partizione nodo della bi-partizione. con un Taglio, taglio entrante e taglio uscente Dato un grafo e dato un insieme di nodi appartenenti a, si chiama taglio (o cut) indotto da e si indica con l insieme di tutti e soli i lati aventi un estremo in e un estremo nel suo complemento,, ovvero: Si chiama inoltre taglio uscente l insieme di tutti e soli i lati (o archi) uscenti da un nodo appartenente a e incidenti su un nodo appartenente al complemento di S, indicato con. In simboli: Si chiama infine taglio entrante l insieme di tutti e soli i lati (o archi) incidenti su un nodo appartenente a e uscenti da un nodo appartenente al complemento di S, indicato con. In simboli: Si può facilmente osservare che in un grafo non orientato si ha: Inoltre, vale sempre la relazione: Sottografo Dato un grafo, diciamo che il grafo è un sottografo di G se,, e inoltre contiene solamente lati che collegano nodi appartenenti a. 13

14 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa Gli alberi Albero Un albero è un grafo non orientato, connesso e aciclico. Gli alberi sono anche detti tree. I nodi di grado 1 di un albero sono anche detti foglie. Albero di supporto Dato un grafo e dato un albero, diciamo che è un albero di supporto di se contiene tutti i nodi di, ovvero. Lato di diminuzione Sia un albero di supporto del grafo. Un lato è detto di diminuzione se aggiungendolo all insieme T si crea un ciclo ed esiste un lato con. Questo significa che un lato di diminuzione è un lato che, sostituito ad un altro lato all interno dell albero di supporto, ci fa ottenere un nuovo albero di supporto con costo inferiore rispetto a quello di partenza. Proprietà degli alberi Proprietà 1 Ogni albero che abbia nodi ha almeno 2 foglie. DIM: Procediamo per assurdo. Supponiamo di avere 0 foglie. In tal caso, tutti i nodi dell albero hanno grado maggiore di 1, perciò tutti i nodi dell albero hanno almeno due lati incidenti. Siccome però non si possono avere cicli, ogni nodo può essere visitato una sola volta, e perciò ogni volta che introduciamo un nodo, dobbiamo aggiungere anche un lato che lo collega ad un nuovo nodo, con un procedimento che è infinito (cioè sarebbe possibile un viaggio infinito su un grafo finito). Lo stesso discorso può essere ripetuto ipotizzando la presenza di una sola foglia. Proprietà 2 Ogni albero che abbia nodi ha esattamente lati. DIM: Procediamo per induzione: 1. Caso base: consideriamo il caso. In tal caso, non saranno presenti lati, e perciò la proprietà risulta verificata, ovvero i lati presenti sono. 2. Passo induttivo: dobbiamo verificare che se per un albero di nodi si hanno lati, per un albero di nodi si hanno lati. Consideriamo a tal proposito un albero con nodi. Se eliminiamo dall albero una foglia e l unico lato su essa incidente, otteniamo un albero con nodi che, per la nostra ipotesi, ha lati. Siccome per ottenere tale albero abbiamo eliminato un solo lato dall albero di partenza, significa necessariamente che i lati di tale albero erano, ovvero. Proprietà 3 In ogni albero, esiste un unico cammino tra ogni coppia di nodi. Proprietà 4 Aggiungendo ad un albero qualsiasi un qualsiasi lato, si crea uno ed un solo ciclo, formato dall unico cammino che congiunge i due lati uniti dal nuovo lato, e dal lato stesso. Proprietà 5 (di scambio) Sia un albero di supporto di. Sia inoltre un lato tale che e sia l unico ciclo dell albero (come noto dalla proprietà 4, infatti, aggiungendo all albero si ottiene un nuovo albero con uno ed un solo ciclo). Per ogni lato, il grafo è ancora un albero di supporto di. 14

15 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi Applicazioni dei grafi A questo punto è opportuno andare ad analizzare quali sono le situazioni nelle quali i grafi si rendono utili per la realizzazione del modello matematico di un certo problema. Relazioni di precedenza Una possibile applicazione dei grafi è quella che consiste nell utilizzarli per la rappresentazione di relazioni di precedenza, ad esempio tra attività. Nel dettaglio, per precedenza tra attività si intende dire che una certa attività è in relazione di precedenza con un altra se la prima deve necessariamente essere completata prima che possa iniziare la seconda. A tale scopo, è possibile utilizzare un grafo orientato nel quale i nodi rappresentano le singole attività, facendo poi in modo che per ogni arco l attività sia prioritaria rispetto a. Raggiungibilità tra luoghi L ambito nel quale risulta più intuitivo utilizzare i grafi è quello dello studio della raggiungibilità tra luoghi: ogni luogo (ad esempio, ogni città) è rappresentato da un nodo del grafo e ogni collegamento diretto tra una città ed un altra è rappresentato mediante un arco dalla città di partenza a quella di arrivo (in generale è più opportuno utilizzare grafi orientati, perché è possibile che vi siano strade a senso unico). Relazioni di compatibilità e incompatibilità Utilizzando una grafo bipartito è possibile mettere in evidenza una relazione di compatibilità o incompatibilità. Supponiamo ad esempio di avere un insieme di persone ed un insieme di incarichi, e ipotizziamo che alcune persone possano essere incompatibili con uno o più incarichi: possiamo rappresentare questa situazione mediante un grafo bipartito, in modo che i nodi di una delle due partizioni del grafo siano le persone, i nodi dell altra partizione siano gli incarichi e i lati del grafo colleghino solo le persone agli incarichi con i quali sono incompatibili. Rappresentazioni di un grafo All interno di un programma, un grafo può essere rappresentato mediante strutture dati di tipo diverso. Le soluzioni più di frequente adottate sono 2: la matrice di incidenza nodo-nodo e la lista degli archi. Matrice di incidenza nodo-nodo Nel caso in cui il grafo sia molto denso o quasi completo, una maniera efficiente per rappresentare il grafo è quella di utilizzare una matrice quadrata (dove si ricorda che è il numero di nodi, ovvero ), nella quale l elemento alla posizione ha valore 1 se e solo se esiste un arco (o lato) uscente dal nodo e incidente nel nodo del grafo, mentre in caso contrario tale elemento assume il valore 0. Naturalmente, in caso di grafo non orientato la matrice di incidenza nodo-nodo è sempre simmetrica. Lista dei nodi incidenti (o dei nodi successori) Una soluzione alternativa, adatta soprattutto nel caso in cui il grafo sia piuttosto sparso, consiste nel memorizzare tutti i nodi del grafo, associando a ciascuno di essi una lista la quale rappresenti nel caso di grafo orientato l elenco di tutti i nodi successori al nodo al quale è associata la lista stessa; nel caso in cui il grafo in analisi sia un grafo non orientato, tale lista rappresenta invece tutti i nodi incidenti nel nodo in analisi. 15

16 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa Il problema di raggiungibilità in un grafo orientato Definizione del problema di raggiungibilità Dato un grafo orientato e un nodo, il problema della raggiungibilità consiste nel determinare l insieme di tutti e soli i nodi del grafo raggiungibili da. Algoritmo di esplorazione del grafo La soluzione a tale problema è data dall algoritmo di esplorazione del grafo, il quale prevede che si utilizzi un insieme, il quale potrebbe ad esempio, ma non necessariamente, essere gestito mediante una coda. Si utilizzerà inoltre l insieme che al termine conterrà l insieme dei nodi raggiungibili da. In particolare, l algoritmo prevede che si parta dal nodo, aggiungendo tale nodo a. Fino a quando ci sono elementi in, si procede prelevando da esso un certo nodo, che viene poi eliminato dall insieme stesso e aggiunto ad. Si aggiungono quindi a tutti i nodi adiacenti al nodo prelevato dallo stesso, e poi si passa ad un eventuale ulteriore nodo presente in, ripetendo le operazioni appena illustrate. Di seguito è riportato lo pseudo-codice relativo a tale algoritmo: BEGIN Q := {s}; M := ; WHILE Q DO /* elabora un nodo raggiungibile h Q */ scegliere un nodo h Q e porre Q := Q \ {h}; M := M {h}; /* marcare h */ FOR EACH j S(h) DO IF j M AND j Q THEN Q := Q {j} END-IF END-FOR END-WHILE END Complessit{ dell algoritmo di esplorazione del grafo Ad ogni iterazione del ciclo while: 1. si sceglie un nodo non ancora elaborato, lo si estrae da e lo si marca inserendolo in ; 2. si inseriscono in i vertici non ancora marcati che possono essere raggiunti direttamente da. Siccome però ogni nodo viene considerato una sola volta, di fatto tutti i lati vengono considerati una sola volta, e perciò il contenuto del ciclo for each viene eseguito in totale esattamente volte. La parte restante del ciclo while ha invece una complessità pari a, perciò si ha: Siccome nel caso peggiore sappiamo che vale la relazione: Possiamo concludere: 16

17 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi Alberi di supporto di costo minimo Il problema dell individuazione degli alberi di supporto di costo minimo Formulazione matematica del problema Il problema dell individuazione di un albero di supporto di costo minimo può essere così formulato: dato un grafo e data una certa funzione di costo, ovvero, per ogni si vuole determinare un albero di supporto di che abbia il costo minimo tra tutti i possibili alberi di supporto di. Possiamo perciò affermare che la regione ammissibile è in questo caso l insieme di tutti i possibili alberi di supporto di, e che la funzione obiettivo è: Dove è il costo associato al lato del grafo di partenza. Osservazioni Il problema appena formulato ha numerose applicazioni, tra le quali la più classica è la progettazione di reti di comunicazione, di teleriscaldamento,.... Altre applicazioni sono ad esempio la memorizzazione compatta di sequenze (DNA) e la diffusione di messaggi segreti. Prendiamo in considerazione il caso applicativo in cui si voglia costruire una rete stradale per collegare tra loro un certo numero di città (che saranno i nodi del grafo) mediante delle possibili strade (i lati del grafo), in modo tale che il costo totale risulti essere minimo (potremmo ipotizzare di usare come funzione di costo i chilometri di strada da costruire, ad esempio). Si nota che: 1. Ogni coppia di città deve poter comunicare, e perciò la rete stradale deve essere un sottografo connesso del grafo di partenza, che contenga tutti i nodi di quest ultimo. 2. Per avere costo minimo, è chiaro che non possono esserci cicli. Da tali osservazioni consegue in maniera molto semplice che il sottografo ricercato è proprio un albero di supporto di costo minimo. Teorema di Arthur Cayley (1889) Il teorema di Cayley afferma che, dato un grafo completo costituito da supporto di tale grafo è pari a, per. nodi, il numero di possibili alberi di Di conseguenza, il numero di grafi possibili cresce in maniera estremamente rapida al crescere di : anche se il problema è apparentemente molto semplice da risolvere (perché comunque è chiaro che il numero di sottografi possibili di un grafo finito è finito, e perciò non può essere messa in dubbio la decidibilità del problema), occorre individuare un algoritmo efficiente per risolverlo, perché l esplorazione esaustiva di tutte le possibili soluzioni non è attuabile nella pratica. Proprietà degli alberi ottimi Possiamo ora enunciare una proprietà che ci tornerà utile in seguito, e che risulta in realtà piuttosto ovvia dalla definizione che abbiamo in precedenza dato del termine lato di diminuzione: un albero di supporto è ottimo se e solo se non esistono lati di diminuzione. 17

18 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa L algoritmo di Prim L algoritmo di Prim è un algoritmo che consente di risolvere il problema dell individuazione di uno tra gli alberi di supporto di costo minimo di un grafo dato. In particolare, si tratta di un algoritmo greedy, ovvero un algoritmo che ad ogni passo compie la scelta localmente migliore, senza rimettere in discussione le scelte precedenti. Spiegazione intuitiva In sostanza, l algoritmo di Prim prevede che si parta da un nodo qualsiasi del grafo e che lo si inserisca in un insieme di nodi inizialmente vuoto. Ad ogni passo si considera il taglio uscente da tale insieme di nodi e si seleziona uno dei lati ad esso appartenente avente il costo minimo tra tutti quelli del taglio stesso. Il lato appena selezionato viene inserito nel grafo di supporto minimo che costituirà al termine la soluzione del problema, mentre il nodo sul quale incide tale lato verrà aggiunto all insieme di nodi utilizzato dall algoritmo stesso. Il procedimento viene iterato e la procedura termina quando tutti i nodi sono stati aggiunti all insieme (o, equivalentemente, quando sono stati inseriti nell albero di supporto esattamente lati, perché è noto che un albero con nodi ha lati). Pseudocodice Di seguito è riportato lo pseudocodice dell algoritmo (ipotizzando di avviare la procedura dal nodo 1): BEGIN END T:= ; S:={1}; WHILE T < n - 1 DO individuare [v,h] δ(s) di costo minimo, con v S e h N \ S; T := T {[v,h]}; S := S {h}; END-WHILE Analisi di complessità La precedente implementazione ha un costo : il ciclo while viene iterato volte e l individuazione del lato di costo minimo tra quelli del taglio ha, ad ogni iterazione, un costo. Riduzione della complessità Tuttavia, è possibile implementare l algoritmo in una maniera più efficiente, con costo. L idea di base è quella di conservare in un opportuna struttura dati l insieme dei lati appartenenti al taglio indotto sul grafo dall insieme dei nodi già aggiunti all albero di supporto, conservando però solo un lato per ogni nodo di arrivo, e precisamente quello a costo minimo tra tutti i nodi del taglio che incidono sul nodo di arrivo. Per farlo, utilizziamo una struttura dati che prevede l uso di: - un sottoinsieme dei lati del grafo, il quale rappresenta tutti i lati già inseriti nell albero; - un sottoinsieme, contenente tutti i nodi incidenti ai lati selezionati (perciò è l insieme di tutti i nodi già considerati nell albero di supporto); - Un array che contiene, per ogni nodo non ancora inserito nell albero di supporto, il costo minimo del lato che colleghi un nodo qualsiasi di con tale nodo (nel caso in cui non esistano collegamenti diretti, il corrispondente valore viene posto ad ). In simboli: - Un array contenente, per ogni nodo non ancora inserito nell albero di supporto, il nodo precedente per raggiungerlo con il lato il cui costo è individuato dal corrispondente valore inserito nell array. In simboli: 18

19 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi L algoritmo risulta perciò essere il seguente: BEGIN END T := ; S := {1}; FOR j:=2 TO n DO /* nodi j S */ C[j] := c 1j ; pred[j] := 1; END-FOR FOR k:=1 TO n 1 DO /* selezionare n 1 lati albero */ min := + ; FOR j := 2 TO n DO /* scegliere lato min in δ(s) */ IF j S AND (C[j] < min) THEN min := C[j]; h := j; END-IF END-FOR S := S {h}; T := T {[pred[h],h]}; /* estendere S e T */ FOR j:=2 TO n DO /* aggiornare C[j] e pred[j] j S */ IF j S AND (c hj < C[j]) THEN C[j] := c hj ; pred[j] := h; END-IF END-FOR END-FOR Ovvero: iniziamo considerando il nodo 1. Aggiorniamo le strutture e in modo che contengano i dati iniziali (cioè inizialmente il predecessore di tutti i nodi è 1 con un costo pari al costo del lato che collega 1 al corrispondente nodo). Dopodiché, si itera per volte il procedimento che consente di inserire un nuovo lato nell albero di supporto (sappiamo che un albero con nodi ha lati). Ad ogni iterazione, si trova il minimo tra tutti i valori contenuti in e si inseriscono in il lato corrispondente e in il nodo che viene raggiunto aggiungendo tale lato. Si aggiornano poi le strutture e. La fase di inizializzazione ha una complessità ; si ha poi (in serie al precedente) un ciclo ripetuto volte, all interno del quale si hanno l operazione di scelta del lato, che ha a sua volta un costo, e quella di aggiornamento, anch essa con costo. In conclusione, l algoritmo ha complessità. Per grafi sparsi, ove complessità a., si può usare una struttura dati più sofisticata che consente di ridurre la Esattezza dell algoritmo L algoritmo di Prim è esatto, cioè fornisce sempre un albero di supporto di costo minimo, indipendentemente dalla scelta del nodo di partenza e dalle scelte dei lati nei casi in cui, durante una certa iterazione, si abbiano più lati di costo minimo. Possiamo dimostrarlo sfruttando la proprietà che afferma che se un albero di supporto è ottimo, allora non esistono lati di diminuzione. In particolare, da ciò consegue che, dato un sottoinsieme dei nodi del grafo di partenza e dato un lato appartenente al taglio tale che sia un lato di costo minimo tra quelli di, allora esiste un albero di supporto ottimo contenente (cioè ogni scelta fatta dall algoritmo di Prim ci porta ad un albero di costo ottimo). Dimostriamo tale proposizione per assurdo: se esistesse un albero ottimo tale che, allora aggiungendo all albero si ottiene un ciclo nel quale esiste uno e un solo lato. Si hanno perciò due possibilità: 1. Il costo di e quello di sono uguali ( ), e quindi l albero di partenza è ottimo perché ha lo stesso costo di che, per ipotesi, è ottimo; 2. Il costo è superiore a quello di, perciò non è ottimo, perché è un lato di diminuzione. 19

20 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa Dimostrazione della proposizione sugli alberi di supporto a costo minimo A questo punto, possiamo anche dimostrare la proposizione che abbiamo in precedenza solo enunciato, secondo la quale un albero di supporto è a costo minimo se e solo se non possiede lati di diminuzione. - Risulta ovvio che se un albero è ottimo, esso non possiede lati di diminuzione (questo deriva dalla definizione di lato di diminuzione, ed è la cosiddetta proprietà degli alberi ottimi). Del resto, abbiamo usato questa proprietà per dimostrare l ottimalità della soluzione fornita dall algoritmo di Prim. - Vogliamo ora dimostrare che, se un albero non ha lati di diminuzione, allora è ottimo. Per farlo, possiamo sfruttare il fatto che le soluzioni fornite dall algoritmo di Prim sono sempre alberi ottimi. Possiamo infatti mostrare che con semplici operazioni di scambio si può trasformare l albero ottimo fornito dall algoritmo di Prim in senza modificare il costo. Supponiamo che lati di non appartengano a e mostriamo come con una operazione di scambio si può trasformare in un albero con lo stesso costo di ma con lati che non appartengono a. Applicando volte un operazione di questo tipo si ottiene un albero identico a con, e perciò è ottimo. Supponiamo che sia il primo lato appartenente a ma non a. Se aggiungiamo tale lato a, otteniamo un ciclo. Naturalmente, nel ciclo così creatosi deve esistere un lato adiacente ad uno dei lati in comune tra e. A questo punto possiamo osservare che: 1. Siccome per ipotesi non ci sono lati di diminuzione in, avremo. 2. Siccome per ipotesi è il risultato dell algoritmo di Prim, allora dovremo avere. Di conseguenza, avremo, e perciò abbiamo verificato che possiamo ottenere un grafo con lati diversi da, ma con lo stesso costo. Iterando il procedimento, otterremo, che perciò risulta avere lo stesso costo dell albero fornito dall algoritmo di Prim, e perciò risulta essere ottimo. L algoritmo di Kruskal L algoritmo di Kurskal è un algoritmo alternativo rispetto a quello di Prim, che consente ancora l individuazione di un albero di supporto ottimo a partire da un certo grafo. Spiegazione intuitiva L idea sulla quale si basa l algoritmo di Kruskal è quella di ordinare secondo il loro costo tutti i lati che costituiscono il grafo di partenza. Si procede poi inserendo nell albero di supporto (inizialmente privo di lati) i lati così ordinati, partendo da quelli con costo minore ed inserendoli solo a patto che l inserimento del lato stesso non provochi alcun ciclo. Una volta inseriti lati, si è ottenuto un albero di supporto minimo. Pseudocodice Di seguito è riportato lo pseudocodice relativo all algoritmo di Kruskal: BEGIN END ordinare i lati di G secondo costi non decrescenti; T* := ; WHILE T* < (n-1) DO scegliere un lato e E di costo minimo; E := E \ {e}; IF T* {e} non ha cicli THEN T* := T* {e}; END IF END-WHILE 20

21 Fondamenti di Ricerca Operativa Capitolo 2: Ottimizzazione su grafi Analisi della complessità 1. Come noto, l algoritmo degli m lati che costituiscono il grafo di partenza ha un costo 2. Si ha poi un ciclo iterato volte, all interno del quale si deve verificare se l inserimento del nuovo lato comporta la creazione di cicli. Tale verifica può avvenire in costo costante, a patto che si conosca la componente connessa alla quale ciascun nodo appartiene: in questo caso infatti per verificare se si creano cicli è sufficiente controllare se i nodi congiunti dal nuovo lato appartengono alla stessa componente connessa (e in questo caso si avrà un ciclo) oppure no. 3. In questo modo è però poi necessario eseguire, all interno dello stesso ciclo iterato volte, un operazione di aggiornamento delle etichette, che richiede un costo. In conclusione, la complessità dell algoritmo è: Siccome nel caso peggiore sappiamo che, possiamo anche scrivere: Si può però notare che, mediante l uso di opportune strutture dati, è possibile ridurre ulteriormente la complessità dell algoritmo di Kruskal. In ogni caso, la complessità dell algoritmo di Kruskal è superiore rispetto a quella dell algoritmo di Prim. Esattezza dell algoritmo di Kruskal Consideriamo un generico lato scartato dall albero ottenuto come risultato dell algoritmo di Kruskal. Inoltre, siccome i lati vengono esplorati in ordine non decrescente di costo, è chiaro che l inserimento del lato darebbe vita ad un ciclo nel quale tutti i lati diversi da hanno un costo non superiore al costo di, e perciò è facile concludere che non esistono lati di diminuzione, e quindi per la condizione di ottimalità possiamo affermare che l albero è ottimo. Verifica di ottimalità La condizione di ottimalità può essere utilizzata per verificare se un certo albero di supporto è ottimo oppure no: è sufficiente verificare che tutti i lati appartenenti al grafo di partenza ma non appartenenti a non siano lati di diminuzione; se almeno uno è un lato di diminuzione, l albero non è ottimo, altrimenti lo è. 21

22 Capitolo 2: Ottimizzazione su grafi Fondamenti di Ricerca Operativa Il problema dei cammini ottimi Formulazione del problema dei cammini ottimi Introduzione al problema Il problema dei cammini ottimi (o minimi, o massimi) è un problema molto diverso da quello dell individuazione dell albero di supporto minimo. Ricercare i cammini ottimi significa infatti trovare per una certa coppia di nodi il cammino più breve che consente di collegare i due nodi della coppia stessa. Come vedremo, in realtà se si sovrappongono tutti i cammini ottimi a partire da una certa sorgente si ottiene ancora un albero di supporto, che però non è affatto l albero di supporto ottimo. Formulazione matematica del problema Dato un grafo orientato, data una funzione di costo, che associa ad ogni lato appartenente ad il relativo costo, e dati due nodi e si vuole determinare un cammino di costo ottimo (cioè o minimo o massimo) da a, dove è detto origine. Applicazioni del problema I problemi di cammini ottimi (minimi o massimi) hanno innumerevoli applicazioni; ad esempio: 1. Pianificazione e gestione di reti di trasporto, elettriche, idrauliche, di comunicazione, 2. Pianificazione di progetti complessi (relazioni logiche tra entità). Osservazioni Si noti che la formulazione che abbiamo fornito fa riferimento ai grafi orientati, i quali però sono di fatto una generalizzazione dei grafi non orientati: ogni grafo non orientato è rappresentabile mediante un grafo orientato nel quale per ogni lato, si ha sempre anche il lato all interno del grafo stesso. Si noti inoltre che, come vedremo, in questo caso non è applicabile un approccio di tipo greedy: la soluzione fornita dall algoritmo non sarebbe infatti una soluzione ottima. L algoritmo di Dijkstra L algoritmo Sia dato un grafo orientato e sia il costo associato all arco, con se. Sia inoltre un nodo del grafo. L algoritmo di Dijkstra consente di individuare un cammino minimo che ha come sorgente per ognuno dei nodi appartenenti ad come destinazione, a patto che per ogni nodo appartenente ad A si abbia. Pseudocodice Lo pseudocodice che rappresenta formalmente l algoritmo è il seguente: BEGIN S := {s}; L[s] := 0; pred[s] := s; WHILE S n DO individuare (v,h) δ + (S) : L[v] + c vh = min{l[i] + c ij : (i,j) δ + (S)}; L[h] := L[v] + c vh ; pred[h] := v; S := S {h}; END-WHILE END 22

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

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 Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

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

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Ottimizzazione Multi Obiettivo

Ottimizzazione Multi Obiettivo Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

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

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000

mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000 1.7 Servizi informatici. Un negozio di servizi informatici stima la richiesta di ore di manutenzione/consulenza per i prossimi cinque mesi: mese 1 2 3 4 5 richiesta 6000 7000 8000 9500 11000 All inizio

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Ricerca Operativa e Logistica

Ricerca Operativa e Logistica Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 2011/2012 Lezione 10: Variabili e vincoli logici Variabili logiche Spesso nei problemi reali che dobbiamo affrontare ci sono dei

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

1 Applicazioni Lineari tra Spazi Vettoriali

1 Applicazioni Lineari tra Spazi Vettoriali 1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

b i 1,1,1 1,1,1 0,1,2 0,3,4

b i 1,1,1 1,1,1 0,1,2 0,3,4 V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

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

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

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

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

La Programmazione Lineare

La Programmazione Lineare 4 La Programmazione Lineare 4.1 INTERPRETAZIONE GEOMETRICA DI UN PROBLEMA DI PROGRAMMAZIONE LINEARE Esercizio 4.1.1 Fornire una rappresentazione geometrica e risolvere graficamente i seguenti problemi

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

PROGRAMMAZIONE LINEARE IN DUE VARIABILI

PROGRAMMAZIONE LINEARE IN DUE VARIABILI 1 PROGRAMMAZIONE LINEARE IN DUE VARIABILI La ricerca operativa nata durante la seconda guerra mondiale ed utilizzata in ambito militare, oggi viene applicata all industria, nel settore pubblico e nell

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE 1. Proporzionalità diretta e proporzionalità inversa Analizziamo le seguenti formule Peso Lordo = Peso Netto + Tara Ricavo = Utile + Costo Rata = Importo + Interesse

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

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

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ

LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ LA MASSIMIZZAZIONE DEL PROFITTO ATTRAVERSO LA FISSAZIONE DEL PREZZO IN FUNZIONE DELLE QUANTITÀ In questa Appendice mostreremo come trovare la tariffa in due parti che massimizza i profitti di Clearvoice,

Dettagli

Consideriamo due polinomi

Consideriamo due polinomi Capitolo 3 Il luogo delle radici Consideriamo due polinomi N(z) = (z z 1 )(z z 2 )... (z z m ) D(z) = (z p 1 )(z p 2 )... (z p n ) della variabile complessa z con m < n. Nelle problematiche connesse al

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

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

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito

Dettagli

Il Metodo Branch and Bound

Il Metodo Branch and Bound Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale

Dettagli

Ogni azienda ha la necessità di conoscere il proprio sistema dei costi sia per controllare la situazione esistente che per verificare il

Ogni azienda ha la necessità di conoscere il proprio sistema dei costi sia per controllare la situazione esistente che per verificare il Ogni azienda ha la necessità di conoscere il proprio sistema dei costi sia per controllare la situazione esistente che per verificare il raggiungimento degli obiettivi avendo come fine il mantenimento

Dettagli

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007

RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007 RICERCA OPERATIVA GRUPPO B prova scritta del 22 marzo 2007 Rispondere alle seguenti domande marcando a penna la lettera corrispondente alla risposta ritenuta corretta (una sola tra quelle riportate). Se

Dettagli

Teoria dei Giochi. Anna Torre

Teoria dei Giochi. Anna Torre Teoria dei Giochi Anna Torre Almo Collegio Borromeo 14 marzo 2013 email: anna.torre@unipv.it sito web del corso:www-dimat.unipv.it/atorre/borromeo2013.html IL PARI O DISPARI I II S T S (-1, 1) (1, -1)

Dettagli

La Minimizzazione dei costi

La Minimizzazione dei costi La Minimizzazione dei costi Il nostro obiettivo è lo studio del comportamento di un impresa che massimizza il profitto sia in mercati concorrenziali che non concorrenziali. Ora vedremo la fase della minimizzazione

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine:

Prodotto Disponibilità Costo 1 3000 3 2 2000 6 3 4000 4. e rispettando le seguenti regole di composizione delle benzine: 1.1 Pianificazione degli investimenti. Una banca deve investire C milioni di Euro, e dispone di due tipi di investimento: (a) con interesse annuo del 15%; (b) con interesse annuo del 25%. Almeno 1 di C

Dettagli

Fondamenti e didattica di Matematica Finanziaria

Fondamenti e didattica di Matematica Finanziaria Fondamenti e didattica di Matematica Finanziaria Silvana Stefani Piazza dell Ateneo Nuovo 1-20126 MILANO U6-368 silvana.stefani@unimib.it 1 Unità 9 Contenuti della lezione Operazioni finanziarie, criterio

Dettagli

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

Barriere assorbenti nelle catene di Markov e una loro applicazione al web Università Roma Tre Facoltà di Scienze M.F.N Corso di Laurea in Matematica a.a. 2001/2002 Barriere assorbenti nelle catene di Markov e una loro applicazione al web Giulio Simeone 1 Sommario Descrizione

Dettagli

Luigi Piroddi piroddi@elet.polimi.it

Luigi Piroddi piroddi@elet.polimi.it Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

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

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero

Dettagli

Management Sanitario. Modulo di Ricerca Operativa

Management Sanitario. Modulo di Ricerca Operativa Management Sanitario per il corso di Laurea Magistrale SCIENZE RIABILITATIVE DELLE PROFESSIONI SANITARIE Modulo di Ricerca Operativa Prof. Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Modelli di Programmazione Lineare e Programmazione Lineare Intera Modelli di Programmazione Lineare e Programmazione Lineare Intera 1 Azienda Dolciaria Un azienda di cioccolatini deve pianificare la produzione per i prossimi m mesi. In ogni mese l azienda ha a disposizione

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

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

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento

Dettagli

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Matematica 1 - Corso di Laurea in Ingegneria Meccanica Matematica 1 - Corso di Laurea in Ingegneria Meccanica Esercitazione su massimi e minimi vincolati 9 dicembre 005 Esercizio 1. Considerare l insieme C = {(x,y) R : (x + y ) = x } e dire se è una curva

Dettagli

Metodi e Modelli Matematici di Probabilità per la Gestione

Metodi e Modelli Matematici di Probabilità per la Gestione Metodi e Modelli Matematici di Probabilità per la Gestione Prova scritta del 30/1/06 Esercizio 1 Una banca ha N correntisti. Indichiamo con N n il numero di correntisti esistenti il giorno n-esimo. Descriviamo

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Esercitazione di laboratorio: Problema del venditore Terza parte 2 1 Esercizio del venditore

Dettagli

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

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1 Analisi delle reti 1. Analisi nodale (metodo dei potenziali dei nodi) 1.1 Analisi nodale in assenza di generatori di tensione L'analisi nodale, detta altresì metodo dei potenziali ai nodi, è un procedimento

Dettagli

1 Serie di Taylor di una funzione

1 Serie di Taylor di una funzione Analisi Matematica 2 CORSO DI STUDI IN SMID CORSO DI ANALISI MATEMATICA 2 CAPITOLO 7 SERIE E POLINOMI DI TAYLOR Serie di Taylor di una funzione. Definizione di serie di Taylor Sia f(x) una funzione definita

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

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

I CIRCUITI ELETTRICI. Prima di tutto occorre mettersi d accordo anche sui nomi di alcune parti dei circuiti stessi. I CIRCUITI ELETTRICI Prima di tutto occorre mettersi d accordo anche sui nomi di alcune parti dei circuiti stessi. Definiamo ramo un tratto di circuito senza diramazioni (tratto evidenziato in rosso nella

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Capitolo 25: Lo scambio nel mercato delle assicurazioni

Capitolo 25: Lo scambio nel mercato delle assicurazioni Capitolo 25: Lo scambio nel mercato delle assicurazioni 25.1: Introduzione In questo capitolo la teoria economica discussa nei capitoli 23 e 24 viene applicata all analisi dello scambio del rischio nel

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura

Dettagli

Paperone e Rockerduck: a cosa serve l antitrust?

Paperone e Rockerduck: a cosa serve l antitrust? Paperone e Rockerduck: a cosa serve l antitrust? Paperone Anna Torre, Rockerduck Ludovico Pernazza 1-14 giugno 01 Università di Pavia, Dipartimento di Matematica Concorrenza Due imprese Pap e Rock operano

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

Capitolo 26: Il mercato del lavoro

Capitolo 26: Il mercato del lavoro Capitolo 26: Il mercato del lavoro 26.1: Introduzione In questo capitolo applichiamo l analisi della domanda e dell offerta ad un mercato che riveste particolare importanza: il mercato del lavoro. Utilizziamo

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Esercizi di Macroeconomia per il corso di Economia Politica

Esercizi di Macroeconomia per il corso di Economia Politica Esercizi di Macroeconomia per il corso di Economia Politica (Gli esercizi sono suddivisi in base ai capitoli del testo di De Vincenti) CAPITOLO 3. IL MERCATO DEI BENI NEL MODELLO REDDITO-SPESA Esercizio.

Dettagli

Semantica Assiomatica

Semantica Assiomatica Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,

Dettagli

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

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme: Lezione 1 Gli Insiemi La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme: degli iscritti ad un corso di laurea delle stelle in cielo dei punti di un piano

Dettagli

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme 1. L insieme R. Per lo svolgimento del corso risulta particolarmente utile considerare l insieme R = R {, + }, detto anche retta reale estesa, che si ottiene aggiungendo all insieme dei numeri reali R

Dettagli

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE

REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE REGOLAZIONE (E TASSAZIONE OTTIMALE) DI UN MONOPOLIO CON PIÙ LINEE DI PRODUZIONE Nella Sezione 16.5 abbiamo visto come un regolatore che voglia fissare il prezzo del monopolista in modo da minimizzare la

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento

Dettagli

Ottimizazione vincolata

Ottimizazione vincolata Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

Ai fini economici i costi di un impresa sono distinti principalmente in due gruppi: costi fissi e costi variabili. Vale ovviamente la relazione:

Ai fini economici i costi di un impresa sono distinti principalmente in due gruppi: costi fissi e costi variabili. Vale ovviamente la relazione: 1 Lastoriadiun impresa Il Signor Isacco, che ormai conosciamo per il suo consumo di caviale, decide di intraprendere l attività di produttore di caviale! (Vuole essere sicuro della qualità del caviale

Dettagli

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016. 1. Esercizi: lezione 24/11/2015

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016. 1. Esercizi: lezione 24/11/2015 ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/2016 1. Esercizi: lezione 24/11/2015 Valutazioni di operazioni finanziarie Esercizio 1. Un operazione finanziaria

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli