Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 赢得绞刑的最优算法_Algorithm_Probability_Greedy_Game Theory - Fatal编程技术网

Algorithm 赢得绞刑的最优算法

Algorithm 赢得绞刑的最优算法,algorithm,probability,greedy,game-theory,Algorithm,Probability,Greedy,Game Theory,在游戏《刽子手》中,贪婪的字母频率算法是否等同于最佳获胜概率算法 有没有一种情况值得为了更好地猜测正确答案而牺牲你的余生 进一步澄清问题: 要猜测的选定单词取自已知词典 你有N条生命,因此必须最大限度地猜测单词中的所有字母,而不犯N个错误(即,你可能有无限数量的正确猜测) 为了进行此练习,词典中的每个单词都有相同的概率(即,该单词是随机选择的) 一个更难的练习是想出一个对付恶意的、无所不知的选词者的策略(我不是在问这个) 动机:这个问题的灵感来自于在 他们提出了一个算法来优化解决单词游戏

在游戏《刽子手》中,贪婪的字母频率算法是否等同于最佳获胜概率算法

有没有一种情况值得为了更好地猜测正确答案而牺牲你的余生

进一步澄清问题:

  • 要猜测的选定单词取自已知词典
  • 你有N条生命,因此必须最大限度地猜测单词中的所有字母,而不犯N个错误(即,你可能有无限数量的正确猜测)
  • 为了进行此练习,词典中的每个单词都有相同的概率(即,该单词是随机选择的)
    • 一个更难的练习是想出一个对付恶意的、无所不知的选词者的策略(我不是在问这个)
动机:这个问题的灵感来自于在

他们提出了一个算法来优化解决单词游戏“刽子手”

他们的策略可以总结如下(编辑以澄清):

  • 我们可以假设这个词是从一本特定的词典中提取出来的
  • 我们知道这个单词的字母数
  • 删除字典中所有字母数不正确的单词
  • 选择尚未猜到的字母,该字母出现在词典剩余子集的最大单词数中
  • 如果这封信出现了,我们知道它的位置
  • 如果这个字母没有出现,我们知道它不会出现在单词中
  • 删除字典子集中不完全符合此正确模式的所有单词,然后重复
  • 如果有2个(或更多)字母出现的频率相同,则算法可能会对位置进行更深入的分析,以确定哪一个是首选字母(如果合理的话?)
在每个阶段,我们都在猜测剩余可能单词中出现最多的字母(以前没有猜到)

喜欢这种算法有一定的动机——我们失去生命的可能性总是最小的

但是,我觉得这不一定是最好的解决方案:如果我们试图猜测单词(在一定数量的生命中),不一定总是最频繁出现的字母是区分剩余可用单词的最有用的字母

不过,我不确定,因为这似乎是避免失去生命的最佳时机。最优策略是否会让我们为了更好的获胜机会而牺牲生命

问:这种贪婪算法是否等同于最佳获胜概率算法? 你能证明吗


字典+游戏的例子可以很好地说明反证。

不,这个贪婪算法根本不是最好的,我可以通过给出更好的解决方案来证明:

在每一步中,我们知道字母的数量,也知道一些字母。我们从一组单词中选择所有的单词,这些单词在给定的位置有给定的字母,并且它们的长度与所讨论的单词的长度相匹配。我们从选定的单词子集中选择最频繁的字母,并猜测给定的字母。对于每一次猜测,被猜测的字母都将被标记为猜测,并且将来不会再被猜测。这样,您的生存机会比您问题中描述的贪婪算法要好得多

编辑:

在澄清了问题并制定了进一步的规范之后,我得出结论,该算法是最优的

如果我们有n个给定长度的单词,包含所有正确的猜测(“好字母”)而不包含任何错误的猜测(“坏字母”),那么x生命,我们可以查看仍然可能的单词中字母的频率,并选择频率最大的字母,让我们假设y个单词包含字母

在这种情况下,这个猜测的置信率是y/n,这比任何其他字母的置信率都大,这就提供了更高的生存机会。因此,这样一个步骤是最优的。如果你按照这种精神做了一系列只包含步骤的步骤,那么这些步骤也是最优的,所以这个算法是最优的


但是,如果我们有任何额外的信息(比如单词的描述,或者知道在短时间内有两个相同单词的概率),该算法可以基于额外的信息进行增强,单词集中的所有单词都将有一个适应值(基于额外信息的概率)单词中的所有字母类型都将根据适合度评分进行加权。

选择一个字母,将剩余的有效单词分成两组大小几乎相等的字母。有了位置信息,可能会有两个以上的集合。重复此操作,直到您的套装大小为1。这是最好的办法。证据留作练习。

关于你尝试猜测单词而不是尝试猜测字母的想法,确实可能有一些孤立的情况,你从第一次尝试或类似的情况猜测单词,但这并不能使算法在一般情况下更好。这是关于预期概率的

