2011-06-17 23 views
5

Tengo un problema al construir las matrices de restricciones de los algoritmos genéticos en Matlab. Quiero importar estas matrices en función de GA para un problema que tiene las siguientes limitaciones:¿Cómo configuro las restricciones de algoritmos genéticos de Matlab?

a1<a2<a3...an-1<an , 0<ai<90, n=number of variables. 

documentación del Matlab no me ayuda, ya que sólo se refiere a las ecuaciones simples y no a este tipo de restricciones.

Soy nuevo en GA y ¡toda ayuda sería aceptable!

Respuesta

1

La restricción predeterminada proporcionada por matlab no se ajustará a sus necesidades.

Usted puede tratar de traducir sus limitaciones y añadir una condición pena, así:

goalfunction value = Inf if conditions are not fulfilled 

Pero esto no podrá encontrar el óptimo, así que lo que es mi solución

También puede tratar de traducir el problema, y ​​en lugar de la búsqueda de sus valores, acaba de encontrar esto:

b(1), b(2), ... b(n), where bi = a(i)-a(i-1) and b(i) > 0 for each i 

Así que sólo encontrará distancias entre cada una de las variables iniciales, y siempre que son positivos, encontrarás una secuencia de desenvolvimiento monótona, y eso es lo que necesitas. Dime si te satisface.

PS. Las limitaciones en la optimización son una gran cosa por resolver, y no siempre es sencillo cómo traduciremos cada restricción del mundo real a aX > b :)

1

Quizás pueda proporcionar las siguientes opciones para definir las restricciones de desigualdad para un problema de 5 parámetros.

Aineq = [1 -1 0 0 0; 0 1 -1 0 0; 0 0 1 -1 0; 0 0 0 1 -1; ] 

y

b = [0 0 0 0] 

Esto se traducirá en las siguientes limitaciones:

a1<a2 
a2<a3 
a3<a4 
a4<a5 

el cual es equivalente a a1<a2<a3<a4<a5

Cuestiones relacionadas