• Aucun résultat trouvé

Introduction à la Calculabilité

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à la Calculabilité"

Copied!
70
0
0

Texte intégral

(1)

Introduction à la Calculabilité

(2)

2

Plan

1- Introduction

2- Intérêt d’étudier la calculabilité 3- Notion de Problème

4- Notion de Programme (procédure de calcul) 5- Notion de Décidabilité

6- Notion de Calculabilité 7- Notion de dénombrabilité 8- Notion de codage

9- Formalisation des problèmes 10- Formalisation du calcul

(3)

Introduction

(4)

4

Chaque science a ses limites théoriques& pratiques Mathématiques

Mécanique Physique

….

Qu’en est-il pour l’Informatique?

L’informatique, est-elle limitée ?

Introduction

(5)

A la recherche des limites de l’informatique Deux Questions principales se posent:

Introduction

Limites théoriques ? Limites pratiques ?

(6)

6

• Est-ce qu’il y a des problèmes qu’on ne peut pas résoudre par ordinateur ?

par ordinateur = par moyen algorithmique indépendamment des ressources disponibles

limites absolues

 Théorie de la calculabilité

Limites théoriques ?

Introduction

(7)

Limites pratiques ?

• Est-ce qu’il y a des problèmes qu’on ne peut pas résoudre de façon efficace ?

en présence de ressources (temps, espace) limites relatives

Introduction

(8)

8

En effet:

Il existe des problèmes qui n’ont pas une solution algorithmique

Il existe des problèmes qui n’ont pas de solution satisfaisante en terme d’efficacité

Introduction

(9)

Introduction

Limites théoriques ? Limites pratiques ?

Calculabilité Complexité

Limites

(10)

10

Intérêt d’étudier la calculabilité

(11)

Intérêt d’étudier la calculabilité

Quand un informaticien tente de résoudre un problème et qu’il n’arrive pas à avoir un algorithme.

Que fait-il ?

Il corrige quelques détails de l’algorithme,

Il ajoute de nouveaux cas …..etc.

Il cherche une autre méthode de résolution

Il se dit :

(12)

12

Intérêt d’étudier la calculabilité

Après avoir suivi ce cours:

Il se rendra peut être compte que le problème qu’il est censé résoudre n’a pas de solution algorithmique.

Il économise ses efforts dés le départ.

(13)

L’intérêt d’étudier la théorie de calculabilité

 Comprendre les limites de l’informatique:

Ne pas essayer de résoudre un problème qu’on ne peut pas résoudre

 Disposer des méthodes qui permettent de montrer que certains problèmes ne peuvent pas être résolus

Intérêt d’étudier la calculabilité

(14)

14

Quels problèmes sont solubles par un programme exécuté sur un ordinateur ?

Il faut préciser :

– La notion de problème,

– La notion de programme exécuté sur un ordinateur.

Intérêt d’étudier la calculabilité

(15)

Notion de problème

(16)

16

Problème est une question générique.

Notion de problème

Définition

(i.e. un problème contient des paramètres ou variables libres. Lorsqu’on attribue des valeurs à ces variables on obtient une instance du problème)

• Un problème existe indépendamment de toute solution ou de notion de programme pour le résoudre.

• Un problème peut avoir plusieurs solutions: Plusieurs algorithmes différents peuvent résoudre le même problème.

(17)

Des Exemples de Problèmes…

Notion de problème

(18)

18

Problème:

Trier un tableau de nombres

- Méthodes de tri basé sur la recherche du min (ou max) et des opérations de permutation

– C’est donc un problème « décidable »

Notion de problème

(19)

– Crible d’Eratosthène:

• Construire la liste des nombres premiers jusqu’à N:

• Écrire tous les entiers jusqu’à N, éliminer tous les multiples de 2, puis parmi les nombres qui restent, tous les multiples de 3 etc.

– C’est donc un problème « décidable »

Problème: Déterminer si un nombre est premier

Notion de problème

(20)

20

• La réponse négative à cette question constitue le désormais célèbre « dernier théorème de

Fermat »

• La question est restée ouverte jusqu’en 1996 (Andrew Wiles)

Problème: Déterminer si pour tout entier n>2,

il existe des entiers positifs a, b, c tels que:

a

n

+ b

n

= c

n

Notion de problème

(21)

Problème: Conjecture de Goldbach

• Tout nombre pair supérieur à 0 peut s’écrire comme la somme de deux nombres premiers

Exemple:

4 = 2+2, 6=3+3, 8=5+3, 10=5+5, 12=5+7 100=97+3 … etc.

Notion de problème

Non Décidable

(22)

22

Problème: Équations diophantiennes

(10ème problème de Hilbert 1900)

