Morse Theory for Computer Graphics - CiteSeerX

3 downloads 0 Views 733KB Size Report
John C. Hart ..... A shiny donut and a cup of coffee (a) set the stage to demonstrate ... coffee changes from the empty set to a shape homeomorphic to a disk.
Morse Theory for Computer Graphics John C. Hart School of EECS Washington State University Pullman, WA 99164-2752 [email protected] Technical Report EECS-97-002 Abstract Morse theory is an area of algebraic topology concerned with the affect of critical points on a set’s topology. This report identifies the key theorems from Morse theory and presents them in a way that may be easier to understand for the computer graphics researcher. As the theorems of Morse theory do not directly apply to the common computer graphics representations, several corollaries are stated and proven that map the Morse theory results to implicit surfaces and extensions to other geometric representations are described.

1 Introduction This report was originally written to be a companion to Stander & Hart [1997] and Stander [1997] to develop the rigorous theoretical basis on which those publication’s algorithms depended. After further contemplation, several other applications of Morse theory to a variety of areas in computer graphics became evident. Section 2 recalls several fundamental concepts from topology, restricted to the Euclidean nspace to simplify their definitions and obviate their applications in computer graphics. Section 3 reviews the key theorems of Morse theory from Milnor [1963]. Section 4 adapts these theorems to implicit surfaces. These adaptations are obvious but not trivial. Section 5 concludes by suggesting applications of Morse theory to other areas of computer graphics.

2 Topology The following definitions are simplified by restricing their domain to subsets of R n with the topology of the Euclidean metric assumed.

1

2.1 Homeomorphisms and Manifolds As topology is concerned with the connectedness of a shape, it relies on the ability to draw an equivalence between shapes that share the same connectedness. This equivalence is defined by a homeomorphism. Definition 2.1 Let f : X ! Y be continuous and bijective (one-to-one and onto). Let its inverse f ?1 : Y ! X; defined as f ?1(y) = fx : f (x) = yg; also be continuous. Then X is homeomorphic to Y; and the map f is called a homeomorphism. Computer graphics commonly represents shapes by their surfaces, called manifolds in topology. Topology uses the notion of homeomorphism to define an n-dimensional manifold as a set that is locally homeomorphic to a subset of an n-dimensional hyperplane, as demonstrated in Figure 1.

f

2

R f(p)

p

Figure 1: The homeomorphism f maps a neigborhood of p in the torus onto a neighborhood of the origin in the plane. Such a map exists for every point on the torus. Hence the torus is a 2-manifold. Definition 2.2 A set M  R m is an n-manifold iff each point p 2 M has a neigborhood that is homeomorphic with an open subset of R n : A set M  R m is an n-manifold-with-boundary iff each point p 2 M has a neigborhood that is homeomorphic with either an open subset of R n or R n?1  [0; 1):

2.2 Homotopy Equivalence Another method for indicating that two shapes share the same connectedness is homotopy equivalence. In computer graphics, a homotopy is a continuous interpolation of two curves, two surfaces or two images. Definition 2.3 If f0 and f1 are continuous maps of the space X to the space Y, we say that f0 is homotopic to f1 if there is a continuous map F : X  [0; 1] ! Y such that F (x; 0) = f0 (x) and F (x; 1) = f1(x) for each x 2 X: The map F is called a homotopy between f0 and f1 :

2

For example, the cubic Bezier patch p : [0; 1]  [0; 1] ! R 3 defined as

p(s; t) =

3 X 3 X j =0 i=0

Bj (s)Bi(t)pji

(1)

(where Bi () denote the cubic Bernstein polynomials and pji denote the control points) is a homotopy of the Bezier curves p(s; 0) and p(s; 1): Two sets that share the same kind of connectedness are said to be homotopy equivalent. If two shapes are homotopy equivalent, then they have the same number of holes and components. Definition 2.4 A continuous map f : X ! Y is called a homotopy equivalence if there is a continuous map g : Y ! X such that g  f is homotopic to the identity map in X; and f  g is homotopic to the identity map in Y: The map g is said to be a homotopy inverse for the map f: Two sets that are homotopy equivalent are said to have the same homotopy type. While homotopy equivalence is rather difficult to understand in general, a simpler method for showing homotopy equivalence uses a special map called the deformation retraction. Definition 2.5 Let A  X: A continuous map r : X ! A is called a retraction iff r(a) = a for all a 2 A: Such a set A is called a retract of X: If there is a function H : X  [0; 1] ! X such that for all x 2 X; H (x; 0) = x and H (x; 1) = r(x) then H is called a deformation retraction and A is called a deformation retract of X: For example [Munkres, 1975], the circle S 1 = f(x; y ) : x2 + y 2 = 1g is a retract of the punctured plane R 2 ? f0g: The retraction is r(x) = x=jjxjj: The circle is also a deformation retract of the punctured plane. The deformation retraction is the linear interpolation

