on the difficulty of triangulating three-dimensional ...suri/cs235/rlist/3dtrihardness.pdf · the...

27
Discrete Comput Geom 7:227-253 (1992) GV66i try © 1992 Springer-Verlag New York Inc. On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra* Jim Ruppert and Raimund Seidel Computer ScienceDivision, Universityof California at Berkeley, Berkeley,CA 94720, USA [email protected] seidel @lyra.berkeley.edu Abstract. A number of different polyhedral decomposition problems have previously been studied, most notably the problem of triangulating a simple polygon. We are concerned with the polyhedron triangulation problem: decomposing a three-dimen- sional polyhedron into a set of nonoverlapping tetrahedra whose vertices must be vertices of the polyhedron. It has previously been shown that some polyhedra cannot be triangulated in this fashion. We show that the problem of deciding whether a given polyhedron can be triangulated is NP-complete, and hence likely to be computationally intractable. The problem remains NP-complete when restricted to the case of star-shaped polyhedra. Various versions of the question of how many Steiner points are needed to triangulate a polyhedron also turn out to be NP-hard. 1. Introduction Polyhedron decomposition concerns the problem of dividing a d-dimensional polyhedron into simpler polybedra. It has applications in robotics, computer-aided design, computer graphics, and other fields. Two main types of decomposition have been considered: coverings and partitions. In a covering the simpler polyhedra may overlap arbitrarily, whereas in a partition overlaps are allowed only in common faces of dimension < d (for d = 3 this means the only overlaps are common vertices, edges, and polygonal faces). Usually, only vertices from the original polyhedron may be used as vertices of the subpolybedra, although sometimes we may allow additional "Steiner" points to be used. We may require a * This work was supported by National ScienceFoundation Grant CCR-8809040.

Upload: others

Post on 21-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

Discrete Comput Geom 7:227-253 (1992)

GV66i try © 1992 Springer-Verlag New York Inc.

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra*

Jim Ruppert and Raimund Seidel

Computer Science Division, University of California at Berkeley, Berkeley, CA 94720, USA ruppert @cs.berkeley.edu seidel @lyra.berkeley.edu

Abstract. A number of different polyhedral decomposition problems have previously been studied, most notably the problem of triangulating a simple polygon. We are

concerned with the polyhedron triangulation problem: decomposing a three-dimen- sional polyhedron into a set of nonoverlapping tetrahedra whose vertices must be vertices of the polyhedron. It has previously been shown that some polyhedra cannot

be triangulated in this fashion. We show that the problem of deciding whether a given polyhedron can be triangulated is NP-complete, and hence likely to be

computationally intractable. The problem remains NP-complete when restricted to

the case of star-shaped polyhedra. Various versions of the question of how many Steiner points are needed to triangulate a polyhedron also turn out to be NP-hard.

1. Introduction

Polyhedron decomposition concerns the problem of dividing a d-dimensional

polyhedron into simpler polybedra. It has applications in robotics, computer-aided

design, computer graphics, and other fields. Two main types of decomposition

have been considered: coverings and partitions. In a covering the simpler polyhedra

may overlap arbitrarily, whereas in a partition overlaps are allowed only in

common faces of dimension < d (for d = 3 this means the only overlaps are

common vertices, edges, and polygonal faces). Usually, only vertices from the

original polyhedron may be used as vertices of the subpolybedra, although

sometimes we may allow additional "Steiner" points to be used. We may require a

* This work was supported by National Science Foundation Grant CCR-8809040.

Page 2: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

228 J. Ruppert and R. Seidel

Fig. 1. The number of tetrahedra in a triangulation of a polyhedron is not unique.

decomposition into polyhedra that are convex, or monotone, or otherwise "sim-

pler" than the original polyhedron. Here, we investigate the problem of partition-

ing a three-dimensional polyhedron into simplices, i.e., tetrahedra. We call this the

polyhedron triangulation problem. Partitioning a two-dimensional polyhedron into

simplices is known as polygon triangulation, and has been well studied. Many

efficient algorithms are known for producing triangulations, with the recent

linear-time algorithm of Chazelle [4] being asymptotically optimal.

In this paper we show that the three-dimensional triangulation problem is

significantly more difficult than the two-dimensional triangulation problem. One

difference between the problems lies in the size of the resulting partitions: every

triangulation of an n-sided polygon produces n - 2 triangles, but the number of

tetrahedra in a triangulation of a given polyhedron is not unique. For example,

a bipyramid with a triangular base may be partitioned into either two or three

tetrahedra (see Fig. 1).

Even more significant is the difference that any (non-self-intersecting) polygon

may be triangulated, whereas there exist simple three-dimensional polyhedra

which cannot be triangulated. The following example is due to Sch6nhardt [12]

and is referred to in Chapter 10 of [9]. The six-vertex polyhedron P in Fig. 2 is

Fig. 2. A polyhedron that cannot be triangulated.

Page 3: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 229

constructed as follows. Starting with a triangular prism, "twist" the top face by

a small amount. The three side faces cannot remain planar, so allow them to "bend

in" along the appropriate diagonals to become two triangular faces.

The polyhedron P cannot be triangulated because no tetrahedron formed by

four of its vertices is wholly contained in P. If a tetrahedron was contained in P,

then each pair of vertices of the tetrahedron would be able to "see" each other

within P. In the case of P, the pairs of vertices which can see each other are exactly

those which form edges of P. Since the edge-graph of P contains no complete

subgraph on four vertices, P contains no tetrahedron.

O'Rourke has posed the problem of characterizing polyhedra that cannot be

triangulated [9]. We show that it is unlikely that there exists such a characteriza-

tion that is computationally useful. We investigate the related question of deciding

whether a given polyhedron can be triangulated. Our main result states that this

problem is NP-complete. Thus, we cannot expect (unless P = NP, see [8]) to find

an algorithm that can decide whether a given polyhedron can be triangulated and

that has a running time bounded by a polynomial in the number of vertices of

the polyhedron. NP-completeness is shown by transformation from the Satisfi-

ability problem [8, p. 259]. We show how for any Boolean formula in conjunctive

normal form we can construct a three-dimensional polyhedron that can be

triangulated iff the Boolean formula is satisfiable. The main tool in this construc-

tion is a gadget that we call a niche, which, when attached to a polyhedron, restricts

the possible triangulations. In particular, niches can force certain tetrahedra to

appear, and they can prevent certain pairs of tetrahedra from appearing simulta-

neously.

NP-completeness holds even for a fairly restricted class of polyhedra. The

construction produces polyhedra without holes or dangling faces or edges (i.e.,

simple polyhedra). These polyhedra will also have triangular faces. The NP-

completeness does not depend on coplanarities of faces or other degeneracies. We

extend the proof to show that the problem is still NP-complete even if we restrict

the input to star-shaped polyhedra. As a corollary of this, we are able to show

NP-hardness for several problems concerning polyhedron triangulation when

Steiner points are allowed.

Most other work in polyhedron decomposition has focused on two-dimensional

problems, a number of which have been shown to be NP-hard [10], [6]. In the

three-dimensional case Chazelle has investigated partitions into convex pieces [3],

and Bajaj and Dey have recently given an algorithm with an improved running

time [2]. Chazelle and Palios have shown that any three-dimensional n-vertex

polyhedron with r reflex edges can be triangulated (if Steiner points are allowed)

