Emmanuel Filiot Département d Informatique Faculté des Sciences Université Libre de Bruxelles. Année académique 2014-2015



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

Introduction à l étude des Corps Finis

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

1 Recherche en table par balayage

Licence Sciences et Technologies Examen janvier 2010

Problèmes de Mathématiques Filtres et ultrafiltres

Programmation linéaire

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

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

Réalisabilité et extraction de programmes

Probabilités sur un univers fini

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

STAGE IREM 0- Premiers pas en Python

Représentation d un entier en base b

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

ÉPREUVE COMMUNE DE TIPE Partie D

MIS 102 Initiation à l Informatique

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

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

TP 1. Prise en main du langage Python

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

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

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

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

Chapitre 5 : Flot maximal dans un graphe

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

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

Présentation du langage et premières fonctions

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

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

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

Initiation à la programmation en Python

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

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

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

Algorithmique et Programmation Fonctionnelle

Calcul fonctionnel holomorphe dans les algèbres de Banach

Résolution d équations non linéaires

Table des matières. Introduction

Polynômes à plusieurs variables. Résultant

UML et les Bases de Données

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

Structures algébriques

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

Fibonacci et les paquerettes

Objets Combinatoires élementaires

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

Intégration et probabilités TD1 Espaces mesurés Corrigé

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

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

Initiation à l algorithmique

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Organigramme / Algorigramme Dossier élève 1 SI

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

Calculs de probabilités

Cours de Probabilités et de Statistique

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

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

Représentation des Nombres

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

Peut-on tout programmer?

Cours 1 : Qu est-ce que la programmation?

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Probabilités sur un univers fini

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

Dérivation : cours. Dérivation dans R

Programmation C++ (débutant)/instructions for, while et do...while

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

Compression Compression par dictionnaires

Corrigés des premiers exercices sur les classes

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

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

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Probabilités. C. Charignon. I Cours 3

Recherche dans un tableau

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Exercices Corrigés Premières notions sur les espaces vectoriels

Algorithmique des Systèmes Répartis Protocoles de Communications

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Génie Logiciel avec Ada. 4 février 2013

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Nouveau Barème W.B.F. de points de victoire 4 à 48 donnes

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Quelques algorithmes simples dont l analyse n est pas si simple

OCL - Object Constraint Language

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

Chapitre 1 I:\ Soyez courageux!

Arbres binaires de recherche

Cours 1 : La compilation

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

Plus courts chemins, programmation dynamique

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours de mathématiques

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

Lier Erlang avec d autres langages de programmation

1 Lecture de fichiers

Transcription:

INFO-F-302, Cours d Informatique Fondamentale Emmanuel Filiot Département d Informatique Faculté des Sciences Université Libre de Bruxelles Année académique 2014-2015

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 1 A prenant un mot sur Σ et retournant, en un nombre fini d étapes de calcul, la valeur 0 ou 1, tel que pour tout mot x sur Σ, A(x) retourne 1 si et seulement si x 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. 1. 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é.

Problème de l Arrêt Problème de l Arrêt 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. 2. 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.

Problème de l Arrêt Problème de l Arrêt 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. Théorème (Turing, 1936) Le problème de l arrêt est indécidable 2. 2. 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.

Problème de l Arrêt Preuve d Indécidabilité du Problème de l Arrêt On procède par l absurde, en supposant qu il existe un programme HALT (c P, x) qui décide le problème de l arrêt, pour tout programme P donné par son code c P, et toute chaîne de caractère x. A partir de HALT, on définit le programme PARADOX suivant : PARADOX (c : string) if HALT(c,c) then loop forever else stop On appelle PARADOX (c PARADOX ), où c PARADOX est le code source du programme PARADOX... que se passe-t-il?

Problème de l Arrêt Preuve d Indécidabilité du Problème de l Arrêt Deux cas : si PARADOX (c PARADOX ) s arrête, alors c est que HALT (c PARADOX, c PARADOX ) = 0, i.e. PARADOX (c PARADOX ) ne s arrête pas. si PARADOX (c PARADOX ) ne s arrête pas, alors c est que HALT (c PARADOX, c PARADOX ) = 1, i.e. PARADOX (c 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 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 Pour montrer l indécidabilité d un problème de décision 3 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 a une solution si et seulement si I 2 a une solution. De cette façon, on montre que P 1 est aussi difficile 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. 3. i.e. dont la réponse est 0 ou 1

Notion de Réduction Pour montrer l indécidabilité d un problème de décision 3 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 a une solution si et seulement si I 2 a une solution. De cette façon, on montre que P 1 est aussi difficile 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. 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). ici, nous allons utiliser une réduction à partir du problème de correspondance de Post. 3. 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 {1,..., n} telle que k 1 et u i1 u i2... u ik = v i1 v i2... v ik

