Kauffman state sum algorithm for the Alexander polynomial
This is Python code which implements the Kauffman state sum algorithm for the Alexander polynomial. In addition to computing an Alexander polynomial, it produces a genrating set for the knot Floer complex, and determines whether the knot diagram input to the program satisfies the 'unique state property', and returns a message indicating whether the knot is fibered, not fibered, or indeterminate.
As a subroutine, the program generates all of the spanning trees of the black graph corresponding with the checkerboard coloring of the knot, and finds a minimal weight spanning tree. (Please see the disclaimers in the instructional PDF).