Kanalsystem (datavetenskap)

Inom datavetenskap är ett kanalsystem en finita-tillståndsmaskin som liknar kommunicerande finite-state-maskin där det finns ett enda system som kommunicerar med sig själv istället för att många system kommunicerar med varandra. Ett kanalsystem liknar en pushdown-automat där en kö används istället för en stack. Dessa köer kallas kanaler . Intuitivt representerar varje kanal en sekvens ett meddelande som ska skickas och läsas i den ordning som de skickas.

Definition

Kanalsystem

definieras ett kanalsystem (eller perfekt kanalsystem ) med:

  • en ändlig uppsättning kontrolltillstånd ,
  • ett initialt tillstånd ,
  • ett ändligt alfabet (för enkelhetens skull, låt ),
  • en ändlig uppsättning kanaler ,
  • ett ändligt alfabet av meddelanden ,
  • med är uppsättningen av ändliga (potentiellt tomma) ord över alfabetet .

Beroende på författaren kan ett kanalsystem inte ha något initialtillstånd och kan ha ett tomt alfabet.

Konfiguration

En konfiguration eller globalt tillstånd för kanalsystemet är en tuppel som tillhör . Intuitivt representerar en konfiguration att en körning är i tillståndet och att dess -e kanal innehåller ordet .

Den initiala konfigurationen är , med det tomma ordet.

Steg

Intuitivt betyder en övergång att systemet kan gå till kontrolltillstånd till genom att skriva ett i slutet av kanalen . På liknande sätt att systemet kan gå till kontrolltillstånd till genom att ta bort a som börjar med ordet .

Formellt, givet en konfiguration och en övergång det finns ett perfekt steg displaystyle till slutet av det -te ordet. På liknande sätt, givet en övergång , finns det ett perfekt steg i -te ordet är och har tagits bort under steget.

Springa

En perfekt körning är en sekvens av perfekta steg, av formen . Vi låter beteckna att det finns en perfekt körning som börjar vid och slutar på .

språk

Givet ett perfekt eller ett förlustkanalsystem kan flera språk definieras.

Ett ord över accepteras av om det är sammanlänkningen av etiketterna för en körning av . Språket som definieras av är den uppsättning ord som accepteras av .

Uppsättningen av nåbar konfiguration av , betecknad definieras som uppsättningen av konfiguration som kan nås från initialtillståndet. Dvs som uppsättningen av konfigurationer så att .

Givet en kanal , är kanalen för uppsättningen av tupler såsom att .

Kanalsystem och Turingmaskin

De flesta problem relaterade till perfekt kanalsystem är oavgjorda. Detta beror på det faktum att en sådan maskin kan simulera körningen av en Turing-maskin . Denna simulering är nu skissad.

Givet en Turing-maskin finns det ett perfekt kanalsystem så att varje körning av av längden kan simuleras med en körning av av längden . Intuitivt består denna simulering helt enkelt av att ha hela bandet från den simulerade Turing-maskinen i en kanal. Innehållskanalen läses sedan i sin helhet och skrivs omedelbart om i kanalen, med ett undantag ändras den del av innehållet som representerar Turing-maskinens huvud, för att simulera ett steg i Turing-maskinens beräkning.

Varianter

Flera varianter av kanalsystem har introducerats. De två varianterna som introduceras nedan tillåter inte att simulera en Turing-maskin och gör att flera problem av intresse kan avgöras.

Enkanalsmaskin

En enkanalsmaskin är ett kanalsystem som använder en enda kanal. Samma definition gäller även för alla varianter av kanalsystem.

Räknarmaskin

När alfabetet i ett kanalsystem innehåller ett enda meddelande, är varje kanal i huvudsak en räknare. Av detta följer att dessa system i huvudsak är Minsky - maskiner . Vi kallar sådana system för räknarmaskiner . Samma definition gäller för alla varianter av kanalsystem.

Fullständigt specificerat protokoll

Ett fullständigt specificerat protokoll (CSP) definieras exakt som ett kanalsystem. Men begreppen steg och körning definieras olika.

En CSP tillåter två typer av steg. Perfekta steg, enligt definitionen ovan, och ett övergångssteg för meddelandeförlust . Vi betecknar en meddelandeförlustövergång steg med .

Löshet

Ett förlustkanalsystem eller maskin som kan göra förlustfel är en förlängning av ett fullständigt specificerat protokoll där bokstäver kan försvinna var som helst.

