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

Slides:



Advertisements
Presentazioni simili
I tipi Strutturati.
Advertisements

Algoritmi e Strutture Dati
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Scomposizione funzionale
Estendere i linguaggi: i tipi di dato astratti
PHP.
Universita di Camerino
Algoritmi e Programmazione
Macchine sequenziali Capitolo 4.
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
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
Realizzazione del file system
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Macchine non completamente specificate
Esercizi su alberi binari
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
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.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. B)
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Heap allocation e garbage collector di Oberon Algoritmo Quick Fit e garbage collector mark and sweep.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Unità Didattica 2 I Linguaggi di Programmazione
memoria gestita staticamente:
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
Introduzione ai fogli elettronici: EXCEL
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
Fondamenti di Informatica
Le funzioni.
Algoritmi e Programmazione Avanzata
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.
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.
Strutture periodiche discrete: introduzione del vincolo di periodicità e studio della ricostruzione da due proiezioni. A. Del Lungo, A. Frosini, M.Nivat,
Elementi di Informatica di base
Array a un dimensione : vettori
ARRAY MULTIDIMENDIONALI
Algoritmi e Strutture Dati
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.
IL MASSIMO DI UN ARRAY ESERCIZIO
Grafi Rappresentazione mediante liste di adiacenza:
Informatica Parte applicativa Basi di dati - report Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
ALGORITMI a.
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
1/11/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
Array (ordinamento) CORDA – Informatica A. Ferrari.
Alberi CORDA – Informatica A. Ferrari Testi da
Grafi CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati.
4/4/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Un.
La ricorsione.
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Operatori di incremento e decremento
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Suggerimenti [1d5] SE la prima lettera della matrice (in alto a sinistra, matrice[0,0]) è diversa dalla prima lettera della parola (parola[0]) ALLORA siamo.
Algoritmi e Strutture Dati Luciano Gualà
Planet HT – Genova - Elisa Delvai
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
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 SOSTANZE Problema di ottimizzazione Trovare una serie (di costo minimo) di di N elementi, uno per ogni fase di un processo industriale, non incompatibili tra loro. L'elenco degli elementi, con il loro nome e le relative incompatibilità, viene letto da file.

A.A. 2004/ Il problem-solving3 Problema in dettaglio Processo industriale per il trattamento dei materiali, composto da 10 fasi In ogni fase viene utilizzata una sostanza particolare, scelta in un certo numero di sostanze Ogni sostanza è caratterizzata da un determinato prezzo Ogni sostanza può inoltre essere incompatibile con altre sostanze utilizzabili nel processo (in altre fasi), così che l'uso di una sostanza rende impossibile l'utilizzo di tutte le sostanze con essa incompatibili, in tutte le fasi del processo, precedenti e/o successive.

A.A. 2004/ Il problem-solving4 Problema in dettaglio Il programma (ricerca) determina per ogni fase la sostanza da utilizzare, compatibile con quelle scelte in tutte le altre fasi (ottimizzazione) è necessario minimizzare il costo del processo (somma dei costi delle sostanze selezionate). Il programma legge da file le informazioni relative alle sostanze disponibili, al loro prezzo (espresso come intero inferiore a 1000), alla fase in cui sono utilizzabili, e alla lista delle eventuali incompatibilita'.

A.A. 2004/ Il problem-solving5 Formato file input La prima riga contiene il numero di sostanze disponibili, sotto forma di un intero tra 1 e 100 per ogni sostanza vi sono nel file: una riga contenente il nome della sostanza, il suo prezzo, la fase in cu può essere utilizzata, il numero di sostanze (tra quelle precedentemente riportate nel file) con cui e' incompatibile, nel formato '#' tante righe quante sono le sostanze incompatibili, in ognuna delle quali è riportato il nome della sostanza.

