private Integer[][] getLogicalMap(CustomizedArena arena,
			int robotDiameterInCellNum) {
		int rowCount = arena.getRowCount();
		int columnCount = arena.getColumnCount();
		Integer[][] logicalMap = new Integer[rowCount][columnCount];
		
		//For each obstacle cell at Row i, Col j,
		//Mark logicalMap[i ~ (i + robotDiameterInCellNum - 1)][(j - robotDiameterInCellNum + 1) ~ j] to 1
		//Mark the top two rows and rightmost columns of logicalMap to 1
		//Else Mark to 0
		
		for(int rowID = 0;rowID < rowCount;rowID++){
			
			for(int colID = 0;colID < columnCount;colID++){
				if(rowID < robotDiameterInCellNum - 1){
					logicalMap[rowID][colID] = new Integer(1);
					continue;
				}
				if(colID > columnCount - robotDiameterInCellNum){
					logicalMap[rowID][colID] = new Integer(1);
					continue;
				}
				boolean obstacleInArea = false;
				for(int rowSpan = 0;rowSpan < robotDiameterInCellNum;rowSpan++){
					for(int colSpan = 0;colSpan < robotDiameterInCellNum;colSpan++){
						if(arena.getCell(rowID - rowSpan,colID + colSpan) == CellState.OBSTACLE){
							obstacleInArea = true;
						}
					}
				}
				if(obstacleInArea){
					logicalMap[rowID][colID] = new Integer(1);

				}else{
					logicalMap[rowID][colID] = new Integer(0);

				}
			}
		}
		
		
		return logicalMap;
	}