Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005.

Slides:



Advertisements
Présentations similaires
Qu’est-ce qu’une problématique ? (1)
Advertisements

Fonction « carré » Fonctions polynômes de degré 2
Dans cette partie Graphes Eulériens.
Algorithmes et structures de données avancés
Fonctions & procédures
Calcul géométrique avec des données incertaines
SuivantPrécédent ESSI 1 - Auto TS © Jean-Paul Stromboni (Mai 2000) Consolidation: tester les connaissances acquises 1 Etude de la commande du système.
Calculs de complexité d'algorithmes
Penser et dire le maintenant par Francis Wolff Séminaire Lidilem Grenoble 29 juin 2007.
Les Structures. Introduction : Imaginons que lon veuille afficher les notes dune classe délèves par ordre croissant avec les noms et prénoms de chaque.
Les Algorithmes de tri.
Les Structures de contrôles itératives
Cours d'algorithmique 11 / Intranet 1 9 janvier 2006 Cours dAlgorithmique N P - complétude.
I. Bases de logique , théorie des ensembles
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.
Logique et Raisonnement Scientifique
Logique et raisonnement scientifique
Logique et Raisonnement Scientifique A. Lecomte Gödel et lincomplétude.
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Séminaire Florin Périer Alain Gély LIMOS
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Chapitre VII :Commande par retour d’état
Semaine #1 INF155 par Frédérick Henri.
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Conception et analyse des algorithmes
COURS SUR LA THEORIE DES GRAPHES
Probabilités.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Introduction à l’algorithmique
Sommes.
IFT-2000: Structures de Données Introduction à lanalyse dalgorithmes Dominic Genest, 2009.
Théorie des graphes Un peu de vocabulaire.
Etude dune bibliothèque: Permutations sur les listes.
Ensembles Définition d’un ensemble. Opérations sur les ensembles. Accès, suppression et ajout d’éléments d’un ensemble. Fonctions permettant de manipuler.
Introduction à l’algorithmique
Périodicité, Apériodicité, Universalité et autres petits problèmes…
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
IFT Complexité et NP-complétude
IFT Au delà de NP: hiérarchie polynomiale, EXP, NEXP.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Conception et analyse des algorithmes Les algorithmes probabilistes
Dénombrements.
Programmation logique Le Langage PROLOG
Indécidabilité.
Programmation linéaire en nombres entiers : les méthodes de troncature
D.E ZEGOUR Ecole Supérieure d’Informatique
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.
Introduction à la Calculabilité Cours LFI2 (Master Académique)
CHAPITRE 3: LES NOMBRES.
D.E ZEGOUR Ecole Supérieure d’Informatique
TAI Nombres et structures
Les expressions algébriques
Programmation linéaire en nombres entiers
Méthodes de tri.
Structures de contrôle
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.
Programmation fonctionnelle Preuve
Fonction carré.
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Relation Bezout: au+bv= ab Calcul de u et v
Pour les boucles FOR on a fait intervenir la boucles TANT QUE équivalentes dont on connaît calculer le temps d’exécution. Toutes le procédures de comptage.
1.  On souhaite comparer deux traitements dans le cadre d’un essai randomisé sur les lombosciatiques :  corticoïdes par infiltrations  placebo  Critère.
Leçon Nombres entiers et rationnels
Objets et Actions Élémentaires.
L’INFINI UNE HISTOIRE SANS FIN
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
Transcription de la présentation:

Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005

who is this man?

Alan TURING ( ) daprès son biographe: founder of computer science, mathematician, philosopher, codebreaker, strange visionary and a gay man before his time

et lui? David HILBERT ( ) le plus grand mathématicien de son siècle?

le 10 ème problème de Hilbert Does there exist a universal algorithm for solving Diophantine equations? (A Diophantine equation is an equation in which only integer solutions are allowed).

Équations diophantiennes 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 : x 2 + y 2 – 1 = 0, x 2 – 991y 2 – 1 = 0 etc…

Ce problème nest pas « décidable » Démontré en 1970 par Yuri Matijasevic

Quest-ce que cela signifie? Il nexiste aucun algorithme qui indique, pour chaque équation diophantienne, si elle a ou non des solutions

