def tryAddCommande(self, plan, commande): #Recherche si la station est deja dans la tournee station = plan.clients[commande.noeud].stationProche #copie de la tournee pour tester l'ajout cpCheminReseau = copy.copy(self.cheminReseau) cpCheminStations = copy.deepcopy(self.cheminStations) if station in cpCheminReseau : #Si la station est dans la tournee, ajout de la commande a la #sous-tournee distance = tsp.insertNodeTSP(plan.mDistancesVille, commande.noeud, cpCheminStations[station], self.distance) else: #Sinon #ajout de la station a la tournee distance = tsp.insertNodeTSP(plan.mDistancesReseau, station, cpCheminReseau, self.distance) #creation de la sous-tournee (cpCheminStations[station], d) = tsp.greedyTSP(plan.mDistancesVille, [station, commande.noeud]) distance += d diffDist = distance - self.distance poids = self.poids + commande.poids volume = self.volume + commande.vol """ print "resultat de l'ajout try" print cpCheminReseau print pprint(cpCheminStations) print pprint(self.cheminStations) """ return (distance, diffDist, poids, volume)
def addCommande(self, plan, commande): #Recherche si la station est deja dans la tournee station = plan.clients[commande.noeud].stationProche if station in self.cheminReseau : #Si la station est dans la tournee, ajout de la commande a la #sous-tournee self.distance = tsp.insertNodeTSP(plan.mDistancesVille, commande.noeud, self.cheminStations[station], self.distance) else: #Sinon #ajout de la station a la tournee self.distance = tsp.insertNodeTSP(plan.mDistancesReseau, station, self.cheminReseau, self.distance) #creation de la sous-tournee (self.cheminStations[station], d) = tsp.greedyTSP(plan.mDistancesVille, [station, commande.noeud]) self.distance += d self.poids += commande.poids self.volume += commande.vol