From 02d28e29f19582eebd8c1465866af72473a84447 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 18 Mar 2018 22:08:24 +0100 Subject: Take into account Antoine's remarks. --- controle-20180322.tex | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/controle-20180322.tex b/controle-20180322.tex index 4575bf5..8db45ea 100644 --- a/controle-20180322.tex +++ b/controle-20180322.tex @@ -323,6 +323,11 @@ l'expression rationnelle moins compacte \underline{\varepsilon}\;|\;(b|c){*}\;|\;(b|c){*}a(a|c){*}\;|\;(b|c){*}a(a|c){*}b(a|b){*} \] qui est cependant sans doute plus lisible. + +\emph{Remarque :} le langage $M$ est aussi dénoté par l'expression +rationnelle plus simple $(b|c){*}\,(a|c){*}\,(a|b){*}$, mais celle-ci +ne répond pas à la question car elle ne peut pas s'obtenir par +élimination des états à partir de $\mathscr{A}_4$. \end{corrige} @@ -333,7 +338,7 @@ qui est cependant sans doute plus lisible. \exercice Dans cet exercice, on pose $\Sigma = \{a,b\}$. On appelle $L = L(G)$ -le langage défini par la hors-contexte $G$ d'axiome $S$ et de +le langage défini par la grammaire hors-contexte $G$ d'axiome $S$ et de nonterminaux $N = \{S\}$ sur l'alphabet $\Sigma$ donnée par \[ \begin{aligned} @@ -462,8 +467,8 @@ explicitera très soigneusement le raisonnement). On a vu à la question (3) que $P \subseteq L$ ; il est par ailleurs trivial que $P \subseteq M$, et on a donc $P \subseteq L\cap M$. Mais on a vu à la question (4) que $L\cap M \subseteq P$ : on a donc $L\cap -M \subseteq P$. Le langage $M$ est rationnel d'après la question (2). -Si le langage $L$ était lui aussi rationnel, le langage $L\cap M$ +M = P$. Le langage $M$ est rationnel d'après la question (2). Si le +langage $L$ était lui aussi rationnel, le langage $L\cap M$ (c'est-à-dire $P$) le serait car l'intersection de deux langages rationnels est rationnelle. Or on a vu à la question (5) que $P$ n'est pas rationnel. C'est donc que $L$ ne l'est pas. @@ -479,7 +484,7 @@ n'est pas rationnel. C'est donc que $L$ ne l'est pas. Dans cet exercice, on s'intéresse au langage $L$ formé des programmes $e$ (codés, dans un langage Turing-complet fixé quelconque, comme des entiers naturels ou comme des mots sur un alphabet fixé sans -importance) qui, quelle que soit le paramètre $n$ qu'on leur fournit +importance) qui, quel que soit le paramètre $n$ qu'on leur fournit en entrée, terminent en temps fini et retournent la valeur $0$ : soit $L = \{e : (\forall n) {\varphi_e(n)\downarrow} = 0\}$. Si l'on préfère, $L$ est l'ensemble de toutes les façons de coder la fonction @@ -542,11 +547,13 @@ que $L$ est décidable, pas juste semi-décidable.) L'argument d'Hippolyte, lui, est correct : il montre que si $L$ était semi-décidable, le complémentaire du problème de l'arrêt (l'ensemble des $e'$ qui ne terminent jamais) serait semi-décidable, ce qui n'est -pas le cas. Parmi les points qui méritent éventuellement d'être -préciser, on peut mentionner : le fait que $e$ se déduise -algorithmiquement de $e'$ et $m$ ; et le fait qu'il est -algorithmiquement possible de lancer l'exécution d'un programme sur -$n$ étapes (peu importe la définition exacte de « étape » tant que +pas le cas. (Le complémentaire du problème de l'arrêt n'est pas +semi-décidable, car s'il l'était, le problème de l'arrêt serait +décidable, vu qu'il est déjà semi-décidable.) Parmi les points qui +méritent éventuellement d'être précisés, on peut mentionner : le fait +que $e$ se déduise algorithmiquement de $e'$ et $m$ ; et le fait qu'il +est algorithmiquement possible de lancer l'exécution d'un programme +sur $n$ étapes (peu importe la définition exacte de « étape » tant que chacune termine à coup sûr en temps fini) et tester si elle est bien finie au bout de ce temps. \end{corrige} @@ -594,7 +601,7 @@ détailler les éventuels passages incomplets dans le raisonnement correct. \begin{corrige} -C'est Patricle qui a raison ($M$ n'est pas semi-décidable). +C'est Patrocle qui a raison ($M$ n'est pas semi-décidable). Le raisonnement d'Achille se fonde sur l'idée que le complémentaire de « l'ensemble des programmes qui renvoient toujours la valeur $0$ » est @@ -606,11 +613,13 @@ correct). L'argument de Patrocle, lui, est correct : il montre que si $M$ était semi-décidable, le complémentaire du problème de l'arrêt (l'ensemble des $e'$ qui ne terminent jamais) serait semi-décidable, ce qui n'est -pas le cas. On fait appel à des fonctions constantes, et qui ne -peuvent renvoyer que $0$ ou ne pas terminer, mais ce n'est pas -spécialement problématique. Parmi les points qui méritent -éventuellement d'être préciser, on peut mentionner le fait que $e$ se -déduise algorithmiquement de $e'$ et $m$. +pas le cas. (Le complémentaire du problème de l'arrêt n'est pas +semi-décidable, car s'il l'était, le problème de l'arrêt serait +décidable, vu qu'il est déjà semi-décidable.) On fait appel à des +fonctions constantes, et qui ne peuvent renvoyer que $0$ ou ne pas +terminer, mais ce n'est pas spécialement problématique. Parmi les +points qui méritent éventuellement d'être précisés, on peut mentionner +le fait que $e$ se déduise algorithmiquement de $e'$ et $m$. \end{corrige} % -- cgit v1.2.3