I have an implementation of online cycle removal, but it seems to somehow corrupt the constraint graph when it removes cycles. After a cycle is removed, solutions are still produced (and they are correct), but it takes much longer. It seems like a huge number of nodes in the constraint graph get added to the worklist after a cycle is collapsed somehow, several orders of magnitude more than observed without the cycle elimination.
The code is currently disabled (the check to see whether or not cycle elimination should be attempted always returns False, meaning don't try).
I have an implementation of online cycle removal, but it seems to somehow corrupt the constraint graph when it removes cycles. After a cycle is removed, solutions are still produced (and they are correct), but it takes much longer. It seems like a huge number of nodes in the constraint graph get added to the worklist after a cycle is collapsed somehow, several orders of magnitude more than observed without the cycle elimination.
The code is currently disabled (the check to see whether or not cycle elimination should be attempted always returns False, meaning don't try).