40 Algoritmi sui Grafi
|
|
- Massimo Bernardi
- 8 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Napoli Parthenope Corso di Laurea in Informatica A.A 2014/15 PROGETTO PROGRAMMAZIONE III 40 Algoritmi sui Grafi Relatore: Prof. Raffaele Montella Studente: Diego Parlato Matricola: 0124/636
2 INTRODUZIONE al PROGETTO Lo scopo del progetto è quello di testare quaranta algoritmi sui grafi messi a disposizione su web dall università di Princeton. Gli algoritmi coprono i maggiori argomenti delle quattro tipologie di grafi. Ogni algoritmo dovrà essere testato per valori di 100, 1000, Si è scelto di far corrispondere questi numeri agli archi, visto che la maggior parte delle operazioni si basa sull aggiunta di questi ultimi. Per testare gli algoritmi si è creata un ambiente apposito di testing, sottoforma di classe, che conterrà anche il metodo main. Oltre al main, la classe AmbienteTesting ha tre metodi per ogni algoritmo. Ogni metodo testerà l algoritmo su una delle tre dimensioni di dati su cui vanno testati. I risultati ottenuti sono trascritti, grazie al package jxl, automaticamente in un file excel che sarà fornito alla consegna. E giusto avvertire che alcuni algoritmi prendono dei tempi decisamente lunghi (si arriva fino 1000 secondi circa), e altri terminano il Java Heap Space (almeno sul calcolatore usato per il testing). E quindi consigliabile o dividere il testing in trance, o avere un calcolatore parecchio performante. GRAFI IN GENERALE Un grafo è una coppia di elementi (V,E), dove V è un insieme di vertici, ed E un insieme di archi. Un arco è, in pratica, una linea che collega due vertici. Per convenzione nomiamo i vertici V da 0 a V-1, in questo modo rendiamo più semplice riferirci ad essi come indice di un array. Usiamo la notazione v-w(w-v) per fare riferimento ad un arco che connette due vertici v e w. Si sono testati algoritmi sulle quattro tipologie principali di grafi: Grafi Indiretti (con semplici connessioni senza direzione), Grafi Diretti (con semplici connessioni ma con direzione), Grafi Indiretti con peso (gli archi sono senza direzione, ma hanno un peso), Grafi diretti con peso (Gli archi hanno direzione e peso). Vediamo gli algoritmi che abbiamo testato per ognuna delle quattro categorie. Algoritmo Graph GRAFI INDIRETTI La classe Graph rappresenta un grafo indiretto di vertici V. Permette l operazione di aggiunta di un arco, il conoscere il numero di vertici e archi. Sono possibili selfloops. Per implementarlo sono usate liste di adiacenza. Tutte le operazioni prendono tempo costante nel caso peggiore.
3 Algoritmo GraphGenerator La classe GraphGenerator consentem tramite metodi static, la creazione di vari tipi di grafi (random, bipartite, ad albero, ecc.) Algoritmo DepthFirstSearch La classe DepthFirstSearch determina quali sono I vertici connessi a una data sorgente s. Il costruttore prende tempo V+E nel caso peggiore. Algoritmo DepthFirstPaths La classe DepthFirstPaths restituisce, se possibile, un percorso da una sorgente s ad ogni altro vertice del grafo. Per implementare viene usata la depth-first search. Il costruttore impiega V+E nel caso peggiore. Algoritmo BreadthFirstPaths La classe BreadthFirstPaths trova il percorso più breve (in numero di archi) tra una sorgente ed ogni altro nodo. Usa la breadth-first search. Il costruttore impiega tempo proporzionale a V+E. Algoritmo CC (Connected Components) La classe CC determina i component connessi in un grafo indiretto. Dà anche la possibilità di verificare se due vertici sono nello stessa component connessa. Una componente connessa è un sottografo in cui tra due qualsiasi vertici c è un cammino, e nessuno è collegato ai vertici degli altri sottografi. Questa classe usa la depth-first search. Algoritmo Bipartite Un grafo bipartito è un grafo tale che l'insieme dei suoi vertici si può partizionare in due sottoinsiemi tali che ogni vertice di una di queste due parti è collegato solo a vertici dell'altra. La classe Bipartite determina se un grafo è bipartite. Usa la depthfirst search. Algoritmo Cycle La classe Cycle determina se nel grafo è presente un ciclo. Se si, il metodo hascycle ritorna 1. Usa la depth-first search. Algoritmo SymbolGraph La classe SymbolGraph rappresenta un grafo indiretto dove i vertici sono etichettati da stringhe. Supporta l inizializzazione di un SymbolGraph da file.
4 Algoritmo DegreesOfSeparation La classe DegreesOfSeparation provvede a individuare la distanza tra un elemento sorgente e tutti gli altri. Un esempio di utilizzo è nei social network. Il tempo d esecuzione è proporzionale al numero di connessioni. Algoritmo Digraph GRAFI DIRETTI La classe Digraph rappresenta un grafo diretto di vertici V. Permette l operazione di aggiunta di un arco, il conoscere il numero di vertici e archi. Sono possibili selfloops. Per implementarlo sono usate liste di adiacenza. Tutte le operazioni prendono tempo costante nel caso peggiore. Algoritmo DigraphGenerator La classe DigraphGenerator consente tramite metodi static, la creazione di vari tipi di grafi diretti (random, bipartite, ad albero, ecc.) Algoritmo DirectedDFS La classe DirectedDFS determina quali sono I vertici connessi a una data sorgente s. Il costruttore prende tempo V+E nel caso peggiore. Algoritmo DepthFirstDirectedPaths La classe DepthFirstDirectedPaths restituisce, se possibile, un percorso da una sorgente s ad ogni altro vertice del grafo. Per implementare viene usata la depth-first search. Il costruttore impiega V+E nel caso peggiore. Algoritmo DirectedCycle La classe DirectedCycle determina se nel grafo è presente un ciclo. Se si, il metodo hascycle ritorna 1. Usa la depth-first search Algoritmo DepthFirstOrder La classe DepthFirstOrder determina l ordine dei vertici all interno di un digraph in preorder, postorder e inorder, usando il depth-first search. Il costruttore impiega tempo proporzionale a V+E. Algoritmo Topological
5 La classe Topological determina se un grafo ha un ordine topologico ( un ordinamento lineare di tutti i vertici). Un digraph ha ordine topologico solo se è un DAG(grafo aciclico diretto). Usa la depth-first search. Il costruttore prende tempo proporzionale a V+E. Algoritmo BreadthFirstDirectedPaths La classe BreadthDirectedFirstPaths determina il percorso più breve da un vertice sorgente a tutti gli altri vertici. Usa la breadth-first search. Algoritmo TransitiveClosure La classe TransitiveClosure computa la chiusura transitive per un digraph. L implementazione usa la depth-first search da ogni vertice. Algoritmo SymbolDigraph La classe Symboldigraph rappresenta un grafo indiretto dove i vertici sono etichettati da stringhe. Supporta l inizializzazione di un SymbolDigraph da file. Algoritmo KosarajuSharirSCC La classe KosarajuSharirSCC determina se un digraph è fortemente connesso. Un grafo orientato si dice fortemente connesso se esiste un cammino da v a w per ogni coppia v,w V. L implementazione usa l algoritmo Kosaraju-Sharir. Il costruttore prende tempo proporzionale a V+E. Algoritmo TarjanSCC La classe TarjanSCC determina se un digraph è fortemente connesso. Un grafo orientato si dice fortemente connesso se esiste un cammino da v a w per ogni coppia v,w V. L implementazione usa l algoritmo Tarjan. Il costruttore prende tempo proporzionale a V+E. Algoritmo GabowSCC La classe GabowSCC determina se un digraph è fortemente connesso. Un grafo orientato si dice fortemente connesso se esiste un cammino da v a w per ogni coppia v,w V. L implementazione usa l algoritmo Gabow. Il costruttore prende tempo proporzionale a V+E.
6 GRAFI INDIRETTI con PESO Questo tipo di grafi è tendenzialmente usato per il calcolo dell albero di copertura minimo. Algoritmo EdgeWeightedGraph La classe EdgeWeightedGraph rappresenta un grafo indiretto con peso di vertici V. Permette l operazione di aggiunta di un arco, il conoscere il numero di vertici e archi. Sono possibili self-loops. Per implementarlo sono usate liste di adiacenza. Tutte le operazioni prendono tempo costante nel caso peggiore. Algoritmo Edge La classe Edge crea un arco in un grafo indiretto con peso. Ogni arco consiste nello specificare due vertici. Algoritmo LazyPrimMST La classe LazyPrimMST calcola l albero minimo di copertura in un grafo non orientate con peso. Il peso può essere positivo o negativo. Se il grafo non è connesso, calcolerà la foresta di copertura minima. Il metodo weight() restituisce il peso minimo dell albero. Viene usato la versione lazy dell algoritmo di Prim. Il costruttore prende tempo proporzionale a E log E. Algoritmo PrimMST La classe PrimMST calcola l albero minimo di copertura in un grafo non orientate con peso. Il peso può essere positivo o negativo. Se il grafo non è connesso, calcolerà la foresta di copertura minima. Il metodo weight() restituisce il peso minimo dell albero. Viene usato l algoritmo di Prim. Il costruttore prende tempo proporzionale a E log V. Algoritmo KruskalMST La classe KruskalMST calcola l albero minimo di copertura in un grafo non orientate con peso. Il peso può essere positivo o negativo. Se il grafo non è connesso, calcolerà la foresta di copertura minima. Il metodo weight() restituisce il peso minimo dell albero. Viene usato l algoritmo di Prim. Il costruttore prende tempo proporzionale a E log V. Algoritmo BoruvkaMST La classe BoruvkaMST calcola l albero minimo di copertura in un grafo non orientate con peso. Il peso può essere positivo o negativo. Se il grafo non è connesso, calcolerà la foresta di copertura minima. Il metodo weight() restituisce il peso
7 minimo dell albero. Viene usato l algoritmo di Prim. Il costruttore prende tempo proporzionale a E log V. GRAFI DIRETTI con PESO Questo tipo di grafi è tendenzialmente usato per il calcolo del percorso minimo. Algoritmo EdgeWeightedDigraph La classe EdgeWeightedDigraph rappresenta un grafo indiretto con peso di vertici V. Permette l operazione di aggiunta di un arco, il conoscere il numero di vertici e archi. Sono possibili self-loops. Per implementarlo sono usate liste di adiacenza. Tutte le operazioni prendono tempo costante nel caso peggiore. Algoritmo DirectedEdge La classe DirectedEdge crea un arco in un grafo indiretto con peso. Ogni arco consiste nello specificare due vertici. Qui bisogna inserire la direzione. Algoritmo DijkstraSP La classe DijkstraSP determina il percorso minimo in un grafo orientato con peso dove I pesi degli archi sono non negative. Si usa ovviamente l implementazione dell algoritmo di Dijkstra. Il costruttore prende tempo proporzionale a E log V. Algoritmo AcyclicSP La classe AcyclicSP determina il percorso minimo da singola sorgente in un DAG. Il peso degli archi può essere positive, negative o zerio. L implementazione usa un algoritmo basato sull ordinamento topologico. Il costruttore prente tempo V+E. Algoritmo AcyclicLP La classe AcyclicLP determina il percorso più lungo da singola sorgente in un DAG. Il peso degli archi può essere positive, negative o zerio. L implementazione usa un algoritmo basato sull ordinamento topologico. Il costruttore prente tempo V+E. Algoritmo CPM (critical path method) La classe CPM risolve il problema del job scheduling. Riduce il problema alla risoluzione del problema del percorso più lungo in un DAG. Costruice un DAG dalle specifiche del problema dello job scheduling. Usa l algoritmo AcyclicLP. Il tempo d esecuzione è proporzionale a V+E.
8 Algoritmo BellmanFordSP La classe BellmanFordSP resolve il problema del calcolo del percorso minimo da sorgente singola in un grafo orientato con peso con nessun ciclo negativo. Il peso dell arco può essere positive, negative o zero. L algoritmo restituisce o il percorso minimo o informa che c è un ciclo negative. Usa l algoritmo Bellman-Ford-Moore. Il costruttore prende tempo proporzionale a V(V+E). Algoritmo EdgeWeightedDirectedCycle La classe EdgeWeightedDirectedCycle determina se un grafo orientato con peso ha un ciclo diretto o no. Se si, il metodo hascycle ritorna 1. Usa la depth-first search. Il costruttore prende tempo proporzionale a V+E. Algoritmo Arbitrage La classe Arbitrage class provvede a trovare ad un cliente un opportunità in una tabella di scambio valuta costruendo una rappresentazione della tabella in un grafo oreintato con peso. Trovando un ciclo negative nel grafo orientato, c è l opportunità di guadagno. L implementazione usa l algoritmo Bellman-Ford per trovare il ciclo negativo. Il tempo d esecuzione è proporzionale a V 3 Algoritmo FloydWarshall La classe FloydWarshall trova il percorso minimo tra tutte le coppie in un grafo orientato con peso che non ha ciclo negative. Il peso di un arco può essere positivo, negativo o zero. L algoritmo quindi restituisce o il percorso più breve per ogni coppia o un ciclo negative. L implementazione usa l algoritmo di Floyd-Warshall. Il costuttore prende tempo proporzionale a V 3 Algoritmo AdjMatrixEdgeWeightedDigraph La classe AdjMatrixEdgeWeightedDigraph rappresenta un grafo orientato con peso dove ogni arco è del tipo DirectedEdge. Supporta le due operazioni principali: aggiungere un arco e iterare per ogni vertice che si incontra partendo da una sorgente. Ha anche metodi per tornare numero di vertici e di archi. Sono permessi i self loops. L implementazione come rappresentazione una matrice di adiacenza. Tutte le operazioni richiedono tempo costante. CONCLUSIONI In generale si può concludere che, paragonando gli algoritmi che svolgono gli stessi compiti sui grafi orientati e sui grafi non orientati, gli algoritmi relativi ai primi tendono ad avere performance migliore. Ciò è aspettato, perché avendo gli archi una direzione, diminuiscono i percorsi e i collegamenti che ci sono tra i vertici.
TSP 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
DettagliLaboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliAppunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia
Appunti di Algoritmi e Strutture Dati Grafi Gianfranco Gallizia 12 Dicembre 2004 2 Indice 1 Grafi 5 1.1 Definizione.............................. 5 1.2 Implementazione........................... 5 1.2.1
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
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
DettagliAlgoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio 2015. Attenzione:
COGNOME: Nome: Algoritmi Matricole dispari Prof.ssa Anselmo Pre-appello del 15 Gennaio 2015 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare la pagina finché
DettagliUso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
DettagliCorso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliLABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B
LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe
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
DettagliGuida all uso delle Web View su ios
Guida all uso delle Web View su ios Tesina per il corso di Programmazione di Sistemi Mobile Lorenzo Pellegrini Matricola: 0000653299 Cosa sono le Web View? Le web view sono componenti grafiche, integrabili
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
DettagliAlgoritmi di Visita di Grafi. Damiano Macedonio mace@unive.it
lgoritmi di Visita di rafi amiano Macedonio mace@unive.it Original work opyright lberto Montresor, Università di Trento, Italy Modifications opyright 00 0, Moreno Marzolla, Università di ologna, Italy
DettagliObiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A. 2008-2009. Facoltà di Ingegneria Sede di Latina
Università di Roma La Sapienza A.A. 2008-2009 Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria Informatica ed Ingegneria dell Informazione Corso di PROGETTAZIONE DEL SOFTWARE Esercitazione sulla
DettagliGrafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla.
Grafi Moreno Marzolla ip. di Informatica Scienza e Ingegneria Università di ologna moreno.marzolla@unibo.it http://www.moreno.marzolla.name/ opyright lberto Montresor, Università di Trento, Italy (http://www.dit.unitn.it/~montreso/asd/index.shtml)
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
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
DettagliMinimo Albero Ricoprente
Minimo lbero Ricoprente Pag. 1/20 Minimo lbero Ricoprente Il problema della definizione di un Minimo lbero Ricoprente trova applicazione pratica in diverse aree di studio, quali ad esempio la progettazione
DettagliCrittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica
Crittografia Corso di Laurea Specialistica in Informatica Primalità e Fattorizzazione Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca
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
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
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni
DettagliUniversità degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale
Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale Progetto realizzato per l esame di Tecnologie Web Prof.:Raffaele Montella Studente: Vitiello
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliManuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1
Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ Versione 1.1 Autore Antonio Barbieri, antonio.barbieri@gmail.com Data inizio compilazione 11 maggio 2009 Data revisione 14 maggio 2009 Sommario
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliIdentificare le classi in un sistema
3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo
DettagliCOGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Ghezzi, Lanzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2005 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere
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 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
DettagliElementi di UML (7): Diagrammi dei componenti e di deployment
Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio
DettagliEsercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
DettagliNETWORKING & BUSINESS: LA CREAZIONE DI UN ALLEANZA DI VALORE IL VALORE DEL NETWORKING PER IL CLIENTE: COME CREARLO E COME COMUNICARLO
S.A.F. SCUOLA DI ALTA FORMAZIONE LUIGI MARTINO NETWORKING & BUSINESS: LA CREAZIONE DI UN ALLEANZA DI VALORE IL VALORE DEL NETWORKING PER IL CLIENTE: COME CREARLO E COME COMUNICARLO ALESSANDRO AUGUSTO 30
DettagliUML Diagrammi delle classi. UML Diagramma classi 1
UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio
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
DettagliArchitetture software
Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software Sommario Definizioni 2 Architettura Definizione. L architettura
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
DettagliLa firma digitale. Autore: Monica Mascia
La firma digitale Università degli studi di Cagliari Facoltà di giurisprudenza Diritto privato dell informatica A.A. 2006/2007 Docenti: prof. Bruno Troisi Dott. Massimo Farina Autore: Monica Mascia Che
DettagliEsercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
DettagliUniversità di Roma La Sapienza, Facoltà di Ingegneria
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE I (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale A-L, A.A. 2005-06 Esercitazione numero 6 LA
DettagliProva di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
DettagliOperazioni di Comunicazione di base. Cap.4
Operazioni di Comunicazione di base Cap.4 1 Introduzione: operazioni di comunicazioni collettive Gli scambi collettivi coinvolgono diversi processori Sono usati massicciamente negli algoritmi paralleli
DettagliDATABASE. A cura di Massimiliano Buschi
DATABASE A cura di Massimiliano Buschi Introduzione Con Microsoft Access: Immissione dati e interrogazione Interfaccia per applicazioni e report Ma prima bisogna definire alcune conoscenze di base sui
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
DettagliProgetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06
Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A. 2005-06 13 febbraio 2006 1 Descrizione Il progetto si compone delle seguenti fasi: 1. caricamento di soluzioni in formato
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate
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
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,
DettagliCome archiviare i dati per le scienze sociali
Come archiviare i dati per le scienze sociali ADPSS-SOCIODATA Archivio Dati e Programmi per le Scienze Sociali www.sociologiadip.unimib.it/sociodata E-mail: adpss.sociologia@unimib.it Tel.: 02 64487513
DettagliEsercizio 1. Esercizio 2
A Ricerca Operativa Primo appello 4 novembre 005 Esercizio Incontrate una ragazza con il suo cane Fido e vi chiedete che età possa avere. Lei sembra leggervi nel pensiero e vi dice: Non si chiede l età
DettagliUniversità degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica
Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua
DettagliElementi di informatica
Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliUtilizzo delle formule in Excel
Utilizzo delle formule in Excel Excel è dotato di un potente motore di calcolo che può essere utilizzato per elaborare i dati immessi dagli utenti. I calcoli sono definiti mediante formule. Ogni formula
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliProgettazione del robot
Progettazione del robot MINDSTORMS EV3 Anche quest anno abbiamo deciso di usare unmattoncinolegomindstormsev3.sitratta di un evoluzione dellaversione precedentenxt2.0, migliorata sotto diversi aspetti.
DettagliLa somma. Esempio: Il prodotto. Esempio:
La somma L algoritmo della operazione di somma non cambia qualunque sia la base considerata. Naturalmente, le regole da imparare nel caso di una base b sono relative alle sole b 2 posssibili combinazioni
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
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
DettagliUniversità degli Studi di Messina
Università degli Studi di Messina Guida alla Rendicontazione on-line delle Attività del Docente Versione della revisione: 2.02/2013-07 A cura di: Fabio Adelardi Università degli studi di Messina Centro
DettagliVeneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311
Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 INDICE 1. INTRODUZIONE... 3 1.1 SCADENZA... 3 1.2 CAUSALE DA UTILIZZARE... 3 2. MODALITÀ OPERATIVE DI COMUNICAZIONE DATI... 4
DettagliAlcuni Preliminari. Prodotto Cartesiano
Alcuni Preliminari Prodotto Cartesiano Dati due insiemi A e B, si definisce il loro prodotto cartesiano A x B come l insieme di tutte le coppie ordinate (a,b) con a! A e b! B. Es: dati A= {a,b,c} e B={,2,3}
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
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7
ITIS Mattei Sondrio Appunti veloci su moodle versione 2.7 Generalità Moodle è una piattaforma web per pubblicare corsi, creare test, depositare dispense ecc. Ci sono vari tipi di utenti che usano moodle:
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliCUTPOINTS BRIDGES BLOCKS BLOCK GRAPHS - CUTPOINT GRAPHS
CUTPOINTS BRIDGES BLOCKS BLOCK GRAPHS - CUTPOINT GRAPHS INTRODUZIONE Per conoscere la struttura di un grafo connesso è importante individuare nel grafo la distribuzione di certi punti detti cutpoints (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
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
DettagliProgetto MIPS/SPIM. Descrizione. Questa tipologia di progetto consiste in
Progetto MIPS/SPIM Descrizione Questa tipologia di progetto consiste in Inoltre, Infine, Sviluppare un programma in linguaggio MIPS assembly Simulare il programma in QtSPIM Preparare una relazione del
DettagliSimulazione di una Rete di Interconnessione di una Compagnia Aerea
Simulazione di una Rete di Interconnessione di una Compagnia Aerea Progetto del corso di Algoritmi e Strutture Dati a.a. 2011/2012 December 4, 2011 1 Introduzione Il progetto consiste nella realizzazione
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Dettaglifile://c:\documents%20and%20settings\maria\documenti\istruzioni_corso_elearning\istruzioni%20corso1.htm
Pagina 1 di 17 ISTRUZIONI PER LA FRUIZIONE DEL CORSO Qui trovi le spiegazioni sull utilizzo di questa piattaforma per la fruizione del corso che hai scelto, suddivise in schermate così come ti appaiono
DettagliProgetto Febbraio 2013 - Appello 1: Diffusione di tweets sul grafo di Twitter
UNIVERSITÀ DEGLI STUDI DI MILANO, DIPARTIMENTO DI INFORMATICA LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE CORSO DI RETI DI CALCOLATORI ANNO ACCADEMICO 2011/2012 Progetto Febbraio 2013 - Appello 1: Diffusione
Dettagli1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
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
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
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
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
DettagliProgrammazione A.A. 2002-03. Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)
Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università
DettagliLa prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
DettagliGUIDA 1. Processo di pre-immatricolazione on line LAUREE TRIENNALI, LAUREE MAGISTRALI A CICLO UNICO
GUIDA 1 Processo di pre-immatricolazione on line LAUREE TRIENNALI, LAUREE MAGISTRALI A CICLO UNICO A.A. 2016/2017 ATTENZIONE Prima di procedere con la pre-immatricolazione on line seguire le seguenti raccomandazioni:
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
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
Dettagli[ Analisi della. concentrazione] di Luca Vanzulli. Pag. 1 di 1
[ Analisi della concentrazione] di Luca Vanzulli Pag. 1 di 1 LA CONCENTRAZIONE NELL ANALISI DELLE VENDITE L analisi periodica delle vendite rappresenta un preziosissimo indicatore per il monitoraggio del
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
DettagliInizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
Dettagli3 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
DettagliQuando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.
Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale
DettagliDATA BASE SCONTRINI. M46 GDS documentazione Verticale R0
DATA BASE SCONTRINI Introduzione 2. Soluzione proposta 3. Ambiente di configurazione 4. Programma di acquisizione file scontrini 5. Programma di visualizzazione scontrini 6. Programma di visualizzazione
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
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
DettagliCorso di Informatica
Corso di Informatica Modulo T Scorrimento-Rotazione-Ricerca Prerequisiti Programmazione elementare Conoscenza ed uso di vettori Introduzione Lo scopo di questa Unità è approfondire il concetto di vettore
DettagliIntroduzione. Cliente. Indirizzo cliente. CAP cliente. Città cliente. Telefono cliente
Introduzione Just Italia srl, mediante le proprie venditrici, raccoglie ordinativi dai clienti attravenso una proposta d ordine cartacea, sulla quale vengono compilati manualmente i seguenti dati: Cliente
DettagliProgettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Dettagli