I've always been interested in this kind of programs..
How does your work ? Do you use some AI algorithm such as neural networks or genetics ?