using O(n + r z) tetrahedra in time O(nr + r 2 log r) [5]. Chazelle also showed that

ta(n z) tetrahedra are necessary in the worst case [3]. Triangulation of convex

three-dimensional polyhedra is fairly easy [7]. Von Hohenbalken gives an algo-

rithm that partitions a d-dimensional convex polyhedron into simptices in time

that is linear in the number of simplices produced [13]. The problem of triangula-

ting a set of points in three dimensions is investigated in [7] and [1].

A note about terminology: what we refer to here as the three-dimensional

polyhedron triangulation problem has had a variety of names in the literature. The

Page 4: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

230 J. Ruppert and R. Seidel

three-dimensional case has been referred to as tetrahedrization, tetrahedralization, and tetrahedronalization. Triangulation usually refers to the two-dimensional case

or the d-dimensional case. Here we follow [5], and use trianoulation for three

dimensions. It will be noted when we are referring to a two-dimensional triangula-

tion. We will, however, always use triangle to refer to a two-dimensional simplex

and tetrahedron for a three-dimensional simplex. The general d-dimensional case

of polyhedron decomposition has also been called simplication and simplicial decomposition because a simplicial complex is produced.

2. Niches and the Illuminant Lemma

In this section we describe a gadget called a niche, that can be used to force any

triangulation of a polyhedron to satisfy certain conditions. Our construction is

based on the following simple fact: In every triangulation of a polyhedron P every

triangular face of the boundary of P must appear in exactly one tetrahedron. This

tetrahedron will include a fourth vertex that is not in the face. This fourth vertex

must be able to "see" all of the triangular face. We would like to take advantage

of this by specifying certain triangular faces that can only form a tetrabedron with

a certain vertex or one of a small set of vertices.

The "twisted prism" introduced in Section 1 can be adapted to serve this

purpose. Note that though no vertex of the prism can see all of the "base" (the

bot tom triangular face), other points may be able to see all of the base, as for

instance the center point of the top face (see Fig. 3). If the top face of the prism

is removed, then there is a triangular cone of points that can all see the inside of

the base of the prism. In Fig. 4 the cone is determined by the planes containing

the shaded faces qlq2P2, q2q3P3, and q3qlPt. This uncapped prism, consisting of

seven triangles on six vertices, which by itself cannot be triangulated, but which

might be triangulated using another vertex, we refer to as a niche. Niches will be

used as parts of the boundaries of larger polyhedra. When a niche is part of a

larger polyhedron, we refer to a point in the polyhedron that can see the entire

Fig. 3. Entire prism visible from the center x of

the top face.

visibility cone

Fig. 4.

q3

Visibility cone for a niche.

q2

Page 5: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 231

iche

Fig. 5. A niche attached to a cube.

base of the niche as a viewpoint of the niche. We refer to the set of all viewpoints

as the illuminant of the niche. Figure 5 shows a niche, a viewpoint of the niche,

and the illuminant of the niche. For simplicity, we define the illuminant so that

it does not include any of the interior of the niche. Note that the illuminant of a

niche consists of a single connected portion of the interior of the polyhedron,

incident to the open end of the niche. The illuminant may not be the intersection

of a triangular cone with the polyhedron, as some points may be obstructed by

other faces of the polyhedron, preventing them from seeing the entire base of the

niche.

For our purposes it is important that vertices can be placed so that they can

form tetrahedra with the bases of certain niches, and that we can construct niches

so that their bases can form tetrahedra only with certain vertices. The following

lemma shows that this is relatively easy to achieve. It shows how to construct

niches with prespecified illuminants.

Lemma 1 (The Illuminant Lemma). Let F be a face of a polyhedron P and let C

be a triangular cone that intersects the relative interior of F in a trianfle T. Let Cr

be the set o f points in P c~ C that can see all o f T. Then it is possible to attach a

niche N to F such that C r c I ~ C, where I is the illuminant o f N. (See Fig. 6.)

Proof. We show how to construct a niche N with the desired properties. Let/~1,

/~2,/~3 be the vertices of the triangle T. Let ql, q2, qa be the intersections of the

edges of the cone C with a plane parallel to the face F and slightly "outside" F

(see Fig. 7). One at a time, move Pt, P2, P3 "ou t " from T on F to produce Pl, P2,

polyhedron P

triangle T

cone C

- e F

/ ft.

I

j . <

ql i ~ - - - ¢ , - - - ~ 1

/

Fig. 6. The setting for the Illuminant Lemma. Fig. 7. Placing ql, q2, q3.

Page 6: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

232 J. Ruppert and R. Seidel

/

Fig. 8. Placing Pl, P2, P3.

ql %

Fig. 9. The constructed niche.

P3 in the following way: move t31 a small positive distance in the direction/33/3~,

stay!ng within F. Also move/32 in the direction PiP2 and move/33 in the direction

/32/33 (see Fig. 8). The amount of movement must be small enough so that the

niche N specified below is well formed, i.e., any two of its triangular faces only

intersect in a complete common edge, or a common vertex.

Let the niche N consist of the seven faces qaq2ql, PlqlP2, q~q2P2, P2q2P3,

q2q3P3, P3q3Pl, qaqlPx. Attach N to F by removing the triangle PtP2P3 from F,

and triangulate (here we mean a two-dimensional polygon triangulation) the rest

of F in any fashion (see Fig. 9).

Now note that the three faces qlq2P2, q2q3P3, q3q~P~ of the niche N are

contained in the boundary of the cone C, so every point in C is on the "inside"

of these faces. The other three side faces of the niche, P~qlP2, P2q2P3, Paq3P~, were

moved "outward" from the cone C. By assumption every point in C r can see all

of T, and thus by construction every such point can see the entire base triangle

q~q2q3 of the niche N and is therefore in I, the illuminant of N. Thus Cr c I.

(Usually Cr = I, but it is possible that a point in C may be obstructed from seeing

all of T, and still see qlq2q3.)

On the other hand, any point not in C will be outside the plane of one of the

faces qlq2P2, q2q3P3, q3qlPl, and will thus not be in the illuminant of N. Thus I c C . []

The illuminant is interesting because any vertex that can form a tetrahedron

with the bottom triangular face of the niche must be contained in it. Often, we

will want to triangulate the entire niche (i.e., form a tetrahedron with each of its

triangular faces) from some vertex. For any given set of vertices in Cr, the niche

can be constructed so that these vertices can see all of the side faces as well as the

bottom face, and hence any of them could triangulate the entire niche. When we

place vertices in illuminants, below, we will make sure to place them in the region

Ca-.

Niches and groups of niches will be used as "gadgets" that force any triangula-

tion to have certain properties. For example, if exactly two vertices x, y of the

polyhedron are in the illuminant of a niche that has base qlq2q3, then exactly one

of the tetrahedra T~ = xq~q2q3 or T2 = Yqxq2qa must appear in any triangulation

(see Fig. 10). Since tetrahedra may not overlap in a triangulation (except in

Page 7: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra

Fig. 10.

2

233

Tetrahedra T I and T~ overlap; at most one of them can appear in any triangulation.

common faces), each of T 1 and T 2 may obstruct other tetrahedra from appearing

with them in a triangulation. Other more complicated gadgets may be built up in

a similar fashion.

3. NP-Completeness of the Decision Problem

Theorem 1. It is NP-complete to decide whether a given three-dimensional poly-

hedron can be triangulated without using additional Steiner points.