A.A. 2004/ Il problem-solving6 Algoritmo Strategia: Ricerca Visitare (enumerare in modo ricorsivo) tutte le possibili soluzioni. Per 10 fasi 10 chiamate ricorsive: la ricorsione di profondità i prova tutte le sostanze possibili per la fase i e attiva ricorsivamente il completamento delle fasi successive. 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 delle sostanze, con fasi in cui utilizzarle e costo. Sono possibili più scelte: elenco unico di sostanze oppure sottoinsiemi di sostanze per le singola fasi Incompatibilità tra sostanze. Sono informazioni simili ad archi in un grafo, sono quindi possibili: Rappresentazioni a matrice o liste delle adiacenze (incompatibilità) Soluzioni (corrente e migliore) Due vettori o due liste

A.A. 2004/ Il problem-solving8 Informazioni su sostanze Elenco unificato (es. array di struct) contenente tutte le sostanze Semplicità di lettura e di gestione Lenumerazione delle sostanze compatibili con la fase i ha costo O(N tot ), con N tot numero totale delle sostanze Sostanze raggruppate in sottoinsiemi disgiunti (non è previsto il possibile uso di una sostanza in più fasi) Difficoltà implementativa (es. array di array o array di liste) Lenumerazione delle sostanze compatibili con la fase i ha costo O(N i ), con N i numero delle sostanze delli- esimo sottoinsieme

A.A. 2004/ Il problem-solving9 Informazioni su sostanze Soluzione intermedia: elenco unificato, ordinato per sottoinsiemi Lettura semplice da file Sorting per fase Le sostanze appartenenti allo stesso sottoinsieme sono adiacenti nel vettore I 10 sottoinsiemi sono facilmente identificabili mediante un array di indici

A.A. 2004/ Il problem-solving10 Grafo delle incompatibilità Le incompatibilità sono un grafo: La matrice di adiacenza fornisce test di incompatibilità O(1) tra due sostanze date Elenco delle incompatibilità, per una data sostanze, di costo O(N tot ) Le liste di adiacenza offrono ( N tot : lunghezza max. di lista di incompatibilità test di incompatibilità O( N tot ) tra due sostanze date Elenco delle incompatibilità, per una data sostanze, di costo O( N tot )

A.A. 2004/ Il problem-solving11 Grafo delle incompatibilità: utilizzo Dato un insieme di sostanze già selezionate (per le prime fasi) percorrere solo quelle compatibili lista delle compatibilità: Soluzione migliore ma difficile da realizzare (compatibilità con più sostanze, lista dinamica) oppure Provare tutte quelle adatte alla fase corrente, verificando la compatibilità con quelle già scelte matrice di compatibilità/incompatibilità: doppio loop con test di compatibilità O(1). Buon compromesso tra semplicità realizzativa e costo !

A.A. 2004/ Il problem-solving12 Il problema dei nomi Problema: passare da una sostanza alle informazioni relative (costo, fase, compatibilità/incompatibilità). Se le informazioni sono in uno o più vettori, occorre associare a ogni sostanza un INDICE (es. intero tra 0 e N tot ) Se una sostanza viene individuata per NOME, occorre un meccanismo di conversione NOME INDICE Una soluzione efficiente consiste nellidentificare le sostanze mediante indice (anziché nome). Lalgoritmo e le liste o matrice di incompatibilità si basano su indici (accesso diretto). Il passaggio al nome (O(1)) viene fatto solo quando necessario (es. per output).

A.A. 2004/ Il problem-solving13 Soluzione corrente/migliore Le due soluzioni gestite (corrente e migliore) possono essere gestite come vettori o liste. Vista la dimensione ridotta e predicibile (10) risulta più semplice gestire due vettori di indici (interi) alle sostanze selezionate. Un insieme di sostanze per le prime i fasi viene identificato da un vettore caricato fino alli-esima casella. Il backtrack è semplice (basta decrementare il numero di caselle occupate.

A.A. 2004/ Il problem-solving14 La soluzione proposta Variabili statiche: minore modularità ma soluzione ad hoc semplice Vettore di struct sostanza (non ordinato: soluzione più semplice) Matrice (statica) delle incompatibilità Conversione nome-indice (ricerca lineare in vettore) in fase di lettura Soluzioni corrente e migliore: array di indici