Para mayor claridad, voy a generalizar su pregunta para que supere la característica (con el campo base F q ) en lugar del caso específico de p = q = 2 . Tomaré p y q como constantes fijas; Dejaré que el lector descubra cuál es la dependencia exacta de estos parámetros, ya que hay algunas compensaciones que se pueden hacer. El resultado final aquí es que su problema es más o menos equivalente al problema de registro discreto para campos finitos de la característica p .p>0Fqp=q=2pqp
Para ser más específico, deje que el problema de registro discreto ordinario sobre las extensiones de sea, dado un campo de extensión F de F q , y a , b ∈ F , encuentre cualquier número entero t para que a = b t , o informe que no existe ninguno . Sea el problema de registro discreto fuerte sobre las extensiones de F q , dado F , a , b como antes, encuentre enteros z , m para que
aFqFFqa,b∈Fta=btFqF,a,bz,m para un entero t iff t = za=btt , o informe que noexiste t . Entonces existen las siguientes reducciones:t=z(modm)t
Hay una reducción de mapeo determinista del registro discreto sobre extensiones de a su problema.Fq
Existe un algoritmo eficaz y determinista que resuelve su problema cuando se le da acceso a un oráculo que computa el fuerte problema de registro discreto sobre extensiones de .Fq
En consecuencia, consideraría poco probable que alguien publique una prueba de
dureza o una prueba de que su problema está en P en el futuro cercano.NPP
Observación: El fuerte problema de registro discreto sobre las extensiones de
puede reducirse en Turing a la siguiente forma ostensiblemente más débil (aunque aparentemente aún más fuerte que el problema de registro discreto ordinario): Dado un campo de extensión F de F q , y a , b ∈ F , encuentre el menor número entero no negativo t de modo que a = b t . Esto se deduce del hecho de que el orden de b es uno más el t no negativo más pequeño, de modo que b - 1 = b tFqFFqa,b∈Fta=btbtb−1=bt.
Primera reducción:
La afirmación es que el problema ordinario de registro discreto sobre las extensiones de mapeo reduce a este problema. Esto sigue al hecho de que la multiplicación en F q n es una transformación lineal cuando vemos F q n como un espacio vectorial n- dimensional sobre F q . Por lo tanto, una pregunta de la forma a = b t sobre F q n se
convierte en → a = B t → e sobre F q , donde → aFqFqnFqnnFqa=btFqna⃗ =Bte⃗ Fq sonvectores n- dimensionales, y B es unamatriz n × n , en todo F q . El vector → a puede calcularse fácilmente a partir de a , B a partir de b , y
→ e es solo la representación de 1 ∈ F q n , que puede escribirse de manera eficiente. Esto parece ser un caso difícil del problema de registro discreto general, incluso con p = q = 2 (pero creciendo na⃗ ,e⃗ nBn×nFqa⃗ aBbe⃗ 1∈Fqnp=q=2n, por supuesto). En particular, las personas todavía están compitiendo para ver qué tan lejos pueden calcularlo.
Segunda reducción:
la afirmación es que su problema se reduce al fuerte problema de registro discreto sobre las extensiones de . Esta reducción tiene algunas piezas, así que perdona la longitud. Supongamos que la entrada son los n -dimensionales vectores x , y y n × n matriz A , en todo F q ; el objetivo es encontrar t para que y = A t x .Fqnx,yn×nAFqty=Atx
La idea básica es escribir en forma canónica de Jordan (JCF), a partir de la cual podemos reducir las pruebas y = A t x al fuerte problema de registro discreto con un poco de álgebra directa.Ay=Atx
Una de las razones para el uso de una forma canónica bajo similitud de matrices es que si , entonces A t = P - 1 J t P . Por lo tanto, podemos transformar y = A t x en ( P y ) = J t ( P x ) , donde ahora J está en un formato mucho más agradable que el A arbitrario . El JCF es una forma particularmente simple, que permite el resto del algoritmo. Entonces, de ahora en adelante, asuma queA=P−1JPAt=P−1JtPy=Atx(Py)=Jt(Px)JA ya está en JCF, pero también permite que x , y , y A puedan tener entradas en un campo de extensión de
F q .Ax,y,AFq
Observación: Hay algunas sutilezas que surgen de trabajar con la JCF. Específicamente, asumiré que podemos realizar operaciones de campo dentro de cualquier extensión de (no importa cuán grande) en un solo paso de tiempo, y que podemos calcular el JCF de manera eficiente.
a priori , esto no es realista, porque trabajar con el JCF puede requerir trabajar en un campo de extensión (el campo de división del polinomio característico) de grado exponencial. Sin embargo, con un poco de cuidado, y usando el hecho de que estamos trabajando en un campo finito, podemos sortear estos problemas. En particular, asociaremos con cada bloque de Jordan un campo F ' de grado como máximo n sobre F qFqF′nFq
para que todas las entradas en el bloque de Jordan y los elementos correspondientes de , y
todos vivan dentro de F ' . El campo F ' puede diferir de un bloque a otro, pero el uso de esta `` representación mixta' 'permite una descripción eficiente del JCF, que además se puede encontrar de manera eficiente. El algoritmo descrito en el resto de esta sección solo necesita trabajar con un bloque a la vez, de modo que mientras realice sus operaciones de campo dentro del campo asociado F ' , el algoritmo será eficiente.
[comentario final]xyF′F′F′
El uso de JCF nos da ecuaciones de la siguiente forma, con cada ecuación correspondiente a un bloque de Jordan:
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢y1y2y3⋮yk−1yk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢λ1λ1λ1⋱λ1λ⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥t⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢x1x2x3⋮xk−1xk⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
El algoritmo manejará cada bloque por separado. En el caso general, para cada bloque, tendremos una consulta para nuestro fuerte oráculo de registro discreto, a partir del cual el oráculo nos dirá una condición de modularidad, . También obtendremos un conjunto S ⊆ { 0 , 1 , ⋯ , p - 1 } para que
⋁ s ∈ S [ t = st=z(modm)S⊆{0,1,⋯,p−1}
debe aguantar. Después de procesar todos los bloques, necesitaremos verificar que haya una opción de t que satisfaga las conjunciones de todas estas condiciones. Esto se puede hacer asegurándose de que haya un elemento común s en todos los conjuntos S
para que las ecuaciones t = s⋁s∈S[t=s(modp)]tsS y t = z jt=s(modp) se satisfacen todas simultáneamente, donde j se extiende sobre los bloques.t=zj(modmj)j
También hay algunos casos especiales que surgen durante todo el procedimiento. En estos casos, obtendremos condiciones de la forma para algún valor de ℓ , o de la forma t = s para algunos enteros específicos s , de ciertos bloques, o incluso podríamos encontrar que no puede existir t . Estos pueden incorporarse a la lógica para el caso general sin problema.t>ℓℓt=sst
Ahora describimos el subprocedimiento para manejar cada bloque de Jordan. Arreglar tal bloqueo.
Comience concentrándose solo en la última coordenada del bloque. La condición requiere que y k = λ t x k . En otras palabras, es una instancia del problema de registro discreto en alguna extensión de campo de F q . Luego usamos un oráculo para resolverlo, lo que no da como resultado ninguna solución, o bien da una condición de modularidad en t . Si se devuelve "ninguna solución", volvemos indicando tal. De lo contrario, obtenemos una condición t = zy=Atxyk=λtxkFqt , que es equivalente a y k = λ t x k .t=z(modm)yk=λtxk
Para manejar las otras coordenadas, comenzamos con la siguiente fórmula (ver, por ejemplo, aquí ):
Primero, veamos el caso en el quexk=0. Como ya tenemos la condición de modularidad que implicayk=λtxk, podemos suponer queyk=0también. Pero luego podemos reducirnos a centrarnos en las primerask-1entradas dexey, y en la parte superior izquierda(k-1)×(k-1)
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢λ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⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
xk=0yk=λtxkyk=0k−1xy(k−1)×(k−1)submatriz del bloque Jordan. Entonces, de ahora en adelante, suponga que
.
xk≠0
En segundo lugar, manejaremos el caso en el que . En este caso, las potencias del bloque de Jordan tienen una forma especial y fuerzan t = z para algunas z ≤ k , o bien t > k , sin otras condiciones. No voy a complicar los casos, pero basta con decir que cada uno se puede verificar de manera eficiente. (Alternativamente, podríamos reducir al caso en que A es invertible; vea mi comentario sobre la pregunta).λ=0t=zz≤kt>kA
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⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥
t(modp)ttpt∈{0,1,…,p−1}St
t=a(modm)St=s(modp)s∈Sy=Atxtt=a(modm)t=sst>ℓℓy=Atx
Esto concluye la especificación del subprocedimiento por bloque y del algoritmo en su conjunto. Su corrección y eficiencia se desprenden de la discusión anterior.
Sutilezas con el uso de JCF en la segunda reducción:
Como se mencionó en la segunda reducción, hay algunas sutilezas que surgen del trabajo con JCF. Hay algunas observaciones para mitigar estos problemas:
nFn
A