Proof We use a polynomial-time transformation from instances of the Satisfi-

ability problem. We assume that the Satisfiability instance is a Boolean expression

in conjunctive normal form with n variables and m clauses. For example:

( X 1 -~ X 2 -t- X 3 + X 4 ) ( X 2 --t- x 3 X X 3 -J¢- X, 1. + X 5 )

is an expression with five variables X1, Xz, S 3 , X4 , X 5 and three clauses. The

first clause contains four literals, the negative literals X 2, X 3, and the positive

literals X1, X 4.

Giver an expression E that is an instance of Satisfiability, we show how to

construct a polyhedron P such that

E is satisfiable ¢¢- P can be triangulated.

We at first give a rough outline of the construction of P from which the implication

P can be triangulated =~ E is satisfiable

can be proved easily. Subsequently we refine this construction significantly so that

the reverse implication

E is satisfiable =~ P can be triangulated

can also be proved. After stating some construction constraints that this refined

construction must satisfy, we show how these constraints ensure the two-way

Page 8: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

234 J. Ruppert and R. Seidel

ainants

Fig. 11. Clause niches attached to polyhedron P.

implication. Lastly, we show that P can indeed be constructed to satisfy the

constraints.

Outline of Construction. For the time being imagine the general shape of the

polyhedron P we construct as that of a rectangular box, with tiny niches arranged

on two sides of the box. There will be clause niches that correspond to clauses,

and variable niches corresponding to variables. We also use two special kinds of

vertices: truth-setting vertices and literal vertices.

The clause niches will be attached to the bot tom of the box, and will be

constructed (using the Il luminant Lemma) such that their illuminants form skinny

vertical regions that do not intersect within the polyhedron, as shown in Fig. 11.

There will be one literal vertex for each occurrence of each literal, with each literal

vertex being placed on the top of the box in the illuminant of the corresponding

clause. Each variable's literals will be arranged in two rows, one for the positive

literals and one for the negative literals. Figure 12 shows a Satisfiability expression

and the resulting clause niches and literal vertex placements.

The idea is that a clause niche may be triangulated only from its corresponding

literal vertices, as they are the only vertices in its illuminant. The literal vertex

that triangulated the niche corresponds to a literal that satisfies the clause in the

expression E. We need a way to enforce a " t ruth assignment," to prevent a

literal vertices. ~ x~ ~ x2 ~ xt placed here i ......... ~ ........ .~. " . . . .

~ - " ' ' ~ ' ~ - clause niche

Fil~ 12. Regions of polyhedron corresponding to variables, niche for clause (X-'~I + g2 + X~), and placemmat of three corresponding literal vertices.

Page 9: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra

variable niche illuminant -~.

Fig. 13. Truth-setting vertices are viewpoints of variable niches.

235

variable's positive and negative literal vertices from simultaneously being used to

triangulate clause niches. Because of the way we have placed the literal vertices

in rows, we can use a gadget like that of Fig. 10 in which one of two specified

tetrahedra must be present in any triangulation, each of which "blocks" one row

of literal vertices from seeing their corresponding clause niches. For each variable

in the expression, we add to the polyhedron a variable niche along the ballk face,

and two truth-setting vertices on the front face, as shown in Fig. 13. We use the

Illuminant Lemma to ensure that only the two truth-setting vertices can be used

to triangulate the variable niche. The use of the TRUE truth-setting vertex will

represent the variable being set true, the FALSE vertex will represent false.

Given a triangulation of the polyhedron P, we can show that the expression E

is satisfiable. We can interpret a truth assignment from the triangulation of the

variable niches, since the base triangle of each variable niche forms a tetrahedron

with either the TRUE truth-setting vertex or the FALSE truth-setting vertex. If

the TRUE truth-setting vertex was used, the variable is set true, and the negative

literals will be blocked from seeing their clause niches. If the FALSE truth-setting

vertex was used, the variable is set false, and the positive literals will be blocked

from seeing their clause niches. We know that this truth assignment is a satisfying

truth assignment because of the following: The base triangle of each clause niche

must have formed a tetrahedron with one of the literal vertices. This vertex must

correspond to a literal set true, since vertices corresponding to false literals are

blocked from triangulating their clause niches. The literal vertex that triangulates

the niche represents a literal that satisfies the corresponding clause. Thus we have

shown that the implication

polyhedron P can be triangulated =~ expression E is satisfiable

holds for this simple polyhedron construction.

The Refined Construction. We run into difficulties if we use the above construc-

tion and try to show that a satisfying truth assignment for E yields a triangulation

of the polyhedron P. We would like to use the satisfying assignment to guide us

in triangulating the clause niches and variable niches, but this yields a partial

triangulation in which many tetrahedra stretch across the interior of the poly-

Page 10: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

236 J. Ruppert and R. Seidel

hedron. The remaining untriangulated portion is shaped very irregularly, and it

is unclear whether the triangulation can be completed. Instead of trying to do

this, we refine our construction to produce a polyhedron that is more complicated,

but in which we can describe how to complete the triangulation.

In the refined construction, each variable will correspond to a portion of the

polyhedron. One at a time, the truth setting of each variable is used to determine

how to triangulate that variable's portion of the polyhedron. When all variables

have been considered, the triangulation will be complete. Things are set up so that

there is minimal interaction between the triangulations of the different portions,

so the overall triangulation proceeds smoothly. By working incrementally, we also

simplify the explanation, as we need only describe the triangulation of a single

variable's portion of the polyhedron.

We assume the given Satisfiability expression has m clauses and n variables.

To simplify the construction, we restrict the Satisfiability instances to those in

which each variable appears exactly three times, once as a negative literal, and

twice as a positive literal. Each appearance must be in a different clause. This

restricted version of Satisfiability is easily shown to be NP-complete, by extending

an arg~nent on p. 259 of [8] (a variable with only one positive and one negative

literal can be eliminated by resolution, i.e., by combining the two clauses that

contain these two literals).

The starting point for our construction will be a sort of "distorted wedge."

Figure 14 shows an example for the case in which n = m = 2. We sometimes refer

to the (x, y, z) coordinates of points. Figure 14 shows the orientation of the

coordinate axes and gives coordinates for several points. Other coordinates will

(o.od)

z

variable

variable X 1

( O,n,l ) :I

,1)

2m+l no~ thin base triangles

(in z=0 plane)

Fig. 14. Starting point for the polyhedron construction,

Page 11: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 237

initial

step

X step ~ 2

X triangulates

2 clause 1

X triangulates

I clause 2

Fig. 15. The interface sweeping across the polyhedron. After each step, everything to the right of the

interface has been triangulated.

be specified later. In the following we add niches and extra vertices and faces to

this wedge to finish the construction.

The base of the wedge consists of 2m + 1 vertices c~, c2 . . . . . c2m+ ~, lying on a

parabola to be specified later. These vertices bound m triangular faces c lc2c3 ,

c3c4c 5 . . . . . C2m_lC2mC2m+l. We will later attach a clause niche to each of these

triangles. The top of the polyhedron is a row of n squares, one per variable. To

each of these squares, we will attach a " roof" containing the variable niche and

the variable's three literal vertices.

Figure 16 shows a single variable's roof. For reference, we also include the

chain of triangles from the base of the polyhedron. The front gable of the roof is

the face z r z A z r , and the back gable is YiY2Y3. Attached to the back gable will be

