这是背景...在我的空闲时间我正在设计一个名为Staker的炮兵战游戏(灵感来自旧的BASIC游戏Tank Wars和Scorched Earth),我正在用MATLAB编程.您的第一个想法可能是"为什么选择MATLAB?还有很多其他语言/软件包更适合游戏设计." 你会是对的.然而,我是一个笨蛋,我有兴趣学习如何从头开始设计游戏的具体细节,所以我不一定要使用任何预制模块.此外,我已经使用MATLAB多年了,我喜欢用其他人没有真正尝试做的事情的挑战.
现在解决手头的问题:我想加入AI,这样玩家就可以对抗电脑了.我刚开始考虑如何设计算法来选择方位角,仰角和射弹速度来击中目标,然后每回合调整一次.我觉得也许我一直在思考这个问题并试图让AI在开始时过于复杂,所以我想我会暂停并向社区询问有关如何设计算法的想法.
一些具体问题:
您建议我查看AI设计的具体参考吗?
你会设计AI玩家以连续的方式改变难度(难度为0(简单)到1(硬),所有仍然使用相同的通用算法)或者你会为离散数量的AI玩家设计特定的算法(就像一个随机方向射击的易敌,或者是一个能够解释风的影响的敌人?
你会从什么样的数学算法(伪代码描述)开始?
一些额外的信息:我用来模拟抛射物运动的模型包含流体阻力和风的影响."流体"可以是空气或水.在空气中,基于一些简单的大气模型,空气密度(以及阻力的影响)随着地面高度的变化而变化.在水中,阻力非常大,以至于弹丸通常需要额外的推力.换句话说,射弹可能受到除重力之外的力的影响.
我试图了解各种类型的机器学习算法之间的差异.
据我所知,进化算法的实现与神经网络的实现完全不同.
然而,它们似乎都在确定潜在噪声训练/历史数据集的输入和输出之间的相关性.
从定性的角度来看,与进化算法相比,是否有问题域是神经网络的更好目标?
我已经浏览了一些建议以互补的方式使用它们的文章.有一个很好的用例的例子吗?
artificial-intelligence machine-learning neural-network evolutionary-algorithm
在我的计算机科学学习期间,我爱上了人工智能的许多方面.从专家系统,神经网络到数据挖掘(分类).我想知道,如果我要专业地改变这种学术热情,那里有哪种人工智能相关的工作?
我有时会编写程序来玩棋盘游戏.基本策略是标准的alpha-beta修剪或类似的搜索,有时通过终结游戏或开放的常用方法来增强.我主要使用国际象棋变体,所以当需要选择我的评估功能时,我会使用基本的国际象棋评估功能.
但是,现在我正在编写一个程序来玩一个全新的棋盘游戏.我如何选择一个好的甚至是体面的评估函数?
主要的挑战是相同的棋子总是在棋盘上,因此通常的材料功能不会根据位置而改变,并且游戏的播放次数不到一千次左右,所以人类不一定玩得太多还没有给出见解.(PS.我考虑过MoGo方法,但随机游戏不太可能终止.)
游戏细节:游戏在10×10的棋盘上进行,每侧固定6个棋盘.这些作品具有一定的运动规则,并以某种方式相互作用,但没有任何一块被捕获.游戏的目标是在棋盘上的某些特殊方块中放置足够的棋子.计算机程序的目标是提供与当前人类玩家竞争或更好的玩家.
artificial-intelligence machine-learning game-theory evaluation-function alpha-beta-pruning
我正在开发的一个开发人员正在开发一个程序来分析路面图像,以找到路面裂缝.对于他的程序找到的每个裂缝,它会在一个文件中生成一个条目,告诉我哪些像素组成了特定的裂缝.他的软件有两个问题:
1)它产生几个误报
2)如果他发现裂缝,他只能找到它的一小部分,并将这些部分表示为单独的裂缝.
我的工作是编写能够读取这些数据,分析数据并告知误报和实际裂缝之间差异的软件.我还需要确定如何将裂缝的所有小部分组合在一起.
我已经尝试了各种方法来过滤数据以消除误报,并且已经使用神经网络在有限的成功程度上将裂缝组合在一起.我知道会有错误,但截至目前,存在太多错误.有没有人对非AI专家有任何见解,以了解完成任务或了解更多信息的最佳方法?我应该阅读什么类型的书,或者我应该选择什么样的课程?
编辑我的问题更多的是关于如何注意我的同事数据中的模式并将这些模式识别为实际裂缝.这是我所关注的更高级逻辑,而不是低级逻辑.
编辑实际上,至少需要20个样本图像来准确表示我正在使用的数据.它变化很大.但我在这里,这里和这里都有一个样本.这些图像已经由我的同事处理.红色,蓝色和绿色数据是我必须分类的(红色代表暗裂纹,蓝色代表轻微裂纹,绿色代表宽/密封裂纹).
pattern-recognition artificial-intelligence image-processing data-analysis
我打算用Java开发程序来提供诊断.数据集分为两部分,一部分用于培训,另一部分用于测试.我的程序应该学习从训练数据中分类(BTW其中包含30个问题的答案,每个新栏目,新行中的每个记录最后一栏将被诊断为0或1,在数据诊断栏的测试部分将为空 - 数据集包含大约1000条记录),然后在测试部分数据时进行预测:/
我从来没有做过任何类似的事情,所以我会感谢有关解决类似问题的任何建议或信息.
我在考虑Java机器学习库或Java数据挖掘包,但我不确定它是否正确的方向......?我仍然不确定如何应对这一挑战......
请指教.
祝一切顺利!
java groovy artificial-intelligence machine-learning data-mining
建议用于解决游戏Globs的算法和数据结构(http://www.deadwhale.com/play.php?game=131).以一种令人讨厌的方式非常有趣.
根据N(网格的大小)(N> = 14)来说明方法的时空复杂度(big-O).具有低复杂度的足够有效的算法是优选的.
(MatrixFrog正确地指出这个游戏也被称为FloodIt,Smashery在3个月之前在他引用的链接中给出了一个解决方案.你所有的人都建议修剪/贪婪,只有1个前瞻,这给出了不理想的解决方案.)
游戏生成nxn节点的随机方格,其中每个节点着色为六种颜色之一(Grn = 1,Ylw = 2,红色= 3,蓝色= 4,Pur = 5,Orn = 6).1级有9x9网格,然后n增加每个级别,最多14级.每个级别你最多可以占用25级,否则你输了.在每个回合中,您选择将左上方节点更改为例如Grn-> Red的颜色,以便将新颜色的任何连接的相邻(水平/垂直)节点同化为形状,并将每个节点同化的1 pt添加到你的分数.评分目标是尽可能少地完成每个网格,例如,如果你在16转中完成,那么你的9个未使用的移动=> 2*9倍数乘以你的总累积分数.
显然有很多方法可以解析这个问题,而使用14x14网格的递归回溯的默认选择是一个可行的竞争者; 这适用于哪些其他类型的数据结构?一个*?不要挂在最优,我想知道是否有一个"足够好"的算法.
(我认为这可能是一个有趣的项目,可以编写一个机器人并获得愚蠢的高分.虽然我的肉体自我得到了3.5E + 12.)
artificial-intelligence graph time-complexity data-structures
我引用人工智能:现代方法:
深度优先搜索的属性很大程度上取决于是使用图搜索还是树搜索版本.避免重复状态和冗余路径的图搜索版本在有限状态空间中完成,因为它最终会扩展每个节点.另一方面,树搜索版本并不完整[...].可以在没有额外内存成本的情况下修改深度优先树搜索,以便它检查新状态与从根到当前节点的路径上的状态; 这避免了有限状态空间中的无限循环,但不能避免冗余路径的扩散.
我不明白图搜索是如何完成的,树搜索不是,树是一个特定的图.
此外,我没有明确区分"无限循环"和"冗余路径"......
愿有人向我解释一下吗?
PS.对于有这本书的人来说,这是第86页(第3版).
tree artificial-intelligence graph-theory graph-traversal search-tree
我正在使用反向传播技术创建一个神经网络进行学习.
我知道我们需要找到所用激活函数的导数.我正在使用标准的sigmoid函数
f(x) = 1 / (1 + e^(-x))
Run Code Online (Sandbox Code Playgroud)
而且我已经看到它的衍生物了
dy/dx = f(x)' = f(x) * (1 - f(x))
Run Code Online (Sandbox Code Playgroud)
这可能是一个愚蠢的问题,但这是否意味着我们必须在等式期间将x通过sigmoid函数两次,因此它将扩展为
dy/dx = f(x)' = 1 / (1 + e^(-x)) * (1 - (1 / (1 + e^(-x))))
Run Code Online (Sandbox Code Playgroud)
或者它只是采取已经计算的输出f(x),即神经元的输出,并将该值替换为f(x)?
algorithm math artificial-intelligence calculus neural-network
经典的8拼图属于滑块系列.我的书(人工智能Stuart Russell和peter Norwig的现代方法)说8-puzzle有9个/ 2个可能的状态.但为什么/ 2?你怎么得到这个?
algorithm ×2
data-mining ×2
calculus ×1
game-theory ×1
graph ×1
graph-theory ×1
groovy ×1
java ×1
math ×1
search-tree ×1
tree ×1