Problema de vectores no ortogonales


8

Considere los siguientes problemas:

Problema de vectores ortogonales

Entrada: Un conjunto SS de nn vectores booleanos de longitud dd .

Pregunta: ¿Existen vectores distintos v 1v1 y v 2S dev2S modo que v 1v 2 = 0v1v2=0 ?

Problema de vectores no ortogonales

Entrada: un conjunto SS de nn vectores booleanos de longitud dd y un entero positivo kk .

Pregunta: ¿Existen vectores distintos v 1v1 y v 2Sv2S tal que v 1v 2kv1v2k ?

¿Cuál es la relación entre estos dos problemas?

En particular, aquí hay algunas preguntas más específicas sobre las que me he estado preguntando:

(1) ¿Alguno de estos problemas parece ser más difícil que el otro?

(2) No estoy seguro de cuál es el algoritmo actual de última generación para OVP, pero para cualquiera de estos problemas, ¿puede obtener un límite superior mejor que el tiempo O ( n 2d )O(n2d) ?

(3) ¿Fijar kk hace alguna diferencia para la complejidad del segundo problema?

Por v 1v 2v1v2 , me refiero al producto interno de v 1v1 y v 2v2 sobre R dRd .

Editar: la mayoría de las respuestas ofrecen ideas realmente geniales cuando dd es pequeño.

¿Qué se puede decir cuando dd es más grande? Say d = nd=n o d = nd=n o al menosd=nαd=nαpara algunosα>0α>0.


44
Con respecto a (2): hasta donde yo sé, el algoritmo más conocido para resolver OVP se estableció en este documento . Tiene complejidad O ( n 2 - 1O ( log ( dlog n ))).
O norte2 - 1O ( log( dIniciar sesiónnorte) ).
Mejorar este resultado aO(n2-ε)O ( n2 - ε)para algunaseconstantesεes un famoso problema abierto, y se cree que es poco probable, ya quefalsificaría la fuerte conjetura de la hipótesis del tiempo exponencial.
Geoffroy Couteau

El segundo problema también se puede resolver en O ( n k ( dk ) )tiempo. Simplemente elijaposiciones, luego verifique si dos vectores tienen todos los 1 en esas posiciones. O ( n k ( dk) )kk
Michael Wehar

1
Una nota sobre el límite de tiempo anterior para OVP: el límite de tiempo también requiere que d <= 2 ^ (sqrt (log n)), de lo contrario, la construcción intermedia de un polinomio probabilístico lleva demasiado tiempo.
Ryan Williams

2
Acerca de d grande: Algoritmos para la multiplicación de matriz rectangular venció n ^ 2 d en el cálculo de todos los productos de puntos. Cuando d <n ^ 0.3 el límite de tiempo se convierte en n ^ (2 + o (1)).
Rasmus Pagh

1
@MichaelWehar: Exactamente. Creo que el mejor resultado se debe a François Le Gall, arxiv.org/abs/1204.1111
Rasmus Pagh el

Respuestas:


8

Cuando se da como parte de la entrada, el segundo problema es equivalente al problema monocromático de Max-IP (dado , find ).k S { 0 , 1 } d max ( a , b ) S , a b a bkS{ 0 , 1 }remax( a , b ) S, a ba b

Recientemente, yo y Ryan Williams tenemos un trabajo (aún no publicado) que muestra que cuando , OVP y una versión bicromática de Max-IP (dado , encuentran ), en realidad es equivalente: es decir, si uno de ellos tiene un algoritmo de tiempo , también lo tiene el otro. (La reducción de OVP a Max-IP es bien conocida, la nueva reducción aquí es la de Max-IP a OVP).d = O ( log n )re= O ( logn )A , B max ( a , b ) A × B a b n 2 - εA , Bmax( a , b ) A × Ba bnorte2 - ε

Dado que la versión monocromática de Max-IP se puede reducir a la versión bicromática, el resultado anterior también implica que cuando , la Max-IP monocromática se puede reducir a OVP.d = O ( log n )re= O ( logn )

Creo que es una pregunta abierta si OVP puede reducirse a Max-IP monocromática. Esto también está estrechamente relacionado con el establecimiento de la dureza OV para el problema de par más cercano (ver, por ejemplo, sobre la complejidad del par más cercano a través del par polar de conjuntos de puntos )