the variable's niche, which will have only two vertex viewpoirrts, z r and z r. On

the rooftop will be the literal vertices xt, x2, and x3, with x~ and x2 representing

the two positive literals and x3 representing the single negative literal (without

loss of generality we assume that x t is contained in a lower-indexed clause than

x2). The idea is that if the variable is set true in the satisfying assignment, then z r

can be used to triangulate the variable niche, and then xt and x 2 can be used to

triangulate their respective clause niches if needed. Using Zr to triangulate the

variable niche will "block" xa (the negative literal, which is false) from triangulating

its clause niche. The case when the variable is set fals.e is handled symmetrically.

We will attach the superscript i to a roof vertex if we need to specify that it

belongs to the roof of the ith variable. For example, notice that z~r and z~ + ~ are

two names for the same vertex. Vertices yg and y~+l are also identified. Often,

when referring to a generic variable, we drop the i superscripts.

Page 12: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

238 J. Ruppert and R. Seidel

variable i's niche

attaches here

roof for variable i+l . . . -- , . ¢ . . . . . y ..... --. y : --...... y

x V ~._cha'm of triangles

Fig. 16. A variable's roof(seen from the "right").

A number of geometric details must be dealt with before we can describe the

actual triangulation corresponding to a satisfying truth assignment. We first give

a brief idea of how the triangulation process would proceed. The "interface"

between the triangulated and untriangulated portions of the polyhedron will

"sweep" across the polyhedron, triangulating one variable's portion at a time (see

Fig. 15).

After the ith step of the triangulation (n steps altogether, one per variable), the

interface will have the following properties:

• It will have the form of a topological disk.

• It will consist of triangles.

• Each triangle contains the vertex z~., which will be called the hub of the

interface. One triangle is i i zry3cl , and the other triangles each include z~. and

two vertices from c 1, c 2 . . . . . c2,+ 1, as specified below.

• The triangulation will include the niches of clauses satisfied so far. Since the

clause niches are attached to triangles in the chain, we have:

• If the j th clause is not satisfied by one of the first i variables, then the

triangle ZTC2jt _ IC2j + l will be part of the interface.

• If the j th clause is satisfied by one of the first i variables, then the triangles

ztrc2j_lc2j and t ZrC2jC2j+ 1 will be part of the interface.

Thus, the number of triangles in the interface will be m + 1 + j, where m is the

total number of clauses and j is the number of clauses currently satisfied. In

particular, after the last step, the interface will be bounded by the vertices z~., y~,

ct, c2, ca . . . . . cxm+t, which is part of the boundary of the polyhedron (i.e., the

entire polyhedron will have been triangulated). Writing z ° = zr t and yO = yI, the

initial interface is bounded by z~, yl, cl, c3, cs . . . . . c2=+t, which is the opposite

portion of the polyhedron's boundary.

Page 13: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 239

The simple structure of the interface makes the triangulation easier. What

happens is that some vertex (z~, x~, x~, x~, or z~) will be able to see all of the

triangles in the interface. Using this vertex as an apex, and the triangles in the

interface as bases, we form new tetrahedra to add to the triangulation, and advance

the interface to the new vertex.

There are a number of things yet to be specified about the construction. We

must lay out the chain of triangles and the clause niches attached to them. We

must also specify the placement of the roof vertices and the variable niches attached

to the roofs. First we list the geometric constraints that must be satisfied.

The Construction Constraints. For each variable, the following constraints must

be satisfied in the construction. These constraints ensure that the truth-setting and

hteral vertices can see the appropriate variable and clause niches, or are blocked

from seeing them, as necessary. The fifth constraint guarantees that the successive

variables' portions of the triangulation will be separated by a nicely behaved

interface. Since each constraint applies to all variables, we omit the i superscripts.

• Variable-niche-filling: Vertices z F, z T must be viewpoints of the variable's

niche and they must be the only such vertices (i.e., one of them must be used to

triangulate the niche).

• Clause-niche-filling: The vertices xl, x2, xa corresponding to literals must be

viewpoints of their respective clause niches, but of no other niches.

• Clause visibility: The use of the vertex z T to triangulate the variable niche

should not prevent the positive literals' vertices from seeing the clause niches.

Thus we require that the tetrahedron ZTy~y2y a must not intersect the

tetrahedra X1C.2k_IC2kC2k+I o r X2C2k_lC2kC2k+l for 1 _ k _< m. Similarly, the

tetrahedron zFyty2y a must not intersect the tetrahedra xac2k_ 1C2kC2k+ 1 for

l < _ k < _ m .

• Clause blocking: To guarantee that x~ cannot triangulate its clause niche

when the variable is set false, it must be "blocked," i.e., it must not see all

of the base face of the clause niche. Here we can assume only that zF forms

a tetrahedron with the base face qlq2q3 of the variable niche (not the entire

variable niche). We require that the tetrahedron zFqlq2qa intersect every

line segment from xl or x 2 to any point in the base triangles C2k_ lC2kC2k+ 1

for 1 ~ k _< m. Similarly, the tetrahedron ZTqtq2q a must intersect with every

line segment from xa to any point in the base triangles. (This constraint is

slightly stronger than necessary, in that every base triangle is invisible rather

than just the bases of the clause niches within the base triangles.)

• Interface visibility: For the triangulation to "sweep" across the "slice" of the

polyhedron corresponding to a single variable, we require that:

(a) xl be to the "left" (i.e., negative y-direction) of the planes C2k_IC2kZF,

C2kC2k+IZF, and C2k_lC2k+IZ F for 1 _< k _< m.

(b) x2 be to the left of the planes C2k_tC2kX t, C2kC2k+tX I, and C2k_lC2k+lXl

for l < k < m .

(c) x a be to the left of the planes C2k-lC2kZ~, C2kC2k+IZ~, and c2~_1c2~+1z F

for l _ < k < m .

Page 14: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

240 J. Ruppert and R. Seidel

(d) z r be to the left of the planes C2k_lC2kX2, C2kC2k+lX2, C2k_lC2k+lX2,

C2k_lC2kX3, C2kC2k+tX3, and C2k_IC2k+IX3 for 1 < k _< m.

• R o o f convexity: The roof must be convex, i.e., the convex hull of the points

ZF, Z.4, 2'T, X1, X2, X3, Yl, Y2, Y3 must include the faces shown in Fig. 16.

We postpone the remaining details of the construction of the polyhedron P.

Instead, we first show that if P satisfies these constraints, then a satisfying

assignment for the expression E can be converted into a triangulation of P.

The Triangulation. Assuming that the six construction constraints can be met in

the refined construction of the polyhedron P, we now show that given the original

Boolean formula E, we can construct a polyhedron P such that

E is satisfiable ,~ P can be triangulated.

One direction is fairly easy: given a triangulation of P, we can interpret a

satisfying assignment for E just as we did in the rough construction of the

"box-shaped" polyhedron above, by seeing which of the truth-setting vertices (z~

or z~) was used to triangulate the niche of the ith variable.

Showing that a satisfying assignment for E yields a triangulation of P requires

listing quite a few tetrahedra, and relies heavily upon the six constraints developed

above. The triangulation proceeds one variable at a time. We need only describe

a single step, relying on the structure of the interface described above as an

invariant that ensures that we can proceed.

We now describe the triangulation step for the ith variable X i. There are two

cases, depending on whether X~ is set T R U E or FALSE in the satisfying

