Vinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.x

FORMAL METHODS

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: VALERIA VITTORINI
TELEFONO: 0817683847
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 3

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Obiettivo del corso di metodi formali è introdurre gli studenti conoscenze alla modellazione e verifica di sistemi software e computer-based, con particolare riferimento a tecniche di verifica formale.
Verranno illustrati il ruolo e l'importanza dei metodi formali nello sviluppo di sistemi complessi e verranno introdotti diversi strumenti formali utilizzati per la modellazione di sistemi e di proprietà. Infine verranno affrontati aspetti avanzati in particolare nell'ambito delle metodologie di modellazione di sistemi complessi.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e comprendere il ruolo dei modelli formali per l’analisi di sistemi critici, e in particolare per la verifica di proprietà e per la validazione.

Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di saper sviluppare e analizzare semplici modelli espressi mediante i formalismi presentati durante il corso.

 

PROGRAMMA-SYLLABUS

Parte I: Il ruolo dei metodi formali nell'ingegneria dei sistemi, i metodi formali nella certificazione dei sistemi reali, alcuni esempi tratti dal mondo reale, proprietà funzionali e non funzionali, analisi qualitativa e quantitativa. Petri nets ed estensioni tempificate per l’analisi quantitativa di proprietà temporali.
Parte II: linguaggi formali per la specifica e l'analisi. Logiche temporali, LTL e CTL, introduzione al model checking. tecniche di sviluppo di modelli complessi, strumenti per la modellazione e la risoluzione dei modelli.
Parte III: esercitazioni e applicazione a casi di studio.

 

MATERIALE DIDATTICO

Appunti del corso, articoli scientifici.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Lezioni frontali (50%), esercizi e attività di laboratorio (40%), seminari applicativi (10%).

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta o intercorso a metà  
 Solo orale  
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi numerici  

 

CIRCUITI PER DSP

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/01

 

LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: DAVIDE DE CARO
TELEFONO: 081-7683136
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Conoscenza di base del funzionamento dei circuiti digitali e del linguaggio C.

 

OBIETTIVI FORMATIVI

L’insegnamento si pone l’obiettivo di fornire agli studenti le nozioni avanzate e di alto livello relative alla implementazione degli algoritmi di elaborazione digitale dei segnali e, inoltre, di acquisire le conoscenze, sia di base sia avanzate, relative alle architetture dei circuiti DSP disponibili commercialmente, delle problematiche, sia teoriche che pratiche, relative alla implementazione ottimale, in tempo reale, su DSP, dei principali algoritmi di elaborazione digitale dei segnali e dell’ambiente di sviluppo per la loro programmazione.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Al termine del processo di apprendimento lo studente è edotto sulle principali tecniche di elaborazione dei dati in virgola fissa e mobile, sugli strumenti di analisi degli errori di rappresentazione e delle problematiche di overflow in un sistema lineare realizzato in aritmetica a virgola fissa, sulle principali tecniche di prevenzione/gestione dell’overflow, sulle problematiche teoriche relative alla descrizione in linguaggio C di algoritmi di elaborazione digitale dei segnali, sulle caratteristiche architetturali di minima che identificano un circuito DSP (Digital Signal Processor), sulle problematiche relative alla pipeline nei DSP, sia nel caso di pipeline protetta che nel caso di pipeline non protetta, sulle caratteristiche dei DSP ad elevato parallelismo di elaborazione -in particolar modo basati su architettura di tipo Very Long Instruction Word (VLIW)-, alle forme di parallelismo al livello dell’instruction set del DSP -istruzioni Single Instruction Multiple-Data-, sulle tecniche di ottimizzazione del codice per le architettura VLIW -in particolar modo utilizzando tecniche di Loop Unrolling e Software Pipelining-, sulle caratteristiche di base e avanzate dei sistemi di interruzione e DMA (Direct Memory Access) nei DSP, sulle caratteristiche delle interfacce di comunicazione del DSP -in particolar modo quelle di tipo seriale sincrono-, sulle problematiche relative al realizzazione su un DSP di sistemi di elaborazione in tempo reale -in particolar modo utilizzando l’elaborazione in streaming oppure a blocchi-.

