roo*_*ook 107 security poker artificial-intelligence
有一个名为PokerPirate的新开源扑克机器人.我对Web应用程序可以检测/阻止/击败扑克机器人的任何创造性方式感兴趣.(这是一个纯粹的学术讨论,与PokerPirate写的一样精神.)
Tom*_*len 209
从服务器端角度击败僵尸程序
许多在线扑克网站使用由可疑活动触发的弹出式 Captcha输入.
一些扑克网站监控播放时间和模式(即,最糟糕的情况是连续播放24x7和16个桌面的玩家,这是一个非常小的机会,这是一个真正的人类.(但是有些玩家确实有能力玩很大的手没有经验的眼睛看起来像机器人的体积)
扔它毛刺.如果您怀疑玩家是机器人,请将所有扑克牌位置从屏幕上的几个像素上移开,为1/100指针制作不同的颜色/图案/图案并查看它是否会抛出它们.如果它无法屏幕抓取,它将超时所有的决定,这是非常确凿的机器人证据.
时机告诉我,如果计算机播放器一次只能以毫秒为单位响应选项而不考虑大型决策,这可能是可疑的
自我监控.扑克网站 pokertableratings.com数据挖掘了很多大型网站.它有一个混合的接待,有些喜欢透明度,有些人讨厌它.然而,有一个好处是,有可能的玩家统计数据(VPIP百分比,PFR百分比是可以记录的大量可量化统计数据中的一小部分)导致作弊的结论
人工智能 分类网络可以监控可量化的统计数据,以对流氓作弊或机器人玩家进行分类.
当在线扑克是一个相当新的实体时,有传言和有限的证据表明一些扑克客户端软件可疑玩家桌面的屏幕截图,看看他们是否正在运行帮助他们的程序.然而(即使这是真的)运行两台计算机来独立执行这两项任务就可以解决这个问题.
有些机器人可能在设计上非常简单,如果你能发现他们的游戏风格,看看他们在相同的情况下是如何行动的(请注意,只有使用非常复杂的机器人才能实现非常基本的策略),你可以合理地快速发现它们.
程序功能的不一致使用将倾向于玩家是真实的.举例来说,游戏中的许多扑克网站都有一个'折叠,当它轮到我'时按钮.如果你得到了一手牌并等待其他球员决定做什么,那么很多球员都会检查这个按钮.机器人可以使用这些按钮.不同的是,机器人将处于使用频率的极限,他们可能会一直使用它们,或者根本不使用它们.玩家通常可以按"自动翻转",但有时他们甚至会在最有利的条件下点击折叠.例如,一个真正的玩家通常按下自动折叠,但这次他们没有.在没有其他球员表演的情况下,它被折叠到他们身边,现在他们已经获得了最有利的条件.现在,如果他们按下折叠,他们会非常倾向于从一开始就按下自动装载.这是不一致/未经优化/随机行为,与人类一致.时间告知何时点击这些功能是其他指标.重要的是要认识到这些都是指标,而不是确凿的证据.所有这些行为指标都可以轻松模拟.
从玩家角度击败僵尸程序
尝试使用像PokerTracker这样的软件记录和收集尽可能多的数据
尝试识别其游戏风格的模式
尝试找到与pot /#玩家成比例的赌注大小与手牌强度之间的关系
尝试计算其手牌范围.一个低赌注的机器人可能不会经常虚张声势,以至于任何重大的战略问题,因此构建高度准确的手牌范围应该不会太棘手.
通过数据分析和反复试验尝试在游戏中发现泄漏一旦发现泄漏/模式,尝试重复利用它们并避免任何其他情况.
在人类能够适应的情况下,机器人可能不那么适合,并且人类通过倾斜链加权,结果导致思考和挫折,机器人则不然.你可以利用这个优势.
所以从本质上讲,如果机器人足够聪明地模拟决策过程中的实时定时延迟,并且创造合理和逼真的游戏模式,那么你无法阻止它.抛出一些随机条件和简单的反向聊天(扑克玩家的词典通常相当有限),你自己就是一个非常难以察觉的AI玩家.
机器人可能做些什么来避免被发现
避免检测的关键是从尽可能多的角度思考问题.您试图在一个非常小且受限制的世界中模拟智能人类行为.您可以运行的大多数行为模拟都是相当明显的,但是您的机器人越不一致和不可预测,发现它的可能性就越小.
创建逼真的播放时间表(即,每周3-5次,每个会话4小时,奇数周在这里和那里关闭).
运行程序以在单独的计算机上做出决策,控制僵尸计算机以防任何站点屏幕捕获.
随机动作时间(不要立即行动,每次动作等待0.5-2秒)
花时间做出重大决定.如果决定是临界的,那么计算决定然后等待一段时间来模拟思想.
随机使用客户端软件功能.通过点击所有桌子上的"处理我"按钮来模拟马桶休息时间,并且偶尔休息5分钟.
模拟聊天,扑克聊天往往是非常简单的一个衬垫,从来没有经常讨论或辩论.在适当的可检测时刻说"不幸"或"stfu"之类的东西.甚至让编码员监控他的机器人并在执行期间进行聊天.
确保鼠标移动是现实的.如果表格是 平铺的,请不要在左上方的表格做出决定,然后立即在右下方的表格上进行制作.大多数网站软件现在提供键盘快捷键,这些可能更适合用于鼠标移动.
做一些非常简单的AI分类器不会期待的事情.例如,每年一次用简单的非复杂查询打电话("帮助我今天无法登录!"或"互联网已关闭!")不太可能有很大的不同,但如果为此工作的人扑克公司很聪明,他们可能已经认识到它是一个可靠的指标.
零星失败的会议.倾斜可以被模拟,机器人可以玩得很糟糕,并且时不时地损失一些钱. 每个人都在某种程度上倾斜.
值得关注的是,扑克网站并不特别关心机器人是否在他们的网络上运行,每个玩家都有大量的佣金,从理论上讲,从纯粹愤世嫉俗的商业角度来看,如果被发现,唯一的缺点就是糟糕的新闻.
即使已经发现了明显的攻击,(搜索谷歌的Cereus网络丑闻或绝对扑克丑闻,这是相当令人震惊的),该业务似乎生存并保持健康,只有失去受过良好教育和赢得的球员(其中没有很多).这增加了不太熟练的玩家对网络的比例,从而吸引了优秀的玩家.这是一个很好的老式捕获22.适当的市场监管的一个很好的论据.
值得注意的是,每场比赛都存在纳什均衡.在线扑克有一个时间表,它现在运行的方式,它将不得不进入更社交(摄像头/ voip)的东西,任何人都可以信任它(如果人们相信它),因为机器人最终将以数学方式接管优越,心理免疫.由学术界和/或资本利益推动的扑克AI社区非常活跃.
更简单的扑克游戏,如限制扑克,在小型搜索空间中几乎已经解决了.更复杂的游戏版本(无限制变化/底池限注奥马哈等)对于人工玩家来说只是时间问题.
结论
在行业转向更具社交性的在线游戏设置之前,无法检测到复杂的机器人.这不会解决问题,但肯定会让机器人更难以在较低级别获胜.我们已经看到随着PKR,3D的发布以及更具交互性,更少手动每小时版本的其他网站的轻微转变,其中多功能对于玩家来说是非常棘手的.
这个问题也受到行业性质的影响,另一个原因就是坚持声誉越来越高的声誉已经越来越多地融入其商业模式的更大的声誉更高的网站.缺乏透明度和假装的跨国性并没有帮助这一事业.
目前僵尸开发人员面临的真正挑战是编写一个获胜的算法,这并不像看起来那么简单.每个玩扑克的人都认为自己很好,赢球或者是一个收支平衡的球员,这根本不是真的.这就是为什么人们继续玩,即使他们因为幻想他们只是运气不好而亏钱,或者他们的游戏风格被误解了.人类心理学的这种傲慢和弱点使得玩家失去了大量的金钱,这也是扑克仍能盈利的根本原因.
扑克是一个非常复杂的游戏,需要花费数年的时间来擅长(旧的格言仍然是真实的,"十分钟学习,一辈子要掌握").从长远来看,运气元素是非常有限的.
像任何其他职业一样,为了获得好处,你需要学习数百小时,并且需要数千人.你会理解经验不足的玩家不会理解的东西,发现经验不足的东西不会发现.学习持续了很长时间,也许比我们生活的时间更长.这是一场复杂的比赛.
你经常在电视上看到一个高风险的现金游戏,并听到有人大喊"这是一个轻松的电话!" 因此,业余爱好者真的不理解或认识到游戏中的复杂性,真正相信这个级别的游戏仍然是最终的简单.事实并非如此.那些高赌注的球员(很多时候)都在电视上,因为他们真的非常 真实好.也可能还有一个复杂的元游戏,我们的玩家无法识别它的存在.amatuer不会站在国际象棋大师身上并大声喊叫他们移动他们的骑士,但由于扑克的动态是不完美的信息,他们的心理使他们真正相信他们所说的.就像国际象棋一样,决策可能是复杂的,敏感的,对整个游戏来说非常重要.随着游戏复杂性的增加,琐碎的决定不再那么微不足道,因为你的对手期待它们.
一旦你将你的机器人或你的游戏移动到水平,你就不可避免地会遇到更多熟练的玩家.然后,你的策略的复杂性将不得不提升到一个新的水平,考虑到表格图像,范围平衡,复杂和智能的虚张声势(IE不仅仅是在弱点虚张声势,在范围虚张声势,在图像上虚张声势等),更详细的手部范围分析.当你向上移动时,它真的是一个不同的游戏.
一旦获得了一个成功的机器人,毫无疑问,编码器将拥有足够的技能,知识和常识来以不可检测的方式应用机器人.这对他们来说是微不足道的.
所以你真的无能为力.如果您想在线玩游戏,请了解风险.永远不要冒险超出您的承受能力,并尝试保持准确的支出记录,这样您就不会对您自己的能力进行误导,不切实际且最终具有破坏性的估计.有止损,如果你没有优势就离开桌子,或者你不确定自己是否有优势!当然,如果每个人都这样做,没有人会赢,那就是游戏的掠夺性和剥削性,这就是竞争的来源,这就是让它变得有趣的地方.
有三个不同的领域需要考虑.机器人必须弄清楚表的状态,做出决定,并将决定发送回主机.
如果以某种可识别的形式通过电线发送或作为标准文本显示给用户,则更容易确定表的状态.首先,使图像识别成为唯一的选择,然后尽可能地使其成为可能.以3D显示卡片并缓慢更改卡片的方向和位置.在卡片前面制作小闪烁或烟花,这样任何给定的屏幕截图都可能难以辨认,但确定它需要一段时间.
做出决定没有什么可做的.试图决定是否由人做出决定就像是一个几乎没有信息的图灵测试.
通过再次使用3D,可以使发送回来的决定变得困难.难以直接发送数据包或以其他方式提交决策,而不是用鼠标单击按钮.在执行每个操作时稍微移动按钮,或者在等待决定时让它们在游戏区域周围缓慢浮动.禁用任何允许查找或操作按钮的辅助功能类型功能.
像几乎所有曾经写过的扑克机器人一样,PokerPirate通过屏幕抓取和模拟Windows扑克应用程序中的鼠标点击来工作.因此,系统的关键是它能够识别游戏中的物体并在窗口中进行动作.尽管在扑克中可能很聪明,但这些基本操作可能仍有问题.
因此,阻止这种机器人的明显方法包括:
小智 5
理想情况下,唯一有效的解决方案是创建一个蜜罐逻辑,通过提供有利于机器人最理想的行为响应的更有利的逻辑条件的诱惑来吸引一个参与的机器人.一旦机器人参与了蜜罐,你必须不断地提供机器人条件,它更喜欢假设机器人没有设置超时.然后可以测量,记录和研究机器人.除了机器人之外,如果机器人没有通过TOR连接,您还可以将网络和会话数据隔离开来进行研究.
在这种情况下,适合于区分机器人和人类的确定性考虑因素不那么严重,但是,在识别机器人行为时的确定性考虑变得更加严重.不幸的是,机器人的所有者可以对机器人进行更改以防止这种识别,如果该所有者知道蜜罐状况或其逻辑考虑.