assignment. We handle the T R U E case first. Since we are dealing with the single

variable X i, we drop the i subscripts and superscripts.

Case 1: Variable X set TRUE. Referring to Fig. 17 we see that the "hub" of the

interface starts at zr (the invariant). Intuitively, the hub will "advance" to x 1, then

to x 2, and finally to z r , establishing the invariant for the next step (see Figs. 18-21).

Because the variable-niche-filling constraint was satisfied in the construction,

z r is a viewpoint of the variable X's niche, This means that z T can see the base

Y~ Y~ y,

zr zr

Fig. 17. Shaded triangles to form tetrahedra Fig. 18. Shaded

with Zr. with xl.

C2m+ 1 c o n t a i n i n g c l a u s e lnCllC~

triangles to form tetrahedra

Page 15: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra

Yx ,Y~ ""

241

zr z T

lterface face

iches

s

C2m+l C2m+l

Fig. 19. Shaded triangles to form tetrahedra Fig. 20. Shaded triangles to form tetrahedra

with x2. with zr.

face of the niche. Since z r can see all of the triangle YxYEY3 (the triangle 7 ' in the

Illuminant Lemma), z r will also be able to see the other faces of the niche. Thus

we can form tetrahedra with the seven faces of the niche from Z r , producing the

t e t r a h e d r a zrq3q2qx, z r p l q l p z , z r q x q z p 2, ZTP2q2P3, zrq2q3P3, ZrP3q3pl,

z r q a q a P l . Here the pj and qj are as specified in Fig. 9. In the application of the

Illuminant Lemma that created the niche, the back face Y l Y E Y 3 of the variable's

roof got a triangular "hole" P l P z P 3 , and was retriangulated (two-dimensional

triangulation), producing six new faces that must also form tetrahedra with z r.

From Zr we also form tetrahedra with the faces ZAXlZF, ZAX2X1, ZaY2X2, ZAX3Y2,

x 3 Y 3 Y 2 , x 2 y z y 1 of the variable's roof (see Fig. 17). The vertex z r can see all of

these triangles because of the roof convexity constraint. Figure 18 shows the

situation after removing these tetrahedra.

The next step is to form tetrahedra between xl and the interface triangles. This

is possible by part (a) of the interface visibility constraint. We also use the

tetrahedron XIZTC2m + 1ZF . The shaded portion of Fig. 18 shows the triangles that

must form tetrahedra with x~. Since x~ is a literal vertex corresponding to a literal

set T R U E in the satisfying assignment, we may use Xl to triangulate its correspond-

ing clause niche. We do this only if the clause niche has not been previously

triangulated. The clause-niche-filling constraint ensures that x I can see all of its

Fig. 21.

Yj

C2m÷l

Final interface after step for variable X.

Page 16: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

242 J, Ruppert and R. Seidel

clause niche, and all of the base triangle containing the clause niche. Thus we use

xl to form tetrahedra with the seven triangular faces of the clause niche and the

six faces of the original base triangle (which was retriangulated when the niche

was attached, causing a hole).

Now the hub of the interface moves from x~ to x 2. The shaded portion of Fig.

19 shows the triangles that must form tetrahedra with x 2. Part (b) of the interface

visibility constraint guarantees that these triangles can all be seen by x 2. Then x 2

is used to triangulate its clause niche if necessary.

The situation is now as shown in Fig. 20. This figure shows the triangles that

must form tetrahedra with z r. Note that this includes the rear triangle y ly3c l .

These triangles are visible by part (d) of the interface visibility constraint. After

these tetrahedra are added to the triangulation, the hub of the interface is now at

the vertex zr, as shown in Fig. 21. This re-establishes the invariant for the next

variable's step of the triangulation.

Case 2: Variable X s e t F A L S E . This case is analogous to Case 1. The variable X

is set FALSE, so we use zv to triangulate the variable niche and the back face of

the roof as well as the back face of the entire slice, and also the faces of the roof

shown in Fig. 22. Figure 23 shows the result. Next, x 3 is used to triangulate the

faces shown in Fig. 23, as well as its clause niche (if not already triangulated), and

the remainder of the base triangle containing the clause niche. This advances the

hub of the interface from z v to x 3, leaving the situation shown in Fig. 24. Then

zr can be used to form tetrahedra with the triangles shown shaded in Fig. 24, to

complete the triangulation of X's portion of the polyhedron. Just as in Case 1,

the hub of the interface has reached z r, shown in Fig. 21.

Thus we have shown how the triangulation can "sweep" across the polyhedron

P, and thus that

E is satisfiable ~ P can be triangulated

as long as P satisfies the construction constraints.

Satis fy&9 the Construction Constraints. We now fill in the details of the construc-

tion of the polyhedron P, and show how the required constraints are satisfied. As

Y3

z~ ~T b)

current inlerface

Fig. 22. Shaded triangles to form tetrahedra Fig. 23. Shaded triangles to form tetrahedra with z F. with x 3 .

Page 17: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra

Y3

Zr

current interface

Fig. 2A. Shaded triangles to form tetrahedra

with Zr.

243

T ,

Fig. 25. The cone C dehnea oy tnc two slm~lar

triangles T x and T 2.

usual, we omit the i superscripts when referring to the vertices of the ith variable's

roof.

To satisfy the variable-niche-filling constraint, we use the Illuminant Lemma

to construct the variable niche on the back face YlY2Y3 of the roof. The shaded

region in Fig. 25 shows part of the triangular cone C. We want z T and z F to be

the only vertices in the interior of C. We specify C by giving two similar triangles

T1 and T 2, the intersections of C with the parallel planes x = 0 and x = 1,

respectively. The corresponding edges of the two triangles are also parallel.

Suppose the roof is of height C1, to be specified later. That is, the z-coordinate of

z A a n d y 2 i s l + C 1 .

Figure 26 shows how we choose the triangle T 1 within the back face YlY2Y3 of

the roof. Consider the triangle T formed by the midpoints of the edges y~y2 ~, Y2Y3,

and Y3Yl- Let T~ be this triangle, shrunk by a factor of C2 (to be specified later)

around its centerpoint.

Figure 27 shows how we choose the triangle T 2 within the x = 1 plane. T 2 will

be similar to T~ chosen above, with corresponding edges being parallel. The top

edge t~ t 2 of T 2 is slightly above the z = 1 plane. This height is chosen so that the

plane containing t i t 2 and the corresponding edge of T~ intersects the segment y2zr

exactly three-quarters of the way from t 2 to zr (see Fig. 27). This ensures that the

Y2

Y3 " ' ' ~ Yt

Fig. 26. In the x = 0 plane: the back gable of the

roof (top), and the choice of Tl within the back gable.

t T1

ine ionj t ~ ~-t2

t3 Fig. 27. Specification of T2. The cone C inter-

sects segment y2ze exactly three-quarters of the

way from Y2 to zF.

Page 18: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

244 J, Ruppert and R. Seidel

Fig. 28. The shape of the clause niche illuminants. The clause niches themselves are very small, along

the bottom.

literal vertices, placed later, will not be within the illuminant of the variable niche.

We place t I at distance one-quarter to the left of z r and t 2 at distance one-quarter

to the right of zr. This determines the position of t3, the third vertex of T2.

Together, the triangles T1 and T2 determine a cone C. The only vertices in the

interior of C are zT and zr.

