Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Wat zijn enkele voorbeelden van onbeslisbare talen en hoe verschillen ze van beslisbare talen?
Onbeslisbare talen zijn talen waarvoor geen algoritme (Turing-machine) kan bestaan ​​dat voor elke invoerstring correct beslist of die string lid is van de taal. Beslisbare talen daarentegen *hebben* zo'n algoritme. Het belangrijkste verschil ligt in het bestaan ​​van een gegarandeerd stopalgoritme.

Hier zijn enkele voorbeelden van onbeslisbare talen, die verschillende manieren illustreren waarop onbeslisbaarheid ontstaat:

1. Het stopprobleem (H):

* Taalbeschrijving: H ={⟨M, w⟩ | Turingmachine M stopt bij invoer w}. Deze taal bestaat uit alle paren van de codering van een Turing-machine (⟨M⟩) en een invoerreeks (w), zodat de machine M stopt wanneer invoer wordt gegeven.

* Onbeslisbaarheid: Het is bewezen dat er geen algoritme kan bestaan ​​dat voor elke ⟨M, w⟩ correct bepaalt of M stopt op w. Dit is een fundamenteel resultaat in de berekenbaarheidstheorie. Elke poging om een ​​dergelijk algoritme te bouwen leidt tot een tegenstrijdigheid (meestal door middel van diagonalisatie).

* Waarom het onbeslisbaar is: De onbeslisbaarheid van het stopprobleem komt voort uit het inherente zelfreferentiële karakter van Turing-machines. Een hypothetisch algoritme dat het stopprobleem oplost, zou kunnen worden gebruikt om een ​​paradoxale machine te creëren die zijn eigen voorspelde gedrag tegenspreekt.

2. Het acceptatieprobleem (A):

* Taalbeschrijving: A ={⟨M, w⟩ | Turingmachine M accepteert w}. Dit is vergelijkbaar met het stopprobleem, maar richt zich specifiek op acceptatie (de machine stopt in een accepterende toestand).

* Onbeslisbaarheid: Ook dit is onbeslisbaar. Als we A zouden kunnen beslissen, zouden we ook H kunnen beslissen (want als M w accepteert, stopt het duidelijk op w). Omdat H onbeslisbaar is, moet A ook onbeslisbaar zijn.

3. Het leegteprobleem voor Turingmachines (E):

* Taalbeschrijving: E ={⟨M⟩ | L(M) =∅} waarbij L(M) de taal is die wordt geaccepteerd door Turingmachine M. Deze taal bevat de coderingen van alle Turingmachines die helemaal geen strings accepteren (hun taal is leeg).

* Onbeslisbaarheid: Er is geen algoritme dat voor elke Turingmachine M kan bepalen of L(M) leeg is. Dit houdt verband met het stopprobleem; als we E zouden kunnen oplossen, zouden we het stopprobleem kunnen oplossen door een machine M' te construeren die stopt als en slechts dan als M stopt en w accepteert.

4. Postcorrespondentieprobleem (PCP):

* Taalbeschrijving: Dit is een complexer voorbeeld waarbij paren van strings betrokken zijn. Het is onbeslisbaar om te bepalen of een gegeven set stringparen een oplossing heeft (een aaneenschakeling van strings uit de paren die overeenkomen).

* Onbeslisbaarheid: De onbeslisbaarheid van PCP wordt bewezen met behulp van reducties (waaruit blijkt dat als PCP beslisbaar zou zijn, het stopprobleem ook beslisbaar zou zijn – een tegenstrijdigheid).

Beslisbare talen – Contrast:

Beslisbare talen daarentegen *hebben* algoritmen die strings altijd stoppen en correct classificeren als behorend tot de taal of niet. Voorbeelden zijn onder meer:

* De taal van palindromen: Een algoritme kan eenvoudig controleren of een gegeven string zowel voorwaarts als achterwaarts hetzelfde is.

* De taal van tekenreeksen die "abc" bevatten: Een eenvoudig algoritme kan een string scannen en controleren op de substring "abc".

* De taal van binaire tekenreeksen met even lengte: Een algoritme kan de lengte van de string controleren.

In essentie komt het verschil neer op de vraag of een algoritme kan worden ontworpen om *altijd* binnen een beperkte tijd een correct ja/nee-antwoord te geven. Voor onbeslisbare talen is een dergelijk algoritme aantoonbaar onmogelijk te creëren. Het bestaan ​​van een dergelijk algoritme is het bepalende kenmerk dat beslisbare van onbeslisbare talen onderscheidt.

Previous: Next:
  Computer Programming Languages
·Hoe maak je een lijst van punt…
·Hoe om SMS te verzenden met AS…
·Hoe maak je een Binary Search …
·Is Basic een taal- of computer…
·Wat is de betekenis van tekstu…
·Hoe de cursor Attribute Delete…
·Decimaal Vs . Nummer Data Type…
·Hoe kan ik meerdere lijnen in …
·VB.Net & Hoe Business Objects …
  Related Articles
Waarom zijn strings onveranderlijk in pr…
Welke rol speelt een tolk bij het progra…
Wat is de tijdscomplexiteit van priorite…
Wat is de tijdscomplexiteit van een if-i…
Wat is de syntaxis voor het weergeven va…
Wat is de betekenis van het gebruik van …
Wat is de betekenis van reguliere en nie…
Wat is de betekenis van intersectieconte…
Wat is de betekenis van het hash-symbool…
  Programmering Articles
·Hoe maak je een Xbox 360 Game Met behulp…
·Hoe de SOM -functie in MySQL Gebruik 
·Hoe te Letters converteren naar Binary 
·Hoe voer je een programma uit in Python …
·Hoe kan ik een tekst in VB.Net 
·Hoe een lege DIV verbergen 
·Silverlight 2 Aangepast besturingselemen…
·Hoe te Integers lezen in Perl 
·Hoe te QCP Play 
Copyright © Computer Kennis https://www.nldit.com