Files
Simplex-Solver/simplex.py

59 lines
1.8 KiB
Python
Raw Normal View History

2023-05-20 22:13:59 -03:00
# 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))