Now the Illuminant Lemma can be applied. This constructs a niche on the

back face of the roof, with the two vertex viewpoints z r and zr.

To satisfy the clause-niche-filling constraint, we again use the Illuminant

Lemma, this time to place a clause niche within each of the triangles c2k- lC2kC2k+ 1

along the base of the polyhedron. These niches will have very skinny illuminants

(see Fig. 28) that do not intersect within the polyhedron. These will be regions in

which we will later be able to place the literal vertices when we construct the roofs.

For use in later constraints, we add the further requirement that the portions of.

these niches and illuminants that lie within the polyhedron must be between the

planes x = ! and x = 51/100. To do this we must now specify the parabola

containing the base vertices ct, c2, . . . . C2m+l.

The parabola will be in the xy-plane and will be of the form y = ~x 2 + fix + ~.

It must pass through the point (!, 0) with slope 0. Thus we need 0 = ~/4 + fl/2 + ~,

and 0t + fl = 0. The slope of the parabola should be positive and increasing for

x > !. It will also be important later that the slope be small, say less than ~ at

x = 51/100. This requires 51~t/50 + fl < ~ . It can be checked that the values ~ = ",

fl = --1/4, ), = ~ satisfy these requirements. The points c 1, c 2, . . . , C2m+l are

spaced evenly between x = ! and x = 51/100 on this parabola. Point c k is placed

at (ak, bk), where

1 k - 1 - 1 1

= = ;~ak + ---4-- ak + 16" a k -2 + ~ and b k i 2

To construct the clause niches we must specify a cone C for each clause niche,

and then apply the Illuminant Lemma. We do not give the exact specifications of

these cones, just a rougfi idea. The triangle T needed for the Illuminant Lemma

is as shown in Fig. 29. It is required that the illuminant of the kth niche contains

Page 19: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 245

C2k- I

base triangle of polyhedron

I triangle T for Illuminant Lemma (clause niche attaches here)

C2k+l

Fig. 29. Clause niches are attached to base triangles.

the line segment between the points (a2k, 0, 1) and (a2k, n, 1), where a2k is as

specified in the above paragraph. We can choose a second triangle containing this

segment, which together with T determines the cone C needed to apply the

Illuminant Lemma. These cones should be chosen so that they do not intersect

within the polyhedron.

Constructing the ith Variable's Roof. Next we show how to construct the roof

for the variable X~ so that the remaining constraints are satisfied. We pick a height

for the roof (and thus place the vertices ZA and Y2), and then specify the locations

of x 1, x 2, and x 3. This requires choosing the two values C1 and C 3 mentioned

above. The shape of the roofs depend upon the variable index i, so we choose

different values C~ and C~ for each roof. Since we will be referring to the ith

variable throughout, we omit the i superscripts from the vertices.

If the roof is too tall, then some of x~, x2, and x3 might not be able to see

"under" the edge ZTY3 to the clause niches. To avoid this problem we specify a 1 3 point p = (0, 7, ~) and require that all vertices of the ith roof lie beneath the plane

containing zr , Y3, and p (see Fig. 30). This is sufficient since all of the base triangles

lie beneath this plane. Choosing C~ = 1/200(n - i + 1) keeps z A and Y2 well below

this plane, and builds in some leeway we will utilize later.

Next we describe the placement of the roof vertices Xx, x2, x3. Vertices x~ and

x 2 are placed slightly above the segment y2zF, in the vertical plane containing the

J,

1/4

314

.........-

X N roof XN. t XN. 2 00° . ................ *'° X I roof

Z

Fig. 30. Front view of polyhedron, showing plane (dotted) bounding variable X{s roof (not to scale).

Page 20: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

246

Z T

Fig. 31.

J. Ruppert and R. Seidel

Y 2

Placement of xl , x2, x3 (for ith variable, i superscripts omitted).

segment (see Fig. 31). Suppose the literal vertex xl corresponds to a literal

contained in the kth clause. Then xl is placed at x-coordinate a2k (the a2k'S were

specified above, and are between ! and 51/100 for all 1 < k < m), at a distance C~

above the segment Y2ZF . The vertex x2 is placed the same distance above this

segment at the appropriate x-coordinate, and x 3 is placed similarly above the

segment y2zr.

We now show that choosing C~ = 1/lO00(n- i + 1) will place the literal

vertices such that all the remaining constraints are satisfied.

Since the literal vertices xl, x2, x3 will have z-coordinate < 1 + C~/2 + C~3,

they will be below the segment zay2, which has'z-coordinate 1 + C~ (C~ < C~/2).

Thus, xt, x2, x3 will not be able to see "over" the top of the roof zAy2, and the

faces of the convex hull of theroof vertices will be those shown in Fig. 16, satisfying

the roof convexity constraint.

The literal vertices x~, x 2, x 3 have been placed above the illuminant of their

variable's niche, so they will not be viewpoints of the niche, and hence will not

violate the variable-niche-filling constraint.

The clause-niche-filling constraint was satisfied by the choice of x-coordinate

for the literal vertices, which placed them within their respective clause niches (but

within no other clause niches, since the clause niches do not intersect).

Showing that the clause visibility constraint is satisfied is a little trickier. The

x3 case is easy: since it is to the "left" of the tetrahedron ZFYlY2Y3, the tetrahedron

cannot prevent it from seeing the base triangles, which are even farther to the left.

For xl, x 2 we must show that they can see "beneath" the tetrahedron zry~y 2 Y3

to the base triangles. The critical thing is that they be able to see beneath the edge

z ry 1, and the worst-case placement of x 1 or x 2 is at coordinates (!, n - i + ",

1 + C~/2 + eta) (the point q in Fig. 31). The most difficult point on the base

triangles to see is c~. Thus we need to show that q is beneath the plane C~zryt.

Page 21: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 247

This orientation test can be done (see p. 43 of [11]) by computing the sign of the

determinant

A(Cl, ZT, Yl, q ) =

1 ! 0 0

1 1 n - i 1

I 0 n - i + l 1

C'1 1 ! n - - i +" l + ~ - q - C ' a

Z

which evaluates to -(986(n - i + 1) + 7)/4000(n - i + 1), which is negative since

i < n. Since the point z} clearly lies beneath the plane C~zry~, and the determinant

A(cl, zr , Yl, zr) = - 1

is also negative, the point q must also be beneath the plane C l z r y 1.

To show that the clause blocking constraint is satisfied, we show how to choose

the "shrink factor" C2, used in constructing the variable niches, so that x 1, x 2,

x 3 are blocked in the appropriate way. We show this only for the xl, x 2 cases, as

the x3 case is similar. We continue to omit the i superscript from vertices of the

ith variable's roof. Let R be the smallest rectangle in the z = 0 plane with sides

parallel to the x and y axes that contains all of the base triangles. Let s~ be the

segment on which x 1 and x 2 were placed (see Fig. 31). We show that choosing

C2 = 99/100 will force every line of sight from si to R to pass through the interior

