Informatique Fondamentale IMA S8

Similar documents
Outline. NP-completeness. When is a problem easy? When is a problem hard? Today. Euler Circuits

Informatique Fondamentale IMA S8

NP-Completeness. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University

Complexity Theory. IE 661: Scheduling Theory Fall 2003 Satyaki Ghosh Dastidar

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

Page 1. CSCE 310J Data Structures & Algorithms. CSCE 310J Data Structures & Algorithms. P, NP, and NP-Complete. Polynomial-Time Algorithms

CAD Algorithms. P and NP

Complexity Classes P and NP

Quantum and Non-deterministic computers facing NP-completeness

2. (a) Explain the strassen s matrix multiplication. (b) Write deletion algorithm, of Binary search tree. [8+8]

The Classes P and NP. mohamed@elwakil.net

CMPSCI611: Approximating MAX-CUT Lecture 20

Data Structures and Algorithms Written Examination

Tutorial 8. NP-Complete Problems

Problem Set 7 Solutions

NP-complete? NP-hard? Some Foundations of Complexity. Prof. Sven Hartmann Clausthal University of Technology Department of Informatics

Introduction to computer science

Exam study sheet for CS2711. List of topics

Reductions & NP-completeness as part of Foundations of Computer Science undergraduate course

A Working Knowledge of Computational Complexity for an Optimizer

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

A Fast Algorithm For Finding Hamilton Cycles

Introduction to Logic in Computer Science: Autumn 2006

Discuss the size of the instance for the minimum spanning tree problem.

Guessing Game: NP-Complete?

Approximation Algorithms

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Why? A central concept in Computer Science. Algorithms are ubiquitous.

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

OHJ-2306 Introduction to Theoretical Computer Science, Fall

One last point: we started off this book by introducing another famously hard search problem:

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

5.1 Bipartite Matching

Near Optimal Solutions

Lecture 7: NP-Complete Problems

Reminder: Complexity (1) Parallel Complexity Theory. Reminder: Complexity (2) Complexity-new

Reminder: Complexity (1) Parallel Complexity Theory. Reminder: Complexity (2) Complexity-new GAP (2) Graph Accessibility Problem (GAP) (1)

Universality in the theory of algorithms and computer science

Data Structure [Question Bank]

Theoretical Computer Science (Bridging Course) Complexity

Sample Questions Csci 1112 A. Bellaachia

Warshall s Algorithm: Transitive Closure

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Fundamentals of algorithms

Cpt S 223. School of EECS, WSU

Notes on NP Completeness

Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

CoNP and Function Problems

Lecture 1: Course overview, circuits, and formulas

P versus NP, and More

On the Relationship between Classes P and NP

A number of tasks executing serially or in parallel. Distribute tasks on processors so that minimal execution time is achieved. Optimal distribution

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

High Performance Computing for Operation Research

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

NP-completeness and the real world. NP completeness. NP-completeness and the real world (2) NP-completeness and the real world

1. Nondeterministically guess a solution (called a certificate) 2. Check whether the solution solves the problem (called verification)

Computational complexity theory

Graph Theory Problems and Solutions

Introduction to Algorithms. Part 3: P, NP Hard Problems

CHOOSING THE BEST HEURISTIC FOR A NP-PROBLEM

Lecture 19: Introduction to NP-Completeness Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

Data Structures in Java. Session 15 Instructor: Bert Huang

V. Adamchik 1. Graph Theory. Victor Adamchik. Fall of 2005

Analyzing the Facebook graph?

Quantum Monte Carlo and the negative sign problem

CSC 373: Algorithm Design and Analysis Lecture 16

Data Structures. Chapter 8

Tetris is Hard: An Introduction to P vs NP

Why Study NP- hardness. NP Hardness/Completeness Overview. P and NP. Scaling 9/3/13. Ron Parr CPS 570. NP hardness is not an AI topic

The Classes P and NP

CS5310 Algorithms 3 credit hours 2 hours lecture and 2 hours recitation every week

Chapter Load Balancing. Approximation Algorithms. Load Balancing. Load Balancing on 2 Machines. Load Balancing: Greedy Scheduling

Chapter 6: Graph Theory

CS311H. Prof: Peter Stone. Department of Computer Science The University of Texas at Austin

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Bicolored Shortest Paths in Graphs with Applications to Network Overlay Design

Dynamic programming. Doctoral course Optimization on graphs - Lecture 4.1. Giovanni Righini. January 17 th, 2013

Design and Analysis of ACO algorithms for edge matching problems

Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.