Capacità di applicare conoscenza e comprensione
Al termine del processo di apprendimento lo studente è in grado di progettare, autonomamente, l’implementazione in aritmetica a virgola fissa e mobile, di un algoritmo di elaborazione dei segnali tenendo conto sia degli errori di rappresentazione che delle problematiche connesse all’overflow e di determinare l’approccio di prevenzione/gestione dell’overflow che meglio si adatta alla specifica applicazione.
Lo studente acquisisce inoltre la capacità di descrivere in linguaggio C un algoritmo di elaborazione digitale dei segnali con particolare riferimento alle problematiche relative alla efficiente implementazione su DSP sia a virgola fissa che a virgola mobile. Lo studente padroneggia inoltre le tecniche di ottimizzazione del codice, con particolare riferimento alle architetture VLIW ed è in grado di gestire nel modo migliore possibile, in relazione alla specifica applicazione, il trade off tra tempo di calcolo e dimensione del codice applicando le tecniche di Loop Unrolling e Software Pipelining.
In fine, lo studente padroneggia gli approcci per l’elaborazione in tempo reale di un algoritmo di elaborazione digitale su un DSP, e, in relazione alle caratteristiche della specifica applicazione, può risolvere nel modo migliore possibile il trade off tra massima frequenza di elaborazione e latenza adottando approcci di elaborazione in streaming oppure a blocchi. Lo studente inoltre padroneggia le problematiche inerenti l’impiego delle unità DMA sia a supporto dell’elaborazione, sia a servizio delle interfacce del DSP nella elaborazione a blocchi.

Autonomia di giudizio, Abilità comunicative, Capacità di apprendimento
In relazione a tutte le capacità descritte in precedenza, lo studente acquisisce inoltre capacità autonoma di giudizio essendo, questa, tra l’altro, nel particolare contesto, un presupposto imprescindibile dell’attività creativa di tipo progettuale che rientra nelle capacità di applicare la conoscenza che sono sviluppate.

Durante l’insegnamento gli studenti vengono inoltre stimolati nella acquisizione degli strumenti che consentono l’approfondimento in modo autonomo degli argomenti trattati, mentre le metodologie di verifica dell’apprendimento da parte degli studenti tendono a sviluppare anche le loro abilità comunicativa.

 

PROGRAMMA-SYLLABUS

Introduzione: Circuiti per l’Elaborazione Digitale: ASIC, FPGA, DSP. Elaborazioni Real-Time.

Problematiche numeriche nella rappresentazione dei segnali: Richiami sulle rappresentazione Fixed-Point e Floating-Point; Precisione ed Errori di Quantizzazione; Errori di Quantizzazione al livello di Sistema; Overflow e tecniche di prevenzione: Variazione della Rappresentazione, Scaling, Scaling per segnali a banda stratta, Scaling Statistico, Aritmetica Saturata, Bit di Guardia; Applicazione delle tecniche di prevenzione dell’Overflow ad un Filtro FIR. Descrizione degli algoritmi di DSP in linguaggio C: rappresentazione Fixed-Point Generalizzata, Regole di Promozione del Tipo, Esempio (filtro FIR con tecnica dei bit di Gaurdia).

Architetture di base dei circuiti DSP: Datapath; Architettura Harvard ed Harvard modificata; Memoria nei DSP: Banchi Separati, Banchi in Interveaving, Memorie Dual-ported, Allineamento dei Dati ed Accessi Multipli, Gerarchie delle memorie, Caching coerenza e predicibilità; Repeat Buffer; Indirizzamenti per DSP ed Unità di generazione degli indirizzi: indirizzamento Circolare e Bit-Reversal; Tecniche di Zero-Overhead-Looping; Semplici periferiche nei DSP: Timers/PWM generators; Esempi di DSP della Texas Instruments: architetture C2xx, C54xx e C55xx.

