Automat finitUn automat finit (AF) sau o "mașină cu un număr finit de stări" este un model de comportament compus din stări, tranziții și acțiuni. O stare stochează informații despre trecut, adică reflectă schimbările intrării de la inițializarea sistemului până în momentul de față. O tranziție indică o schimbare de stare și este descrisă de o condiție care este nevoie să fie îndeplinită pentru a declanșa tranziția. O acțiune este o descriere a unei activități ce urmează a fi executată la un anumit moment. Există câteva tipuri de acțiuni:
AF poate fi reprezentat printr-o diagramă de stări (sau diagramă de stări și tranziții) ca în figura 1. În plus, se folosesc și tabele de tranziție. Cea mai comună reprezentare este dată mai jos: combinația stării curente (B) și condiției (Y) dă starea următoare (C). Informații complete privind acțiunile pot fi adăugate doar ca note de subsol.
În plus față de utilizarea lor în modelarea sistemelor reactive, prezentată aici, automatele finite sunt importante în multe domenii, inclusiv în lingvistică, informatică, filosofie, biologie, matematică, și logică. Mașinile cu stări finite sunt un tip de automate studiate de teoria automatelor. În informatică, automatele finite sunt folosite pe larg în modelarea comportamentului aplicațiilor, proiectarea sistemelor digitale hardware, ingineria software, compilatoare, și în studiul computației și limbajelor. ClasificareSe disting două grupuri de automate finite: Acceptoare și Transductoare. AcceptoareAcest gen de mașină dă o ieșire binară, fie da, fie nu, reprezentând răspunsul la întrebarea "Intrarea este acceptată sau nu de mașină?". Mașina poate fi descrisă și ca definitorie pentru un limbaj, în cazul de față limbajul definit ar conține toate cuvintele acceptate de mașină și nici unul din cele neacceptate. Toate stările automatului se clasifică în stări acceptante (finale) sau neacceptante. Dacă la momentul terminării procesării întregului șir de intrare automatul este într-o stare finală, atunci intrarea este acceptată, altfel nu. Ca o regulă, intrarea este compusă din simboluri (caractere); nu se folosesc acțiunile. Exemplul din figura 2 arată un automat finit care acceptă cuvântul "bine". În acest AF, singura stare finală este starea Succes. TransductoareTransductoarele generează ieșire pe baza unei intrări date și/sau a unei stări, folosind acțiuni. Ele sunt folosite în controlul aplicațiilor. Aici se disting două tipuri:
Mai multe detalii despre diferențele dintre modelele Mealy și Moore, precum și despre utilizarea lor, se pot găsi în nota tehnică externă O altă distincție care se face între automatele finite este cea între automatele finite deterministe (AFD) și cele nedeterministe (AFN). În automatele deterministe, din fiecare stare se poate efectua exact o singură tranziție pentru fiecare intrare posibilă. În automatele nedeterministe, pentru o anumită stare și o anumită intrare, pot fi mai multe tranziții posibile, sau chiar nici una. Această distincție este relevantă în practică, dar nu și în teorie, deoarece există un algoritm care poate transforma orice AFN într-un AFD echivalent, deși această transformare mărește, de obicei, complexitatea automatului. Automatul finit cu o singură stare se numește automat finit combinațional și folosește doar acțiuni de intrare de date. Acest concept este util în cazurile în care este nevoie ca un număr de AF să lucreze împreună, și în cele în care este convenabil ca o parte pur combinațională să fie considerată ca fiind un automat finit pentru unele unelte de proiectare. Logica automatelor finiteIeșirea și starea următoare a unui automat finit este o funcție de intrare și de starea curentă. Logica unui AF este prezentată în figura 5. Modelul matematicÎn funcție de tip, există mai multe definiții. Un automat finit acceptor este un cvintuplu , unde:
Un automat finit transductor (sau translator) este un sextuplu , unde:
OptimizareOptimizarea unui automat finit înseamnă găsirea automatului finit cu numărul minim de stări care operează cu aceeași funcționalitate. Această problemă se poate rezolva folosind un algoritm de colorare. ImplementareAplicații hardwareÎntr-un circuit digital, un AF poate fi construit folosind un dispozitiv logic programabil, un controller logic programabil, porți logice cu bistabili sau relee. Mai exact, o implementare hardware necesită un registru pentru a stoca variabilele de stare, un bloc de logică combinațională care determină tranziția de stare, și un alt bloc de logică combinațională care determină ieșirea automatului finit. Aplicații softwareÎn general, pentru a construi aplicații software cu automate finite, se folosesc următoarele concepte: Unelte de lucru
Bibliografie
Alte legături
Vezi și |