在计算复杂度理论里，承诺问题是一类决定性问题，其可接受输入是一个确定大小的集合。与其他的决定性问题不同，承诺问题接受的输入（确定输出会是"是"或者"否"的输入）并不包含所有可能的输入。直觉上，我们可以说输入的"承诺"是在一群"是"的输入或"否"的输入里面。如果输入不属于这两个集合，那么此演算法允许输出任何答覆。
正式定义.一个决定性问题可以说与一个语言formula_1互通，这问题接受所有在formula_2里面的输入，拒绝所有不在formula_2里面的输入。承诺问题则是与两个语