Il trucco usato nella dimostrazione della doppia complessità esponenziale dell'aritmetica di Presburger


9

L'ho pubblicato su MathUnderflow ma non ho ricevuto risposte, quindi ho pensato di provarlo qui,

Sto leggendo il vecchio documento di Rabin e Fischer [pubblicherò un link quando possibile] dove, tra le altre cose, è dimostrata la doppia complessità esponenziale dell'aritmetica di Presburger.

La dimostrazione si basa sull'esistenza di una formula afferma informalmente " " con . Sebbene la costruzione di questa formula non sia data nel documento, è stata una sorpresa per me considerando che è presumibilmente altamente non banale, dato quel limite e il fatto che abbiamo solo un'aggiunta a nostra disposizione! ¹ion(X)X<22KX+1|ion|O(n)

In seguito ho appreso che la costruzione di questa formula si basa su un "trucco", precedentemente scoperto da Fischer, e indipendentemente da Volker Strassen, ma non sono riuscito a rintracciare un documento che descrive questo trucco in dettaglio!

Quindi, se qualcuno conosce il documento di cui sto parlando e può indicarmi la sua direzione o persino descrivermi il trucco ...

Questo post dal blog di Lipton contiene un link al documento e menziona [e fornisce un abbozzo, purtroppo insufficiente per me, schizzo di] detto trucco, BTW.

¹ So che questa è una descrizione vaga. Tuttavia, una descrizione sufficientemente dettagliata sarebbe troppo lunga per un post SX, quindi spero solo che qualcuno che già conosce il documento in questione - e quindi può accontentarsi di quel breve schizzo - si imbatte in questo ed è in grado di aiutarmi .


Qual è la relazione tra e ? O dovrebbe essere ? nK22nX+1
Shaull

3
Puoi scaricare il documento Fisher & Rabin qui .
Martin Berger,

3
La costruzione è riportata nel documento: Teorema 8 alle pagine 14-15 (l'istruzione effettiva è Corollario 9 a pagina 16).
Yuval Filmus,

Risposte:


7

Il commento di Martin (e il seguito di Yuval) fornisce il riferimento che spiega la costruzione in dettaglio.

Elaborerò un po 'perché penso che sia una prova meravigliosa: fondamentalmente sta eseguendo la "solita" prova di indecidibilità di PA (aritmetica con addizione e moltiplicazione), ma relativizzata a 22cn ! Cioè, esiste una formula (breve) che esprime la moltiplicazione fino a quel numero, cioè una formula tale che M n ( x , y , z ) x × y = z x < 2 2 nMn(X,y,z)

Mn(X,y,z)X×y=z X<22n

Ora costruisci per induzione su n , con un trucco cruciale che ricorda l' algoritmo Karatsuba per moltiplicare i numeri binari o alcuni trucchi per la moltiplicazione di matrici:Mnn

Nella definizione di si finisce con una congiunzione della forma M n ( x 1 , y 1 , z 1 ) M n ( x 2 , y 2 , z 2 ) M n ( x 3 , y 3 , z 3 )Mn+1(X,y,z)

Mn(X1,y1,z1)Mn(X2,y2,z2)Mn(X3,y3,z3)

Ma puoi sostituirlo con

uvw,(u=X1v=y1w=z1)(u=X2v=y2w=z2)(u=X3v=y3w=z3)Mn(u,v,w)

Questo trucco consente un aumento lineare delle dimensioni anziché esponenziale (in funzione di ).n

Ci sono un paio di altri trucchi coinvolti, ma questo è il principale. Gli interni della ricorsione sono importanti, ovviamente, ma la somiglianza con il trucco di Karatsuba è davvero sorprendente.


1
PSPUNCE=NPSPUNCE
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.