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.

Slides:



Advertisements
Présentations similaires
L-System et modélisation de plantes…
Advertisements

Algorithmes et structures de données avancées Cours 7
Sémantique des déclarations pour le langage Z minimal
« 1.5. Les fonctions logiques »
Algorithmes et structures de données avancés
Algorithmique Résume.
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Cours dinformatique théorique INF f5 Alain Lecomte novembre 2005.
Séminaire Florin Périer Alain Gély LIMOS
Chap 1 Grammaires et dérivations.
Les bases de l’Algorithmique
IFT313 Introduction aux langages formels
Conception et analyse des algorithmes
Partie 1 Etude de l'existant
Introduction à l’algorithmique
Analyse lexicale Généralités Expressions rationnelles Automates finis
Programmation logique Logique des prédicats du premier ordre
Notions de base de la théorie des langages
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°3.
Algorithmique et Programmation
1 Exercice : longueur d’un mot est-elle paire ?  Test fonctionnel  Quel ensemble de valeur choisir / spécification  Test structurel  Soit le code d’un.
CHAINE DE CARACTERES : Définition :
Rappels de logique des prédicats du 1er ordre
Expressions régulières et hash tables
Semaine #1 INF130 par Frédérick Henri.
IFT Complexité et NP-complétude
IFT Chapitre 1 Classes de complexité fondamentales:
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
CSI3525: Concepts des Languages de Programmation
Algorithmes d ’approximation
Conception et analyse des algorithmes Les algorithmes probabilistes
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
Programmation logique Le Langage PROLOG
Programmation non procédurale Le projet ECOLE 2000
Indécidabilité.
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Conception et analyse des algorithmes
Jacques Nicolas INRIA /IRISA Rennes
Expressions régulières et hash tables
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
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.
D.E ZEGOUR Ecole Supérieure d’Informatique
Les machines de Turing Lionel Blavy Sébastien Giraud Fabien Tricoire
Algorithmique et programmation (1)‏
Algorithmes et Programmation
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Programmation linéaire en nombres entiers
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
La programmation.
Le langage Racket (Lisp)
Introduction à l’algèbre Séminaires démultipliés 2013 Jour 2.
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Programmation fonctionnelle Preuve
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Chap 1 Grammaires et dérivations.
Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
LOGIQUE ET PROGRAMMATION LOGIQUE
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.
Complexité des Problèmes Combinatoires Module IAD/RP/RO/Complexité Philippe Chrétienne.
Transcription de la présentation:

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 formes structurelles pouvant être analysées par un automate Grammaire contexte free Notation très importante pour décrire la syntaxe des langages de programmation pouvant être utilisée par les compilateurs

Problèmes de décision Concepts de base Automate fini Ensemble d’états et de règles de transition permettant de vérifier l’appartenance d’une chaine donnée à un langage donné. Machine de Turing Automates modélisant la puissance des machines réelles. Permettent d’étudier la décidabilité des programmes : ce qui peut être fait par un ordinateur et ce qui ne peut l’être. Permettent aussi de distinguer les problèmes possibles ( polynomiales) et non possibles ( exponentielles)

Problèmes de décision Concepts de base Preuve déductive Suite d’énoncés E1, E2,.., En Ei soit donné vrai soit démontré Preuve de l’énoncé If H Then C Partir de l’hypothèse H et essayer de prouver C Preuve de l’énoncé H If and only if C Partir de H et essayer de prouver C Partir de C et essayer de prouver H

Problèmes de décision Concepts de base Preuve par contraposé Pour prouver "If H then C", il suffit de prouver "If not C Then Not H" Preuve par contradiction Pour prouver "If H then C", il suffit de prouver "If H and Not C" Preuve par Contre exemple Pour montrer qu’un énoncé est faux, il suffit de trouver un contre exemple Preuve par Induction (récurrence) L’énoncé à un paramètre n. vérifier que l’énoncé est vrai pour les premières valeurs de n. Ensuite supposer que l’ énoncé est vrai pour n. Si on arrive à montrer que l’énoncer reste vrai pour n+1, alors l’énoncé de départ est vrai

