Studying at the University of Verona

Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.

This information is intended exclusively for students already enrolled in this course.
If you are a new student interested in enrolling, you can find information about the course of study on the course page:

Laurea in Matematica applicata - Enrollment from 2025/2026

The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.

CURRICULUM TIPO:

2° Year   activated in the A.Y. 2017/2018

ModulesCreditsTAFSSD
6
A
MAT/02
6
B
MAT/03
6
C
SECS-P/01
6
C
SECS-P/01
6
B
MAT/06

3° Year   activated in the A.Y. 2018/2019

ModulesCreditsTAFSSD
6
C
SECS-P/05
activated in the A.Y. 2017/2018
ModulesCreditsTAFSSD
6
A
MAT/02
6
B
MAT/03
6
C
SECS-P/01
6
C
SECS-P/01
6
B
MAT/06
activated in the A.Y. 2018/2019
ModulesCreditsTAFSSD
6
C
SECS-P/05
Modules Credits TAF SSD
Between the years: 1°- 2°- 3°
Between the years: 1°- 2°- 3°
Altre attività formative
6
F
-

Legend | Type of training activity (TTA)

TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.




S Placements in companies, public or private institutions and professional associations

Teaching code

4S00001

Teacher

Romeo Rizzi

Coordinator

Romeo Rizzi

Credits

6

Language

Italian

Scientific Disciplinary Sector (SSD)

MAT/09 - OPERATIONS RESEARCH

Period

II semestre dal Mar 4, 2019 al Jun 14, 2019.

Learning outcomes

The student of mathematics (L40, Verona) will encounter in concrete the concepts of: problems, models, formulations of operations research, but also of instances, algorithms, reductions and mappings among problems of the computer science field. The course will propose some models of operations research, at least the following: linear programming (LP), integer linear programming (ILP), max-flows and min-cuts, bipartite matchings and node covers, minimum spanning trees, shortest paths, Eulerian paths, and some models resorting on dynamic programming among which some knapsack variants. For all these models/problems, except PLI, the student will learn the solving algorithms, the properties on which they hinge, and how to conduct their execution.
However, besides and beyond this, the course aims at building a good and active relationship, practice, and acquaintance, with general mathematical methodologies and techniques (more typical of discrete math and for this reason not yet fully assimilated from our students) and some basic underpinnings of computer science. In particular, we insist on the dialog with problems and with the art/technique of conjecturing, no occasion is lost to spotlight where invariants and monovariants play a role in proofs, algorithms and data structures. We build up confidence with mathematical induction as an active tool for problem solving, and introducing the dialects of induction most voted to efficiency (divide et impera, recursion with memoization, dynamic programming). Some basic principles of informatics are underlined, like coding, algorithms, data structures, recursion as a counterpart of mathematical induction and of computability. (In some editions of the course first scratch introductions to numerability and computability have been offered). Coming to efficiency, our central perspective, the use of asymptotic notation is justified and adopted, the classes P, NP, coNP are introduced, and the concepts of good characterizations, good conjectures and good theorems are illustrated in length and complexity theory is advertised as a lively source of new methodologies in the art of facing problems and enquiry their intrinsic structural properties. Several aspects of the role and importance of the art of reducing one problem to another are discussed and clarified. The life cycle of a good conjecture, the workflow linking good conjectures and algorithms, the production and interpretation of counterexamples as a means of dialog with the problem, and the possible use of them in obtaining NP-completeness proofs, are all discussed, investigated and exemplified in action.
Explicit emphasis is constantly given to the role and use of certificates. Meanwhile these transversal and high competences of methodological interest and imprinting are delivered, the students is asked to learn and develop several concrete procedural competences, in particular within LP, and in an algorithmic treatment of graph theory, introduced as a versatile model and an intuitive and expressive language for the formulation of problems.
For a complete and detailed list of all these procedural competences delivered and requested, see the past exams and corrections over the various editions of the course.

