所以我给出了一个带有 2n 个变量的布尔公式 Q。用 Q(x1...xn,y1...yn) 表示,并且提到存在 a1....an 属于 {0,1} 使得对于属于 {0,1} 的每个 b1...bn Q(a1...an,b1,....bn} 现在的问题是证明这是在 PSPACE 和 U DTIME(2^ kn) 复杂度类。
现在我相信这就像两个玩家,其中玩家 A 有一个获胜的策略。如果我可以编写一个需要指数时间和多项式空间的程序,我会解决它。
现在,如果玩家 A 存在选择,则程序应该返回 true,即在他从 0 和 1 中选择 ai 的值之后,无论双玩家 B 选择什么,并且无论他给出的值为 0,1,公式将始终评估为 true。
所以我正在考虑以下条款
for ai=a1 to an
{
flag =true;
for j=0 to 1
{
set ai =j;
//check all possible combination of bi's and check the formula
//if formula evaluates to false ,set flag =false and break,
//try the next j for ai;
}
//if flag =false then ai is not a good selection ,select another ai
//if flag =true yes we have a good selection of ai ,
//player 1 will always win in this case
return true and break;
}
这种方法是否正确,我也可以使用相同的方法检查 bi 的所有组合吗
for bi=b1 to bn
{
for j=0 to 1
{
//evaluate formula here
//but the problem is i do not have all the values of ai's
// i have only one value of ai ,what will i substitute for the rest
}
}
任何解决此类问题的建议和新方法将不胜感激