我正在尝试将生成的树和/或生成的树转换为策略树(我不确定这是否是问题,但我会解释我的意思)。我很难弄清楚该去哪里。这是我理解和/或表示的意思:
以受限逻辑表达式形式的树。允许的运算符为,和或。除了这两个运算符外,我们还有简单的值或操作数。因此,示例表达式为:
((a1 and a2) or b1) and (c1 or c2)
(我在此处加上括号,但通常在创建树之前已将其处理,因此我不将其视为运算符等)。
因此,由给定表达式计算的树将是and's and or's;
and
/ \
or or
/ \ / \
and b1 c1 c2
/ \
a1 a2
但是我们知道分支已经表示“或” ,而继续表示“和” 。这就是我的意思;
b1
/
b2
/
a1
和说
b1
/
and
/ \
b2 a1
我应该澄清这是在游戏方面。因此,如果玩家下注到b1,而随后的策略是b2,则下注a1,这意味着反之亦然(两个单元都必须继续玩)无关紧要。如果我在这一点上也错了,那就纠正我。
上述第二种形式的树。值就在树上,就像玩家沿着路径走一样。 (我真的不能将树的转换放在上面,因为这是我要提出的问题,但我仍然无法弄清楚)。但是,这是与上面的and / or树相对的策略树;
b1 and ((a1 and a2) or (b2 and (d1 or (c1 or c2))))
b1
/ \
a1 b2
/ / \
a2 d1 True
/ \
c1 c2
我正在将策略树用于玩家的两人游戏策略。因此,该树不包括第二个玩家的举动,而只有第一个玩家的策略由紧凑的符号给出。我的目的是查看给定策略是否完整和/或获胜策略。基本上假设,如果给定的单元格仍然为空,则第一个玩家将按照该树进行移动。即a1和(b1或c1)表示第一步是移到a1。然后,对手采取行动,根据对手进行行动的地点,回复将是b1或c1。我可能正在使用不必要的复杂方法来解决此问题,我也欢迎其他建议。