diff --git a/main.py b/main.py deleted file mode 100644 index 18741ed..0000000 --- a/main.py +++ /dev/null @@ -1,67 +0,0 @@ -from os import system -from prettytable import PrettyTable, DOUBLE_BORDER -from colr import color - -def color_matrix(matriz, num_linhas, num_colunas, cor, coords): - matriz_temp = [linha.copy() for linha in matriz] - for i in range(num_linhas): - for j in range(num_colunas): - if [i, j] in coords: - matriz_temp[i][j] = color(matriz_temp[i][j], fore=cor, style='bright') - show_table_clear(num_linhas, matriz_temp) - -num_linhas = int(input("Digite a quantidade de linhas: ")) -num_colunas = int(input("Digite a quantidade de colunas: ")) - -matriz = [] -for i in range(num_linhas): - nova_linha = ['-' for j in range(num_colunas)] - matriz.append(nova_linha) - -def make_table(num_linhas, matriz): - #Montagem e apresentação da tabela usando PrettyTable - x = PrettyTable() - x.field_names = ["X" + str(i + 1) for i in range(len(matriz[0]))] - - for i in range(num_linhas): - x.add_row(matriz[i]) - - x.set_style(DOUBLE_BORDER) - print(x) - -def show_table_clear(num_linhas, matriz): - system("cls || clear") - make_table(num_linhas, matriz) - -def insert_table_values(num_linhas, num_colunas, matriz): - for i in range(num_linhas): - for j in range(num_colunas): - matriz[i][j] = color('*', fore='red', style='bright') - show_table_clear(num_linhas, matriz) - print(f"Insira o valor para ({i+1}, {j+1}): ") - matriz[i][j] = int(input()) - show_table_clear(num_linhas, matriz) - -insert_table_values(num_linhas, num_colunas, matriz) - -def find_smallest_value(matriz): - smallest_value = float('inf') - smallest_coords = None - - for i in range(len(matriz)): - for j in range(len(matriz[0])): - if matriz[i][j] < smallest_value: - smallest_value = matriz[i][j] - smallest_coords = [i, j] - - if smallest_value >= 0: - print("Não existe valores negativos na tabela") - return False - return smallest_value, smallest_coords - -has_negative = find_smallest_value(matriz) - -if has_negative: - color_matrix(matriz, num_linhas, num_colunas, 'green', [has_negative[1]]) - print(f"Encontrado o valor {color(has_negative[0], fore='green')} na coordenada ({has_negative[1][0] + 1}, {has_negative[1][1] + 1})") - input('Pressione ENTER para prosseguir') diff --git a/simplex.py b/simplex.py new file mode 100644 index 0000000..141dae3 --- /dev/null +++ b/simplex.py @@ -0,0 +1,58 @@ +# 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)) diff --git a/src/function.py b/src/function.py deleted file mode 100644 index e69de29..0000000