Determining minimal state representation for maze game
I don't get why the (a).i. uses (,) coordinates whereas (b).i. uses boolean list. I guess they can be used interchangeablly right?

No these cannot be used interchangeably. The situations really are different enough that completely different state representations are necessary.
In the case of (a) you know the current bug's location, and nothing else about the problem changes over time. So any state representation that captures a single bug's location is valid. The (x,y) coordinates are a natural choice given the framing of the question, but also you could enumerate all the possible grid positions for the bug, giving the same size of state space.
In case of (b) you do not know where either bug is, but you don't need to care about the difference between each bug to track it separately (this is becasue your goal state does not rely on the identity of either bug). Therefore the state representation has to capture where any bug could possibly be.
The proposed solution is simple, but you could also do it by tracking possible locations of each bug. That could work with $17^2$ $(x_1,y_1,x_2,y_2)$ tuples initialised to all possible position combinations that the two bugs start in. The state space in that case is large (it is not just $17^2$, but includes all valid reachable combinations of the combined $17^2$ $(x_1,y_1,x_2,y_2)$ tuples) and difficult to assess because many state combinations are not reachable. Also note this alternative proposal does differentiate between the bugs - you could potentially improve upon that by removing start states that simply swap between bug locations, although this is still not as efficient as the binary representation.
Technically the proposed solution for (b) also works the same for any number of bugs that are spread out in the maze and want to all be in the same location at the end.