Architetture avanzate dei DSP: Trade-off tra Ortoganalità e Dimensione del Codice; Pipelining nei DSP: Pipeline non-Protetta o Visibile, Pipeline Protetta o Trasparente, Hazards Strutturali, Hazard sui Dati e Dipendenze, Hazard di Controllo, Delayed-Branch; Scheduling Statico e Dinamico delle Istruzioni; Architetture Superscalari (cenni); Architetture Very-Long-Instruction-Word (VLIW); Pipeline non-Protetta ed Interruzioni (trade-off tra interrombibilità del codice e tempo di calcolo); Istruzioni ed Aritmetica Single-Instruction-Multiple-Data (SIMD); DSP VLIW della Texas Instruments: architetture C64xx, C67xx, C66xx. Cenni ai principali DSP di Analog Devices (Blackfin, SigmaDSP, SHARC e TigerSHARC) e Freescale (Symphony, StarCore SC3400 e SC3850). DSP con Multi-threading Hardware: architettura Hexagon di Qualcomm. SoC basati su DSP di Texas Instruments: DaVinci Digital Media Processor, OMAP, Keystone e Keystone II.

Architettura dei DSP Texas Instruments C64xx e C67xx: Architettura VelociTI; Set Istruzioni; Architettura delle Memoria e Caching su due livelli; Esecuzione Condizionale; Indirizzamenti con offset; Indirizzamenti Circolari e Registro AMR; Pipeline del DSP: Delay-Slots e Latenza delle istruzioni; Istruzioni SIMD.

Sviluppo del Codice ed Ottimizzazione per DSP VLIW: Sviluppo in Assembly: Grafi delle Dipendenze, Parallelizzazione delle Istruzioni, Eliminazione dei NOP, Loop Unrolling; Software Pipelining: Minimum-safe-trip-count, Resource-Bound, Loop-Carried-Rosource-Bound, Esecuzione Speculativa, Problemi di Live-too-Long, Utilizzo congiunto di Loop Unrolling e Software Pipelining; Sviluppo del codice in Linear-Assembly; Sviluppo del Codice in C: direttive per il Software Pipelining e l’Unrollimg, Aliasing dei Puntatori, Direttive per l’Allocazione in Memoria, Livelli di Ottimizzazione, Funzioni Static, Interrompibilità del Codice, Software Pipelined Loop Buffer (SPLOOP); Linker, Variabili Globali e Static, Allocazione delle variabili Near e Far, Start-up del DSP.

Interrupt e DMA nei DSP Texas Instruments C6x: Interrupt: funzionalità di base, registri per la gestione degli interrupt, funzionamento dettagliato in Hardware, scrittura della Interrupt-Service-Routine (ISR), tempi caratteristici; DMA: funzionalità di base, parametri e tipologie di trasferimento, sincronizzazione, Quick-DMA, generazione di interrupt di completamento, esempi.

Implementazione Real-Time degli Algoritmi di DSP: Interfacce Seriali Sincrone ed interfaccia McBSP dei DSP Texas C6x; Gestione delle comunicazione in Polling, Interrupt, DMA; Elaborazioni in Streaming di tipo Interrompibile e non Interrompibile, Controllo di Flusso nelle elaborazioni in Ricezione/Trasmissione; Sistemi Operativi Real-Time e Elaborazioni con Prelazione; Elaborazioni a Blocchi: Ping-Pong Buffering; Tecniche di Buffering per gli Algoritmi con Memoria; Debugging off-line e real-time nei DSP, Tecniche di In-System Debugging tramite interfaccia JTAG.

