public static void initializeGoalState(final int numOfTiles) {
		goalState = 0;
		final int numOfTilesMinusOne = numOfTiles - 1;
		for (int i = 0; i < numOfTiles; ++i) {
			if (i != numOfTilesMinusOne) {
				final int iPlusOne = i + 1;
				goalState |= ((long) iPlusOne << (i << 2));
			} else {
				goalState |= ((long) 0 << (i << 2));
			}
		}
		goalStatePositions = Utility.getPositionsAsLong(goalState, numOfTilesMinusOne);
	}