• Déterminer si une équation de la forme P=0, où P est un polynôme à coefficients entiers, possède des solutions entières

Exemples : x2 + y2 – 1 = 0, x2 – 991y2 – 1 = 0 etc…

Notion de problème

Ce problème n’est pas « décidable »

Démontré en 1970 par Yuri Matijasevic

 Il n’existe aucun algorithme qui indique, pour chaque équation diophantienne, si elle a ou non des solutions

(23)

Notion de problème

Problème: Les mots correspondants (1)

Etant donnés deux suites de mots, est-il possible de former un nouveau mot en concaténant une série de la première suite de façon telle que l’on retrouve le même mot en concaténant la même série de mots de la deuxième suite

Une instance du problème

1 2 3 4 5

abb a bab baba aba

bbab aa ab aa a

Groupe-1 Groupe-2

(24)

24

Notion de problème

Une autre instance du problème

1 2 3 4 5

bb a bab baba aba

bab aa ab aa a

Groupe-1 Groupe-2

Pas de Solution

En général le problème n’est pas soluble.

Problème: Les mots correspondants (2)

(25)

Problème: Déterminer si un programme P, pris au hasard, calcule une fonction donnée non nulle f(n) (n entier)

• C’est un problème « indécidable »

Il n’existe pas d’algorithme général tel qu’étant

Notion de problème

(26)

26

Problème: Déterminer si deux programmes calculent la même chose (sont équivalents)

• C’est un problème « indécidable »

Il n’existe pas d’algorithme général permettant de dire, étant donnés deux programmes P et P’

qu’ils font la même chose.

Notion de problème

(27)

Problème: Déterminer si un programme quelconque, sur une donnée représentée par un entier n, ne va pas boucler indéfiniment (Problème de terminaison)

• C’est un problème « indécidable »

Il n’existe pas d’algorithme général qui, étant

Notion de problème

(28)

28

Notion de programme

(29)

Notion de programme

Définition

Un programme (ou encore algorithme) est une procédure effective pour résoudre un problème (toutes les instances du problème)

• Une caractéristique importante d’une procédure effective est qu’elle contient exactement la marche à suivre pour résoudre le problème, et qu’aucune décision supplémentaire ne doit être prise lors de l’exécution de la

(30)

30

Exemple de Procédure non effective (1)

• Cette procédure n’est pas une procédure effective car on ne sait pas comment détecter les boucle infinie , ni les appels récursif infinis

Notion de programme

• Pour résoudre le problème de terminaison (l’arrêt) d’un programme

• Soit la procédure qui consiste à

« déterminer si le programme n’a pas de boucles ou de séquences d’appels récursifs infinies.”

(31)

Fonction Calcul (n: integer ):integer ; begin

if n = 1 then 1

else if pair(n) then Calcul (n ÷ 2) else Calcul(3 × n+1);

end.

Calcul(1) =1, Calcul (2)=1,

Calcul(3)=Calcul(10)=Calcul(5)=Calcul(16)=Calcul(8)=Calcul(4) Notion de programme

Exemple de Procédure non effective (1)

(32)

32

Notion de Décidabilité

(33)

Soit un prédicat P (une propriété), applicable à un entier n

