Files
Simplex-Solver/simplex.py
nanometer5088 edb2699bab all done
2023-05-20 22:13:59 -03:00

59 lines
1.8 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Theodoro Priosti de Almeida - 32229011
import pulp
from os import system
# Criar um problema de programação linear
problema = pulp.LpProblem("Problema", pulp.LpMaximize)
# Criar as variáveis do problema
n = int(input("Quantas restrições tem o problema? "))
x = pulp.LpVariable('x', lowBound=0)
y = pulp.LpVariable('y', lowBound=0)
# Adicionar as restrições do problema
for i in range(0, n):
x_valor = int(input('Insira o valor do coeficiente de x: '))
print(f'{x_valor}*x + y = 0')
y_valor = int(input('Insira o valor do coeficiente de y: '))
print(f'{x_valor}*x + {y_valor}*y = 0')
p = int(input('Insira o valor da função objetivo: '))
print(f'{x_valor}*x + {y_valor}*y = {p}')
simbolo = int(input('Insira o número correspondente à restrição:\n1= <=\n2= =\n3= >=\n'))
if simbolo == 1:
print(f'{x_valor}*x + {y_valor}*y <= {p}')
problema += x_valor * x + y_valor * y <= p
if simbolo == 2:
print(f'{x_valor}*x + {y_valor}*y = {p}')
problema += x_valor * x + y_valor * y <= p
problema += x_valor * x + y_valor * y >= p
if simbolo == 3:
print(f'{x_valor}*x + {y_valor}*y >= {p}')
problema += x_valor * x + y_valor * y >= p
system("cls || clear")
# Definir a função objetivo do problema
print("Função objetivo: ")
x_valor1 = int(input('Insira o valor do coeficiente de x: '))
print(f'{x_valor1}*x + y')
y_valor1 = int(input('Insira o valor do coeficiente de y: '))
print(f'{x_valor1}*x + {y_valor1}*y')
problema += x_valor1 * x + y_valor1 * y
# Resolver o problema usando o Método Simplex
problema.solve()
system("cls || clear")
#
# Imprimir a solução ótima
print("Valor ótimo da função objetivo: ", pulp.value(problema.objective))
print("Valor de x: ", pulp.value(x))
print("Valor de y: ", pulp.value(y))