在计算复杂度理论里,承诺问题是一类决定性问题,其可接受输入是一个确定大小的集合。与其他的决定性问题不同,承诺问题接受的输入(确定输出会是是或者否的输入)并不包含所有可能的输入。直觉上,我们可以说输入的承诺是在一群是的输入或否的输入里面。如果输入不属于这两个集合,那么此算法允许输出任何答复。一个决定性问题可以说与一个语言互通,这问题接受所有在里面的输入,拒绝所有不在里面的输入。承诺问题则是与两个语言相关,。此两个语言一定不交集,换句话说,。此承诺问题接受所有在里面的输入,拒绝所有在里面的输入。的集合则是此问题的承诺。对于不属于承诺里面的输入则没有规定输出必须是什么。如果承诺等于,此承诺问题同时也是决定性问题。