• Aucun résultat trouvé

Automates Introduction

N/A
N/A
Protected

Academic year: 2022

Partager "Automates Introduction"

Copied!
25
0
0

Texte intégral

(1)

Automates Introduction

Damien Nouvel

(2)

Introduction

Organisation du cours

Introduction : 2h cours

Théorie des langages : 4h cours / TD

Automates à états finis : 4h cours / TD, 2h TP

Propriété des langages réguliers : 2h cours / TD

Expressions régulières : 4h cours / TD, 2h TP

Projet : 2h cours / TD, 2h TP

(3)

Introduction Plan

Qu'est-ce qu'un automate ?

Qu'est-ce qu'un langage ?

Lien entre les automates et les langages

L'ordinateur, automate à états déterministe

(4)

Introduction Plan

Qu'est-ce qu'un automate ?

Qu'est-ce qu'un langage ?

Lien entre les automates et les langages

L'ordinateur, automate à états déterministe

(5)

Introduction

Qu'est-ce qu'un automate ?

Automate :

Du grec « ἀυτοματ́ον » : qui se meut par soi-même, qui imite les mouvements...

« Appareil renfermant des dispositifs mécaniques ou

électriques lui permettant d'exécuter à la commande un ensemble d'action déterminées »

Horloge, orgue de barbarie, machine à calculer, machines de cryptographie, calculettes, ordinateur, téléphone, MP3...

(6)

Introduction

Qu'est-ce qu'un automate ?

Automate en informatique :

Dans ce cours, assez éloigné de l'idée de « robot » (même si en dernière analyse, c'est la même chose)

Principe de la « séquence » : suite d'actions...

Principe de l'état : change selon l'endroit où l'on est au sein de la séquence

Principe de la transition : selon la séquence et l'état, une décision est prise : actions à faire et nouvel état atteint

Par exemple, l'ascenseur est un automate :

RdC 1 2 3

-1

(7)

Introduction

Qu'est-ce qu'un automate ?

Autre exemple : le distributeur de billet de train :

Demander destination

Dos sier lép

ayé

Changement billet

Horaire aller

Payement Horaire

retour

Payem ent

Saisir code

Imprimer billet(s) Dem

ander ancie

ns billets

Entrer

CB / no dossier

(8)

Introduction

Qu'est-ce qu'un automate ?

Un automate se définit par :

Les entrées : ce que l'automate « consomme »

Les sorties : les actions / décisions de l'automate

L'état interne parmi une liste d'états possibles

Les transitions : l'automate bascule d'un état vers un autre

Machine de Turing (1936) :

Bande / ruban de symboles

Tête de lecture / écriture qui se déplace

Registre d'état (dont celui de départ)

Table de transitions, fonction :

(état, symbole lu) → (état, symbole écrit, déplacement)

(9)

Introduction Plan

Qu'est-ce qu'un automate ?

Qu'est-ce qu'un langage ?

Lien entre les automates et les langages

L'ordinateur, automate à états déterministe

(10)

Introduction

Qu'est-ce qu'un langage ?

Un nombre considérable de langages :

Français, anglais, chinois, arabe, portugais, serbe...

Langue des signes, braille, hiéroglypes, Morse...

Ada, Pascal, Cobol, C++, Java, Python, HTML...

SMS, novlangue, verlan...

Origine du langage :

Parlé (≈3000) : ≈ -200 000 ans, homo sapiens ?

Ecrit (≈350) : ≈ -6 000 ans, Uruk ?

Informatique : 1951, A0 (Hopper, 1er compilé)

Un langage est (plus ou moins) structuré : phrases,

mots (noms, verbes...), lettres (alphabet, chiffres...)

(11)

Introduction

Qu'est-ce qu'un langage ?

Le langage, outil de communication qui met en jeu :

Émission de messages (gestes, cordes vocale, stylo, clavier, braille) de manière intelligible par le locuteur