of the tetrahedron ZFqlq2q 3 (qiq2q3 is the base triangle of variable i's niche). This

means that if the variable is set FALSE, then x1 and x 2 will not be able to see

any of the clause niches at all, and will not be able to triangulate them.

We choose a point w in the x = 0 plane such that the segment ZFW is contained

in the tetrahedron ZFqlq2q 3 (see Fig. 32). Then we show that every line of sight

from the segment s~ to the rectangle R must pass beneath the segment zFw. Since

these lines of sight also pass above the segment z rq l , they must "pierce" the

triangle zFqlw, and hence must pass through the interior of the tetrahedron

zeqlq2q3, which is what we need to show to establish the clause blocking

constraint.

Fig. 32.

q~

Y3 q2 1 ' ql

w "~" Y2

........ ~ ..... "-:~-~ .......................................... r---

Yl

U y

Z Z

T F

Every line of sight from the segment s~ to R must pass "beneath" the segment t.

Page 22: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

248 J. Ruppert and R. Seidel

Fig. 33.

VI ,,,.,,,=: ::::::::%%2;'j'22"" " " Z

R ~_.~y

The slope of vtv 2 must be greater than the slope of v l v 3.

If we choose the "shrink factor" C 2 to be 99/100, then the upper left corner

of the triangle T t shown in Fig. 26 will move in slightly toward the center of T.

If the plane containing the points qt, q2, qa used for the Illuminant Lemma (see

Fig. 7) is specified to be at distance 1/100 from the back face YlY2Y3 of the roof,

then the point

1 1 C'1 96 w = 0, n - - i + ~ + ~ - - ~ , l + - ~ - + 1 0 - O

is within the tetrahedron zFqlq2q 3. (The point w is four times closer to the center

of T than is the upper left corner of the triangle Tt of Fig. 26.) Let t be the

subsegment o fz rw between x = ! and x = 51/100 (i.e., the same x-range as st and

R, see Fig. 32). We ignore the x-dimension, by projecting to the x = 0 plane (see

Fig. 33).

The most difficult line of sight from st to R (passing beneath t) is from the

highest, leftmost point of sl, under the lowest, rightmost point of t, to the leftmost

edge of R Cleftmost" means minimum y-coordinate, "highest" means maximum

z-coordinate). Letting vt be a point on the leftmost edge of R, letting v2 be the

lowest, rightmost point of t, and letting va be the leftmost, highest point of st, we

have the situation shown in Fig. 33. Since the point v2 is 49/100 of the distance

from zr to w, and the point v3 is (a distance C~ above the point that is) half of

the way from zF to Y2, the (y, z)-coordinates of the points are

v t = (0, 0),

