Heuristic algorithms (2023/24)

Schedule and classroom


The lessons take place

  • on Thursday, from 14.30 to 16.30, in classroom 201
  • on Friday, from 14.30 to 16.30, in classroom 100

Exam


The exam is written, usually composed of five parts:

  1. combinatorial optimization problems: ground sets, objective function and feasibility
  2. performance evaluation: quality and time, a priori and a posteriori
  3. constructive heuristics and metaheuristics
  4. exchange heuristics and metaheuristics
  5. recombination heuristics and metaheuristics
that include theoretical questions and numerical exercises.

The dates expected for the exams are (but please check on the official site):

  • on 18/01/2023, from 14.30 to 17.00 in classroom 109 (via Celoria)
  • on 01/02/2023, from 14.30 to 17.00 in classroom 109 (via Celoria)
  • on 22/02/2023, from 14.30 to 17.00 in classroom 109 (via Celoria)

Lessons

The videorecordings of the lessons are available at the Ariel web site of the course.

The students can access the 2018/19 edition web page of the course in Italian, but the material has not been updated.

Lecture notes in English have been published last year. The students are welcome to report mistakes: apart from correcting the mistakes pointed out, I am not planning further updates in the near future.

Additional lecture notes for the Italian version of the course have been provided by another former student.

Lesson 1 (29th September 2023)

Introduction: basics and classification of heuristic algorithms

Lesson 2 (5th October 2023)

Combinatorial Optimization: problems on sets, logical functions, matrices and graphs

Lesson 3 (6th October 2023)

A priori evaluation of algorithm efficiency: parameterized complexity and average-case complexity

Lesson 4 (12th October 2023)

A priori evaluation of algorithm effectiveness: deterministic and randomized approximation

Lesson 5 (13th October 2023)

A posteriori evaluation of heuristic algorithms (1)

Lesson 6 (19th October 2023)

A posteriori evaluation of heuristic algorithms (2)

Lesson 7 (20th October 2023)

Constructive heuristics: basic definitions and exact algorithms

Lesson 8 (26th October 2023)

Constructive heuristics: nonexact algorithms

Lesson 9 (27th November 2023)

Constructive heuristics: extensions of the basic scheme

Lesson 10 (2nd December 2023)

Laboratory on constructive and destructive heuristics

Lesson 11 (3rd December 2023)

Constructive metaheuristics: Tabu Greedy, GRASP and Ant System

Lessons 12 (9th November 2023)

Laboratory on constructive metaheuristics

Lesson 13 (10th November 2023)

Exchange heuristics: neighbourhood definition

Lessons 14 (16th November 2023)

Exchange heuristics: exploration complexity

Lesson 15 (17th November 2023)

Very Large Neighbourhood Search

Lesson 16 (23rd November 2023)

Laboratory on exchange heuristics

Lesson 17 (24th November 2023)

Exchange metaheuristics: Multi-start, Iterated Local Search and Variable Neighbourhood Search

Lesson 18 (30th November 2023)

Exchange metaheuristics: Variable Neighbourhood Descent and Dynamic Local Search

Lesson 19 (1st December 2023)

Exchange metaheuristics: Simulated Annealing and Tabu Search

Lesson 20 (14th December 2023)

Laboratory on exchange metaheuristics

Lesson 21 (15th December 2023)

Recombination metaheuristics: Scatter search and Path Relinking

Lessons 22 (21st December 2023)

Recombination metaheuristics: genetic algorithms (1)

Lesson 23 (11th January 2024)

Recombination metaheuristics: genetic algorithms (2)

Lesson 24 (12th January 2024)

Laboratory on recombination metaheuristics