Ejemplo n.º 1
0
def main():
    num = -1
    while (num < 0):
        print("-------------------------------------------------")
        num = int(input("Digite o numero de rainhas: "))
        print("-------------------------------------------------")
        if num < 0:
            print("Digite um numero valido de rainhas\n")
    metodo = -1
    while not (metodo == 1 or metodo == 2):
        print("-------------------------------------------------")
        print("Digite qual o metodo de busca: ")
        print("	1.BFS (Busca em profundidade)")
        print("	2.DFS (Busca em largura)")
        print("OBS: 1 para Busca em profundidade ou 2 para Busca em largura")
        metodo = int(input())
        print("-------------------------------------------------")
        if not (metodo == 1 or metodo == 2):
            print("Digite um numero valido ou 1 ou 2\n")

    teste = cria_tabuleiro(num)
    # lista de operadores do problema
    operadores = [gera]

    if metodo == 2:
        #Problemas:
        # Busca em largura
        # intanciando o problema
        problema = ia.Problema(teste, operadores, teste_meta, num)
        ini = time.time()
        # Realizando a busca em profundidade
        resultado = ia.busca(problema, ia.enfileira_fifo)
        fim = time.time()
        print("-------------------------------------------------")
        print("\nBusca em Largura")
        print("Estado Inicial:", teste)
        print("Saida Busca em Largura: ", resultado)
        print("Tempo: ", fim - ini)
        print("Numero de comparacoes: ", problema.comparacoes)
        print("-------------------------------------------------")
    if metodo == 1:
        #Problemas:
        # Busca em profundidade
        # intanciando o problema
        problema1 = ia.Problema(teste, operadores, teste_meta, num)
        ini1 = time.time()
        # Realizando a busca em profundidade
        resultado1 = ia.busca(problema1, ia.enfileira_lifo)
        fim1 = time.time()
        print("-------------------------------------------------")
        print("Busca em Profundidade")
        print("Estado Inicial:", teste)
        print("Saida Busca em profundidade: ", resultado1)
        print("Tempo: ", fim1 - ini1)
        print("Numero de comparacoes: ", problema1.comparacoes)
        print("-------------------------------------------------")
    return 0
Ejemplo n.º 2
0
def main():
    num_func = 10
    num_turnos = 21
    metodo = -1
    gerador = -1
    while not (1 <= metodo <= 2):
        print("-------------------------------------------------")
        print("Digite qual o metodo de busca: ")
        print("	1. (Tempera simulada or Simulated Annealing)")
        print("	2. (Algoritmo Genetico)")
        metodo = int(input())
        if not (metodo == 1 or metodo == 2):
            print("Digite um numero valido ou 1 ou 2\n")

    # lista de operadores do problema
    operadores = [gera]

    # Verificando o metodo pra realizar as buscas
    if metodo == 1:
        # Instancia do problema
        teste = ""
        while not (1 <= gerador <= 3):
            print("Digite que tipo de estado a busca deve começar: ")
            print("	1. (Exemplo de estado objetivo")
            print("	2. (Estado aleatório com 50 bits 1)")
            print("	3. (Estado aleatório)")
            gerador = int(input())
            if (gerador == 1):
                teste = exemplo_objetivo()
            if (gerador == 2):
                teste = gerar_estado_50bits(num_func, num_turnos)
            if (gerador == 3):
                teste = gerar_estado_aleatorio(num_func, num_turnos)
            if not (gerador == 1 or gerador == 2 or gerador == 3):
                print("Digite um numero valido ou 1, 2 ou 3\n")

        print("Digite o valor da temperatura inicial: ")
        temperatura = int(input())

        problema = ia.ProblemaBuscaSimulatedAnnealing(teste, operadores,
                                                      num_func, num_turnos,
                                                      melhor_avaliado,
                                                      avaliar_estado,
                                                      temperatura)

        ini = time.time()
        resultado = ia.busca(problema)
        fim = time.time()
        print("Tempera simulada Finalizada")
        print("\nEstado Inicial:")
        ia.imprime_estado(problema, teste)
        print("\nSaida Busca Tempera simulada: ")
        ia.imprime_estado(problema, resultado)
        print("\nTempo: ", fim - ini)
        print("Numero de comparações: ", problema.comparacoes)
    if (metodo == 2):
        problema = ia.ProblemaBusca("", operadores, num_func, num_turnos,
                                    melhor_avaliado, avaliar_estado)

        print("Digite o tamanho da populacao:")
        populacao = int(input())
        print("Digite o numero de gerações:")
        num_geracoes = int(input())
        print("Digite a taxa de mutacao: Exemplo : 0.1, ou 0.2 ")
        mutacao = float(input())
        print("Digite a taxa de elistimo: Exemplo : 0.1, ou 0.2 ")
        elitismo = float(input())
        instanceAlgGenetico = ia.InstanceAlgoritmoGenetico(
            populacao, num_geracoes, mutacao, elitismo)

        ini = time.time()
        resultado = ia.algoritmoGenetico(instanceAlgGenetico, problema)
        fim = time.time()

        print("Algotitmo Genetico Finalizado")
        print("Melhor individuo encontrado: ")
        print(resultado)
        ia.imprimeCromossomo(problema, resultado.estado)
        print("\nTempo: ", fim - ini)
    return 0