PCP : exemples Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 ) = (0, 01),

PCP : exemples Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 ) = (0, 01), Solution (parmi d autres) : 2,1 u 2 u 1 = 0100 = v 2 v 1 Instance : (u 1, v 1 ) = (1, 100), (x 2, v 2 ) = (0, ɛ),

PCP : exemples Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 ) = (0, 01), Solution (parmi d autres) : 2,1 u 2 u 1 = 0100 = v 2 v 1 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 Instance : (u 1, v 1 ) = (1, 0), (u 2, v 2 ) = (0, 1),

PCP : exemples Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 ) = (0, 01), Solution (parmi d autres) : 2,1 u 2 u 1 = 0100 = v 2 v 1 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 Instance : (u 1, v 1 ) = (1, 0), (u 2, v 2 ) = (0, 1), Pas de solution Instance : (u 1, v 1 ) = (0, 100), (u 2, v 2 ) = (01, 00), (u 3, v 3 ) = (110, 11)?

PCP : exemples Instance : (u 1, v 1 ) = (100, 00), (u 2, v 2 ) = (0, 01), Solution (parmi d autres) : 2,1 u 2 u 1 = 0100 = v 2 v 1 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 Instance : (u 1, v 1 ) = (1, 0), (u 2, v 2 ) = (0, 1), Pas de solution Instance : (u 1, v 1 ) = (0, 100), (u 2, v 2 ) = (01, 00), (u 3, v 3 ) = (110, 11)? 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

Théorèmes Théorème Le problème de Correspondance de Post est indécidable. Preuve 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.

Preuve Nous considérons le langage du premier ordre L 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 : g si u = ɛ 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 : φ I = (ρ σ) τ Premièrement, ρ p(t u1 (a), t v1 (a)) p(t u2 (a), t v2 (a)) p(t un (a), t vn (a))

Preuve 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. En particulier, la formule 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. σ x y.(p(x, y) n p(t ui (x), t vi (y)) Enfin, τ signifie l existence de deux éléments égaux en relation : i=1 τ z.p(z, z) Clairement, cette réduction est effective (on peut écrire un algorithme qui l implémente). Montrons qu elle est correcte.

Preuve 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 )), et plus généralement, que M = p(g, g). Donc M = z.p(z, z).

Preuve Réciproquement, supposons que φ I est valide et montrons que I a une solution. On défini une structure H comme ceci : son domaine est l ensemble des termes clos sur L (sans variables) les fonctions et constantes sont interprétées par elles-mêmes (f H (t) = f (t)) l interprétation p H de p est définie inductivement : p H (a, a) = 1 et 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, il est facile de 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.

Autres Problèmes Indécidables 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 à coefficients entiers Sortie i 1... i n Z p(i 1,..., i n) = 0? Remarque : c est décidable dans les réels (Tarski, 1951).

Autres Problèmes Indécidables 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 à coefficients entiers Sortie i 1... i n Z p(i 1,..., i n) = 0? Remarque : c est décidable dans les réels (Tarski, 1951). Complexité de Kolmogorov : étant donné un mot binaire w et un entier k 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é.

Autres Problèmes Indécidables 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 à coefficients entiers Sortie i 1... i n Z p(i 1,..., i n) = 0? Remarque : c est décidable dans les réels (Tarski, 1951). Complexité de Kolmogorov : étant donné un mot binaire w et un entier k 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é. 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.

Autres Problèmes Indécidables 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 2, ouvert pour 3 n 6. Castor affairé : é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)? on va faire une réduction à partir du problème de l arrêt, qui est indécidable. étant donné un programme R, on considère les deux programmes : procedure AUX(x): procedure CONST(x): r := R(x) ; return 1; return 1 ; pour toute entrée x, on a AUX (x) = CONST (x) si et seulement si R(x) s arrête sur l entrée x. Si le problème d équivalence était décidable, alors le problème de l arrêt le serait aussi.