sat问题求解算法