P est décidable si et seulement si il existe une méthode (un algorithme) permettant de dire au bout d’un temps fini (i.e.: un nombre fini de pas Définition:

Décidabilité

Notion de Décidabilité

(34)

34

Notion de Décidabilité

Exemples:

Propriété P1(n) = « L’entier n est pair » P1 est décidable

Propriété P2(n) = « L’entier n a au moins un nombre premier qui lui est strictement supérieur »

P2 non décidable

(35)

Notion de Calculabilité

(36)

36

Soit f une fonction de N dans N,

f est calculable si et seulement si il existe une méthode de calcul (un algorithme) permettant pour tout entier n d’obtenir f(n) si nDom(f) et  si nDom(f)

Calculabilité

Définition:

Notion de Calculabilité

(37)

• Les opérations simples (addition, produit…) sont des fonctions « calculables »:

• parce que nous connaissons des algorithmes pour les effectuer, cela signifie que nous sommes capables de réduire ces tâches à des opérations encore plus simples, que nous combinons entre elles.

Exemples:

Notion de Calculabilité

(38)

38

5 6 9 8 + 3 9 6 4 ---

9 6 6 2 décomposé en :

faire 8 + 4 (table d’addition)

 2, retenue de 1

faire 9 + 6 + 1 (la retenue) etc.

Notion de Calculabilité

Exemple: addition entière

(39)

2- Noter aussi que nos algorithmes de calcul (addition, produit…) reposent sur certaines conventions (choix d’un mode de représentation

Notion de Calculabilité

Remarques:

1- De telles actions font appel à des opérations

encore plus simples

(40)

40

– Par exemple: prendre deux mots d’inégale longueur et chercher à savoir si le plus petit figure à l’intérieur du plus grand (pattern-matching)

– Vérifier si une expression contenant des parenthèses est correctement parenthésée

Notion de Calculabilité

Remarques:

3- Tout ne se ramène pas à des calculs sur les

entiers…

(41)

- Les couples d’entiers – Les suites d’entiers – Les entiers relatifs – Les fractions

– Les nombres réels

4- Dans la définition de calculabilité et de décidabilité la fonction f et le prédicat P sont définis sur N ,

Qu’en est-il pour les autres types de données ?

Notion de Calculabilité

Remarques:

(42)

42

Les définitions s’étendent aux prédicats et fonctions qui s’appliquent à des ensembles dénombrables

Notion de Calculabilité

(43)

Notion de dénombrabilité

(44)

44

Dénombrabilité

• Un ensemble dénombrable est un ensemble dont les

éléments peuvent être énumérés, ou numérotés : on peut les arranger de telle sorte qu’il y ait un premier, un

deuxième, un troisième, etc.

Définition:

Notion de Dénombrabilité

• L’ensemble  est considéré comme étant un ensemble dénombrable

(45)

Exemples

Notion de Dénombrabilité

• {0, 1, 2, 3, 4} est dénombrable

• {Ali, Sara, Mohamed, Brahim} est dénombrable (il suffit de choisir un classement arbitraire, par exemple par ordre d’âge)

• {xN; x<100} est dénombrable

• {0,1, 2, 3}{0, 1, 2, 3} est dénombrable

(46)

46

• L’ensemble des mots utilisant les lettres de l’alphabet Français et de longueur inférieure ou égale à 26 est dénombrable

Notion de Dénombrabilité

Exemples

• N est dénombrable

• P = {xN, x est pair} est infini dénombrable:

Il existe une bijection de P vers N (donc une numérotation possible des entiers pairs)

(47)

• Z (l’ensemble des entiers relatifs) est infini dénombrable…

Exemples

Notion de Dénombrabilité

on peut classer les relatifs comme suit:

0; -1; +1; -2; +2; -3; +3; -4; +4; -5 etc.

La fonction qui donne la numérotation est:

(48)

48

• NN est infini dénombrable

On peut classer les couples (m, n) comme suit:

(0,0);(1,0);(0,1);(0,2);(1,1);(2,0);(3,0);(2,1);

(1,2);(0,3);(0,4);(1,3);(2,2);(3,1);(4,0) etc.

• Q+ est infini dénombrable,

Q

-

est infini dénombrable,

• Q aussi

Exemples

Notion de Dénombrabilité

(49)

Les réels contiennent les rationnels et les irrationnels, ces derniers se caractérisent par le fait qu’ils n’ont aucune représentation sous forme d’un objet fini,

Donc… comment espérer avoir une réponse en un temps fini lorsqu’on part d’un objet qui n’a aucune représentation finie?

• R non dénombrable

Notion de Dénombrabilité

Exemples

(50)

50

Tout ensemble fini est dénombrable.

Un ensemble fini est dénombrable parce qu’il est toujours possible de définir une bijection de cet ensemble vers une partie finie de N (c’est-à-dire un ensemble de la forme {0,1,...n})

Remarques

• L’union de deux ensembles dénombrables est dénombrable.

• Le produit d’ensembles dénombrables est dénombrable. (ex: N

k

pour tout entier k)

Notion de Dénombrabilité

(51)

Notion de Codage

(52)

52

E N

Si f est bijective alors les éléments de E peuvent être codés par des entiers et vice versa

Soit E: un ensemble dénombrable

N: l’ensemble des entiers naturels

f: une fonction de numérotation de EN

codage

Notion de Codage

Remarque

(53)

Des chaînes aux nombres entiers

• Les chaînes de caractères (les mots sur un alphabet donné A) constituent un ensemble infini dénombrable:

• on peut donc associer à chaque chaîne un entier

• Cet entier peut être:

- le numéro d’ordre dans un classement quelconque des chaînes

Notion de Codage

(54)

54

Chaînes de caractères

codage

N

Notion de Codage

 Tout calcul sur les chaînes peut donc se ramener à un calcul sur des entiers

Des chaînes aux nombres entiers

(55)

Des nombres entiers aux chaînes

• Pour procéder à des calculs sur les nombres entiers, il faut leur donner une représentation sous forme de

chaîne (ou mot).

• Une représentation possible est une représentation dans le système binaire : sous forme de suite de 0 et 1

Notion de Codage

(56)

56

Remarque

• Finalement, tout algorithme et tout calcul se ramène à manipuler des suites de symboles

( donc des chaînes).

Notion de Codage

• Les instances d’un problème sont des symboles

(des chaînes)

(57)

• Si par exemple on a représenté les nombres entiers en binaire

• Le problème

« est-ce que n est pair? » se ramène au problème

« est-ce que la représentation de n appartient à Exemple-1

Notion de Codage

(58)

58

• Le problème

« est-ce qu’il existe des solutions entières de l’équation x

n

+y

n

=z

n

? »

se ramène au problème

« savoir si un certain ensemble de chaînes est non vide. »

Exemple-2

Notion de Codage

(59)

Formalisation des problèmes

(60)

60

Formalisation des problèmes

•Les instances d’un problème sont représentées par des chaînes de symboles (mots)

• Il est nécessaire de rappeler certaines définitions:

alphabet, mot, langage,…etc.

(61)

Alphabet

Un alphabet  est un ensemble fini de symboles.

Définition:

Exemples

• = {a, b, c}

• = {,, }

Formalisation des problèmes

(62)

62

• Un Mot sur un alphabet  est une séquence finie d’éléments de cet alphabet.

Définition:

Mot

Exemples

• a, abs, zt, bbbssnbnzzyyyyddtrra, grosseguindaille sont des mots sur l’alphabet = {a, . . . , z}.

• 4♠3●5  2 , 12765 ♠ 

sont des mots sur l’alphabet ={0, . . . , 8, ♠, ●,  }.

• Mot vide est désigné par  ou 

• Longueur du mot w est notée |w|

Formalisation des problèmes

(63)

Langages

Définition:

Exemples

Un langage est ensemble (fini ou non) de mots définis sur le même alphabet.

• {aab, aaaa, , a, b, abababababbbbbbbbbbbb}, { , aaa, a, bbb} et  sont des langages sur l’alphabet {a, b}.

•{0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100,101,111,…}

est le langage contenant tous les mots de l’alphabet {0, 1}.

Formalisation des problèmes

(64)

64

Opérations sur les langages

Soit deux langages L1 et L2.

• L1  L2 = {w /w  L1 ou w  L2}

• L1 · L2 = {w/ w = xy , x  L1 et y  L2}

• L1 = {w  * / w  L1}= * \ L1

• L1* = {w/  k  0 et w1, . . . ,wk  L1 et w = w1w2 . . .wk}

Union

Concaténation Complément

Fermeture itérative (fermeture de Kleene)

Formalisation des problèmes

(65)

Formalisation du Calcul

(66)

66

• Les problèmes se ramènent à des problèmes de reconnaissance de l’appartenance à un certain langage:

Formalisation du calcul

• Tout ensemble de chaînes est défini comme un langage

• Etant donné un langage L et un mot w

Est-ce que wL ?

(67)

Formalisation du calcul

Exemple

Problème P(n) : L’entier n est-il pair Se ramène au problème

wL

Où w: est la chaîne de caractères qui représente

(68)

68

• Il faut donc déterminer le plus petit ensemble possible d’opérations élémentaires,

suffisamment générales pour que le maximum de calculs (sur des entiers, des chaînes

quelconques etc.) puissent se ramener à des combinaisons de ces opérations.

Formalisation du calcul

Comment procéder à la reconnaissance de

mot d’un langage?

(69)

Plusieurs solutions

• Machines de Turing

• Automates

• Machines RAM

Formalisation du calcul

Modèles de Calcul

(70)

70

FIN

Références

Documents relatifs

Choisis pour x l’inconnue de ton choix et complète le tableau suivant avec des âges exprimés en fonction de x.. x désigne

Choisis pour x l’inconnue de ton choix et complète le tableau suivant avec des âges exprimés en fonction de xa. x

• « Pour un même nombre entier choisi, les résultats des programmes A et B sont soit tous les deux des entiers pairs, soit tous les deux des

5  La figure ci-dessous est composée des carrés A, B, C et D, on la complète par le rectangle E afin de former un grand

Si Nathalie donnait 2 timbres à Pierre, alors celui-ci en aurait deux fois plus qu’elle.. Si on triple sa longueur et que l’on double sa largeur, son périmètre augmente de

Si Nathalie donnait 2 timbres à Pierre, alors celui-ci en aurait deux fois plus qu’elle.. Si on triple sa longueur et que l’on double sa largeur, son périmètre augmente de

Pour chaque question, tu ne peux utiliser qu'une fois exactement les quatre nombres, l'addition, la soustraction et la multiplication.. Toutefois, tu peux placer

Pour chaque question, tu ne peux utiliser qu'une fois exactement les quatre nombres, l'addition, la soustraction et la multiplication.. Toutefois, tu peux placer