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))
|