Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> Computer Programming Languages >> Content
Wat is een voorbeeld van onbeslisbare taal?
Een van de beroemdste voorbeelden van een onbeslisbare taal is het Halting-probleem .

Het stopprobleem:

Het stopprobleem is het probleem van het bepalen, gegeven een beschrijving van een willekeurig computerprogramma en een invoer, of het programma zal eindigen of voor altijd zal blijven draaien. Meer formeel wordt gevraagd:

* Invoer: `` waarbij:

* `P` is een Turing Machine (of een representatie van een computerprogramma voor algemene doeleinden).

* `I` is de invoer voor de Turingmachine `P`.

* Uitvoer:

* "Ja" als de Turingmachine `P` stopt (de uitvoering voltooit) wanneer invoer `I` wordt gegeven.

* "Nee" als de Turingmachine `P` niet stopt (voor altijd blijft herhalen) wanneer invoer `I` wordt gegeven.

Waarom het onbeslisbaar is:

Het stopprobleem is onbeslisbaar, wat betekent dat er *geen* Turingmachine (of algoritme) bestaat die het stopprobleem correct kan oplossen voor *alle* mogelijke invoer ``.

Het bewijs wordt doorgaans gedaan door middel van tegenspraak. Neem aan dat er *een* Turingmachine `H` bestaat die het stopprobleem oplost. `H` neemt `` als invoer en geeft "Ja" als uitvoer als `P` stopt op `I`, en "Nee" als `P` voor altijd doorloopt op `I`.

Vervolgens kunnen we een andere Turing Machine `D` construeren (vaak de "diagonalizer" genoemd) die `H` als subroutine gebruikt:

```

Turingmachine D(P):

1. Voer H(P, P) uit // Voer H uit met P als zowel het programma als de invoer

2. Als H(P, P) "Ja" retourneert (P stopt op ingang P):

Loop dan voor altijd.

3. Als H(P, P) "Nee" retourneert (P loopt eeuwig door op ingang P):

Stop dan.

```

Wat gebeurt er nu als we `D` uitvoeren met zichzelf als invoer:`D(D)`?

* Scenario 1:Stel dat `D(D)` stopt.

- Dit betekent dat `H(D, D)` in stap 1 "Ja" retourneerde (omdat `D` stopt als en slechts als `H(D, D)` zegt dat `D` stopt bij invoer `D`).

- Maar als `H(D, D)` "Ja" retourneert, dan is `D` ontworpen om voor altijd in een lus te blijven (in stap 2). Dit is in tegenspraak met onze veronderstelling dat 'D(D)' stopt.

* Scenario 2:Stel dat `D(D)` eeuwig doorloopt.

- Dit betekent dat `H(D, D)` in stap 1 "Nee" retourneerde (omdat `D` voor altijd doorloopt als en slechts als `H(D, D)` zegt dat `D` doorloopt op ingang `D`).

- Maar als `H(D, D)` "Nee" retourneert, dan is `D` ontworpen om te stoppen (in stap 3). Dit is in tegenspraak met onze veronderstelling dat `D(D)` eeuwig doorloopt.

Omdat beide scenario's tot een tegenstrijdigheid leiden, moet onze aanvankelijke aanname dat er een Turingmachine 'H' bestaat die het Halting-probleem oplost, onjuist zijn. Daarom is het stopprobleem onbeslisbaar.

In eenvoudiger bewoordingen: Je kunt geen programma schrijven dat altijd op betrouwbare wijze kan voorspellen of een ander programma uiteindelijk zal stoppen of voor altijd zal blijven draaien.

Betekenis:

De onbeslisbaarheid van het Halting-probleem heeft diepgaande gevolgen voor de informatica. Het laat zien dat er fundamentele grenzen zijn aan wat computers kunnen berekenen. Het dient ook als basis voor het bewijzen van de onbeslisbaarheid van veel andere problemen. Als je kunt aantonen dat het oplossen van een ander probleem je ook het Halting Probleem zou kunnen oplossen, dan moet dat andere probleem ook onbeslisbaar zijn.

Previous: Next:
  Computer Programming Languages
·De functie van de F - statisti…
·Hoe je BASIC Stamp Split I /O …
·Wat is een PCM -formaat 
·Hoe maak je een Lisp Macro Cre…
·Hoe te formulieren bewerken in…
·Beperkingen van Fuzzy Logic 
·De functie van Len 
·Functie van AS3 klasse Sprite 
·Hoe kan ik apps importeren naa…
  Related Articles
Waarom is een string onveranderlijk in p…
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 je Kladblok bewerken Met VB6 
·JPEG File Recovery 
·Hoe maak je een GNU -bestand voor Make C…
·Hoe u met Visual Basic Access 
·Relatie tussen JVM geheugen & Heap Size 
·Programma dat een enkel geheel getal-arg…
·JavaScript vs Java-applets Robuust 
·Redirect Vs . Voorwaarts in Java 
·Hoe je het gebruik van PHP System functi…
Copyright © Computer Kennis https://www.nldit.com