0

I have a graph where nodes represent points in 3D space. Each node is connected only to all other nodes within some cutoff radius. I am trying to enumerate all subgraphs such that the nodes represent the vertices of a polyhedron with no interior nodes or edges.

At first I thought this was clique problem, but the requirement that all nodes are adjacent to each other isn't working for me. The opposite corners of a cube aren't going to be connected in my dataset, but I need to be able to pull out the cube.

I don't really have a formal education in CS, so I'm not really sure what to search for, but hopefully someone with a better domain vocabulary than me can point me in the right direction.

beardslay
  • 41
  • 2
  • There can be exponentially many of these subgraphs. What is approximately the number of vertices (resp. the number of edges)? Anyway, this is not purely a graph problem. – WhatsUp May 06 '16 at 19:51
  • Yeah there are a lot of them. I expect to perform this analysis on graphs ranging from 1k-10k nodes, with approximately 12 outgoing edges per node. – beardslay May 06 '16 at 19:53
  • By "polyhedron" do you mean only the convex ones? Have you tried to consider the same question on 2D space? – WhatsUp May 06 '16 at 20:02
  • I expect the overwhelming majority of polyhedra to be convex. I haven't tried a 2D version yet; I was hoping this problem was already solved... – beardslay May 06 '16 at 20:21
  • To my intuition, the overwhelming majority will be non-convex. It doesn't seem like a solved problem to me. So maybe you should go back to the motivation - why do you want to know this number? Is it a programming challenge problem, or a practical problem? Is there a way to go around it? and so on. – WhatsUp May 06 '16 at 20:29
  • Polyhedra identification is the end-goal of this project so there's really no way around it. Luckily for me, in the particular datasets I'm interested in only convex polyhedra seem to be important. But I guess if this problem isn't solved, I have no choice but to try to hack something together. – beardslay May 06 '16 at 21:19

1 Answers1

0

One way to attack this problem seem to me to use a 3D triangulation "tetrahedrisation". CGAL can be of service there. Then you can start generating different polyhedrons by sticking together neighboring tetrahedrons from the triangulation (as long as they don't inclose another vertex in their combined interior).

gue
  • 1,868
  • 1
  • 16
  • 21