• Aucun résultat trouvé

3 Arithmétique de Presburger et tableaux

N/A
N/A
Protected

Academic year: 2022

Partager "3 Arithmétique de Presburger et tableaux"

Copied!
4
0
0

Texte intégral

(1)

École polytechnique — X2013 — INF412 Fondements de l’informatique

Calculabilité

Sujet proposé par David Monniaux et Bruno Salvy (corrigé)

1 Décidabilité et langages rationnels

Comme il a été vu à la PC 4, les machines de Turing dont toutes les transitions sont de la forme δ(q1, `) = (q2, `,→) sont classiquement appelées automates finis déterministes (noté DFA pourdeterministic finite automaton) et les langages qu’elle reconnaissent sont appelés rationnels.

Les questions qui suivent abordent ces machines et ces langages du point de vue de la décidabilité.

Question 1.1. Montrer que le langage AllDFA :={hAi | A est un DFA etL(A) = Σ} est déci- dable.

Solution : Une machine de Turing reconnaissant ce langage est obtenue en composant des ma- chines qui reconnaissent des langages dont l’intersection est AllDFA :

1. les mots codant une machine de Turing tel que décrit dans le poly (§8.1.2). Une telle machine n’est pas difficile à écrire : le langage est “presque rationnel” (il l’est pour un nombre d’états et de symboles donné) ;

2. les mots correspondant à un DFA :

— aucune des transitions ne contient le déplacement vers la gauche (←) ou l’absence de déplacement (|), ce qui revient à vérifier que le mot ne contient des suites1k que pour k∈ {0,1,5}. Il s’agit donc d’un sous-ensemble du langage rationnel(0 + (1|11111));

— la lecture d’un B, et elle seule, envoie vers l’état de rejet ou d’acceptation : les tran- sitions δ(qi, Xj) = (qk, Xl, m) avec qk ∈ {qa, qr} vérifient Xj =B, ce qui est facile à tester ;

— on pourrait tester que la machine n’écrit pas sur son ruban, mais cette écriture ne change pas le langage reconnu, puisque les lettres écrites ne sont jamais lues ;

3. L(A) = Σ? : l’état de rejet n’est pas accessible, ce qui veut dire que dans une transition δ(qi, Xj) = (qk, Xl, m) on doit avoir qk 6= qr, ce qui est encore facile à tester. (Ou plus conceptuellement, il s’agit d’un cas particulier du problème REACH).

Question 1.2. Le problèmeEqDFAa pour donnée les codageshAiethBide deux DFAs, et consiste à déterminer si L(A) =L(B). Montrer queEqDFA est décidable. [Indication : le complémentaire, l’union et l’intersection de langages rationnels sont rationnels, et les (codages d’)automates cor- respondants sont calculables.]

Solution : Il suffit de tester que (L(A) ∪L(B))∩(L(A)∪L(B)) = Σ. La construction de l’automate correspondant au membre gauche est calculable d’après l’énoncé, et la conclusion découle de la question précédente.

Question 1.3. Montrer que le langage Rat des hMi tels que M est une machine de Turing et L(M) est reconnu par un DFA est indécidable. [Indication : le langage Λ ={0m1m |m∈N} est un exemple de langage qui n’est pas reconnu par un DFA.]

1

(2)

Solution :C’est une conséquence du théorème de Rice. Il suffit de prouver qu’il existe une machine de Turing qui reconnaît un langage rationnel (et c’est le cas de tous les DFAs) et une autre qui reconnaît un langage non-rationnel (une telle machine reconnaissantΛ a été vue dans la PC sur les machines de Turing) et le théorème de Rice conclut.

Question 1.4. SiA≤mB etB est reconnu par un DFA, est-ce queA est reconnu par un DFA ? Justifier.

Solution : Le résultat du cours (Prop. 8.2) donne une réponse positive à la variante de cette question où “reconnu par un DFA” est remplacé par “décidable”. Pourtant ici, la réponse est négative : par exemple, siA= Λle langage de la question précédente, on considère la fonctionf qui envoie le mot w sur 1 si w ∈Λ et sur 0 sinon. Cette fonction est calculable, et l’ensemble d’arrivée {1}est reconnu par un DFA trivial.

Question 1.5. Montrer que A est décidable si et seulement si A≤m 01.

Solution : SiA≤m01 alors clairementA est décidable, puisque ce langage est rationnel. Dans l’autre sens, il suffit d’exhiber une réduction, par exemple la fonctionf qui vaut10sur unw6∈A et01 sinon. Cette fonction est calculable puisque A est décidable, et on a bien la propriété que f(w)∈01 ⇔w∈A.

2 Pas de langage universel pour les calculs qui terminent toujours

