Introduction à la Calculabilité Cours LFI2 (Master Académique)

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
Tris.
Licence pro MPCQ : Cours
Algorithmes et structures de données avancés
Fonctions & procédures
Calcul géométrique avec des données incertaines
Calculs de complexité d'algorithmes
LE CALCUL LITTÉRAL AU COLLÈGE
Les identités remarquables
Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005.
INTRODUCTION.
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Programmes de calculs en 3ème
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
Probabilités.
Cours de physique générale I Ph 11
1.2 COMPOSANTES DES VECTEURS
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Titre : Implémentation des éléments finis sous Matlab
Décomposer un nombre en facteurs premiers.
Tableaux de distributions
Tableaux de distributions
LES NOMBRES PREMIERS ET COMPOSÉS
ARITHMETIQUE : NOMBRES PREMIERS, PGCD
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
La droite dans R2 Montage préparé par : André Ross
1 INETOP
Introduction à l’algorithmique
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
1.1 LES VECTEURS GÉOMÉTRIQUES
Factorisation de trinômes
Chapitre 3 Syntaxe et sémantique.
Titre : Implémentation des éléments finis en Matlab
Inéquations du premier degré à une inconnue
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Transformations linéaires et sous-espaces associés
Programmation linéaire en nombres entiers : les méthodes de troncature
IFT Complexité et NP-complétude Chapitre 0 Rappels.
ASI 3 Méthodes numériques pour l’ingénieur
Pour en finir avec l’infini
Mise en forme en Mathématiques
Un peu de maths (et d’info)
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Equation différentielle de 2ème ordre
Eléments d’arithmétique dans l’ensemble des naturels
Arithmétique Classe 3e.
Institut de Formation aux Métiers de l’industrie Automobile.
LES PILES ET FILES.
Suites numériques Définitions.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
ANOVA : introduction.
INTRODUCTION.
CHAPITRE 3: LES NOMBRES.
Inéquations du premier degré à une inconnue
Les Matrices Une matrice est un arrangement rectangulaire de nombres disposés en rangées et colonnes T = T est une matrice de 3.
Chapitre 3 :Algèbre de Boole
TAI DE MATHEMATIQUE Michaël Gallego, Alexis Yvin, Bruno Gabriel Promo 2013 Janvier 2009.
Rappels de statistiques descriptives
Université de Sherbrooke
Partie II: Temps et évolution Energie et mouvements des particules
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Transcription de la présentation:

Introduction à la Calculabilité Cours LFI2 (Master Académique) 2007/2008

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

Introduction

Chaque science a ses limites théoriques& pratiques Introduction 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 ?

A la recherche des limites de l’informatique Introduction A la recherche des limites de l’informatique Deux Questions principales se posent: Limites théoriques ? Limites pratiques ?

 Théorie de la calculabilité Introduction Limites théoriques ? • 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é

 Théorie de la complexité Introduction 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  Théorie de la complexité

Il existe des problèmes qui n’ont pas une solution algorithmique Introduction 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é

Complexité Calculabilité Limites Limites théoriques ? Introduction Limites Limites théoriques ? Limites pratiques ? Complexité Calculabilité Dans ce cours on s’intéresse seulement à la théorie de la Calculabilité

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

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 se dit: « je vais y arriver , j’essaye encore» Il cherche une autre méthode de résolution Il se dit : « j’ai mal démarré, je recommence à zéro »

Après avoir suivi ce cours: 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.

Comprendre les limites de l’informatique: Intérêt d’étudier la calculabilité 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 Obtenir des résultats indépendants de la technologie employée pour construire les ordinateurs.

– La notion de programme exécuté sur un ordinateur. Intérêt d’étudier la calculabilité 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.

Notion de problème

