6 votos

Existe un algoritmo eficiente para encontrar la longitud de la maximización de la combinación?

El problema es el siguiente

Dado $v_1, \, v_2, \, \ldots, \, v_n \in \mathbb R^m$; encontrar $\epsilon_1, \, \epsilon_2, \, \ldots, \, \epsilon_n \in \{0,1\}$ tal que $$\left\vert \sum_{i=1}^n (-1)^{\epsilon_i} v_i \right\vert = \max$$ donde $\vert \cdot\vert $ denota la norma Euclídea.

I. e. lo que queremos es maximizar la longitud de una suma de vectores, bajo la restricción de que para cada vector debemos utilizar el vector propio o $(-1)$ veces este vector.

Este vino de alguna aplicación y me preguntó si yo sabía cómo obtener una solución de hace algún tiempo. No veo un algoritmo eficiente y dado que el número de vectores normalmente era lo suficientemente pequeña, podría ser resuelto por simplemente ir a través de todas las posibilidades.

Lo pensé de nuevo, el día de hoy. Y realmente el problema parece que no puede ser un buen algoritmo eficiente para resolver - al menos mejor que el $\Theta(2^n)$.

Todavía no ser capaz de encontrar uno, quería preguntar si alguien de aquí podría encontrar una buena solución!


Algo que no funciona:

  • El fin de los vectores de longitud: $|v_1|\ge |v_2|\ge \dots \ge |v_n|$
  • Después de haber encontrado una máxima vector de combinación de la $v = \sum \pm v_i$$v_1, \, v_2, \, \ldots, \, v_k$, elija el signo de $v_{k+1}$, de modo que se maximiza la duración de la $v \pm v_{k+1}$.

Un contraejemplo es dado por $\begin{pmatrix} 3\\ 2\end{pmatrix},\, \begin{pmatrix} -2\\ 3\end{pmatrix},\, \begin{pmatrix} 2\\ 3\end{pmatrix}$. La combinación de los dos primeros vectores obtenemos $$\begin{pmatrix} 1\\ 5\end{pmatrix} \quad \text{or}\quad \begin{pmatrix} 5\\ -1\end{pmatrix}$$ ambos de los cuales tienen la misma longitud. Sin embargo, si elegimos la primera combinación que podemos obtener $\begin{pmatrix} 3\\ 8\end{pmatrix}$, mientras que para la segunda combinación de $\begin{pmatrix} 7\\ 2\end{pmatrix}$ es lo mejor que podemos hacer.

Siéntase libre de compartir tus pensamientos! Gracias. =)

2voto

Tsuyoshi Ito Puntos 1589

Un fresco de la terminología (que no está directamente relacionada con la respuesta): Permitir que Un ser m×n matriz cuyas columnas son dados por los vectores v1, ..., vn, el problema es concisa declaró como calcular el "subordinado (∞,2)-norma" de la matriz de Una.

Este problema es NP-duro, lo que implica que no existe ningún polinomio de tiempo de algoritmo a menos que P=NP. No sé cuál es la mejor referencia para lo que es, sino un lugar donde se ha demostrado para ser NP-duro [GK89]. Comprobar el problema llamado ZonMax en [GK89], que es una ligera variación de su problema, que se ve fácilmente a ser equivalente a la suya. Creo que parte de la reducción en [GK89] puede ser simplificado mediante el uso de la NP-completitud del subconjunto suma, como se hace en [MK87].

[GK89] Pedro Gritzmann y Victor Klee. En el 0-1 de la maximización de positiva definida la formas cuadráticas. IMA Preprint Serie #522, de abril de 1989. http://www.ima.umn.edu/preprints/Jan89Dec89/522.pdf

[MK87] Katta G. Murty y Santosh N. Kabadi. Algunos NP-completos, problemas en cuadráticas y de programación no lineal. La Programación Matemática, 39(2):117-129, Junio De 1987. DOI: 10.1007/BF02592948. (He comprobado que sólo el informe técnico de la versión.)

1voto

jimmy1i Puntos 31

Creo que no es un determinista polinomio algoritmo de tiempo para esto. Recuerdo haber visto este tipo de problemas en mi aleatorizado algoritmos de curso, y me gustaría recomendar tratando de la esperanza condicional derandomization técnica descrita aquí (y otros lugares).

1voto

Peter Taylor Puntos 5221

Esto puede ser formulado como un cuadráticamente limitada cuadrática programa.

Maximizar $$\left\vert \sum_{i=1}^n (-1)^{\epsilon_i} v_i \right\vert$$ is equivalent to maximising $$\begin{eqnarray} \left\vert \sum_{i=1}^n (-1)^{\epsilon_i} v_i \right\vert^2 & = & \left( \sum_{i=1}^n (-1)^{\epsilon_i} v_i \right).\left( \sum_{j=1}^n (-1)^{\epsilon_j} v_j \right) \\ & = & \sum_{i=1}^n \sum_{j=1}^n (1 - 2\epsilon_i) (1 - 2\epsilon_j) v_i . v_j \end{eqnarray}$$ (donde el $-1^\epsilon$ $(1-2\epsilon)$transformación es válida porque de la constaint $\epsilon\in{0,1}$) y puesto que el término constante es irrelevante, esto es a su vez equivalente a la maximización de $$\sum_{i=1}^n \sum_{j=1}^n (4 \epsilon_i \epsilon_j - 2 \epsilon_i - 2 \epsilon_j) v_i . v_j$$

Esta función objetivo es convexa, como Sam señala en un comentario. Como se menciona en el artículo de la Wikipedia, $\epsilon\in\{0,1\}$ puede ser convertida en cuadrática limitaciones como $\epsilon(\epsilon - 1) \le 0$$\epsilon(\epsilon - 1) \ge 0$, y estas limitaciones son convexas, aunque no es semi-definida.

No estoy seguro de que los algoritmos para QCQP son aplicables y eficiente en este convexo-pero-no-semi-caso concreto, pero no se ve la esperanza de que esto podría no ser NP-duro, y la reducción a un problema conocido le da una línea de investigación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X