Table of Contents

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:


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.

  1. 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.
  2. 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)

  1. Approximation algorithms: (4 sessions)
  2. 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

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

Lecture 7 [3/4] (2022.02.10): Oritatami: a computational model for co-transcriptional folding

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

Lecture 3 (2020.09.30): Universality in assembly Model (II): Intrinsic universality and 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

Lecture 6 (2020.10.21): Introduction to Linear Program

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

Lecture 2: Chernoff Bounds

Lecture 3: Random Walk and Submodular Function

Lecture 4: Semi-Definitie Programming

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

Lecture 7 (2019.10.23): Universality in assembly Model (II): experiment, intrinsic universality and Oritatami

Lecture 8 (2019.10.30 - Last): Oritatami Shapes & Strand displacement boolean circuits

**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

Lecture 7: Strand Displacement

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

Lecture 2 Chernoff Bound

Lecture 3 Max Cut

Lecture 4 Semi-Definite Programming

Course Summary: Molecular programming (Lectures 5-8)

Lecture 5: Introduction to molecular programming & Tile assembly systems (Oct 18) Video

Lecture 6: Universality in tile assembly systems (Oct 25) Video

Lecture 7: Universality in Tile Assembly and Oritatami Systems (Nov 8) Video

Lecture 8: Some experimental achievements in DNA programing (Nov 15) Video

**Archives 2016-2017 (8 x 3h)**

Lecture 1 [Wed 14/9/2016 16:15-19:15] Introduction to Approximation Algorithms Video

Lecture 2 [Wed 21/9/2016 16:15-19:15] Mathematical Programming 1: Linear programming Video

Lecture 3 [Wed 28/9/2016 16:15-19:15] Mathematical Programming 2: Semi-definite / Vector programming Video

Lecture 4 [Wed 5/10/2016 16:15-19:15] Polynomial Time Approximation Schemes Video

Lecture 5 [Wed 26/10/2016 16:15-19:15] Nature Programming: Abstract Tile Assembly Model Slides

Lecture 6 [Wed 2/11/2016 16:15-19:15] Nature Programming: Universality in Tile Assembly Systems Video

Lecture 7 [Wed 9/11/2016 16:15-19:15] Nature programming: Intrinsic Universality & Other Models including Oritatami Video

Lecture 8 (last) [Wed 9/11/2016 16:15-19:15] Nature programming: Experiments

**Archives 2014-2015 (24h)**

Lecture 1 [18/9/2014] NP-completeness, Hardness of approximation & Approximation algorithms Video 1 2 3

Lecture 2 [25/9/2014] Introduction to Integer Programming, Linear Relaxation and Rounding Video 1 2 3

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

Lecture 5 [30/10/2014] Introduction to Lasserre's hierarchy (1/2) Video 1 2 3

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

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]]
  1. 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
  2. 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]]
  1. Random Cut for Max-Cut and derandomization by the conditional expectation method
  2. 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]]
  1. 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]]
  1. Basic duality manipulation
  2. 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]]
  1. Definition of PTAS, PTRAS, example of dependence in ε
  2. Dense Max-Cut
    • definition
    • the partition of the cut covers a constant fraction of the nodes
  3. A first algorithm
    • A non-adaptative randomized sampling based algorithm
    • An example on why it does not work
  4. The PTRAS
    • Description of the algorithm
    • Exhaustive guessing
    • Hybridation
    • Algorithmic analysis
    • Probabilistic analysis
    • Final theorem
TD3 [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD3.pdf|PDF]]
  1. A Fixed-Parameter Tractable (FPT) algorithm for k disjoint triangles
  2. 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]]
  1. A little bit of history
  2. Gap problems and Hardness of approximation
  3. The CSP: Graph Constraints Satisfaction Problem
  4. Overview of the Gap amplication process 2.a) definition
  5. A key tool: Expander graphs I
  6. Step 1: Degree uniformization
  7. Step 2: Expanderization
  8. Expander graphs II: spectral theory and random walks
  9. Step 3: Gap amplification
  10. Step 4 (last): Alphabet reduction
  11. Gap-preserving reductions
TD4: [[http://www.irif.univ-paris-diderot.fr/~nschaban/MPRI/2012-2013/APPROX/TD4.pdf|PDF]]
  1. Gap-preserving reductions for Vertex-Cover and Steiner Tree
  2. Random walks on expanders