H (x; t) = (1 ? t)x + t jjxxjj :

(2)

The set X shares the same homotopy type as any of its deformation retracts A  X: Since A is a deformation retract of X; there must exist some function H : X  [0; 1] ! A such that H (x; 0) = x and H (x; 1) = r(x) for some retraction r : X ! A: Define f : X ! A as f (x) = H (x; 1) and g : A ! X as g(a) = a: The composition f  g : X ! X is homotopic to the identity map on X because their is a path from any fixed x0 to r(x0 ) in X defined by H (x0 ; t) as t increments from zero to one, and composing this path with its reverse path returns the path to x0 : Such a path that doubles back on itself is trivially homotopic to the identity. The composition g  f : Y ! Y simply equals the identity map on Y:

Homotopy equivalence is weaker than homeomorphic equivalence. For example, the circle (a 1-manifold) and the solid torus (a 3-manifold-with-boundary) are homotopy equivalent (the circle is a deformation retract of the solid torus), but not homeomorphic.

2.3 Attaching a k -cell While some sets share the same homotopy class, others differ. Often one set can be topologically altered into the same homotopy class as another set. Homotopy equivalence is based on the number 3

of components and holes in a set. Hence a disjoint union or subtraction changes the set’s homotopy type by modifying the number of components. Another operation called attaching a k-cell changes the genus of the set. A set in Euclidean space is closed if it contains its boundary. The closure of a set is the union of the set with its boundary. A set is bounded if it can be surrounded by some sphere of finite radius centered at the origin. These two notions combine in Euclidean space to form the property of compactness. Definition 2.6 A set A  R n is compact iff A is closed and bounded. The closed ball and sphere are useful representations of typical sets in a given space. Definition 2.7 A (closed) k-ball B k is the set of k-dimensional vectors of length less than or equal to one, Bk = fx 2 R k : jjxjj  1g: (3) Definition 2.8 A k -sphere S k is the set of (k + 1)-dimensional vectors of length equal to one,

S k = fx 2 R k+1 : jjxjj = 1g: (4) The boundary of a k -ball in R k is a (k ? 1)-sphere. A 0-ball is a single point and its boundary (in R 0 = f0g) is the empty set.

Finally, if two sets do not share the same homotopy equivalence class, often one can be converted into the other through the process of attaching one or more k-cells. Definition 2.9 The process of attaching a k -cell to a set Y using the map g

:

S k ! Y is denoted

