es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema de programación lineal dado es:

    maximizar 30,000x + 20,000y
    sujeto a:
        x + y ≤ 44,
        2x + y ≤ 64,
        9,000x + 5,000y ≤ 300,000 
    

    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:

    A = [1 1; 2 1; 9000 5000]; 
    b = [44; 64; 300000]; 
    f = [-30000; -20000]; 
    
    [x, fval, exitflag] = linprog(f, A, b) 
    

    El resultado x nos da la solución óptima, que es x = 20 e y = 24. El resultado fval nos da el valor óptimo de la función objetivo en la solución, que es -1.2e + 06. El resultado exitflag indica el estado de la optimización; en este caso, es 1, 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.

Comments are closed.