Social Media Mining. Graph Essentials

Scheduling Shop Scheduling. Tim Nieberg

MATHEMATICS: CONCEPTS, AND FOUNDATIONS Vol. III - Logic and Computer Science - Phokion G. Kolaitis

Boulder Dash is NP hard

Satisfiability Checking

Handout #Ch7 San Skulrattanakulchai Gustavus Adolphus College Dec 6, Chapter 7: Digraphs

On the k-path cover problem for cacti

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

Vector storage and access; algorithms in GIS. This is lecture 6

Complexity Theory. Jörg Kreiker. Summer term Chair for Theoretical Computer Science Prof. Esparza TU München

Analysis of Algorithms, I

International Journal of Software and Web Sciences (IJSWS)

IE 680 Special Topics in Production Systems: Networks, Routing and Logistics*

Master of Arts in Mathematics

Midterm Practice Problems

Mathematics for Algorithm and System Analysis

Approximating Average Distortion of Embeddings into Line

Discrete Mathematics & Mathematical Reasoning Chapter 10: Graphs

Transcription:

Informatique Fondamentale IMA S8 Cours 4 : graphs, problems and algorithms on graphs, (notions of) NP completeness Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech Lille March/April 2011

IV - Graphs, problems and algorithms on graphs, NP-completeness Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 2 / 60

Some generalities on graphs 1 Some generalities on graphs Generalities and first definitions Internal representation 2 Paths finding - search, and applications 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 3 / 60

Some generalities on graphs Generalities and first definitions Goal Model : relationships between objects ( I know him, This register is in conflict with with one, there is a road between these two towns ) classical problems of paths ( Do I have a friend that knows a friend... who knows the Dalai-Lama?, It is possible to go from this town to this another in less than 600 km?, how to get out of the labyrinth? ) Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 4 / 60

Some generalities on graphs Generalities and first definitions Who? Euler (1740) formalised the theory and the Konisberg problem : Problem : compute an eulerian path. Source (fr) : http://fr.wikipedia.org/wiki/th%c3%a9orie_des_graphes Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 5 / 60

Some generalities on graphs Generalities and first definitions Other classical problems The travelling salesman problem : TSP Task scheduling (on parallel machines or not!), the PERT method. Coloring maps Covering (telecom) trees Minimal paths... Graphs are everywhere. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 6 / 60

Some generalities on graphs Generalities and first definitions General definition Graph A finite set of vertices (a vertex) : V A finite set of edges. E V V v 1 v3 e 1 e 3 v2 A simplier model than the previous ones! Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 7 / 60

Some generalities on graphs Generalities and first definitions Other definitions Non Oriented Graph iff (v1, v2), (v1, v2) E (v2, v1) E. Tree (non oriented acyclic connex) - Forest. Directed Acyclic Graph : DAG. Oriented Graph with no cycle. trees are dags! v1 v3 v2 v4 Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 8 / 60

Some generalities on graphs Internal representation Sources Picture and Java codes from http://pauillac.inria.fr/~levy/courses/x/if/a1/a1.html Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 9 / 60

Some generalities on graphs Internal representation Adjacency matrix 3 4 0 1 2 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 If the graph is oriented, then the matrix is NOT symmetric Memory complexity : O(V 2 ) Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 10 / 60

Some generalities on graphs Internal representation Adjacency matrix - Java boolean [ ] [ ] m; Graph ( i n t n ) { m = new boolean [ n ] [ n ] ; for ( i n t i = 0; i < n ; ++ i ) for ( i n t j = 0; j < n ; ++ j ) m[ x ] [ y ] = f a l s e ; } s t a t i c void addedge ( Graph g, i n t x, i n t y ) { g.m[ x ] [ y ] = t r u e ; g.m[ y ] [ x ] = t r u e / / only i f non o r i e n t e d Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 11 / 60

Some generalities on graphs Internal representation Array of lists 3 4 0 2 1 Memory complexity : O(V + E) Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 12 / 60

Some generalities on graphs Internal representation Array of lists - Java L i s t e [ ] succ ; Graph ( i n t n ) { succ = new L i s t e [ n ] ; } } s t a t i c void addedge ( Graph g, i n t x, i n t y ) { g. succ [ x ] = new L i s t e ( y, g. succ [ x ] ) ; / / i f non o r i e n t e d also modify g. succ [ y ]! } Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 13 / 60

Paths finding - search, and applications 1 Some generalities on graphs 2 Paths finding - search, and applications Looking for all nodes Connexity Topological Sort 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 14 / 60

