SA solver