Survey of Satisfiability Algorithms