Il problema del commesso viaggiatore
|
|
- Baldassare Parisi
- 8 anni fa
- Visualizzazioni
Transcript
1 ITTS Vito Volterra Progetto ABACUS Ottimizzazione combinatoria Il problema del commesso viaggiatore Studente: Davide Talon Esame di stato 2013 Anno scolastico
2 Indice 1. Introduzione Presentazione del problema Obiettivo Il problema 2.1 Concetti chiave della teoria dei grafi Modello matematico ATSP NP-Completezza Branch and bound 3.1 Idea di base Il branching Il bounding Il fathoming L esplorazione dell albero Branch and bound per ATSP La web-app 4.1 Ottimizziamo il nostro percorso La realizzazione
3 1. Introduzione 1.1 Presentazione del problema Il problema del commesso viaggiatore, noto anche come Travelling Salesman Problem (TSP), è un problema della teoria dei grafi legato all ottimizzazione combinatoria. Oggetto di innumerevoli studi, il problema ha grande importanza dal punto di vista pratico per le sue applicazioni nella minimizzazione dei percorsi. Utile nella logistica e nei trasporti, la soluzione di questo problema porterebbe alle imprese vantaggi economici, organizzativi e qualitativi, in termini di tempi e spazi. Nella sua tradizionale formulazione, dato un insieme di città, si trovi il percorso minore che il commesso viaggiatore deve percorrere per visitarle tutte una ed una sola volta e tornare alla città di partenza. Tale problema però, apparentemente semplice, è stato classificato come NP-completo in quanto le sue soluzioni assumono complessità esponenziale. La soluzione esatta consisterebbe, infatti, nell enumerazione di tutti i possibili percorsi e nella sucessiva scelta di quello migliore ma la complessità n! del problema rende tale operazione impraticabile. Nasce dunque la necessità di trovare procediementi matematici efficienti capaci di risolvere il problema in tempi ragionevoli. 1.2 Obiettivo Dopo una breve introduzione relativa ad alcuni concetti chiave nella teoria dei grafi, l elaborato si ripropone di esaminare l Asymmetric Travelling Salesman Problem (ATSP) in cui la distanza tra due città I e J non corrisponde alla distanza tra J e I. Viene quindi proposto un approccio risolutivo di tipo branch and bound in cui il problema viene diviso in sotto-problemi (branch) a cui sono associati delle stime ottimistiche (bound). Infine vi sarà una piccola presentazione della web-app realizzata con l intento di risolvere reali problemi relativi all ottimizzazione dei percorsi. 2
4 2. Il problema 2.1 Concetti chiave della teoria dei grafi Per comprendere la teoria relativa al problema del commesso viaggiatore vi è la necessità di capire alcuni concetti chiave della teoria dei grafi, perno fondamentale nella formulazione matematica del problema. Pertanto: Grafo diretto: si definisce grafo diretto una coppia D(V,A) in cui V è l insieme dei vertici di D mentre A è l insieme degli archi orientati (aventi una direzione). Grafo completo: si definisce grafo completo un grafo in cui ogni vertice è collegato a tutti gli altri vertici rimanenti. Ciclo hamiltoniano: dato un grafo, si definisce ciclo hamiltoniano un cammino che tocca tutti vertici del grafo una e una sola volta, tornando al vertice di partenza. 2.2 Modello matematico ATSP Il problema del commesso viaggiatore è definito su un grafo orientato D(V, A) in cui V rappresenta l insieme dei nodi (città) mentre A corrisponde all insieme degli archi (strade). Dunque ad ogni arco (i, j) A è associato un costo c ij espresso nella matrice dei costi. Definendo x ij come variabile binaria decisionale: (i, j) A, xij = 1, se (i, j) appartiene al ciclo 0, altrimenti 3
5 Pertanto il modello matematico del problema: min! cij xij (i,j) A funzione obiettivo xiv = 1 (i,v) A v N (1) xvj = 1 v N (2) (v,j) A (i,j) C xij C 1 C: C sottociclo in G (3) La funzione obiettivo, quindi, consiste nel minimizzare la somma degli archi selezionati. Il primo vincolo garantisce che gli archi entrino una ed una sola volta in ogni nodo mentre il secondo assicura che gli archi escano una e una sola volta da ogni nodo. L ultimo vincolo, infine assicura l assenza di soluzioni che contengono sotto-cicli dato che, per ogni insieme proprio di nodi, non è possibile selezionare un numero di archi interni pari o maggiore al numero dei nodi stessi. 2.3 NP-Completezza Classificando i problemi in base alle risorse necessarie per la loro risoluzione (generalmente tempo o spazio) emergono tre categorie: 1. I problemi che ammettono algoritmi di risoluzione efficienti; 2. I problemi che non possono essere risolti con algoritmi efficienti 3. I problemi per cui non sono stati trovati algoritmi efficienti ma per cui nessuno ha mai dimostrato che questi algoritmi non esistono La suddivisione ci porta alla definizione della classi di complessità, ovvero gruppi di problemi risolubili utilizzando una certa quantità di risorse. Pertanto, tale classificazione ci permette di esprimere la difficoltà dei problemi, confrontandoli. In particolar modo, esprimendo la complessità in funzione del tempo di calcolo, ci imbattiamo nelle classi P e NP contenenti i principali problemi dell informatica teorica. I problemi della classe P sono problemi risolubili in tempo polinomiale, ovvero ammettono algoritmi risolutivi il cui tempo massimo corrisponde a un polinomio dalle dimensioni dell input. Perciò i problemi di questa classe sono considerati trattabili in quanto ammettono algoritmi efficienti. La classe NP, invece, contiene problemi che non possono essere risolti in tempi polinomiali e si può dimostrare che ogni algoritmo richiede un tempo esponenziale o comunque asintoticamente superiore a ogni polinomio. Questi problemi vengono, dunque, considerati intrattabili in quanto richiedono un tempo di calcolo talmente elevato da essere inutilizzabili anche per problemi di piccole dimensioni. 4
6 Queste classi complementari, però, non contengono tutte le categorie di problemi. Esistono, infatti, dei problemi, classificati come NP-Completi, per cui non sono stati trovati algoritmi risolutivi dal tempo polinomiale ma non è neppure stato dimostrato che tali algoritmi non esistano. I problemi NP-Completi sono, quindi, problemi di decisione definiti attraverso il concetto di macchina non deterministica ed essi sono computazionalmente equivalenti, perciò trovare un algoritmo polinomiale per uno di questi problemi comporterebbe l esistenza di un algoritmo efficiente per tutti gli altri. L impossibilità di questa procedura ha portato alla congettura che i problemi NP-Completi non siano risolvibili in tempo polinomiale, perciò non sono contenuti nella classe P (a meno che P=NP). Teorema: Il problema del commesso viaggiatore è NP-completo. Dimostrazione: Supponiamo di avere un grafo G=(V, E) relativo a un istanza del problema del commesso viaggiatore. Costruiamo un grafo completo G =(V, E ) e una proposizione p p(e)=1 se e E altrimenti p(e)=2. Se n= V esiste un ciclo hamiltoniano in G ed esiste un tour in G di costo n. Se non esiste un ciclo hamiltoniano in G allora ogni tour in G deve includere almeno un arco il cui peso sia pari a 2. 5
7 3. Branch and bound 3.1 Idea di base L impossibilità di enumerare completamente le soluzioni e sceglierne la migliore ci spinge a un approccio risolutivo di tipo branch and bound che ci permette di enumerare in modo implicito ed esplicito tutte le soluzioni. Data la vastità della regione delle soluzioni ammissibili, in generale, l algoritmo consiste nel suddividere le soluzioni in sotto-insiemi e risolvere il problema su ciascuno di essi. L operazione, ripetuta ricorsivamente, porta alla generazione dell albero delle soluzioni in cui il problema P 0 rappresenta il problema iniziale. p P 0 P 1 p P 2 La ricostruzione completa delle soluzioni equivarrebbe all enumerazione di tutte le soluzioni possibili, perciò non praticabile. Dunque alla scomposizione del problema in nodi figli affianchiamo un metodo che ci permetta di esplorare esclusivamente le aree più promettenti (buone) della regione delle soluzioni. A tale scopo associamo ad ogni nodo dell albero delle soluzioni un valore ottimistico, noto come lower bound, che rappresenta il valore minimo che la funzione obiettivo può assumere nelle soluzioni del nodo stesso. Perciò, questo meccanismo ci permette di eliminare, attraverso l operazione di fanthoming, sottoalberi che sicuramente non contengono la soluzione ottima. Dato un problema di ottimizzazione combinatoria z = min/max f(x) con x appartenente alla regione delle soluzioni ammissibili: P 0 : problema iniziale completo; L: lista dei nodi aperti con (P i, B i ) in cui P i rappresenta il problema mentre B i il relativo bound; z: valore della migliore soluzione ammissibile; x: migliore soluzione possibile L algoritmo può essere così schematizzato: 1. Si esegue una stima ottimistica sul problema completo e si pone L={(P 0, B 0 )}, x =, z = + ; 2. ARRESTO: se L=, allora x è ottima; 3. BRANCHING: partizioniamo P i in sotto-problemi P ij ; 4. BOUNDING: valuto la stima ottimistica B ij per ogni sotto-problema generato; 5. FANTHOMING: se P ij non ammissibile o B ij non migliore di z, torno a 2; se Pij è ammissibile e migliore di z pongo z P ij e x B ij, elimino tutti i nodi di L aventi bound maggiore di B ij e torno a 2; Altrimenti aggiungo a L (P ij, B ij ) e torno a 1. 6
8 3.2 Il branching Il branching ci permette di ottenere l albero delle soluzioni attraverso la partizione del problema in sotto-problemi. In particolar modo le regole di branching devono garantire la completezza delle soluzioni (ossia che non ne vengano perse) i Pi = P e che, per migliorare l efficienza computazionale, non si duplichino nei figli generati, perciò P i P j =. Emerge che: per la prima condizione la soluzione ottima si trova sempre in uno dei due figli; ciascun nodo figlio eredita i vincoli del nodo padre (scendendo di livello nell albero delle soluzioni i nodi presentano un numero sempre maggiore di vincoli) Generalmente il branching viene stabilito attraverso una o più variabili decisionali per ogni nodo. 3.3 Il bounding Ottenuto un nodo attraverso il branching, vi è la necessità di associarvi una valutazione ottimistica che rappresenta il valore minimo (lower bound) che la funzione obiettivo può assumere nello sviluppo del sotto-albero del nodo stesso. Nel caso peggiore, il numero di nodi generati è esponenziale rispetto alla dimensione dell input, perciò l algoritmo relativo al calcolo del bound, che deve essere eseguito per ogni nodo, dovrà essere piuttosto rapido, in termini di tempo d esecuzione, ed efficiente. Inoltre il lower bound dovrà essere il più stringente possibile in quanto dovrà permetterci di scremare dalla lista dei nodi aperti il numero più alto possibile di nodi aventi bound più elevato 7
9 3.4 Il fathoming Il bound di ogni nodo, confrontato con quello della soluzione ammissibile migliore corrente, ci permette di considerare implicitamente esplorati i sotto-alberi del nodo, in quanto siamo sicuri che la soluzione migliore non sia presente in quella parte dell albero. Questi nodi, allora, vengono considerati chiusi e potati (fathomed). Ad ogni nodo, quindi corrisponde una condizione: N.A Soluzione non ammissibile: S.A Soluzione ammissibile: N.M Soluzione non migliorante: il problema non ammette soluzioni (solitamente nella discendenza dei nodi figli si generano dei conflitti nelle variabili decisionali ); avendo trovato una soluzione ammissibile con il relativo lower bound, non ha senso sviluppare il suo sotto-albero (le soluzioni del sotto-albero non saranno miglioranti). Pertanto, è possibile confrontare la soluzione con la soluzione migliore e, nel caso di miglioramento, chiudere eventuali nodi non miglioranti precedentemente aperti; soluzione che non migliora la soluzione corrente (il suo bound è inferiore rispetto a quello della soluzione migliore); 3.5 L esplorazione dell albero Per ottimizzare l algoritmo in funzione dei tempi di elaborazione e della memoria occupata dobbiamo stabilire una politica per l esplorazione dell albero, dunque dobbiamo trovare il nodo padre su cui effettuare il branching. Vi sono tre principali strategie di esplorazione: Best bound first: Depth first: si sceglie il nodo avente bound migliore, ovvero il nodo più promettente. Questa strategia ci permette di rimanere nei livelli poco profondi dell albero delle soluzioni e di esplorare esplicitamente un minor numero di nodi, risultando più efficiente. D altra parte, però, vi è un maggior numero di nodi aperti a discapito della memoria utilizzata. Generalmente viene implementata inserendo il nodo aperto in una lista ordinata. si sceglie il nodo di livello più profondo. Pur rischiando di far esplodere completamente l albero, visitandolo tutto, questo algoritmo ci permette di ottenere rapidamente della soluzioni ammissibili limitando l uso della memoria necessaria per i nodi contemporaneamente aperti. 8
10 3.6 Branch and bound per ATSP Dopo aver descritto in generale il branch and bound dobbiamo parlare della sua applicazione nel problema del commesso viaggiatore asimmetrico che, solitamente, viene riassunto nella matrice dei costi in cui vi è la distanza tra ogni coppia di città. Alla radice dell albero delle soluzioni si considera, dunque, il problema completo e il suo relativo bound, si esegue il branching e, sui nodi figli generati, si risolve il problema di assegnamento relativo. Per eliminare i sottocicli, come previsto dal modello matematico, possiamo allora togliere un sottociclo alla volta ponendo x ij = 0 e c ij = + R. Pertanto l implementazione del branching segue questa regola: ottenuta una soluzione avente sotto-ciclo C, si sceglie un arco (i, j) C e si generano C nodi figli, un figlio con variabile decisionale x ij =0 e per ciascuno dei restanti C -1 figli x ij =1 e x uv =0 con (u,v) C (u,v) (i, j). Il bound, invece, può essere calcolato attraverso la risoluzione del problema d assegnamento relativo alla matrice dei costi del nodo stesso. Un esempio per la risoluzione del problema d assegnamento può sicuramente essere l algoritmo ungherese. 9
11 4. La web-app 4.1 Ottimizziamo il nostro percorso La web-app realizzata, disponibile nel sito nasce dall idea di voler applicare il problema del commesso viaggiatore a situazioni reali. Semplice ed intuitiva, l applicazione permette infatti, attraverso l integrazione di google maps, di ottimizzare i percorsi relativi ai luoghi a noi necessari. Essenziale ed accattivante, dunque, l obiettivo è quello di offrire all utente un potente mezzo per ottimizzare il proprio tempo e il proprio tragitto, organizzandolo ed ottendo le indicazioni necessarie. 4.2 La realizzazione Il cuore della web-app consiste nell integrazione di google maps, infatti, attraverso le sue API v3, è possibile utilizzare i servizi di geolocalizzazione e organizzazione dei percorsi (indicazioni) offerti dai server google. Essendo le api di google maps in javascript, l intero branch and bound è stato implementato in js, permettendo di rendere l applicazione estremamente veloce e lo svincola dalla necessità di dover ricaricare la pagina. Riportiamo qui un pezzo significativo del codice relativo al branching: 0 //Implementazione branching 1 function vincolifiglio(padre){ 2 var decisione=[]; 3 figlio=new Nodo(); //creazione oggetto nodo 4 figlio=clone(padre); //si copia l oggetto padre nel figlio 5 decisione[0]=padre.sottociclo[0]; 6 decisione[1]=padre.sottociclo[1]; 7 decisione[2]=0; 8 figlio.vardecisionali.push(decisione); //inserimento var decisionali 9 gestiscinodo(figlio); //gestione del nodo con calcolo del bound 10 for(var i=1;i<padre.sottociclo.length-1;i++){ 11 decisione=[]; 12 figlio=new Nodo(); 13 figlio=clone(padre); 14 decisione[0]=padre.sottociclo[0]; 15 decisione[1]=padre.sottociclo[1]; 16 decisione[2]=1; 17 figlio.vardecisionali.push(decisione); 18 decisione=[]; 19 decisione[0]=padre.sottociclo[i]; 20 decisione[1]=padre.sottociclo[i+1]; 21 decisione[2]=0; 22 figlio.vardecisionali.push(decisione); 23 gestiscinodo(figlio); 24 } 25 } 10
12 Invece si riporta una porzione relativa all integrazione di google maps che ci permette di ottenere le indicazioni relative al percorso da effettuare: 0 // Informazioni percorso 1 // Dichiarazione variabili google maps 2 var directionsdisplay; 3 var directionsservice=new google.maps.directionsservice(); 4 var directionsdisplay=new google.maps.directionsrenderer({'map':map}); 5 function calcroute() { 6 start = inizio; 7 end = fine; 8 var waypts = []; // Creo la lista per inserire i punti intermdi 9 for (var i = 2; i < arrayindirizzi.length ; i++) { 10 waypts.push({ 11 location:arrayindirizzi[i], 12 stopover:true}); 13 } var request = { // Creo la variabile che verrà passata come richiesta 16 origin: start, 17 destination: end, 18 waypoints: waypts, 19 travelmode: google.maps.travelmode.driving 20 }; directionsservice.route(request, function(response, status) { 23 if (status == google.maps.directionsstatus.ok) { 24 directionsdisplay.setdirections(response); //Verifico l esito 25 } 26 }); 27 } Dal punto di vista grafico, invece, è stato utilizzato un template in HTML5 responsive che si adatta ai dispositivi d utilizzo. 11
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
DettagliIl 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
DettagliTSP 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
DettagliRicerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera
Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi
DettagliOttimizzazione 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
DettagliTSP 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
DettagliLe parole dell informatica: modello di calcolo, complessità e trattabilità
Le parole dell informatica: modello di calcolo, complessità e trattabilità Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario
DettagliRicerca Operativa A.A. 2007/2008
Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del
DettagliMetodi 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
DettagliEsercizi di Ricerca Operativa I
Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione
DettagliCapitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano
Capitolo 4: Ottimizzazione non lineare non vincolata parte II E. Amaldi DEIB, Politecnico di Milano 4.3 Algoritmi iterativi e convergenza Programma non lineare (PNL): min f(x) s.v. g i (x) 0 1 i m x S
DettagliProblema del trasporto
p. 1/1 Problema del trasporto Supponiamo di avere m depositi in cui è immagazzinato un prodotto e n negozi che richiedono tale prodotto. Nel deposito i è immagazzinata la quantità a i di prodotto. Nel
DettagliSistemi 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
DettagliAlla 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
DettagliUD 3.4b: Trattabilità e Intrattabilità. Dispense, cap. 4.2
UD 3.4b: Trattabilità e Intrattabilità Dispense, cap. 4.2 Problemi Intrattabili Esistono problemi che, pur avendo un algoritmo di soluzione, non forniranno mai una soluzione in tempi ragionevoli nemmeno
DettagliSommario. 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
Dettagli1. Considerazioni generali
1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni
DettagliAlgoritmi 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
DettagliSono 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
Dettaglib 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
DettagliMATEMATICA 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
DettagliESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI
ESEMPIO P.L. : PIANIFICAZIONE DI INVESTIMENTI PROBLEMA: un azienda deve scegliere fra due possibili investimenti al fine di massimizzare il profitto netto nel rispetto delle condizioni interne e di mercato
DettagliI Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio
Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe
DettagliCapitolo 5: Ottimizzazione Discreta. E. Amaldi DEI, Politecnico di Milano
Capitolo 5: Ottimizzazione Discreta E. Amaldi DEI, Politecnico di Milano 5.1 Modelli di PLI, formulazioni equivalenti ed ideali Il modello matematico di un problema di Ottimizzazione Discreta è molto spesso
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliAlgoritmi 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
DettagliINTRODUZIONE 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.
DettagliDimensione 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
DettagliTipologie di macchine di Turing
Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica
Dettagli2) Codici univocamente decifrabili e codici a prefisso.
Argomenti della Lezione ) Codici di sorgente 2) Codici univocamente decifrabili e codici a prefisso. 3) Disuguaglianza di Kraft 4) Primo Teorema di Shannon 5) Codifica di Huffman Codifica di sorgente Il
DettagliOttimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni
Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliCorso 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
Dettaglirisulta (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
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione
Dettaglie-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
DettagliInformatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
Dettaglimese 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
DettagliGestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
Dettaglimontagna ai trasporti internazionali Luca Bertazzi
Il problema dello zaino: dalla gita in montagna ai trasporti internazionali Luca Bertazzi 0 Il problema dello zaino Zaino: - capacità B Oggetti (items): - numero n - indice i =1,2,...,n - valore p i -
DettagliComplessità computazionale degli algoritmi
Complessità computazionale degli algoritmi Lezione n. 3.bis I precursori dei calcolatore Calcolatore di Rodi o di Andikithira 65 a.c. Blaise Pascale pascalina XVII secolo Gottfried Leibniz Joseph Jacquard
DettagliLE 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
DettagliLE 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
DettagliComplessità Computazionale
Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION
DettagliScheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux
Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola
DettagliMetodi Computazionali
Metodi Computazionali Elisabetta Fersini fersini@disco.unimib.it A.A. 2009/2010 Catene di Markov Applicazioni: Fisica dinamica dei sistemi Web simulazione del comportamento utente Biologia evoluzione delle
DettagliSeconda 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
DettagliIntelligenza Artificiale
Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi
DettagliRicerca 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.
DettagliParte I. Prima Parte
Parte I Prima Parte Capitolo 1 Introduzione generale 1.1 Il problema dell assegnazione Corsi-Borsisti Il problema dell assegnazione delle borse dei corsi ai vari studenti può essere riassunto nei punti
DettagliEsame di Ricerca Operativa del 19/01/2016
Esame di Ricerca Operativa del 19/01/201 (Cognome) (Nome) (Matricola) Esercizio 1. Una banca offre ai suoi clienti diversi tipi di prestito: mutuo casa, credito auto, credito famiglia, che rendono un interesse
DettagliBarriere 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
DettagliAppunti 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
DettagliSPC e distribuzione normale con Access
SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,
DettagliUniversità degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi
Università degli Studi di L Aquila Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi Prof. Gaetanino Paolone Dott. Ottavio Pascale a.a.2003-2004 Progetto Campo
DettagliB+Trees. Introduzione
B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle
DettagliAutomazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it
Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
DettagliNote del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT
Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Giuditta Franco Corso di Laurea in Bioinformatica - AA 2012/2013 Uno dei più grossi risultati nell informatica degli
DettagliEsame di Ricerca Operativa del 19/01/2016
Esame di Ricerca Operativa del 9/0/06 (Cognome) (Nome) (Matricola) Esercizio. Una banca offre ai suoi clienti diversi tipi di prestito: mutuo casa, credito auto, credito famiglia, che rendono un interesse
DettagliPROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO
PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un
DettagliSoluzione di equazioni quadratiche
Soluzione di equazioni quadratiche Soluzione sulla Retta Algebrica Inseriamo sulla Retta Algebrica le seguenti espressioni polinomiali x e x 3 e cerchiamo di individuare i valori di x per i quali i punti
DettagliFondamenti dei linguaggi di programmazione
Fondamenti dei linguaggi di programmazione Aniello Murano Università degli Studi di Napoli Federico II 1 Riassunto delle lezioni precedenti Prima Lezione: Introduzione e motivazioni del corso; Sintassi
DettagliCalcolatori Elettronici A a.a. 2008/2009
Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include
DettagliArtifact Centric Business Processes (I)
Introduzione Autore: Docente: Prof. Giuseppe De Giacomo Dipartimento di Informatica e Sistemistica SAPIENZA - Universitá di Roma 16 Novembre 2008 Una visione assiomatica La modellazione dei processi di
DettagliPage 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo
Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi
DettagliUn esempio di applicazione della programmazione lineare intera all ingegneria del software: stima del worst-case execution time di un programma
Un esempio di applicazione della programmazione lineare intera all ingegneria del software: stima del worst-case execution time di un programma Corso di Ricerca Operativa per il Corso di Laurea Magistrale
DettagliModelli di Programmazione Lineare. PRTLC - Modelli
Modelli di Programmazione Lineare PRTLC - Modelli Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver commerciali Come ricavare una stima dell ottimo Rilassamento continuo - generazione
DettagliALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y
DettagliStudente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
DettagliA 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
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
DettagliCapitolo 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
DettagliIl sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.
E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica
DettagliEQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6
EQUAZIONI DIFFERENZIALI.. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x log t (d) x = e t x log x (e) y = y 5y+6 (f) y = ty +t t +y (g) y = y (h) xy = y (i) y y y = 0 (j) x = x (k)
DettagliGestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
DettagliIntroduzione Ordini parziali e Reticoli Punti fissi
Introduzione Ordini parziali e Reticoli Punti fissi By Giulia Costantini (819048) & Giuseppe Maggiore (819050) Table of Contents ORDINE PARZIALE... 3 Insieme parzialmente ordinato... 3 Diagramma di Hasse...
DettagliAnalisi di una Rete Sociale
2012 Analisi di una Rete Sociale Alessandro Lovati Matricola 626053 Comunicazione Digitale ord. F47 26/01/2012 Indice : 1. Obiettivo del progetto 2. Realizzazione 3. Analisi dei risultati 3.1. Numero di
DettagliScopo della lezione. Informatica. Informatica - def. 1. Informatica
Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni
DettagliRicerca non informata in uno spazio di stati
Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli
DettagliSequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione
Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione presentato in questo file trova la seq. a costo minimo per
DettagliAnno 3. Funzioni: dominio, codominio e campo di esistenza
Anno 3 Funzioni: dominio, codominio e campo di esistenza 1 Introduzione In questa lezione parleremo delle funzioni. Ne daremo una definizione e impareremo a studiarne il dominio in relazione alle diverse
DettagliSTRUTTURE NON LINEARI
PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi mnappi@unisa.it www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo
DettagliValutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput
Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare
DettagliIL 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
DettagliAlgoritmi 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
DettagliIl principio di induzione e i numeri naturali.
Il principio di induzione e i numeri naturali. Il principio di induzione è un potente strumento di dimostrazione, al quale si ricorre ogni volta che si debba dimostrare una proprietà in un numero infinito
DettagliRicerca 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
DettagliPREVENTIVO uno strumento che ci tutela!
PREVENTIVO uno strumento che ci tutela! PREMESSA. Prima di avviare un qualsiasi rapporto professionale o commerciale, la richiesta e la compilazione di un preventivo, non rappresentano solo e soltanto
DettagliEquilibrio bayesiano perfetto. Giochi di segnalazione
Equilibrio bayesiano perfetto. Giochi di segnalazione Appunti a cura di Stefano Moretti, Silvia VILLA e Fioravante PATRONE versione del 26 maggio 2006 Indice 1 Equilibrio bayesiano perfetto 2 2 Giochi
DettagliProcesso di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
DettagliProgrammazione 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)
DettagliStrumenti della Teoria dei Giochi per l Informatica A.A. 2009/10. Lecture 22: 1 Giugno 2010. Meccanismi Randomizzati
Strumenti della Teoria dei Giochi per l Informatica AA 2009/10 Lecture 22: 1 Giugno 2010 Meccanismi Randomizzati Docente Vincenzo Auletta Note redatte da: Davide Armidoro Abstract In questa lezione descriveremo
DettagliPrestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell
DettagliProgetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso
Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso Flusso di costo minimo È dato un grafo direzionato G = (N, A). Ad ogni arco (i, j) A è associato il costo c ij
DettagliCapitolo 3: Ottimizzazione Discreta. E. Amaldi DEIB, Politecnico di Milano
Capitolo 3: Ottimizzazione Discreta E. Amaldi DEIB, Politecnico di Milano 3.1 Modelli di PLI e PLMI Moltissimi problemi decisionali complessi possono essere formulati o approssimati come problemi di Programmazione
Dettagli(ETC) MATRICOLE DISPARI
Elementi di Teoria della Computazione (ETC) MATRICOLE DISPARI Docente: Prof. Luisa Gargano BENVENUTI! Finalità: Fornire gli elementi di base delle teorie che sono di fondamento all'informatica 1. Computabilità
DettagliStatistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
DettagliCorrettezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza
DettagliCorso semestrale di Analisi e Contabilità dei Costi
Corso semestrale di Analisi e Contabilità dei Costi Aureli Selena 1_Sistema di controllo e contabilità analitica Perché analizzare i costi aziendali? La CONOSCENZA DEI COSTI (formazione, composizione,
DettagliTECNICHE 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
DettagliModello matematico PROGRAMMAZIONE LINEARE PROGRAMMAZIONE LINEARE
PRGRMMZIN LINR Problemi di P.L. in due variabili metodo grafico efinizione: la programmazione lineare serve per determinare l allocazione ottimale di risorse disponibili in quantità limitata, per ottimizzare
Dettagli