src/DataStructure/Utility.java
public static void mossaSquadraDiversa(){
		int selectedSquad1 = sRandom.nextInt(squadre.size());
		ArrayList<String> listaPossSquadre = new ArrayList<String>();
		//Controllo che la squadra selezionata abbia almeno un elemento
		while(valuateSolution.getListaIntIntervento(selectedSquad1).size() < 1){
			selectedSquad1 = sRandom.nextInt(squadre.size());
		}
		//Seleziono l'elemento della squadra1 da dare alle squadra2
		int idIntToDonate = Integer.valueOf(valuateSolution.getListaIntIntervento(selectedSquad1).get(
				sRandom.nextInt(valuateSolution.getListaIntIntervento(selectedSquad1).size())).getId()
				);
		//cacolo una lista di possibili squadre a cui assegnare l'intervento
		//selezionato
		
		listaPossSquadre=getListaSquadForInt(idIntToDonate);
		
		//Controllo che la lista delle squadre a cui assegnare l'intervento
		//abbia almeno due elementi
		while(listaPossSquadre.size()==1){
			//controllo che la lista degli interventi della squadra1 abbia più 
			//di un intervento
			if(valuateSolution.getListaIntIntervento(selectedSquad1).size()==1){
				int selectedComodoSquad = sRandom.nextInt(squadre.size());
				while(selectedComodoSquad == selectedSquad1){
					selectedComodoSquad = sRandom.nextInt(squadre.size());
				}
				selectedSquad1 = selectedComodoSquad;
				idIntToDonate = Integer.valueOf(interventi.get(sRandom.nextInt(
						valuateSolution.getListaIntIntervento(selectedSquad1).size())
						).getId());
				listaPossSquadre=getListaSquadForInt(idIntToDonate);
			}
			else{
				idIntToDonate = Integer.valueOf(interventi.get(sRandom.nextInt(
						valuateSolution.getListaIntIntervento(selectedSquad1).size())
						).getId());
				listaPossSquadre=getListaSquadForInt(idIntToDonate);
			}
		}
		
		int selectedSquad2 = Integer.valueOf(listaPossSquadre.get(
				sRandom.nextInt(listaPossSquadre.size()))
				);
		while(selectedSquad1 == selectedSquad2){
			selectedSquad2 = Integer.valueOf(listaPossSquadre.get(
					sRandom.nextInt(listaPossSquadre.size()))
					);
		}
		
		valuateSolution.swapIntFromTwoSquad(selectedSquad1,selectedSquad2,idIntToDonate);
	}
/**
	 * Metdo di supporto per effettuare la mossa per la modifica della soluzione iniziale
	 * per la realizzazione di una soluzione vicina effettuando lo swap di un intervento 
	 * dalla lista di interventi di una squadra all'interno della lista di interventi di 
	 * un' alatra squadra
	 */
Metdo di supporto per effettuare la mossa per la modifica della soluzione iniziale
per la realizzazione di una soluzione vicina effettuando lo swap di un intervento
dalla lista di interventi di una squadra all'interno della lista di interventi di
un' alatra squadra
Metdo di supporto per effettuare la mossa per la modifica della soluzione iniziale per la realizzazione di una soluzione vicina effettuando lo swap di un intervento dalla lista di interventi di una squadra all ' interno della lista di interventi di un ' alatra squadra
public static void mossaSquadraDiversa(){
		int selectedSquad1 = sRandom.nextInt(squadre.size());
		ArrayList<String> listaPossSquadre = new ArrayList<String>();
		while(valuateSolution.getListaIntIntervento(selectedSquad1).size() < 1){
			selectedSquad1 = sRandom.nextInt(squadre.size());
		}
		int idIntToDonate = Integer.valueOf(valuateSolution.getListaIntIntervento(selectedSquad1).get(
				sRandom.nextInt(valuateSolution.getListaIntIntervento(selectedSquad1).size())).getId()
				);
		listaPossSquadre=getListaSquadForInt(idIntToDonate);
		while(listaPossSquadre.size()==1){
			if(valuateSolution.getListaIntIntervento(selectedSquad1).size()==1){
				int selectedComodoSquad = sRandom.nextInt(squadre.size());
				while(selectedComodoSquad == selectedSquad1){
					selectedComodoSquad = sRandom.nextInt(squadre.size());
				}
				selectedSquad1 = selectedComodoSquad;
				idIntToDonate = Integer.valueOf(interventi.get(sRandom.nextInt(
						valuateSolution.getListaIntIntervento(selectedSquad1).size())
						).getId());
				listaPossSquadre=getListaSquadForInt(idIntToDonate);
			}
			else{
				idIntToDonate = Integer.valueOf(interventi.get(sRandom.nextInt(
						valuateSolution.getListaIntIntervento(selectedSquad1).size())
						).getId());
				listaPossSquadre=getListaSquadForInt(idIntToDonate);
			}
		}
		int selectedSquad2 = Integer.valueOf(listaPossSquadre.get(
				sRandom.nextInt(listaPossSquadre.size()))
				);
		while(selectedSquad1 == selectedSquad2){
			selectedSquad2 = Integer.valueOf(listaPossSquadre.get(
					sRandom.nextInt(listaPossSquadre.size()))
					);
		}
		valuateSolution.swapIntFromTwoSquad(selectedSquad1,selectedSquad2,idIntToDonate);
	}
