CODE 106838 ACADEMIC YEAR 2025/2026 CREDITS 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 SCIENTIFIC DISCIPLINARY SECTOR MAT/09 LANGUAGE English TEACHING LOCATION GENOVA SEMESTER 1° Semester OVERVIEW Optimization is a discipline included in decision science and management science. The course introduces the fundamentals of the discipline and the role of the Python programming language in the context of optimization. AIMS AND CONTENT LEARNING OUTCOMES The course provides students the basics of Optimization, which are most relevant to the operational planning of enterprises. The course aims to develop optimization models and provide mathematical programming methods, both exact and heuristic, for decision-makers. Students are also provided with the necessary knowledge to understand the structure of an optimization algorithm and to implement it with Python. By the end of the course, students will have the skills necessary to identify the methodological approach needed to address a problem and the ability to implement in Python that method to determine solutions. AIMS AND LEARNING OUTCOMES At the end of the teaching unit, the student will be able to: - Apply the main optimization methods (content) to real decision problems (condition), selecting the most appropriate technique according to the context (criterion); - Develop basic optimization algorithms in Python (content) for solving structured problems (condition), verifying the correctness of the obtained results (criterion); - Design linear and integer mathematical models (content) for optimization problems on graphs and with binary variables (condition), respecting the specific constraints of the problem (criterion); - Analyze and compare solutions obtained through exact, heuristic, and meta-heuristic methods (content) on proposed case studies (condition), evaluating the effectiveness and efficiency of the solutions (criterion). PREREQUISITES Recommended: Algebra, Analytic geometry, Operations Research, Programming. TEACHING METHODS The teaching unit includes frontal lessons held in the computer classroom, giving students the opportunity to formulate, solve, and analyze the proposed problems together with the teachers. If it is not possible to carry out activities in class, the teaching methods decided by the University will be adopted. For updates, please refer to Aulaweb. Attendance is not compulsory. For students with learning disabilities or special needs, personalized methods are provided according to University regulations. SYLLABUS/CONTENT Consistent with the objectives previously illustrated in the course, the following topics are covered Introduction to programming. Logic programming. Programming languages. Python basic concepts: Getting Started, the first program: "hello world". Variables and Input. Conditional statements. Iteration statements. Functions Modules and Classes Strings, Lists, Dictionaries Use LP and ILP solvers in Python: Introduction to PL and PLI, Define decision variables, Create the objective function, Add constraints to the model, Analysis of the solutions. Data structure: Graph data structure Data manipulation and storage. Develop a parser. Test cases creation. Binary variables with Python. Algorithms and complexity classes (concepts): Exact, heuristic, meta-heuristic. Constructive Algorithms, Greedy Algorithms, selection function. Enhanced Greedy. Implementation of the proposed algorithms. Genetic Algorithms: Chromosome, population, crossover, mutation, selection function. Population diversity, speciation heuristic, and strong mutation. Memetic Algorithms. Implementation of a Genetic Algorithm RECOMMENDED READING/BIBLIOGRAPHY The following books, articles and link are suggested. 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 CARMINE CERRONE Ricevimento: Office hours by appointment, in person or via Teams, to be arranged by email with the professor. LESSONS LESSONS START First Semester https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=attivita Class schedule The timetable for this course is available here: Portale EasyAcademy EXAMS EXAM DESCRIPTION The exam consists of a written test comprising short-answer questions, multiple-choice questions, and brief exercises. Students who achieve a minimum grade of 18/30 will pass the exam. ASSESSMENT METHODS Knowledge and skills will be assessed through online tests and exercises during class, evaluating the ability to apply optimization methods to proposed problems, the correctness of solutions implemented in Python, and clarity of exposition. Assessment criteria include: correctness of answers, appropriate use of terminology, analytical and synthesis skills. FURTHER INFORMATION Please contact the instructor for further information not included in the teaching unit description. Agenda 2030 - Sustainable Development Goals Industry, innovation and infrastructure Responbile consumption and production Climate action 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