Archives Course MPRI 2.11.1 (2012-2022)
Approximation Algorithms & Molecular Algorithms (2021/2022, 8x3h, 3 ECTS)
Thursday 8:45-11:45 Room SG1002
Dates for the lectures:
Lecture 1: Thu 9 DEC Approximation & Randomized Algorithms 1/4
Lecture 2: Thu 16 DEC Molecular algorithms 1/4
Lecture 3: Thu 6 JAN Molecular algorithms 2/4
Lecture 4: Thu 13 JAN Approximation & Randomized Algorithms 2/4
Lecture 5: Thu 20 JAN Approximation & Randomized Algorithms 3/4
Lecture 6: Thu 27 JAN Approximation & Randomized Algorithms 4/4
Lecture 7: Thu 3 FEB Molecular algorithms 3/4
Lecture 7: Thu 10 FEB Molecular algorithms 3/4
Lecture 8: Thu 24 FEB Online (Zoom) - Live from the wetlab Molecular algorithms 4/4\\
Final exam
Teachers:
Lectures will take place every Thursdays 8:45-11:45 in SG1002 starting on 9 DEC.
Internship proposals:
Goals
This lecture explore actual trends in algorithms (and complexity). We will first focus on classic technique mainly based on randomness to obtain approximate solutions to NP-hard problems with proven guarantee. Second, we will explore how algorithms (randomized algorithms and structures) can help understanding better how nature works.
Approximation algorithms: We will first learn how to provide guarantee on the quality of a solution with respect to the optimal when the optimal cannot be computed because either the problem considered is NP-hard or no known exact algorithms are fast enough to be effective. We will practise the various technics designed to analyze its cost guarantee. This field makes extensive use of randomness in order to improve performances.
Molecular algorithms: The second part of the lectures will be dedicated to an introduction to the new field of molecular programming where people are developing theoretical algorithmic models and realizing in wetlab experiments computers compatible with life as we know it. Exploiting the flexibility of DNA molecule, implementations of this new of a kind computer are already happening. We will explore the very rich theory behind this field and hopefully realize some wetlab experiments together to implement algorithms using molecular interactions. Computations in these models are naturally random.
Approximation Algorithms
Approximation algorithm design essentially consists on the positive side in finding the proper relaxation of the constraints in the initial problem in order to get a polynomial-time estimate of the optimal that can then be converted into a solution of the initial problem. The art consists in showing that the quality of the solution does not change in the process. Typical tools are linear and semi-definite programming. On the negative side, it consists in using the celebrated PCP theorem and polynomial reductions (very similar to the classic NP-hardness reductions) to show that some problems cannot be approached within some factor unless P=NP or other catastrophes of the same kind.
Molecular Algorithms
In this second part of the lecture, we will overview the various approaches to the exciting and uprising field of Molecular programming where one uses algorithms to design real molecules that processes information algorithmically. We will explore in details the various theoretical models, their complexity and expressiveness, learn how to program them and survey their experimental realizations, in particular how to design algorithmically these molecules for real. Depending on the timing, we hope to be able to have you take part to a real wetlab experiments where we will have molecules executing a (simple) program for us and observe at the end of its execution the nanoscopic results (usually only about few 100nm large) thru atomic force microscope (to be confirmed).
Prerequisites
A good base in algorithms and complexity is helpful (elementary algorithms, circuits, complexity classes). Knowledge of discrete probabilities and basic information theory (Shannon entropy) helpful.
Course outline (preliminary, subject to changes)
Approximation algorithms: (4 sessions)
Molecular Algorithms theory and practice (4 sessions)
Tile self-assembly system: model, intrinsic universality, algorithms, realizations, DNA computing nanotubes
Boolean circuits: model, circuit, realizations
RNA based computing: oritatami systems, shapes, Turing universality, uncomputability
Experiments: how do we proceed
Language of the course
The lectures will be given in english unless every attendee is fluent in french.
The exam will be given in English, and can be written by the students in either language (french or english).
Sessions schedule
Every session will consist in general of ≈2h lecture followed by ≈1h exercises session.
A small exercise will be given as an homework at the end of each session to be returned for the next session.
Materials
Algorithmes d'approximation, V. Vazirani, Springer, 2006 (traduit de l'américain par N. Schabanel)
Approximation algorithms, V. Vazirani, Springer, 2001
Probability And Computing: Randomized Algorithms And Probabilistic Analysis, by M. Mitzenmacher and E. Upfal, Cambridge University Press, 2005
Computational Complexity: A Modern Approach . S. Arora and B. Barak. Cambridge University Press, 2009.
Communication Complexity. E. Kushilevitz and N. Nisan. Cambridge University Press, 1997.
Data Streams: Algorithms and Applications (Foundations and Trends in Theoretical Computer Science). S. Muthukrishnan. Now Publishers Inc, 2005.
There are no lecture notes. The lectures will be given on the board. Students will be encouraged to write down lecture notes that will be made later available to everyone.
Some additional reading will be suggested during the course.
Internships
Internships are available. Contact the teachers of the lectures directly (for instance by email):
Teaching team
Suggested M2 courses
Parcours: Algorithms & Complexity
The following is a coherent list of courses on the thematic 'Algorithms and Complexity'.
Parcours: Molecular and Biological programming & modelling
The following is a coherent list of courses on the thematic 'Molecular and Biological programming & modelling'.
Some related research articles:
Lectures 2021-2022
Course Summary 2021-22: Approximation Algorithms (Lectures 1,4,5,6)
Lecture 1 (2021.12.9): Introduction to Approximation Algorithms
Lecture 2 (2022.1.13): PTAS and TSP
Lecture 3 (2022.1.20): Machine Scheduling
Lecture 4 (2022.1.27): Facility Location
Course Summary 2021-22: Molecular programming (Lectures 2, 3, 7 & 8)
Lecture 2 [1/4] (2021.12.16): Introduction to DNA programming & Tile Assembly Systems [ Slides ]
Lecture 3 [2/4] (2022.01.06): Universality in assembly Model (I): Theory and experiment
Universality in assembly Model (I) [ Slides ]
Simulating a Turing machine at temperature T°=2 in aTAM
Optimal hardcoding of a binary string at T°=2 in aTAM
Simulating a Turing machine at temperature T°=1 in aTAM in 3D
An experimental realization of a universal computer [ Slides ]
Single stranded tile nanotubes
Atomic Force Microscopy (AFM)
Marking 0s and 1s using biotin-streptavidin
kTAM kinetic assembly model
Error correction using proof-reading tiles
DNA nanotube circuit model
Examples of nanotube circuits
A 6-bits Turing universal nanotube circuit
Minimizing errors with proof-reading tiles
Counting the glues
Sequence design
Experiment results
Exercise sessions [ HW2
]
Exponential random variables and kTAM implementation
Tileset for simulating cellular automata
Probabilistic simulation of Turing Machine at T°=1 in 2D
Scale the wall
Option 1: to return by Thu. Feb 3, 2022 8:45 the latest
Design a DNA origami
Option 2: to return by Thu. Jan 27, 2022 8:45 the latest in order to process to the presentation of the designs and vote for the one we will assemble together in wetlab on Feb 24
Some links for inspiration [
DNA origami |
Survey |
Dietz lab |
Multi-component origami ]
Lecture 7 [3/4] (2022.02.10): Oritatami: a computational model for co-transcriptional folding
-
Co-transciptional RNA folding
Oritatami model
Oritatami vs aTAM
A binary counter
Efficient Turing machine simulation
NP-hardness and FPT linear algorithm for the rule design problem
Building shapes at constant scale with a set of 19 universal bead types
Turedo: building nanobots with oritatami
Intrinsic simulation
The macrocell
A key tool: folding meter and pocket
The density of limit configurations
Exercise sessions [ HW3 ]
Oritatami: impossible triangular path
(Due on Thursday Feb 24 before 8:45)
Lecture 8 [4/4] (2022.02.24): Live AFM session
Archives 2020-2021
Course Summary 2020-21: Molecular programming (Lectures 1-4)
Lecture 1 (2019.09.16): Introduction to DNA programming & Tile Assembly Systems [ Slides ]
Lecture 2 (2019.09.23): Universality in assembly Model (I): Theory and experiment
Universality in assembly Model (I) [ Slides ]
Simulating a Turing machine at temperature T°=2 in aTAM
Optimal hardcoding of a binary string at T°=2 in aTAM
Simulating a Turing machine at temperature T°=1 in aTAM in 3D
An experimental realization of a universal computer [ Slides ]
Single stranded tile nanotubes
Atomic Force Microscopy (AFM)
Marking 0s and 1s using biotin-streptavidin
kTAM kinetic assembly model
Error correction using proof-reading tiles
DNA nanotube circuit model
Examples of nanotube circuits
A 6-bits Turing universal nanotube circuit
Minimizing errors with proof-reading tiles
Counting the glues
Sequence design
Experiment results
Exercise sessions [ HW2 ]
Exponential random variables and kTAM implementation
Tileset for simulating cellular automata
Probabilistic simulation of Turing Machine at T°=1 in 2D
Lecture 3 (2020.09.30): Universality in assembly Model (II): Intrinsic universality and Oritatami
Intrinsic Universality in tile assembly model [ Slides ]
Intrinsic universality at T°2
The supercell, the probes
One (polygonal) tile is enough
Oritami: a computational model for co-transcriptional folding [ Slides ]
RNA co-transcriptional folding
Oritatami model
A first example: a binary counter
Proving its correctness
Rule design is NP-hard but FP-tractable
Oritatami is Turing complete
Simple intrinsic Oritatami simulation of cellular automata
Exercise sessions [ HW3 ]
Building shapes with Oritatami
Lecture 4 (2020.10.07, Last): Strand displacement boolean circuits [ Slides ]
Course Summary 2020-21: Approximation Algorithms (Lectures 5-8)
Lecture 5 (2020.10.14): Introduction to Approximation Algorithms
Overview of the field
Greedy algorithm for Set Cover
Laying algorithm for Weighted Vertex Cover
Approximation scheme for Knapsack
-
Lecture 6 (2020.10.21): Introduction to Linear Program
Christofides' TSP Algorithm
Introduction to Linear Program and Duality Theory
Two Rounding Algorithm for Set Cover
Analysis of Greedy for Set Cover Using Dual-Fitting
-
Lecture 7 (2020.10.28): Introduction to Large Concentration Inequality
Archives 2019-2020
Course Summary 2019-20: Approximation Algorithms (Lectures 1-4)
Lecture 1: Introduction
Introduction to Approximation Algorithms & overview of the field
Examples of Combinatorial/LP-Based/Randomized Algorithms for NP-hard Problems
Min-Cut Algorithm of Karger
-
Lecture 2: Chernoff Bounds
Lecture 3: Random Walk and Submodular Function
Lecture 4: Semi-Definitie Programming
Max-Cut
Color-Coding
Vertex-Cover Revisited
-
Course Summary 2019-20: Molecular programming (Lectures 5-8)
Lecture 5 (2019.10.09): Introduction to DNA programming & Tile Assembly Systems [ Slides ]
Lecture 6 (2019.10.16): Universality in assembly Model (I): Theory and experiment
Universality in assembly Model (I) [ Slides ]
Simulating a Turing machine at temperature T°=2 in aTAM
Optimal hardcoding of a binary string at T°=2 in aTAM
Simulating a Turing machine at temperature T°=1 in aTAM in 3D
An experimental realisation of a universal computer (I) [ Slides ]
Single stranded tile nanotubes
Atomic Force Microscopy (AFM)
Marking 0s and 1s using biotin-streptavidin
kTAM kinetic assembly model
Error correction using proof-reading tiles
DNA nanotube circuit model
Exercise sessions [ HW2 ]
Staged self-assembly (from HW1)
Exponential random variables and kTAM implementation
Tileset for simulating cellular automata
Probabilistic simulation of Turing Machine at T°=1 in 2D
Lecture 7 (2019.10.23): Universality in assembly Model (II): experiment, intrinsic universality and Oritatami
An experimental realisation of a universal computer (II) [ Slides (again) ]
Examples of nanotube circuits
A 6-bits Turing universal nanotube circuit
Minimizing errors with proof-reading tiles
Counting the glues
Sequence design
Experiment results
Intrinsic Universality in tile assembly model [ Slides ]
Intrinsic universality at T°2
The supercell, the probes
One (polygonal) tile is enough
Oritami: a computational model for co-transcriptional folding [ Slides ]
RNA co-transcriptional folding
Oritatami model
A first example: a binary counter
Proving its correctness
Rule design is NP-hard but FP-tractable
Oritatami is Turing complete
Simple intrinsic Oritatami simulation of cellular automata
Exercise sessions [ HW3 ]
Window movie Lemma
Lecture 8 (2019.10.30 - Last): Oritatami Shapes & Strand displacement boolean circuits
Oritatami: building shapes [
Slides ]
The problem
Some impossible shapes
Scaling schemes
Algorithm for scales Bn≥3
Filling a pseudo-hexagon
Bead type set for tight Oritatami systems
Algorithm for scales An≥5
Algorithm for scale A4
Algorithm for scale A3
Time anomalies and how to fix them
Strand displacement boolean circuits [
Slides ]
**Archives 2018-2019 (8x3h)**
Course Summary 2018-19: Approximation algorithms (Lectures 1-4)
Lecture 1 Introduction to Randomised and Approximation Algorithms
Lecture 2 Chernoff Bounds
Lecture 3
Lecture 4
Course Summary 2018-19: Molecular programming (Lectures 5-8)
Lecture 5: Introduction to DNA programming & Tile Assembly Systems [ Slides ]
Lecture 6: Universality in assembly models & Introduction to Strand displacement
Universality in assembly models [ Slides A ]
aTAM simulate Turing machines at temperature T=2
Optimal seed encoding at T=2: Kolmogorov complexity & unpacking
aTAM simulate Turing machines at temperature T=1 in 3D but not 2D
Intrinsic universality of aTAM at temperature T=2
One (polygonal) tile is enough!
-
Exercise sessions [
HW2 ]
Tileset for simulating cellular automata
Probabilistic simulation of Turing machine at temperature T=1 in 2D
Window movie lemma
Lecture 7: Strand Displacement
-
Making an AND gate: rough computation of energy and entropy deltas
Composing gates: making a wire
Reading the result optically: fluorophore and quencher
Implementing a reaction gate
Implementing monotonic gates (AND and OR)
Handling NOT gates with dual rails
Moving NOT gates to the top
Robustness: preventing leaking:
Presenting Breadboard 1.0
Exercise sessions [
HW3 ]
DNA circuits
Building shapes with oritatami
Lecture 8: Oritatami: A computational model for cotranscriptional molecular folding [ Slides ]
Movies & animations: [ RNA folding (slide 11) | Oritatami step 1 (slide 15) 2 (slide 21) 3 (slide 25) | Oritatami counter (slide 30) | Module G (slide 102) ]
**Archives 2017-2018 (8x3h)**
Course Summary: Approximation algorithms (Lectures 1-4)
Lecture 1 Introduction to Approximation Algorithms
Introduction to the Course
Optimization problems & Approximation Algorithms
Set Cover (two LP-based approximation algorithms)
Min Cut of Karger
-
Lecture 2 Chernoff Bound
Lecture 3 Max Cut
An algorithm of Fernandez de la Vega for max cut in dense graph (an exposé of Nicholas Schabanel is here
PDF)
-
Lecture 4 Semi-Definite Programming
Course Summary: Molecular programming (Lectures 5-8)
Lecture 5: Introduction to molecular programming & Tile assembly systems (Oct 18) Video
Introduction to the course [0:00:00]
A little history of the field [0:09:14]
Tile assembly systems [0:35:41]
A binary counter [0:51:50]
Minimizing the assembly time [1:10:01]
Exercises session [1:51:44] HW1 PDF
Guess the assembly 1
Guess the assembly 2
A counter
Staged assembly of a candelabrum
Expected assembly time & rank of a construction
Minimum number of tiles for the families of squares and rectangles
Lecture 6: Universality in tile assembly systems (Oct 25) Video
Simulating Turing Machines at T°=2 [0:00:00]
Kolmogorov Complexity [0:29:02]
Lower Bounding the minimal number of tiles to hardcode the input seed with Kolmogorov complexity [0:54:16]
Optimal number of tiles for hardcoding the seed [1:06:43]
Exercises session [1:42:54] HW2 PDF
HW1 exercise 5: Assembly time = O(rank) w.h.p.
Lecture 7: Universality in Tile Assembly and Oritatami Systems (Nov 8) Video
Tile sets self-assembling an arbitrary shape [0:00:00]
Turing-Universal tile set in 3D at T°1 [0:29:05]
Intrinsically universal tile set in 2D at T°2 [0:49:06]
Magic Powder [1:11:56]
Oritatami: A model for co-transcriptional folding [1:15:19]
Exercise session:
Designing DNA origami using cadnano [2:19:08]
Lecture 8: Some experimental achievements in DNA programing (Nov 15) Video
The equipment: Pipetters, thermocycler & AFM microscopy [0:00:00]
A tour of built DNA nano-structures [0:39:17]
DNA single stranded tiles [1:00:41]
Stacking interactions [1:01:29]
Strand displacement [1:03:55]
Exercise session:
cadnano is back [1:11:49]
HW1-6: Tile set of minimimum size for Squares and Rectangles [1:15:28]
HW2-1: Discrete slope [1:31:01]
HW2-2: Window movie lemma [1:42:40]
**Archives 2016-2017 (8 x 3h)**
Lecture 1 [Wed 14/9/2016 16:15-19:15] Introduction to Approximation Algorithms Video
Introduction to the Course
Optimization problems & Approximation Algorithms
About Hardness of approximation
Approximation Algorithms for Metric TSP
-
3/2-Approximation for Metric TSP
Cost-based approximation for Vertex Cover
Maximum Arc-Disjoint Paths (1)
Lecture 2 [Wed 21/9/2016 16:15-19:15] Mathematical Programming 1: Linear programming Video
Mathematical Programming [0:00:00]
Introduction to Linear Programming [0:01:45]
First Example: Max-CUT as an Integer Program [0:07:04]
LP Relaxation for Max-CUT & Randomized Rounding [0:38:16]
Max-SAT: Random Assignment [1:09:26]
Max-SAT: Randomized Rounding [1:24:23]
Max-SAT: Combining both Algorithms into One [2:12:33]
-
Dumb Algorithm for Max-SAT
Metric
k-Center
SDP Approximation for Weighted Max-2SAT
Lecture 3 [Wed 28/9/2016 16:15-19:15] Mathematical Programming 2: Semi-definite / Vector programming Video
0. Introduction [0:00:00]
1. A quadratic program for Max-CUT [0:02:09]
2. Relaxing a Quadratic Program as a Vector Program [0:10:17]
3. Vector Programs = Semi-Definite Programs [0:16:14]
4. VP is indeed a relaxation of integer QP [0:27:28]
5. Rounding VP: the Random Hyperplane Technic [0:38:43]
6. Analysis of the Random Hyperplane Algorithm [1:10:09]
-
Randomized Rounding for Set Cover
Lecture 4 [Wed 5/10/2016 16:15-19:15] Polynomial Time Approximation Schemes Video
0. (F)PT(R)AS: (Fully) Polynomial-Time (Randomized) Approximation Schemes [0:00:00]
1. A FPTAS for the Knapsack Problem [0:10:31]
2. A FPTRAS for Max-Cut in α-Dense Graphs [1:05:27]
-
A PTAS for the Minimum Cost Overflow Problem
Lecture 5 [Wed 26/10/2016 16:15-19:15] Nature Programming: Abstract Tile Assembly Model Slides
0. Introduction to Nature programming & DNA assembly
1. Abstract Tile Assembly Model
2. A binary counter
3. Minimizing the assembly time for squares & cubes
-
Guess the result of the algorithmic Self-Assembly (I)
Guess the result of the algorithmic Self-Assembly (II)
Counter at T°=2
Staged assembly scheme at temperature T°=1
Concentrations, Rank and Assembly time
Minimum number of tile types for squares and rectangles
Lecture 6 [Wed 2/11/2016 16:15-19:15] Nature Programming: Universality in Tile Assembly Systems Video
0. HW4: NP-completeness & Optimization Problems [0:00:00]
1. Turing Universality in tile assembly systems [0:05:43]
2. Turing universality at T°=2 [0:12:31]
3. Turing universality at T°=1 [0:36:19]
4. Minimizing the number of tiles to build a shape [1:19:04]
Exercise Session 6: [2:31:39]
HW5(2): Assembly time, rank & concentrations
Lecture 7 [Wed 9/11/2016 16:15-19:15] Nature programming: Intrinsic Universality & Other Models including Oritatami Video
0. Theory vs Practice [0:00:00]
1. Intrinsic Universality of Tile Assembly Systems at T°=2 [0:04:59]
2. One (Polygonal) Tile is Enough! [0:39:20]
3. Other Models: Bio-Logical Circuits [0:43:00]
4. Nubots: a Model for Molecular Reconfiguration [0:49:43]
5. About Experiments: Nanotubes that Compute [0:54:07]
6. Oritatatami: one Molecule that computes co-transcriptionally [0:58:26]
6.1 Experiment: Synthetic RNA Co-Transcriptional Folding-based Meshes [0:58:54]
6.2 Oritatami: A Model for Co-Transcriptional Folding [1:11:58]
6.3 Oritatami: How to Compute? [1:18:02]
6.4 Oritatami: Rule Design is NP-hard but Fixed Parameter Tractable [1:31:55]
6.5 Oritatami Systems simulate efficiently Turing machines [1:41:20]
6.6 Oritatami: How to Prove the Correctness? [2:04:36]
6.7 Oritatami: Conclusion [2:28:48]
No Exercise Session
Lecture 8 (last) [Wed 9/11/2016 16:15-19:15] Nature programming: Experiments
1. Description of the recent experiment of Damien Woods et al on building nanotubes implementing 6-bit circuits computation
2. Introduction to CADNano, a DNA Origami Designer
3. Introduction to NUPack, a DNA/RNA strand(s) energy/partition function calculator
**Archives 2014-2015 (24h)**
Lecture 1 [18/9/2014] NP-completeness, Hardness of approximation & Approximation algorithms Video 1 2 3
Introduction to approximation algorithms
NP-completeness, PCP theorem & hardness of approximation
Definitions: Optimization problem & Approximation
Hardness of approximation for non-metric TSP
A 2-approximation for metric TSP
A 3/2-approximation for metric TSP
-
Max-Cut: randomized 2-approximation and greedy approximation by the conditional expectation method
Coloring 3-colorable graphs
Cost-based 2-approximation for Vertex Cover
Lecture 2 [25/9/2014] Introduction to Integer Programming, Linear Relaxation and Rounding Video 1 2 3
Max-SAT
Random solution to Max-SAT
A (1-1/e)-approximation based on a randomized rounding of a solution to a linear program for Max-SAT
Mixing both algorithms yield a 3/4-approximation
-
Dumb algorithm for Max-SAT
Simple rounding f-approximation for Set Cover
Randomized rounding (ln(n)+O(1))-approximation for Vertex Cover
2- and 3-approximations for Minimum Weighted Sum of Completion Time Scheduling with dependencies and with and without release dates
Lecture 3 [16/10/2014] PTAS: Polynomial Time Approximation Schemes Video 1 2 3
Lecture 4 [23/10/2014] Introduction to semi-definite programming Video 1 2 3
From quadratic formulation to vector program
Rounding with cutting hyperplanes for Max-Cut
A O(n1/3)-approximation for coloring 3-colorable graphs
-
How to draw unit vector uniformly at random
A O(n1/4)-approximation for coloring 3-colorable graphs
Lecture 5 [30/10/2014] Introduction to Lasserre's hierarchy (1/2) Video 1 2 3
Important properties of semi-definite matrices
Equivalence of vector programs and semi-definite programming
Definition of Lasserre's hierarchy
First properties of the solutions
Decomposition: lemma and theorem
No exercise session today
Lecture 6 [6/11/2014] Lasserre's hierarchy (2/2) Video 1 2 3
Lecture 7 [13/11/2014] Natural algorithms: the Small-World phenomenon Video 1 2 3
Sociological context: Milgram's experiment
First Small World models
Kleinberg's augmented grid model
Case α < 2: Long-range links are too messy
Case α > 2: Long-range links are too short
Case α = 2: The greedy algorithm
Small-World emergence: the Move-and-Forget model
No exercise session today
Lecture 8 (last) [20/11/2014] Algorithmic self-assembly & Non-clairvoyant scheduling Video 1 2 3
Archives 2012-2013 (12h)
Lecture 1: Wed Sep 26, 2012 - 12:45-15:45 [[http://www.dailymotion.com/playlist/x2965x_NicolasSchabanel_mpri-2012-approximation-algorithms/1#video=xtwp31|Vidéo]]
Introduction to Approximation Algorithms
P vs NP, a refinement of NP-completeness: Inapproximability results
Definitions of Optimization problems and Approximation algorithms
General principles for obtaining approximation algorithms
An exemplary example: the Travelling Salesman Problem
Definition of TSP
Inapproximability of general TSP unless P = NP
A first 2-approximation algorithm (MST-based)
Cristofides algorithm: a 3/2-approximation algorithm
Family of tight instances for both algorithms
TD1 [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD1.pdf|PDF]]
Random Cut for Max-Cut and derandomization by the conditional expectation method
2-approximation for Metric Steiner Tree and isofactor reduction from general to metric
Lecture 2: Wed Oct 3, 2012 - 12:45-15:45 [[http://www.dailymotion.com/playlist/x29num_NicolasSchabanel_mpri-2012-approximation-algorithms-lecture-2/1#video=xu8c5r|Vidéo]]
Linear Programming
Introduction, LP Relaxation, First rounding (Vertex-Cover)
Duality and Complementary Slackness Conditions
Application: primal-dual algorithm for Vertex-Cover & Maxim-um/-al Matching
(Note for next year: primal dual algorithm for Set-Cover would have been a better choice)
TD2 [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD2.pdf|PDF]]
Basic duality manipulation
A randomized LP-rounding algorithm for Set-Cover
Lecture 3: Wed Oct 10, 2012 - 12:45-15:45 - A Polynomial Time Randomized Approximation Scheme (PTRAS) for dense Max-Cut [[http://www.dailymotion.com/playlist/x29x3v_NicolasSchabanel_mpri-2012-approximation-algorithms-lecture-3/1#video=|Vidéo]]
Definition of PTAS, PTRAS, example of dependence in ε
Dense Max-Cut
A first algorithm
The PTRAS
TD3 [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD3.pdf|PDF]]
A Fixed-Parameter Tractable (FPT) algorithm for k disjoint triangles
A Constant Time Approximation Scheme (CTAS) for the size of a maximal matching
Lecture 4: Wed Nov 7, 2012 - 12:45-15:45 - Hardness of approximation: The PCP theorem by GAP amplification [[http://www.dailymotion.com/playlist/x2besj_NicolasSchabanel_mpri-2012-approximation-algorithms-lecture-4/1#video=xuxogf|Vidéo]] [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/PCP.pdf|Slides]]
A little bit of history
Gap problems and Hardness of approximation
The CSP: Graph Constraints Satisfaction Problem
Overview of the Gap amplication process 2.a) definition
A key tool: Expander graphs I
Step 1: Degree uniformization
Step 2: Expanderization
Expander graphs II: spectral theory and random walks
Step 3: Gap amplification
Step 4 (last): Alphabet reduction
Gap-preserving reductions
TD4: [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD4.pdf|PDF]]
Gap-preserving reductions for Vertex-Cover and Steiner Tree
Random walks on expanders