Cas de linformatique Déterminer si un programme P, pris au hasard, calcule une fonction donnée non nulle f(n) (n entier) Déterminer si deux programmes calculent la même chose (sont équivalents) Déterminer si un programme quelconque, sur une donnée représentée par un entier n, ne va pas boucler indéfiniment

Ce sont des problèmes « indécidables »

Il nexiste pas dalgorithme 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 Il nexiste pas dalgorithme général permettant de dire, étant donnés deux programmes P et P quils font la même chose, Il nexiste pas dalgorithme 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 lentrée n

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 dun temps fini (ie: un nombre fini de pas de calcul) si P(n) est vrai ou si P(n) est faux

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 dobtenir f(n) si n Dom(f) et si n Dom(f)

Remarque 1 Est-on limité aux prédicats sur N et aux fonctions de N dans N? –Ne peut-on pas aussi se poser des questions ou faire des calculs sur des couples dentiers? Des suites dentiers? Des entiers relatifs? Des fractions? Des nombres réels? –Ne peut-on pas aussi se poser des questions ou faire des calculs sur des chaînes de caractères? Des arbres? Des graphes?

Réponse Oui, bien sûr… tant quon se pose des questions ou quon calcule sur des objets énumérables (ou numérotables) cest-à-dire: qui sont éléments densembles dénombrables

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 quil y ait un premier, un deuxième, un troisième, etc. On rajoute aussi aux ensembles dénombrables… (par sympathie pour lui)

Tout ensemble fini est dénombrable {0, 1, 2, 3, 4} est évidemment dénombrable {paul, marie, lucien, jean} est dénombrable (il suffit de choisir un classement arbitraire, par exemple par ordre dâge) {« paul », « marie », « lucien », « jean »} est dénombrable (choisir par exemple lordre alphabétique)

{x N; x<100} est dénombrable {0,1, 2, 3} {0, 1, 2, 3} est dénombrable (classer les couples dans lordre lexicographique, avec 0<1<2<3) {0, 1, 2, 3} n est dénombrable pour tout n (même raison) Lensemble des mots utilisant les lettres de lalphabet latin et de longueur inférieure ou égale à 26 est dénombrable

Un ensemble fini est dénombrable parce quil est toujours possible de définir une bijection de cet ensemble vers une partie finie de N (cest-à-dire un ensemble de la forme [0..n])

Infini dénombrable N est infini 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) I = {x N, x est impair} est infini dénombrable

Remarque 2 Un ensemble infini dénombrable peut très bien être une partie stricte dun autre ensemble infini dénombrable, –Ex: P N, I N Cest une caractérisation de linfini : un ensemble infini, cest un ensemble qui peut être mis en bijection avec une partie stricte de lui-même (cest le cas de N, mais aussi de P, penser aux multiples de 4 etc.)

