|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Är skillnaden mellan avgörande och igenkännbara språk i teoretisk datavetenskap tydlig för dig?

    Ja, skillnaden mellan avgörande och igenkännbara språk är helt tydlig. Skillnaden ligger i beteendet hos en Turing Machine (TM) som försöker bestämma medlemskap:

    * avgörande språk (rekursivt språk): Ett språk L är avgörande om det finns en Turing -maskin som för * varje * ingångssträng W, stoppar och korrekt svarar "Ja" om w ∈ L och "Nej" om W ∉ L. Detta betyder att TM alltid stoppar, oavsett om ingången är på språket eller inte.

    * igenkännligt språk (rekursivt ärligt språk): Ett språk L är igenkännligt om det finns en Turing -maskin som för * varje * inmatningssträng W, stoppar och svarar "Ja" om w ∈ L. Men om W ∉ L kan TM stoppa och svara "Nej" eller så kan det gå för alltid (slingan på obestämd tid). Nyckeln är att den * alltid * ger rätt svar ("ja") om strängen är på språket; Det är bara tillåtet att vara icke-deterministiskt eller misslyckas med att ge ett svar när strängen är * inte * på språket.

    I enklare termer:

    * Avgörbar: TM ger alltid ett definitivt svar (ja eller nej) i begränsad tid.

    * igenkänd: TM ger ett "ja" -svar i begränsad tid om ingången finns på språket, men kanske inte ger ett svar (genom att looping för evigt) om ingången inte finns på språket.

    Varje avgörande språk är också igenkänd. Men konversationen är inte sant; Det finns igenkännliga språk som inte är avgörande. Stoppproblemet är ett klassiskt exempel på ett språk som är igenkännligt men inte avgörande. En TM kan byggas som känner igen strängar som representerar att stoppa Turing -maskiner (det simulerar maskinen och svarar "Ja" om den stoppar), men ingen TM kan avgöra om en godtycklig Turing -maskin kommer att stoppa på en given ingång (eftersom det skulle lösa själva stoppproblemet).

    Skillnaden beror på huruvida TM garanterar uppsägning för alla ingångar (avgörande) eller bara garanterar ett "ja" -svar i begränsad tid för ingångar på språket (igenkännbart). Skillnaden är grundläggande i beräkningsteorin.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man läser en Pipe Separerad linje i ett Bash Array…
    ·Hur ändrar jag Alfanumerisk till Integer i COBOL
    ·Är det sant att ett kontextfritt språk är delmängd …
    ·Hur man kör VMware i en Linux Terminal
    ·Hur du tar bort ark utan bekräftelse med VBA
    ·Decimal Vs . Antal Datatyper
    ·Hur du skapar din egen UID Study instans
    ·Lägga Påminnelse Kommentarer Använda HTML-koder
    ·Ta bort filer med T - SQL
    ·Lägga till Side information till en Login Script
    Utvalda artiklarna
    ·JavaScript Beräkningar med decimaler
    ·Hur kör jag JSP Från en Eclipse
    ·Hur får man en miljövariabel i Java
    ·Hur man använder Prototype JS
    ·Konvertera Binary i PHP
    ·Hur man gör ett Visual Basic Image Uploader
    ·Hur programmet TI - 83 Plus Spel
    ·Hur man avgör jämna nummer från Odd Numbers Använda…
    ·Hur du programmera Cocoa på en iPhone
    ·Hur man bygger formulär Använda Cold Fusion
    Copyright © Dator Kunskap https://www.dator.xyz