private void changeTeams(){
		//
		int costsOrg = sol.getCumulativeCost();
		//
		for(int ch=0; ch<sol.getCitiesNum(); ch++){
			for(int ch2=ch+1; ch2<sol.getCitiesNum(); ch2++){
				//
				Game game = null;
				for (int round = 0; round < sol.getSolution().size(); round++) {
					for (int city = 0; city < sol.getSolution().get(0).size(); city++) {
						game = sol.getSolution().get(round).get(city);
						changeGame(game, ch, ch2);
					}
				}
				int costs = sol.getCumulativeCost();
				//
				boolean badConstraint = sol.checkConstraint();
				if((costsOrg<=costs) || badConstraint){
					for (int round = 0; round < sol.getSolution().size(); round++) {
						for (int city = 0; city < sol.getSolution().get(0).size(); city++) {
							game = sol.getSolution().get(round).get(city);
							changeGame(game, ch2, ch);
						}
					}
				}
				else{
					//System.out.println("Improvement "+ch+" - "+ch2+": "+costs);
					//System.out.println(sol);
					if(Util.protocolBoolean){
						Util.protocol += "Improvement "+ch+" - "+ch2+": "+costs+"\n";
					}
				}
		}
		}
	}