Esercitazioni: Le esercitazioni sfruttano l’ambiente di sviluppo Code Composer Studio di Texas Instruments e le schede per la prototipizzazione rapida su DSP DSK-C6713.
Implementazioni di Filtri FIR: Calcolo dei Coefficienti, Progetto Numerico e Problematiche di Overflow, Ottimizzazione del Codice con esempi di Unrolling, Software Pipelining, Buffering dei dati; Prove sperimentali con I/O in Real-time dal Codec audio presente sulla board DSK-C6713: filtro FIR, equalizzatore audio a 5 bande, equalizzatore audio a 5 bande mediante Sistema Operativo real-time, equalizzatore audio a 9 bande mediante Sistema Operativo real-time.

 

MATERIALE DIDATTICO

• John G. Proakis, Dimitris G. Manolakis, “Digital Signal Processing: Principles, Algorithms and Applications”, 4° edition, Prentice Hall 2007
• Sen M. Kuo, Woon-Seng Gan, “Digital Signal Processors: Architectures, Implementations, and Applications”, Prentice Hall 2005
• Appunti delle lezioni
• Testi delle esercitazioni

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Lo svolgimento dell’insegnamento prevede lezioni frontali, esercitazioni e, compatibilmente con gli aspetti organizzativi, lezioni di laboratorio.
Per lo svolgimento delle esercitazioni gli studenti adottano l’ambiente di sviluppo Code Composer Studio della Texas Instruments. Il laboratorio, oltre a Code Composer Studio, prevede l’impiego di board per il prototyping rapido (DSK6713 della Texas Instruments) e la strumentazione di base di un laboratorio di elettronica (oscilloscopio, generatore di segnali).

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta o intercorso a metà  
 Solo orale
 Discussione di elaborato progettuale   
 Altro (discussione esercitazioni)

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi numerici  

 

ARCHITETTURA DEI SISTEMI DIGITALI

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: NICOLA MAZZOCCA
TELEFONO:
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): I
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Conoscenza dei principi di progettazione delle reti logiche combinatorie e sequenziali e dell’architettura generale di un calcolatore; conoscenze di programmazione.

 

OBIETTIVI FORMATIVI

Il corso si pone l’obiettivo di fornire un’impostazione metodologica e tecnologica per il progetto di architetture dei sistemi digitali dedicati e/o programmabili. Il corso prevede di analizzare le tecniche di progetto con riferimento allo sviluppo di: microcontrollori, processori dedicati, unità di I/O, sistemi di interconnessione, unità aritmetiche, unità dedicate ad applicazioni di IoT e multimediali. Le attività sono svolte con riferimento al linguaggio VHDL, mediante l’impiego di simulatori industriali e di sistemi FPGA (con i relativi ambienti di sviluppo), utilizzati per l’implementazione dei casi di studio proposti durante il corso. Sono inoltre presentati i principali elementi per la realizzazione della documentazione e per il testing di sistemi digitali in applicazioni industriali.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e comprendere le problematiche relative al progetto di sistemi digitali dedicati e programmabili, con riferimento alle metodologie generali di progetto e ai vincoli specifici derivanti dagli strumenti di sviluppo, dai linguaggi di programmazione e dalle piattaforme hardware coinvolti. Deve inoltre dimostrare di comprendere le caratteristiche fondamentali di diversi modelli di sistemi digitali e di saper individuare il modello o i modelli più appropriati per risolvere uno specifico problema di progettazione.

Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di eseguire l’intero ciclo di progettazione e implementazione di sistemi digitali di base (ad es. macchine combinatorie o sequenziali notevoli) ed avanzati (macchine aritmetiche, reti di interconnessione, interfacce di I/O, processori), dalla fase di definizione dell’architettura e del comportamento funzionale alla descrizione mediante linguaggio VHDL, fino all’implementazione su dispositivi hardware programmabili (FPGA), utilizzando strumenti e ambienti di sviluppo di ampio utilizzo industriale.

 

PROGRAMMA-SYLLABUS

