def branch_bound(self, V): # Affichage au début de l'algo if self.timed == 0: self.send_to_Trace("Debut du Branch & Bound :\n", "in") self.timed = time.time() # Initialisation de l'algo arbre = Arbre(V, self) # Initialisation de la liste des feuilles sol = arbre.update() # Tant qu'on a pas de solution, on met à jour la liste des feuilles while not sol: sol = arbre.update() if isinstance(sol, str): print sol return # Construction de la solution entière à partir de la feuille solution = [] while sol: solution += [(sol.motObj, sol.mot, sol.value)] sol = sol.pere # Affichage de la solution et du temps de calcul self.timed = time.time() - self.timed self.send_to_Trace("Fin du Branch & Bound ", "out") self.send_to_Trace(" Temps :" + str(self.timed) + "\n", "time") self.res = solution self.sendResult(self.res) self.pause() with self.pause_cond: while self.paused: self.pause_cond.wait() self.timed = time.time()