Y [g B k

(5)

and is obtained by taking the topological sum (disjoint union) of Y and B k ; and then identifying each x 2 S k?1 with g (x) 2 Y:

g B1







g Figure 2: Attaching a 1-cell to a 3-ball yields a shape homotopically equivalent to a solid torus. Figure 2 demostrates the process of attaching a k -cell. The initial set Y in this case is a 3-ball. We attach a 1-cell by using a function g to identify the two points that form its 0-sphere boundary to points on the 2-sphere surface of the 3-ball. The attached 1-cell is a deformation retract of a thickened version, and the 3-ball with its thickened attachement is homeomorphic to a torus. 4

3 Morse Theory 3.1 Critical Points Morse theory begins with the definition of a critical point. Definition 3.1 Let f be a differentiable real map on a manifold M: A point p point iff its derivatives with respect to a local coordinate system on M vanish.

2 M is a critical

More specifically, since M is a smooth n-manifold, then about a point p 2 M there exists a differentiable one-to-one correspondence g between a neighborhood of M and an open subset of R n such that g (p) = x = (x1 ; x2 ; : : : ; xn ): Then the point p 2 M is a critical point with respect to f if the gradient

rf =

@f  g?1(x) ; @f  g?1(x) ; : : : @f  g?1(x) @x1 @x2 @xn

!

=

0:

(6)

Morse theory focuses only on non-degenerate critical points. Such points, also called Morse points, are critical points where the Hessian

2 @ rf 3 66 @xr1f 77 V (f ) = J (rf ) = 666 x..2 777 4 @ r. f 5

(7)

xn

has non-zero determinant. Since @ 2 f=@xi @xj = @ 2 f=@xj @xi ; the matrix V (f ) is symmetric. Let 1  2  : : :  n be the eigenvalues of V (f ): If any of the eigenvalues is zero, then the critical point is degenerate. Otherwise it is called non-degenerate. The index of the critical point is the number of negative eigenvalues of V (f ):

3.2 The Morse Lemma The Morse Lemma is a powerful statement about the behavior of functions around a non-degenerate critical point. It states that the function behaves quadratically, regardless of the class of function, and that the kind of quadratic function is determined by the index of the critical point. The Morse Lemma states that the neighborhood about a non-degenerate critical point can be deformed into the neighborhood of the non-degenerate critical point of a quadratic function. Lemma 3.1 (Morse Lemma) Let p be a non-degenerate critical point of f with index : Then there exists a local coordinate system (y1 (x); y2 (x); : : : ; yn(x)) in a neighborhood U of p with p as its origin and

f (x) = f (p) ? y1(x)2 ? y2(x)2 ?    ? y(x)2 + y+1(x)2 +    + yn(x)2:

(8)

Proof: See [Milnor, 1963]. The coordinate functions yi are not necessarily linear. These coordinate functions are a representation of a non-singular deformation. 5

3.3 Demonstration Morse theory focuses on determining the homotopy type of a shape based on its critical points. A classic example [Bott, 1960] demonstrates the effects of critical points on homotopy type by observing the portion of a torus below a clipping plane, as the clipping plane moves through the torus. One can observe these same changes by dunking a donut into a cup of coffee, as shown in Figure 3. Let M denote the 2-manifold surface of the vertically-oriented torus, and let f (p) return the height of point p 2 M: Assume the bottom of the torus is at height zero and the top is of height one. Let the notation M a indicate the points p 2 M such that f (p)  a; in this case the portion of the torus up to a height of a: As the clipping plane traverses up the torus, Figure 4 shows the changes in the topology of the torus can be described by attaching the appropriate k-cell to the truncated surface. Notice that the dimension of the attached cell equals the index of the critical point passed by the clipping plane.

3.4 Morse Theorems The following theorem shows that a subset of a manifold M a is topologically similar to a smaller subset M b  M a if there is no critical point in M a that is not in M b : Theorem 3.2 [Milnor, 1963] Let f : M ! R be C 2 ; let a < b and suppose that the set f ?1 [a; b] is compact and contains no critical points of f: Then M a is homeomorphic to M b : Proof: Let the family of maps t equation

:

M ! M be defined as the solution of the ordinary differential _ t(x) = jjrrff((t((xx))))jj2

(9)

df (t(x)) = _ (x)  rf ( (x)) = 1: t t dt

(10)

t

(where _ = d=dt) with the initial value 0 (t) = x: Each map t is bijective and continuous with continuous inverse, even at the critical points. The function value of f on the geodesic t (x) on M generated by fixing x and varying t changes at the same rate as t changes, since the directional derivative

These curves are demonstrated in Figure 5. In this example, the curves defined by curves traced by beads of water working their way down the torus. Hence the homeomorphism b?a carries M a onto M b :2

 follow the

Theorem 3.3 [Milnor, 1963] Let f : M ! R be C 2 ; and let p 2 M be a non-degenerate critical point with index : Setting f (p) = c; suppose that f ?1 [c ? ; c + ] is compact, and contains no critical point of f other than p; for some  > 0: Then, for all sufficiently small ; the set M c+ has the homotopy type of M c? with a -cell attached.

6

(a)

(b)

(c)

(d)

(e)

(f)

Figure 3: Dunking a donut. A shiny donut and a cup of coffee (a) set the stage to demonstrate Morse theory. As the donut first touches the coffee (b), the portion of the donut’s surface in the coffee changes from the empty set to a shape homeomorphic to a disk. At the instant the coffee reaches the donut hole (c), the topology of the dunked portion changes from a disk to a truncated cylinder (d). At the instant the donut hole is completely immersed (e), the topology of the dunked portion changes from a cylinder to a truncated torus (f). Releasing the donut causes the coffee to completely engulf the donut, completing the surface of the torus. 7

≅ ∅ ∪g B 0

M1/8

M1/8

∪g

≅ B1



M3/8



M5/8 ∪g B1

M15/16 ∪g B 2

M13/16

M1

Figure 4: Homotopy classes of the clipped torus.

M Ma Mb

p1

p0 Figure 5: The flow on a torus induced by the map : Nearby points flow both toward and away from the saddle-point p1 ; and flow into the minimum p0 : The critical points p0 and p1 remain fixed under :

8

Proof: Using Morse’s Lemma, choose a coordinate system u1 ; : : : ; un in a neighborhood U of p such that f (x) = c ? u1(x)2 ? : : : ? u(x)2 + u+1(x)2 + : : : + un(x)2 (11) for any x 2 U: We abbreviate

 

= =

u1(x)2 + : : : + u(x)2 ; u+1(x)2 + : : : + un(x)2

(12) (13)

such that f (x) = c ?  + : For example, we can simplify the neighborhood of an index 1 critical point p on a two-manifold M; such as illustrated in Figure 3 (c). This case is illustrated as  = x2 ;  = y2 and c = 0 modeling the local behaviour of f at p as the hyperbolic paraboloid

f (x; y) = ?x2 + y2 plotted in Figure 6. If neighborhood of p:

(14)

f is a height function, then the hyperbolic paraboloid represents M in the

4

2

2 0 -2 -4 2

1 0 1 -1

0 -1 -2-2

Figure 6: Hyperbolic paraboloid. The behavior of f in the neighborhood of a critical point of index 1 on a 2-manifold. Let  > 0 be sufficiently small such that f ?1 [c ? ; c + ] is compact and contains no other critical points other than p; and U contains a ball of radius 2 (in the coordinate system spanned by u1; : : : ; un). This region is is plotted in Figure 7.

9

4

2

2 0 -2 -4 2

1 0 1 -1

0 -1 -2-2

Figure 7: The 2-manifold-with-boundary M c? is dark blue. The compact region f ?1 [c ? ; c + ] is cyan. Note that f ?1 [c ? ; c + ] is not compact on the hyperbolic paraboloid, which is only a local representation.

10

Let  : R ! R be any differentiable function such that (0) > ; (r) = 0 for r  2; and ?1 < 0(r)  0: For example, the quadratic function 2 (r) = (2r ? 4) (15)



15

suffices, as plotted in Figure 8. 1 0.8 0.6 0.4 0.2

0.5

1

1.5

2

Figure 8: Plot of  from (15) in units of  (horizontally and vertically). We use  to locally warp the effects of the function on the manifold as

F (x) = f (x) ? ( (x) + 2(x)): (16) Then F ?1 (?1; c + ] = M c+ ; because F = f outside the ellipsoid  + 2  2; and inside this ellipsoid

F  f = c ?  +   c + 21  +   c + : (17) The function F is demonstrated in Figure 9. Note that F does not affect the shape of the manifold M: The function F also shares the same critical points as f; since @F = ?1 ? 0( + 2) < 0; (18) @ @F = 1 ? 20( + 2)  1; (19) @ @F d: d + dF = @F (20) @ @ and d and d are both zero only at the origin. Hence

F ?1[c ? ; c + ]  f ?1[c ? ; c + ]; 11

(21)

4

2

2 0 -2 -4 2

1 0 1 -1

0 -1 -2-2

Figure 9: The behavior of F: The domain where F < c ?  is dark blue. The domain where F 2 [c ? ; c + ] is cyan. The function F deforms the hyperbolic paraboloid such that its center dips below a height of c ? :

12

is compact, and contains no critical points since

F (p) = c ? (0) < c ? :

(22)

Therefore, by Theorem 3.2 we have that F ?1 (?1; c ? ] is homeomorphic to M c+ : Let e  M be the -cell

e = f(u1; : : : ; un) : u21 +    + u2  ; u2+1 +    + u2n = 0g:

(23)

In our example, we have the locus of points

e1 = f(x; 0; ?x2 )) : x2  g

