Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Strutture dati per insiemi disgiunti
TSP Traveling Salesman’s Problem Università di Camerino
Politecnico di Torino Tesi di Laurea
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
MODULO 3 – ELABORAZIONE TESTI
Estendere i linguaggi: i tipi di dato astratti
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Macchine non completamente specificate
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Introduzione alla programmazione ll
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Fondamenti di Informatica
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
Lezione 24 maggio 2007 Strutture File Allocazione dinamica della memoria.
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Algoritmi di String Matching
Elementi di Informatica di base
Programmazione di Calcolatori
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
TEORIA DEGLI INSIEMI INIZIO.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
ALGORITMI a.
Rete di Hopfield applicata al problema del TSP Federica Bazzano
1/11/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
s STRINGHE DI CARATTERI a p e \0
4/4/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Un.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Olimpiadi di Informatica 2010 Giornate preparatorie
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Claudio Arbib Università dell’Aquila Ricerca Operativa Metodo del simplesso per problemi di distribuzione single-commodity.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
Informatica e Informatica di Base
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
GLI ALGORITMI DI ORDINAMENTO
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Metodologia della ricerca e analisi dei dati in (psico)linguistica 25 Giugno 2015 Introduzione ad R
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Transcript della presentazione:

Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

A.A. 2004/ Il problem-solving2 PRODOTTI-FORNITORI Problema di ottimizzazione Trovare un insieme minimo di fornitori in grado di fornire un dato insieme di prodotti Gli elenchi dei fornitori e dei prodotti, con nomi, e corrispondenze prodotto-fornitori, sono letti da file.

A.A. 2004/ Il problem-solving3 Problema in dettaglio Due file di testo contengono informazioni relative a una fornitura di prodotti per un dato acquirente. elenco.txt: contiene un elenco di prodotti, a ognuno dei quali sono associate le ditte che lo vendono acquisti.txt: elenco di acquisti

A.A. 2004/ Il problem-solving4 Problema in dettaglio Il programma, l etti i due file, determina un insieme minimo di ditte dalle quali acquistare tutti i prodotti elencati in acquisti.txt. Si deve cioè, sfruttando la possibilità di acquistare lo stesso prodotto da più ditte, fare in modo di scegliere linsieme di fornitori di cardinalità minima (minimo numero di fornitori in grado di fornire tutti i prodotti). (ricerca) determina un insieme di fornitori per un dato elenco di prodotti. E garantito che linsieme esiste, perché ogni prodotto ha almeno un fornitore. La difficoltà consiste nel determinate TUTTI gli insiemi di fornitori (ottimizzazione) è necessario minimizzare la cardinalità dellinsieme di fornitori

A.A. 2004/ Il problem-solving5 Formato file input elenco.txt prima riga: numero di ditte fornitrici nf e di prodotti np nf righe successive: nomi delle ditte (uno per riga) righe che seguono: elenco degli np prodotti; per li-esimo prodotto una prima riga contiene il nome del prodotto e il numero nf i di fornitori di tale prodotto. Nelle nf i righe successive sono elencati i nomi dei fornitori. Acquisti.txt nomi di prodotti, uno per riga (possibili ripetizioni, cioè righe contenenti lo stesso prodotto, indicanti più acquisti del relativo prodotto).

A.A. 2004/ Il problem-solving6 Algoritmo (soluzione esatta- ricorsiva) Strategia: Ricerca Visitare (enumerare in modo ricorsivo) tutte le possibili soluzioni. Ogni chiamata ricorsiva gestisce un prodotto tra quelli in elenco, e prova per questo tutti i fornitori possibili Ottimizzazione si mantengono soluzione corrente e soluzione migliore provvisoria. Ogni nuova soluzione viene confrontata con la migliore ed eventualmente la aggiorna (simile a ricerca di massimo/minimo)

A.A. 2004/ Il problem-solving7 Struttura dati Occorre prevedere strutture dati per: Elenco dei fornitori ed elenco dei prodotti Corrispondenze prodotti/fornitori. Sono informazioni simili ad archi in un grafo, sono quindi possibili: Rappresentazioni a matrice o liste delle adiacenze Soluzioni (corrente e migliore) Due vettori o due liste

A.A. 2004/ Il problem-solving8 Elenchi di fornitori e prodotti Elenco fornitori e prodotti: array di stringhe o di struct, contenenti i nomi dei fornitori/prodotti ed eventuali informazioni aggiuntive Semplicità di lettura e di gestione Possibile conversione da nome a indice (se il vettore è ordinato) di costo O(ln N)

A.A. 2004/ Il problem-solving9 Grafo prodotto-fornitori Le corrispondenze prodotti-fornitori costituiscono un grafo: La matrice di adiacenza fornisce test di corrispondenza O(1) tra un prodotto e un fornitore Elenco dei fornitori(prodotti), per un dato prodotto(fornitore), di costo O(N forn ) (O(N prod )) Le liste di adiacenza offrono costi inferiori (lunghezza max. di lista L) test di corrispondenza O(L) tra un prodotto e un fornitore Elenco dei fornitori(prodotti), per un dato prodotto(fornitore), di costo O(L forn ) (O(L prod ))

A.A. 2004/ Il problem-solving10 Grafo prodotto-fornitori: utilizzo Dato un insieme di prodotti già selezionati e un nuovo prodotto p i, cercare tutti i fornitori di p i Meglio la soluzione a liste di adiacenza

A.A. 2004/ Il problem-solving11 Il problema dei nomi Problema: passare dal nome di un fornitore/prodotto alle informazioni relative. Se le informazioni sono in uno o più vettori, occorre associare a ogni fornitore/prodotto un INDICE Se un fornitore/prodotto viene individuato per NOME, occorre un meccanismo di conversione NOME INDICE (ricerca) Siccome la ricerca NON ha costo O(1), conviene, ove possibile, limitarla alla fase preliminare, lavorando esclusivamente su indici nel corso della procedura ricorsiva.

A.A. 2004/ Il problem-solving12 Soluzione corrente/migliore Le due soluzioni gestite (corrente e migliore), rappresentano insiemi di fornitori: possono essere gestite come vettori o liste. Vista la dimensione ridotta e predicibile risulta più semplice gestire due vettori. Un insieme di prodotti può essere rappresentato in due modi Vettore di indici (nella prima parte del vettore si accumulano gli indici appartenenti allinsieme) Vettore di informazioni logiche (appartenenza al sottoinsieme). Vettore con una casella per ogni fornitore.

A.A. 2004/ Il problem-solving13 La soluzione proposta Variabili locali: modularità, ma molti parametri alle funzioni Vettore di struct per i prodotti, vettore di stringhe per i fornitori. I vettori vengono ordinati per garantire ricerche logaritmiche: la scelta può non essere necessaria – ma poco costosa – in quanto le ricerche sono limitate alla fase preliminare. Infatti, se complessità di ricerca ricorsiva >> complessità fase preliminare, si possono scegliere ricerche lineari. Liste (come vettori) di fornitori per un prodotto Soluzioni corrente e migliore: array di flag logici Viene proposta anche una soluzione greedy (discussa in seguito)