Note on an Algorithm for Computing the Reeb Graph

Note on an Algorithm for Computing the Reeb Graph

INTERNATIONAL JOURNAL OF GEOMETRY Vol. 6 (2017), No. 1, 89-94 Note on an Algorithm for Computing the Reeb Graph ADELA LUPESCU Abstract. The Reeb graph of a real function defined on a manifold is a useful mathematical tool with applications in computational topology, com- putational geometry, determination of level sets, computer graphics and so on. The main objective of this paper is to present an algorithm to determine the Reeb graph of a real valued function defined on a compact surface. 1. Introduction Given a topological space X and a real valued function f : X ! R, define on X the following equivalence relation ∼ : we have x ∼ y if and only if x and y belong to the same path connected component of a level set f −1(a), a 2 R. The Reeb graph is the quotient space X=∼ := R(f). Here are few examples. Example 1.1. (1)The Reeb graph of a sphere when f is the height function: |||||||||||||||||{ Keywords and phrases: critical point; Reeb graph; computational topology (2010)Mathematics Subject Classification: 58E05 Received: 5.02.2017 In revised form: 25.03.2017 Accepted: 30.03.2017. 90 Adela Lupescu (2) The Reeb graph of a torus when f is the height function : (3)The Reeb graph of a torus of genus 2 when f is the height function : The Reeb graph, originally defined in the context of Morse theory in the paper [7], can be used to study properties of a space through the lens of a real-valued function by providing a way to track and visualize the connected components of the space at level sets of the function. Recall that, a category C is an algebraic structure consisting of the fol- lowing elements : 1) a collection of objects denoted by ob(C); 2) a collection of morphisms denoted by hom(C); 3) the composition of morphisms (denoted by ◦ ), that is for every a; b; c 2 ob(C) we have the binary operation hom(a; b) × hom(b; c) 7! hom(a; c) such that the following properties hold: A: The composition of morphisms is associative: 8f 2 hom(a; b); g 2 hom(b; c); h 2 hom(c; d): h ◦ (g ◦ f) = (h ◦ g) ◦ f idx: 8 x 2 ob(C), 9 idx 2 hom(x; x) s.t. 8f 2 hom(a; x) and g 2 hom(x; b): idx ◦ f = f, g ◦ idx = g In our concrete case, the Reeb graphs form a category denoted by Reeb, where the objects are finite graphs with real valued functions that are strictly monotonic on the edges, and the morphisms are functions preserv- ing maps between the underlying spaces. More precisely [3], an object of the category Reeb is a finite graph, seen as a topological space X, together 91 with a real valued function that is strictly monotonic on its edges. In what follow, we use the notation (X; f) for a such object. A morphism between (X; f) and (Y; g), is a function preserving maps ' : X ! Y , that is the following diagram is commutative: The vertices of the Reeb graph R(f) are the classes of critical points x s s such that x 2 Mc and Mc \ C[f] 6= ?. Moreover, f induces the function fe : R(f) ! R such that the following relation holds f = fe◦ π (see [1] for definition and properties about critical points). 2. The algorithm 2.1. Description of the algorithm. (1) Identify critical points; (2) Arrange critical points in a vector v[i] in the same order that they appear when tracing along the surface from absolute minimum to absolute maximum; (3) Every entry in the vector has the following form: v[i] = (Pi; type), where type can be: • a for minimum, with the special type aA for the absolute mini- mum; • b for a saddle point with the special types bi for the saddle that comes after the absolute minimum and bp the saddle that comes after a minimum (note: categ.sp). If the saddle does not come after any type of minimum, the type will be obtained by alternating the order from the last saddle that falls in the categ.sp. • c for maximum, with the special type cA for the absolute max- imum; (4) Pseudocode algorithm: Entry data: X= surface, f= real valued function Define a boolean function ver.type(P,Q) that compares the main type of two given points; Example: ver.type(a,aA)=true; ver.type (c,cA)=true, ver.type(bp, bi)= true, ver.type(a,c)=false; Define a function point(v[i]) that returns the point Pi; First result: v[i] = (Pi; type), n = lenght (v[i]); Let i = natural number; Initialize i=1; While i < n if type(v[i])=a if ver.type(point(v[i]), point(v[i+1])) is false then draw element I; 92 Adela Lupescu i=i+1; else draw element II; i=i+2; if type(v[i])=bi and type(v[i+1])=bp then draw element III; i=i+1; if type(v[i])=bp and type(v[i+1])=bi then draw element I; i=i+1; if type(v[i])=b and v[i+1]=c if ver.type(point(v[i+1]), point(v[i+2])) is false then draw element I; i=i+1; else draw element IV; i=i+2; 2.2. Examples of applying the algorithm. (1) X=surface, f(x; y; z) = z v[i] = ((P1; aA); (P2; bi); (P3; bp); (P4; bi); (P5; bp); (P6; cA)) n=6; i=1; 1 < 6 type v[1]=a (true) ver.type(point(v[1]), point(v[2])) is false (true) draw element I; i=i+1; 2 < 6 type v[2]=a (false) type(v[2])=bi and type(v[3])=bp (true) then draw element III; i=i+1; 3 < 6 type v[3]=a (false) type(v[3])=bi and type(v[4])=bp (false) type(v[3])=bp and type(v[4])=bi (true) then draw element I; i=i+1; 4 < 6 type v[4]=a (false) 93 type(v[4])=bi and type(v[5])=bp (true) then draw element III; i=i+1; 5 < 6 type v[5]=a (false) type(v[5])=bi and type(v[6])=bp (false) type(v[5])=bp and type(v[6])=bi (false) type(v[5])=bp and v[6]=c (true) ver.type(point(v[6]), point(v[7])) is false (true) then draw element I; i=i+1; 6 < 6 false draw graph; (2) X=surface, f(x; y; z) = z v[i] = ((P1; aA); (P2; a); (P3; bi); (P4; bp); (P5; bi); (P6; bp); (P7; bi); (P8; cA)) n=8; i=1; 1 < 6 type v[1]=a (true) ver.type(point(v[1]), point(v[2])) is false (false) draw element II; i=i+2; 3 < 6 type v[3]=a (false) type(v[3])=bi and type(v[4])=bp (false) type(v[3])=bp and type(v[4])=bi (true) then draw element I; i=i+1; 4 < 8 type v[4]=a (false) type(v[4])=bi and type(v[5])=bp (true) then draw element III; i=i+1; 5 < 8 type v[5]=a (false) type(v[5])=bi and type(v[6])=bp (false) type(v[5])=bp and type(v[6])=bi (true) then draw element I; i=i+1; 94 Adela Lupescu 6 < 8 type v[6]=a (false) type(v[6])=bi and type(v[7])=bp (true) then draw element III; i=i+1; 7 < 8 type v[7]=a (false) type(v[7])=bi and type(v[8])=bp (false) type(v[7])=bp and type(v[8])=bi (false) type(v[7])=b and v[8]=c (true) ver.type(point(v[8]), point(v[9])) is false (true) then draw element I; i=i+1; 8 < 8 false draw graph; References [1] Andrica, D., Critical Point Theory and Some Applications, Cluj University Press, Cluj-Napoca, 2005. [2] Bauer, U. and Ge, X. and Wang, Y., Measuring Distances between Reeb Graphs, July 2013. [3] Bauer, U. and Munch, E. and Wang,Y., Strong Equivalence of the Interleaving and Functional Distortion Metrics for Reeb Graphs, 31st International Symposium on Com- putational Geometry (SoCG 2015), LIPIcs 34 (2015), 461-475. [4] Biasotti, S. and Giorgi, D. and Spagnuolo, M. and Falcidieno, B., Reeb graphs for shape analysis and applications, Theoretical Computer Science 392 (2008), 5-22. [5] Kaluba, M. and Marzantowicz, W. and Nelson, S., On a reprezentation of the Reeb Graph as a sub-complex of manifold, Topological Methods in Nonlinear Analysis, May 2014. [6] Duke University Lectures, Computational Topology : Lecture V.4. [7] Reeb, G. , Sur les points singuliers d'une forme de Pfaff completment intgrable ou d'une fonction numerique , Comptes Rendus de l'Academie des Sciences, 222 (1946) 847-849. "BABES¸-BOLYAI" UNIVERSITY FACULTY OF MATHEMATICS AND COMPUTER SCIENCE KOGALNICEANU 1, 400084 CLUJ-NAPOCA, ROMANIA E-mail address: [email protected].

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us