首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >跟踪动态分数

跟踪动态分数
EN

Stack Overflow用户
提问于 2010-06-25 13:21:38
回答 2查看 213关注 0票数 3

我几乎没有接受过正式的离散数学训练,并且遇到了一些小问题。我正在尝试编写一个智能体,它可以读入人类玩家的(任意)得分,并经常获得一分。智能体需要经常“落后”和“赶上”,以便人类玩家相信有一些竞争正在进行。然后,智能体必须在对人类的攻击中获胜或失败(取决于条件)。

我尝试了几种不同的技术,包括不可靠的概率循环(失败得很可怕)。我在想这个问题需要一个类似于发射隐马尔可夫模型(HMM)的东西,但我不确定如何实现它(或者这是否是最好的方法)。

我有一个gist up,但还是很糟糕。

我希望__main__函数能够为这个代理的目标提供一些洞察力。它将在pygame中被调用。

EN

回答 2

Stack Overflow用户

发布于 2010-06-27 11:12:00

我想你可能想得太多了。您可以使用简单概率来估计计算机分数应该“追赶”的频率和程度。此外,您可以计算计算机分数和人类分数之间的差异,然后将其提供给一个类似sigmoid的函数,以给出计算机分数增加的程度。

说明性Python:

代码语言:javascript
运行
复制
#!/usr/bin/python
import random, math
human_score = 0
computer_score = 0
trials = 100
computer_ahead_factor = 5 # maximum amount of points the computer can be ahead by
computer_catchup_prob = 0.33 # probability of computer catching up
computer_ahead_prob = 0.5 # probability of computer being ahead of human
computer_advantage_count = 0
for i in xrange(trials):
    # Simulate player score increase.
    human_score += random.randint(0,5) # add an arbitrary random amount
    # Simulate computer lagging behind human, by calculating the probability of
    # computer jumping ahead based on proximity to the human's score.
    score_diff = human_score - computer_score
    p = (math.atan(score_diff)/(math.pi/2.) + 1)/2.
    if random.random() < computer_ahead_prob:
        computer_score = human_score + random.randint(0,computer_ahead_factor)
    elif random.random() < computer_catchup_prob:
        computer_score += int(abs(score_diff)*p)
    # Display scores.
    print 'Human score:',human_score
    print 'Computer score:',computer_score
    computer_advantage_count += computer_score > human_score
print 'Effective computer advantage ratio: %.6f' % (computer_advantage_count/float(trials),)
票数 2
EN

Stack Overflow用户

发布于 2010-06-26 02:30:06

我假设人类看不到计算机代理在玩游戏。如果是这样的话,这里有一个你可以尝试的想法。

创建一个列表,列出所有可能的分数组合,这些分数组合可以在任何给定的动作中得分。*对于每一步,找到一个你希望代理在当前回合后结束的得分范围。将可能的移动值的集合减少到仅结束代理在该特定范围内的值,并随机选择一个。随着您希望座席落后或领先多远的条件发生变化,只需适当滑动您的范围即可。

如果你正在寻找对人类有某种内置和研究的心理影响的东西,我无法帮助你。“如果你想要更符合你的情况,你需要为我们定义更多的规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3115744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档