(24)

which forms a parabolic bridge joining (and just touching) the two disjoint components of M c? in Figure 7. Denote H = closure(F ?1 (?1; c ? ] ? M c? ): Note that e  H: The handle H is illustrated in Figure 10.

4

2

2 0 -2 -4 2

1 0 1 -1

0 -1 -2-2

Figure 10: The handle H is red. One can now readily see that deformation retraction is

M c? [ e is a deformation retract of M c? [ H: In fact, the

8 > < (u1 ; : : : ; u; tu+1 ; : : : ; tun) rt (u1; : : : ; un) = > (u1; : : : ; u; s(t)u+1; : : : ; s(t)un) : (u1 ; : : : ; un ) 13

if   ; if      + ; otherwise.

(25)

s

where

s(t) = t + (1 ? t)  ?  :2

(26)

Since non-degenerate critical points are isolated, we can treat them individually in disjoint coordinate systems, even if one or more share the same critical value. Corollary 3.4 If there are k non-degenerate critical points p1 ; : : : ; pk with indices 1 ; : : : ; k in f ?1(c) then M c+ has the homotopy type of M c? [gi ei    [gk ek :

4 Application to the Topology of Implicit Surfaces The most immediate result from applying Morse theory to implicit surfaces is to characterize the behavior of an implicit surface at a non-degenerate critical point. Corollary 4.1 An implicit surface f ?1 (0)  R 3 intersecting a non-degenerate critical point is locally either a singleton or homeomorphic to the neighborhood of the apex of a cone. Proof: The Morse Lemma states that the implicit surface is locally quadric about a non-degenerate critical point. Depending on the index of the critical point, the implicit surface is locally homeomorphic to the neighborhood of the critical point of the implicit surface of one of the following functions

g0(x; y; z) g1(x; y; z) g2(x; y; z) g3(x; y; z) The implicit surfaces of g0

2

=

= = = =

x2 + y 2 + z 2 ; ?x2 + y2 + z2 ; ?x2 ? y2 + z2 ; ?x2 ? y2 ? z2 :

(27) (28) (29) (30)

?g3 consist of the origin, and g1(x; y; z) = ?g2 (z; x; y) are cones.

Figure 11 demonstrates a 2-saddle between two blobby spheres. At the moment they touch, their surface approximates a cone near the point of intersection. Figure 12 demonstrates a 1-saddle between four blobby spheres. At the moment they connect, their surface approximates a cone as the hole closes up. Corollary 4.2 Let homeomorphic.

f :M !R

be as defined in Theorem 3.2. Then f ?1 (a) and f ?1 (b) are

Proof: The same homeomorphism b?a : M ! M that carried M a onto M b must also map f ?1 (a) onto f ?1 (b): (The boundaries of two homeomorphic n-manifolds-with-boundary are themselves homeomorphic.) 2 Corollary 4.2 can be applied to implicit surfaces, but must be restricted to non-intersecting implicit surfaces such that one implicit surface completely surrounds the other. In order to show a homeomorphism between two implicit surfaces in general, we must define a family of implicit

14

f ?1(:6)

f ?1(:617)

f ?1(:63)

Figure 11: A critical point of index 1 with a critical value of about 0.617.

f ?1(:73)

f ?1(:743)

f ?1(:75)

Figure 12: A critical point of index 2 with a critical value of about 0.743.

15

surfaces and define a height function on this family. Then the properties of the manifold due to the height function will also apply to the family of implicit surfaces. Let f : R n  R ! R be a family of functions f (x; q ) parameterized by t that implicitly defines surfaces fq?1 (0) = fx : f (x; q ) = 0g: Define the n-manifold as M = f(x; q ) : fq (x) = 0g: Define the height map h : M ! R as h(x; q ) = q: Then p = (x; q ) is a critical point of h if and only if rfq (x) = (@fq =x1 ; : : : ; @fq =xn ) = 0: For if p is a critical point of h; then it’s value (= q ) is locally constant along M: Hence M is locally perpendicular to the q axis, tangent to the hyperplane spanned by (x; q ) for constant q: Since M = f ?1 (0); fq (x) is zero and its derivatives are also zero. Corollary 4.3 If fq?1 (0) is compact for every q 2 [a; b] and does not contain any point x such that rfq (x) = 0; then fa?1(0) is homeomorphic to fb?1(0): Theorem 4.4 Let x0 be a non-degenerate critical point with index  of fq0 : If for some  > 0 the set f[?1 q0 ?;q0+](0) is compact and contains no other critical points than (x0 ; q0 ); and assuming without loss of generality that @f (x0 ; q0 )=@q > 0; then the solid fq?1 [0; 1) has the same homotopy type 0 + ?1 as the solid fq0 ? [0; 1) with a -cell attached. Proof: Let M  R n  R be the n-manifold consisting of f(x; q ) : fq (x) = 0g: Let h : M ! R be the height map h(x; q ) = q on this manifold. As before, we represent h(x; q ) = ? (x; q ) + (x; q) in a local coordinate neighborhood U  R n  R of (x0; q0 ) and let e  M be the cell whose boundary touches the implicit surface fq?1 (0): Note that if @f (x0 ; q0 )=@q < 0 then 0 ? e  fq?10 ?[0; 1) and it’s setwise union would be inconsequential. Recall the function H = ? +  ? ( + 2) (31)

has the same critical points as h; and the set H ?1 (?1; q0 + ] = h?1 (?1; q0 + ]; but the critical point (x0 ; q0 ) is in H ?1 (?1; q0 ? ]: By Corollary 4.2 we have that the implicit surface fq?1 (0) 0 + ?1 is homeomorphic to the boundary H (q0 ? ): Let H = closure(H ?1 (q0 ? ) ? h?1 (q0 ? )): Note that H  M; but we are concerned with zerosets of fq which are slices of M: Hence we must project H and e onto the slicing hyper-plane that contains h(q0 ? ) = fq?1 (0): 0 ? Let  (x; q ) = (x; q0 ? ): Since the endpoints of e reached fq?1 (0); they remain unchanged 0 ?  ?1 after projection  (e ): The ends of the handle H likewise reach fq0 ? (0) and so do the ends of its projection  (H): The containment e  H also remains after projection. Applying the deformation rt for fixed q retracts (H) onto (e):2 The disconnection direction (@f (x0 ; q0 )=@q < 0) must be managed by inverting the q parameter about the critical point and treating the problem in the connection direction since there is no mechanism available to us to “remove a -cell.”

5 Conclusion This document serves to provide a theoretical basis for the alteration of implicit surface topology in the presence of critical points. It ultimately showed that the homotopy class of an implicit surface before and after a non-degenerate critical point changes sign can be described through the attachment of an appropriate-dimension cell. 16

Morse theory may have further applications for parametric representations. If a 2-manifold can be represented parametrically by a single C 2 bicontinuous bijection p : R 2 ! R 3 ; then we have a correspondence of parameters u; v with each point on the manifold. The function u2 + v 2 is real valued and suffices to interrogate the homotopy type of the surface. For example, if this function has only two critical points, both non-degenerate, then Theorem 4.1 of Milnor [1963] asserts that the manifold is homeomorphic to a sphere. In this manner, global parametric representations of surfaces can be used to classify the homotopy type of the surface. Morse theory might also add insight to current problems in texture mapping. Maintaining a consistent texture mapping on a surface as it changes shape is a current problem in computer graphics. The determination that the initial and final shapes share the same homotopy type would be the first step toward finding a possible homotopy-type preserving shape transformation. Likewise, the characterization of neighborhoods of critical points occuring during shape transformation may provide new insight into the maintenance of consistent texture coordinates through changes in topology. Thanks to Jules Bloomenthal, John Hughes, Nelson Max and Bart Stander for informative discussions about Morse theory and implicit surfaces.

References [Bott, 1960] Bott, R. Morse theory and its application to homotopy theory. Universitat Bonn, Germany, 1960. [Milnor, 1963] Milnor, J. Morse Theory, vol. 51 of Annals of Mathematics Studies. Princeton University Press, Princeton, NJ, 1963. [Munkres, 1975] Munkres, J. R. Topology: a first course. Prentice-Hall, Englewood Cliffs, New Jersey, 1975. [Stander & Hart, 1997] Stander, B. T. and Hart, J. C. Guaranteeing the topology of an implicit surface polygonization for interactive modeling. Computer Graphics Annual Conference Proceedings (Proc. SIGGRAPH ’97), Aug. 1997. [Stander, 1997] Stander, B. T. Polygonizing Implicit Surfaces with Guaranteed Topology. PhD thesis, School of EECS, Washington State University, May 1997.

17