Äquivalente Definitionen der Zeitkonstruierbarkeit


13

Wir sagen , daß eine Funktion f:NN ist zeit konstruierbar , wenn es ein deterministisches Mehrbandturingmaschine existiert M daß an allen Eingängen der Länge n Fabrikate höchstens f(n) Schritte und für jeden n dort eine Eingabe besteht aus Länge n auf der M genau f(n) Schritte macht.

Wir sagen, dass eine Funktion vollständig zeitkonstruierbarf:NN ist , wenn es eine deterministische Multi-Tape-Turing-Maschine M gibt , die auf allen Eingaben der Länge n genau f ( n ) Schritte ausführt.Mnf(n)

F1: Gibt es eine Funktion, die zeitkonstruierbar und nicht vollständig zeitkonstruierbar ist?

Die Antwort ist ja (siehe diese Antwort ), wenn . Kann die Bedingung für "Ja" auf P N P verstärkt werden ? Kann "ja" bewiesen werden?EXPTIMENEXPTIMEPNP

Frage 2: Ändert sich die Klasse der (vollständig) zeitkonstruierbaren Funktionen, wenn wir in der Definition nur 2-Band-Turing-Maschinen zulassen?

F3: Was sind die "nachweisbaren" Gründe für die Annahme, dass alle netten Funktionen vollständig zeitkonstruierbar sind?

Der Aufsatz
Kojiro Kobayashi: Über das Beweisen der Zeitkonstruierbarkeit von Funktionen. Theor. Comput. Sci. 35: 215-225 (1985)
beantwortet teilweise Q3. Die teilweise Zusammenfassung und Aktualisierung davon ist in dieser Antwort . Ich nehme Q3 als beantwortet.

In der Vergangenheit wurde der Begriff der zählbaren Echtzeitfunktion anstelle der (vollständig) zeitkonstruierbaren Funktion verwendet. Siehe diese Frage für mehr.


Neugierig - könnten Sie mich auf eine Referenz für diese Definitionen verweisen? Ich kenne mich mit konstruierbaren Funktionen nicht aus und kann diese Definitionen online nicht finden (es ist mir auch nicht klar, ob sie zB den Wikipedia-Funktionen entsprechen).
Usul

@ usul Die Referenz ist: JE Hopcroft, JD Ullman. Einführung in die Automatentheorie, Sprachen und Berechnung. Addison-Wesley-Reihe in Computer Science, 1979 Dieselbe
David G

Antworten:


5

In den letzten Tagen habe ich viel über (vollständig) zeitkonstruierbare Funktionen nachgedacht und werde das, was ich herausgefunden habe, durch Beantwortung von Q1 und Q3 präsentieren. Q2 scheint zu schwer.

Q3:

Kobayashi in seinem Artikel (die Referenz in der Frage) bewiesen , dass eine Funktion , für die es ein existiert ε > 0 st f ( n ) ( 1 + ε ) n , ist voll Zeit konstruierbar iff es ist berechenbar in O ( f ( n ) ) Zeit. (Beachten Sie, dass es unerheblich ist, ob der Eingang oder der Ausgang unär / binär ist, da wir zwischen diesen beiden Darstellungen in linearer Zeit transformieren können). Dies macht die folgenden Funktionen vollständig zeitkonstruierbar: 2 n ,f:NNϵ>0f(n)(1+ϵ)nO(f(n))2n , n ! , n log n , alle Polynome p über N st p ( n ) ( 1 + ϵ ) n ... Kobayashi erwies sich auch für einige Funktionen, die langsamer als ( 1 + ϵ ) n werden ,als vollständig zeitkonstruierbar , wie n + log n q für q Q + ...22nn!nlognpNp(n)(1+ϵ)n(1+ϵ)nn+lognqqQ+

Um mit Beispielen für vollständig zeitkonstruierbare Funktionen fortzufahren, kann man beweisen, dass wenn und f 2 vollständig zeitkonstruierbar sind, dann f 1 +f1f2 , f 1 f 2 , f f 2 1 und f 1f 2 sind auch vollständig zeitkonstruierbar (die spätere folgt direkt aus Satz 3.1 in Kobayashi). Insgesamt hat mich das überzeugt, dass viele nette Funktionen in der Tat vollständig zeitkonstruierbar sind.f1+f2f1f2f1f2f1f2

Es ist überraschend, dass Kobayashi keinen Weg gefunden hat, die der (netten) Funktion n log n vollständig zu beweisen (und ich auch nicht).nlogn

Lassen Sie uns auch die Definition aus dem Wikipedia-Artikel kommentieren : Eine Funktion ist zeitkonstruierbar, wenn es eine Turing-Maschine M gibt , die bei einem String 1 n f ( n ) in O ( f ( n ) ) -Zeit ausgibt . fM1nf(n)O(f(n)) Wir sehen, dass diese Definition unserer Definition der vollständigen Zeitkonstruierbarkeit für Funktionen .f(n)(1+ϵ)n

Q1:

Diese Frage hat eine wirklich interessante Antwort. Ich beanspruche , dass , wenn alle Zeitfunktionen konstruierbar sind vollständig zeit konstruierbar, dann . Um dies zu beweisen, nehmen wir ein beliebiges Problem L N E X P - T I M E , L { 0 , 1 } . Dann gibt es eine k N , st LEXPTIME=NEXPTIMELNEXPTIMEL{0,1}kNL can be solved by a NDTM M in 2nk1 steps. We can assume that at each step M goes in at most two different states for simplicity. Now define the function

f(n)={8n+2if (first logn+1k bits of bin(n))L8n+1else

Ich behaupte, dass ist. Man betrachte die folgende deterministische Turingmaschine T :fT

  • bei Eingabe der Länge n wird berechnet ( erstes k wninO(n)Zeit(first logn+1k bits of bin(n))O(n)
  • dann simuliert es auf diesen Bits, wobei die Bits von w bestimmen, welche (früher nicht determinierten) Entscheidungen zu treffen sind.Mw
  • accept iff (M accepts using choices given by w).

Note that the length of w (=n) is enough that it determines all nondeterministic choices, since M on input (first logn+1k bits of bin(n)) makes at most n steps.

We can make T run in at most 8n+1 steps. Now the following Turing machine proves that f is time-constructible:

  • on input w of length n run T and count steps in parallel so that exacly 8n steps are done.
  • if T rejected or would reject in the next step, go to a halting state in the next step. Else, make one more step and then go to a halting state.

fEXPTIME=NEXPTIME

L

  • xnx000 (|x|k1 zeros). It follows that x=(first logn+1k bits of bin(n)).
  • compute f(n) in time f(n) and check whether it is divisible by 2.

This algorithm runs in exponential time and solves L. Since LNEXPTIME was arbitrary, EXPTIME=NEXPTIME.


4
Very nice! [padding to make the comment box happy]
Emil Jeřábek supports Monica

1
A very similar idea to the one presented in the answer to the question Q1 is also used here.
David G
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.