Problème est une question générique. Notion de problème Définition Problème est une question générique. (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.

Des Exemples de Problèmes… Notion de problème Des Exemples de Problèmes…

Problème: Trier un tableau de nombres Notion de problème 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 »

Problème: Déterminer si un nombre est premier Notion de problème Problème: Déterminer si un nombre est premier 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 pour tout entier n>2, Notion de problème Problème: Déterminer si pour tout entier n>2, il existe des entiers positifs a, b, c tels que: an + bn = cn 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: Conjecture de Goldbach Notion de problème 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. Non Décidable

Problème: Équations diophantiennes (10ème problème de Hilbert 1900) Notion de problème 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… 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

Problème: Les mots correspondants (1) 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 Groupe-1 Groupe-2 Oui il y a la série: 2 1 1 4 1 5 a abb abb baba abb aba = aabbabbbabaabbaba aa bbab bbab aa bbab a = aabbabbbabaabbaba

Problème: Les mots correspondants (2) Notion de problème Problème: Les mots correspondants (2) Une autre instance du problème 1 2 3 4 5 bb a bab baba aba aa ab Groupe-1 Groupe-2 Pas de Solution En général le problème n’est pas soluble.

C’est un problème « indécidable » Notion de problème 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 donné un programme P et une fonction f de N dans N, il soit capable de dire si P calcule effectivement f

C’est un problème « indécidable » Notion de problème 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.

C’est un problème « indécidable » Notion de problème 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 donné un programme P et un entier n, permette de dire que P ne va pas boucler indéfiniment sur l’entrée n

Notion de programme

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 procédure. Une procédure effective doit se terminer pour toutes les instances du problème

Exemple de Procédure non effective (1) Notion de programme Exemple de Procédure non effective (1) 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.” 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

Exemple de Procédure non effective (1) Notion de programme Exemple de Procédure non effective (1) 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) = Calcul(2)=Calcul(1)=1 Calcul(7)=Calcul(22)=Calcul(11)=Calcul(34)=Calcul(17) = Calcul(3*17+1) ……

Notion de Décidabilité

Décidabilité Définition: Notion de Décidabilité Décidabilité Définition: 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 de calcul) si P(n) est vrai ou si P(n) est faux

Exemples: Propriété P1(n) = « L’entier n est pair » P1 est décidable 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

Notion de Calculabilité

Calculabilité Définition: Soit f une fonction de N dans N, Notion de Calculabilité Calculabilité Définition: 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)

Notion de Calculabilité Exemples: 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.

Exemple: addition entière Notion de Calculabilité Exemple: addition entière 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.

1- De telles actions font appel à des opérations encore plus simples Notion de Calculabilité Remarques: 1- De telles actions font appel à des opérations encore plus simples 2- Noter aussi que nos algorithmes de calcul (addition, produit…) reposent sur certaines conventions (choix d’un mode de représentation des nombres, choix d’une base…) et sur une définition implicite des opérations

3- Tout ne se ramène pas à des calculs sur les entiers… Notion de Calculabilité Remarques: 3- Tout ne se ramène pas à des calculs sur les entiers… 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

- Les couples d’entiers Notion de Calculabilité Remarques: 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 ? - Les couples d’entiers Les suites d’entiers Les entiers relatifs Les fractions Les nombres réels Les chaînes de caractères Les arbres ….

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

Notion de dénombrabilité

Dénombrabilité Définition: Notion de Dénombrabilité Dénombrabilité Définition: 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. L’ensemble  est considéré comme étant un ensemble dénombrable

Exemples {0, 1, 2, 3, 4} est dénombrable Notion de Dénombrabilité Exemples {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 (classer les couples dans l’ordre lexicographique, avec 0<1<2<3) {0, 1, 2, 3}n est dénombrable pour tout n (même raison)

Notion de Dénombrabilité Exemples L’ensemble des mots utilisant les lettres de l’alphabet Français et de longueur inférieure ou égale à 26 est dénombrable 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)

Z (l’ensemble des entiers relatifs) est infini dénombrable… Notion de Dénombrabilité Exemples Z (l’ensemble des entiers relatifs) est infini dénombrable… 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: f(0) = 1 f(-n) = 2n (n0) f(+n) = 2n+1

