Resolver una ecuación lineal de diofantina aproximadamente

15

Considere el siguiente problema:

Entrada : un hiperplano , dado por un vector y en representación binaria estándar.aZ n b ZH={yRn:aTy=b}aZnbZ

Salida :xZn=argmind(x,H)

En la notación anterior d(x,S) para xRn y SRn se define como d(x,S)=minySxy2 , es decir, es la distancia euclidiana natural entre un conjunto de puntos y un solo punto .

En palabras, se nos da un hiperplano y estamos buscando el punto en el entramado entero más cercano al hiperplano.

La pregunta es:

¿Cuál es la complejidad de este problema?

Tenga en cuenta que el tiempo polinomial aquí significará polinomio en el tamaño de bits de la entrada. Por lo que puedo ver, el problema es interesante incluso en dos dimensiones. Entonces no es difícil ver que es suficiente considerar solo aquellas soluciones (x1,x2) con 0x1|a1|/gcd(a1,a2) pero eso es superpolinomialmente muchas opciones.

Un problema estrechamente relacionado es resolver una ecuación lineal de diofantina, es decir, encontrar un xZn tal que aTx=b o determinar que no existe tal x existe. Entonces, resolver una ecuación lineal de diofantina es equivalente a determinar si existe una solución de valor 0 para el problema que definí anteriormente. Una ecuación lineal de diofantina se puede resolver en tiempo polinómico; de hecho, incluso los sistemas de ecuaciones lineales de diofantina se pueden resolver en tiempo polinómico calculando la forma normal de Smith de la matriz A proporciona el sistema. Existen algoritmos de tiempo polinómico que calculan la forma normal de Smith de una matriz entera, la primera dada porKannan y Bachem .

Para tener una intuición sobre las ecuaciones lineales de diofantina, podemos considerar nuevamente el caso bidimensional. Claramente, no hay una solución exacta si no divide . Si lo hace división , a continuación, puede ejecutar el algoritmo de GCD prolongado para obtener dos números y tal que y el conjunto y . Ahora puede ver cómo la versión aproximada es diferente: cuando no divide , ¿cómo encontramos números enterosb b s t a 1 s + a 2 t = g c d ( a 1 , a 2 ) x 1 = s b / g c d ( a 1 , a 2 ) x 2 = t b / g c d ( a 1 ,gcd(a1,a2)bbsta1s+a2t=gcd(a1,a2)x1=sb/gcd(a1,a2)g c d ( a 1 , a 2 ) b x 1 , x 2x2=tb/gcd(a1,a2)gcd(a1,a2)bx1,x2tal que la distancia entre y la línea se minimiza?a 1 x 1 + a 2 x 2 = b(x1,x2)a1x1+a2x2=b

El problema para mí suena un poco como el problema de vector más cercano en las redes, pero no veo una reducción obvia de un problema a otro.

Sasho Nikolov
fuente
no, no lo hace: la aproximación de diofantina es un problema diferente de resolver una ecuación de diofantina. en un problema de aproximación diofantina, se le dan números reales y desea multiplicarlos todos por un solo entero para que todos estén dentro de de algún entero. El problema es encontrar el equilibrio óptimo entre el tamaño de y . No veo una relación entre mi problema y este. Q ϵ Q ϵnQϵQϵ
Sasho Nikolov
¿Cuál es tu formato de entrada? Parece que si dos valores de coordenadas de son inconmensurables, entonces el mínimo en cuestión es cero (se cruza con el plano bidimensional apropiado para obtener una ecuación de la forma con y inconmensurables , es decir, irracional, y luego use los resultados estándar en para mostrar que la línea pasa arbitrariamente cerca de los puntos de la red. s x + t y = w s t α sasx+ty=wstαst{nα}(mod1)
Steven Stadnicki
En particular, esto significa que su 'min' debe ser un 'inf' (sinusoidal lo está tomando sobre infinitos puntos), y el problema de si es distinto de la pregunta de si existe algún con . Esto significa que los coeficientes de tienen que ser números racionales para que el problema tenga una solución no trivial, y luego el problema parece tomar una forma muy euclidiana, estrechamente acoplada a algoritmos GCD multidimensionales. ¿Me estoy perdiendo de algo? x d ( x , H ) = 0 ainf d(x,H)=0xd(x,H)=0a
Steven Stadnicki
@StevenStadnicki a la derecha. se puede asumir y (Voy a añadir que a la pregunta, debo haber pasado por alto). la entrada se da en representación binaria estándar. La pregunta es interesante incluso cuando . entonces es suficiente considerar todas las soluciones posibles con , pero la búsqueda de fuerza bruta será superpolinomial en la representación binaria de . b Z n = 2 ( x 1 , x 2 ) x 1| a 1 | / g c d ( a 1 , a 2 ) a 1 , a 2aZnbZn=2(x1,x2)x1|a1|/gcd(a1,a2)a1,a2
Sasho Nikolov

Respuestas:

5

Muy bien, después de pensarlo más, creo que tengo una reducción explícita de este problema a GCD extendido; Lo explicaré en el caso , pero creo que se extiende a arbitraria . Tenga en cuenta que esto encuentra un que minimiza la distancia al hiperplano, pero no necesariamente el más pequeño (de hecho, hay infinitos valores que alcanzan la misma distancia mínima). Creo que el último problema es También es factible, pero todavía no lo he pensado realmente. El algoritmo se basa en algunos principios simples:n x xn=2n xx

  • Si , entonces el conjunto de valores asumidos por es precisamente ; Además, los valores y con se pueden encontrar de manera eficiente (este es exactamente el algoritmo euclidiano extendido).ax = a 1 x 1 + a 2 x 2 { 0 , ± g , ± 2 g , ± 3 g , } x 1 x 2 a 1 x 1 + a 2 x 2 = gg=GCD(a1,a2)ax=a1x1+a2x2{0,±g,±2g,±3g,}x1x2a1x1+a2x2=g
  • La distancia mínima desde el hiperplano a un punto en la red es la distancia mínima desde un punto en la red al hiperplano (obvio, pero una inversión útil del problema).
  • La distancia desde un punto dado al hiperplano es proporcional a(específicamente, es veces este valor, pero dado que multiplicar todas las distancias por este valor no tiene ningún efecto en la ubicación del mínimo, podemos ignorar el factor de normalización).ay = b | ax - b | 1 / | a |xay=b|axb|1/|a|

Esto sugiere el siguiente procedimiento:

  • Calcule , junto con modo que .x 0 1 , x 0 2 a 1 x 0 1 + a 2 x 0 2 = gg=GCD(a1,a2)x10,x20a1x10+a2x20=g
  • Calcule y calcule ; es la distancia mínima (a escala) desde la red al hiperplano. Vamos ser o bien o ( , a menos que es un múltiplo de ), dependiendo de que se alcanza la distancia mínima.d=min(b-rg,(r+1)g-b)dsrr+1=br=bgd=min(brg,(r+1)gb)dsrr+1bg=bgbg
  • Calcule y ; entonces es el múltiplo más cercano de a , y por lo tantoalcanza el mínimo de esta distancia sobre todos los puntos de la red. x 2 = s x 0 2 ax = s g g b | ax - b |x1=sx10x2=sx20ax=sggb|axb|

Hasta donde yo sé, exactamente el mismo procedimiento debería funcionar correctamente en dimensiones arbitrarias; la clave es que el dimensional GCD aún satisface la identidad de Bezout, por lo que para encontrar la distancia mínima a un punto de red solo tiene que encontrar el múltiplo más cercano de a .g bngb

Steven Stadnicki
fuente