CODICE 106838 ANNO ACCADEMICO 2025/2026 CFU 6 cfu anno 1 ECONOMICS AND DATA SCIENCE 11937 (LM-56 R) - GENOVA 6 cfu anno 2 MANAGEMENT FOR ENERGY AND ENVIRONMENTAL TRANSITION (MEET) 11427 (LM-77) - GENOVA 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 Introduzione alla programmazione.. Logic programming. Programming languages. Python concetti base: Getting Started, first program "hello world". Variables and Input. Conditional statements. Iteration statements. Functions Modules and Classes Strings, Lists, Dictionaries 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. Strutture dati: Graph data structure Data manipulation and storage. Develop a parser. Test cases creation. Binary variables with Python. Algoritmi e concetti di complessità: Exact, heuristic, meta-heuristic. Constructive Algorithms, Greedy Algorithms, selection function. Enhanced Greedy. Implementation of the proposed algorithms. 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 CARMINE CERRONE Ricevimento: Ricevimento su appuntamento, in presenza o via Teams, da concordare tramite email con il docente. LEZIONI INIZIO LEZIONI Primo Semestre https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=attivita 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 Imprese, innovazione e infrastrutture Consumo e produzione responsabili Lotta contro il cambiamento climatico OpenBadge PRO3 - Soft skills - Alfabetica avanzato 1 - A PRO3 - Soft skills - Personale avanzato 1 - A PRO3 - Soft skills - Imparare a imparare base 1 - A PRO3 - Soft skills - Creazione progettuale avanzato 1 - A