Para Max-IP monocromática, existe un algoritmo con tiempo de ejecución algoritmo de tiempo de Alman, Chan y Williams ( también señalado por Rasmus), por lo que creo que es el estado del arte. Mientras que el mejor algoritmo para OVP se ejecuta en tiempo cuando , que es significativamente más rápido.n 2 - 1 / ~ O ( ( d / log n ) 1 / 3 ) n 2 - 1 / O ( log c ) d = c log nnorte2 - 1 / O˜( ( d/ logn )1 / 3)norte2 - 1 / O ( registroc )re=clogn

Además, la versión aproximada de Max-IP también se estudia en este documento sobre la dureza del producto interno máximo aproximado y exacto (bicromático) , que da una caracterización para el caso bicromático (es decir, para qué dimensiones y relación aproximada , El problema se puede resolver en tiempo?). El algoritmo en ese documento también funciona para el caso monocromático.d t n 2 - εdtn2ε


¿El algoritmo de tiempo requiere algunos límites en ? n 2 - 1 / ~ O ( ( d / log n ) 1 / 3 ) dn21/O˜((d/logn)1/3)d
Michael Wehar

6

Si creo que las técnicas de Alman, Chan y Williams dan la solución más conocida al problema de los vectores no ortogonales. (Lo expresan de manera diferente, como un problema de par más cercano de Hamming, pero esto es equivalente a los factores poli ( )).k = O ( log n ) dk=O(logn)d

Sin límite en , una versión bicromática del problema de vectores no ortogonales es al menos tan difícil como el problema de vectores ortogonales (OVP) hasta un factor . Primero, tenga en cuenta que con un factor sobrecarga podemos reducir a la versión bicromática de OVP donde (unión disjunta en conjuntos de "color" diferente) y solo estamos interesados ​​en pares ortogonales bicromáticos . En segundo lugar, con un factor sobrecarga podemos reducir al caso especial de OVP bicromático donde todos los vectores en tienen el mismo peso de Hamming . Finalmente, invirtiendo todos los vectores en para obtenerk d log n log n S = S 1S 2 ( v 1 , v 2 ) S 1 × S 2 d S 1 w S 2 S 2 S 1 S 2 S 1 S 2 wkdlognlognS=S1S2(v1,v2)S1×S2dS1wS2S2 vemos que y tienen un par ortogonal si y solo si y tienen un par de vectores con producto punto al menos . Sin embargo, no estoy seguro de si hay una reducción eficiente del problema de vectores bicromáticos no ortogonales a la versión monocromática que usted describe.S1S2S1S2w

Si permite la aproximación, hay una serie de resultados recientes para el problema de vectores bicromáticos no ortogonales (a menudo llamado el problema de búsqueda máxima de productos internos). Ver, por ejemplo, este documento y sus referencias.


0

Equivalencias:

El problema de los vectores no ortogonales (como se definió anteriormente) para un conjunto de vectores booleanos de longitud y un entero positivo es equivalente a lo siguiente:S Sn nd dkk

  • Encontrar una submatriz por de 1 en una matriz booleana por dada.2 2k kn ndd

  • Encontrar un subgrafo completo en un gráfico bipartito dado donde el primer conjunto de vértices tiene tamaño y el segundo conjunto de vértices tiene tamaño .K 2 , kK2,k nndd

Algoritmo ingenuo:

El enfoque ingenuo para el problema de los vectores no ortogonales se ejecuta en tiempo porque lleva tiempo calcular ingenuamente el producto escalar de cada par de vectores.O ( d n 2 ) O(dn2)O ( d n 2 )O(dn2)

Respuesta a las preguntas (2) y (3):

Sí, hay varios algoritmos que son más eficientes en diferentes casos.

Primer enfoque:

Podemos resolver el problema de los vectores no ortogonales en el tiempo .O ( d n + k n 2 )O(dn+kn2)

Nota: Dado que el producto punto de dos vectores booleanos de longitud debe estar limitado por , el problema solo tiene sentido cuando .d dd dk dkd

Prueba. Deje que se dé un conjunto de vectores booleanos de longitud y un entero positivo . Considere una enumeración de los elementos de .S Sn nd dk k{ s i } i [ n ]{si}i[n] SS

Cree un hashmap partir de pares a . Inicialmente, asigna cada entrada al valor 0.m m( a , b ) [ n ] × [ n ] (a,b)[n]×[n]NN mm

Para cada , hacemos lo siguiente. través de pares de vectores , modo que , el bit ésimo de sea ​​1, y el bit ésimo de sea ​​1. Para cada uno de estos y si , entonces y no son ortogonales, es decir, . De lo contrario, incremente y continúe.i [ d ] i[d]s a sunas bssi a < b a < bi yos asuna i yos b ssis a sunas bssi m ( a , b ) = k - 1 m(a,b)=k1s a sas b sbs as bk sasbkm ( a , b )m(a,b)