Principi di progetto di sistemi digitali: Sistemi general purpose, special purpose e embedded. Progettazione dei sistemi digitali: aspetti tecnologici, metodologici e ambienti a supporto. Il ciclo di sviluppo di un sistema digitale. I linguaggi HDL per la descrizione dell’hardware e gli ambienti di simulazione.
Richiami e approfondimenti sul progetto di macchine combinatorie: Realizzazione di funzioni booleane mediante circuiti digitali. Parametri e vincoli di progetto: ritardi, deformazioni dei segnali, dissipazioni di potenza. Minimizzazione di funzioni booleane. Progetto di macchine combinatorie notevoli (multiplexers/demultiplexer, decoder/encoder, reti di transcodifica).
Richiami e approfondimenti sul progetto di macchie sequenziali: Modelli di macchine sequenziali. Macchine impulsive, a livelli, sincrone, asincrone. Progetto di macchine sequenziali notevoli (registri, contatori).
Progetto di sistemi complessi: Modelli architetturali per lo sviluppo di sistemi complessi: sistemi di reti sequenziali, architettura a pipeline, problematiche di tempificazione, modello PO/PC, sistemi a controllo cablato e microprogrammato. Principi di progetto di un processore. Il processore MIC-1.
Protocolli e interfacce di comunicazione fra sistemi: Protocolli di comunicazione sincroni e asincroni; progetto di reti di interconnessione molti a molti; progetto e utilizzo di una interfaccia di comunicazione seriale secondo lo standard RS232.
Progetto di macchine aritmetiche combinatorie e sequenziali: Architetture parallele per addizionatori, sottrattori e moltiplicatori binari. Algoritmi ed architetture sequenziali per la moltiplicazione e la divisione.
Dispositivi per la sintesi di reti logiche: PAL, PLA, FPGA, ASIC. Approfondimento sull’architettura degli FPGA XIlinx delle famiglie Artix-7 e Spartan 3E.
Testing di sistemi digitali: Problematiche e tecniche di testing di dispositivi hardware.
Linguaggio VHDL e ambiente di sviluppo: Stili di descrizione dei sistemi digitali e principali costrutti del linguaggio a supporto. Linee guida per l’implementazione di macchine combinatorie e sequenziali notevoli. Processo di simulazione, sintesi, implementazione di un design digitale e strumenti a supporto. Timing analysis e strumenti a supporto.

 

MATERIALE DIDATTICO

Libro di testo: Conte, Mazzeo, Mazzocca, Prinetto. Architettura dei calcolatori. Edizioni CittàStudi. 2014. ISBN: 9788825173642.
Dispense e presentazioni fornite dal docente relative ad argomenti teorici e applicativi.
Manuali e datasheet dei dispositivi utilizzati per la sintesi dei progetti.
Codice VHDL relativo alle esercitazioni svolte in aula.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il corso prevede circa il 70% di lezioni frontali in cui vengono affrontati gli argomenti teorici, mentre il restante 30% è riservato a lezioni pratiche ed esercitazioni riguardanti lo sviluppo di codice VHDL per l’implementazione di specifiche macchine e l’utilizzo degli ambienti di sviluppo.
La parte applicativa del corso si avvale di strumenti di sviluppo professionali di cui è disponibile una licenza ad uso gratuito e di board di sviluppo (dotate di FPGA e di diversi dispositivi di I/O) che vengono distribuiti agli studenti per l’implementazione dei propri progetti.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale
 Solo scritta   
 Solo orale  
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

La verifica dell’apprendimento prevede una prova scritta consistente in esercizi di progetto di sistemi digitali e una prova orale orientata alla verifica della comprensione dei concetti teorici del corso e alla discussione di un elaborato.

 

INTERNET DATA ANALYSIS

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: ANTONIO PESCAPE’
TELEFONO: 0817683856
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Nozioni di protocolli di rete Internet.

 

OBIETTIVI FORMATIVI