Nos problèmes de décidabilité proviennent de l’usage de systèmes de calcul (p. ex. les machines de Turing, mais aussi bien tout langage de programmation comportant des boucles non bornées) dont les programmes peuvent ne pas terminer. Nous avons déjà vu un système de programmation dont tous les programmes terminent (les fonctions primitives récursives), mais nous avons montré que ce système ne permet pas de représenter certaines fonctions calculables qui terminent toujours (comme la fonction d’Ackermann). Nous allons voir ici que pareille faiblesse est inévitable : aucun système, ou langage, de programmation ne permet de représenter toutes les fonctions calculables (donc par définition qui terminent et acceptent toujours) et exactement celles-ci.

Question 2.1. Supposons qu’il existe un interprète I pour ce langage de programmation L : la fonction calculable I(x, y) retourne le résultat de l’exécution du programme x∈ Lsur l’entrée y.

On dit que ce langage représente une fonction calculable f s’il existe un x0 ∈ L tel que f est y 7→ I(x0, y). Montrez qu’il existe des fonctions calculables qui ne sont pas représentées par ce langage. (Indication : construisez-en une à partir de I.)

Solution : C’est encore une fois un argument diagonal ! On considère une fonctionf définie en concaténant une lettre au résultat de la fonction x7→I(x, x). Ce résultat I(x, x) est un mot sur un certain alphabet Σ0, et on choisit f(x) = I(x, x)·a. Cette fonction f est bien calculable. Si elle est représentable dansL, il existex0 tel quef(x) =I(x0, x)pour tout x. C’est notamment le cas pourx=x0, mais alorsf(x0) =I(x0, x0) =I(x0, x0)·a, ce qui est une contradiction.

Nous venons de démontrer qu’un langage de programmation qui permet d’écrire exactement toutes les fonctions calculables ne peut pas avoir d’interprète dans le langage. L’argument va plus loin, et même des sous-ensembles des fonctions calculables, pourvus qu’ils soient clos par concaténation, vérifient la même propriété. Ainsi par exemple, le langage Coq ne permet d’écrire que des fonctions qui terminent, donc on ne peut écrire d’interprète Coq en Coq.

On s’intéresse maintenant au langage des codages de machines de Turing qui terminent forcément :

T ={x| ∀y La machine de codagex termine sur y}.

2

(3)

Question 2.2. Prouvez que le langageT n’est pas décidable.

Solution : Le théorème de Rice s’applique presque directement, mais pas tout à fait. Par contre, on peut reproduire la même idée que dans la preuve du théorème de Rice, par une réduction du problème de l’arrêt, mais en faisant attention de renvoyer à la fois les rejets et les acceptations vers des acceptations (voir la solution de la question 2.4).

On pourrait au moins espérer qu’il soit semi-décidable (récursivement énumérable) ou de complémentaire semi-décidable...

Question 2.3. Prouvez que le langage complémentaire

T ={x| ∃y La machine de codage x ne termine pas sur y}

n’est pas semi-décidable.

Solution : La preuve est par réduction du problème HALT suivant : Entrée : le codagehMi d’une machine de Turing ;

Sortie : décider si la machineM ne termine pas sur le mot vide.

Ce problème n’est pas semi-décidable. En effet, le théorème de Rice montre que la propriété

“le mot vide est dans le langage accepté parM” n’est pas décidable. Or cette propriété se réduit à trois tests : soit la machineM termine en acceptant le mot vide (semi-décidable), soitM termine en refusant le mot vide (semi-décidable), soit hMi a la propriété HALT, qui ne peut donc pas être semi-décidable.

Si hxi est le codage d’une machine de Turing, on construit une machine de Turing Ax qui ignore son entrée y puis exécute x sur le mot vide, construction qui est clairement calculable.

Alors hAxi ∈ T si et seulement si x ne termine pas sur le mot vide. Si T était semi-décidable, HALT le serait aussi.

Question 2.4. Prouvez que le langageT n’est pas semi-décidable.

Solution : La preuve est à nouveau une réduction de HALT.

Soitx une machine de Turing. On définit la machine de Turing f(x) ainsi :

— Elle prend en entréey, qu’on interprète comme un entier.

— Elle simulex pendanty étapes sur le mot vide.

— Si cette simulation a atteint un état final acceptant, elle boucle ensuite indéfiniment.

— Sinon, soit la simulation a atteint un état final refusant, soit elle n’a pas terminé en y étapes, et alors f termine en acceptant.

Cette machine vérifief(x)∈T si et seulement six ne termine pas sur le mot vide.

3 Arithmétique de Presburger et tableaux

L’arithmétique de Presburger est l’arithmétique entière (entiers relatifs) usuelle, restreinte aux opérations linéaires (addition, soustraction, successeur), avec l’ordre usuel. On admet la multiplication n.xpar une constante entièrencomme notation pour une somme dentermes x.

On a vu en cours que l’arithmétique de Presburger est décidable : il existe un algorithme qui, étant donnée une formule close sur la signature 0,1,+,≤interprétée normalement dans Z, dit si cette formule est vraie ou fausse dans cette interprétation (qui plus est, elle sera alors respectivement démontrable ou de contraire démontrable à partir des axiomes de Presburger).