Problèmes de décision Alphabet et chaine Un alphabet est un ensemble fini non vide de symboles. Exemple d’alphabets Σ = { 0, 1 } : alphabet binaire Σ = {a, b,.., z} Chaine (ou mot) : séquence finie de symboles choisis dans un alphabet est une chaine utilisant l’alphabet binaire Chaine vide (  ) : O occurrence de symbole Longueur d’une chaine |w| : nombre de symboles formant la chaine w |  | = 0 |10010| = 5 Concaténation de chaines Si x= 011 et y = 11 alors xy = x  =  x = x

Problèmes de décision Puissance d’un alphabet (Fermeture ) Σ k : ensemble des chaines de longueur k sur l’alphabet Σ Σ 0 = {  } quelque soit l’alphabet Σ Si Σ= {0, 1}, Alors Σ 1 = { 0, 1 }, Σ 2 = {01, 00, 10, 11}, Σ 3 = { 000, 001, …} Ne pas confondre Σ et Σ 1 Σ * : ensemble de toutes les chaines que l’on peut former avec l’alphabet Σ Σ * = Σ 0 + Σ 1 + Σ 2 + … Σ + = Σ 1 + Σ 2 + …

Problèmes de décision Langages Tout sous ensemble L de Σ * est appelé langage. L  Σ * Il n’inclut pas forcément tous les symboles de Σ. Ne pas confondre langage (tel que défini) et langage généré par une grammaire Langage de toutes les chaines composées de n "0" suivi de n "1" pour n >= 0 { , 01, 0011, , …} Langage de toutes les chaines formées avec le même nombre de 0 et de 1 Langage de toutes les chaines dont la valeur est un nombre premier Σ * est un langage { } est un langage {  } est un langage contenant uniquement la chaine vide

Problèmes de décision Problème Question de savoir si une chaine donnée appartient ou non à un langage donné (Théorie des automates) Si Σ est un alphabet et L un langage dans Σ, alors le problème L est : Etant donnée une chaine w de Σ *, décider si w est ou non dans L. Langage = Problème de décision On utilise l’un ou l’autre selon le contexte. Si on s’intéresse uniquement par exemple aux chaines de la forme {0 n 1 n | n >= 0 }, on utilise le terme langage. Si on s’intéresse à la sémantique des chaines (une chaine peut représenter un graphe, une expression logique, un nombre) l’ensemble des chaines est vu comme un problème

Problèmes de décision Problème = Calcul Problème peut ne pas être vu comme une simple décision mais plutôt comme un calcul ou une transformation. Exemple : rôle du compilateur : étant donné une chaine ( un programme), le compilateur décide l’appartenance ou pas de la chaine au langage. Cependant le compilateur fait beaucoup plus : sémantique voir génération de code Problème : combien de temps et d’espace va-t-il utiliser ? Il faudra donc les mesurer dans les cas les plus favorables et défavorables Répondre simplement par oui ou non est aussi difficile que résoudre le problème entier.

Problèmes de décision Exemple : Test de primalité Le problème permettant de tester les nombres premiers peut être exprimé par le langage Lp composé de toutes les chaines de bits dont les valeurs sont des nombres premiers. Etant donnée une chaine quelconque de bits, le problème répond par oui si la valeur de la chaine est un nombre premier, non sinon. Si chaine = 11 c’est facile à décider Si chaine la décision n’est pas évidente : il faudra tenir compte des ressources disponibles : Temps CPU, Espace

Problèmes de décision Décidabilité On ne peut pas trouver un programme général (Testeur) qui a en entrée un problème ( Programme) et des données I et qui répond par oui si le programme P admet une solution et répond par non s’il n’admet pas de solutions. Si pour un problème P et des données I, on peut trouver un programme qui répond par oui si P admet une solution et par non si P n’admet pas de solution, on dit que le problème P est décidable. Un problème est dit indécidable s’il ne peut être résolu par un ordinateur.