def buscar(self, atual): print("\nAtual: {}\nMeus adjacentes são:".format(atual.nome)) atual.visitado = True Buscagulosa.rota += atual.nome if atual == self.objetivo: self.achou = True print("Minha rota foi: {}".format(Buscagulosa.rota)) print("Meu custo foi: {}".format(Buscagulosa.custo)) else: self.fronteira = VetorOrdenado(len(atual.adjacentes)) self.fronteira_adjacentes = VetorOrdenadoAdjacente( len(atual.adjacentes)) for i in atual.adjacentes: if i.cidade.visitado == False: i.cidade.visitado = True self.fronteira.inserir(i.cidade) self.fronteira.mostrar() if self.fronteira.getPrimeiro() != None: Buscagulosa.custo += i.distancia if self.fronteira.getPrimeiro() != None: Buscagulosa.buscar(self, self.fronteira.getPrimeiro())
def buscar(self, atual): print('\nAtual->{}'.format(atual.nome)) atual.visitado = True if (atual == self.objetivo): self.achou = True else: self.fronteira = VetorOrdenado(len(atual.adjacentes)) for a in atual.adjacentes: if a.cidade.visitado == False: a.cidade.visitado = True self.fronteira.inserir(a.cidade) self.fronteira.mostrar() if (self.fronteira.getPrimeiro() != None): Gulosa.buscar(self, self.fronteira.getPrimeiro())
def buscar(self, atual): print("\nAtual: {}".format(atual.nome)) atual.visitado = True if atual == self.objetivo: self.achou = True else: self.fronteira = VetorOrdenado(len(atual.adjacentes)) for i in atual.adjacentes: if i.cidade.visitado == False: i.cidade.visitado = True self.fronteira.inserir(i.cidade) self.fronteira.mostrar() if self.fronteira.getPrimeiro() != None: Busca_gulosa.buscar(self, self.fronteira.getPrimeiro())
class BuscaGulosa: def __init__(self, objetivo): self.objetivo = objetivo self.achou = False def buscar(self, atual): print("\nAtual: {}".format(atual.nome)) atual.visitado = True if atual == self.objetivo: self.achou = True else: self.fronteira = VetorOrdenado(len(atual.adjacentes)) for a in atual.adjacentes: if a.cidade.visitado == False: a.cidade.visitado = True self.fronteira.inserir(a.cidade) self.fronteira.mostrar() if self.fronteira.getPrimeiro() != None: BuscaGulosa.buscar(self, self.fronteira.getPrimeiro())
def insere_ordenado(lista): vetor = VetorOrdenado(len(lista)) for i in lista: vetor.insere(i) return vetor
from VetorOrdenado import VetorOrdenado from Mapa import Mapa mapa = Mapa() vetor = VetorOrdenado(16) def CriarMapaOrdenado(): vetor.inserir(mapa.A) vetor.inserir(mapa.B) vetor.inserir(mapa.C) vetor.inserir(mapa.D) vetor.inserir(mapa.K) vetor.inserir(mapa.J) vetor.inserir(mapa.L) vetor.inserir(mapa.M) vetor.inserir(mapa.G) vetor.inserir(mapa.H) vetor.inserir(mapa.N) vetor.inserir(mapa.O) vetor.inserir(mapa.E) vetor.inserir(mapa.F) vetor.inserir(mapa.R) vetor.inserir(mapa.S) CriarMapaOrdenado() vetor.buscar() vetor.mostrar()