( 49 74 49 (_~ 9 6 C ~ v2= n - - i + 1- - 1--~ " 1--~, 1 + - ~ + - ~ j j ,

v3= n - - i + l - -# , 1 + + C .

Showing that the line of sight from v 3 to v I passes beneath v 2 is a two-dimensional

orientation test, so we compute the determinant

A(vl, v2, vs) =

1 0 0

4 9 ( C ~ 9 6 C ~ 49 74 1 + + 1 n - i + l - 1 - - ~! 1-~ ] ' - ~ \ 3 - 6 0 0 J

1 n - i + l -! 1 +-~-+ C~

Page 23: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 249

Y3 Yl

x x w i l ~ project here

y-slopes between 0 and 1/20

x~Y

z F

Fig. 34. In the z = 1 plane: shaded region shows where interface planes will intersect.

which evaluates to -(824963(n - i + 1) + 7840)/7500000(n - i + t), which is neg-

ative since i < n. Thus, the lines of sight from s 1 to R pass beneath t, and hence

through the tetrahedron zrq lq2q a. Hence, when the variable X~ is false, the

tetrahedron zeq~q2q a blocks x~ and x 2 from triangulating the base faces of their

clause niches. It can similarly be shown that the tetrahedron zrq~q2q3 blocks xa,

so the clause blocking constraint is satisfied.

We only show that part (a) of the interface visibility constraint is satisfied. Part

(b) is similar, and parts (c) and (d) are easier. For part (a), we need to show that

Xl is on the "left" side (i.e., lower y-coordinate) of all the triangles in the interface.

It is sufficient to show that x 1 is to the left of the planes ZFClC2, ZFC2mC2m + 1, and

zFclc2m+ 1. Consider the intersection of these planes with the z = 1 plane (see Fig.

34). Since the maximum slope of the base parabola was chosen to be ~ , and the

minimum slope of the parabola is 0, the three planes will intersect the z = 1 plane

in lines with slopes between 0 and ~ (relative to the xz-plane). The vertical

projection of x~ to the z = 1 plane will be to the left of these lines, since xt lies

on the segment gFy2, which projects to a segment with slope !. Since x~ is above

the z = 1 plane, and the three planes zrc lc 2, z~c2mc2,~+ ~, and zFclc2m+l increase

in y-coordinate as they increase in z-coordinate, x~ will be to the left of all three.

Concluding the Proof. In order to ascertain NP-completeness of the triangulation

decision problem, we need to show that the problem is actually in NP. First, a

triangulation can be "guessed" nondeterministically since we can enumerate all

possible collections of tetrahedra. We also need a polynomial-time algorithm to

verify that a given collection of tetrahedra is indeed a triangulation of a given

polyhedron P. This can be done as follows. Compare all pairs of tetrahedra to

make sure that they only intersect in a common triangular face, an edge, a vertex,

or the empty set. Next, compute the sum of their volumes and check that it equals

the volume of P (which can be computed easily without knowing any triangula-

tion). Lastly, check that each tetrahedron T lies within P, by computing the

centroid of T, and performing a point-in-polyhedron test. Also, the intersection of

Tand the boundary of P should be a collection of faces, edges, and vertices of T.

We must also verify that the polyhedron construction we have given can be

performed in polynomial time. In particular, the coordinates of all the points

Page 24: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

250 J. Ruppert and R. Seidel

produced are rational and can clearly be expressed using a polynomial number of

bits, because every coordinate results from a constant number of arithmetic

operations, starting with small integers. Each application of the Illuminant Lemma

can certainly be performed in polynomial time. []

A Final Remark on the Proof. The polyhedron we have constructed has only

triangular faces, but some of them are coplanar, and many of the vertices are

coplanar. These coplanarities are only incidental to our construction, and the

difficulty of triangulating the polyhedron does not depend on the coplanarities. It

would be fairly easy to modify the construction so that the vertices in the resulting

polyhedron are in a nondegenerate position.

4. Restriction to Star-Shaped Polyhedra

If the polyhedra are restricted to being star-shaped, the problem is still NP-

complete. (A polyhedron is star-shaped if there exists a point inside the polyhedron

that can "see" all of the polyhedron.)

Theorem 2. It is NP-complete to decide whether a given three-dimensional star-

shaped polyhedron can be triangulated without using additional Steiner points.

Proof (Sketch). We modify the construction of the previous section so that the

polyhedron produced is star-shaped and contains a point p that can see all the

polyhedron's faces. The point p is the same as in Fig. 30, p = (0, !, "). To ensure

that the point p can see all of the niches' faces, we must construct the niches so

that the intersection of their illuminants includes p. This is shown in Fig. 35, in

which all of the illuminants are "tilted" slightly so that they intersect in a

......................................... iiii! clause \,

intersect "~#.'~,, :"" / .... .'"

h*., '. P .../

Fig. 35. To produce a star-shaped polyhedron: illuminants of clause niches "tilt" slightly so as to

intersect (triple dashed lines).

Page 25: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 251

[ / "

/" I

Fig. 36. Illuminants of variable niches "stretch" so as to include the point p.

needle-shaped region indicated by the dashed lines. This can be achieved by

rearranging the literal vertices, and by slight modifications to the clause niche

construction. The construction constraints can be maintained since the polyhedron

changes only slightly, and the modified niches will not contain any unwanted

vertices.

Next we must modify the variable niches so that their illuminants also contain

the point p. Figure 36 gives a rough idea of how the illuminants are "stretched,"

and Fig. 37 gives more detail. We describe the modification of the niche by

modifying the cone C used in the construction of the niche. The cone C is

determined by two similar triangles T 1 and T 2, in the x = 0 and x = 1 planes,

respectively. Referring now to Fig. 37, these triangles are modified as follows. The

top edge of T2 moves down, into the z = 1 plane. Next, the bottom vertex of T 2

is moved down and to the left until the cone includes the point p. In doing this,

the corresponding sides of T 1 and T 2 must reamin parallel, so fix the top edge of

T~, and allow the bottom vertex of T~ to decrease its y-coordinate, remaining

within the back gable of the roof. If we also constrain the top right vertex of T2,

then the top left vertex of T2 must decrease its y-coordinate to allow the

back gable of roof (x=0 plane)

Original construction Szar-shapcd construction

front gable of roof

(x=l plane) . . . . T2 r 2

Fig. 37. More details of variable niche stretching (the roof gables are shown dotted).

Page 26: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

252 J. Ruppert and R. Seidel

corresponding edges to remain parallel. Finally, slightly rotate both T1 and T2

counterclockwise, staying parallel to the yz-plane, so that T z contains the two

appropriate truth-setting vertices, but no others. The rotation should be sufficiently

small so that the point p remains within the cone C and T 1 remains within the

back gable of the roof.

Next we argue that this modification can be done without violating any of the

construction constraints, and check that p remains within the illuminants of the

variable niches. Recall that being in the cone C does not ensure that p is in the

niche's illuminant. The point p must also be able to see all of the triangle Tr This

is guaranteed because the entire roof was placed beneath the plane zrY3P (see Fig.

30, which contains the same point p).

In general, the construction constraints are maintained because the shape of

the polyhedron P changes only slightly. The variable-niche-filling constraint is met

because the triangle T 2 was rotated to include only the desired truth-setting

vertices. None of the vertices of the base triangles along the bottom (z = 0) of the

polyhedron will fall in the variable niche illuminants, because the lowest point in

these illuminants will be above z = !. The clause visibility constraint is unaffected,

since, for each variable i, either z~ or z~ will still triangulate the entire back gable

of the roof, exactly as before. The clause blocking constraint depended only upon

the positions of z~, z~, and the upper edge of the triangle T 1. The vertices z~ and

z~ do not move, and the movement of the edge of T1 can be made as small as

necessary. The other constraints can easily be seen to hold.

We have modified the niches so that the point p can see all of the niches' faces.

It remains to show that p can see all of the remaining faces of the polyhedron.

The only worrisome faces are the faces on the variables' roofs, but p can see these

faces because it is beneath all of their planes as constructed (see Fig. 30). []

Since a star-shaped polyhedron contains a point p that sees every face, it can

be triangulated by allowing this additional point p to be used as a vertex of the

tetrahedra in the triangulation. (Simply triangulate all faces (polygon triangula-

tion), and use each of the resulting triangles as the base of a tetrahedron with the

point p as the apex.) Such additional points are called Steiner points.

The previous theorem has consequences for some triangulation problems that

allow Steiner points to be used. If we take an n-vertex star-shaped polyhedron P

constructed in the proof of Theorem 2 and attach k niches whose illuminants do

not intersect the illuminant of any other niche and do not contain any vertex of

P, we obtain a polyhedron P' with n + 6k vertices, that can be triangulated using

k Steiner points iff P could be triangulated without Steiner points. This yields the

following theorems.

Theorem 3. For any f ixed integer k > 0 it is NP-hard to determine whether a [liven

polyhedron can be triangulated with at most k Steiner points.

Theorem 4. There exists a real constant C > ~ so that, for all positive c < C, it is

NP-hard to decide whether an n-vertex polyhedron can be trianffulated with at most

cn Steiner points.

Page 27: On the difficulty of triangulating three-dimensional ...suri/cs235/Rlist/3dTriHardness.pdf · The "twisted prism" introduced in Section 1 can be adapted to serve this purpose. Note

On the Difficulty of Triangulating Three-Dimensional Nonconvex Polyhedra 253

In his b o o k [9, p. 255] O ' R o u r k e describes n-vertex th ree -d imens iona l poly-

hedra tha t require f~(n 3/2) "guards . " These p o l y h e d r a also require f~(n 3/2) Steiner

po in t s in o rde r to be t r iangula ted . By a t t ach ing such a p o l y h e d r o n to the

p o l y h e d r o n we have cons t ruc ted above, the fol lowing s t ronger theorem can be

proved.

Theorem 5, There exists a real constant C > 0 so that, for all positive c < C, it is

NP-hard to decide whether an n-vertex polyhedron can be triangulated with at most

cn 3/2 Steiner points.

Acknowledgments

Several of the figures in this pape r were p r o d u c e d using the U N I G R A F I X

geometr ic mode l ing system deve loped at U.C. Berkeley. The au thors would like

to t hank A n t o n y Ng, who suggested tha t the th ree -d imens iona l triangulation

decis ion p r o b l e m might be NP-comple te .

References

1. D. Avis and H. E1Gindy. Triangulating simplicial point sets in space. Discrete Comput. Geom., 2:99-111, 1987.

2. C. L. Bajaj and T. K. Dey. Convex Decompositions of Simple Polyhedra. Technical Report

CSD-TR-833, Dept. Comput. Sci., Purdue University, 1989.

3. B. Chazelle. Computational Geometry and Convexity. Ph.D. thesis, Yale University, 1980. Also available as Technical Report CMU-CS-80-150, Dept. Comput. Sci., Carnegie Mellon University,

July 1980. 4. B. Chazelle. Triangulating a simple polygon in linear time. In Proceedings of the 31st Annual

Symposium on Foundations of Computer Science, IEEE, 1990, pages 220-230. 5. B. Chazelle and L. Palios. Triangulating a nonconvex polytope. Discrete Comput. Geom.,

5:505-526, 1990.

6. J. Culberson and R. Reckhow. Covering polygons is hard. In Proceedings of the 29th Annual

Symposium on Foundations of Computer Science, IEEE, 1988, pages 601-611. 7. H. Edelsbrunner, F. P. Preparata, and D. B. West. Tetrahedrizing point sets in three dimensions.

Technical Report UIUCDCS-R-86-1310, Dept. Comput. Sci., University oflllinois, 1986.

8. M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman, San Francisco, 1979.

9. J. O'Rourke. Art Gallery Theorems and Algorithms. Oxford University Press, New York, 1987. 10. J. O'Rourke and K. Supowit. Some NP-hard polygon decomposition problems. IEEE Trans.

Inform. Theory, 29:181-190, 1983. 11. F. P. Preparata and M. I. Shamos. Computational Geometry--An Introduction. Springer-Verlag,

New York, 1985. 12. E. Schrnhardt. [3ber die Zerlegung von Dreieckspolyedern in Tetraeder. Math. Ann., 98:309-312,

1928. 13. B. Von Hohenbalken. Finding simplicial subdivisions of polytopes. Math. Programming,

21:233-234, 1981.

Received March 19, 1990, and in revised form January 25, 1991.