Étape 1: Ce qui est une Machine à états finis ?
Une machine à états finis, ou EFM en abrégé, est une machine (de façon abstraite) qui possède un nombre fini et défini de possibles États dont un seul est actif à la fois. Les États sont reliées par des transitions. Ces transitions ont une certaine direction et ne peuvent être passées dans ce sens – pensez-y comme une rue à sens unique. En outre, une transition a certaines entrées et sorties. Vous pouvez considérer ces comme une condition, vous devrez remplir avant que vous pouvez utiliser la rue à sens unique, et quand on l’utilise, un signal est donné au monde extérieur – par exemple, vous devrez payer des frais avant que vous pouvez utiliser la rue et ensuite votre voiture est comptée.
Un exemple très basique d’un FSM se trouve dans de nombreuses maisons : en poussant un bouton active la lumière dans la cage d’escalier. Après un certain temps, la lumière s’éteint automatiquement. Vous pourriez modéliser ceci comme un FSM avec deux États : allumé et éteint. Il y a une transition d’un État à l’autre et vice versa et la condition est d’appuyer sur le bouton dans une seule direction et qu’un certain temps écoulé dans l’autre sens. Nous pouvons modéliser ce comportement dans un diagramme, la soi-disant statechart. Jetez un oeil à la photo 1.
Le cercle noir plein marque le point d’entrée de l’ordinateur d’État (tout a bien commencer quelque part). Donc, si notre machine démarre, le voyant est éteint. Il reste comme ça, jusqu'à ce que nous utilisons un interrupteur de lumière – la lumière va alors et s’éteint au bout de 30 secondes. En pressant la touche lorsque le feu est déjà allumé ne fait rien, et après 30 secondes, le voyant s’éteint. Ce FSM n’a pas les sorties. Du point de vue mathématique traditionnelle, l’État allumé est équivalente, avec la lumière en marche, mais quand nous commençons vraiment à notre système de programme, bien sûr, nous aurons besoin d’ajouter une sorte de sortie qui fait réellement quelque chose – comme allumer la lumière.
Cette machine de l’état fonctionne, mais c’est un bon système ? Est assez dure 30 secondes ? Pour la plupart des gens, probablement oui, mais le peuple le 10e étage n’aimerez pas notre système. Ils pourraient avoir besoin de plus de 30 secondes, nous allons dire dont ils ont besoin de 40 secondes. Mais ils ont besoin d’attendre les 30 secondes pour passer et le voyant s’éteint pour activer de nouveau la lumière, et qu’ils pourraient être au milieu d’un escalier puis. Donc, ce que nous devons faire est pour permettre à la minuterie de se réinitialiser lorsque le voyant est allumé et le touche à nouveau. Pour cela, nous aurons besoin de re-modéliser notre système, le démarrage de la minuterie de modélisation en tant que sortie de nos transitions et en ajoutant une autre transition, comme peut être vu dans la photo 2.
Ici, vous pouvez voir deux choses :
- Il est parfaitement acceptable pour une transition passer à l’État, qu'il vient
- Une transition peut avoir un événement comme une condition pour que la transition se produire ainsi qu’assignés des sorties. L’information qui reste à la barre oblique est l’événement, les informations sur le droit soient la sortie. Des événements sont également considérées comme entrées à la machine, et c’est ce qu’on appelle un entrée-sortie-automate.