Algorithms - ALGORITMI (2011/2012)

Course code
4S02709
Name of lecturer
Romeo Rizzi
Number of ECTS credits allocated
6
Academic sector
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
Language of instruction
Italian
Location
VERONA
Period
II semestre dal Mar 1, 2012 al Jun 15, 2012.
Web page
http://profs.sci.univr.it/~rrizzi/classes/Algoritmi/temi/

To show the organization of the course that includes this module, follow this link * Course organization

Lesson timetable

II semestre
Day Time Type Place Note
Monday 9:30 AM - 11:30 AM lesson Lecture Hall I from Mar 5, 2012  to Jun 15, 2012
Monday 2:30 PM - 3:30 PM lesson Lecture Hall I  
Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall I  
Thursday 10:30 AM - 1:30 PM lesson Lecture Hall I from Mar 1, 2012  to Mar 2, 2012

Learning outcomes

The goal of this course is to familiarize with the main techniques and methodologies for the design and analysis of efficient algorithms.
We also present some more advanced paradigms and introduce a few approaches
for the dealing with NP-hard problems (approximation algorithms,
implicit enumeration and branch & bound algorithms, fixed parameter tractability).

Syllabus

We follow a direct approach driven by the eager of solving
interesting algorithmic problems together.
Just to draw a path, that could be the following.

Main concepts recall about computational problems: definition, instances, encoding, precise and approximate models. Optimization computational problem.
Main concepts recall about algorithms: computational resources, input encoding, input size/cost, computational time. Worst and average analysis. Computational time and growth order.
Computational time vs. hardware improvements: main relations. Efficient algorithms and tractable problems.

Recursion and induction
-----------------------
examples of the inductive approach in solving problems.

Divide et impera paradigm
-------------------------
Definition and application to some problems.

Greedy paradigm
---------------
Definition and application to some problems.

Dynamic programming paradigm
----------------------------
Definition and application to some problems.
Memoization and Dynamic programming.

Branch & Bound technique
------------------------
Definition and application to some problems.
Lower bounds and upper bounds.

Approximations algorithms
-------------------------
A few classical examples (node cover, set cover, Christofides for the metric TSP, an FPTAS for the knapsack).

Fixed parameter tractability
----------------------------
A few examples.
Kernels, iterative compression, color coding.

Reference books
Author Title Publisher Year ISBN Note
T. Cormen, C. Leiserson, R. Rivest Introduction to algorithms (Edizione 1) MIT Press 1990 0262031418
T. Cormen, C. Leiserson, R. Rivest, C. Stein Introduzione agli Algoritmi e Strutture Dati (Edizione 2) McGraw-Hill 2005 88-386-6251-7

Assessment methods and criteria

Part of the exam of the qualifying in Algorithms and Complexity
(the other half is Complexity).
The test for Algorithms lasts 5 houers and takes places in computer room.
It is required to design and code (in c or c++) efficient as possible
algorithms for three given problems.