可以对该算法进行一些改进(在Lajos发布的版本中),即选择一些更明智的字母进行尝试。
这可以通过增加一个权重来实现:考虑每个单词的用法。 例如,技术、医学、司法等词汇的使用几率要低得多

以本词典为例(附带一些用法权重示例):

此处
e
是最常见的字母,因此会被选中。这意味着只留下医学术语,这是非常不可能的。但如果由以下人员作出决定:

weight(letter) = w * frequency +
              (1 - w) * sum( usage_weight(word) where letter in word )
然后,很可能会选择
t
weight(letter) = w * frequency +
              (1 - w) * sum( usage_weight(word) where letter in word )
weight(e) = 0.2 * 3   +   0.8 * (1 + 2 + 1)
          = 3
weight(r) = 0.2 * 3   +   0.8 * (1 + 2 + 6)
          = 7.8
weight(t) = 0.2 * 3   +   0.8 * (1 + 5 + 6)
          = 10.2
cATs
bATs
rATs
vATs
sATe
mole
vole
role
letters, lives, 1-greedy, 2-greedy, 3-greedy, 4-greedy


2 letters 0 lives   3.1%    3.1%    3.1%    3.1%
2 letters 1 lives   7.2%    7.2%    7.2%    8.3%
2 letters 2 lives   13.5%   13.5%   13.5%   14.5%
2 letters 3 lives   21.8%   21.8%   22.9%   22.9%
2 letters 4 lives   32.2%   33.3%   33.3%   33.3%
2 letters 5 lives   45.8%   45.8%   45.8%   45.8%
2 letters 6 lives   57.2%   57.2%   57.2%   57.2%
2 letters 7 lives   67.7%   67.7%   67.7%   67.7%
2 letters 8 lives   76%     76%     76%     76%
2 letters 9 lives   84.3%   84.3%   84.3%   84.3%
2 letters 10 lives  90.6%   91.6%   91.6%   91.6%


3 letters 0 lives   0.9%    1.1%    1.1%    1.1%
3 letters 1 lives   3.4%    3.8%    3.9%    3.9%
3 letters 2 lives   7.6%    8.4%    8.6%    8.8%
3 letters 3 lives   13.7%   15%     15.1%   15.2%
3 letters 4 lives   21.6%   22.8%   23.3%   23.5%
3 letters 5 lives   30.3%   32.3%   32.8%   32.8%
3 letters 6 lives   40.5%   42%     42.3%   42.5%
3 letters 7 lives   50.2%   51.4%   51.8%   51.9%
3 letters 8 lives   59.6%   60.9%   61.1%   61.3%
3 letters 9 lives   68.7%   69.8%   70.4%   70.5%
3 letters 10 lives  77%     78.3%   78.9%   79.2%


4 letters 0 lives   0.8%    1%      1.1%    1.1%
4 letters 1 lives   3.7%    4.3%    4.4%    4.5%
4 letters 2 lives   9.1%    10.2%   10.6%   10.7%
4 letters 3 lives   18%     19.4%   20.1%   20.3%
4 letters 4 lives   29.6%   31.3%   32.1%   32.3%
4 letters 5 lives   42.2%   44.8%   45.6%   45.7%
4 letters 6 lives   55.2%   58.2%   59.1%   59.2%
4 letters 7 lives   68%     70.4%   71.1%   71.2%
4 letters 8 lives   78%     80.2%   81%     81.1%
4 letters 9 lives   85.9%   87.8%   88.4%   88.7%
4 letters 10 lives  92.1%   93.3%   93.8%   93.9%


5 letters 0 lives   1.5%    1.8%    1.9%    1.9%
5 letters 1 lives   6.1%    7.5%    7.9%    8%
5 letters 2 lives   15.9%   18.3%   18.9%   19.2%
5 letters 3 lives   30.1%   34.1%   34.8%   34.9%
5 letters 4 lives   47.7%   51.5%   52.3%   52.5%
5 letters 5 lives   64.3%   67.4%   68.3%   68.5%
5 letters 6 lives   77.6%   80.2%   80.6%   80.8%
5 letters 7 lives   86.9%   88.6%   89.2%   89.4%
5 letters 8 lives   92.8%   94.1%   94.4%   94.5%
5 letters 9 lives   96.4%   97.1%   97.3%   97.3%
5 letters 10 lives  98.2%   98.6%   98.8%   98.8%


6 letters 0 lives   3.2%    3.7%    3.9%    3.9%
6 letters 1 lives   12.6%   14.3%   14.9%   15%
6 letters 2 lives   29.2%   32.2%   32.8%   33%
6 letters 3 lives   50.1%   53.4%   54.2%   54.4%
6 letters 4 lives   69.2%   72.4%   73.1%   73.2%
6 letters 5 lives   83.1%   85.5%   85.9%   86.1%
6 letters 6 lives   91.5%   92.9%   93.2%   93.2%
6 letters 7 lives   95.8%   96.5%   96.7%   96.8%
6 letters 8 lives   97.9%   98.3%   98.4%   98.5%
...