Si terminamos la enumeración, entonces ningún par de vectores no son ortogonales.

Se necesita tiempo para explorar cada bit de cada vector. Luego, toma tiempo adicional para enumerar pares de vectores. Debido a que hay como máximo pares de vectores y cada par puede aparecer como máximo veces antes de que se demuestre que no son ortogonales, enumerar pares toma como máximo tiempo. Por lo tanto, el tiempo de ejecución total es .O ( n d ) O(nd)( n2 )(n2) k-1k1O(kn2)O(kn2)O(dn+kn2)O(dn+kn2)

Nota: Cuando , podemos mejorar este enfoque del tiempo . Esto se debe a que cuando , podemos reducir la búsqueda de un par de vectores no ortogonales entre vectores booleanos de longitud a encontrar un par de vectores no ortogonales entre vectores booleanos de longitud .k = 2 k=2O ( n d ) O(nd)k = 2 k=2n nd dd dnn

Segundo enfoque:

Podemos resolver el problema de los vectores no ortogonales en el tiempo .O ( k ( dk )n)O(k(dk)n)

Prueba. Deje que se dé un conjunto de vectores booleanos de longitud y un entero positivo .S Sn nd dkk

Enumere a través de los conjuntos modo que tenga el tamaño . Por cada vector , comprobar si tiene todos los 1 de en las posiciones en . Si hay dos vectores que tienen todos los 1 en las posiciones en , entonces hemos encontrado dos vectores no ortogonales.P [ d ] P[d]P Pk kv S vSv vP PPP

En total, hay posibles opciones para . Y, para cada elección, exploramos a través de bits de los vectores. Por lo tanto, en total, el tiempo de ejecución es .( dk )(dk) PPknknO(k ( dk )n)O(k(dk)n)

Tercer enfoque:

Cuando , podemos resolver el problema de los vectores no ortongales en tiempo donde es el exponente para la multiplicación de matrices enteras. Cuando , podemos resolver el problema de los vectores no ortongales en el tiempo .d n dnO ( d ω - 2n 2 ) O(dω2n2)ω ωd > n d>nO ( d n ω - 1 )O(dnω1)

Nota: Como lo señaló @Rasmus Pagh, podemos mejorar este algoritmo a cuando . Consulte aquí para obtener más información: https://arxiv.org/abs/1204.1111O ( n 2 + o ( 1 ) ) O(n2+o(1))d n 0.3dn0.3

Prueba. Deje que se dé un conjunto de vectores booleanos de longitud y un entero positivo .S Sn nd dkk

Considere matrices y . La primera matriz tiene dimensiones de por , donde cada fila de es un vector de . La segunda matriz tiene dimensiones por , donde cada columna de es un vector de .A AB BA An nd dA AS SB Bd dn nB BSS

Podemos calcular el producto escalar de cada par de vectores en calculando usando algoritmos para la multiplicación de matrices enteras rápidas.S SA BAB

Cuando , un enfoque es convertir la multiplicación de matriz rectangular en multiplicaciones del cuadrado por matrices . Al usar la multiplicación de matriz cuadrada rápida, podemos calcular todas las multiplicaciones en tiempo.d n dn( nd )2(nd)2ddO((nd )2dω)=O(dω-2n2)

Cuando , un enfoque es convertir la multiplicación de matriz rectangular en multiplicaciones del cuadrado por matrices. Al usar la multiplicación de matriz cuadrada rápida, podemos calcular todas las multiplicaciones en tiempo.d > n dn nnO((dn )nω)=O(dnω-1)


Comparemos estos tres enfoques en varios casos diferentes. Caso 1: Cuando es fijo y , el segundo enfoque es más eficiente. k d = O ( log 2 ( n ) )
Michael Wehar

Caso 2: Cuando y para cualquier , el primer enfoque es a veces más eficiente. k = O ( log 2 ( n ) ) d = O ( n α ) α ( 0.3 , 1 )
Michael Wehar

Caso 3: cuando , el tercer caso es a veces más eficiente. d n 0.3
Michael Wehar

Caso 4: Cuando y son mayores que , el tercer enfoque es a veces más eficiente. d k n
Michael Wehar

Nota: El primer enfoque es bastante similar al algoritmo para encontrar un ciclo cuatro en un gráfico en tiempo cuadrático. Ver aquí: sciencedirect.com/science/article/pii/S0304020808730196
Michael Wehar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.