Thanks Daniel. As I understand graph theory fundamentals more your explanation appears correct. The cycle basis does not guarantee my desired result.
If I understand your suggestion correctly, the problem I have with making the polygons the nodes is that I don't know the polygons up front. In my analysis tool I am developing, I am essentially given a set of 3D lines (that are not necessarily planar) and I need to determine the polygons from there. So far I can intersect all the lines where the intersections points become the nodes of the graph, and each line connecting these points becomes an edge of the graph. I was hoping that once I built this connected/undirected graph, there would be a common graph theory algorithm to produce my desired result.
I have a few ideas I might pursue (based on what I see in my head, not any actual graph theory...):
1) Use the cycle basis to produce a set of subgraphs, and check each subgraph to see if there are any internal edges/paths from the original graph. If so, continue to find the cycle basis of the subgraph and produce more subgraphs until the no internal edges/paths exist. I suppose this will end up being some sort of while loop process. Probably wildly inefficient but I'm just looking for something that is works, is robust, and is enough to show a proof-of-concept type program.
2) Convert my 3D lines to a planar graph. There seems to be some algorithms for finding enclosed polygons of a planar graph.
Thanks again for the tips.