Skip to main content
CODE 106838
ACADEMIC YEAR 2023/2024
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR MAT/09
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

Optimization is a discipline included in decision science and management science. In addition to the basic notions of this subject, the course provides an introduction to programming and software development. The programming language that will be used and explored is Python.
The course provides students the most relevant Optimization methods, among the main techniques, Linear programming, Integer Linear Programming, heuristic, and meta-heuristic algorithms are presented.

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

The course provides students an overview of the most important optimization methods, problem-solving skills will also be provided. 
The course is aimed at developing optimization models and providing methods for complex problems. 
The focus of the course is on algorithmic techniques aimed at a faster resolution of these types of complex problems. 
At the end of the course, students will be able to use the Python programming language to develop a basic optimization algorithm.
Among the main Optimization techniques, students will acquire skills in Mathematical Programming,  Heuristic, and Meta-heuristic algorithms to face relevant complex problems, as  Optimal routes and connections problems, Decision problems with Boolean variables, Optimization problem defined on Graphs.

 

PREREQUISITES

Recommended:

  • Algebra,
  • Analytic geometry,
  • Programming,

TEACHING METHODS

The course includes frontal lessons held in the computer classroom, to give students the opportunity to formulate, solve and analyze together with the teachers the proposed problems. If it is not possible to carry out activities in class, due to changes in health conditions, the teaching methods decided by the University will be adopted. For any updates, please refer to Aulaweb.

SYLLABUS/CONTENT

Consistent with the objectives previously illustrated in the course, the following topics are covered

  1. Introduction to programming.
    • Logic programming.
    • Programming languages. 
  2. Python basic concepts:
    • Getting Started, the first program: "hello world".
    • Variables and Input.
    • Conditional statements. Iteration statements.
    • Functions Modules and Classes
    • Strings, Lists, Dictionaries
  3. 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.
  4. Data structure: 
    • Graph data structure
    • Data manipulation and storage. 
    • Develop a parser.
    • Test cases creation. 
    • Binary variables with Python.
  5. Algorithms and complexity classes (concepts): 
    • Exact, heuristic, meta-heuristic. 
    • Constructive Algorithms, Greedy Algorithms, selection function. Enhanced Greedy.
    • Implementation of the proposed algorithms.        
  6. 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

Exam Board

CARMINE CERRONE (President)

DANIELA AMBROSINO

ANNA FRANCA SCIOMACHEN

LESSONS

LESSONS START

First Semester

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

Online test during lessons,

Oral interview,

Project discussion.

Exam schedule

Data appello Orario Luogo Degree type Note
18/12/2023 11:00 GENOVA Scritto
10/01/2024 11:00 GENOVA Scritto
07/02/2024 11:00 GENOVA Scritto
29/05/2024 11:00 GENOVA Scritto
12/06/2024 11:00 GENOVA Scritto
26/06/2024 11:00 GENOVA Scritto
04/09/2024 11:00 GENOVA Scritto

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Industry, innovation and infrastructure
Industry, innovation and infrastructure
Responbile consumption and production
Responbile consumption and production
Climate action
Climate action

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