def options(): printc("cyan", "1. Ver dados padrões.") printc("cyan", "2. Ver dados customizados.") printc("cyan", "3. Gerar dados aleatórios.") printc("cyan", "4. Instruções.") printc("cyan", "5. Voltar.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if (option == '1'): printData() aux.press_enter() menu() elif (option == '2'): printData("custom") aux.press_enter() menu() elif (option == '3'): generateRandomData() aux.press_enter() menu() elif (option == '4'): texts.instructions() aux.press_enter() menu() elif (option == '5'): aux.clear_screen() return else: menu(True)
def options(): learning_rate, minibatch, trainset, testset, epochs = get_configs() printc("cyan", "1. Learning rate: \033[1;33m" + str(learning_rate)) printc("cyan", "2. Minibatch: \033[1;33m" + str(minibatch)) printc("cyan", "3. Conjunto de treino: \033[1;33m" + str(trainset)) printc("cyan", "4. Conjunto de teste: \033[1;33m" + str(testset)) printc("cyan", "5. Épocas: \033[1;33m" + str(epochs)) printc("cyan", "6. Voltar.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if (option == '1'): x = input("Insira o novo valor: ") set_configs('learning_rate', x) menu() elif (option == '2'): x = input("Insira o novo valor: ") set_configs('minibatch', x) menu() elif (option == '3'): x = input("Insira o novo valor: ") set_configs('trainset', x) menu() elif (option == '4'): x = input("Insira o novo valor: ") set_configs('testset', x) menu() elif (option == '5'): x = input("Insira o novo valor: ") set_configs('epochs', x) menu() elif (option == '6'): return else: menu(True)
def instruction3(): aux.clear_screen() text = [ "Como inserir novos algoritmos:", "", "-> Inserindo em código:", "", " O módulo com seu código deve estar na pasta \"~/modules\".", " Abra o arquivo \"algorithms.py\" e, na sessão indicada por", " comentários no código, insira as informações e o algoritmo", " nos devidos locais instruídos. Bem como, deve-se importar", " um módulo em python, com seu algoritmo, no local indicado.", " Caso seu algoritmo não esteja em python, deve-se realizar ", " uma interação entre as linguagens. Isto foi feito para nosso", " algoritmo (dfs) e pode ser visualizado no arquivo \"dfs.py\".", "", "-> Formato dos retorno dos resultados:", "", " Os resultados retornados pelo módulo em python devem estar", " em um array, onde cada elemento é uma linha, terminada por", " \"\\n\", se quiser ter uma quebra de linha. Recomendamos que", " se leve em conta o tamanho do terminal na escritura dos", " resultados. Uma maneira fácil de fazer isto é escrevendo os ", " resultados em um arquivo de texto, com a formatação de seu", " gosto, e ler as linhas do arquivo para um array. O que também", " foi feito no módulo \"dfs.py\"." ] b.normal_blox(text, "@", 76, "white", True) print() aux.press_enter() aux.clear_screen()
def options(): printc("cyan", "1. Enunciado e análise.") printc("cyan", "2. Ver ou inserir dados.") printc("cyan", "3. Resolução.") printc("cyan", "4. Configurações.") printc("cyan", "5. Créditos.") printc("cyan", "6. Sair.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if (option == '1'): texts.problemAnalysis() aux.press_enter() menu() elif (option == '2'): dataManip.menu() menu() elif (option == '3'): resolution.menu() menu() elif (option == '4'): configs.menu() menu() elif (option == '5'): texts.credit() aux.press_enter() menu() elif (option == '6'): aux.clear_screen() exit(0) else: menu(True)
def show_results(alg): aux.clear_screen() t.header(alg) aux.printc("bwhite", "Resultados:") print() for i in results: print(i, end='') print() aux.press_enter()
def getPrecision(op='standard'): if (op == 'standard'): return 10**-5 precision = input("Especifique a precisão (exemplo: 10e-6): ") aux.clear_screen() separator = 0 for i in precision: if (i == 'e'): break separator += 1 base = int(precision[:separator]) exponent = int(precision[separator + 1:]) return base**exponent
def options(): learning_rate, minibatch, trainset, testset, epochs = config.get_configs() printc("cyan","1. Visualizar arquitetura.") printc("cyan","2. Treinar rede.") printc("cyan","3. Testar rede.") printc("cyan","4. Predição individual.") printc("cyan","5. Carregar modelo.") printc("cyan","6. Salvar modelo.") printc("cyan","7. Resetar pesos.") printc("cyan","8. Configurações.") printc("cyan","9. Créditos.") printc("cyan","10. Sair.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if(option=='1'): actions.print_model(net, minibatch) aux.press_enter() menu() elif(option=='2'): actions.train(net, epochs, trainset, minibatch, learning_rate) # (net, epochs, trainset, minibatch, learning rate) aux.press_enter() menu() elif(option=='3'): actions.test(net, testset, minibatch) # (net, testset, minibatch) aux.press_enter() menu() elif(option=='4'): actions.pred(net, minibatch) aux.press_enter() menu() elif(option=='5'): dm.load_model(net) menu() elif(option=='6'): dm.save_model(net) aux.press_enter() menu() elif(option=='7'): dm.reset_weights(net) menu() elif(option=='8'): config.menu() menu() elif(option=='9'): texts.credit() aux.press_enter() menu() elif(option=='10'): aux.clear_screen() exit(0) else: menu(True)
def menu(error_message=False): aux.clear_screen() a = getDataInputConfigs() if (a == 0): return texts.print_blox("CONFIGURAÇÕES") if (error_message): aux.error_option() print("Formato dos dados: ", end="") if (a == '1'): aux.printc("purple", "Matrizes e vetores separados em arquivos.\n") elif (a == '0'): aux.printc("purple", "Os 2 sistemas em um só arquivo.\n") options()
def options(): aux.printc("cyan", "1. Alterar formato de obtenção dos dados.") aux.printc("cyan", "2. Voltar.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if (option == '1'): actual = getDataInputConfigs() if (actual == '0'): setDataInputConfigs("apart") else: setDataInputConfigs("together") menu() elif (option == '2'): aux.clear_screen() return else: menu(True)
def instruction1(): aux.clear_screen() text = [ "Como utilizar o programa:", "", " Escolha a opção \"Iniciar\", então escolha o algoritmo que deseja", " executar. ", "", " Após isto, escolha o grafo no qual deseja usar o algoritmo.", "", " Por fim, escolha a opção \"Executar\".", "", " Para visualizar os resultados novamente escolha \"Visualizar ", " resultados\".", "", " Se desejar visualizar o grafo escolha \"Visualizar grafo\"." ] b.normal_blox(text, "@", 76, "white", True) print() aux.press_enter() aux.clear_screen()
def general_menu(header_title="MENU", options="main_options", alg="", graph="", error=False, error2=False, error2n=3): aux.clear_screen() header(header_title) if (error): aux.error_msg() if (error2): aux.error_msg(error2n) print("\n") cursor_up = call_options(options, alg, graph) aux.cursor_up(cursor_up) op = input("Escolha uma opção: ") aux.clear_screen() return op
def choose_custom(alg): x = "" graphs = os.listdir("modules/Grafos") while (x not in graphs): aux.clear_screen() t.header(alg) print() aux.printc("yellow", "Grafos encontrados:\n") for i in graphs: aux.printc("lyellow", i) print("") x = input("Escolha um grafo (ou exit para voltar): ") if (x == "exit"): return "" elif (x not in graphs): print() aux.error_msg(3) aux.press_enter() return x
def instruction2(): aux.clear_screen() text = [ "Como adicionar grafos personalizados:", "", "-> Grafos personalizados:", "", " O arquivo de grafo tem extensão \".txt\" e suas linhas devem", " conter o seguinte formato:", " > Primeira linha - número de vértices e de arestas, nesta ordem e", " separados por um espaço", " > Linhas seguintes - primeiro vértice, segundo vértice e peso (ou", " distância) da aresta, nesta ordem e separados por um espaço.", "", "-> Inserir / Remover os arquivos personalizados:", "", " Os arquivos estão localizados no caminho \"~/modules/Grafos\"." ] b.normal_blox(text, "@", 76, "white", True) print() aux.press_enter() aux.clear_screen()
def options(): printc("cyan", "1. Usar dados padrões.") printc("cyan", "2. Usar dados customizados.") printc("cyan", "3. Voltar.\n") option = input("Insira a opção desejada: ") aux.clear_screen() if (option == '1'): solve() aux.press_enter() menu() elif (option == '2'): solve("custom") aux.press_enter() menu() elif (option == '3'): aux.clear_screen() return else: menu(True)
def random_menu(alg): while True: aux.clear_screen() t.header(alg) print() vertex = input("Informe a quantidade de vértices do grafo: ") if (not vertex.isdigit()): aux.printc("red", "\nPor favor digite um inteiro positivo.") aux.press_enter() continue vertex = int(vertex) ans = input("Quer um grafo completo? (s/n): ").lower() if (ans != 's' and ans != 'n'): aux.printc("red", "\nPor favor digite apenas \'s\' ou \'n\' (sem o \')") aux.press_enter() continue complete = True if ans == 's' else False if (complete): connected = True else: ans = input("O grafo é conexo? (s/n): ").lower() if (ans != 's' and ans != 'n'): aux.printc( "red", "\nPor favor digite apenas \'s\' ou \'n\' (sem o \')") aux.press_enter() continue connected = True if ans == 's' else False aux.printc("yellow", "\nInforme o nome com o qual deseja salvar o arquivo") aux.printc("yellow", "que contém o grafo (sem a extensão), ou apenas") filename = input( "\033[1;33mpressione enter para salvar como \"random.txt\": \033[0m" ) + ".txt" if (filename == ".txt"): filename = "random.txt" print() rg.generate(vertex, complete, connected, filename) return filename
def credits(): aux.clear_screen() text = [ "UECE - Universidade Estadual do Ceará", "Curso de Ciência da Computação", "Disciplina de Teoria dos Grafos", "", "Docente:", "Mestra Camila Campos Colares das Dores", "", "Discentes:", "Gabriel Furtado Lins Melo", "José Gabriel Uchoa Holanda", "Lucas Almeida Aguiar", "Vinicius Amaro Sampaio", "", "Linguagens de Desenvolvimento:", "Python 3", "C++", ] b.normal_blox(text, size=74, color="white") print() aux.press_enter() aux.clear_screen()
def menu(error_message=False): aux.clear_screen() texts.print_blox() if(error_message): aux.error_option() options()
def openData(op="standard"): a = getDataInputConfigs() if (op == "standard"): file_path = os.path.join(os.path.dirname(__file__), "data", "together", "standard") elif (op == "custom"): if (a == '0'): listdir_nohidden("data/together") filename = input("\nInsira o nome do arquivo que deseja usar: ") file_path = os.path.join(os.path.dirname(__file__), "data", "together", filename) elif (a == '1'): listdir_nohidden("data/apart") A1 = input("\nInsira o nome do arquivo da matriz A1: ") A1_path = os.path.join(os.path.dirname(__file__), "data", "apart", A1) if (not os.path.isfile(A1_path)): printc("red", "O arquivo " + A1_path + " não foi encontrado!") return 0 b1 = input("Insira o nome do arquivo do vetor b1: ") b1_path = os.path.join(os.path.dirname(__file__), "data", "apart", b1) if (not os.path.isfile(b1_path)): printc("red", "O arquivo " + b1_path + " não foi encontrado!") return 0 A2 = input("Insira o nome do arquivo da matriz A2: ") A2_path = os.path.join(os.path.dirname(__file__), "data", "apart", A2) if (not os.path.isfile(A2_path)): printc("red", "O arquivo " + A2_path + " não foi encontrado!") return 0 b2 = input("Insira o nome do arquivo do vetor b2: ") b2_path = os.path.join(os.path.dirname(__file__), "data", "apart", b2) if (not os.path.isfile(b2_path)): printc("red", "O arquivo " + b2_path + " não foi encontrado!") return 0 aux.clear_screen() with open(A1_path, 'r') as f: A1 = np.loadtxt(f) with open(b1_path, 'r') as f: b1 = np.loadtxt(f) with open(A2_path, 'r') as f: A2 = np.loadtxt(f) with open(b2_path, 'r') as f: b2 = np.loadtxt(f) matrix = systemToMatrix(A1, b1, A2, b2) return matrix if (a == '0' or op == "standard"): aux.clear_screen() if (os.path.isfile(file_path)): if (os.path.getsize(file_path) > 0): with open(file_path, 'r') as f: matrix = np.loadtxt( f, comments='S') # ignora as linhas começadas com 'S' return matrix else: printc("red", "O arquivo " + file_path + " está vazio!") return 0 else: printc("red", "O arquivo " + file_path + " não foi encontrado!") return 0