Is there a chess engine that automatically generates quality chess problems. For example I will input 3 - it produces a mate in 3 problem. But the problem shouldn't be so obvious that one can solve in microseconds.
I don't know if such an engine exists, but there probably might not be one yet and here's why-
It's hard to explain to engines what is "obvious". What might be obvious to you might not even be obvious to me. However, there is some recent research in the area of beauty in chess problems. Even if one takes such factors as "depth appeal", "visual appeal", etc. as outlined in this research, there still remains the fundamental problem of generating chess positions.
Considering the fact that there are at least 10^43 chess positions, it is not yet computationally feasible to generate positions and apply "beauty" analysis to them to see which ones are "quality" problems.
However, we do have endgame tablebases. It could be possible that one could use the already generated 6 piece tablebases and apply the algorithms of the research on them and generate quality problems. However, I do not know if anyone has done that yet.
ChessTempo uses a chess engine to analyze positions from a large database of master games. It looks for interesting positions that can be presented as chess problems. Specifically it looks for positions in which one side has a way to win material within a few moves, but where alternative moves do not. These positions are then offered to users of the site who try to find the computer's selected best move. The users can also comment on the problems, tag them and rate how they liked the problem. Each problem is also given an ELO-like rating based on which users solved or failed to solve the problem.
Many of the problems turn out to be uninteresting (e.g. simple captures with no strategy involved) or flawed in some way (due to the chess engine not seeing some detail of the position). The easy problems are quickly given a low difficulty rating and are not shown to high rated players. Flawed problems are identified in comments and are disabled by the site administrator.
The result is a large body of interesting chess problems found by a computer, moderated by humans, and arranged by difficult level.
Azlan Iqbal (PhD) has programmed a chess problem generator. The problems are completely synthesized from only some rough inputs, the way most problems are composed by composition masters.
In the ChessBase article announcing the work, he says:
"Chesthetica neither takes these constructs from actual games nor extrapolates them from endgame tablebases (which are currently limited to seven pieces, I believe). It is composing them by itself. It is not programmed or told what sort of compositions to create (beyond being of the #3 variety, at this point). There have been no detected repetitions of the compositions generated to date."
To the date of the article, Iqbal has only explored using the program, Chesthetica, to compose mates in 3. He also states:
"One might ask where does Chesthetica “get its ideas”? I do not know. How or why should a computer be able to compose chess problems like these at all? Can computers autonomously do this sort of thing? These are also good questions and I believe the answer lies with the DSNS* technology. Again, why it works is still an open question but clearly, it does work."
If you're interested in knowing more about how the system was constructed, a brief recap of how DSNS functions is described in slides available here.
However, other than describing the algorithm and a few comments about the inputs he is using, Iqbal doesn't provide enough material for you to do this by yourself. The software isn't released, and no plans to release it have been announced. In addition, the method for choosing, capturing and inputting the inputs has not been divulged. You're welcome to search for more publications on the topic, available here.
*DSNS: Digital Synaptic Neural Substrate.
This program has a generator chess problems but the quality of these tasks is low... http://chessexplorer.republika.pl/
I'm not sure if any exist but the problem shouldn't be too difficult using a decent engine. As long as time wasn't too big an issue they could be generated by having the engine play itself at different depth ply searches.
For example, if one of the engines only saw two moves ahead a position will eventually arise where the other engine (which can see further) can manoeuvre his opponent into a forced mate in three. This position could then be saved as a problem. The difficulty of the problem would be based on the strength of the two "players". Tweaking of player strength could be used to generate problems of varying difficulty.
I don't think time would even have to be too big a concern. Computers can generally make decent moves very quickly.
The Chess.com has a feature called the tactics trainer. It gives users a chess position and as for best move. Which i believe is what you are trying to create/ asking about.
They have a small FAQ about how they came up with these questions here: https://support.chess.com/customer/portal/articles/1444815
Basically, they look for blunders in real games, and have an engine to analyze the positions to make sure there is only one winning line (that's the way they set up tactics trainer, only 1 possible good move, for easier implementation of the trainer. In most problems, it is possible to have multiple equally good best moves)
They however, they also have humans to go through the problems before they post it.
yes! check out this chessbase article http://en.chessbase.com/post/computer-generated-chess-problems-for-everyone