Salta al contenuto principale
CODICE 106838
ANNO ACCADEMICO 2024/2025
CFU
SETTORE SCIENTIFICO DISCIPLINARE MAT/09
LINGUA Inglese
SEDE
  • GENOVA
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

L'ottimizzazione è una disciplina inclusa nella scienza delle decisioni. Oltre alle nozioni di base su questo argomento, il corso fornirà un'introduzione alla programmazione e allo sviluppo del software. Il linguaggio di programmazione che verrà utilizzato ed esplorato sarà Python.
Il corso fornirà agli studenti i metodi di ottimizzazione più rilevanti, tra le principali tecniche, verranno presentate agli studenti la programmazione lineare, la programmazione lineare intera, gli algoritmi euristici e meta-euristici.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

L’insegnamento si propone di fornire capacità di comprendere e utilizzare i principali strumenti, concettuali e computazionali, per l'interpretazione di grandi quantità di dati e per il loro utilizzo a fini predittivi, e avranno competenze relative all'analisi big data con particolare riferimento alle applicazioni riguardanti l'economia e altre scienze applicate. Gli studenti svilupperanno conoscenze base di programmazione grazie allo studio del linguaggio di programmazione Python e saranno in grado di progettare modelli matematici lineari PL/PLI per la risoluzione di problemi decisionali continui e discreti. - applicazioni riguardanti l'economia e altre scienze applicate. Gli studenti svilupperanno conoscenze base di programmazione grazie allo studio del linguaggio di programmazione Python e saranno in grado di progettare modelli matematici lineari PL/PLI per la risoluzione di problemi decisionali continui e discreti.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Il corso fornirà agli studenti una panoramica dei più importanti metodi di Ottimizzazione, verranno inoltre sviluppate le capacità di problem solving degli studenti.
Il corso è finalizzato allo sviluppo di modelli di Ottimizzazione per la risoluzione di problemi complessi.
Al termine del corso, gli studenti saranno capaci di utilizzare il linguaggio di programmazione Python per sviluppare un algoritmo di ottimizzazione di base.
Tra le principali Tecniche di Ottimizzazione, gli studenti acquisiranno competenze di Programmazione Matematica e di sviluppo di algoritmi Euristici e Meta-euristici per affrontare problemi complessi. Tra questi problemi possiamo includere problemi di percorsi e connessioni Ottimali, problemi decisionali con variabili binarie, problemi di Ottimizzazione definiti su Grafici.

PREREQUISITI

Consigliati:

  • Algebra,
  • Geometria Analitica,
  • Ricerca Operativa,
  • Programmazione

MODALITA' DIDATTICHE

Il corso prevede lezioni frontali svolte in aula informatica, per dare l'opportunità agli studenti di formulare, risolvere e analizzare insieme ai docenti i problemi proposti. Qualora non fosse possibile svolgere attività in presenza, verranno adottate le modalità didattiche decise dall'Ateneo. Per eventuali aggiornamenti fare riferimento ad Aulaweb.

PROGRAMMA/CONTENUTO

Coerentemente con gli obiettivi precedentemente illustrati, vengono trattati i seguenti argomenti​

  1. Introduzione alla programmazione..
    • Logic programming.
    • Programming languages. 
  2. Python concetti base:
    • Getting Started, first program "hello world".
    • Variables and Input.
    • Conditional statements. Iteration statements.
    • Functions Modules and Classes
    • Strings, Lists, Dictionaries
  3. Risolutori di LP and ILP: 
    • Introduction to PL and PLI,
    • Define decision variables, 
    • Create the objective function, 
    • Add constraints to the model, 
    • Analysis of the solutions.
  4. Strutture dati: 
    • Graph data structure
    • Data manipulation and storage. 
    • Develop a parser.
    • Test cases creation. 
    • Binary variables with Python.
  5. Algoritmi e concetti di complessità: 
    • Exact, heuristic, meta-heuristic. 
    • Constructive Algorithms, Greedy Algorithms, selection function. Enhanced Greedy.
    • Implementation of the proposed algorithms.        
  6. Algoritmi Genetici: 
    • Chromosome, population, crossover, mutation, selection function. 
    • Population diversity, speciation heuristic, and strong mutation. 
    • Memetic Algorithms. 
    • Implementation of a Genetic Algorithm

TESTI/BIBLIOGRAFIA

Hillier, Lieberman, “Introduction to Operations Research”, McGraw Hill, 2016.

Downey, A., et al. "Thinking python. 2.0". Green Tea Press Supplemental Material:, 2012.

https://coin-or.github.io/pulp/index.html

TEACHERS AND EXAM BOARD

DOCENTI E COMMISSIONI

Commissione d'esame

CARMINE CERRONE (Presidente)

DANIELA AMBROSINO

ANNA FRANCA SCIOMACHEN

LEZIONI

INIZIO LEZIONI

Primo Semestre

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

Gli studenti dovranno sostenere una prova scritta. 

La prova scritta può contenere domande a scelta multipla, domande aperte, esercizi.

 

 

MODALITA' DI ACCERTAMENTO

Test online ed esercitazioni durante le lezioni.

Calendario appelli

Data appello Orario Luogo Tipologia Note
18/12/2024 11:00 GENOVA Scritto
14/01/2025 15:00 GENOVA Scritto
29/01/2025 11:00 GENOVA Scritto
28/05/2025 11:00 GENOVA Scritto
11/06/2025 11:00 GENOVA Scritto
08/07/2025 11:00 GENOVA Scritto
09/09/2025 11:00 GENOVA Scritto

Agenda 2030

Agenda 2030
Imprese, innovazione e infrastrutture
Imprese, innovazione e infrastrutture
Consumo e produzione responsabili
Consumo e produzione responsabili
Lotta contro il cambiamento climatico
Lotta contro il cambiamento climatico

OpenBadge

 PRO3 - Soft skills - Alfabetica avanzato 1 - A
PRO3 - Soft skills - Alfabetica avanzato 1 - A
 PRO3 - Soft skills - Personale avanzato 1 - A
PRO3 - Soft skills - Personale avanzato 1 - A
 PRO3 - Soft skills - Imparare a imparare base 1 - A
PRO3 - Soft skills - Imparare a imparare base 1 - A
 PRO3 - Soft skills - Creazione progettuale avanzato 1 - A
PRO3 - Soft skills - Creazione progettuale avanzato 1 - A