În informatica teoretică , mai precis, în teoria limbajelor formale , înălțimea iterației este o măsură a complexității structurale a expresiilor regulate - înălțimea iterației unei expresii regulate este egală cu adâncimea maximă de imbricare a asteriscurilor prezente în expresiile regulate. expresie. Conceptul de înălțime de iterație a fost introdus și studiat pentru prima dată de Eggan (1963).
Formal, înălțimea de iterație a unei expresii regulate E peste un alfabet finit A este definită inductiv după cum urmează:
Aici reprezintă mulțimea goală, ε reprezintă șirul gol , iar E și F sunt expresii regulate arbitrare.
Înălțimea de iterație h ( L ) a unui limbaj regulat L este definită ca înălțimea minimă de iterație a tuturor expresiilor regulate care reprezintă L . Intuitiv, dacă un limbaj L are o înălțime mare de iterație, ea însăși este complexă deoarece nu poate fi descrisă în termeni de expresii regulate „simple” cu o înălțime de iterație mică.
În timp ce calcularea înălțimii de iterație a unei expresii regulate este simplă, definiția înălțimii de iterație a limbajului poate fi uneori confuză. De exemplu, expresia regulată
peste alfabetul A = {a, b} are înălțimea iterației 2. Cu toate acestea, limbajul descris este setul tuturor cuvintelor care se termină cu a . Același limbaj poate fi descris folosind expresia
,a căror înălțime de iterație este doar 1. Pentru a demonstra că înălțimea de iterație a unei limbi este 1, trebuie să excludem posibilitatea de a descrie limbajul printr-o expresie regulată cu o înălțime de iterație mai mică. De exemplu, acest lucru se poate face indirect prin demonstrarea că o limbă cu înălțimea iterației 0 conține doar un număr finit de cuvinte. Deoarece limba noastră este infinită, nu poate avea o înălțime de iterație de 0.
Înălțimea de iterație a limbajului de grup este calculabilă. De exemplu, înălțimea unei iterații de limbaj peste { a , b } în care numărul de apariții ale lui a și b sunt congruente modulo 2 n este n [1] .
În studiile sale fundamentale privind înălțimea iterației limbajelor regulate, Eggan [2] a stabilit o legătură între teoria expresiilor regulate, teoria automatelor finite și graficele direcționate . Ulterior, această conexiune a devenit cunoscută sub numele de teorema lui Eggan [3] . Reamintim câteva concepte din teoria grafurilor și teoria automatelor .
În teoria grafurilor, rangul ciclic r ( G ) al unui graf direcționat (digraf) G = ( V , E ) este definit inductiv după cum urmează:
În teoria automatelor , un automat finit nedeterminist cu ε-tranziții (ε-NFA) este definit ca un tuplu ( Q , Σ, δ , q 0 , F ) format din
Un cuvânt w ∈ Σ * este acceptat ca ε-NCF dacă există un lanț orientat de la o stare inițială q 0 la o stare finală F folosind săpături din δ astfel încât concatenarea tuturor etichetelor de-a lungul căii să formeze un cuvânt w . Mulțimea tuturor cuvintelor peste Σ * acceptate de automat este limbajul acceptat de automatul A .
Dacă vorbim despre un automat finit nedeterminist A cu o mulțime de stări Q ca graf direcționat, ne referim în mod natural la un graf cu o mulțime de vârfuri Q generată de tranziții. Acum putem afirma teorema.
Teorema lui Eggan : Înălțimea de iterație a unui limbaj regulat L este egală cu cel mai mic rang ciclic dintre toate automatele finite nedeterministe cu ε-tranziții care acceptă limbajul L.Dovada acestei teoreme a fost dată de Eggan [2] , iar mai târziu de Sakarovich [3] .
Definiția de mai sus presupune că expresia regulată este construită pe elemente ale alfabetului A , folosind doar operațiile standard de unire a seturilor , concatenare și închidere Kleene . O expresie regulată generalizată este definită ca o expresie regulată, dar include și o operație de complement de set (complementul este întotdeauna luat în raport cu toate cuvintele de peste A). Dacă presupunem că luarea de umplutură nu crește înălțimea iterației, adică
,putem defini înălțimea generalizată a iterației limbajului regulat L ca înălțimea minimă a iterației dintre toate expresiile regulate generalizate care reprezintă limbajul L .
Rețineți că, în timp ce limbile cu înălțime de iterație zero (obișnuită) conțin un număr finit de cuvinte, există limbi infinite cu înălțime de iterație generalizată zero.
Exemplu . Expresie uzuala
ceea ce am văzut în exemplul de mai sus poate fi rescris în mod echivalent ca expresie regulată generalizată
,întrucât complementul mulţimii goale este exact toate cuvintele de peste alfabetul A . Astfel, setul tuturor cuvintelor de pe alfabetul A care se termină cu litera a are o înălțime de iterație de unu, în timp ce înălțimea de iterație generalizată este zero.
Limbile cu înălțime de iterație zero sunt numite limbi fără asteriscuri . Se poate arăta că o limbă L este o limbă fără asteriscuri dacă și numai dacă monoidul său sintactic este aperiodic [4] .