Esistono prove non costruttive dell'esistenza di "piccole" macchine di Turing / NFA?


11

Dopo aver letto una domanda correlata , sulle prove di esistenza non costruttive degli algoritmi, mi chiedevo se ci sono metodi per mostrare l'esistenza di macchine di calcolo "piccole" (diciamo, per quanto riguarda lo stato) senza effettivamente costruirlo.

formalmente:

supponiamo che ci venga dato un po 'di linguaggio e risolto alcuni modelli di calcolo (NFA / macchina di turing / ecc.).LΣ

Ci sono dei risultati di esistenza non-costruttive che mostrano un macchina -Stato per L esiste, ma senza la capacità di trovare (in p o l y ( n , | Σ | ) tempo) esso?nLpoly(n,|Σ|)

Ad esempio, esiste qualche linguaggio regolare per cui possiamo mostrare n s c ( L ) n ma non sappiamo come costruire un automa n-state per?Lnsc(L)nn

( è la complessità dello stato non deterministico di L , ovvero il numero di stati nell'NFA minimo che accetta L ).nsc(L)LL


EDIT: dopo alcune discussioni con Marzio (grazie!) Penso di poter formulare meglio la domanda come segue:

Esiste una lingua e un modello di calcolo per i quali vale quanto segue:L

  1. Sappiamo come costruire una macchina che calcoli che abbia m stati.Lm

  2. Abbiamo una prova che macchina -precisi per L esiste (dove n < < m ), ma o non riusciamo a trovare affatto o che sarebbe prendere tempo esponenziale per calcolarlo.nLn<<m


che cos'è nsc (L)? la domanda sembra legata alla compressione / complessità di Kolmogorov che chiede di trovare macchine piccole (est) per rappresentare stringhe ...
vzn

nsc (L) è la complessità dello stato non deterministico di L (il numero di stati nel NFA più piccolo che accetta L).
RB

un'altra idea / angolo, forse ci sono alcune "piccole" classi di circuiti (un altro modello di calcolo) per le quali è dimostrato che possono calcolare determinate funzioni ma la costruzione effettiva è complicata? SJ ha recentemente menzionato Barrington che i programmi di diramazione di larghezza 5 possono calcolare la maggioranza ...?
vzn

@vzn La dimostrazione del teorema di Barrington fornisce una semplice procedura per convertire le formule in programmi di ramificazione.
Sasho Nikolov,

1
xO(2n)xx|M|<|x|

Risposte:


8

Solo un commento esteso con un esempio banale; puoi scegliere la lingua a un elemento:

Lk={Mσ(M)=Σ(k)}

Lkkk

kLk2k(logk+2)


Mentre sono d'accordo che funzioni, stavo cercando l'esistenza che mostrava tecniche per il linguaggio esplicitamente dato L.
RB

3
Che cos'è una "lingua esplicitamente data"?
Jeffε


2

Un'altra soluzione è usare il lemma di Higman :

Una lingua chiusa sotto le parole chiave è normale.

uvuv

Quindi prendi qualsiasi lingua L, la sua chiusura della parola secondaria è regolare ma non è affatto costruibile poiché L è arbitraria.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.