In order for PuzzleState objects to act like graph vertices, the PuzzleState class must implement the Vertex interface.
We already have a class that implements Vertex: SimpleVertex.
So, make PuzzleState extend SimpleVertex:
package puzzle;
import framework.State;
import graph.SimpleVertex;
public class PuzzleState extends SimpleVertex implements State { ... }