public static void affecter(GestItineraire gestItineraire, Plan plan, 
			NoeudItineraire entrepot, PlageHoraire plageHoraireInitiale)
	{
		
		List<Livraison> livraisonsInitiales = plageHoraireInitiale.getLivraisons();
		
		List<List<Livraison>> clusters = kmeans(livraisonsInitiales,2);
		boolean clustersValides = false;
		
		List<List<Livraison>> prochainsClusters = new ArrayList<List<Livraison>>();
		List<List<Livraison>> clustersFinaux = new ArrayList<List<Livraison>>();
		
		while(!clustersValides)
		{
			prochainsClusters.clear();
			clustersValides = true;
			for(List<Livraison> cluster : clusters)
			{
				Double poidsTotal = 0.0;
				Double volumeTotal = 0.0;
				for(int i = 0 ; i < cluster.size() ; i++)
				{
					poidsTotal += cluster.get(i).getPoids();
					volumeTotal += cluster.get(i).getVolume();
				}
				if(poidsTotal > Constantes.POIDS_STOCK_DRONE_EN_KG
				   || volumeTotal > Constantes.VOLUME_STOCK_DRONE_EN_L)
				{
					if(cluster.size() <= 1)
					{
						System.out.println("ERREUR");
					}
					List<List<Livraison>> newClusters = kmeans(cluster,2);
					prochainsClusters.add(newClusters.get(0));
					prochainsClusters.add(newClusters.get(1));
					clustersValides = false;
				}
				else
				{
					if(cluster.size() != 0)
					{
						clustersValides = clustersValides && true;
						clustersFinaux.add(cluster);	
					}
				}
			}
			clusters = new ArrayList<List<Livraison>>(prochainsClusters);
		}
		
		for(int i = 0 ; i < clustersFinaux.size() ; i++)
		{
			PlageHoraire plage = new PlageHoraire(plageHoraireInitiale.getHeureDebut(), 
					plageHoraireInitiale.getHeureFin(), 
					clustersFinaux.get(i));
			List<PlageHoraire> plages = new ArrayList<PlageHoraire>();
			plages.add(plage);
			Itineraire itineraire = new Itineraire(plan, entrepot, plages);
			itineraire.setEtat(EtatItineraire.NON_CALCULE);
			gestItineraire.ajouterItineraire(itineraire);
		}

		
		
	/*	// Itineraire 1
		List<Livraison> livraisons1 = new ArrayList<Livraison>();
		livraisons1.add(livraisonsInitiales.get(0));
		livraisons1.add(livraisonsInitiales.get(1));
		PlageHoraire plage1 = new PlageHoraire(plageHoraireInitiale.getHeureDebut(), 
											plageHoraireInitiale.getHeureFin(), 
											livraisons1);
		List<PlageHoraire> plages1 = new ArrayList<PlageHoraire>();
		plages1.add(plage1);
		Itineraire itineraire1 = new Itineraire(plan, entrepot, plages1);
		itineraire1.setEtat(EtatItineraire.NON_CALCULE);
		gestItineraire.ajouterItineraire(itineraire1);
		
		// Itineraire 2
		List<Livraison> livraisons2 = new ArrayList<Livraison>();
		livraisons2.add(livraisonsInitiales.get(2));
		livraisons2.add(livraisonsInitiales.get(3));
		PlageHoraire plage2 = new PlageHoraire(plageHoraireInitiale.getHeureDebut(), 
											plageHoraireInitiale.getHeureFin(), 
											livraisons2);
		List<PlageHoraire> plages2 = new ArrayList<PlageHoraire>();
		plages2.add(plage2);
		Itineraire itineraire2 = new Itineraire(plan, entrepot, plages2);
		itineraire2.setEtat(EtatItineraire.NON_CALCULE);
		gestItineraire.ajouterItineraire(itineraire2);
		

		// Itineraire 3
		List<Livraison> livraisons3 = new ArrayList<Livraison>();
		livraisons3.add(livraisonsInitiales.get(4));
		livraisons3.add(livraisonsInitiales.get(5));
		PlageHoraire plage3 = new PlageHoraire(plageHoraireInitiale.getHeureDebut(), 
											plageHoraireInitiale.getHeureFin(), 
											livraisons3);
		List<PlageHoraire> plages3 = new ArrayList<PlageHoraire>();
		plages3.add(plage3);
		Itineraire itineraire3 = new Itineraire(plan, entrepot, plages3);
		itineraire3.setEtat(EtatItineraire.NON_CALCULE);
		gestItineraire.ajouterItineraire(itineraire3);*/
	}