59 lines
1.8 KiB
Python
59 lines
1.8 KiB
Python
|
|
# 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))
|