Combinatorial auctions, where bidders can bid on bundles of items are known to be desirable auction mechanisms for selling items that are complementary and/or substitutable. However, there are 2k − 1 bundles, and each agent may need to bid on all of them to fully express its preferences. We address this by showing how the auctioneer can recommend to the agents incrementally which bundles to bid on so that they need to only place a small fraction of all possible bids. In particular, we design preference elicitation algorithms that provably determine the optimal allocation while asking a vanishingly small fraction of all possible value queries. The elicitors impose a great computational burden on the auctioneer. We show how to speed them up dramatically. In order to provide an instancespecific lower bound on how well any elicitation algorithm can do, we develop a search-based method for finding the smallest certificate. We show that our best elicitor is almost as effective as this ...