Réception des messages (vision, ouïe, toucher, écrans), interprétation et compréhension par l'interlocuteur

Sur un canal (média), plus ou moins bruité, qui permet de transporter l'information (le message)

Tu as vu les L1 aujourd'hui ?

Émetteur Message Récepteur

Canal

(12)

Introduction

Qu'est-ce qu'un langage ?

Les supports (canaux) pour la communication :

Air (voix) :

Volatile, sonore

Papier (écriture) :

Analogique, non formel

Sémaphore, télégraphe :

Volatile, visuel

Disque (Vynile, CD...) :

Encodés (appareil)

Signal électromagnétique :

Aujourd'hui numériques

Signal radioélectrique

(13)

Introduction

Qu'est-ce qu'un langage ?

Pour que le langage soit fonctionnel, il faut que :

L'émetteur encode correctement le message

Le canal transporte le message sans dégradation

Le récepteur décode correctement le message

L'émetteur et le récepteur doivent se mettre d'accord sur le format du message, la manière dont il est codé :

Règles, normes : spécification formelle (informatique)

Usage, convention sociale : implicite et évolutif (naturel)

Il faut déterminer si (et en quoi) un message est

acceptable :

(14)

Introduction

Qu'est-ce qu'un langage ?

La langue comme système de symboles :

Système : « totalité organisée, faite d'éléments solidaires ne pouvant être définis que les uns par rapport aux autres en

fonction de leur place dans cette totalité » (de Saussure, 1931)

Symbole : unité porteuse de sens / information :

Mot : « avion », « cheval », « porter », « relue », « Bob », « 42 »...

Syllabe / phonème : « re », « ba », « tra », « in », « trans »...

Sigle : a, b, $, ©, λ, تاغل,, ҧ, Ⴥ, ⅀, ⇔, ∉, ⌨, ♣, ⡵, ☺, ♂, ♀, ♫

Lettre (latine) : {a, b, c, ... z}, {0, 1, 2, ... 9}, {é, à, ü, ...} : UTF8

Combinaison / composition de symboles :

Double articulation : phonèmes / mots

Quelles unités minimales (atomiques) pour décomposer

(15)

Introduction

Qu'est-ce qu'un langage ?

Hiérarchie des langages :

Langage : « système de signes identifiés permettant une

communication entre une ou plusieurs entités » (Wikipedia)...

Langage naturel (humains) : « ensemble de signes utilisés par une communauté pour communiquer » (de Saussure, 1913)

Langage formel (Chomsky, 1956) :

Général

Contextuel

Hors-contexte

Régulier

A choix fini

Régis par des grammaires :

Langage Naturel Formel Contextuel Hors-contexte

Régulier

(16)

Introduction Plan

Qu'est-ce qu'un automate ?

Qu'est-ce qu'un langage ?

Lien entre les automates et les langages

L'ordinateur, automate à états déterministe

(17)

Introduction

Lien entre les automates et les langages

Un langage permet de communiquer entre :

Humain et humain

Humain et animal (?)

Animal et animal (???)

Humain et machine

...

Cette communication s'appuie sur :

Le dialogue homme-machine

Les interfaces homme-machine

⇒ la programmation, par des informaticiens, de logiciels afin que les machines puissent comprendre d'autres hommes

(18)

Introduction

Lien entre les automates et les langages

Initialement, la programmation d'automates (ordinateurs) se faisait par utilisation de codes

La correspondance entre instructions (plus ou moins basiques) et langage machine se fait par un

processus (automatique) de compilation

10001001110 00010100110 11010001011 00100100000 11010000100 [...]

???

push eax mov edx eax imul ecx eax pop edx

jmp ecx [...]

?

