A Seifert surface of a knot is a surface whose boundary is the knot. The genus of a knot is the minimal genus among all the Seifert surfaces of the knot. My question is, is any algorithm known to find the genus of a knot?

Note that it’s been known since the 1980’s that Seifert’s algorithm for finding a Seifert surface does not suffice to find the genus of a knot. To wit, there even exist knots for which Seifert’s algorithm never produces a minimal-genus Seifert surface no matter what diagram of the knot you take.

In any case, is there some diagrammatic knot invariant that allows you to calculate the genus?