1 votos

Problemas de la programación cuadrática

Estoy intentando hacer una programación cuadrática. Tengo una matriz de afinidad A, y tengo que maximizar cierta función x'Ax. Esto está básicamente relacionado con la coincidencia de características es decir, la coincidencia de puntos a las etiquetas

Se trata básicamente de establecer una conexión entre los conjuntos dominantes en un grafo ponderado y los maximizadores locales de la función cuadrática

$maximize(f({x} = x^{T}A{x})$

sujeto a

$x \epsilon\Delta, \Delta:\sum_{j}x_j=1$

Para resolver este problema he encontrado un método llamado ecuación del replicador dada por Pavan y Pelillo IEEE PAMI 2007

Una vez dada una inicialización x(1), se puede utilizar la ecuación del replicador discreto para obtener una solución local $x^{*}$

$x_i(t+1) = x_i(t+1) \frac{(Ax(t))_i}{x(t)^TAx(t)}$

Obtengo los resultados correctos cuando utilizo la ecuación del replicador. Sin embargo, cuando intento resolverla utilizando la función quadprog de matlab de la siguiente manera

X=quadprog(-A,[],[],[],Aeq,Beq,s);

No consigo los valores correctos. Supongamos que quiero emparejar 7 puntos con 7 etiquetas, defino mi matriz de afinidad y luego utilizo lo anterior. Sin embargo, utilizando la ecuación del replicador obtengo los resultados correctos. Pero usando solo quadprog no me da los resultados correctos. ¿Alguna sugerencia?

1voto

Chris Ballance Puntos 17329

¿Es necesario que los pesos no sean negativos? Si es así, deberá especificarlo en la llamada a la función. Sin especificación, el mínimo (respectivamente, máximo) dado por Matlab sería más bajo (resp. más alto) que el valor verdadero.

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