The notions from computational complexity introduced in the course, and the attention to the languages of the certificates, will lead the student to recognize with more awareness the structure of a sound proof.
Dealing with instances, problems, models, both from the perspective of algorithms and of models and formulations, will enforce the attitude and competence in casting simple problems from the applications into mathematical models.
The knowledge of the paradigmatic results of linear programming theory (duality, complementary slackness, economic interpretation, sensitivity analysis) will provide the student with important tools in obtaining non-trivial insights on the practical problem from the model.

Program

Operations Research offers quantitative methods and models for the optimal management of resources, and optimization of profits, services, strategies, procedures.
This course of Operations Research gets to Mathematical Programming
moving from Algorithmics and Computational Complexity.
After revisiting mathematical induction, recursion, divide et impera, with a curiosity driven problem solving approach, we insist on dynamic programming thinking which gets then exemplified in a few classical models of Operations Research and Computational Biology.
With emphasis on method and techniques, we get involved in formulating, encoding and modeling problems, conjecturing about them, reducing one to the other,
and well characterizing them.
The course offers an in-depth introduction to linear programming.
Following the historical path, we introduce graphs as for modeling,
and explore the basic fundamental results in combinatorial optimization and graph theory.

LIST OF TOPICS:

1. Basic Notions
problems
models
algorithms
complexity

2. Introduction to Algorithms and Complexity
analysis of a few algorithms
design techniques (recursion, divede et impera, recursion with memoization, dynamic programming, greedy)
complexity theory (P, NP, co-NP, good characterizations, good conjectures, examples of NP-completeness proofs)

3. Combinatorial Optimization Models
knapsack problems
Problems on sequences
Problems on DAGs

4. Introduction to Graph Theory
graphs and digraphs as models
a few good characterizations (bipartite, Eulerian, acyclic, planar graphs)
a few NP-hard models (Hamilton cycles, cliques, colorability)
shortest paths
minimum spanning trees
maximum flows
bipartite matchings

5. Linear Programming (LP)
the LP and the ILP models (definition, motivations, complexity, role)
geometric method and view (feasibility space,
pivot, duality, dual variables, degeneracy, complementary slackness)
standard and canonical form
simplex method
duality theory
complementary slackness
economic interpretation of the dual variables
sensitivity analysis

BOOKS, NOTES AND OTHER DIDACTIC MATERIALS AND RESOURCES:

At the following page you find a list of available materials (books, notes, videos) about topics covered within the course:

http://profs.sci.univr.it/~rrizzi/classes/RO/materiali

If you find out further effective material help us enlarging this list.

TUTORING (IF AVAILABLE):

For the 2017-18 edition we are planning to introduce a tutor that will assist and guide the students in performing the exercises suggested during the class and in conducting practical experiences.

Reference texts
Author Title Publishing house Year ISBN Notes
Christos H. Papadimitriou, Kenneth Steiglitz Combinatorial optimization : algorithms and complexity Dover Publications, Inc. 1998 0-486-40258-4
Robert J. Vanderbei Linear Programming: Foundations and Extensions (Edizione 4) Springer 2001 978-1-4614-7630-6

Examination Methods

At the end of the course, a written exam with various types of exercises and questions, and several opportunities to gather points to test and prove your preparation. You can add to the mark acquired at the exam by conducting projects aiming at improving aspects and/or materials of the course in a broad sense.
In preparing yourself for this exam,
take profit of the material (text and correction for each previous exam) available at the website of the course:

http://profs.sci.univr.it/~rrizzi/classes/RO/index.html

We also suggest to consult the three files:
prepararsi_esame.pdf, procedura_esame.pdf and dopo_esame.pdf
contained in folder 000-INFO-ESAME-000 contained, at the same page, among the folders of each previous exams. The approach and spirit with which you should elaborate your answers to the exercises is indeed related to some deep methodological messages at the core of the course, and it might turn difficult to achieve full satisfaction and recognizement at the exam without having adopted these approaches which can go easily overlooked.

There are 4 exam sessions each academic year (June, July, September, February). The exam is the very same regardless on whether you have attended or not the course. The archives of the past exams, the relative corrections, and the videos of the classes, all can help overcoming the difficulties of the non-attending student.

Students with disabilities or specific learning disorders (SLD), who intend to request the adaptation of the exam, must follow the instructions given HERE