@Override
    public void execute() {
        if(cheminsAvant == null){
            
            if(chemins != null){
                cheminsAvant = new LinkedList<>();
                for(Chemin Ch : chemins){
                    cheminsAvant.add(new Chemin(Ch));
                }
            }
            
            try {
            	tournee.solve((time));
            } catch ( HorsPlageException hpe) {
            	Controleur.getInstance().notifyError(hpe);
            }
            
            if(tournee.getSolutionState() == SolutionState.OPTIMAL_SOLUTION_FOUND ||
                    tournee.getSolutionState() == SolutionState.SOLUTION_FOUND){
                chemins = tournee.getCheminsResultats();

                float totalCost = 0;
                for (Chemin c : chemins) {
                    totalCost += c.getCost();
                }
                
                cheminsApres = new LinkedList<>();
                for(Chemin Ch : chemins){
                    cheminsApres.add(new Chemin(Ch));
                }
            }
            else{
                cheminsAvant = null;
            }
            
        }
        //TODO arranger le catch
        else {
            chemins = new LinkedList<>();
            for(Chemin Ch : cheminsApres){
                chemins.add(new Chemin(Ch));
            }
        }
    }