Modèles de Calculs, Analyse d Algorithmes, Complexité de problèmes

Documents pareils
La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Programmation linéaire

Resolution limit in community detection

Introduction à l étude des Corps Finis

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Logiciel de Base. I. Représentation des nombres

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Rappels sur les suites - Algorithme

Introduction à la théorie des graphes. Solutions des exercices

Quelques tests de primalité

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

MIS 102 Initiation à l Informatique

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Fondements de l informatique Logique, modèles, et calculs

Continuité et dérivabilité d une fonction

Optimisation Discrète

= constante et cette constante est a.

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Gestion des Clés Publiques (PKI)

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Chapitre 7. Récurrences

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Polynômes à plusieurs variables. Résultant

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Année 2014/ er septembre Version de Anca Muscholl, issue du poly de Marc Zeitoun. 1/143

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

CH.6 Propriétés des langages non contextuels

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Calculabilité Cours 3 : Problèmes non-calculables.

Université Paris-Dauphine DUMI2E 1ère année, Applications

Logique : ENSIIE 1A - contrôle final

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Théorie et codage de l information

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Développements limités. Notion de développement limité

Algorithmique et Programmation Fonctionnelle

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Probabilités sur un univers fini

NOMBRES COMPLEXES. Exercice 1 :

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Algorithme. Table des matières

GPA770 Microélectronique appliquée Exercices série A

Plus courts chemins, programmation dynamique

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Représentation d un entier en base b

Limites finies en un point

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Algèbre binaire et Circuits logiques ( )

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Machines virtuelles Cours 1 : Introduction

Cryptographie et fonctions à sens unique

Cours des Méthodes de Résolution Exactes Heuristiques et Métaheuristiques

Jean-Philippe Préaux

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Chapitre 2 Le problème de l unicité des solutions

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

Corrigé des TD 1 à 5

Raisonnement par récurrence Suites numériques

Image d un intervalle par une fonction continue

Sujet 4: Programmation stochastique propriétés de fonction de recours

Équations non linéaires

Les suites numériques

Structures algébriques

IFT1215 Introduction aux systèmes informatiques

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Présentation du langage et premières fonctions

Réalisabilité et extraction de programmes

Premiers exercices d Algèbre. Anne-Marie Simon

UE Programmation Impérative Licence 2ème Année

Compression Compression par dictionnaires

Feuille TD n 1 Exercices d algorithmique éléments de correction

Cours de Master Recherche

Cours 02 : Problème général de la programmation linéaire

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Approximations variationelles des EDP Notes du Cours de M2

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

ARBRES BINAIRES DE RECHERCHE

Calcul quantique : algèbre et géométrie projective

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Calcul fonctionnel holomorphe dans les algèbres de Banach

Chp. 4. Minimisation d une fonction d une variable

Simulation de variables aléatoires

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Résolution d équations non linéaires

Problème 1 : applications du plan affine

Les équations différentielles

Codage d information. Codage d information : -Définition-

Etude de fonctions: procédure et exemple

Calculateur quantique: factorisation des entiers

Transcription:

Modèles de Calculs, Analyse d Algorithmes, Complexité de problèmes p.

Introduction & Motivations p.

p. Motivation: Premier exemple Problème REACH: Instance: un graphe orienté G = (V, E),deux sommets u, v V Question: Existe-t -il un chemin entre u et v dans G? C est un problème de décision. Il existe un algorithme raisonnable (polynômial): parcours de graphe en profondeur, largeur,... en temps O(n 2 ) où n est le nombre de sommets.

Motivation: Algorithme pour REACH Parcours de graphe: 1. S = {u}. 2. Pour i = 1 à V faire Marque[i]:=0; 3. Tant que S (a) Choisir i S; S := S {i}; Marque[i] := 1. (b) Pour tous les j avec (i, j) E i. Si Marque[j] = 0 alors Ajouter j à S. 4. Accepter si Marque[v] = 1, rejeter sinon. Cet Algorithme en temps et espace mémoire polynômial O(n 2 ) avec n = V le nombre de sommets. Un résultat de la complexité: Il existe un algorithme en espace mémoire O(log 2 n). p.

p. Motivation: Circuit Hamiltonien Problème HAMILTON: Instance: un graphe G = (V, E) Question: existe t il un cycle hamiltonien (un cycle qui passe par tous les sommets du graphe une seule fois)? C est un problème de décision. Il existe un algorithme en O(n!), ou en O(2 n ): non raisonnable. Pas d algorithme polynômial connu.

p. Motivation: Voyageur de Commerce Problème MINCYCLE: Instance: un graphe G = (V, E), les distances d(i, j) N pour (i, j) E Question: Quel est le cycle de longueur minimum? Ce problème n est pas un problème de décision. Problème de décision considéré en complexité: Problème TSP: Instance: un graphe G = (V, E), les distances d(i, j) N pour (i, j) E, un entier k. Question: Existe-t -il un cycle de longueur inférieure à k?

p. Problème de décision Définition formelle: un problème de décision Π = (D Π, Y Π ) est la donnée d un ensemble d instances D Π et d un sous-ensemble Y Π D Π d instances positives. Problème SUBGRAPHISOM.: Instance: Deux graphes G 1 = (V 1, E 1 ), G 2 = (V 2, E 2 ). Question: G 1, contient-il un sous-graphe isomorphe à G 2? D Π = {(G 1, G 2 )} et Y Π = les instances positives.