L’obiettivo dell’insegnamento è quello di fornire agli studenti le nozioni specialistiche utili all’analisi di una moderna rete Internet con particolare riferimento agli aspetti legati alla gestione e alla sicurezza di rete. Il corso presenta i contenuti adottando un approccio ingegneristico ed empirico e fonde lezioni teoriche, lezioni pratiche, seminari ed esercitazioni. Esso presenta in modo approfondito gli aspetti principali e le motivazioni alla base dell’analisi e della valutazione prestazionale di una rete per poi approfondire gli aspetti metodologici e pratici legati all’analisi di rete con un focus specifico sulla analisi, identificazione e classificazione di eventi anomali quali, ad esempio, attacchi informatici. Il corso prevede anche una parte esercitativa funzionale allo sviluppo di un elaborato.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e saper comprendere le problematiche relative all’analisi e al monitoraggio delle rete Internet. Deve dimostrare di sapere elaborare argomentazioni concernenti le relazioni tra il traffico di rete e fenomeni quali attacchi, malfunzionamenti di rete, problematiche prestazionali. Tali strumenti consentiranno agli studenti di comprendere le connessioni causali tra l’uso di applicazioni di rete, il traffico generato da tali applicazioni e le condizioni di esercizio della rete e di riconoscere le relazioni tra le operazioni eseguite attraverso la rete (esecuzione di applicazioni, configurazione di dispositivi di rete, attacchi a dispositivi di rete) e gli eventi osservabili (mutamenti nelle caratteristiche del traffico e nelle funzionalità dei dispositivi di rete).

Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di trarre le conseguenze da un insieme di informazioni per identificare e risolvere problemi concernenti le infrastrutture e le applicazioni di rete, pianificare infrastrutture e servizi sulla base dei requisiti associati alla caratterizzazione del traffico Internet. Analizzando i dati di rete, lo studente deve essere in grado di inferire la natura (benigna/malevola) e caratteristiche volumetriche della comunicazione (numero di dispositivi coinvolti, quantità e tempistica dei messaggi scambiati), nonché aspetti di qualità del servizio e qualità dell’esperienza. Lo studente deve essere in grado di applicare gli strumenti metodologici appresi ai seguenti ambiti: raccolta dei dati di traffico Internet, analisi delle prestazioni di rete e delle applicazioni di rete, sicurezza di rete.

 

PROGRAMMA-SYLLABUS

Introduzione e Concetti di Base: Contestualizzazione didattico/scientifica del Corso, Terminologia di Base, Inquadramento degli aspetti principali dell’analisi di Internet e motivazioni, Risoluzione dei Problemi di Rete (compresa la Sicurezza di Rete), Requisiti delle Reti e delle Applicazioni in Rete. [0.5 CFU]
Fondamenti di Analisi e Monitoraggio di Internet: Background Analitico (probabilità, statistica, rappresentazione dei dati, forecasting, grafi, etc.), Fondamenti di Machine Learning e Data Mining, Metriche per l’Analisi ed il Monitoraggio di Internet, Modelli per l’analisi delle caratteristiche e delle prestazioni di Internet, Approcci al Monitoraggio di Internet (attivo, passivo, ibrido, etc.), Protocolli per il controllo ed il monitoraggio di Internet, “Practical Issues” nell’Analisi e nel Monitoraggio di Internet: middleboxes (PEP, PDP, Firewall, etc). [1 CFU]
Metodologie e Tecniche di Analisi e Monitoraggio di Internet: Metodologie e Tecniche di Machine/Deep Learning e Data Mining; Task di Apprendimento: Classificazione, Predizione e Anomaly Detection; Framework di Valutazione e Metriche di Prestazione; Data Visualization; Tecniche di eXplainable AI (XAI) per approcci Machine/Deep Learning; Metodologie e Tecniche per l’analisi del Traffico di Internet: workload di rete, caratterizzazione e modelling statistico, Traffico Self-Similare, Modelli di generazione del Traffico Internet. [2 CFU]
Applicazioni dell’Analisi di Internet: Metodologie e strumenti per l’acquisizione e la caratterizzazione di dataset di traffico Internet (user-generated e bot-generated); Identificazione e Classificazione con Tecniche di Machine e Deep Learning di Traffico di rete. Focus su sicurezza di Rete: Identificazione e Classificazione di Traffico di rete anomalo e malevolo (malware, attacchi DoS\DDoS, BotNet, etc.), con particolare riferimento a scenari (industrial) IoT, Cloud e Mobile. [2 CFU]
Casi di Studio: Piattaforme sperimentali per l’analisi e il monitoraggio di Internet, Piattaforme di monitoraggio su larga scala (Sicurezza di Rete, Neutralità di Rete e Censura, Analisi di Capacità e Banda Disponibile, Monitoraggio dei Percorsi e delle Topologie di Rete). [0.5 CFU]

 