Q- est infini dénombrable, Notion de Dénombrabilité Exemples 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 R non dénombrable Notion de Dénombrabilité Exemples R non dénombrable 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?

Tout ensemble fini est dénombrable. Notion de Dénombrabilité Remarques 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}) L’union de deux ensembles dénombrables est dénombrable. Le produit d’ensembles dénombrables est dénombrable. (ex: Nk pour tout entier k)

Notion de Codage

Soit E: un ensemble dénombrable N: l’ensemble des entiers naturels Notion de Codage Remarque Soit E: un ensemble dénombrable N: l’ensemble des entiers naturels f: une fonction de numérotation de EN Si f est bijective alors les éléments de E peuvent être codés par des entiers et vice versa N E codage

Des chaînes aux nombres entiers Notion de Codage 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 - Le numéro calculé selon un code attribuant un chiffre à chaque caractère (cf. code ASCII),….

Des chaînes aux nombres entiers Notion de Codage Des chaînes aux nombres entiers Chaînes de caractères N codage  Tout calcul sur les chaînes peut donc se ramener à un calcul sur des entiers

Des nombres entiers aux chaînes Notion de Codage 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 Donc les calculs sur des entiers se ramènent à des calculs sur des chaînes.

Les instances d’un problème sont des symboles (des chaînes) Notion de Codage Remarque Finalement, tout algorithme et tout calcul se ramène à manipuler des suites de symboles ( donc des chaînes). Les instances d’un problème sont des symboles (des chaînes)

Si par exemple on a représenté les nombres entiers en binaire Notion de Codage Exemple-1 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 à l’ensemble des représentations des entiers pairs? »

« est-ce qu’il existe des solutions entières de l’équation xn+yn=zn? » Notion de Codage Exemple-2 Le problème « est-ce qu’il existe des solutions entières de l’équation xn+yn=zn? » se ramène au problème « savoir si un certain ensemble de chaînes est non vide. »

Formalisation des problèmes

Il est nécessaire de rappeler certaines définitions: 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.

Alphabet Définition: Un alphabet  est un ensemble fini de symboles. Formalisation des problèmes Alphabet Définition: Un alphabet  est un ensemble fini de symboles. Exemples • = {a, b, c} • = {,, } • = {0,1, 2, 3,4,5,6,7,8,9} • = {♠,♣,♥,●}

Formalisation des problèmes Mot Définition: Un Mot sur un alphabet  est une séquence finie d’éléments de cet alphabet. Mot vide est désigné par  ou  Longueur du mot w est notée |w| 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, ♠, ●,  }.

Formalisation des problèmes Langages Définition: Un langage est ensemble (fini ou non) de mots définis sur le même alphabet. Exemples • {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}. • L’ensemble des mots représentant les programmes C qui s’arrêtent toujours. Remarque:   {}

Opérations sur les langages Formalisation des problèmes Opérations sur les langages Soit deux langages L1 et L2. Union • L1  L2 = {w /w  L1 ou w  L2} Concaténation L1 · L2 = {w/ w = xy , x  L1 et y  L2} Complément L1 = {w  * / w  L1}= * \ L1 Fermeture itérative (fermeture de Kleene) • L1* = {w/  k  0 et w1, . . . ,wk  L1 et w = w1w2 . . .wk}

Formalisation du Calcul

Tout ensemble de chaînes est défini comme un langage Formalisation du calcul Tout ensemble de chaînes est défini comme un langage Les problèmes se ramènent à des problèmes de reconnaissance de l’appartenance à un certain langage: Etant donné un langage L et un mot w Est-ce que wL ?

Problème P(n) : L’entier n est-il pair 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 l’entier n L: langage dont les éléments sont les chaînes représentant tous les entiers pairs

Comment procéder à la reconnaissance de mot d’un langage? Formalisation du calcul Comment procéder à la reconnaissance de mot d’un langage? 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.

Plusieurs solutions Modèles de Calcul Formalisation du calcul Plusieurs solutions Modèles de Calcul Machines de Turing Automates Machines RAM fonctions récursives (Church) Lambda – calcul …

FIN