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

Slides:



Advertisements
Presentazioni simili
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Advertisements

Corso di Laurea Triennale in Ingegneria Gestionale Corso di Fondamenti di informatica A. A A.Pinto Algoritmi di ricerca 1.
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
MODULO 4 – Il Foglio elettronico
Un esempio di complessità computazionale
STRUTTURE DATI AVANZATE Abstract Data Types Presentazione realizzata da: Mario Capurso – Altamura Michele Doronzo Aldo Lamacchia.
Le Strutture Dati M. Capurso con materiale di: G.Piccolo, A.Arcieri, Lamacchia F. Piccolo, B. Monterisi (Abstract Data Types)
Capitolo 8 Sistemi lineari.
Vettori e matrici algebrici
MATLAB.
Algoritmi e Programmazione
Algoritmi in C++ (1) da completare
Algebra delle Matrici.
Camping.
6. Catene di Markov a tempo continuo (CMTC)
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Esercizi su alberi binari
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
IL MODELLO DI REGRESSIONE MULTIPLA
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
Introduzione agli Automi Cellulari
Sistemi di equazioni lineari
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
APPUNTI SUL LINGUAGGIO C
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Federica Dispenza matr Carmela Pecoraro matr
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
Fondamenti di Informatica1 Realizzazione software Due fasi: 1. Specifica dell'algoritmo 1.a Definizione dei dati 1.b Definizione della modalità della loro.
Fondamenti di Informatica
Algoritmi e Programmazione Avanzata
Java base III: Array e Stringhe
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
Gestione della Qualità - Miglioramento continuo e problem solving
Lezione 12 Riccardo Sama' Copyright Riccardo Sama' Excel.
Algoritmi e strutture dati
ARRAY MULTIDIMENDIONALI
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Grafi Rappresentazione mediante liste di adiacenza:
Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi. Un problema risolvibile mediante un algoritmo.
Analisi ai nodi Step 1: numerare ordinatamente tutti i nodi della rete
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 5 Le strutture informative Corso di Informatica 2 a.a. 2003/04 Lezione 5.
Definizione di un algoritmo
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
Grafi CORDA – Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati.
Tecnologie informatiche. Excel Formatta il foglio di lavoro.
Programma delle lezioni LABORATORIO B  Lezione 01: 27/02martedi  Lezione 02: 06/03martedi  Lezione 03: 13/03martedi  Lezione 04:
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.
EM 09 Il foglio elettronico EXCEL. EM 09 Foglio di calcolo Una tabella in cui è possibile disporre dati, formule e valori anche con relazioni dinamiche.
1 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
Esercizi.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
Impariamo ad usare Excel. Utilizzare l’interfaccia Avviare Excel e iniziare ad esplorare l'interfaccia per acquisire familiarità con esso… Non c'è modo.
Planet HT – Genova - Elisa Delvai
Transcript della presentazione:

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

A.A. 2004/ Il problem-solving2 LIFE: il gioco della vita Evoluzione di una colonia di microorganismi in una coltura (griglia di celle) Generazione: configurazione di microorganismi nelle celle Evoluzione: regole per la nascita e la morte di microorganismi: da una generazione a quella successiva Terminazione: generazione stabile o raggiunto numero massimo di generazioni.

A.A. 2004/ Il problem-solving3 Regole di evoluzione Se una cella alla i-esima generazione è piena, alla i+1-esima sarà: A. vuota se nelle 8 celle adiacenti ci sono meno di 2 microorganismi alla generazione i- esima (morte per isolamento) B. vuota se nelle 8 celle adiacenti ci sono più di 3 microorganismi alla generazione i-esima (morte per sovraffollamento) piena se nelle 8 celle adiacenti ci sono o 2 o 3 microorganismi alla generazione i-esima (sopravvivenza).

A.A. 2004/ Il problem-solving4 Se una cella alla i-esima generazione è vuota, alla i+1-esima sarà: piena se nelle 8 celle adiacenti ci sono esattamente 3 microorganismi (nascita) vuota altrimenti.

A.A. 2004/ Il problem-solving5 Esempio generazione i-esimagenerazione i+1-esima morte per isolamento

A.A. 2004/ Il problem-solving6 generazione i-esimagenerazione i+1-esima morte per sovraffollamento

A.A. 2004/ Il problem-solving7 generazione i-esimagenerazione i+1-esima sopravvivenza

A.A. 2004/ Il problem-solving8 generazione i-esimagenerazione i+1-esima nascita

A.A. 2004/ Il problem-solving9 generazione i-esimagenerazione i+1-esima stabilità generazione i-esima = generazione i+1-esima

A.A. 2004/ Il problem-solving10 Algoritmo while (continua) /* calcola una nuova generazione */ cancella penultima generazione scambia ultima e penultima generazione per tutte le righe i per tutte le colonne j applica le regole del gioco alla casella (i,j)

A.A. 2004/ Il problem-solving11 Strutture dati Concettualmente: struttura matriciale in grado di ricordare la generazione i-esima e quella i+1-esima. Soluzione 1: matrice non sparsa matrice 2* MAXR * MAXC di informazioni 0/1 (assenza/presenza di organismo) per generazione i-esima e i+1-esima occupazione di memoria S(n) = O(MAXR*MAXC) = O(n 2 ) complessità delle operazioni: accesso alla generica casella (i, j) T(n) = O(1)

A.A. 2004/ Il problem-solving12 Soluzione 2: matrice sparsa: array di liste, una per riga di informazioni 0/1 (assenza/presenza di organismo), generazione i-esima e i+1-esima occupazione di memoria: definendo un fattore di riempimento 1 S(n) = O(MAXR + *MAXR*MAXC) vantaggioso per pochi microorganismi complessità delle operazioni: accesso alla generica casella (i, j) T(n) = O( *MAXC)

A.A. 2004/ Il problem-solving13 Complessità T(n) = O(n_generazioni * MAXR * MAXC * costo applicazione regola) Il costo dellapplicazione regola è O(1) con la matrice non sparsa, O( *MAXC) per la matrice sparsa.

A.A. 2004/ Il problem-solving14 Conteggio dei vicini Conteggio delle caselle adiacenti mediante due vettori a e b che contengono offset precalcolati: i,j0,1 1,1 -1,1 1,01,-1 0,-1 -1,-1-1, a b

A.A. 2004/ Il problem-solving15 Alternativa: for (dx = -1; dx<=1; dx++) for (dy = -1; dy<=1; dy++) if (dx!=0 || dy!=0) { xx = x+dx; yy = y+dy; accedi a casella (xx,yy) }

A.A. 2004/ Il problem-solving16 Soluzione 1

A.A. 2004/ Il problem-solving17 Soluzione 2 E noto che le inserzioni su una riga vengono fatte per colonne crescenti. Anziché inserire in lista ordinata, si inserisce in coda e si garantisce lordinamento delle liste. Si potrebbero considerare solo le caselle vive o adiacenti ad almeno una casella viva. Complessità ridotta di fattore, ma codice più complicato.