MATERIALE DIDATTICO

Il materiale didattico è costituito dalle Slide, dalle Dispense e dagli articoli forniti dal docente.

Libro di testo di approfondimento: Internet Measurement: Infrastructure, traffic & applications, Mark Crovella, Balachander Krishnamurty, Wiley.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà:

a) lezioni frontali per circa il 40% delle ore totali,

b) esercitazioni per approfondire praticamente aspetti teorici per circa il 40% delle ore totali,

c) seminari per approfondire tematiche specifiche per circa il 20% delle ore totali.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta o intercorso a metà  
 Solo orale
 Discussione di elaborato progettuale 
 Altro (discussione esercitazioni)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi numerici  

 

MODELLI E ALGORITMI DI OTTIMIZZAZIONE

SCHEDA DELL'INSEGNAMENTO (SI)
SSD MAT/09

 

CORSO DI STUDI: INGEGNERIA DELLE TELECOMUNICAZIONI E DEI MEDIA DIGITALI

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: STERLE CLAUDIO
TELEFONO: 081 768 5911
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): 
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): II
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Il corso ha l’obiettivo di fornire agli studenti conoscenze avanzate di programmazione matematica per la modellazione e risoluzione esatta di problemi decisionali complessi di ottimizzazione su rete in ambito ingegneristico. Lo studio teorico dei principali algoritmi per il calcolo della soluzione ottima dei problemi decisionali affrontati è completato dalla sperimentazione numerica di tali algoritmi mediante l’utilizzo di software di ottimizzazione. Al termine del corso lo studente avrà acquisito la conoscenza di metodologie avanzate per la modellazione e soluzione di problemi di ottimizzazione continua, intera e mista-intera su reti informatiche e di telecomunicazioni.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Il percorso formativo ha l’obiettivo di fornire agli studenti le metodologie di ottimizzazione continua, intera e mista-intera necessarie per la modellazione e risoluzione esatta di problemi ingegneristici nell’ambito delle reti informatiche e di telecomunicazioni. Lo studente deve dimostrare di aver acquisito gli strumenti necessari a formulare un problema decisionale mediante un modello di programmazione matematica, individuando funzione obiettivo, variabili decisionali e vincoli del sistema oggetto di studio. Lo studente deve inoltre essere in grado di individuare il miglior metodo risolutivo da utilizzare per la determinazione della soluzione ottima di un problema decisionale, in relazione alle sue specifiche caratteristiche. Infine, lo studente deve essere in grado di analizzare la sensibilità della soluzione ottenuta rispetto alla variabilità delle condizioni al contorno e comprenderne i nessi causali.

Capacità di applicare conoscenza e comprensione
Il percorso formativo è orientato a trasmettere gli strumenti metodologici e operativi necessari ad applicare concretamente le conoscenze di programmazione matematica a problemi di ottimizzazione su rete emergenti nel contesto informatico e delle telecomunicazioni. In particolare, lo studente deve dimostrare di saper sviluppare tutte le fasi di un processo decisionale: analisi del sistema (definizione delle sue componenti, dei parametri che lo caratterizzano, assunzioni e specifiche di funzionamento); definizione del problema decisionale; selezione/costruzione di un modello matematico di simulazione del sistema; implementazione e risoluzione del modello tramite un algoritmo e/o un software di ottimizzazione; analisi ed interpretazione dei risultati al fine di verificare la qualità della soluzione e mettere in atto eventuali meccanismi di retroazione.

 

