It's quite common to easily know when the answers you're getting are good without understanding the problem domain at all (or at least without needing to use that understanding to create a model).<p>For example, you could know that some sounds emitted from a computer speaker sound good or bad, without knowing the first thing about music theory.  And evolutionary algorithms (EA) can be used to evolve these sounds to sound better and better, without having been given any sort of explicit model of what "good" or "bad" music is.  The solutions evolve merely on the principles of natural selection, by randomly combining solutions and testing them for how "good" or "bad" they are.  This has been done.  Just search google for: evolving music genetic<p>The above problem is actually a little difficult for EA's to solve, as you need humans to manually evaluate each solution.  This slows the EA down a lot, and it takes a lot longer for optimum solutions to evolve.<p>Fortunately, the solutions to many other problems can be evaluated algorithmically, by the computer itself.  As a very general example, a solution that's trying to minimize some function can be evaluated via a mathematical comparison that a computer can handle just fine on its own.<p>For some more specific examples, see "36 Human-Competitive Results Produced by Genetic Programming":  <a href="http://www.genetic-programming.com/humancompetitive.html" rel="nofollow">http://www.genetic-programming.com/humancompetitive.html</a><p>I'm sure you could find thousands more examples by searching for the results produced by other "model-free methods" like other EA's (genetic algorithms, for example), neural networks, ant and swarm optimization, etc.