Esempi in cui sono importanti le dimensioni dell'alfabeto (


9

Sia un alfabeto, cioè un insieme finito non vuoto. Una stringa è una sequenza finita di elementi (caratteri) da Σ . Ad esempio, { 0 , 1 } è l'alfabeto binario e 0110 è una stringa per questo alfabeto.ΣΣ{0,1}0110

Di solito, fintanto che contiene più di 1 elemento, il numero esatto di elementi in Σ non importa: nella migliore delle ipotesi finiamo con una costante diversa da qualche parte. In altre parole, non importa se usiamo l'alfabeto binario, i numeri, l'alfabeto latino o Unicode.ΣΣ

Ci sono esempi di situazioni in cui è importante quanto sia grande l'alfabeto?

La ragione per cui sono interessato a questo è perché mi è capitato di imbattermi in uno di questi esempi:

Per ogni alfabeto definiamo l'oracolo casuale O Σ un oracolo che restituisce elementi casuali da Σ , in modo tale che ogni elemento abbia le stesse probabilità di essere restituito (quindi la possibilità per ogni elemento è 1ΣOΣΣ).1|Σ|

Per alcuni alfabeti e Σ 2 - possibilmente di dimensioni diverse - prendere in considerazione la classe delle macchine per oracoli con accesso a O Σ 1 . Siamo interessati alle macchine degli oracoli di questa classe che si comportano allo stesso modo di O Σ 2 . In altre parole, vogliamo convertire un oracolo O Σ 1 in un oracolo O Σ 2 usando una macchina di Turing. Chiameremo una tale macchina di Turing un programma di conversione.Σ1Σ2OΣ1OΣ2OΣ1OΣ2

Sia e Σ = { 0 , 1 , 2 , 3 } . Convertire O Σ 1 in un oracolo O Σ 2 è facile: interrogiamo O Σ 1 due volte, convertendo i risultati come segue: 00 0 , 01 1 , 10 2 , 11 3 . Chiaramente, questo programma funziona in O (Σ1={0,1}Σ={0,1,2,3}OΣ1OΣ2OΣ1000011102113 tempo.O(1)

Ora lascia e Σ = { 0 , 1 , 2 } . Per queste due lingue, tutti i programmi di conversione vengono eseguiti in tempo O ( ) , ovvero non esistono programmi di conversione da O Σ 1 a O Σ 2 che vengono eseguiti in tempo O ( 1 ) .Σ1={0,1}Σ={0,1,2}O()OΣ1OΣ2O(1)

Ciò può essere dimostrato dalla contraddizione: supponiamo che esista un programma di conversione da O Σ 1 a O Σ 2 in esecuzione nel tempo O ( 1 ) . Ciò significa che esiste una d N tale che C fa al massimo d query a Σ 1 .COΣ1OΣ2O(1)dNCdΣ1

può eseguire meno di d query in determinati percorsi di esecuzione. Possiamo facilmente costruire un programma di conversione C ' che esegue C , tenendo traccia di quante volte è stata fatta una query oracle. Sia k il numero di query oracle. C quindi esegue d - k ulteriori interrogazioni sull'oracolo, scartando i risultati e restituendo ciò che C avrebbe restituito.CdCCkCdkC

In questo modo, ci sono esattamente percorsi di esecuzione per C . Esattamente 1|Σ1|d=2dC di questi percorsi di esecuzione comporterannoilritorno diC0. Tuttavia,2d1|Σ2|=13C0 non è un numero intero, quindi abbiamo una contraddizione. Quindi, non esiste un programma del genere.2d3

Più in generale, se abbiamo alfabeti e Σ 2 con | Σ 1 | = n e | Σ 2 | = k , allora esiste un programma di conversione da O Σ 1 a O Σ 2 se e solo se tutti i numeri primi che compaiono nella scomposizione in fattori primi di n compaiono anche nella scomposizione in fattori primi di k (quindi gli esponenti dei numeri primi nella fattorizzazione non non importa).Σ1Σ2|Σ1|=n|Σ2|=kOΣ1OΣ2nk

l{0,1,2}

Ho pensato al problema sopra quando mi trovavo al supermercato, riflettendo su cosa mangiare per cena. Mi chiedevo se avrei potuto usare i lanci di monete per decidere tra la scelta A, B e C. A quanto pare, ciò è impossibile.


5
La dimostrazione di Dinur del teorema del PCP si basa fortemente sulla manipolazione della dimensione dell'alfabeto, in particolare facendo esplodere e ridurlo ripetutamente tramite una composizione PCP. Senza il secondo pezzo del passaggio (riportando la dimensione dell'alfabeto in basso), la prova non funziona.
Daniel Apon,

