SetDirectory[NotebookDirectory[]];
Needs["Bulatov`common`"];

gg=GridGraph[{2,3}];
edge2clause[e_]:=!(e[[1]]&&e[[2]]);
clauses=edge2clause/@EdgeList[gg];
formula=And@@clauses;
vars=VertexList[gg];
instances=SatisfiabilityInstances[formula,vars,1000];
independentSets=Extract[vars,Position[#,True]]&/@instances;


plots=coloredPlot[gg,#]&/@independentSets;
vcoords=VertexCoordinates/.AbsoluteOptions[gg];
vcoords2=Thread[VertexList[gg]->vcoords];

coloredPlot[g_,chosen_]:=Module[{},
GraphPlot[g,VertexRenderingFunction->Function[{r,v},{EdgeForm[Black],If[MemberQ[chosen,v],Red,White],Disk[r,0.2]}],EdgeLabeling->None,VertexCoordinateRules->vcoords2]
];

GraphicsGrid[partitionList[plots,5,4,Graphics[]]]