Z (lensemble 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

N N est infini dénombrable voir en exercices

Et aussi: –Lunion dune famille dénombrable densembles dénombrables est dénombrable, –Le produit dun nombre fini densembles dénombrables est dénombrable –(exercices)

Donc sont aussi infinis dénombrables; –N k pour tout entier k – (lensemble de toutes les suites finies dentiers)

Mais R nest pas dénombrable! Raisonnons seulement sur une partie stricte de R : lintervalle [0, 1[ Les éléments de cet intervalle sont représentés par des suites infinies dentiers entre 0 et 9 (dans le système décimal) –Certaines de ces suites sont nulles à partir dun certain rang, dautres non –On peut donc identifier [0, 1[ à lensemble de toutes les suites (finies ou infinies) dentiers compris entre 0 et 9

Si cet ensemble était dénombrable, on pourrait les classer (avec une première, une deuxième etc.) Ainsi la suite x 11 x 12 x 13 x 14 … x 1p …serait classée première et ainsi de suite…. x 11 x 12 x 13 x 14 … x 1p … x 21 x 22 x 23 x 24 … x 2p … n°3x 31 x 32 x 33 x 34 … x 3p … x 41 x 42 x 43 x 44 … x 4p … n°5x 51 x 52 x 53 x 54 … x 5p … n°6x 61 x 62 x 63 x 64 … x 6p … n°kx k1 x k2 x k3 x k4 … x kp … n°1 n°2 n°4

On pourrait alors modifier cette matrice infinie de la manière suivante: A chaque élément de la diagonale, rajouter 1, selon la règle: 0+1=1, 1+1=2, … 8+1=9 et 9+1=0 x x 12 x 13 x 14 … x 1p … x 21 x x 23 x 24 … x 2p … n°3x 31 x 32 x x 34 … x 3p … x 41 x 42 x 43 x … x 4p … n°5x 51 x 52 x 53 x 54 … x 5p … n°6x 61 x 62 x 63 x 64 … x 6p … n°kx k1 x k2 x k3 x k4 … x kp … n°1 n°2 n°4

Alors considérons la suite infinie qui se trouve sur la diagonale: –Elle ne peut être égale à la première car elle sen distingue au moins par le premier élément –Elle ne peut être égale à la deuxième car elle sen distingue au moins par le deuxième élément –Elle ne peut être égale à la troisième car elle sen distingue au moins par le troisième élément –Et ainsi de suite… –Elle ne peut donc être égale à aucune des suites contenues dans ce tableau

Donc, quel que soit le classement choisi des suites infinies de 0 … 9, il y en a toujours une qui échappe à ce classement! Cest donc quil est impossible de les numéroter… Tout simplement parce quelles ne forment pas un ensemble dénombrable

Ceci est connu comme largument diagonal de Cantor

Puissance du continu Linfini de R est strictement plus grand que celui de N, on lappelle « la puissance du continu »

On démontrera de même que (N) nest pas dénombrable, autrement dit, là encore, linfini de N est strictement inférieur à celui de lensemble de ses parties Card(N) < Card( (N)) (Théorème de Cantor)

Des chaînes aux nombres entiers Les chaînes de caractères (quon appellera simplement les mots sur un alphabet donné A) constituent un ensemble infini dénombrable, on peut donc leur associer à chacune un entier: soit leur numéro dordre dans un classement quelconque, soit un numéro calculé selon un code attribuant un chiffre à chaque caractère (cf. code ASCII), Tout calcul sur les chaînes peut donc se ramener à un calcul sur des entiers

Des nombres entiers aux chaînes Mais pour calculer sur des nombres entiers, il faut leur donner une représentation… sous forme de chaîne (ou de mot)! Par exemple, dans le système binaire, sous forme de suites de 0 et de 1 Donc les calculs sur des entiers se ramènent à des calculs sur des chaînes!

Problèmes de reconnaissance Finalement, toute approche algorithmique de problèmes ou de calculs se ramène à manipuler des suites de symboles, donc des chaînes, 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 à lensemble des représentations dentiers pairs? » Le problème « est-ce quil existe des solutions entières de léquation x n +y n =z n ? » se ramène au problème de savoir si un certain ensemble de chaînes est non vide.

Tout ensemble de chaînes étant défini comme un langage, ces problèmes se ramènent à des problèmes de reconnaissance de lappartenance à un certain langage Ceci explique que la notion de langage va être centrale dans ce cours, et que le problème fondamental traité est finalement: –Étant donné un langage L et un mot w, Est-ce que w L ?

Ensembles récursifs Un ensemble E est dit récursif si et seulement si le problème « est-ce que x E ?» est décidable, Noter que même si pour E donné, le problème «x E ?» est décidable, selon le choix de E, il pourra être plus ou moins facile à résoudre, –Problèmes de complexité algorithmique

Définir une « méthode de calcul » Venons-en au deuxième objectif : définir précisément ce quon entend par méthode de calcul ou algorithme

Décomposition en opérations élémentaires Intuitivement, lorsque nous qualifions des opérations simples (addition, produit…) de « calculables », cest 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.

Le problème de la définition de ce que lon entend par « méthode de calcul » est donc celui de la détermination du plus petit ensemble possible dopé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 Machines de Turing (cours suivant) Théorie des fonctions récursives (Church) Lambda – calcul Machines RAM …

Thèse de Church-Turing De façon étonnante, toutes les solutions proposées à ce problème se sont avérées équivalentes Autrement dit: une fonction calculable au sens des machines de Turing est récursive et réciproquement, ou bien peut se ramener à un calcul au sein du -calcul, ou bien peut être réalisée sur une machine RAM etc. et réciproquement une fonction implémentable sur une machine RAM peut être réalisée par une machine deTuring etc. Autrement dit, on formule la thèse selon laquelle ces définitions permettent de cerner la notion de fonction calculable