为了打动两位德国教授,我试图改进博弈论。带预测的博弈论
AI in Computergames。博弈论:智力是一个受过良好教育的问题。 这意味着一个深思熟虑的决定是选择一个导致最佳结果的行为。
Question -> Resolution -> Answer -> Test (Check)
例如,一个机器人正在与另一个机器人作战。 这个机器人有3种选择:
-move forward
-hold position
-move backward
产生的PROGRAMM很简单
randomseed = initvalue;
while (one_is_alive)
{
choice = randomselect(options,probability);
do_choice(roboter);
}
我们正在使用伪随机性。
成功的考验只是他对对手的吸引力。 的机器人可以自动射击武器:
struct weapon
{
range
damage
}
struct life
{
hitpoints
}
现在对于一些演变。
我们让2个机器人相互对抗,记住随机种子。 成功的机器人的标志是什么?
struct {
ownrandomseed;
list_of_opponentrandomseed; // the array of the beaten opponents.
}
现在的问题是我们如何选择正确的策略对付对手? 我们假设我们已经为每种可能的种子策略提供了最佳的反策略。 现在我们唯一要做的就是观察对手 的数字并计算他的种子价值。然后我们可以选择正确的策略。
对于裂化随机发生器我们可以使用手动方法: http://alumni.cs.ucr.edu/~jsun/random-number.pdf
或蛮力: https://jazzy.id.au/2010/09/20/cracking_random_number_generators_part_1.html
如果您知道对手机器人将如何行动,那么您可以计算种子的几率很小。但是,你将如何确定一个机器人如何看待它。没有办法先运行这个事件。另外,是什么让你觉得对手总是会以同样的方式表现? –
您只能在实际时间获取数据,就像黑客会获取他的数据一样。而且对手不需要表现得一模一样,它毕竟是一个随机数。 –
哦,我正在阅读http://alumni.cs.ucr.edu/~jsun/random-number.pdf,那里的黑客需要猜测一个字。 –