JPlex CSRI Workshop on Combinatorial Algebraic Topology August 29, 2009 Henry Adams • Plex: Vin de Silva and Patrick Perry (2000-2006) • JPlex: Harlan Sexton and Mikael VejdemoJohansson (2008-present) JPlex computes the persistent homology of a filtered simplicial complex. Input A filtered simplicial complex is a nested sequence of simplicial complexes. 1 2 1 2 K ⊆ K ⊆ ... ⊆ K 3 m K ⊆K ⊆K ⊆K 4 Input A filtered simplicial complex is a nested sequence of simplicial complexes. 1 2 1 2 K ⊆ K ⊆ ... ⊆ K 3 m K ⊆K ⊆K ⊆K 4 Output A Betti barcode is a collection of (possibly semiinfinite) intervals and is one way to describe the persistent homology of a filtered simplicial complex. Output Functoriality is more informative than Betti numbers alone. Significant features persist. Zp Z2 Z2 How? Z2 Z251 Z251 • Computing Persistent Homology by Afra Zomorodian and Gunnar Z251Carlsson (2005) F • Taking persistent homology over field F gives a finitely generated graded F module over the PID F[t] . F[t] # # ! m ! n "# # " ! mα nj γj# i " ! ! F[t]/(t ) ⊕ Σ Σ F[t] n m γ n Σαi F[t] n ⊕i=1 j=1 " j=1j ) Σ j F[t]/(t α Σ F[t] i ⊕ " • Compute intervals by putting boundary i=1 j=1 matrices in - in fact, just n Smith normal lengthformseconds column echelon form. length seconds 11,151 ≈ 300 n 0.28 length Σ F[t γj secon Persistent homology applications • Topological simplification (Edelsbrunner, Letscher, Zomorodian) • Point cloud data analysis – image patches (Carlsson, Ishkhanov, de Silva, Zomorodian) – neuron firings (Singh, Memoli, Ishkhanov, Sapiro, Carlsson, Ringach) • Shape recognition (Carlsson, Collins, Guibas, Zomorodian) • Edge or corner identification (E. Carlsson, G. Carlsson, de Silva) 1 2 K JPlex ⊆ Kcapabilities ⊆ ... ⊆ K • Streamlined for 1 algorithm 2 – Persistence 3 m K ⊆K ⊆K ⊆K 4 – Rips and Witness complexes • Does not return homology generators. • Field of coefficients Zp with prime p < 256 (data type char) • Simplex dimensions < 8. K ⊆ZpK ⊆ K ⊆ K Zp Z Zp2 Scalability Zp Z2 1 3), where m • KO(n of simplices. ⊆ K 2 ⊆ ...n⊆isKnumber Z2 Z251 • JPlex timings (same for Z2 through Z251 ) 1 2 3 4251 Z K ⊆ K ⊆n K ⊆ length K seconds Z251 11,151 ≈ 300 seconds 0.28 n length Z62,480 p ≈ 300 9.81 11,151 62,480 ≈ 300 ≈ 300 0.28 9.81 • Faster Z2 implementation in Computing Persistent n Homology length seconds Z12,000 n251 length 1,020 seconds < 0.01 3,029,383 12,000 3,029,383 ≈1,020 300 < 50.23 0.01 ≈ 300 50.23 JPlex and Plex-2.5 • • • • Memory problems fixed Easy installation MATLAB and BeanShell interface Reduced toolset – cohomology – sequential maxmin landmarks – union, intersection – what do you miss? Future plans • Upcoming release with cohomology • A better platform for research-focused development of techniques? JPlex usability • Available http://comptop.stanford.edu/ JPlex usability • Available http://comptop.stanford.edu/ • Javadoc tree {Xt | t ∈ R} such that Xt ⊂ Xs whenever t ≤ s. The filtration time of a simBetti You willt need least vertices page 107]. I recommend plexnumbers. σ ∈ X isHint: the smallest such at that σ ∈7 X intervals describe how the t . Betti[6, using a 3 × of 3 grid of 9 vertices. topology Xt varies with t. A k-dimensional Betti interval, with endpoints [tstart , tend ), corresponds to a k-dimensional hole that appears in the filtration at time tstart , remains open for tstart ≤ t < tend , and closes at time tend . Exercise 3.2.2. Build a simplicial complex homeomorphic to the Klein bottle. Check that it has the same Betti numbers as the torus over Z2 coefficients but different Betti numbers over Z3 coefficients. 2. Streams JPlex usability • Available http://comptop.stanford.edu/ • Javadoc tree 2.1. Class SimplexStream. In JPlex, a filtered simplicial complex is called a Exercise Build a are simplicial complex to the projective plane. stream,3.2.3. and streams implemented by homeomorphic the class SimplexStream. The subclass • Compare Tutorials: examples, real example, ExplicitStream allows us to aKlein SimplexStream hand. its Bettitoy numbers to build thoseor of edit the bottle over instance Z2 exercises and Zby 3 coefficients. SubclassExplicitStream ExplicitStream. Let’s build from scratch a 3.3.2.2. Subclass and persistent homology. stream this house. Firstfiltration we get an emptyWe ExplicitLet’s buildrepresenting a stream with nontrivial times. build Streamwith instance. a house, the square appearing at time 0, the top vertex at ExplicitStream house = new time 1, theplex> roof edges at times 2 and 3, and theExplicitStream(); roof 2-simplex at time 7. >> house=ExplicitStream; >> house.add([1;2;3;4;5], [0;0;0;0;1]) >> house.add([1,2;2,3;3,4;4,1;3,5;4,5], [0;0;0;0;2;3]) >> house.add([3,4,5], 7) We compute the Betti intervals. >> house.close >> intervals=Plex.Persistence.computeIntervals(house); There are four intervals. >> length(intervals) ans = 4 Discussion • Question: what other capabilities should be considered? • Zigzag Persistent Homology and Real-valued Functions by Gunnar Carlsson, Vin de Silva, and Dmitriy Morozov (2009). Give novel algorithm for persistence. – O(nm2) – parallelizable