예제 #1
0
    def gera_filho(self, no):
        no.expandido = True

        filho = No(no.cidade.vizinhos[no.cont_filho])
        filho.pai = no
        filho.valor = no.valor + self.grafo.distancias[no.cidade.id][
            filho.cidade.id]
        no.filhos.append(filho)
        no.cont_filho += 1

        return filho
예제 #2
0
    def gera_filhos(self, no, fechados):
        no.expandido = True
        fechados[no.cidade.id] = True

        while len(no.cidade.vizinhos) > no.cont_filho:
            proximo = no.cidade.vizinhos[no.cont_filho].id

            if not self.confere_ancestral(no,
                                          proximo) and not fechados[proximo]:
                filho = No(no.cidade.vizinhos[no.cont_filho])
                filho.pai = no
                filho.valor = no.valor + self.grafo.distancias[no.cidade.id][
                    filho.cidade.id]
                no.filhos.append(filho)

            no.cont_filho += 1

        no.cont_filho = 0