public static void mossaSquadraDiversa ( ) { int selectedSquad1 = sRandom . nextInt ( squadre . size ( ) ) ; ArrayList < String > listaPossSquadre = new ArrayList < String > ( ) ; while ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . size ( ) < 1 ) { selectedSquad1 = sRandom . nextInt ( squadre . size ( ) ) ; } int idIntToDonate = Integer . valueOf ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . get ( sRandom . nextInt ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . size ( ) ) ) . getId ( ) ) ; listaPossSquadre = getListaSquadForInt ( idIntToDonate ) ; while ( listaPossSquadre . size ( ) == 1 ) { if ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . size ( ) == 1 ) { int selectedComodoSquad = sRandom . nextInt ( squadre . size ( ) ) ; while ( selectedComodoSquad == selectedSquad1 ) { selectedComodoSquad = sRandom . nextInt ( squadre . size ( ) ) ; } selectedSquad1 = selectedComodoSquad ; idIntToDonate = Integer . valueOf ( interventi . get ( sRandom . nextInt ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . size ( ) ) ) . getId ( ) ) ; listaPossSquadre = getListaSquadForInt ( idIntToDonate ) ; } else { idIntToDonate = Integer . valueOf ( interventi . get ( sRandom . nextInt ( valuateSolution . getListaIntIntervento ( selectedSquad1 ) . size ( ) ) ) . getId ( ) ) ; listaPossSquadre = getListaSquadForInt ( idIntToDonate ) ; } } int selectedSquad2 = Integer . valueOf ( listaPossSquadre . get ( sRandom . nextInt ( listaPossSquadre . size ( ) ) ) ) ; while ( selectedSquad1 == selectedSquad2 ) { selectedSquad2 = Integer . valueOf ( listaPossSquadre . get ( sRandom . nextInt ( listaPossSquadre . size ( ) ) ) ) ; } valuateSolution . swapIntFromTwoSquad ( selectedSquad1 , selectedSquad2 , idIntToDonate ) ; }
Metdo di supporto per effettuare la mossa per la modifica della soluzione iniziale
 per la realizzazione di una soluzione vicina effettuando lo swap di un intervento
 dalla lista di interventi di una squadra all'interno della lista di interventi di
 un' alatra squadra
Metdo di supporto per effettuare la mossa per la modifica della soluzione iniziale per la realizzazione di una soluzione vicina effettuando lo swap di un intervento dalla lista di interventi di una squadra all ' interno della lista di interventi di un ' alatra squadra
//Controllo che la squadra selezionata abbia almeno un elemento //Seleziono l'elemento della squadra1 da dare alle squadra2 //cacolo una lista di possibili squadre a cui assegnare l'intervento //selezionato //Controllo che la lista delle squadre a cui assegnare l'intervento //abbia almeno due elementi //controllo che la lista degli interventi della squadra1 abbia più  //di un intervento