【问题标题】:2 Player game is in PSPACE2人游戏在PSPACE
【发布时间】:2013-03-10 18:19:50
【问题描述】:

所以我给出了一个带有 2n 个变量的布尔公式 Q。用 Q(x1...xn,y1...yn) 表示,并提到存在 a1....an 属于{0,1 } 这样对于每个属于 {0,1} Q(a1...an,b1,....bn} 的 b1...bn 计算结果为 true 现在的问题是证明这是在 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
}

}

任何解决此类问题的建议和新方法将不胜感激

【问题讨论】:

  • 你没有表达清楚。你提出了一个关于布尔函数 Q 的声明,然后说它属于一个复杂性类。你描述的不是决策问题。
  • 是的,这个问题不会花费多项式时间,这就是为什么我们必须证明它属于复杂性类 DTIME(2^kn) 其中 k>1
  • 你的减少是错误的。在策略游戏中,玩家 A 的最佳策略可能取决于玩家 B 之前的动作。正确的类比是,如果 A 有一组 固定 的“动作”,总是能战胜所有可能的动作。 B. 以这种方式表达问题并没有使它更容易解决。这完全是肤浅的
  • 另外,对k有什么要求?它没有在任何地方定义。蛮力解决方案通过评估 Q 高达 2**2n 次来解决它,使用一个 2n 位计数器和一个 n 位计数器(这表明它在 PSPACE 中)。
  • 所以你的意思是如果我在上层循环中计算 ai 的每个组合,并且对于 ai 的每个组合,我必须检查是否有 bi 的组合可以使公式为假。你能告诉我你的意思是什么

标签: time computer-science complexity-theory time-complexity computation-theory


【解决方案1】:

它在 DTIME(2**2n) 中。蛮力算法:

//requires n bits space, 2**n iterations of check() or 2**2n time total
loop over all possibilities to choose (a1,...,an):
    if (check(Q, (a1,..., an))):
        return (a1,...,an);

return null

check(Q, (a1,...,an)):
    //requires n bits space, 2**n iterations
    loop over all possibilities to choose (b1,...,bn):
        if (! Q(a1, ..., an, b1, ..., bn)):
             return false
    return true

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 2021-12-28
    • 2019-08-05
    • 2015-10-20
    • 2013-10-09
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多