JPlex CSRI Workshop on Combinatorial Algebraic Topology August 29, 2009 Henry Adams

advertisement
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
Download