Eine Variante der Busy-Beaver-Funktion

9

Als ich diese Frage " Natürliche RE unentscheidbare Probleme, aber nicht Turing-vollständig " las, kam mir folgende Sprache in den Sinn:

Wenn die beschäftigte Biberfunktion ist (maximal erreichbare Punktzahl unter allen anhaltenden Turing-Maschinen mit 2 Symbolen und n-Zustand des oben beschriebenen Typs, wenn sie auf einem leeren Band gestartet werden), definieren Sie die Funktion:Σ()

BB(M)={1M computes Σ()0 otherwise

Definieren Sie nun die Sprache:

L.={M.|M. hält an und B.B.(M.)=0}}

Ist rekursiv aufzählbar? (Es sollte re: simulieren Sie einfach parallel M mit allen TMs gleicher Länge, und wenn anhält und ein anderes mit einer höheren Punktzahl anhält, fügen Sie M zur Aufzählung hinzu).M M 'L.M.M.'

Können wir das Halteproblem auf reduzieren ? (Es scheint, dass es das Anhalten der beschäftigten Biber nicht "erfassen" kann)L.

Vor
quelle
Istdie Anzahl der Staaten? |M.|
Pål GD
Wann werden Sie ein aufzählen , das nicht in ? kann nicht RE sein, es sei denn, Sie listen alle seine Mitglieder auf, und die von Ihnen beschriebene Prozedur zählt nur diejenigen auf, die tatsächlich anhalten. L L.M.L.L.
Steven Stadnicki
@ PålGD: Ja, es ist die Anzahl der Zustände (Stoppzustand ausgeschlossen)
Vor
@StevenStadnicki: Ich habe implizit angenommen, dass nur Maschinen enthält, die anhalten ... vielleicht sollte ich es in der Frage klarstellen (lassen Sie mich ein wenig darüber nachdenken, vielleicht macht es die Frage trivial). L.
Vor dem
2
@Kaveh Es ist nicht einmal ein Versprechen Problem - Sie können einfach definieren als (wie ich die OP soll glauben) L = { M | M stoppt B B ( M ) = 0 } . L.L.={M.|M. hält anB.B.(M.)=0}}
Steven Stadnicki

Antworten:

3

Ich kann nicht glauben, dass ich das vorher nicht gesehen habe - aber ja, mit einem Orakel für Sie das Halteproblem lösen. Offensichtlich gibt uns ein Orakel für L "rekursiv" alle nicht beschäftigten Biber-Haltemaschinen, daher lautet die Frage "können wir rekursiv in L herausfinden, was die beschäftigten Biber sind?". Definieren Sie Σ 2 ( n ) als Zählfunktion des 'zweitgrößten Bibers'; das heißt, die zweithöchste erreichbare Punktzahl unter allen haltenden TMs mit zwei Symbolen und n- Zuständen. Der Trick dabei ist, dass es eine rekursive Funktion f ( ) gibt, so dass Σ ( n ) Σ 2 istLLLΣ2(n)nf() (es ist fast sicher, dass f ( n ) = n + 1 tatsächlich den Trick macht, aber das erfordert das Wissen, dass die BB-Funktion streng zunimmt): bei einer Maschine M der Größe n , die Σ druckt ( M ) 1s auf dem Band und dann angehalten, gibt es einige c > 1 und zwei Maschinen mit einer Größe von jeweilsc n , die genau Σ ( M ) 1s und genau Σ ( M ) drucken.Σ(n)Σ2(f(n))f(n)=n+1M.nΣ(M.)c>1cnΣ(M.) 1s auf ihren Bändern - und dies gilt für eine 'beschäftigte Biber'-Maschine M , obwohl wir M nicht explizit kennen. Dies bedeutetdass ein auf dem ‚zweiten Besetzt Beaver‘ -Funktion für gebunden ist f ( n ) gibt ein für die Besetztbiber Funktion gebunden n ; aber dann dieses ist, ist es einfachdas Halteproblem für eine TM zu lösen M der Größe n - wennM ⟩ & egr ; L dann sagendass M stoppt; Andernfalls finden Sie die am längsten laufende Maschine der Größe f ( n ) in L.Σ(M.)+1M. M.f(n)nM.nM.L.M.f(n)L.(Dies kann rekursiv erfolgen, da es nur endlich viele Maschinen der Größe ) und simulieren M für so viele Schritte, wie diese Maschine zum Anhalten benötigt. Wenn M innerhalb dieser Zeit nicht anhält, kann M unmöglich anhalten.f(n)M.M.M.

Steven Stadnicki
quelle
Vielen Dank; Inspiriert von Ihrer Antwort fand ich eine schnelle (triviale) -: direkte Reduzierung des Halteproblems in einer separaten Antwort.
Vor dem
3

Dies ist eine überarbeitete Version von Stevens guter Antwort mit einer expliziten Reduzierung des Halting-Problems.

Angesichts build M ' , die ausgeführt werden M auf w und wenn es nach rechts des Band stoppt geht, schreibt einen 0 und Halt.M.,wM.'M.w

Wenn anhält, ist B B ( M ' ) = 0, weil es ein äquivalentes TM derselben Größe gibt, das eine 1 schreibt und anhält; Wir können also den Entscheider für L verwenden , um zu überprüfen, ob M auf w anhält ( M an w anhält, wenn M 'L ist ).M.'B.B.(M.')=0L.M.wM.wM.'L.

... es stellte sich heraus, dass die Frage in der Tat trivial ist :-)

Vor
quelle