Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
A PÁRHUZAMOSSÁG VIZSGÁLATA A KLASSZIKUS FORMÁLIS NYELVEKHEZ KAPCSOLÓDÓAN ON THE CONCEPT OF PARALLELISM CONNECTED TO CLASSICAL FORMAL LANGUAGE THEORY
Nagy Benedek Debreceni Egyetem Informatikai Kar Számítógéptudományi Tanszék Összefoglaló A klasszikus formális nyelvek elmélete a múlt század 60-as éveiben alakult ki. A generatív nyelvtanok ekvivalensek a Turing-gépek által definiált kiszámíthatósággal. A különböző párhuzamos számítási modellek az utóbbi évtizedekben egyre nagyobb súlyt kapnak a gyakorlatban is. Kérdésünk: a Chomsky-féle nyelvosztályokhoz kötődően mit mondhatunk a párhuzamosságról; hogyan, milyen formában jelenhet meg a párhuzamosság? A reguláris kifejezésekben az unió művelet segítségével tudunk párhuzamosságot értelmezni, ennek kapcsán normál formára, illetve az unió-bonyolultság fogalmára térünk ki. A környezetfüggetlen nyelvtanok a levezetésben maximális párhuzamosságot engednek meg: a levezetési fák felépíthetőek oly módon, hogy minden lépésben egy teljes új szint jelenik meg. A környezetfüggő nyelvtanoknál az egyoldalú normál-formából kiindulva a levezetéseket fa-szerű gráfokkal reprezentálhatjuk, itt a levezetésekben a párhuzamosság már szinkronizált a szomszédos ágak között. A nem-determinisztikus elfogadó-automatákat elképzelhetjük úgy, mintha annyi példányban futnának, amennyi különböző nem-determinisztikus ága van a számításnak: ez is tekinthető a párhuzamosság egy formájának.
Kulcsszavak Formális nyelvek, Chomsky-hierarchia, párhuzamosság, unió-bonyolultság, levezetési fa
Abstract The classical formal language theory started in the middle of the last century. The generative grammars are computationally equivalent to the Turing-machines. In other hand, various parallel computing paradigms have got more and more roles in practice. In this paper we analyze how the parallelism can appear in classical formal languages. First, in case of regular languages, the operation union gives the possibility to speak about ‘parallelism’ in regular expressions. We mention here a normal form and the concept of union-complexity. At context-free case the derivations may go in a maximal parallel way such that in each step every non-terminal of the actual sentential form is rewritten. In this way the derivation tree is created by levels in every step. In context-sensitive case based on Penttonen’s one-sided normal form the derivations can be represented by tree-like graphs. The parallel derivation here needs some synchronization among the branches of the graph. Another kind of parallelism can be considered by using non-deterministic accepting automata. One can consider an automaton to run in several copies in the same time.
Keywords Formal languages, Chomsky-hierarchy, parallelism, union-complexity, derivation tree
1
Informatika a felsőoktatásban 2008
1.
Debrecen, 2008. augusztus 27-29.
Bevezetés
A klasszikus formális nyelvek elmélete a számítástechnika egyik főága. A múlt század 60as éveiben alakult ki, főképpen Noam Chomsky akkori munkásságának köszönhetően. A generatív nyelvtanok ekvivalensek a Turing-gépek által definiált kiszámíthatósággal. A számítástudományban ugyancsak régen megjelentek különböző párhuzamos számítási modellek, amelyek az utóbbi évtizedekben egyre nagyobb súlyt kapnak a gyakorlatban is. Szemben azokkal a gyakori kiterjesztésekkel és általánosításokkal, amikor egy hagyományosan nem párhuzamosan működő rendszert a párhuzamosság segítségével tesznek hatékonyabbá, mi azt szeretnénk megvizsgálni, hogy a hagyományos Chomsky-féle nyelvosztályokhoz kötődően mit mondhatunk a párhuzamosságról. Például hogyan, milyen formában jelenhet meg a párhuzamosság a nyelvtanokhoz kötődő levezetésekben, illetve az elfogadó-automaták működését tekintve. A dolgozat következő fejezeteiben megvizsgáljuk a reguláris, a környezetfüggetlen és a környezetfüggő nyelvek osztályait. Először a reguláris kifejezések kapcsán fogunk beszélni egyfajta párhuzamosságról, majd a levezetéseket tekintve, végül pedig az automatákkal kapcsolatban. 2.
Az unió, mint a párhuzamosság forrása a reguláris kifejezésekben
A formális nyelvek elméletében és sokszor a gyakorlatban is reguláris halmazok (nyelvek) egyik fő megadási módja a reguláris kifejezésekkel való felírásuk. A reguláris kifejezésekben az unió művelet segítségével tudunk valamiféle párhuzamosságot értelmezni. Normál formát definiálhatunk, illetve értelmezhetjük az unió-bonyolultság fogalmát. A reguláris kifejezések a következőképpen definiálhatók:
a T ábécé minden eleme egyben reguláris kifejezés is, van két speciális szimbólum, melyek egyben reguláris kifejezések is, az üres halmaz és az üres szó jele: és , ha adott két reguláris kifejezés (r és p), o ezek konkatenációja is reguláris kifejezés (a konkatenációt a jellel jelölhetjük, de általában nem szoktuk kitenni): (r p) vagy (rp) , o ezek uniója is reguláris kifejezés: (r + p) , adott r reguláris kifejezésre, annak (Kleene-) iteráltja is reguláris kifejezés: r* . Továbbá minden reguláris kifejezés felírható az ábécé elemeinek, az üres halmaz és az üres szó jelének és a három reguláris művelet véges sokszori alkalmazásának segítségével. A műveletekre precedencia is értelmezve van. Emiatt, illetve a konkatenáció és az unió műveletek asszociativitása miatt zárójelek elhagyása megengedett az egyértelmű jelentést megtartva. A reguláris kifejezések között vannak ekvivalensek, vagyis ugyanazt a reguláris nyelvet általában több, egymástól különböző reguláris kifejezés is megadja. Ez alapján az ekvivalencia reláció alapján az ekvivalens formulákat felhasználhatjuk formulák átalakítására. Néhány ilyen ekvivalencia például (ahol p,q,r tetszőleges reguláris kifejezések): (p + q ) ( q + p )
(1)
(p + q ) + r p + ( q + r )
(2)
2
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
r r* r* r
(3)
2.1 Normál forma reguláris kifejezésekhez és a nyelvek unió-bonyolultsága A normál formák fontos szerepet játszanak a számítástudomány sok területén, pl. a logikában a konjunktív-, diszjunktív- normálformákról, illetve prenex alakú formulákról beszélhetünk. Ezekben a formulákban a műveletek sorrendjére van valamilyen megszorításunk. Lényeges viszont az, hogy minden formulához létezik vele ekvivalens olyan, amely normálformában van. Normál formát értelmezhetünk a reguláris kifejezésekre is: Egy reguláris kifejezésről akkor mondjuk, hogy normál formában van, ha véges sok uniómentes kifejezés uniója (Nagy, 2004). A következő ekvivalenciák véges sokszori alkalmazásával bármely reguláris kifejezés normál formára hozható: ( p + r )* ( p* r*)*
(4)
p ( q + r ) pq + pr
(5)
( p + q ) r pr + qr
(6)
(p+q) (r+t)
pr + pt + qr + qt
(7)
Például a (ab*+c)(b+(a+c)*) kifejezés először a (4) majd a (7) alkalmazásával az ab*b+ab*(a*c*)*+cb+c(a*c*)* normálformát veszi fel. A normálformához szorosan kötődik a nyelvek unió-bonyolultsága: Egy (reguláris) nyelv unió-bonyolultsága azt fejezi ki, hogy legalább mennyi uniómentes tagra van szükség a nyelv felírásához normálformában. A reguláris nyelvek osztályán belül egy végtelen hierarchiát tudunk definiálni a nyelvek unió-bonyolultsága alapján (1. ábra). n+1 tag segítségével szigorúan több nyelvet tudunk leírni, mint n taggal.
1. ábra – a reguláris nyelvek felosztása unió-bonyolultság alapján
A reguláris kifejezéseket ábrázolhatjuk szintaxis gráffal is (Nagy, 2005). Itt az unió elágazást jelent (2. ábra). Egy ilyen gráf bejárását végezhetjük oly módon, hogy az elágazásoknál az ágakat párhuzamosan olvassuk. Ily módon az unió művelet segítségével
3
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
párhuzamosságot értelmezhetünk a reguláris nyelveknél. A normálformában szereplő tagok száma, illetve az ennek megfelelő hierarchia pedig éppen azt mutatja, hogy az adott nyelv leírásához (szintaxisgráf bejárásához) legalább mekkora párhuzamosság (hány ügynök) szükséges. konkatenáció
alternatíva (unió)
itaráció 2. ábra – reguláris kifejezés szintaxis gráffal
Az unió művelet és az ennek megfelelő párhuzamosság a teljes nyelv leírását/elolvasását teszi lehetővé párhuzamosan. 3.
Párhuzamosság a levezetésekben
Egy G generatív nyelvtan egy (N,T,S,H) rendezett négyes, ahol N és T a nemterminális és terminális szimbólumok véges halmazai, S N a mondatszimbólum, H pedig a levezetési szabályok véges halmaza (részletekért lásd pl. (Révész, 1979)). A megengedett szabályok alakja alapján a nyelvtanokat csoportosíthatjuk. Ily módon közismertek a Chomsky-féle nyelvtantípusok: reguláris, környezetfüggetlen, környezetfüggő. A generatív nyelvtanok egyik központi fogalma a levezetés. A mondatszimbólumból kiindulva helyettesítési szabályok alkalmazásával jutunk el egy olyan szóig, amely már csak a terminális ábécé betűiből tartalmazhat szimbólumokat. A levezetéseket levezetési fa segítségével vizuálisan is megjeleníthetjük (3. ábra).
3. ábra – levezetési fa reguláris és környezetfüggetlen esetben
4
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
Egy adott nyelvtanban levezetett szavak halmaza adja a generált nyelvet. A nyelv olyan típusú (reguláris/környezetfüggetlen/környezetfüggő) amilyen típusú nyelvtannal lehet őt generálni. Ebben a fejezetben arra fókuszálunk, hogy a levezetésekben hogyan, mely esetekben jelenhet meg a párhuzamosság. 3.1.
Reguláris levezetések
A reguláris nyelvtanokban minden szabály bal oldalán pontosan egy nemterminális szimbólum áll; a jobb oldalán pedig valahány terminális (lehet nulla is) és ezt követve maximum egy nemterminális. Mindez azt jelenti, hogy a levezetés során a mondatformában maximum 1 db. nemterminális állhat, vagyis minden mondatformában maximum egy helyen lehet szabályt alkalmazni. Ily módon ebben az esetben nem beszélhetünk párhuzamosságról. 3.2.
Környezetfüggetlen levezetési fák
A reguláris nyelvtanokhoz hasonlóan a környezetfüggetlen nyelvtanok minden szabályára is teljesül, hogy a szabály bal oldala pontosan egy nemterminálisból áll. A reguláris nyelvtanokkal szemben a környezetfüggetlen nyelvtanokban viszont nincs korlátozva a mondatformában az egyszerre előforduló nemterminálisok száma. Ennek segítségével a levezetést „párhuzamosíthatjuk”. Sőt, akár maximális párhuzamos levezetésről is beszélhetünk, melyben a mondatformában aktuálisan található összes nemterminálist egymástól függetlenül egyszerre írhatjuk át. Ily módon a levezetési fákat úgy építjük fel, hogy minden lépésben egy teljes új szint jelenik meg. Ily módon sok nyelv esetén a levezetés időben jelentősen meggyorsítható. 3.3.
Környezetfüggő „levezetési fák”
A környezetfüggés (vagyis olyan levezetési szabályok alkalmazása, melyeknek a baloldala nem egy nemterminálisból áll) miatt ezekben a nyelvtanokban a levezetés nem mehet tovább az összes nemterminálisból egymástól függetlenül. Penttonen egyoldalú normálformából (a szabályok lehetséges alakjai: A → a, A → BC, AB → AC, ahol a T, A,B,C N, (Penttonen 1974)) kiindulva a levezetéseket fához hasonló gráfokkal reprezentálhatjuk (4. ábra). Ily módon a levezetésekben a párhuzamosság már szinkronizált kell hogy legyen egyes (szomszédos) ágak között, amit a gráfban a szaggatott, ún. környezet-élek jelképeznek. A mondatformában szereplő nemterminálisok közül csak azokat írhatjuk át egyszerre, egy lépésben, amelyek vagy nem igényelnek környezetet vagy az igényelt környezetük jelen van; illetve vagy nincs szükség rájuk környezeteként vagy már felhasználtuk őket. Az ábrán szereplő levezetésben így a lehető legpárhuzamosabb végrehajtás (a helyettesített nemterminálisok aláhúzva szerepelnek): S AG IJBC aDEBC aIMEEC aaABEEK aaaBBFL aaabBOc aaabbbCLc aaabbbccc . Itt jegyezzük meg, hogy azoknál a mondatszerkezetű nyelvtanoknál, amelyekben nem környezetfüggő szabályok is megjelennek, ez a szinkronizálás kiegészítődhet azzal, hogy adott ágak várakoznak a köztük levő ágak „számításainak” befejeződésére.
5
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
4. ábra – környezetfüggő levezetési fa
Egy adott szó levezetésében megjelenő párhuzamosság az „és-párhuzamosság” kategóriájába tartozik, ami bonyolultságelméletileg is fontos (Nagy 2006, Loos és Nagy 2007). A megoldás (az adott szó) előállítása így jóval gyorsabb lehet időben. Fontos jellemzője ennek a párhuzamosságnak, hogy a párhuzamos szálak együtt fogják végül a megoldást kiadni, vagyis mindegyikükre szükség van. Ez, az „oszd meg és uralkodj” elvet használó párhuzamosság jellemzi a high-performance computing területet. 4.
Párhuzamosság az automaták működésében
A formális nyelvek elmélete szorosan kapcsolódik az automatákéhoz, hiszen a Chomsky hierarchia minden nyelvosztályának megvan a maga elfogadó automatatípusa. A reguláris nyelveket a véges automaták fogadják el (mind a determinisztikus, mind a nemdeterminisztikus változat pontosan ugyanazzal az elfogadóerővel rendelkezik). A környezetfüggetlen nyelveket a nem-determinisztikus veremautomaták fogadják el. A környezetfüggő nyelvek pedig éppen azok, amelyeket a nem-determinisztikus lineárisan korlátolt Turing-gépek tudnak elfogadni. (A generatív nyelvtanok általános formája – minden megszorítás nélkül – a rekurzívan felsorolható nyelveket generálja. Ezek pedig pontosan azok a nyelvek, amelyeket a determinisztikus Turing-gépek tudnak elfogadni. A nemdeterminisztikus Turing-gépek elfogadó ereje megegyezik a determinisztikus változatával.) A nem-determinisztikus elfogadó-automatákat elképzelhetjük úgy, mintha párhuzamosan annyi példányban futnának, amennyi különböző nem-determinisztikus ága van a számításnak. Ez egy teljesen más típusú párhuzamosság fogalmat/használatot jelent, mint a párhuzamosság korábban leírt megjelenési formái. Ugyancsak egy-egy konkrét szóval kapcsolatos a jelenség. Tulajdonképpen az ún. „vagy-párhuzamosság” (Loos és Nagy, 2007) esetéről van szó, amikor is az egymással párhuzamosan futó számítási ágak bármelyike jelentheti/adhatja a megoldást,
6
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
ha van egyáltalán. Ez a fajta párhuzamosság tulajdonképpen a kínai-hadsereg algoritmusán alapszik. Ily módon ez a párhuzamosság nem gyorsítja az elfogadást, hiszen ha mindig a megfelelő lépést választja valaki (nem-determinisztikusan), akkor éppen ennyi idő alatt kap megoldást párhuzamosság alkalmazása nélkül is. Tulajdonképpen ez a fajta párhuzamosság az, amit pl. adat-párhuzamos számításokban használnak, illetve pl. a DNS-számítások is főleg ezt a fajta párhuzamosságot használják ki hatékony problémamegoldásra. 5.
Összefoglalás
Reguláris nyelvek esetén a reguláris kifejezések kapcsán tudtunk párhuzamosságról beszélni. A reguláris levezetések kapcsán nem. A környezetfüggetlen nyelvtanok a levezetésben egyféle maximális párhuzamosságot engednek meg. A környezetfüggő esetben ez kiegészül az ágak közti kommunikáció kapcsán szinkronizációval. A levezetésekben „éspárhuzamosságot” figyelhettünk meg. Ezzel szemben a nem-determinisztikus elfogadó automaták kapcsán a „vagy-párhuzamosságról” beszélhetünk. Megmutattuk, hogy habár a klasszikus formális nyelvek fogalmai a párhuzamosság nélkül vannak definiálva, azért becsempészhetjük a párhuzamosság különböző módjait, ezzel gyorsítva/ hatékonyabbá téve pl. a szavak generálását/elfogadását. Irodalomjegyzék [1]
Loos, R. és Nagy, B. (2007) Parallelism in DNA and Membrane Computing, CiE2007, Computability in Europe 2007: Computation and Logic in the Real World, Siena, Italy, 283-287.
[2]
Nagy, B. (2004) A Normal Form for Regular Expressions, DLT'04, Eighth International Conference on Developments in Language Theory, Auckland, New Zealand, (CDMTCS-252) 10 oldal.
[3]
Nagy, B. (2005) Programnyelvek elemeinek szintaktikus leírása normál formában (Syntactic Description of the Elements of the Programming Languages in a Normal Form), IF2005, Informatika a Felsőoktatásban, Debrecen, 6+1 oldal (elektronikus).
[4]
Nagy, B. (2006) On the Notion of Parallelism in Artificial and Computational Intelligence, HUCI2006, 7th International Symposium of Hungarian Researchers on Computational Intelligence – Magyar Kutatók 7. Nemzetközi Szimpóziuma, Budapest, 533-541.
[5]
Penttonen, M. (1974) One-Sided and Two-Sided Context in Formal Grammars, Information and Control, 25, 371–392.
[6]
Révész, Gy. (1979) Bevezetés a formális nyelvek elméletébe, Akadémiai kiadó, Budapest.
7