7
$\begingroup$

Question: Besides generally learning Algebraic Topology, what are some prerequisites for studying Computational Topology? Are there any accessible papers which introduce the field and the methods being used?

Motivation: A number of my peers do applied mathematics where I go to school, and upon hearing how they solved problems for their applied math classes I often think that the same sort of techniques could be used in topology. I am often referred to Stanford's computation topology page, though a number of the preprints on this page are not quite accessible to me. Of course, accessibility is subjective, but I wanted to see if anyone had any suggestions regarding how to proceed. It would be a shame to give up on this interesting looking subject just because I can't get my foot in the door!

  • 1
    Check out the following paper: The computational complexity of knot genus and spanning area, by Ian Agol, Joel Hass, and William Thurston. Not easy reading, but several of the references are, and the whole field is really pretty.2011-06-27

1 Answers 1

5

I suggest you take a look at computational homology http://www.amazon.com/Computational-Homology-ebook/dp/B000RENIA8 by Tomasz Kaczynski and the notion of persistence. This is where I first encountered the stuff. There are many fine examples in the book on how to get started. In my own work as a quant I am often presented with high-dimensional data sets and I need to classify them. Often there is pattern recognition involved and in such cases I can use the techniques of computational homology to extract algebraic information from the dataset.

Usually this involves something along the lines of:

  • Using cubical homology (easy to calculate with on a computer) and look for features in the homology groups which are 'persistent' across different sizes (resolutions) of cubes.

  • Convert the algebraic information into a barcode (something like the analog of a betti number) for easy manipulation in code.

To get started with this you'll need to know how to code in something like C++ or Python. There are libraries that already do the heavy lifting and you wouldn't want to redo all that yourself. Google around on persistent homology and they'll pop up. You'll also need some good higher-dimensional data to work with which likely means you'll have to deal with databases b/c you'll need somewhere to hold it all. MySQL or postgres are both fine choices.

Good luck!