I wrote an intelligent solver (doing set elimination, etc) in Java back in high school, but couldn't get it to solve the harder puzzles. Clearly I was lacking one of the essential implications that allow you solve them manually. I actually never even considered brute forcing it.