public Set<Light> getLights(int[][] board) {
		// Initially place the lights randomly, and put the collector next to the last light
		
		this.validBoard  = createValidBoard(board);
		sectors = getSectors();
		assignedSectors = new HashSet<Integer>();
		lights = new HashSet<Light>();
		objective = new HashMap<Integer,List<Tuple<Integer,Integer>>>();
		lightArr = new Light[numLights];
		sectorArr = new int [numLights];
		Random r = new Random();
		Set<Integer> sectorsTaken = new HashSet<Integer>();

		for(int i=0; i<numLights;i++)
		{

			Tuple<Integer,Integer> startingPoint = null;
			int mostMosquitoes = 0;
			int sectorWithMostMosquitoes = getSectorWithMostMosquitoes(board);
			if (sectorWithMostMosquitoes >=0 ) {
				assignedSectors.add(sectorWithMostMosquitoes);

				HashSet<Tuple<Integer,Integer>> sector = sectors.get(sectorWithMostMosquitoes);
				for ( Tuple<Integer,Integer> t : sector ) {
					if(validBoard[t.x][t.y])
					{
						startingPoint = t;
						break; // Arbitrarily just start in the first tuple of the sector
					}
				}
			} else {
				startingPoint = new Tuple<Integer,Integer>(51,51);
			}


			//int x = startingPoint.x;
			lastLight = new Point2D.Double(startingPoint.x, startingPoint.y);
			MoveableLight l = new MoveableLight(lastLight.getX(),lastLight.getY(), true);
			log.trace("Positioned a light at (" + lastLight.getX() + ", " + lastLight.getY() + ")");
			lights.add(l);
			lightArr[i]=l;
			sectorArr[i]=sectorWithMostMosquitoes;
			objective.put(i, null);
		}
		return lights;
	}