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

PRESENTAZIONE

L'ottimizzazione è una disciplina inclusa nella scienza delle decisioni. Il corso introduce i fondamenti della disciplina e il ruolo del linguaggio di programmazione Python nell'ambito dell'ottimizzazione.

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

Al termine del corso, lo studente sarà in grado di:

  • Applicare i principali metodi di ottimizzazione (contenuto) a problemi decisionali reali (condizione), selezionando la tecnica più appropriata in base al contesto (criterio);
  • Sviluppare semplici algoritmi di ottimizzazione in Python (contenuto) per la risoluzione di problemi strutturati (condizione), verificando la correttezza dei risultati ottenuti (criterio);
  • Progettare modelli matematici lineari e interi (contenuto) per problemi di ottimizzazione su grafi e con variabili binarie (condizione), rispettando i vincoli specifici del problema (criterio);
  • Analizzare e confrontare soluzioni ottenute tramite metodi esatti, euristici e meta-euristici (contenuto) su casi di studio proposti (condizione), valutando l'efficacia e l'efficienza delle soluzioni (criterio).

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. La frequenza non è obbligatoria. Per studenti con DSA o disabilità, sono previste modalità personalizzate secondo le disposizioni di Ateneo.

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

Si suggeriscono i seguenti testi e materiali:
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

DOCENTI E COMMISSIONI

LEZIONI

Orari delle lezioni

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

ESAMI

MODALITA' D'ESAME

Gli studenti dovranno sostenere una prova scritta che può contenere domande a scelta multipla, domande aperte ed esercizi. Supera l'esame chi ottiene almeno 18/30.

MODALITA' DI ACCERTAMENTO

Le conoscenze e competenze saranno verificate tramite test online ed esercitazioni durante le lezioni, valutando la capacità di applicare i metodi di ottimizzazione a problemi proposti, la correttezza delle soluzioni implementate in Python e la chiarezza espositiva. I criteri di valutazione includono: correttezza delle risposte, uso appropriato della terminologia, capacità di analisi e sintesi.

ALTRE INFORMAZIONI

Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento.

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