2
@Daniel Apon: perché non ripubblicare come risposta?
Joshua Grochow,

@Joshua, oops. Sicuro. :)
Daniel Apon,

Risposte:


11

Ci sono alcuni esempi nella teoria del linguaggio formale in cui alfabeti a 2 e 3 caratteri danno comportamenti qualitativamente diversi. Kozen dà il seguente bell'esempio (parafrasato):

Σ

Se A è privo di contesto, l'ordinamento (A) è privo di contesto.


11

La dimostrazione di Dinur del teorema del PCP si basa fortemente sulla manipolazione della dimensione dell'alfabeto.

In particolare, la struttura generale della dimostrazione è un'applicazione iterativa di una tecnica di alimentazione di un grafico un logaritmo nel numero di dimensioni del grafico volte. Ad ogni iterazione, il grafico viene pre-elaborato in un grafico ad espansione regolare, amplificato da una potenza (che fa esplodere la dimensione dell'alfabeto), quindi viene applicata una composizione PCP (trasformando ogni vincolo su un grande alfabeto in un sistema di vincoli sopra un piccolo alfabeto).

L'obiettivo implicito del processo è trovare un modo per riutilizzare la fase di amplificazione fino a quando il valore UNSAT diventa una frazione costante (dimostrando il teorema del PCP). Il punto chiave è che, a meno che la dimensione dell'alfabeto non venga ritirata ogni volta, il grafico risultante non è quello che è necessario per la riduzione finale.


9

O(1){0,1,2}

{0,1,2}{0,1}O(1) di Dodis, Patrascu e Thorup su di esso, e i riferimenti in esso, dovrebbero essere un buon punto di partenza.


8

Nella correzione degli errori, è possibile che vi sia una differenza fondamentale tra codici binari e codici rispetto a alfabeti più grandi in quanto gli esempi di Gilbert Varshamov per codici che correggono una frazione di errori (che sono essenzialmente esempi avidi o casuali) sono ritenuti da alcuni essere stretto nel caso binario e si sa che non è stretto su un grande alfabeto tramite codici di geometria algebrica. Ciò ha portato alcuni a ipotizzare che la definizione standard di codici di correzione degli errori per un grande alfabeto non sia l'analogo giusto dei codici di correzione degli errori binari.


5

3

Il risultato è alquanto tecnico, ma se sei interessato, puoi mettere in contrasto Lemma 8 con la Sezione 4.1 per le pertinenti dichiarazioni del teorema.


Questo sembra molto interessante. Hai provato a modificare la definizione di influenza per vedere se riesci a ottenere qualcosa di simile al caso booleano?
Kaveh,

La nostra definizione di influenza è abbastanza naturale: osservi la distribuzione di probabilità del nodo di output date le diverse impostazioni del target. Se tutte le impostazioni producono la stessa esatta distribuzione di probabilità, allora diciamo che il bersaglio non ha influenza. Nel caso in cui tu sia interessato, il modello su cui abbiamo lavorato si chiama modello VIQ, che penso sia il modello di apprendimento del circuito più interessante. È stato definito in ( cs.yale.edu/homes/aspnes/… ) da Angluin et al. in STOC '06.
Lev Reyzin
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.