Kapslade ord
Inom datavetenskap , närmare bestämt inom automater och formell språkteori , är kapslade ord ett begrepp som föreslås av Alur och Madhusudan som en gemensam generalisering av ord , som traditionellt används för att modellera linjärt ordnade strukturer, och av ordnade orankade träd , som traditionellt används för modellering. hierarkiska strukturer. Finita-tillståndsacceptorer för kapslade ord, så kallade kapslade ordautomater , ger då en mer uttrycksfull generalisering av finita automater på ord. De linjära kodningarna av språk som accepteras av finita kapslade ordautomater ger klassen av synligt pushdown-språk . Den senare språkklassen ligger korrekt mellan de reguljära språken och de deterministiska kontextfria språken . Sedan de introducerades 2004 har dessa begrepp utlöst mycket forskning på området.
Formell definition
För att definiera kapslade ord , definiera först matchande relationer . För ett icke-negativt heltal notationen mängden , med specialfallet .
En matchande relation ↝ av längden en delmängd av så att:
- alla häckande kanter är framåt, det vill säga om i ↝ j så är i < j ;
- häckande kanter har aldrig en ändlig position gemensamt, det vill säga för −∞ < i < ∞ , finns det högst en position h så att h ↝ i , och det finns högst en position j så att i ↝ j ; och
- häckande kanter korsar sig aldrig, det vill säga det finns inga i < i ≤ j < j ′ så att både i ↝ j och i ′ ↝ j ′ .
En position i kallas
- en samtalsposition , om i ↝ j för något j ,
- ett väntande samtal om jag ↝ ∞,
- en återgångsposition , om h ↝ i under några h ,
- en väntande avkastning om −∞ ↝ i , och
- en intern position i alla återstående fall.
Ett kapslat ord med längden över ett alfabet Σ är ett par ( w ,↝), där w är ett ord, eller sträng , med längden över Σ och ↝ är en matchning relation av längd .
Koda kapslade ord till vanliga ord
Kapslade ord över alfabetet kodas till "vanliga" ord över det taggade alfabetet där varje symbol a från Σ har tre taggade motsvarigheter: symbolen ⟨a för att koda en anropsposition i ett kapslat ord märkt med a , symbolen a⟩ för att koda en returposition märkt med a , och slutligen symbolen a själv för att representera en intern position märkt med en . Mer exakt, låt φ vara funktionen som mappar kapslade ord över Σ till ord över så att varje kapslat ord ( ,↝) mappas till ordet , där bokstaven är lika med ⟨a , a och a⟩ , om och i är en (eventuellt väntande) samtalsposition, en intern position respektive en (eventuellt väntande) returposition.
Exempel
För illustration, låt n = ( w ,↝) vara det kapslade ordet över ett ternärt alfabet med w = abaabccca och matchande relation ↝ = {(−∞,1),(2,∞),(3,4),(5) ,7),(8,∞) }. Sedan läser dess kodning som ord som φ ( n ) = a ⟩⟨ b ⟨ aa ⟩⟨ bcc ⟩⟨ ca .
Automata
Kapslad ordautomat
En kapslad ordautomat har ett ändligt antal tillstånd och fungerar på nästan samma sätt som en deterministisk finit automat på klassiska strängar: en klassisk finit automat läser ingångsordet från vänster till höger, och tillståndet för automaten efter att ha läst den j :te bokstaven beror på i vilket tillstånd automaten var innan den läste .
I en kapslad ordautomat kan positionen i det kapslade ordet (w,↝) vara en returposition; om så är fallet kommer tillståndet efter läsning av inte bara att bero på det linjära tillstånd som automaten var i innan läsningen utan också på ett hierarkiskt tillstånd som sprids av automaten när den var i motsvarande anropsposition. I analogi med vanliga ordspråk kallas en uppsättning L av kapslade ord reguljära om den accepteras av någon (finite-state) kapslad ordautomat.
Synligt pushdown-automat
Kapslade ordautomater är en automatmodell som accepterar kapslade ord. Det finns en motsvarande automatmodell som verkar på (vanliga) ord. Begreppet en deterministisk synligt nedskjutningsautomat är nämligen en begränsning av begreppet en deterministisk nedskjutningsautomat .
Efter Alur och Madhusudan definieras en deterministisk synligt pushdown-automat formellt som en 6-tuppel där
- är en ändlig uppsättning tillstånd ,
- är inmatningsalfabetet , som – i motsats till det för vanliga pushdown-automater – är uppdelat i tre uppsättningar , och . Alfabetet betecknar uppsättningen anropssymboler , innehåller retursymbolerna och mängden innehåller de interna symbolerna ,
- är en ändlig mängd som kallas stackalfabetet , som innehåller en speciell symbol som anger den tomma stacken,
-
är övergångsfunktionen , som är uppdelad i tre delar som motsvarar samtalsövergångar, returövergångar och interna övergångar, nämligen
- , anropet övergångsfunktion
- , returen övergångsfunktion
- den interna övergångsfunktionen ,
- är initialtillståndet , och
- är uppsättningen av accepterande tillstånd .
Begreppet beräkning av en synlig pushdown-automat är en begränsning av den som används för pushdown-automater . Synligt nedskjutningsautomater lägger bara till en symbol till stacken när man läser en samtalssymbol de tar bara bort toppen element från stacken vid läsning av en retursymbol och de ändrar inte stacken vid läsning av en intern händelse . En beräkning som slutar i ett accepterande tillstånd är en accepterande beräkning .
Som ett resultat kan en synligt nedskjutningsautomat inte trycka till och hoppa från stapeln med samma inmatningssymbol. Språket av en synlig nedskjutningsautomat för vilken partition som helst av men det finns pushdown-automater som accepterar detta språk.
Om ett språk över ett taggat alfabet accepteras av en deterministisk synlig pushdown-automat, då kallas synligt pushdown-språk .
Icketerministiska synligt pushdown-automater
Icketerministiska synligt pushdown-automater är lika uttrycksfulla som deterministiska. Därför kan man omvandla en icke-deterministisk, synligt pushdown-automat till en deterministisk, men om den icke-deterministiska automaten hade -tillstånd, kan den deterministiska ha upp till tillstånd.
Beslutsproblem
Låt är storleken på beskrivningen av en automat , då är det möjligt att kontrollera om ett ord n accepteras av automaten i tiden . I synnerhet är tomhetsproblemet lösbart i tiden . Om är fixerad kan den avgöras i tiden och mellanslag där är djupet av n i en strömmande seende. Det kan också bestämmas med mellanslag och tid , och av en enhetlig boolesk krets med djup .
För två icke-deterministiska automater A och B är det EXPTIME -komplett att avgöra om uppsättningen av ord som accepteras av A är en delmängd av ordet som accepteras av B. Det är också EXPTIME-komplett för att ta reda på om det finns ett ord som inte accepteras.
språk
Som definitionen av visibly pushdown-automater visar, kan deterministic visibly pushdown-automater ses som ett specialfall av deterministiska pushdown-automater ; sålunda bildar uppsättningen VPL av synligt pushdown-språk över en delmängd av uppsättningen DCFL av deterministiska kontextfria språk över uppsättningen symboler i . I synnerhet omvandlar funktionen som tar bort matchningsrelationen från kapslade ord vanliga språk över kapslade ord till sammanhangsfria språk.
Stängningsegenskaper
Uppsättningen av synligt pushdown-språk stängs under följande operationer:
- ställ in operationer:
- union
- genomskärning
- komplement,
- vilket ger upphov till en boolesk algebra .
För skärningsoperationen kan man konstruera en VPA M som simulerar två givna VPAs och genom en enkel produktkonstruktion ( Alur & Madhusudan 2004) : För , antag att ges som . Sedan för automaten M är uppsättningen tillstånd , initialtillståndet är , uppsättningen av sluttillstånd är , stapelalfabetet ges av och den initiala stacksymbolen är .
Om är i tillståndet vid läsning av en anropssymbol , sedan trycker på stacksymbolen och går till status , där är stacksymbolen som trycks av vid övergång från tillstånd till vid läsningsinmatning .
Om är i tillståndet vid läsning av en intern symbol , då går till tillstånd , närhelst övergår från tillstånd till vid läsning av en .
Om är i tillståndet vid läsning av en retursymbol , sedan öppnar symbolen från stacken och går till status , där är stacksymbolen som visas av vid övergång från ange till vid läsning av .
Korrektheten av ovanstående konstruktion bygger i avgörande grad på det faktum att push- och pop-aktionerna för de simulerade maskinerna och synkroniseras längs med de lästa ingångssymbolerna. Faktum är att en liknande simulering inte längre är möjlig för deterministiska pushdown-automater , eftersom den större klassen av deterministiska kontextfria språk inte längre är stängda under skärningspunkten.
I motsats till konstruktionen för sammanlänkning som visas ovan, är komplementkonstruktionen för synligt pushdown-automater parallell med standardkonstruktionen för deterministiska pushdown-automater.
Dessutom, liksom klassen av kontextfria språk, stängs klassen av synligt pushdown-språk under prefix stängning och reversering, därav också suffix stängning.
Relation till andra språkklasser
Alur & Madhusudan (2004) påpekar att de synligt pushdown-språken är mer generella än de parentesspråk som föreslås i McNaughton (1967) . Som framgår av Crespi Reghizzi & Mandrioli (2012) , är de synligt pushdown-språken i sin tur strikt inkluderade i den klass av språk som beskrivs av operatörsprecedensgrammatiker , som introducerades av Floyd (1963) och åtnjuter samma stängningsegenskaper och egenskaper (se Lonati et al (2015) för ω-språk och logik och automatbaserade karakteriseringar). I jämförelse med konjunktiva grammatiker , en generalisering av sammanhangsfria grammatiker, visar Okhotin (2011) Tabellen i slutet av denna artikel sätter familjen av synligt pushdown-språk i relation till andra språkfamiljer i Chomsky-hierarkin . Rajeev Alur och Parthasarathy Madhusudan relaterade en underklass av vanliga binära trädspråk till synligt pushdown-språk.
Andra beskrivningsmodeller
Synligt pushdown-grammatik
Synligt pushdown-språk är exakt de språk som kan beskrivas med synligt pushdown-grammatik .
Synligt pushdown-grammatik kan definieras som en begränsning av sammanhangsfria grammatiker . En synligt pushdown grammatik G definieras av 4- tupeln :
var
- och är disjunkta ändliga mängder; varje element kallas ett icke-terminalt tecken eller en variabel . Varje variabel representerar en annan typ av fras eller klausul i meningen. Varje variabel definierar ett underspråk till språket som definieras av , och underspråken för är det utan väntande anrop eller väntande returer.
- är en ändlig uppsättning terminal s, disjunkt från , som utgör meningens faktiska innehåll. Uppsättningen av terminaler är alfabetet för språket som definieras av grammatiken .
-
är en ändlig relation från till så att . Medlemmarna av kallas (omskriv)regeln eller produktionen av grammatiken. Det finns tre typer av omskrivningsregler. För a och
- och om så och
- och om så
- är startvariabeln (eller startsymbolen ), som används för att representera hela meningen (eller programmet).
Här representerar asterisken Kleene stjärnoperationen och är det tomma ordet.
Uniforma booleska kretsar
Problemet om ett ord med längden accepteras av en given kapslad ordautomat kan lösas med enhetliga booleska kretsar med djup .
Logisk beskrivning
Reguljära språk över kapslade ord är exakt den uppsättning språk som beskrivs av monadisk andra ordningens logik med två unära predikat call and return , linjär efterföljare och matchningsrelationen ↝.
Se även
Anteckningar
- ^ Google Scholar-sökresultat för "kapslade ord" ELLER "visibly pushdown"
- ^ a b c d e f g Alur & Madhusudan (2009)
- ^ a b Alur & Madhusudan (2004)
- ^ Hopcroft & Ullman (1979 , s. 238 f).
- ^ Alur, R.; Madhusudan, P. (2004). "Synligt pushdown-språk" (PDF) . Proceedings från det trettiosjätte årliga ACM-symposiet om datorteori - STOC '04 . s. 202–211. doi : 10.1145/1007352.1007390 . ISBN 978-1581138528 . S2CID 7473479 . Sektion 4, Sats 5,
- ^ Alur, R.; Madhusudan, P. (2009). "Lägga till häckande struktur till ord" (PDF) . Journal of the ACM . 56 (3): 1–43. CiteSeerX 10.1.1.145.9971 . doi : 10.1145/1516512.1516518 . S2CID 768006 . Sektion 7
- Floyd, RW (juli 1963). "Syntaktisk analys och operatörsföreträde". Journal of the ACM . 10 (3): 316–333. doi : 10.1145/321172.321179 . S2CID 19785090 .
- McNaughton, R. (1967). "Grammatik för parentes" . Journal of the ACM . 14 (3): 490–500. doi : 10.1145/321406.321411 . S2CID 10926200 .
- Alur, R.; Arenas, M.; Barcelo, P.; Etessami, K.; Immerman, N.; Libkin, L. (2008). Grädel, Erich (red.). "Första ordningens och tidsmässiga logik för kapslade ord". Logiska metoder i datavetenskap . 4 (4). arXiv : 0811.0537 . doi : 10.2168/LMCS-4(4:11)2008 . S2CID 220091601 .
- Crespi Reghizzi, Stefano; Mandrioli, Dino (2012). "Operatörsföreträde och den synliga pushdown-egenskapen" . Tidskrift för data- och systemvetenskap . 78 (6): 1837–1867. doi : 10.1016/j.jcss.2011.12.006 .
- Lonati, Violetta; Mandrioli, Dino; Panella, Federica; Pradella, Matteo (2015). "Operatorprecedensspråk: deras automatteoretiska och logiska karaktärisering". SIAM Journal on Computing . 44 (4): 1026–1088. doi : 10.1137/140978818 . hdl : 2434/352809 .
- Okhotin, Alexander: Jämföra linjära konjunktiva språk med underfamiljer av de kontextfria språken, 37:e internationella konferensen om aktuella trender inom teori och praktik inom datavetenskap (SOFSEM 2011).
- Hopcroft, John E.; Ullman, Jeffrey D. (1979). Introduktion till automatteori, språk och beräkningar . Addison-Wesley. ISBN 978-0-201-02988-8 .
externa länkar
- Kapslade ord och synligt pushdown-språk
- Visibly pushdown automata – Automata på kapslade ord
- klass VPL på Complexity Zoo