Ejemplo n.º 3
0
def main():
    num_func = 10
    num_turnos = 21
    metodo = -1
    gerador = -1
    while not (1 <= metodo <= 3):
        print("-------------------------------------------------")
        print("Digite qual o metodo de busca: ")
        print("	1. (Subida da encosta")
        print("	2. (Subida da encosta pelo maior aclive)")
        print("	3. (Busca melhor primeiro)")
        metodo = int(input())
        if not (metodo == 1 or metodo == 2 or metodo == 3):
            print("Digite um numero valido ou 1, 2 ou 3\n")
    while not (1 <= gerador <= 3):
        print("Digite que tipo de estado a busca deve começar: ")
        print("	1. (Exemplo de estado objetivo")
        print("	2. (Estado aleatório com 50 bits 1)")
        print("	3. (Estado aleatório)")
        gerador = int(input())
        if (gerador == 1):
            teste = exemplo_objetivo()
        if (gerador == 2):
            teste = gerar_estado_50bits(num_func, num_turnos)
        if (gerador == 3):
            teste = gerar_estado_aleatorio(num_func, num_turnos)
        if not (gerador == 1 or gerador == 2 or gerador == 3):
            print("Digite um numero valido ou 1, 2 ou 3\n")
    print("-------------------------------------------------")

    # lista de operadores do problema
    operadores = [gera]

    # Instancia do problema
    problema = ia.ProblemaBusca(teste, operadores, num_func, num_turnos,
                                melhor_avaliado, avaliar_estado, metodo)

    # Verificando o metodo pra realizar as buscas
    if metodo == 1 or metodo == 2:
        ini = time.time()
        resultado = ia.busca(problema)
        fim = time.time()
        if (metodo == 1):
            print("-----------------------------------------------------")
            print("Busca Subida da encosta Finalizada")
            print("Estado Inicial:")
            ia.imprime_estado(problema, teste)
            print("\nSaida Busca Subida da encosta: ")
            ia.imprime_estado(problema, resultado)
            print("\nTempo: ", fim - ini)
            print("Numero de comparacoes: ", problema.comparacoes)
            print("-----------------------------------------------------")
        if (metodo == 2):
            print("-----------------------------------------------------")
            print("Busca Subida da encosta pelo maior Aclive Finalizada")
            print("Estado Inicial:")
            ia.imprime_estado(problema, teste)
            print("\nSaida Busca Subida da encosta pelo maior aclive: ")
            ia.imprime_estado(problema, resultado)
            print("\nTempo: ", fim - ini)
            print("Numero de comparacoes: ", problema.comparacoes)
            print("-----------------------------------------------------")
    if metodo == 3:
        ini = time.time()
        resultado = ia.busca(problema)
        fim = time.time()
        print("-----------------------------------------------------")
        print("Busca Melhor Primeiro")
        print("Estado Inicial:")
        ia.imprime_estado(problema, teste)
        print("\nSaida Busca Melhor Primeiro: ")
        ia.imprime_estado(problema, resultado)
        print("\nTempo: ", fim - ini)
        print("Numero de comparacoes: ", problema.comparacoes)
        print("-----------------------------------------------------")
    return 0
