My master's thesis was A Dynamic Approach to Calculating the HOMFLY Polynomial for Directed Knots and Links. The algorithm used is dynamic programming, running time is O((n!)(2n)(c3)) and the space used is O((n!)(c2)), where c is the number of crossings in the link and n is bounded above by sqrt(c)+1.
I have code for this.
| makefile for the program |
| standard.h |
| dllink.h | dllink.c |
| poly.h | poly.c |
| knot.h | knot.c |
| bound.h | bound.c |
| order.h | order.c |
| model.h | model.c |
| control.h | control.c |
thesis2.ps is a diagram showing how the algorithm works for one small knot.
thesis1.ps is a diagram showing how a simpler method (which I call the binary tree approach) works for that same small knot.
If you want just the Jones polynomial, and you want it for an alternating link, there is a very similar but faster algorithm (with no code available). The paper on it is "Computing the Tutte Polynomial of a Graph and Jones Polynomial of a Knot of Moderate Size" by K. Sekine, H. Imai, and S. Tani.
ISAAC and RC4, a comparison of two
stream ciphers
Evaluating hash functions
Ye Olde Catalogue of Boy Scout Skits
Tiles in my Half Bath
Table of Contents