The aggregation of conflicting preferences is a central problem in multiagent systems. The key difficulty is that the agents may report their preferences insincerely. Mechanism design is the art of designing the rules of the game so that the agents are motivated to report their preferences truthfully and a (socially) desirable outcome is chosen. We propose an approach where a mechanism is automatically created for the preference aggregation setting at hand. This has several advantages, but the downside is that the mechanism design optimization problem needs to be solved anew each time. Hence the computational complexity of mechanism design becomes a key issue. In this paper we analyze the single-agent mechanism design problem, whose simplicity allows for elegant and generally applicable results. We show that designing an optimal deterministic mechanism that does not use payments is NP-complete even if there is only one agent whose type is private information—even when the designer...