Ett förlustkanalsystem tillåter två typer av steg. Perfekta steg, enligt definitionen ovan, och förluststeg. Vi betecknar ett förluststeg, .

En körning där kanal töms så snart meddelanden skickas in i dem är en giltig körning enligt denna definition. Av denna anledning kan vissa skälighetsvillkor införas för dessa system.

Kanalens rättvisa

Givet ett meddelande en kanal sägs en körning vara kanal rättvis med avseende på om, förutsatt att det finns oändligt många steg i vilka ett brev skickas till då finns det oändligt många steg där en bokstav läses från .

En beräkning sägs vara rättvis kanal om den är rättvis kanal med avseende på varje kanal .

Opartiskhet

Opartiskhetsvillkoret är en begränsning av kanalens rättvisa villkor där både kanalen och brevet beaktas.

Givet ett meddelande och en kanal sägs en körning vara opartisk med avseende på och om, förutsatt att det finns oändligt många steg där skickas till så finns det oändligt många steg där läses från .

En beräkning sägs vara opartisk med avseende på en kanal om den är opartisk med avseende på och meddelanden . Det sägs vara opartiskt om det är opartiskt med avseende på alla kanaler .

Budskapens rättvisa

Message fairness-egenskapen liknar opartiskhet, men villkoret måste bara gälla om det finns ett oändligt antal steg där kan läsas. Formellt sägs en körning vara meddelande rättvist med avseende på och om, förutsatt att det finns oändligt många steg i vilka skickas till , och oändligt många steg som inträffar i ett tillstånd så att det finns en övergång , då finns det oändligt många steg där läses från .

Begränsadhet

Körningen sägs ha begränsad förlust om antalet bokstav som tas bort mellan två perfekta steg är begränsat.

Införande av fel

En maskin som kan infoga fel är en förlängning av kanalsystem där bokstäver kan förekomma var som helst.

En maskin som kan infoga fel tillåter två typer av steg. Perfekta steg, enligt definitionen ovan, och insättningssteg. Vi betecknar en infogning steg med .

Dupliceringsfel

En maskin som kan duplicera fel är en förlängning av maskin som kan infoga fel där den infogade bokstaven är en kopia av den föregående bokstaven.

En maskin som kan infoga fel tillåter två typer av steg. Perfekta steg, enligt definitionen ovan, och dupliceringssteg. Vi betecknar en infogning steg med .

En icke-duplicerad maskin som kan duplicera fel är en maskin som säkerställer att bokstäverna i varje kanal växlar mellan en speciell ny bokstav # och en vanlig bokstav från meddelandets alfabet. Om det inte är fallet betyder det att en duplicering inträffade och körningen avvisas. Denna process gör det möjligt att koda vilket kanalsystem som helst till en maskin som kan duplicera fel, samtidigt som den tvingar den att inte ha fel. Eftersom kanalsystem kan simulera maskiner, följer det att maskiner som kan duplicera fel kan simulera Turing-maskin.

Egenskaper

Uppsättningen av konfigurationer som kan nås är igenkännbara för maskiner med förlust av kanaler och maskiner som kan infoga fel. Den är rekursivt uppräknad för maskin som kan duplicera fel.

Problem och deras komplexitet

Det här avsnittet innehåller en lista över problem över kanalsystem och deras bestämbarhet av komplexitet över varianter av sådana system.

Uppsägningsproblem

Avslutningsproblemet består i att bestämma, givet ett kanalsystem och en initial konfiguration om alla körningar av som börjar vid är ändliga. Detta problem kan inte avgöras över perfekta kanalsystem, även när systemet är en motmaskin eller när det är en enkanalsmaskin.

Detta problem är avgörbart men icke primitivt rekursivt över förlustkanalsystem. Detta problem är trivialt avgörbart över maskin som kan infoga fel.

Nåbarhetsproblem

Nåbarhetsproblemet består i att bestämma, givet ett kanalsystem och två initiala konfigurationer och om det finns en körning av från till . Detta problem är oavgörbart över perfekta kanalsystem och avgörbart men icke primitivt rekursivt över förlustkanalsystem. Detta problem kan avgöras över maskin som kan infoga fel.

Nåbarhetsproblem

Deadlock -problemet består i att bestämma om det finns en nåbar konfiguration utan efterföljare. Detta problem kan avgöras över förlustkanalsystem och trivialt avgörbart över maskin som kan infoga fel. Det är också avgörbart över disk maskin.

