[PDF] Cours Logique et Calculabilité





Previous PDF Next PDF



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 Perrot

Version du 6 avril 2017

2

Table des matières

3 Calculabilité5

3.0 Divertissement

5

3.1 Introduction

6

3.2 Machines de Turing

7

3.2.1 Définitions

8

3.2.2 Décider et calculer

9

3.2.3 Propriétés de clôture

10

3.2.4 Un peu d"histoire

11

3.3 Les limites du calcul

11

3.3.1 Enumération des machines de Turing

11

3.3.2 Simplifications

12

3.3.3 Dénombrement

12

3.3.4 Code d"une machine de Turing

14

3.3.5 Théorème de l"arrêt

14

3.3.6 Raisonnement par l"absurde et diagonalisation

14

3.3.7 Réductions (version simple)

15

3.3.8 Théorème de Rice

16

3.3.9 Réductions (version avec oracle)

17

3.3.10 Indécidabilité de la logique du premier ordre

17

3.4 Universalité et complétude

19

3.4.1 Universalité

19

3.4.2 Turing-complétude

20

3.5 Thèse de Church Turing

20

3.5.1 Thèse de Church-Turing version physique

21

3.5.2 Thèse de Church-Turing version algorithmique

21

3.5.3 Le lambda calcul

22

3.6 Et si nous avions la réponse au problème de l"arrêt ?

23
3

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! 5

6Chapitre 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 pour

but 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 chiffre

de 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+456ou

1234567890+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 la

multiplication : é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; ou

plus 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éexest

3.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 sa

table 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 possible

1de 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 secondes

2. 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"échapper

deC: 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 (par

exemple 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 sont

bien 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 partie

3. 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 moderne

3. 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= q

0Bsiw=:

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 f

L: ! f0;1g

w7!1siw2L

0sinon:

(Calculer une fonctionfrevient à décider le langage f(x;y)jy=f(x)g

Remarque 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 est

possible 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 en

répétant plusieurs fois certains mots). C"est-à-dire que nous aurons unétat spécial d"énumération

q

e(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 qui

sera 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 fois

queMs"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] indemnité prof principal 2017

[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