![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
人工智能
jxandrew
这个作者很懒,什么都没留下…
展开
-
数据挖掘算法的空间复杂度与时间复杂度分析
刚才在知乎上看到一个问空间复杂度和时间复杂度的问题,结果把自己也搞晕了。因为我们平常讨论问题复杂度的时候都是说时间复杂度的,对空间复杂度确实没怎么仔细考虑过,毕竟现在64位的操作系统理论上所能提供的存储空间高达2的64次方,怎么搞定是操作系统的事。但这么拿出来讨论,好像确实还需要仔细思量一下。当时把自己搞晕的原因是开始我下意识的认为:空间复杂度一般不可能太高,因为这是算法,而算法的空间开销原创 2014-02-11 14:17:36 · 1513 阅读 · 0 评论 -
斗地主之推测
经过前面所说的调整和改进,终于进入了打牌水平可随规则数增加的正轨。但不久又出问题了:(这个问题的现象很简单,解决起来却很复杂:跳打。比如地主出了张2,下家在不清楚小鬼分布的情况下就直接出了大鬼,结果就导致地主的小鬼升级了。粗看起来应该也比较好解决,增加点规则来判断下小鬼的分布情况就是了。比如:如果地主出了二,最后是门板用大鬼拦截,则说明小鬼都在地主手中。我们之前也曾讨论过判断问题,比如地主各牌型的强原创 2017-11-01 08:50:50 · 596 阅读 · 0 评论 -
斗地主之目前的问题
在具备了初始的入门级打牌能力,验证了系统的可行性之后,剩下的就应该是努力提高系统打牌的水平了。由于形成初始打牌能力只用了80多条规则,而且都是非常粗略的规则,所以提高打牌能力的思路似乎比较简单:只要提高规则的精细化程度,使之尽量覆盖到各种情况就好了。所以笔者之后就一直在重复:打牌、发现不够精细的地方、增加规则覆盖这种情况。直到某一天我却很尴尬的从这种循环中发现了个现象:打牌规则从80多条,飞速增加到原创 2017-10-11 08:21:16 · 666 阅读 · 0 评论 -
斗地主之动态评估
在其他玩家出牌之后,我们还需要进行动态评估,以便于在下一次出牌时可以做出尽量正确的选择。想做出正确的判断有两个前提:一是收集到足够的、准确的信息;二是拥有丰富的知识对收集到的信息进行解读以得到对当前局面的准确理解。而斗地主作为一种游戏,所有的出牌信息都是公开的、准确的,所以我们就免除了信息收集并判断其准确性的工作了,因此,我们主要解决的工作是如何对这些信息进行解读。我们在讨论初始评估的目的时说过:预原创 2017-09-13 08:30:11 · 436 阅读 · 0 评论 -
斗地主之出牌
总算可以出牌了:)出牌又可以分为两类:主动出牌,即牌权在自己手上,可以自由选择一手牌打出去被动出牌,即其他家出了手牌,则从大于这手牌的牌手中选择一个,当然还可以不要出牌其实是一个很复杂的事情,因为我手上可能恰好有合适的牌手,但也可能没有合适的牌手,那我是否需要拆牌呢?作为地主我是否该强行终止农民的做桥过程呢?作为下家我是该顺牌呢,还是该放给对家过呢?所以之前有个兄弟评论我关于整理牌型的文章时说原创 2017-09-06 08:25:30 · 1169 阅读 · 0 评论 -
斗地主之初始评估与叫牌
有了牌型,我们还需要对牌型进行评估。评估的目的是判明各牌手、牌型的强弱,以决定如何打牌。评估包括两个阶段,第一阶段是牌型整理好之后、出牌之前的初始评估,以建立初始的基本判断;第二阶段是各玩家(包括自己在内)每出一手牌之后的动态评估,也就是调整之前的评估或重建最新的评估。初始评估包括了三个层面:牌手的评估、牌型的评估、牌面的评估。牌手的评估牌手的评估主要是对每手牌都进行强弱的判断。包括两个步骤:首先是原创 2017-08-23 09:06:31 · 1021 阅读 · 0 评论 -
斗地主之用蚁群算法整理牌型-如何进行牌力估计
我们在前面讲到过,各牌手的牌力估计就是我们在用蚁群算法构造最优牌型时的启发性知识。启发性知识其实就是我们利用自己的经验对事物做出的判优性评估,或者说就是对事物价值的判断。原则上,应用蚁群算法需要用到两类启发性的知识:单步择优:用来在单只蚂蚁决定下一步如何走时各选择的加权概率,其决定了优化方向结构评分:单步最优未必全局最优,所以当单只蚂蚁围绕每轮次的优胜解爬出一个新解时,对这个解的质量需做一个总体原创 2017-06-28 09:52:56 · 2305 阅读 · 0 评论 -
斗地主之用蚁群算法整理牌型-几个关键点的处理
牌型选择和其它问题的差异性分析蚁群算法是由仿生蚂蚁寻食发展而来,所以其很自然的就以寻找最短路径的旅行家问题为研究对象。而旅行家问题有几个特点:每一步都是从当前所在城市的所有邻接城市中挑选下一步的目标城市算法的判优指标(即解评分)是总距离最短单步择优的启发性信息是两邻接城市之间的路径长度信息素就是本轮次最优解的路径总长度/路径中的城市数对照我们的牌型选择问题,就存在一定的差异了:牌型选择的原创 2017-07-05 08:15:31 · 2836 阅读 · 2 评论 -
斗地主之用蚁群算法整理牌型-概述
前面我们介绍了提取人类知识然后用模糊推理来进行模糊控制。现在我们尝试下用人工智能来做斗地主。所选择的玩法规则是上海三打一,即两副牌、四个玩家。根据该规则,我们可以将整个打牌过程分为:洗牌:这个是最简单的,随机生成108张牌发牌:将生成的牌的前100张按顺序发给四个玩家,留8张暗牌叫牌:玩家评估自己手中的25张牌,计算叫牌牌力,并根据之前是否有玩家叫牌,确定自己的叫牌档数整理牌型:根据自己手中原创 2017-06-21 11:02:33 · 1121 阅读 · 0 评论 -
汉语语义理解
汉语语义理解对IT来说,其实是个伪命题。汉语的语义理解其实就是围绕概念展开,可人对概念的理解是以人的感觉为基础的,计算机又没有感觉,它根本就没有办法理解“甜”、“热”等等,当然我们可以接n多的各种各样的传感器,告诉计算机通过哪个接口接收的多大的信号就代表了某个概念。但遗憾的是,人类语言中的很多概念都是模糊的,而目前为止计算机还都是依赖于精确数值的。要想在这个角度上完全拟人化的让计算机来理解语义是不原创 2014-07-20 16:44:56 · 3220 阅读 · 0 评论 -
套裁问题之踩坑记
前些天一个老哥要我做个板材套裁的东东,我看了下觉得很简单,结果一脚就踩了个大坑。套裁就是在板材加工之前如何裁板,就是从指定规格的原材中如何最小消耗的裁出需要数量的各种板材。我一想,这不就是个背包问题吗,结果做起来才发现想得太简单了,在第一步就晕了:如何找出所有可用的背包(即如何放置待切割板材)。套裁问题和背包问题最大的区别就是面积之和上能放下的未必就能符合放入的矩形不能重合的约束,所以套裁...原创 2018-03-13 09:06:45 · 848 阅读 · 0 评论