Paths finding - search, and applications Looking for all nodes Search Algorithms! Translation problem! (en) Search Algorithms - (fr) Parcours de Graphes Reminder : search/do algorithm on a binary tree : 1 If the tree is not empty, do f(root). 2 recursively apply the function on the left sub-tree 3 recursively apply the function on the right sub-tree Deep-First Search Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 15 / 60

Paths finding - search, and applications Looking for all nodes Deep First Search on Graphs On graphs, there can be cycles! Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 16 / 60

Paths finding - search, and applications Looking for all nodes Deep First Search on Graphs - Java s t a t i c i n t [ ] num; / / numbering the edges according to the v i s i t i n g or s t a t i c void v i s i t e r ( Graphe g ) { i n t n = g. succ. l e n g t h ; num = new i n t [ n ] ; numordre = 1; for ( i n t x = 0; x < n ; ++x ) num [ x ] = 1; / / 1 = not seen for ( i n t x = 0; x < n ; ++x ) i f (num [ x ] == 1) dfs ( g, x ) ; } s t a t i c void dfs ( Graphe g, i n t x ) { num [ x ] = ++numordre ; for ( L i s t e l s = g. succ [ x ] ; l s!= n u l l ; l s = l s. s u i v a n t ) { i n t y = l s. v a l ; i f (num [ y ] == 1) dfs ( g, y ) ; } } Complexity = O(V + E). Tarjan [1972] Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 17 / 60

Paths finding - search, and applications Looking for all nodes Breadth First Search on Graphs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 18 / 60

Paths finding - search, and applications Looking for all nodes Conventions BLANC = not (yet) processed NOIR = has been processed GRIS = being processed f i n a l s t a t i c i n t BLANC = 0, GRIS = 1, NOIR = 2; s t a t i c i n t [ ] couleur ; Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 19 / 60

Paths finding - search, and applications Looking for all nodes Breadth First Search on Graphs - Java i n t n = g. succ. l e n g th ; couleur = new i n t [ n ] ; FIFO f = new FIFO ( n ) ; for ( i n t x = 0; x < n ; ++x ) couleur [ x ] = BLANC; for ( i n t x = 0; x < n ; ++x ) i f ( couleur [ x ] == BLANC) { FIFO. a j o u t e r ( f, x ) ; couleur [ x ] = GRIS ; bfs ( g, f ) ; } s t a t i c void bfs ( Graphe g, FIFO f ) { while (! f. vide ( ) ) { i n t x = FIFO. supprimer ( f ) ; for ( L i s t e l s = g. succ [ x ] ; l s!= n u l l ; l s = l s. s u i v a n t ) { i n t y = l s. v a l ; i f ( couleur [ y ] == BLANC) { FIFO. a j o u t e r ( f, y ) ; couleur [ y ] = GRIS ; } couleur [ x ] = NOIR ; } } } Complexity? Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 20 / 60

Paths finding - search, and applications Looking for all nodes Application : Labyrinth Finds exit, ie a path from d to s? } couleur [ d ] = GRIS ; i f ( d == s ) return new L i s t e ( d, n u l l ) ; for ( L i s t e l s = g. succ [ d ] ; l s!= n u l l ; l s = l s. s u i v a n t ) { i n t x = l s. v a l ; i f (num [ x ] == BLANC) { L i s t e r = chemin ( g, x, s ) ; i f ( r!= n u l l ) return new L i s t e ( d, r ) ; } } return n u l l ; Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 21 / 60

Paths finding - search, and applications Connexity Definition - Connex Component Connex component A connex component is a maximal set of connected vertices. Exercise : Algorithm for computing CCs. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 22 / 60

Paths finding - search, and applications Connexity Definition - Connex Graph Connex graph A graph is connex if it has only one connex component. Exercise : Algorithm that tests the connexity of a graph. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 23 / 60

Paths finding - search, and applications Topological Sort Other Algorithms There exists variants of DFS algo to : Compute Cover Forets (in bold in the picture) : Detect Cycles. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 24 / 60

Algorithms specific to oriented graphs 1 Some generalities on graphs 2 Paths finding - search, and applications 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 25 / 60

Algorithms specific to oriented graphs Topologic sort of a DAG Give a list of vertices in an order compatible with the DAG order : v i < v j v j v i (total order from a partial header). Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 26 / 60

Algorithms specific to oriented graphs Topologic sort of a DAG - Example 1 4 6 2 5 7 3 If we know an entrant node, a dfs gives the result. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 27 / 60

