Vous êtes sur la page 1sur 8

Universit Mentouri Constantine

Facult des sciences de lingnieur


Dpartement de linformatique

AUTOMATES ETATS FINIS SOUS


--------------LOUTIL ATOM3 -----------NFA..DFA..NFA DFA

Ralis par :

BOULESNANE ABDENNOUR
EMAIL :noroo.software@gmail.com

noro-1989@hotmail.fr

2012-

2012-2013

INTRODUCTION :
AToM

est un outil visuel pour la Modlisation Multi-Paradigme qui possde :

Une couche de Mta-modlisation pour la modlisation graphique d'un formalisme (les entits
du formalisme, leurs attributs, leurs relations, leurs cardinalits, leurs contraintes, leurs
apparences graphiques (syntaxe concrte)).
Aussi un systme de rcriture de graphes
pour les manipulations de modles par
application itrative des rgles dune
Grammaire de Graphes
LA Grammaire de graphes dans AToM3 se
compose d'une action initiale, d'un ensemble
des rgles et d'une action finale :
-L'action initiale (finale) spcifie les actions
excuter avant (aprs) l'application des
rgles
-Les rgles sont classes selon des priorits pour diriger le choix de la rgle appliquer.
On va voir un exemple sur lutilisation de loutil Atom3 pour dvelopper un Automate
tat finis NFA (Non Dterministe) ou bien DFA (Dterministe) et aussi une transformation
dun NFA vers DFA.

Page 2

1. Le Mta-modle dAutomate tat finis :

Un mta-modle est un modle qui dfinit prcisment les concepts manipuls dans les
modles ainsi que les relations entre ces concepts.
Mais aussi il faut assurer que lAutomate ne continent pas plus dun tat initial, pour cela on
va utiliser cette contrainte : (allez EDIT--->CONSTRAINTS--->NEW)

Aussi lAutomate il doit contient au moins un tat final avec cette contrainte :

Page 3

Pour un Automate tat finis dterministe (DFA) il suffit dajouter une contrainte dans la
classe dfastat :

Exemple dautomate tat finis (NFA) :

Exemple dautomate tat finis (DFA) :

En plus pour crer les apparences graphiques des tats Initiaux et finaux, on va utiliser les contraintes
suivantes :
ETAT INITIAL :

ETAT FINAL :

(gf9 : POLYNINE)

(gf4 : OVAL)

Page 4

2. La Transformation dun NFD vers DFA :


partir dun automate tat finis Non dterministe on va avoir un automate tat finis dterministe
grce un ensemble des rgles :
1.
2.
3.
4.

limine les tats inaccessibles.


joint les tats quivalents.
limine le non-dterminisme entre deux tats diffrents.
limine le non-dterminisme dans le mme tat.

1re Rgle (limine les tats inaccessibles) :

LHS

RHS

Condition : node1.in_connection= {}
et node1.isInitial=0
Action:/

2 me Rgle (joint les tats quivalents) :

LHS

RHS

Condition : node7.condition == node6.condition


et node4.condition == node5.condition
Action:/
Page 5

3 me Rgle (limine le non-dterminisme entre deux tats diffrents) :

LHS

RHS

Condition : node4.condition == node5.condition


Action: pour i in { node2.out_connection et node3.out_connection }
Newtrans= Connect (node7, i.out_connection)
Newtrans.condition= i.condition
Pour j in {node2.in_connection et node3.in_connection}
Newtrans =Connect (node7, j.in_connection)
Newtrans.condition= j.condition

Initialiser :
atom3i : est une instance
de la classe ATOM3.
On va utiliser atom3i pour
pouvoir utiliser les fonctions
de la classe ATOM3.

Page 6

Connecter le nouvel tat avec les sortis dtat 2 et tat 3 :

Connecter le nouvel tat avec les entrs dtat 2 et tat 3 :

Dans les deux cas on a connect les tats graphiquement grce la fonction showconnection et au
niveau des Objets grce append.
4 me Rgle (limine le non-dterminisme dans le mme tat) :

LHS

RHS

Condition : node3.condition == node4.condition


Action:/
Page 7

EXEMPLE :

R3---->R1---->R1---->R3---->R1---->R1
Conclusion : chaque fois il faut trouver
les bonnes rgles pour aboutir aux
meilleurs rsultats.

Page 8