while(i < 10){

int j = a*5 ; if (j > 15){

test();

} [...]

programme

(19)

Introduction

Lien entre les automates et les langages

L'automate (ordinateur) « comprend » un langage que l'ingénieur lui soumet :

Comme une commande (« ordre »)

Il « reconnaît » ou « accepte » un langage

Il ne « reconnaît pas » ou « n'accepte pas » les autres langages

Ceci a besoin d'être formalisé pour :

Créer de nouveaux langages, sous certaines contraintes :

Efficacité : rapidité des traitements

Expressivité : capacité à formuler des « choses »

Précision : degré de contrôle sur ce que fait la machine

Savoir à l'avance si un message / code sera reconnu ou non

(20)

Introduction Plan

Qu'est-ce qu'un automate ?

Qu'est-ce qu'un langage ?

Lien entre les automates et les langages

L'ordinateur, automate à états déterministe

(21)

Introduction

L'ordinateur, automate à états déterministe

Modèle simple pour un ordinateur « automate » :

Architecture de Von Neumann (sauf : processeur = unité de contrôle + unité arithmétique et logique)

0100110 0100110 0100110

0100110 0100110 0100110

(22)

Introduction

L'ordinateur, automate à états déterministe

En dernière analyse, l'ordinateur :

Ne reçoit que du langage : la souris, le clavier, le micro (etc.) sont convertis en signaux numériques (binaires) qui

correspondent à divers langages traités par le processeur...

N'émet que du langage : l'écran, le haut-parleur (etc.) sont, dans la machine, des signaux numériques (binaires) à

convertir en affichage, sons...

N'« invente » rien : il exécute des actions programmées

Fort heureusement, nous n'avons pas à parler en binaire aux machines :)

⇒ Des ingénieurs et des chercheurs ont formalisés ces

langages comme automates et ont fait en sorte qu'ils

soient automatiquement traduits ou « compilés »

(23)

Introduction

L'ordinateur, automate à états déterministe

L'état (≃la mémoire) de l'automate, une notion dépendante de ce qui est pris en considération :

Etat du processeur

Variables (registres) du processeur

Mémoire volatile (RAM)

Mémoire centrale (disque dur)

Etat des périphériques

Etat du réseau

...

Selon l'automate, il faut définir au préalable les états

dans lesquels il peut se trouver : leur nombre est fini

(24)

Introduction

L'ordinateur : automate fini déterministe

La principe « déterministe » :

Un automate « connaît » toujours son propre état, il est déterminé, il n'y a pas de « peut-être »

Lié aux notions de décidabilité, calculabilité, d'algorithme

Exemple de problèmes non-calculables :

Valeur de PI, 1/3

Savoir si un programme se termine (problème de l'arrêt)

Racine entière d'une équation polynomiale

Logique du premier ordre

(25)

Introduction

L'ordinateur : automate fini déterministe

Problématique :

D'automate qui traite un langage

Dont le nombre d'état est fini

Qui a un comportement déterministe

010010 abeatdg

Références

Documents relatifs

Si il y a un prochain bond pour cette FEC et si il y a un bloc de contrôle aval pour cette FEC dont l’état est 'ÉTABLI', créer un nouveau bloc de contrôle amont et

Donnez un automate non-déterministe sur Σ ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} qui accepte les mots dont le dernier chiffre soit un chiffre qui ait déjà apparu...

● Pour la lisibilité, lorsque deux arcs de même orientation sont possibles entre deux nœuds, ils sont fusionnés (disjonction) :. ● Un arc peut « boucler » un état

§ La fermeture d’un langage régulier est régulière ñ Transitions ϵ finaux vers initial. § L’union de deux langages réguliers

§ Dessinez un automate qui reconnaît un code couleur1. ‚ Avec 2 chiffres héxadécimaux

Dire lesquels parmi eux poss` ede un sous-groupe de type fini libre de rang non nul.. Le groupe de Galois de l’extension K|Q est-il

Il est possible d’associer ` a chaque score possible un ´ etat, puis il faut alors construire une table de transition en fonction du point marqu´ e (c’est-` a-dire de la lettre lue).

[r]