Problèmes de Décision : Définition. Problèmes Indécidables : Définition. Problèmes de Décision (définition moins informelle)

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

Introduction à l étude des Corps Finis

1 Recherche en table par balayage

Licence Sciences et Technologies Examen janvier 2010

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

Représentation d un entier en base b

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

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

1.1 Codage de source et test d hypothèse

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

Probabilités sur un univers fini

Calcul fonctionnel holomorphe dans les algèbres de Banach

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

Présentation du langage et premières fonctions

MIS 102 Initiation à l Informatique

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

Programmation linéaire

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

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Réalisabilité et extraction de programmes

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Chapitre 7. Récurrences

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

Chapitre 2. Eléments pour comprendre un énoncé

chapitre 4 Nombres de Catalan

Problèmes de Mathématiques Filtres et ultrafiltres

Résolution d équations non linéaires

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

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

Logique. Plan du chapitre

Polynômes à plusieurs variables. Résultant

Optimisation Discrète

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

TP 1. Prise en main du langage Python

Initiation à la programmation en Python

Quelques algorithmes simples dont l analyse n est pas si simple

Résolution de systèmes linéaires par des méthodes directes

Comparaison de fonctions Développements limités. Chapitre 10

Cours d initiation à la programmation en C++ Johann Cuenin

Chapitre 5 : Flot maximal dans un graphe

Probabilités sur un univers fini

Extrait du poly de Stage de Grésillon 1, août 2010

Algorithmique et programmation : les bases (VBA) Corrigé

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

ÉPREUVE COMMUNE DE TIPE Partie D

Espérance conditionnelle

Compression Compression par dictionnaires

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Continuité et dérivabilité d une fonction

STAGE IREM 0- Premiers pas en Python

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

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

Définitions. Numéro à préciser. (Durée : )

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Utilisation des tableaux sémantiques dans les logiques de description

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Limites finies en un point

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

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

Table des matières. Introduction

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

Algorithmique et Programmation Fonctionnelle

EXERCICE 4 (7 points ) (Commun à tous les candidats)

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Qualité du logiciel: Méthodes de test

Suites numériques 3. 1 Convergence et limite d une suite

Plus courts chemins, programmation dynamique

Groupe symétrique. Chapitre II. 1 Définitions et généralités


Machines virtuelles Cours 1 : Introduction

Ordonnancement temps réel

I. Polynômes de Tchebychev

Quelques tests de primalité

FONDEMENTS DES MATHÉMATIQUES

Cours d algorithmique pour la classe de 2nde

Commun à tous les candidats

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

Cours 1 : La compilation

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

Algorithmique des Systèmes Répartis Protocoles de Communications

Programmation Linéaire - Cours 1

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Modèles de Calcul. Yassine Lakhnech. 2007/08 Université Joseph Fourier Lab.: VERIMAG. Modèles de Calcul Start p.

Correction de l examen de la première session

Pour l épreuve d algèbre, les calculatrices sont interdites.

Initiation à l algorithmique

Condition inf-sup pour l Elément Fini de Taylor-Hood È ¾ -iso-è ½

3. Conditionnement P (B)

UML et les Bases de Données

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

Transcription:

Problèmes de Décision : Définition Problèmes de Décision (définition informelle) Un problème de décision est un problème dont la réponse est binaire (0 ou 1). Exemple (problème PREM) : est-ce qu un nombre entier est premier? Problèmes de Décision : Définition Problèmes de Décision (définition informelle) Un problème de décision est un problème dont la réponse est binaire (0 ou 1). Exemple (problème PREM) : est-ce qu un nombre entier est premier? Problèmes de Décision (définition moins informelle) Un problème de décision est un ensemble de mots sur un alphabet (fini). Exemple I un entier naturel peut être vu comme un mot (une chaîne de caractères) sur l alphabet {0, 1} (sa représentation binaire). Le mot 1001 représente l entier 9. I le problème PREM correspond à l ensemble (infini) des représentations binaires d entiers premiers, i.e. PREM = {1, 11, 101, 111,...} Problèmes Indécidables : Définition Problème Indécidable Un problème de décision P sur un alphabet est indécidable s il n existe pas d algorithme 2 A prenant un mot sur et retournant la valeur 0 ou 1, tel que pour tout mot x sur, A(x) retourne 1 si et seulement si x 2 P. Autrement dit, un problème est indécidable s il n existe pas d algorithme pour le résoudre. Nous allons voir deux exemples. 2. Entendez par algorithme un programme Java, C, Python... La formalisation des notions d algorithme et de problème n est pas l objet de ce cours, mais sera vue en Master dans le cours Calculabilité et Complexité.

