Credits
6
Types
Specialization compulsory (Advanced Computing)
Requirements
This subject has not requirements
, but it has got previous capacities
Department
CS
Web
http://www.cs.upc.edu/~erodri/cps.html
Mail
erodri@cs.upc.edu
Course Syllabus (summary).
Examples of combinatorial problems. General paradigms: Integer Linear Programming, SAT and extensions, Constraint Programming. Modelling techniques and languages.
Teachers
Person in charge
- Enric Rodriguez Carbonell ( erodri@cs.upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
1
Guided learning
0
Autonomous learning
6.4
Competences
Advanced computing
Generic
Reasoning
Basic
Objectives
-
Modelling problems arising from computer science and other disciplines in the solving paradigms considered in the course: constraint programming, linear integer programming, propositional satisfiability.
Related competences: CG1, CG3, CEE3.3, CB6, CTR6, -
Becoming familiar with state-of-the-art tools for the solving paradigms considered in the course: constraint programming, linear integer programming, propositional satisfiability.
Related competences: CG3, CEE3.2, CTR6, -
Understanding the algorithmic foundations of each of the solving paradigms considered in the course: constraint programming, linear integer programming, propositional satisfiability.
Related competences: CEE3.2,
Contents
-
Combinatorial Problems.
Informal definition. NP-complete problems vs. polynomial-time problems. Some examples and applications: propositional satisfiability, graph coloring, knapsack, bin packing, etc. Approaches to problem solving. -
Constraint Programming.
Basic definitions. Constraint Satisfaction Problems. Examples. Local consistency: arc consistency, directional arc consistency, bounds consistency. Constraint propagation for global constraints: all different. Search algorithms: basic backtracking, forward checking, partial/full lookahead. Variable and value ordering heuristics. Constraint Optimization Problems. Modeling and solving problems with CP. -
Linear Programming.
Review of linear programming: The simplex algorithm. Duality and the dual simplex. Modelling and solving problems with linear programming. Mixed integer linear programming. Branch & bound, cutting planes, branch & cut. Totally unimodular matrices. Network simplex algorithm. Modelling and solving problems with mixed integer linear programming. -
SAT solving and extensions.
Propositional logic. The satisfiability (SAT) problem. DPLL algorithm. Resolution. Conflict-Driven Clause Learning SAT solvers. Modeling and solving problems with SAT: cardinality constraints, pseudo-boolean constraints. Satisfiability Modulo Theories.
Activities
Activity Evaluation act
Linear Programming
Modelling and solving with Linear Programming- Theory: Understanding of the materials given in theory sessions.
- Laboratory: Resolution of the practical exercises of each laboratory session.
- Autonomous learning: Review and extension of the materials given in theory sessions. Resolution of theoretical exercises.
Contents:
Theory
10h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
20.6h
SAT and Extensions
Modelling and solving with SAT and extensions- Theory: Understanding of the materials given in theory sessions.
- Laboratory: Resolution of the practical exercises of each laboratory session.
- Autonomous learning: Review and extension of the materials given in theory sessions. Resolution of theoretical exercises.
Contents:
Theory
8h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
12.8h
Teaching methodology
The main feature of the teaching methodology is the use of materialsaccessible through the web, specifically designed for a self-learning
course. These materials allow reformulating teaching in such a way
that the traditional model of classes largely disappears.
Thus:
1. It regards the class as a baseline for work, which the student must
continue and deepen on his/her own.
2. It builds upon high quality materials (slides, lists of problems,
solved problems, examples of laboratory practical work, LP/SAT/CP
software, bibliographic references).
3. It aims at motivating students, with examples, discussions,
comments, etc... The intuitions behind the definitions, properties and
techniques are discussed in group.
The laboratory will encourage independent work by the students. The
role of the teacher will be mainly to assist and evaluate the
students, who should work mostly autonomously.
Evaluation methodology
50% of the final grade corresponds to theory. This grade will be obtained by means of a written exam at the end of the course.50% of the final grade corresponds to laboratory. This grade will be obtained as the mean of three successive projects (one for CP, another one for LP, and another one for SAT) that the students will have to hand in.
Bibliography
Basic
-
Handbook of satisfiability
- Heule, Marijn; Walsh, Toby; van Maaren, Hans; Biere, Armin,
IOS Press,
2021.
ISBN: 9781643681603
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=28617772 -
Introduction to algorithms
- Cormen, T.H. [et al.],
MIT Press,
2022.
ISBN: 9780262046305
-
Handbook of constraint programming
- Rossi, F.; Beek, P. van ; Walsh, T. (eds.),
Elsevier,
2006.
ISBN: 0444527264
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003148729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Model building in mathematical programming
- Williams, H.P,
Wiley & Sons,
2013.
ISBN: 9781118443330
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003969709706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
Computational techniques of the simplex method
- Maros, I,
Kluwer Academic Publishers,
2003.
ISBN: 1402073321
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002650079706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Website of the couse with slides, materials and diverse information. http://www.cs.upc.edu/~erodri/cps.html
Previous capacities
Basic knowledge on the Linux operating system and the C++ programming language.Basic knowledge on linear algebra, graph algorithms and logics.