Red de conocimiento informático - Conocimiento sistemático - Se busca un experto en resolución programática de problemas de maximización de matrices restringidas en matlab.

Se busca un experto en resolución programática de problemas de maximización de matrices restringidas en matlab.

Lo siento, no puedo ayudarte a resolver este problema, pero puedo hablar sobre algunos puntos para tu referencia (vi que el cartel tiene otra pregunta, la pregunta con una recompensa alta/577326380.html, esa pregunta se la dejamos a esos quiénes son más capaces de resolverlo persona de esta pregunta):

1. En otra pregunta, alguien sugirió usar bintprog, lo cual no es factible porque esta función solo funciona en el caso de restricciones lineales, y su problema. contiene una restricción de no linealidad. Esto no es factible porque la función sólo funciona con restricciones lineales, mientras que su problema contiene restricciones no lineales.

2. Analice las restricciones:

X es una matriz de 4x10 De la última condición, podemos saber que sus elementos solo pueden ser 0 o 1. El significado de otras restricciones es. analizado de la siguiente manera:

(1) Entre los 10 elementos de cada fila, 6 deben ser 1 y 4 deben ser 0.

(2) La fórmula del producto para los elementos de cada columna solo puede tener dos resultados: si y solo si los elementos de cada columna del producto solo pueden tener dos resultados, el resultado es 0 o 1. 1, cuando Y el resultado es 1 solo si todos los elementos de la columna son 1, entonces el significado de la segunda restricción es que el resultado de 4 de 10 columnas es 1.

(3) Esta restricción parece redundante. ¿Es un error? Como se mencionó anteriormente, solo hay dos posibilidades para la ecuación del producto de la columna, 0 y 1:

Si todos los elementos de la columna son 1 y el producto de la columna es 1, entonces el resultado de la izquierda El lado de la desigualdad es 0 y la desigualdad Establecida;

Si los elementos de la columna no son todos 1 y el producto de la columna es 0, el resultado de la suma de la columna no excederá 3 y la desigualdad también está establecido.

3. Proporcione algunas ideas:

(1) Utilice un algoritmo de programación no entero y agregue la restricción xij * (xij-1) = 0 (*** 40), pero Puede haber dos problemas: a. Es fácil caer en el óptimo local; b. Cómo encontrar la solución factible inicial;

(2) Considere otros métodos, como el algoritmo genético. investigue en esta área;

(3) Pruebe otro software de planificación. Se dice que LINGO es bueno para resolver programación entera, pero no lo he probado. Otros famosos son AMPL y NAG, puedes comprobar la información tú mismo.

(4) En términos generales, la programación entera 0-1 es uno de los problemas NP más notorios (los veintiún problemas NP completos de Karp, en el peor de los casos, es posible atravesar todos Para la combinación). de 2^n, en lo que respecta a este problema, 2^40≈10^12, la escala del problema es muy grande y en realidad no es optimista.

Ahora, la máxima prioridad para el autor es comprobar si hay algún problema con la tercera restricción. Una vez confirmada la condición, encontraré una solución.

Aunque no puede resolver completamente el problema, pasé mucho tiempo pensando en esto. Si lo encuentra útil, espero adoptarlo (si se me ocurre una forma mejor, responderé otras preguntas). ).