Algorithms specific to oriented graphs Topologic sort of a DAG - implementation f i n a l s t a t i c i n t BLANC = 0, GRIS = 1, NOIR = 2; s t a t i c L i s t e afaire ( Graphe g, i n t x ) { i n t n = g. succ. l e n g t h ; i n t [ ] couleur = new i n t [ n ] ; for ( i n t x = 0; x < n ; ++x ) couleur [ x ] = BLANC; return dfs ( g, x, n u l l, couleur ) ; } s t a t i c L i s t e dfs ( Graphe g, i n t x, L i s t e r, i n t [ ] couleur ) { couleur [ x ] = GRIS ; for ( L i s t e l s = g. succ [ x ] ; l s!= n u l l ; l s = l s. s u i v a n t ) { i n t y = l s. v a l ; i f ( couleur [ y ] == BLANC) r = dfs ( g, y, r, couleur ) ; } return new L i s t e ( x, r ) ; } dfs here returns a list. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 28 / 60

Algorithms specific to oriented graphs Transitive closure Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 29 / 60

Algorithms specific to oriented graphs Algorithm for Transitive closure - 1 If E is the adjacency matrix : E + = E + E 2 +... E n 1. An algorithm in O(n 4 ). Is it possible to have a better complexity? Yes (Warshall, in O(n 3 ). Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 30 / 60

Algorithms specific to oriented graphs Definition of oriented valuated graph Valuated graph It s a graph with a function d : V V N called distance. G is represented by an adjacency matrix with integer values, or + if there is no edge. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 31 / 60

Algorithms specific to oriented graphs The shortest path problem Given G, find a path whose sum of distances is minimal! more variants on http://en.wikipedia.org/wiki/shortest_path_problem Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 32 / 60

Algorithms specific to oriented graphs Multiple Source Shortest Path with dynamic programming -1 Between all the vertices! Floyd-Warshall algorithm Principle : Let d k x,y be the minimal distance between x and y passing through vertices whose number is < k. Then d 0 x,y = d x,y and d k x,y = min{d k 1 x,y, d k 1 x,k + dk 1 k,y } Store all these temporary distances. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 33 / 60

Algorithms specific to oriented graphs Multiple Source Shortest Path with dynamic programming -2 s t a t i c Graphe pluscourtschemins ( Graphe g ) { i n t n = g. d. l e n g t h ; Graphe gplus = copiegraphe ( g ) ; for ( i n t k = 0; k < n ; ++k ) for ( i n t x = 0; x < n ; ++x ) for ( i n t y = 0; y < n ; ++y ) gplus. d [ x ] [ y ] = Math. min ( gplus. d [ x ] [ y ], gplus. d [ x ] [ k ] + gplus. d [ k ] [ y ] ) ; return gplus ; } Complexity O(n 3 ), space O(n 2 ). Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 34 / 60

Algorithms specific to oriented graphs Simple Source Shortest Path All d are > 0 : Dijkstra, 1959 Negative distances : Bellman Ford 1960 Routing algorithms (Bellman uses only local information). Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 35 / 60

More difficult problems on graphs 1 Some generalities on graphs 2 Paths finding - search, and applications 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 36 / 60

More difficult problems on graphs Eulerian and Hamiltonian paths Eulerian/Hamiltonian Path An Eulerian path : each edge is seen only once. An Hamiltonien path : each node... Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 37 / 60

More difficult problems on graphs Hamiltonian Tour, one solution Extend a path until not possible Backtrack one time, and try with another neighbour And so on. Worst case complexity time : exponential in n Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 38 / 60

More difficult problems on graphs Application 1 : Knight s Tour Is it possible to make a Knight s tour? «The knight is placed on the empty board and, moving according to the rules of chess, must visit each square exactly once.» A variant of the Hamiltonian tour that can be solved in polynomial time. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 39 / 60

More difficult problems on graphs The Travelling Salesman Problem with valuated (non oriented) graph. Find an hamiltonian cycle of minimum weight Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 40 / 60

More difficult problems on graphs Travelling Salesman Problem - 2 A (non-polynomial) algorithm for this problem : Transform into a linear programming problem with integers Solve it with the simplex! This algorithm is exponential in the size of the graph Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 41 / 60

More difficult problems on graphs Graph Coloring Problem Application to the register allocation in compilers. The sudoku problem (9-coloring of a 81-vertices graph) Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 42 / 60

More difficult problems on graphs Graph Coloring Problem - 2 Are you able to design a polynomial algorithm? Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 43 / 60

More difficult problems on graphs Graph Coloring Problem - 3 We do not know any polynomial algorithm for this problem. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 44 / 60

NP - completeness 1 Some generalities on graphs 2 Paths finding - search, and applications 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 45 / 60

NP - completeness Complexity The complexity of an implementation / an algorithm is linked to Turing machines : The number of steps in the execution of a TM gives the complexity in time, The number of seen squares in the execution of a TM gives the complexity in space. We can replace the TM by a C implementation. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 46 / 60

NP - completeness P Problems P A problem (or a language) belongs to P if there exists a deterministic Turing Machine that gives the result in polynomial time. there is a polynom p such that for all entry x, the Turing machine stops (with the good result) in less than p( x ) steps. Example : L = a n b n c n, the TM of the previous course checks any a i b i c i in O(n) steps Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 47 / 60

NP - completeness NP Problems NP A problem (or a language) belongs to NP if there exists a deterministic Turing Machine that checks the result in polynomial time. Example : there exists a TM that is able to check if a given path is an hamiltonien tour, in polynomial time. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 48 / 60

NP - completeness NP vs P - some facts If a problem belongs to NP, then there exists an exponential brute-force deterministic algorithm to solve it (easy to prove) P NP (trivial) P = NP? P NP? Open question! Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 49 / 60

NP - completeness NP-complete problems - 1 Given a problem : if we find a polynomial algorithm P if we find a polynomial time checking algorithm NP, but we want to know more : it it really hard to solve it? is it worth looking for a better algorithm? Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 50 / 60

NP - completeness NP-complete problems - 2 The key notion is the notion of polynomial reduction Polynomial reduction of problems Given two problems P 1 and P 2, P 1 reduces polynomially to P 2 if there exists an f such that : f is polynomial x 1 solution of P 1 iff f(x 1 ) solution of P 2. Example : Hamiltonian circuit is polynomially reductible to TSP. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 51 / 60

NP - completeness NP-complete problems - 3 Reminder : we want to characterise the most difficult problems in NP. NP-complete A problem is said to be NP-complete if : It belongs to NP All other problems in NP reduce polynomially to it. In other words, if we solve any NP-complete in polynomial time, we have proved P = NP (and we become rich) Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 52 / 60

NP - completeness NP-complete problems - 4 Problem : how to prove that a problem is NP-complete? The very first one is hard to prove Then, we use the following result : If two problems / languages L 1 and L 2 belong to NP and L 1 is NP-complete, and L 1 reduces polynomially to L 2, then L 2 is NP-complete. Pick one NP complete problem and try to reduce it to your problem. Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 53 / 60

NP - completeness NP-complete problems - The historical example SATISFIABILITY is NP-complete (Cook, 1971) SAT reduces polynomially to 3SAT 3SAT reduces polynomially to Vertex Cover Vertex Cover reduces polynomially to Hamiltonian circuit So Hamiltonian circuit, then TSP are also NP-complete problems Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 54 / 60

NP - completeness Some NP-complete (common) problems Some classical examples : Hamiltonian cycle and TSP Graph Coloring Problem Vertex cover Knapsack (integer) Flow shop problem The book : Computers and Intractability : A Guide to the Theory of NP-Completeness. A short list on the french webpage : http://fr.wikipedia.org/wiki/liste_de_probl%c3%a8mes_ NP-complets Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 55 / 60

NP - completeness Conclusion - 1 Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 56 / 60

NP - completeness Conclusion - 2 Knowing that a given problem is NP complete is just the beginning : handle less general classes of inputs compute less precise solutions Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 57 / 60

Docs 1 Some generalities on graphs 2 Paths finding - search, and applications 3 Algorithms specific to oriented graphs 4 More difficult problems on graphs 5 NP - completeness 6 Docs Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 58 / 60

Docs More docs on graphs In french : http://laure.gonnord.org/site-ens/mim/ graphes/cours/cours_graphes.pdf or type cours de Théorie des graphes in Google In english : an interactive tutorial here : http://primes. utm.edu/cgi-bin/caldwell/tutor/graph/intro. (en) The theorical book Graph Theory, R. Diestel (electronic version : http://diestel-graph-theory.com/basic.html) (en) e-book for algorithms : http: //code.google.com/p/graph-theory-algorithms-book/ Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 59 / 60

Docs More docs on complexity The Book : computers and intractability, a guide to the theory of NP completeness, by Garey/Johnson Laure Gonnord (Lille1/Polytech) Informatique Fondamentale IMA S8 March/April 2011 60 / 60