Ejemplo n.º 4
0
def main():
    # criando apagando o arquivo para salvar o novo log
    arquivo = open('log.txt', 'w')
    arquivo.close()

    # items = [4,1,3,2,6,8,7,5,0] # items do tabuleiro
    # items = [2,0,3,1,7,4,6,8,5]
    items = [1, 0, 3, 8, 6, 4, 7, 5, 2]  # tabuleiro com a resposta

    #random.shuffle(items) # embaralhando os items do tabuleiro
    teste1 = cria_tabuleiro(items)  # criando o tabuleiro

    operadores = [move_baixo, move_cima, move_direita,
                  move_esquerda]  # lista de operadores do problema
    # instanciando o problema
    #teste = embaralha(t,operadores)

    #teste1 = [[1,2,3],[4,0,6],[7,5,8]]

    #Problemas:
    """Sem heuristica:"""
    #largura (Busca em amplitude - cega)
    problema = ia.Problema(teste1, operadores, teste_meta, funcao_custo)
    ini = time.time()
    resultado = ia.busca(problema, enfileira_fifo)
    fim = time.time()

    #profundidade
    problema1 = ia.Problema(teste1, operadores, teste_meta, funcao_custo)
    ini1 = time.time()
    resultado1 = ia.busca(problema1, enfileira_lifo)
    fim1 = time.time()
    """Com heuristica"""
    #gulosa
    problema2 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_desordenado)
    #A* desordenado
    problema3 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_desordenado)

    #A* Manhattan
    problema4 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_manhattan)
    ini4 = time.time()
    resultado4 = ia.buscaaestrela(problema4, enfileira_lifo)
    fim4 = time.time()

    # ini2 = time.time()
    # resultado2 = ia.buscagulosa(problema2, enfileira_lifo)
    # fim2 = time.time()
    # ini3 = time.time()
    # resultado3 = ia.buscaaestrela(problema3, enfileira_lifo)
    # fim3 = time.time()

    print("Busca em Largura")
    print("Estado Inicial:", teste1["pecas"])
    print("Saida Busca em Largura: ", resultado)
    print("Tempo: ", fim - ini)
    print("Numero de comparacoes: ", problema.comparacoes)
    print("-------------------------------------------------")
    print("Busca em Profundidade")
    print("Estado Inicial:", teste1["pecas"])
    print("Saida Busca em Largura: ", resultado1)
    print("Tempo: ", fim1 - ini1)
    print("Numero de comparacoes: ", problema1.comparacoes)
    print("-------------------------------------------------")
    # print ("Busca em Gulosa")
    # print ("Estado Inicial:",teste1["pecas"])
    # print ("Saida Busca em Largura: ", resultado2)
    # print ("Tempo: ", fim2 - ini2)
    # print ("Numero de comparacoes: ", problema2.comparacoes)
    # print ("-------------------------------------------------")
    # print ("Busca A* numero de pessas fora do lugar")
    # print ("Estado Inicial:",teste1["pecas"])
    # print ("Saida Busca em Largura: ", resultado3)
    # print ("Tempo: ", fim3 - ini3)
    # print ("Numero de comparacoes: ", problema3.comparacoes)
    # print ("-------------------------------------------------")
    print("Busca A* Distancia de Manhattan")
    print("Estado Inicial:", teste1["pecas"])
    print("Saida Busca em Largura: ", resultado4)
    print("Tempo: ", fim4 - ini4)
    print("Numero de comparacoes: ", problema4.comparacoes)
    print("-------------------------------------------------")
    """Com heuristica:"""
    """		Numero de pecas fora de posicao		"""
    """problema = ia.Problema(teste, operadores, teste_meta, heuristica_desordenado)"""
    """		Distancia de Manhattan		"""
    """problema = ia.Problema(teste, operadores, teste_meta, heuristica_manhattan)"""
    """Buscas:"""
    """print "Saida Busca em Profundidade:", ia.busca(problema, enfileira_lifo)"""
    """print "Saida Busca Gulosa:", ia.buscagulosa(problema, enfileira_lifo)"""
    """print "Saida Busca A*:", ia.buscaaestrela(problema, enfileira_lifo)"""
    return 0
