4/4/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo 2010 11 – Un.

Slides:



Advertisements
Presentazioni simili
Flusso Massimo Applicazione di algoritmi
Advertisements

Algoritmi e Strutture Dati
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array, matrici Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
Array multidimensionali
Array di array Capitolo 20 febbraio 2004 Array di array.
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Generazione di Piani attraverso Grafi di Pianificazione
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Algoritmi in C++ (1) da completare
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
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.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Visite di grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Modelli e Algoritmi della Logistica
Ottimizzazione Combinatoria
Grafi.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Modelli e Algoritmi per la Logistica
APPUNTI SUL LINGUAGGIO C
Fondamenti di Informatica
Lezione 24 maggio 2007 Strutture File Allocazione dinamica della memoria.
Java base III: Array e Stringhe
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
Prof. Tiziana Calamoneri Corso di Algoritmi per le reti A.A. 2011/12
Elementi di Informatica di base
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e strutture dati
Programmazione di Calcolatori
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.
Grafi Rappresentazione mediante liste di adiacenza:
Ricerca sequenziale in un array di interi
ALGORITMI a.
11/21/2014E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 5 Le strutture informative Corso di Informatica 2 a.a. 2003/04 Lezione 5.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 1 Cicli ed asserzioni Corso di Informatica 2 a.a. 2003/04 Lezione 1.
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.
3/31/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Algoritmi.
Master Bioinformatica 2002: Grafi
4/5/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Algoritmi.
4/19/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
03/19/09E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2009 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo 2009 Codici.
Olimpiadi di Informatica 2010 Giornate preparatorie
4/25/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Flusso Massimo Applicazione di algoritmi
Master Bioinformatica 2002: Visite di Grafi La struttura dati D è una PILA (STACK) Visita in profondità o Depth-First-Search (DFS)
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Master Bioinformatica 2002: Visite di Grafi Algoritmi di visita Scopo: visitare tutti i vertici di un grafo per scoprirne proprietà di vario tipo. Alcune.
Grafi: rappresentazione e visita
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.
Transcript della presentazione:

4/4/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo – Un esempio di problema con grafo esplicito: “torero”. (versione 04/04/2015)

Il problema Il celebre torero Escamillo deve indossare il proprio costume prima di entrare nell'arena. Egli è costretto a rispettare un dato numero di precedenze, indossando certi indumenti prima di altri, mentre alcuni indumenti possono essere liberamente indossati in un ordine qualsiasi. Per esempio, le "medias" (calze) vanno indossate prima delle "zapatillas" (scarpe), ma non vi è alcun vincolo sull'ordine con cui indossare la giacca ("chaquetilla“) e la "montera" (cappello). Il costume di Escamillo è particolarmente raffinato ed elaborato e si compone di N indumenti. Sfortunatamente, Carmen non ha ancora consegnato uno degli N indumenti necessari alla vestizione di Escamillo. Aiutalo a vestirsi il più possibile, calcolando il massimo numero di indumenti che può indossare in attesa che Carmen gli consegni l'indumento mancante. 04/04/ E. Giovannetti - AlgELab Lez.402

Il problema: dati di input Il file input.txt contiene nella prima riga una tripla di interi, separati da uno spazio: l'intero positivo N che indica il numero di indumenti per la vestizione di Escamillo, dove gli indumenti sono numerati da 1 a N; l'intero positivo M che indica il numero di precedenze tra coppie di indumenti da rispettare durante la vestizione; l'intero Q, compreso tra 1 e N, che indica l'indumento non ancora consegnato da Carmen. Ognuna delle successive M righe contiene una coppia di interi, compresi tra 1 e N, separati da uno spazio. Tale coppia di interi I e J rappresenta la precedenza in cui l'indumento I deve essere indossato prima dell'indumento J. 04/04/ E. Giovannetti - AlgELab Lez.403

Il problema: output Il file output.txt è composto da una riga contenente un solo intero, che rappresenta il massimo numero di indumenti che Escamillo riesce a indossare in attesa dell'indumento Q che Carmen deve ancora consegnargli. 04/04/ E. Giovannetti - AlgELab Lez.404

04/04/ E. Giovannetti - AlgELab Lez.405 Un algoritmo-soluzione. Gli indumenti sono i nodi di un grafo; le coppie (i, j) sono gli archi del grafo. Se effettuiamo una visita (ad es. in profondità, ricorsiva) del grafo a partire dal nodo Q (l’indumento non consegnato) contando i nodi visitati, otteniamo il numero S dei nodi del sottografo connesso con il nodo Q: tale sottografo è l’insieme degli indumenti che possono essere indossati solo dopo Q. Il risultato richiesto è quindi la differenza N – S.

Strutture-dati Adottiamo una rappresentazione a liste di adiacenza; l’input però fornisce gli archi: allora costruiamo le liste leggendo l’input. Per una realizzazione semplice usiamo un vettore di vettori; poiché il grado di ogni nodo non è inizialmente noto, e inoltre serve un contatore dei nodi per ciascuna lista, per comodità memorizziamo tali contatori-gradi in un array separato (indiciato dal numero dei nodi). int** adiacenti; vettore dei vettori di adiacenti. int * grado; vettore dei gradi; … in >> N …; adiacenti = new int*[N+1]; grado = new int[N+1];... 04/04/ E. Giovannetti - AlgELab Lez.406

Un esempio di struttura-dati Per semplicità possiamo allocare per ognuno degli N nodi un array di adiacenti di lunghezza N, che in generale risulterà poi solo parzialmente riempito. 04/04/ E. Giovannetti - AlgELab Lez grado