Fischer et Rabin [3] ont cependant démontré qu’un tel algorithme aura forcément unecomplexité prohibitive dans le pire cas. L’obtention de procédures efficaces en pratique est un sujet actif de recherche.

Les deux questions suivantes pourront être sautées si manque de temps : 3

(4)

Question 3.1. Donnez une formule sans quantificateur équivalente à ∀x (x≤y⇒x≤z).

Solution : y≤z.

Question 3.2. Peut-on trouver une formule sans quantificateur équivalente à∃x y = 3x? Sug- gérez une extension du langage des Presburger pour permettre de pratiquer l’élimination de quan- tificateurs.

Solution : Non. Une telle formule, en forme normale disjonctive, serait une disjonction de conjonc- tions d’atomes de la forme x ≥ K,x ≤K,x =K, et chacune de ces conjonctions délimite un intervalle ouvert ou fermé. Il n’y a aucune façon d’arriver ainsi à représenter l’ensemble des multiples de 3.

Une extension possible est d’ajouter pour tout naturel n≤2 un prédicat unaire « divisible parn», souvent notén|x. On peut montrer que l’arithmétique de Presburger avec ces prédicats admet l’élimination des quantificateurs : il existe des algorithmes qui, étant donnée une formule, produisent une formule équivalente sans quantificateurs, par exemple celui de Cooper [2].

On permet maintenant d’ajouter à la signature 0,1,+,≤,= un nombre quelconque de pré- dicats. On va notamment s’intéresser au cas où l’on ajoute un unique prédicat binaire A et où l’on ne s’intéresse qu’à des formules de la forme ∀x1. . .∀xn F, oùF n’a pas de quantificateurs.

Question 3.3. Montrez qu’il n’existe pas d’algorithme qui, au vu d’une telle formule, décide si elle est satisfiable dans Z. Autrement dit, si on interprète 0par0, 1par1, +par+, ≤par≤,= par =, les variables par des entiers relatifs... et donc la question de la satisfiabilité revient à se demander si on peut trouver un sous-ensemble deZ2 qui interprèteA en respectant ce qu’impose la formule.

Indice : choisir un tel ensembleA revient à associer à chaque couple d’entiers un bit 0 ou1.

Solution : On peut contraindreA à être le diagramme espace-temps d’une machine de Turing, le premier indice indiquant la position sur la bande et le deuxième l’instant dans le temps. Il y a alors un algorithme simple qui prend en entrée une machine de Turing et produit en sortie une formule qui contraintAà être le diagramme espace-temps. On peut conjoindre à cette formule une autre forçant Aà dénoter une exécution infinie. Décider la satisfiabilité de la formule résultante revient donc à décider le problème de l’arrêt.

On peut étudier des variantes de cette question, qui parfois donnent des classes décidables de formules, parfois des classes indécidables [1].

Références

[1] Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. What’s decidable about arrays ? In VMCAI, volume 3855 of Lecture Notes in Computer Science, pages 427–442. Springer, 2006.

ISBN 3-540-31139-4. doi: 10.1007/11609773_28.

[2] D. C. Cooper. Theorem proving in arithmetic without multiplication. In Bernard Meltzer and Donald Michie, editors, Machine Intelligence 7, pages 91—100. Edinburgh University Press, 1972. ISBN 0-85224-234-4.

[3] Michael J. Fischer and Michael O. Rabin. Super-exponential complexity of Pres- burger arithmetic. In Complexity of Computation, number 7 in SIAM–AMS procee- dings, pages 27–42. American Mathematical Society, 1974. URL citeseer.ist.psu.edu/

fischer74superexponential.html.

4

Références

Documents relatifs

FIChE 13 : UNE JOURNéE pORTE OUVERTE L’élève commence et vous terminez. RôLE

Faire valider par un adulte. Escape game Ce 1 L’Escape game se trouve dans ton porte vue de mots. 1) Essaie de répondre aux trois premières énigmes. Tu as toute la semaine

Nous avons donné, dans l’article cité ci-dessus, d’une part un exemple de fonction de couplage J telle que la théorie de (N, J) soit décidable et, d’autre part, un exemple

◊ remarque : cette “équivalence” simplifie beaucoup le calcul car il est plus facile de chercher lʼextremum de z pour x fixé (lʼéquation de la trajectoire

Chemise: les arbres ne portent pas de chemise, cela veut dire qu'il était recouvert d'écorces.. Couronné: signifie qu'en haut de l'arbre il y avait un objet en forme

Ce document, non-exhaustif, est élaboré afin de vous aider à aborder le questionnaire de manière détachée et surtout de trouver la ressource qui est en vous pour

Il sut alors de parcourir le graphe en remontant les arêtes, ce parcours termine nécessairement car il y a un nombre ni d'état et aucun cycle.. Suite : Soit S la composante source

Maitenant que nous avons A (1) et A (2) pour tous les i, j, r, nous savons construire les négations des formules en prenant l’automate complémentaire et nous savons faire