Ejemplo n.º 5
0
def main():
    items = [4, 1, 3, 2, 6, 8, 7, 5, 0]  # items do tabuleiro
    #random.shuffle(items) # embaralhando os items do tabuleiro
    teste1 = cria_tabuleiro(items)  # criando o tabuleiro

    operadores = [move_baixo, move_cima, move_direita,
                  move_esquerda]  # lista de operadores do problema
    # instanciando o problema
    #teste = embaralha(t,operadores)

    #teste1 = [[1,2,3],[4,0,6],[7,5,8]]

    #Problemas:
    """Sem heuristica:"""
    #largura
    problema = ia.Problema(teste1, operadores, teste_meta, funcao_custo)
    #profundiade
    problema1 = ia.Problema(teste1, operadores, teste_meta, funcao_custo)
    #gulosa
    problema2 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_desordenado)
    #A* desordenado
    problema3 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_desordenado)
    #A* Manhattan
    problema4 = ia.Problema(teste1, operadores, teste_meta,
                            heuristica_manhattan)

    ini = time.time()
    resultado = ia.busca(problema, enfileira_fifo)
    fim = time.time()
    ini1 = time.time()
    resultado1 = ia.busca(problema1, enfileira_lifo)
    fim1 = time.time()
    ini2 = time.time()
    resultado2 = ia.buscagulosa(problema2, enfileira_lifo)
    fim2 = time.time()
    ini3 = time.time()
    resultado3 = ia.buscaaestrela(problema3, enfileira_lifo)
    fim3 = time.time()
    ini4 = time.time()
    resultado4 = ia.buscaaestrela(problema4, enfileira_lifo)
    fim4 = time.time()

    print "Busca em Largura"
    print "Estado Inicial:", teste1["pecas"]
    print "Saida Busca em Largura: ", resultado
    print "Tempo: ", fim - ini
    print "Numero de comparacoes: ", problema.comparacoes
    print "-------------------------------------------------"
    print "Busca em Profundiade"
    print "Estado Inicial:", teste1["pecas"]
    print "Saida Busca em Largura: ", resultado1
    print "Tempo: ", fim1 - ini1
    print "Numero de comparacoes: ", problema1.comparacoes
    print "-------------------------------------------------"
    print "Busca em Gulosa"
    print "Estado Inicial:", teste1["pecas"]
    print "Saida Busca em Largura: ", resultado2
    print "Tempo: ", fim2 - ini2
    print "Numero de comparacoes: ", problema2.comparacoes
    print "-------------------------------------------------"
    print "Busca A* numero de pessas fora do lugar"
    print "Estado Inicial:", teste1["pecas"]
    print "Saida Busca em Largura: ", resultado3
    print "Tempo: ", fim3 - ini3
    print "Numero de comparacoes: ", problema3.comparacoes
    print "-------------------------------------------------"
    print "Busca A* Distancia de Manhattan"
    print "Estado Inicial:", teste1["pecas"]
    print "Saida Busca em Largura: ", resultado4
    print "Tempo: ", fim4 - ini4
    print "Numero de comparacoes: ", problema4.comparacoes
    print "-------------------------------------------------"
    """Com heuristica:"""
    """		Numero de pecas fora de posicao		"""
    """problema = ia.Problema(teste, operadores, teste_meta, heuristica_desordenado)"""
    """		Distancia de Manhattan		"""
    """problema = ia.Problema(teste, operadores, teste_meta, heuristica_manhattan)"""
    """Buscas:"""
    """print "Saida Busca em Profundidade:", ia.busca(problema, enfileira_lifo)"""
    """print "Saida Busca Gulosa:", ia.buscagulosa(problema, enfileira_lifo)"""
    """print "Saida Busca A*:", ia.buscaaestrela(problema, enfileira_lifo)"""
    return 0