Exemple de programmes qui ne s arrête pas : while(true) print "bonjour" ; Exemple de programmes qui ne s arrête pas : while(true) print "bonjour" ; Définition ENTREE : le code source d un programme P lisant des chaînes de caractères, et une chaîne de caractères x SORTIE : 1 si et seulement si le programme P s arrête sur l entrée x, et 0 sinon. Définition ENTREE : le code source d un programme P lisant des chaînes de caractères, et une chaîne de caractères x SORTIE : 1 si et seulement si le programme P s arrête sur l entrée x, et 0 sinon. Théorème (Turing, 1936) Le problème de l arrêt est indécidable 3. 3. Pour une preuve formelle de ce résultat, il faudrait formaliser la notion d algorithme. C est le but des machines de Turing qui ne sont pas l objet de ce cours. 3. Pour une preuve formelle de ce résultat, il faudrait formaliser la notion d algorithme. C est le but des machines de Turing qui ne sont pas l objet de ce cours. d Indécidabilité du d Indécidabilité du On procède par l absurde, en supposant qu il existe un programme HALT (P, x) qui décide le problème de l arrêt, pour tout P, x donnés en entrée. ApartirdeHALT, on définit le programme PARADOX suivant : PARADOX (c : string) if HALT(c,c) then loop forever else stop On appelle PARADOX (PARADOX ), ou plus précisément, on exécute le programme PARADOX sur son code source (qui est une chaîne de caractères)... que se passe-t-il? Deux cas : I si PARADOX (PARADOX ) s arrête, alors c est que HALT (PARADOX, PARADOX )=0,i.e.PARADOX (PARADOX ) ne s arrête pas. I si PARADOX (PARADOX ) ne s arrête pas, alors c est que HALT (PARADOX, PARADOX )=1,i.e.PARADOX (PARADOX ) s arrête. Dans les deux cas on obtient une contradiction, c est donc que le programme HALT n existe pas.

Indécidabilité de la logique du premier ordre I Nous allons montrer qu il n existe pas d algorithme A qui prend en entrée une formule de la logique du premier ordre et retourne 1 si elle est valide, 0 sinon. Notion de Réduction I Pour montrer l indécidabilité d un problème de décision 4 P 1, on peut partir d un problème de décision P 2 indécidable et on montre l existence d un algorithme, appelé réduction, qui pour toute instance I 2 de P 2 construit une instance I 1 de P 1 telle que I 1 aune solution si et seulement si I 2 a une solution. I De cette façon, on montre que P 1 est aussi di cile que P 2.S il existait un algorithme pour résoudre P 1, alors cela nous donnerait un algorithme pour résoudre P 2 : appliquer la réduction puis l algorithme pour P 1. Cela contredirait le fait que P 2 soit indécidable, donc il n existe pas d algorithme pour résoudre P 1. 4. i.e. dont la réponse est 0 ou 1 Notion de Réduction I Pour montrer l indécidabilité d un problème de décision 4 P 1, on peut partir d un problème de décision P 2 indécidable et on montre l existence d un algorithme, appelé réduction, qui pour toute instance I 2 de P 2 construit une instance I 1 de P 1 telle que I 1 aune solution si et seulement si I 2 a une solution. I De cette façon, on montre que P 1 est aussi di cile que P 2.S il existait un algorithme pour résoudre P 1, alors cela nous donnerait un algorithme pour résoudre P 2 : appliquer la réduction puis l algorithme pour P 1. Cela contredirait le fait que P 2 soit indécidable, donc il n existe pas d algorithme pour résoudre P 1. I Certains problèmes ont directement été montré indécidables : le problème de terminaison d un programme par exemple, mais aussi le problème de validité dans la logique du premier ordre (travaux d Alonzo Church et Alan Turing). I ici, nous allons utiliser une réduction à partir du problème de correspondance de Post. 4. i.e. dont la réponse est 0 ou 1 Problème de la Correspondance de Post (PCP) Soit = {0, 1}. Un mot u sur est une séquence finie d éléments de. Deux mots u et v peuvent être concaténés pour former un nouveau mot noté uv. L élément neutre pour la concaténation est noté (mot vide). Par exemple : u = 01 est un mot, v = 110 est un mot, uv = 01110, u = u = u = 01. Le problème de la Correspondance de Post (PCP) se formule de la manière suivante : Entrée (u 1, v 1 ),...,(u n, v n ), n 1, n paires de mots (possiblement vides) sur. Sortie 1 si et seulement si il existe une séquence finie d indices i 1,...,i k 2 {1,...,n} telle que k 1 et u i1 u i2...u ik = v i1 v i2...v ik

I Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 )=(0, 01), I Instance : (u 1, v 1 )=(1, 100), (x 2, v 2 )=(0, ), I Instance : (u 1, v 1 )=(1, 100), (x 2, v 2 )=(0, ), Solution : 1,2,2 I Instance : (u 1, v 1 )=(1, 100), (x 2, v 2 )=(0, ), Solution : 1,2,2 u 1 u 2 u 2 = 100 = v 1 v 2 v 2 u 1 u 2 u 2 = 100 = v 1 v 2 v 2 I Instance : (u 1, v 1 )=(1, 0), (u 2, v 2 )=(0, 1), I Instance : (u 1, v 1 )=(1, 0), (u 2, v 2 )=(0, 1), Pas de solution I Instance : (u 1, v 1 )=(0, 100), (u 2, v 2 ) = (01, 00), (u 3, v 3 ) = (110, 11)?

I Instance : (u 1, v 1 )=(1, 100), (x 2, v 2 )=(0, ), Solution : 1,2,2 u 1 u 2 u 2 = 100 = v 1 v 2 v 2 I Instance : (u 1, v 1 )=(1, 0), (u 2, v 2 )=(0, 1), Pas de solution I Instance : (u 1, v 1 )=(0, 100), (u 2, v 2 ) = (01, 00), (u 3, v 3 ) = (110, 11)? Théorèmes Théorème Le problème de Correspondance de Post est indécidable. admise. Théorème Le problème de validité en logique du premier ordre est indécidable. Nous allons montrer ce résultat en réduisant PCP. u 3 u 2 u 3 u 1 =(110)(01)(110)(0)=110011100=(11)(00)(11)(100)=v 3 v 2 v 3 v 1 Nous considérons le langage du premier ordre contenant un prédicat binaire p, deux symboles de fonction unaires f 0 et f 1, et un symbole de constante a. Etant donné un mot u sur et un terme g, on définit le terme t u (g) sur L par : I g si u = I f bs (f bs 1...(f b2 (f b1 (g)))) si u = b 1 b 2...b s. Soit I = {(u 1, v 1 ),...,(u n, v n )} une instance de PCP. Nous allons construire une formule I de la logique du premier ordre, sur le langage L, et montrer que I est valide si et seulement si I a une solution. La formule I se décompose comme suit : Premièrement, I = ^! p(t u1 (a), t v1 (a)) ^ p(t u2 (a), t v2 (a)) ^ ^ p(t un (a), t vn (a)) Cela signifie qu on met dans la relation p les termes qui correspondent aux paires de mots. On peut étendre cette relation aux concaténations (paires à paires) de couples de mots de I.Enparticulier,laformule suivante signifie que si x et y sont en relation, alors on peut concaténer u i à x et v j à y, pourvu que i = j. 8x8y.(p(x, y)! n^ p(t ui (x), t vi (y)) Enfin, signifie l existence de deux éléments égaux en relation : i=1 9z.p(z, z) Clairement, cette réduction est e ective (on peut écrire un algorithme qui l implémente). Montrons qu elle est correcte.

Supposons que I a une solution i 1,...,i k et montrons que I est valide. Pour cela, soit M une structure sur L. Supposons que M = ^.On sait par hypothèse que u i1...u ik = v i1...v ik Donc t uik (t uik 1 (...(t ui1 (a))) = t vik (t vik 1 (...(t vi1 (a))) = g pour un certain g. Par hypothèse, on sait que M = p(t ui1, t vi1 ) et comme M =, on obtient aussi que M = p(t ui2 (t ui1 ), t vi2 (t vi1 )), etplus généralement, que M = p(g, g). Donc M = 9z.p(z, z). Réciproquement, supposons que I est valide et montrons que I aune solution. On défini une structure H comme ceci : I son domaine est l ensemble des termes clos sur L (sans variables) I les fonctions et constantes sont interprétées par elles-mêmes (f H (t) =f (t)) I l interprétation p H de p est définie inductivement : p H (a, a) =1et pour tous termes clos h et g, p H (t ui (g), t vj (h)) = 1 si et seulement si i = j et p H (g, h) =1. Clairement, H = ^, donc H = puisque I est valide. Donc il existe un terme clos t tel que H = p(t, t). Par définition de H, ilestfacilede voir que t se décompose nécessairement en t = t uik (t uik 1 (...(t ui1 (a))) = t vik (t vik 1 (...(t vi1 (a))). Donc u i1...u ik = v i1...v ik et I a une solution. I 10é problème de Hilbert : résolution d équations diophantiennes (à solution entière). Indécidabilité prouvée en 1971 (Matiyasevic). Entrée p(x 1,...,x n) un polynôme à coe cients entiers Sortie 9i 1...9i n 2 Z p(i 1,...,i n)=0? Remarque : c est décidable dans les réels (Tarski, 1951). I 10é problème de Hilbert : résolution d équations diophantiennes (à solution entière). Indécidabilité prouvée en 1971 (Matiyasevic). Entrée p(x 1,...,x n) un polynôme à coe cients entiers Sortie 9i 1...9i n 2 Z p(i 1,...,i n)=0? Remarque : c est décidable dans les réels (Tarski, 1951). I Complexité de Kolmogorov : étant donné un mot binaire w et un entier k 2 N, décider s il existe un programme Java qui écrit w et dont le code est un fichier d au plus k bits. Remarque : le choix du formalisme qui écrit le mot (Java,Lisp,C,machine de Turing) influe sur la complexité.

I 10é problème de Hilbert : résolution d équations diophantiennes (à solution entière). Indécidabilité prouvée en 1971 (Matiyasevic). Entrée p(x 1,...,x n) un polynôme à coe cients entiers Sortie 9i 1...9i n 2 Z p(i 1,...,i n)=0? Remarque : c est décidable dans les réels (Tarski, 1951). I Complexité de Kolmogorov : étant donné un mot binaire w et un entier k 2 N, décider s il existe un programme Java qui écrit w et dont le code est un fichier d au plus k bits. Remarque : le choix du formalisme qui écrit le mot (Java,Lisp,C,machine de Turing) influe sur la complexité. I Intersection de deux automates à pile : étant donnés deux automates à pile A et B, décider sur l intersection de leurs langages L(A) \ L(B) est vide. I PCP avec n =7: dans cette variante on se donne 7 paires de mots (u 1, v 1 ),...,(u 7, v 7 ). Remarque : décidable pour n apple 2, ouvert pour 3 apple n apple 6. I Castor a airé : étant donné un programme (donné par son code source, par exemple Java) qui écrit des 0 et des 1 et qui s arrête, on veut décider si il est maximal, i.e. qu il n existe pas un autre programme dont le code source n est pas plus grand, mais qui écrit un mot strictement plus grand. Exercices 1. Montrer que PCP sur un alphabet à une lettre est équivalent au problème de décider si une équation linéaire sur les entiers naturels a une solution non-triviale. En déduire que PCP sur un alphabet à une lettre est décidable. 2. Montrer que le problème suivant est indécidable. Etant donnés deux programmes P et Q qui retournent tous les deux une valeur Booléenne, est-ce que les deux programmes sont équivalents, i.e. est-ce que pour toute entrée x, on a P(x) =Q(x)? Exercices 1. Montrer que PCP sur un alphabet à une lettre est équivalent au problème de décider si une équation linéaire sur les entiers naturels a une solution non-triviale. En déduire que PCP sur un alphabet à une lettre est décidable. 2. Montrer que le problème suivant est indécidable. Etant donnés deux programmes P et Q qui retournent tous les deux une valeur Booléenne, est-ce que les deux programmes sont équivalents, i.e. est-ce que pour toute entrée x, on a P(x) =Q(x)? I I I on va faire une réduction à partir du problème de l arrêt, qui est indécidable. é t a n t d o n n é u n p r o g r a m m e R, onconsidèrelesdeuxprogrammes: procedure AUX(x): procedure CONST(x): r := R(x) ; return 1; return 1 ; pour toute entrée x, onaaux (x) =CONST (x) si et seulement si R(x) s arrête sur l entrée x. Sileproblèmed équivalenceétait décidable, alors le problème de l arrêt le serait aussi.