Kieliiteroinnin korkeus

Teoreettisessa tietojenkäsittelytieteessä , tarkemmin sanottuna muodollisten kielten teoriassa , iterointikorkeus  on säännöllisten lausekkeiden rakenteellisen monimutkaisuuden mitta - säännöllisen lausekkeen  iteraatiokorkeus on yhtä suuri kuin säännöllisessä lausekkeessa olevien tähtien sisäkkäisyyden maksimi syvyys. ilmaisu. Iteraatiokorkeuden käsitteen esitteli ja tutki ensimmäisenä Eggan (1963).

Muodollinen määritelmä

Muodollisesti säännöllisen lausekkeen E iteraatiokorkeus äärellisen aakkoston A yli määritellään induktiivisesti seuraavasti:

Tässä tarkoittaa tyhjää joukkoa, ε tarkoittaa tyhjää merkkijonoa ja E ja F  ovat mielivaltaisia ​​säännöllisiä lausekkeita.

Säännöllisen kielen L iteraatiokorkeus h ( L ) määritellään kaikkien L: tä edustavien säännöllisten lausekkeiden vähimmäisiteraatiokorkeudeksi . Intuitiivisesti, jos kielellä L on korkea iteraatiokorkeus, se on itsessään monimutkainen, koska sitä ei voida kuvata "yksinkertaisilla" säännöllisillä lausekkeilla, joilla on pieni iteraatiokorkeus.

Esimerkkejä

Vaikka säännöllisen lausekkeen iteraatiokorkeuden laskeminen on yksinkertaista, kielen iteraatiokorkeuden määrittely voi joskus olla hämmentävää. Esimerkkinä säännöllinen lauseke

aakkosten A = {a, b} iteraatiokorkeus on 2. Kuvattava kieli on kuitenkin joukko kaikkia a -päätteisiä sanoja . Samaa kieltä voidaan kuvata käyttämällä lauseketta

,

jonka iteraatiokorkeus on vain 1. Osoittaaksemme, että kielen iteraatiokorkeus on 1, meidän on suljettava pois mahdollisuus kuvata kieli säännöllisellä lausekkeella, jonka iterointikorkeus on pienempi. Tämä voidaan tehdä esimerkiksi epäsuorasti todistamalla, että kieli, jonka iterointikorkeus on 0, sisältää vain äärellisen määrän sanoja. Koska kielemme on ääretön, sen iteraatiokorkeus ei voi olla 0.

Ryhmäkielen iteraatiokorkeus on laskettavissa. Esimerkiksi kielten iteraation korkeus { a , b }:n yli, jossa a :n ja b :n esiintymien lukumäärä on yhteneväinen modulo 2 n , on n [1] .

Egganin lause

Säännöllisten kielten iteraatiokorkeutta koskevissa keskeisissä tutkimuksissaan Eggan [2] loi yhteyden säännöllisten lausekkeiden teorian, äärellisten automaattien teorian ja suunnattujen graafien välille . Myöhemmin tämä yhteys tuli tunnetuksi Egganin lauseena [3] . Muistamme joitain käsitteitä graafiteoriasta ja automaatiteoriasta .

Graafiteoriassa suunnatun graafin (digraafin) syklinen arvo r ( G ) G  = ( V ,  E ) määritellään induktiivisesti seuraavasti:

 jossa G - v on digraafi, joka saadaan poistamalla kärki v ja kaikki kaaret, jotka alkavat tai päättyvät v:llä.

Automaattiteoriassa epädeterministinen äärellinen automaatti ε-siirtymällä (ε-NFA) määritellään monikkona ( Q , Σ , δ , q 0 , F ), joka koostuu

Sana w ∈ Σ * hyväksytään ε-NCF:ksi, jos on suuntautunut ketju alkutilasta q 0 johonkin lopputilaan F käyttämällä digs arvosta δ siten, että kaikkien polun varrella olevien nimikkeiden ketjutus muodostaa sanan w . Kaikkien Σ * :n yli olevien sanojen joukko, jonka automaatti hyväksyy, on automaatin A hyväksymä kieli .

Jos puhutaan epädeterministisesta äärellisestä automaatista A , jonka tilajoukko Q on suunnattu graafina, tarkoitamme luonnollisesti graafia, jonka kärkijoukko Q on generoitu siirtymillä. Nyt voimme esittää lauseen.

Egganin lause : Säännöllisen kielen L iteraatiokorkeus on yhtä suuri kuin pienin syklinen arvo kaikkien epädeterminististen äärellisten automaattien joukossa , joiden ε-siirtymät hyväksyvät kielen L.

Tämän lauseen todistuksen antoi Eggan [2] ja myöhemmin Sakarovich [3] .

Yleistetty iteroinnin korkeusongelma

Yllä oleva määritelmä olettaa, että säännöllinen lauseke on rakennettu aakkosten A elementteihin käyttäen vain joukkoliiton , ketjutuksen ja Kleenen sulkemisen vakiooperaatioita . Yleistetty säännöllinen lauseke määritellään säännölliseksi lausekkeeksi, mutta se sisältää myös joukkokomplementtioperaation ( komplementti otetaan aina suhteessa kaikkiin A:n sanoihin). Jos oletetaan, että täytteen ottaminen ei lisää iteroinnin korkeutta, se on

,

voimme määritellä yleistetyn säännöllisen kielen iteraatiokorkeuden L vähimmäisiteraatiokorkeudeksi kaikkien kieltä L edustavien yleistettyjen säännöllisten lausekkeiden joukossa .

Huomaa, että vaikka kielet, joilla on nolla (tavallinen) iteraatiokorkeus, sisältävät äärellisen määrän sanoja, on ääretön kieliä, joilla on nolla yleinen iteraatiokorkeus.

Esimerkki . Tavallinen ilme

jonka näimme yllä olevassa esimerkissä, voidaan vastaavasti kirjoittaa uudelleen yleistetyksi säännölliseksi lausekkeeksi

,

koska tyhjän joukon komplementti on täsmälleen kaikki aakkosten A sanat . Siten kaikkien aakkosten A ylittävien sanojen joukon, joka päättyy kirjaimeen a , iteraatiokorkeus on yksi, kun taas yleisen iteroinnin korkeus on nolla.

Kieliä, joiden iteraatiokorkeus on nolla, kutsutaan kieliksi ilman tähtiä . Voidaan osoittaa, että kieli L on kieli ilman tähtiä silloin ja vain, jos sen syntaktinen monoidi on ajaksoinen [4] .

Katso myös

Muistiinpanot

  1. Sakarovitch, 2009 , s. 342.
  2. 12 Eggan , 1963 .
  3. 12 Sakarovitch , 2009 .
  4. Schützenberger, 1965 .

Kirjallisuus