Problem med modellkontroll

Modellkontrollproblemet består i att avgöra om det ges ett system och en CTL* * -formel eller en LTL -formel eller om språket som definieras av uppfyller . Detta problem är oavgörbart över förlustkanalsystem.

Återkommande tillståndsproblem

Det återkommande tillståndsproblemet består i att bestämma, givet ett kanalsystem och en initial konfiguration och ett tillstånd om det finns en körning av , börjar vid , går oändligt ofta genom tillstånd . Detta problem kan inte avgöras över förlustkanalsystem, även med en enda kanal.

Motsvarande finita tillståndsmaskin

Givet ett system finns det ingen algoritm som beräknar en finit tillståndsmaskin som representerar för klassen av förlustkanalsystem. Detta problem kan avgöras över maskin som kan infoga fel.

Begränsningsproblem

Begränsningsproblemet består i att bestämma om uppsättningen av nåbara konfigurationer är ändlig . Dvs längden på innehållet i varje kanal är begränsad. Detta problem är trivialt avgörbart över maskin som kan infoga fel. Det är också avgörbart över disk maskin.

Så småningom fastigheter

Eventualitetsegenskapen , eller ofrånkomlighetsegenskapsproblemet består i att bestämma, givet ett kanalsystem och en uppsättning av konfigurationer om alla körs av med början på går igenom en konfiguration av . Detta problem är oavgörligt för förlustkanalsystem med opartiskhet och med de två andra rättvisa begränsningarna.

Säkerhetsegenskap

Säkerhetsegenskapsproblemet består i att, givet ett kanalsystem och en vanlig uppsättning { avgöra om

Strukturell avslutning

Det strukturella avslutningsproblemet består i att, givet ett kanalsystem om termineringsproblemet gäller för för varje initial konfiguration. Detta problem kan inte avgöras även över diskmaskin.

Kommunicerande hierarkisk statsmaskin

Hierarkiska tillståndsmaskiner är ändliga tillståndsmaskiner vars tillstånd själva kan vara andra maskiner. Eftersom en kommunicerande finita tillståndsmaskin kännetecknas av samtidighet, är den mest anmärkningsvärda egenskapen i en kommunicerande hierarkisk tillståndsmaskin samexistensen av hierarki och samtidighet. Detta hade ansetts vara mycket lämpligt eftersom det betyder starkare interaktion inuti maskinen.

Det bevisades dock att samexistensen av hierarki och samtidighet i sig kostar språkinkludering, språkekvivalens och all universalitet.

  1. ^ a b Abdulla, Parosh Aziz; Jonsson, Bengt (1996). "Verifiera program med opålitliga kanaler" . Information och beräkning . 127 (2): 91–101. doi : 10.1006/inco.1996.0053 .
  2. ^ a b c d Schnoebelen, Ph (15 september 2002). "Att verifiera förlustkanalsystem har icke-primitiv rekursiv komplexitet". Informationsbehandlingsbrev . 83 (5): 251–261. doi : 10.1016/S0020-0190(01)00337-4 .
  3. ^ a b c d e f g h i j k l m n o Cécé, Gérard; Finkel, Alain (10 januari 1996). "Otillförlitliga kanaler är lättare att verifiera än perfekta kanaler" . Information och beräkning . 124 (1): 20–31. doi : 10.1006/inco.1996.0003 .
  4. ^ a b c d Mayr, Richard (17 mars 2008). "Oavgörliga problem i opålitliga beräkningar" . Teoretisk datavetenskap . 297 (1–3): 337–354. doi : 10.1016/S0304-3975(02)00646-1 .
  5. ^ a b c d e f g Abdulla, Parosh Aziz; Jonsson, Bengt (10 oktober 1996). "Oavgörliga verifieringsproblem för program med opålitliga kanaler" . Information och beräkning . 130 (1): 71–90. doi : 10.1006/inco.1996.0083 .
  6. ^ a b Rosier, Louis E.; Gouda, Mohamed G (1983). Bestämma framsteg för en klass av kommunicerande finita tillståndsmaskiner (Rapport).
  7. ^ Alur, Rajeev; Kannan, Sampath; Yannakakis, Mihalis. "Kommunicera hierarkiska tillståndsmaskiner," Automater, Språk och Programmering. Prag: ICALP, 1999