Per chiarezza, generalizzerò la tua domanda in merito alla caratteristica (con campo base ) anziché al caso specifico di . Prenderò e come costanti fisse; Lascerò al lettore capire qual è la dipendenza esatta da questi parametri, poiché ci sono alcuni compromessi che possono essere fatti. Il risultato finale qui è che il tuo problema è approssimativamente equivalente al problema del log discreto per i campi finiti della caratteristica .F q p = q = 2 p q pp>0Fqp=q=2pqp
Per essere più specifici, lascia che sia il normale problema di registro discreto sulle estensioni di , dato un campo di estensione di e , trova un numero intero modo che , o segnala che non esiste. Lasciate che il forte problema del singolo registro su estensioni di essere, dato come prima, trovare interi in modo che
per un intero se e solo se o segnala che noF F q a,b∈ F ta= b t F q F ,a,bz,ma= b t tFqFFqa,b∈Fta=btFqF,a,bz,ma=bttt=z(modm)tesiste. Quindi esistono le seguenti riduzioni:
C'è una riduzione di mappatura deterministica dal log discreto sulle estensioni di al tuo problema.Fq
Esiste un algoritmo efficiente e deterministico che risolve il problema quando viene dato accesso a un oracolo che calcola il forte problema di registro discreto rispetto alle estensioni di .Fq
Di conseguenza, improbabile che qualcuno pubblichi una prova di
-hardness o una prova che il tuo problema è in nel prossimo futuro.NPP
Nota: il forte problema di registro discreto sulle estensioni di
può essere ridotto di Turing alla seguente forma apparentemente più debole (sebbene apparentemente più forte del normale problema di registro discreto): Dato un campo di estensione di e , trovano il numero intero non negativo modo che . Ciò deriva dal fatto che l'ordine di è uno più il più piccolo non negativo in modo che .FqFFqa,b∈Fta=btbtb−1=bt
Prima riduzione:
l'affermazione è che il normale problema di registro discreto sulle estensioni della mappatura di riduce a questo problema. Ciò segue il fatto che la moltiplicazione in è una trasformazione lineare quando vediamo come uno spazio vettoriale dimensionale su . Quindi una domanda del modulo over
diventa over , dove sono vettori dimensionali e èFqFqnFqnnFqa=btFqna⃗ =Bte⃗ Fqa⃗ ,e⃗ nBn×nmatrice, dappertutto . Il vettore può essere facilmente calcolato da , da e
è solo la rappresentazione di , che può essere scritta in modo efficiente . Questo sembra essere ancora un caso difficile del problema di log discreto generale, anche con (ma crescente , ovviamente). In particolare, le persone sono ancora in competizione per vedere fino a che punto possono calcolarlo.Fqa⃗ aBbe⃗ 1∈Fqnp=q=2n
Seconda riduzione:
l'affermazione è che il problema si riduce al forte problema di registro discreto rispetto alle estensioni di . Questa riduzione ha alcuni pezzi, quindi perdona la lunghezza. Lascia che l'input sia il vettore dimensionale e matrice , su tutto ; l'obiettivo è trovare modo che .Fqnx,yn×nAFqty=Atx
L'idea di base è scrivere in Jordan in forma canonica (JCF), da cui possiamo ridurre il test al forte problema del log discreto con qualche semplice algebra.Ay=Atx
Uno dei motivi per usare una forma canonica sotto somiglianza delle matrici è che se , allora . Quindi possiamo trasformare in , dove ora è in un formato molto più bello della arbitraria . JCF è una forma particolarmente semplice, che consente il resto dell'algoritmo. Quindi, da ora in poi, si supponga che è già in JCF, ma anche permettere che e può avere voci in un campo di estensione di
.A=P−1JPAt=P−1JtPy=Atx(Py)=Jt(Px)JAAx,y,AFq
Nota: ci sono alcune sottigliezze che derivano dal lavorare con JCF. In particolare, assumerò che possiamo eseguire operazioni sul campo all'interno di qualsiasi estensione di (non importa quanto sia grande) in una sola volta e che possiamo calcolare il JCF in modo efficiente.
a priori , questo non è realistico, perché lavorare con il JCF può richiedere di lavorare in un campo di estensione (il campo di divisione del polinomio caratteristico) di grado esponenziale. Tuttavia, con un po 'di attenzione e sfruttando il fatto che stiamo lavorando su un campo finito, possiamo aggirare questi problemi. In particolare, assoceremo ad ogni blocco Jordan un campo di grado al massimo sopraFqF′nFq
in modo che tutte le voci nel blocco Jordan e gli elementi corrispondenti di ,
vivano tutti all'interno di . Il campo può differire da blocco a blocco, ma l'uso di questa `` rappresentazione mista' 'consente una descrizione efficiente del JCF, che inoltre può essere trovato in modo efficiente. L'algoritmo descritto nel resto di questa sezione deve funzionare solo con un blocco alla volta, quindi fintanto che esegue le sue operazioni sul campo nel campo associato , l'algoritmo sarà efficiente.
[nota finale]xyF′F′F′
L'uso di JCF ci fornisce equazioni nella forma seguente, con ogni equazione corrispondente a un blocco Jordan:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3⋮yk−1yk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢λ1λ1λ1⋱λ1λ⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥t⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢x1x2x3⋮xk−1xk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
L'algoritmo gestirà ciascun blocco separatamente. Nel caso generale, per ogni blocco, avremo una query per il nostro forte oracolo log discreto, dal quale l'oracolo ci dirà una condizione di modularità, . Otterremo anche un set modo che
deve contenere . Dopo aver elaborato tutti i blocchi, dovremo verificare che vi sia una scelta di che soddisfi le congiunzioni di tutte queste condizioni. Questo può essere fatto assicurandosi che ci sia un elemento comune in tutti gli insiemi
modo che le equazioni ett=z(modm)S⊆{0,1,⋯,p−1}⋁s∈S[t=s(modp)]tsSt=s(modp)t=zj(modmj)sono tutti soddisfatti contemporaneamente, dove estende sui blocchi.j
Ci sono anche alcuni casi speciali che si presentano durante la procedura. In questi casi, ci arriveremo condizioni di forma per un certo valore di , o della forma per alcuni specifici intero , da alcuni blocchi, o potremmo anche scoprire che non può esistere . Questi possono essere incorporati nella logica per il caso generale senza problemi.t>ℓℓt=sst
Descriviamo ora la sottoprocedura per la gestione di ciascun blocco Jordan. Risolvi un tale blocco.
Inizia concentrandoti solo sull'ultima coordinata nel blocco. La condizione richiede che . In altre parole, è un'istanza del problema di registro discreto in alcune estensioni di campo di . Quindi usiamo un oracolo per risolverlo, il che non porta a nessuna soluzione, oppure fornisce una condizione di modularità su . Se viene restituita "nessuna soluzione", si restituisce tale indicazione. Altrimenti, otteniamo una condizione , che equivale a .y=Atxyk=λtxkFqtt=z(modm)yk=λtxk
Per gestire le altre coordinate, iniziamo con la seguente formula (vedi, ad esempio, qui ):
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢λ1λ1λ1⋱λ1λ⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥t=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢λt(t1)λt−1λt(t2)λt−2(t1)λt−1⋱⋯⋯⋱⋱⋯⋯⋮⋱λt(tk−1)λt−k+1(tk−2)λt−k+2⋮⋮(t1)λt−1λt⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
\ ddots & \ ddots & \ vdots \\ & & & & \ lambda ^ t & \ binom {t} {1} \ lambda ^ {t-1} \\ & & & & & \ lambda ^ t \ end {bmatrix }
Innanzitutto, prendiamoci cura del caso in cui
xk=0 . Poiché abbiamo già la condizione di modularità che implica , possiamo supporre che anche . Ma allora possiamo solo ridurre a concentrarsi sui primi inserimenti di ed , e la parte superiore sinistra sottomatrice del blocco Jordan. Quindi d'ora in poi supponiamo che .
yk=λtxkyk=0k−1xy(k−1)×(k−1)xk≠0
In secondo luogo, gestiremo il caso in cui . In questo caso, i poteri del blocco Jordan hanno una forma speciale e forza per alcuni , oppure , senza altre condizioni. Non descriverò i casi, ma basti dire che ognuno può essere controllato in modo efficiente. (In alternativa, potremmo ridurre al caso in cui è invertibile; vedere il mio commento sulla domanda.)λ=0t=zz≤kt>kA
Finalmente arriviamo al caso generale. Dato che abbiamo già la condizione di modularità che implica che , possiamo supporre che tale condizione sia valida e usare come supporto per . Più in generale, possiamo usare per rappresentare . Pertanto, dobbiamo verificare se il seguente sistema vale per una scelta di :
yk=λtxkykx−1kλtykx−1kλ−zλt−zt
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3⋮yk−1yk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢ykx−1k(t1)ykx−1kλ−1ykx−1k(t2)ykx−1kλ−2(t1)ykx−1kλ−1⋱⋯⋯⋱⋱⋯⋯⋮⋱ykx−1k(tk−1)ykx−1kλ−(k−1)(tk−2)ykx−1kλ−(k−2)⋮⋮(t1)ykx−1kλ−1ykx−1k⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢x1x2x3⋮xk−1xk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
y_kx_k ^ {- 1} \ end {bmatrix} \ begin {bmatrix} x_1 \\ x_2 \\ x_3 \\ \ vdots \\ x_ {k-1} \\ x_ {k} \\ \ end {bmatrix} Osservalo se l'equazione è valida dipende solo da ; questo perché la dipendenza da è solo polinomiale,
t(modp)tt deve essere un numero intero e le equazioni di cui sopra si trovano su un campo della caratteristica . Quindi possiamo semplicemente provare ogni valore di separatamente. L'insieme che restituiremo è solo la scelta di per la quale il sistema è soddisfatto.
pt∈{0,1,…,p−1}St
Quindi ora, ad eccezione di alcuni casi speciali, la sottoprocedura per blocco ha trovato una condizione di modularità e un set modo che uno di debba valere per alcuni . Queste condizioni sono equivalenti a all'interno di questo specifico blocco Jordan. Quindi restituiamo questi dalla sottoprocedura. I casi speciali concludono che non può esistere (nel qual caso la sottoprocedura restituisce immediatamente un'indicazione di ciò), oppure abbiamo una condizione di modularità e alcune condizioni speciali come per un numero intero oppure per un numero interot=a(modm)St=s(modp)s∈Sy=Atxtt=a(modm)t=sst>ℓℓ . In ogni caso, le condizioni coinvolte sono tutte equivalenti a all'interno di questo blocco Jordan. Quindi, come menzionato sopra, la sottoprocedura restituisce solo queste condizioni.y=Atx
Ciò conclude la specifica della sottoprocedura per blocco e dell'algoritmo nel suo insieme. La correttezza e l'efficienza derivano dalla discussione precedente.
Sottigliezze con l'uso di JCF nella seconda riduzione:
come menzionato nella seconda riduzione, ci sono alcune sottigliezze che derivano dal lavorare con JCF. Ci sono alcune osservazioni per mitigare questi problemi:
Le estensioni dei campi finiti sono normali . Ciò significa che se è un polinomio irriducibile sopra , quindi qualsiasi estensione di contenente una radice di
contiene tutte le radici di . In altre parole, il campo di divisione di un polinomio irriducibile
di grado ha grado solo su .PFqFqPPPddFq
Esiste una generalizzazione della forma canonica giordana, chiamata la forma canonica razionale primaria (PRCF), che non richiede che le estensioni dei campi vengano scritte. In particolare, se è una matrice con voci in , allora possiamo scrivere per alcune matrici con voci in , dove inoltre è in PRCF. Inoltre, se facciamo finta che le voci vivano in un campo
estende che contiene tutti gli autovalori di , alloraAFqA=P−1QPP,QFqQAF′FqAQsarà infatti in JCF. Quindi possiamo considerare il calcolo del JCF di come un caso speciale di calcolo del PRCF.A
Usando il modulo del PRCF, possiamo calcolare il JCF di comeA
calcolo del PRCF di overAFq
calcolare il PRCF di ciascun blocco (prendendo in prestito la notazione dall'articolo di Wikipedia) nel PRCF di , su un campo di estensione , dove è scelto per contenere tutti gli autovalori diCAF′F′C
Il vantaggio principale di questa fattorizzazione è che i polinomi caratteristici dei blocchi saranno tutti irriducibili , e quindi, secondo la nostra prima osservazione, possiamo scegliere per avere grado la dimensione di (che è al massimo ) over . Il rovescio della medaglia è che ora dobbiamo usare diversi campi di estensione per rappresentare ogni blocco del JCF, quindi la rappresentazione è atipica e complicata.CF′CnFq
Pertanto, data la capacità di calcolare il PRCF in modo efficiente, possiamo calcolare una codifica adeguata del JCF in modo efficiente, e questa codifica è tale che il lavoro con qualsiasi blocco particolare del JCF può essere eseguito all'interno di un campo di estensione di grado al massimo sopra .nFn
Per quanto riguarda il calcolo efficiente del PRCF, il documento " A Rational Canonical Form Algorithm " (KR Matthews, Math. Bohemica 117 (1992) 315-324) fornisce un algoritmo efficiente per calcolare il PRCF quando è nota la fattorizzazione del polinomio caratteristico di . Per caratteristiche fisse (come quelle che abbiamo), il factoring di polinomi univariati su campi finiti può essere eseguito in tempi polinomiali deterministici (vedi ad esempio " Su un nuovo algoritmo di fattorizzazione per polinomi su campi finiti " (H. Niederreitter e R. Gottfert, Math di. Calcolo 64 (1995) 347-353).), In modo che il PRCF possa essere calcolato in modo efficiente.A