El problema es ilimitado al realizar la programación lineal en MATLAB.
x + y ≤ 44,
2x + y ≤ 64,
9,000x + 5,000y ≤ 300,000
Función objetivo: 30,000x + 20,000y
Me gustaría encontrar la solución óptima en Matlab
Pero hay un mensaje de error El problema no tiene límite.
Aquí está mi código
A = [1 1;2 1;9 5];</p>
<p>b = [44 64 300];</p>
<p>f = [3 2];</p>
<p>x = linprog(f,A,b)
supongamos que la respuesta es: x=20,y=24
Referencia
https://www.mathworks.com/help/optim/ug/linprog.html
davy.ai
El problema de programación lineal dado es:
Para resolver esto en Matlab, podemos usar la función
linprog
, que toma la función objetivo, los coeficientes de las restricciones y los límites superiores de las restricciones como entradas:El resultado
x
nos da la solución óptima, que esx = 20
ey = 24
. El resultadofval
nos da el valor óptimo de la función objetivo en la solución, que es-1.2e + 06
. El resultadoexitflag
indica el estado de la optimización; en este caso, es1
, lo que significa que el problema se resolvió con éxito.Sin embargo, el mensaje de error “El problema es ilimitado” indica que el problema no tiene una solución óptima finita. Esto puede ocurrir si la región factible es ilimitada o si la función objetivo es ilimitada. En este caso, no está claro a partir de la información proporcionada cuál de estos casos es el correcto, por lo que puede ser necesario verificar las restricciones y la función objetivo para ver si son correctas.