p. Comment coder les instances? Entiers: n 1. Binaire: n = log n. 2. Unaire: n = n. Graphes: G = (V, E) 1. Matrice d adjacence: G = V 2. 2. Liste d adjacence: G = V E log( V ). 3. Liste d arêtes: G = 2 E log( V ).

p. Applications sur les exemples: Sous-graphe isomorphe: (G 1, G 2 ) = G 1 + G 2. Voyageur de commerce: (C, d, k) = C + log(d max ) C 2 + log(k).

p.1 Algorithme Algorithme: Programme en basic, C, pascal, logo, Java, machine de T uring... Résultat fondamental: Un programme A 1 en langage 1 se traduit en un programme A 2 en langage 2 avec T empsexecution(a 2 ) = p 1 2 (T empsexecution(a 1 )) pour un polynôme p 1 2. Conséquences: Raisonnable = Polynômial.

p.1 Choix du codage Conséquence: le choix du codage n est pas très important si ils sont équivalents à temps polynômial près. Exemple: G graphe quelconque (V, E). On peut transformer le codage du graphe en liste d adjacence ( G = 2 E log( V )) en matrice d adjacence ( G = V 2 ) en temps polynômial (car E = O( V 2 )). Contre Exemple: coder en unaire coder en binaire.

p.1 Notion de réduction entre problèmes Problème EQUATION1: Instance: Entiers α, β. Question: Existe-t -il un entier x tel que αx + β = 0? Problème EQUATION2: Instance: Entiers a,b, c. Question: Existe-t -il un entier x tel que ax 2 + bx + c = 0? Le problème EQUATION1 est plus simple que le problème EQUATION2.

p.1 Notion de réduction entre problèmes Définition: un problème P b1 est plus simple qu un problème P b2 (noté P b1 P P b2) : s il existe une fonction f : D P b1 D P b2 qui se calcule en temps polynômial telle que x Y P b1 ssi f(x) Y P b2

p.1 La transformation polynômiale f est définie de la façon suivante : f : D Problème 1 D Problème 2 f(α, β) = (a, b, c) avec a := 0 b := α c := β

p.1 Transformation polynômiale Définition: un problème P b1 est plus simple qu un problème P b2 (noté P b1 P P b2) : s il existe une fonction f : D P b1 D P b2 qui se calcule en temps polynômial telle que x Y P b1 ssi f(x) Y P b2

p.1 Problème Problème 1: Instance: Entiers α, β. Question: Existe-t -il x tel que αx + β = 0? Problème Problème 2: Instance: Entiers a, b, et c. Question: Existe-t -il x tel que ax 2 + bx + c = 0? = P b1 P P b2

p.1 Problème SAT Définition: Une variable booléenne est un symbole à qui on peut associer la valeur "true" ou "false". Formule booléenne = formule obtenue par la grammaire x true false φ ψ φ ψ φ, où x est une variable booléenne. Problème SAT : Instance: Une formule booléenne Φ Question: φ est elle satisfiable? Existe-t -il un algorithme polynômial?

p.1 Problème SAT Un algorithme exponentiel: 1. Vérifier que φ encode une formule correcte. 2. Soit n le nombre de variables. 3. Pour chaque w dans {0, 1} n. (a) Pour i = 1 à n, substituer variable numéro i par ième bit de w. (b) Simplifier formule résultante. (c) Si obtient true, accepter. 4. Rejeter.

p.1 Algorithme non déterministe Algorithme non déterministe: algorithme avec les instructions classiques + instruction choisir entre instruction x := 0 et x := 1 de façon non-déterministe. Classe P : problèmes de décision qui peuvent être décidés par un algorithme déterministe qui répond en un temps polynômial en la taille de l instance. Classe NP : problèmes de décision qui peuvent êtres décidés par un algorithme non déterministe qui répond en un temps polynômial en la taille de l instance. Question: P = NP?

p.2 Algorithme non déterministe Proposition: SAT est dans NP. Preuve: Algorithme Non-déterministe. 1. Vérifier que φ encode une formule correcte. 2. Soit n le nombre de variables. 3. Mettre w au mot vide. 4. Pour i = 1 à n, (a) choisir entre x := 0 ou x := 1 de façon non-déterministe. (b) w := xw. 5. Pour i = 1 à n, substituer variable numéro i par ième bit de w. 6. Simplifier formule résultante. 7. Si obtient true, accepter, sinon rejeter.

p.2 Algorithme non déterministe Proposition: TSP est dans NP. Preuve: exercice. Proposition: HAMILTON est dans NP. Preuve: exercice.

p.2 Problème NP-complet Définition: Un problème Π est NP-complet si Π NP, Π est NP-difficile, i.e, ( A NP, A P Π). Remarque: un problème Π est NP-difficile ssi il est plus difficile qu un problème NP-complet.

p.2 Problème SAT Théorème de Cook. SAT est NP complet.

p.2 Quelques résultats Classification des problèmes 1. P: REACH est dans P. 2. NP: 3. NP-complet: HAMILTON est NP-complet. TSP est NP-complet. Corollaire: HAMILT ON T SP 3SAT. Question:P = NP? Théorème: Si P NP, il existe des problèmes dans NP et non complet.

p.2 Aller plus loin Classes de complexité en espace: P SP ACE, NP SP ACE,... Caractérisations logiques Caractérisations algébriques... Algorithmes parallèles Algorithmes d approximation Algorithmes probabilistes...