PROGRAMMA-SYLLABUS

- Ottimizzazione non lineare multidimensionale non vincolata
- Metodi di gradiente
- Algoritmo di discesa e salita ripida, gradiente coniugato
- Analisi grafica ed esercitazioni numeriche

- Ottimizzazione non lineare e lineare multidimensionale vincolata
- Condizioni di ottimo nei problemi di ottimizzazione vincolata (condizioni di Kuhn-Tucker)
- Rilassamento Lagrangiano
- Metodi a direzione ammissibile
- Analisi grafica ed esercitazioni numeriche
- Ottimizzazione lineare come caso particolare della Ottimizzazione non lineare
- Algoritmo del simplesso, analisi di stabilità e dualità

- Metodi avanzati di ottimizzazione lineare intera (PLI)
- Formulazione di problemi ottimizzazione lineare intera e nocciolo convesso
- Metodi avanzati di risoluzione basati su “row e column generation”
- Branch and Bound e Branch and Cut
-Tecniche di rilassamento

- Problemi avanzati di instradamento, localizzazione e progetto su rete (modellazione e soluzione).
- Problemi di percorso: problemi di minimo percorso e minimo percorso vincolato (minimi percorsi attraverso specificati vertici, con finestre temporali, con risorse limitate), minimo percorso con vincoli di capacità (Quickest path e quickest flow); problema del percorso massimo

- Problemi di flusso: dei problemi di flusso single e multi-commodity con costi costanti e costi variabili; problemi di massimo flusso; problemi con flussi unicast e multicast;

- Problemi di network design: problemi di localizzazione; progettazione di reti multi-layer; progettazione e dimensionamento di reti di comunicazione; progettazione di reti affidabili e resilienti.

- Software di ottimizzazione:
- introduzione ai software di ottimizzazione (Xpress, Cplex);
- modellazione e risoluzione di problemi reali di programmazione lineare continua, intera e mista-intera tramite tecniche esatte

 

MATERIALE DIDATTICO

- A. Sforza, Modelli e Metodi della Ricerca Operativa, III ed., ESI, Napoli
- F. S. Hillier, G. J. Lieberman, Ricerca operativa - Fondamenti, 9/ed., McGraw-Hill
- C. Guéret, C. Prins, M. Sevaux, Applications of optimization with Xpress-MP, Editions Eyrolles,Paris
- IBM ILOG CPLEX V12.7 User's Manual for CPLEX
- Materiale didattico integrativo fornito durante il corso e materiale disponibile on-line

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà: lezioni frontali (60%), seminari (10%), esercitazioni di tipo numerico e di introduzione all’uso di software di ottimizzazione (30%). Il materiale del corso sarà reso disponibile on-line agli studenti.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta o intercorso a metà  
 Solo orale
 Discussione di elaborato progettuale 
 Altro (discussione esercitazioni)  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera  
 Esercizi numerici  

 

L’esame prevede lo svolgimento di un elaborato progettuale in cui lo studente deve sviluppare e risolvere un modello di programmazione matematica (continua, intera o mista-intera, rappresentativo di un problema decisionale reale. Il modello sviluppato deve essere implementato in un software di ottimizzazione (Xpress o Cplex) e risolto tramite l’utilizzo delle relative librerie di metodi esatti. L’elaborato progettuale viene assegnato allo studente prima della fine del corso e dovrà essere consegnato prima del colloquio orale. Il colloquio orale avrà come oggetto sia la discussione dell’elaborato progettuale che l’accertamento dell’acquisizione dei concetti e delle metodologie illustrati durante le lezioni.


b) Modalità di valutazione:
La consegna dell’elaborato progettuale è vincolante ai fini dell’accesso al colloquio orale. L’elaborato progettuale e la prova orale contribuiscono ognuna per il 50% della valutazione finale. La consegna dell’elaborato progettuale non è sufficiente per il superamento dell’esame.

 

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.