Calculabilité
Introduction. 0.1 Quelques exemples. Les cours d'informatique que vous avez eu peuvent donner une impression que pour chaque probl`eme on peut trouver un
Introduction `a la calculabilit´e
Théor`eme. Toute fonction µ-récursive est calculable par une machine de Turing. 1. les fonctions primitives récursives de bases sont calculables par machine de
Introduction à la calculabilité et à la complexité
Ou encore : « Toute fonction mécaniquement calculable est Turing-calculable. » Voici donc notre définition d'algorithme : les machines de Turing. 2.4 Langages.
Cours de calculabilité et complexité
Introduction et motivations (IV). Deux situations sont possibles : (i) vous avez malheureusement renoncé `a suivre le cours de calculabilité et complexité
Calculabilité Cours 1 : machines de Turing
1 Introduction. Une machine de Turing est un objet mathématique défini en 1936 par Alan Turing
Calculabilité - Décidabilité I. Introduction II. Problèmes de décision
Comme tout langage actuel peut être compilé en assembleur il peut aussi être compilé en langage des machines de Turing. Les fonctions calculables et les
Calculabilité et complexité
Voici un nouveau livre d'introduction à la théorie des langages de la calculabilité et de langages formels que la calculabilité et la complexité.
Cours Logique et Calculabilité
Calculabilité. Ce cours est basé sur le livre de Sipser [Sip06] et le cours de Kari [Kar13]. 3.1 Introduction. Une machine de Turing est un objet
Complexité et calculabilité
3 sept. 2022 Introduction to Automata Theory Languages & Computation. ... Langages formels
Machine de Turing - Informatique Théorique 2 Licence 3 informatique
Introduction. Langage reconnu. Fonction calculable. Indécidabilité. Objectifs de la séance 04. Connaitre la définition d'une machine de Turing.
[PDF] Introduction `a la calculabilit´e - ORBi
Référence Pierre Wolper Introduction `a la calculabilité - 2i`eme édition Dunod 2001 1 Page 2 Chapitre 1 Introduction 2
[PDF] INTRODUCTION À LA CALCULABILITÉ
22 jan 2017 · Cet ouvrage a pour vocation de résumer de façon claire l'ensemble des résul- tats fondamentaux en calculabilité en particulier en ce qui
[PDF] Introduction à la calculabilité et à la complexité - Irif
1 Introduction Dans ce cours : – Formaliser la notion de calcul : qu'est-ce qu'une « méthode effective de calcul »? Qu'est-ce qu'un algorithme ?
[PDF] Calculabilité - Irif
1 1 1 Définition de fonctions récursives primitives Dans le cadre défini dans l'introduction un prédicat P sur Nk correspond au probl`eme (U B)
(PDF) Introduction à la calculabilité Pierre Wolper - Academiaedu
1 Chapitre 1 Introduction 2 1 1 Motivation • Comprendre les limites de l'informatique • Distinguer probl` emes solubles et insolubles par des algorithmes
[PDF] Calculabilité Cours 1 : introduction et machines de Turing
Une machine de Turing universelle enti`erement mécanique a été réalisée en Lego 1 Remarquons que l'existence de fonctions non calculables implique que pour d'
[PDF] Cours Logique et Calculabilité
6 avr 2017 · 3 1 Introduction 3 5 1 Thèse de Church-Turing version physique certaines fonctions ne sont pas calculables : il n'existe pas
[PDF] Introduction `a la calculabilité - Loria
d'optimisation et complexite Conclusion Introduction `a la calculabilité 1 Motivation 2 Que signifie“calculer” ? Les automates Les machines de Turing
[PDF] Cours de calculabilité et complexité
Introduction et motivations (II) En est-il de même pour certains projets en in- formatique Y a-t-il des limites `a ce que nous
[PDF] Introduction `a la calculabilité - LACL
17 sept 2018 · 1 2 1 Les choses calculables Nous allons conduire une études théorique de la puissance de calcul des programmes informatiques
Cours Logique et Calculabilité
L3 Informatique 2016/2017Texte par Kévin PerrotVersion du 6 avril 2017
2Table des matières
3 Calculabilité5
3.0 Divertissement
53.1 Introduction
63.2 Machines de Turing
73.2.1 Définitions
83.2.2 Décider et calculer
93.2.3 Propriétés de clôture
103.2.4 Un peu d"histoire
113.3 Les limites du calcul
113.3.1 Enumération des machines de Turing
113.3.2 Simplifications
123.3.3 Dénombrement
123.3.4 Code d"une machine de Turing
143.3.5 Théorème de l"arrêt
143.3.6 Raisonnement par l"absurde et diagonalisation
143.3.7 Réductions (version simple)
153.3.8 Théorème de Rice
163.3.9 Réductions (version avec oracle)
173.3.10 Indécidabilité de la logique du premier ordre
173.4 Universalité et complétude
193.4.1 Universalité
193.4.2 Turing-complétude
203.5 Thèse de Church Turing
203.5.1 Thèse de Church-Turing version physique
213.5.2 Thèse de Church-Turing version algorithmique
213.5.3 Le lambda calcul
223.6 Et si nous avions la réponse au problème de l"arrêt ?
233
4TABLE DES MATIÈRES
Chapitre 3
Calculabilité
3.0 Divertissement
collatz(n:int) print n; si n == 1 alors stop, sinon si n%2 == 0 alors collatz(n/2), sinon collatz(3*n+1), finsi finsi Est-ce que le programmecollatztermine sur toute entréen? Comment le savoir?T esterp ourtout n1020?
T estersi 9n,xtel quecollatz(n)=collatzx(n)?
V ousa vezun an a vec10 programmeurs surdoué s.Commen tfaites -vous?Suite de Collatz (1937) :n7!n=2sinmod 2 == 0
n3 + 1sinon Conjectures réfutées par de grands contre-exemples : Conjecture d"Euler (1772). 8n >2 :8x1;:::;xk;z2N:Pk i=1xni6=zn. n= 5(1966) :275+ 845+ 1105+ 1335= 1445 n= 4(1988) :26824404+ 153656394+ 187967694= 206156734 n >5: inconnu.Conjecture de P ólya(1919). Plus de la moitié des en tiersnaturels inférieurs à un en tier
donné ont un nombre impair de facteurs premiers. (1980) : le plus petit contre exemple est906150257. Conjecture de Mertens (1885) : prouv éefausse mais aucun con treex empleexplicite conn u.2006 : plus petit contre exemple compris entre1014et1:591040
Nom brede Sk ewes(1914).
1955 : il existe un tel nombre inférieur à101010963.
1987 : il existe un tel nombre inférieur à710370.
La morale de cet example est que les ordinateurs n"ont pas réponse à tout! 56Chapitre 3. Calculabilité
Ce cours est basé sur le livre de Sipser [Sip06] et le cours de Kari [Kar13].3.1 Introduction
Une machine de Turing est un objet mathématique, défini en 1936 parAlan Turing, qui a pourbut de décrire ce qu"est uncalcul. Tout le monde sent ce qu"est un calcul : si vous avez deux nombre
en base 10, disons123et456, et vous voulez calculer leur somme, vous le faites chiffre par chiffrede droite à gauche en propageant d"éventuelles retenues pour obtenir579. Si vous voulez calculer
leur produit, vous le décomposez en multiplications plus simples pour lesquelles vous avez appris un nombre fini de tables, et vous sommez les résultats des sous-problèmes :123x456 =(1x100+2x10+3)x(4x100+5x10+6)
+(2x4)x(10x100)+(2x5)x(10x10)+(2x6)x(10) +(3x4)x(100)+(3x5)x(10)+(3x6) =56088.Lorsque vous apprenez à quelqu"un une méthode pour effectuer une multiplication, vous décrivez
unalgorithme: vous donnez une description finie (par exemple en 10 minutes de parole, ou en 2 pages) de la procédure à suivre pour obtenir le résultat.Les machines de Turing sont des objets mathématiques pour décrire les algorithmes. Une machine de Turing pour l"addition de nombres naturels en base 10 donne l"ensemble des instructions qu"il faut effectuer pour calculer la somme de deux nombres. Une remarque importante est que la description de la procédure est finie, mais elle permet de calculer la somme de n"importe quel couple de nombres :123+456ou1234567890+2345678901ou des nombres plus grands!
Bon, soyons sérieux. Une machine de Turing décrit comment calculer quelque chose. Mais quel est cequelque chose? C"est unefonction. Par exemple, une fonction peut-être l"addition, ou lamultiplication : étant donnée uneentréefinie (dans notre exemple123et456), une fonction associe
une uniquesortie. L"entrée et la sortie peuvent être un ou plusieurs entiers naturels, des nombres
négatifs, une phrase écrite en alphabet Latin ou n"importe quel autre. Le point important est qu"elle
soit de taillefinie. Une fonction associe alors une unique sortie (le résultat) à chaque entrée.
Les fonctions peuvent être simples : l"addition ou la multiplication de deux entiers naturels; ouplus compliquées : étant donné un entier naturel, quelle est sa décomposition en produit de facteurs
premiers (entiers naturels plus grand que 1 qui n"ont pas de diviseur autre que 1 et lui-même);ou mêmenon calculable: étant donné un énoncé mathématique, décider s"il est vrai ou faux. Oui,
certaines fonctions ne sont pas calculables : il n"existe pas d"algorithme qui les calcul. De plus, il y
a infiniment plus de fonctions non calculables que de fonctions calculables! Il existe une infinité de
fonctions, et une infinité de machines de Turing (d"algorithmes), mais le nombre de fonctions est infiniment plus grand que le nombre de machines de Turing. Une question naturel est : si les machines de Turing peuvent calculer si peu de fonctions,pourquoi ne pas calculer avec un autre modèle mathématique? En réalité, les machines de Turing
ne sont pas le seul objet mathématique permettant de décrire des algorithmes. De tels modèles
sont appelésmodèles de calcul effectifs, oùeffectifsignifie approximativement " en accord avec
le monde réel ». Il est cependant magnifique de constater que tous les modèles de calcul proposés
jusqu"à présent sont équivalents! Deux modèles sont équivalents s"ils peuvent calculer exactement
le même ensemble de fonctions. Rappelons nous bien : soitFl"ensemble de toutes les fonctions, les machines de Turing ne peuvent pas calculer toutes les fonctions de l"ensembleF, mais seulement un sous-ensembleC.La croyance (répandue) selon laquelle tout autre modèle de calcul effectif que l"on pourrait imaginer sera à également capable de calculer toutes les fonctions de l"ensembleCet aucune autre est appeléethèse de Church-Turing, etCest appelé l"ensemble desfonctions calculables. L"une des questions les plus fondamentales de la science informatique est la suivante : pourquoi une fonction est-elle calculable ou non calculable? Un point intéressant est l"existence de machines de Turinguniverselles. Une machine de Turing universelleUest une machine capable desimulertout autre machine de Turing. Qu"est-ce que cela signifie? SoitMune machine de Turing quelconque etxune entrée, la sortie deMsur l"entréexest3.2 Machines de Turing7
notéeM(x). Une machineUest universelle si l"on peut écrire une entréeysur le ruban telle que le
calcul deUsurydonneM(x)en sortie. Uetyne sont pas très compliqués à construire :Ma une description finie (principalement satable d"actions), donc cette description peut être écrite sur le ruban, elle utiliserancellules; et sur
d"autres cellules vides, on peut écrirex. Maintenant,Ua toute l"information qui définitM(x)sur le
ruban, et il est possible1de construire une telle machineUquilitl"entréexsur le ruban, ensuitelit
la table d"action deMsur lesncellules dédiées du ruban, et ensuite réalise surxce que la machine
Maurait réalisé si elle avait été exécutée sur un ruban contenantx. Une telle machineUest un peu
délicate à construire, mais pas excessivement. De nos jours, un ruban est appelédisque dur, la table d"action deMécrite sur le ruban est unprogramme, etUest unordinateur! Une machine de Turing universelle entièrement mécanique a été réalisée en Lego. http://www.dailymotion.com/video/xrmfie/ http://rubens.ens-lyon.fr/ Par conséquent, ce tas de Lego est capable de calculer l"ensemble des fonctions calculablesC: il a exactement la mêmepuissance de calculque votre ordinateur ou votre téléphone portable! En comparaison avec un ordinateur moderne qui réalise une instruction toutes les nano-secondes (0.000000001 secondes), cette machine en Lego réalise une instruction toutes les 100 secondes. Elle peut faire ce qu"un ordinateur moderne peut faire, mais pour réaliser ce que ce dernier effectue en 1 seconde, il lui faut 3168 ans 295 jours 9 heures 46 minutes et 40 secondes2. Quoi qu"il en soit, l"important est qu"elle en soit capable, n"est-ce pas?
C"est le coeur de lacalculabilité. Les ordinateurs sont chaque année plus rapides, et leur vitesse
continue d"augmenter. Cependant, ils restent restreints à l"ensemble des fonctions calculables,C. Ils
peuvent calculer les fonctions de l"ensembleCtoujours plus vite, mais ne peuvent pas s"échapperdeC: leurexpressivitéreste la même. L"étude de cette expressivité, du sens de cette puissance de
calcul, s"appelle lathéorie de la calculabilité. Vous pouvez parfois entendre que nous sommes aujourd"hui capables de calculer des choses quiétaient impossible à calculer les années passées, que les ordinateurs sont plus puissants aujourd"hui
qu"hier. Ces phrases doivent être précisées. En réalité, ces calculs étaient simplement trop longs à
réaliser les années passées (par exemple, il aurait fallut 100 ans si vous les aviez exécutés sur un
ordinateur en l"an 2000), mais aujourd"hui vous pouvez les calculer en un temps raisonnable (parexemple 100 secondes) ce qui permet d"obtenir effectivement le résultat. Un exemple intéressant
est le jeu des échecs : il est possible aujourd"hui, et il a toujours été possible, d"écrire un algorithme
qui vous indique coup après coup la meilleure action possible, mais les ordinateurs actuels sontbien trop lents pour exécuter un tel algorithme jusqu"au bout... Néanmoins, un jour nous serons
capables de réaliser ce calcul en un temps raisonnable, et ensuite jouer aux échecs avec un ordinateur
deviendra définitivement ennuyant car nous serons sûrs et certains de perdre chaque partie3. Laissez
moi répéter qu"un tel algorithme existe déjà et est facile à implémenter sur un ordinateur, les
ordinateurs sont simplement trop lents pour réaliser les calculs en un temps raisonnable. Lathéorie
de la calculabilités"intéresse à des vérités mathématiques qui sont indépendantes du temps de
calcul : la question n"est pas de savoir si quelque chose sera faisable dans 10 ou 20 ans, mais plutôt
si quelque chose est fondamentalement faisable ou non, fondamentalement vrai ou faux.3.2 Machines de Turing
Pour montrer qu"une fonction est calculable ou qu"un langage est décidable (distinction discutée
en 3.2.2) il faut donner un algorithme. Pour montrer qu"une fonction n"est pas calculable ou qu"un1. Remarquons que l"existence de fonctions non calculables implique que pour d"autres problèmes (encore une
fois il y en a énormément, infiniement plus que des calculales), même avec toute l"information qui définit la question,
il n"existe pas de machine de Turing qui calcule le résultat.2. Ce nombre est en réalité complètement faux, parce qu"une instruction de machine de Turing est différente
d"une instruction d"un ordinateur moderne. Néanmoins, il est là pour souligner le fait que cette machine de Turing
en Lego est très précisément équivalente à un ordinateur moderne3. Je mens un peu. En réalité, puisque nous n"avons encore jamais calculé toutes les actions possibles aux échecs,
nous ne savons pas si ce sont les blancs ou les noirs qui ont une stratégie gagnante, ou si nous arriverions à un match
nul avec deux joueurs parfaits...8Chapitre 3. Calculabilité
langage est indécibable, il faut d"abord définir l"ensemble des algorithmes (car cela définit l"ensemble
de ce qui est calculable/décibable). L"intérêt des machines de Turing est qu"elles définissent les
algorithmes de façon intuitive et simple! Imaginez devoir définir mathématiquement votre langage
de programmation préféré dans ses moindres détails...Idée du calculateur humain devant sa feuille :
feuilles découp éesen cases : ruban ; cra yonp osésur une case : tête de lecture/écriture, déplacemen t; l"op érateurdisp osed"une mémoire finie (son cerv eau): états.3.2.1 DéfinitionsDéfinition 3.1.Unemachine de Turing(MT) déterministe est un 7-uplet
M= (Q;;;;q0;B;qF)où
-Qest unensemble d"étatsfini;-est l"alphabet d"entrée;-est l"alphabet de ruban(il contient tous les symboles qui peuvent apparaître sur le ruban. En particuliercar l"entrée est initialement écrite sur le ruban. On supposera queQ\ =?pour qu"iln"y ait pas de confusion entre états et symboles du ruban);
-est unefonction de transitiondécrite ci-après;-q02Qest l"état initial;-B2nest unsymbole blancspécial (ne fait pas partie de l"alphabet d"entrée);-qF2Qest l"état final.La fonction de transitionest une application (partielle)
de l"ensemble(Qn fqFg)dans l"ensembleQ fL;Rg.L"application est partielle : elle peut être indéfinie pour certains arguments, auquel cas la machine
n"a pas de mouvement suivant et s"arrête. En particulier, il n"y a pas de transition depuis l"état
finalqF. Une transition (q;a) = (p;b;L)signifie que dans l"étatqet en lisant le symbole de rubana, la machine passe dans l"étatp, remplace
aparbsur le ruban, et déplace la tête de lecture/écriture d"une cellule sur la gauche (Lpourleft
etRpourright).Initialement, le mot d"entrée est écrit sur le ruban et toutes les autres cellules contiennent le
symbole blancB. La machine est dans l"étatq0, et la tête de lecture/écriture est positionnée sur
la lettre la plus à gauche de l"entrée. Il y a trois possibilités :-acceptationsi au cours des transitions la machine entre dans l"état finalqF(et doncs"arrête),
-rejetsi au cours des transitions la machine s"arrête dans un état non final (s"il n"y a pasde mouvement suivant à réaliser),
-rejetsi la machine ne s"arrête jamais.Définition 3.2.Unedescription instantanée(DI) d"une MT décrit sa configuration courante.
C"est un mot
uqav2(fg [(n fBg))Q(fg [(n fBg) avecq2Ql"état courant,u;v2le contenu du ruban à gauche et à droite de la tête, respecti- vement, jusqu"au dernier symbole non blanc, eta2le symbole de ruban actuellement sous la tête. Définition 3.3.Unmouvement, unetransition, undéplacementde la MT à partir de la DI =uqavvers la DI suivantesera noté`. Plus précisément : 1.Si (q;a) = (p;b;L),
si u=alors=pBbv(potentiellement en supprimant desBà la fin debv),3.2 Machines de Turing9
si u=u0cavecc2alors=u0pcbv(potentiellement en supprimant desBà la fin de bv). 2.Si (q;a) = (p;b;R),
si v=alors=ubpB(potentiellement en supprimant lesBau début deub), si v6=alors=ubpv(potentiellement en supprimant lesBau début deub). 3. Si (q;a)est indéfini alors aucun mouvement n"est possible depuis, etest uneDI d"arrêt.Siq=qFalorsest uneDI acceptante.
Notation 3.4.Notre modèle de MT estdéterministe, ce qui signifie que pour toutil y a au plus untel que`. Nous noterons si la MT changeenen n"importe quel nombre d"étapes (0 inclus, auquel cas=), `+si la MT changeenen au moins une étape, et `isi la MT changeenen exactementiétapes. Pour toutw2nous pouvons définir la DI correspondante w=q0w;siw6= q0Bsiw=:
3.2.2 Décider et calculerDéfinition 3.5.Le langagereconnu(ouaccepté) par la MTMest
L(M) =fwjw2etw`uqFvavecu;v2gDéfinition 3.6.Un langage estrécursivement énumérable(r.e.) s"il est reconnu par unemachine de Turing. Un langage estrécursif, oudécibable, s"il est reconnu par une machine deTuring qui s"arrête sur toute les entrées.
Attention à la différence! Bien entendu, tout langage récursif est également r.e. Notation 3.7.Lerésultatdu calcul de la MTMsur l"entréewsera notéM(w) =8
:uvsiw`uqFvavecu;v2 uavsiw`uqavavecu;v2et(q;a)non définiy"si l"exécution ne termine pas:ypotentiellement en supprimant desBà la fin deav.Définition 3.8.Une fonctionf: !estcalculableourécursivesi et seulement si ilexiste une MTMtelle que pour toutw2:f(w) =M(w).Remarque 3.9.Décider (un langage) est équiv alentà calculer (une fonction) .
)Décider un langageLrevient à calculer safonction caractéristique fL: ! f0;1g
w7!1siw2L0sinon:
(Calculer une fonctionfrevient à décider le langage f(x;y)jy=f(x)gRemarque 3.10.
Il existe une bijection en treetN
Il existe une bijection entreNNetN,
et donc également entreNnetNpour toutn2N.10Chapitre 3. Calculabilité
Par conséquent, lorsque nous parlons de fonctions calculables, nous pouvons restreindre nos consi-
dérations auxfonctions deNdansN. Nous n"établirons pas de distinction très nette entre calculer et décider. Dans la v raievie on dira plu tôtcalculer (plus parlan t). Dans le monde des mathématiques on dira plutôt décider (plus minimaliste, et s"applique aux propriétés). Récursif est synon ymede calculable et décidable. Remarque 3.11.Le termerécursivement énumérable(définition3.6 ) vient du fait qu"il estpossible d"écrire (pour ces langages) une MT qui va, à partir d"une entrée vide, énumérer tous les
mots du langage, un à un et sans en oublier aucun (dans n"importe quel ordre, possiblement enrépétant plusieurs fois certains mots). C"est-à-dire que nous aurons unétat spécial d"énumération
qe(quand on entre dans cet état c"est qu"on énumère le mot présent sur le ruban, par convention
à la droite de la tête de lecture/écriture) tel que : pour tout motw2L, il existe une étapettelle que`tqew.Exemple 3.12.Le langage suivant est récursif :
fw2 fa;bgjwest un palindromeg donc il existe une machineMpalindromequi le décide (répond oui/non sur toute entrée).3.2.3 Propriétés de clôture
Théorème 3.13.Les propriétés suivantes sont vraies : 1. la famil ledes langages r écursifsest close p arc omplémentation; 2.les famil lesdes langages r écursifset r écursivementénumér ablessont closes p arunion et
intersection; 3. Un langage Lest récursif si et seulement siLetnLsont récursivement énumérables.Idées de démonstration.
1. On v eutprouv erLrécursif impliquenLrécursif. SoitMla machine dont le langage est L(M) =Let qui s"arrête toujours, nous allons construire une nouvelle machineM0dont le langage estL(M0) = nLet qui s"arrête toujours. Pour cela, on ajoute un puits global quisera notre nouvel état final. Ainsi, la nouvelle machine s"arrête dans cet état final à chaque
fois queMs"arrêtait sur un état non final (w =2L(M))w2L(M0)). De plus, chaque foisqueMs"arrêtait dans l"état final,M0va dans un nouvel état non final à partir duquel aucune
transition n"est possible (w2L(M))w =2L(M0)). 2. In tersection.Soien tL1=L(M1)etL2=L(M2). On veut construire une machineM0dont le langage estL(M0) =L1\L2. Pour cela, sur une entréewla machineM0simulera (pourquotesdbs_dbs45.pdfusesText_45[PDF] isoe prof principal
[PDF] hsa prof
[PDF] indemnite tuteur stagiaire education nationale
[PDF] prime prof principal contractuel
[PDF] evaluation anglais 6ème description physique
[PDF] indemnité prof principal agrégé terminale
[PDF] indemnités vacances éducation nationale
[PDF] enseignant contractuel vacances d'été
[PDF] entretien d'embauche la meilleure défense c'est d'être préparé
[PDF] cdi prof contractuel
[PDF] planification annuelle français secondaire 1
[PDF] planification annuelle français secondaire 3
[PDF] planification français secondaire 4
[PDF] dernier pays indépendant dans le monde