人工智能迷宫寻路实验
『壹』 1、 迷宫寻路(递归程序设计和栈的应用) 【问题描述】 将一只老鼠从一个矩形无顶大盒子(
这里有篇博文基于栈和队列的迷宫问题求解基于栈和队列提供迷宫问题的解决方案,也有提供源码下载~也可以在这个网站上面搜索看看,刚才还搜到很多课设和毕设,都有源码和文档,一个干货满满的博客,有用的话记得点赞哦^_^
『贰』 简述人工智能在游戏中应用在哪些方面
比如说自动寻路,角色成长,攻击一个人采取什么样的攻击方式,等等...
我的理解是:就是某个行为的发生是角色自主决定的,就像是自己在思考。
『叁』 java 实现游戏怪物自动 移动,用人工智能控制,如点击游戏地图某一点,怪物就自动寻找路径过来。
你可以去看看A星(Astar)寻路
『肆』 人工智能 基于知识的智能体
先引用一段资料
------------------------------------------------------------------
第一类包括符号处理的方法。它们基于Newell和Simon的物理符号系统的假说。尽管不是所有人都赞同这一假说,但几乎大多数被称为“经典的人工智能”(即哲学家JohnHaugeland所谓的“出色的老式人工智能”或GOFAI)均在其指导之下。这类方法中,突出的方法是将逻辑操作应用于说明性知识库。最早由JohnMcCarthy的“点赞意见者”备忘录提出[McCarthy1958],这种风格的人工智能运用说明语句来表达问题域的“知识”,这些语句基于或实质上等同于一阶逻辑中的语句。采用逻辑推理可推导这种知识的结果。这种方法有许多变形,包括那些强调对逻辑语言中定义域的形式公理化的角色的变形。当遇到“真正的问题”,这一方法需要掌握问题域的足够知识,通常就称作基于知识的方法。许多系统的构建都运用了这些方法,在本书后面将会提到一些。
在大多数符号处理方法中,对需求行为的分析和为完成这一行为所做的机器合成要经过几个阶段。最高阶段是知识阶段,机器所需知识在这里说明。接下来是符号阶段,知识在这里以符号组织表示(例如列表可用列表处理语言LISP来描述),同时在这里说明这些组织的操作。接着,在更低级的阶段里实施符号处理。多数符号处理采用自上而下的设计方法,从知识阶段向下到符号和实施阶段
----------------------------------------------------------------
题目的意思就是叫你根据以知识为基础的原则解题
比如,程序由无限多个判断组成,这些判断的条件就是所谓的知识。像是刺激响应一样。比如,玩家一方派兵到了AI方的城下,这是一种情况,你应该为你的AI写下该怎么做的脚本。懂了吗?
举个例子
--------------------------------------------------------------
以图中的网格为例,两个机器人,分别命名为“black”和“white”。它们可以向其所在的行或列中的相邻一格交替地移动(比如说,white先移动),而且轮到其中一个时,它必须移动。假设white的目标是与black在同一格,而black的目标是避免发生这种情况。white就可建立一棵搜索树,在交替的级别上,black可能的行动也被考虑进去。我上传的图中画出了这棵搜索树的一部分。
为了选取最佳的起始动作,white需要分析这棵树来决定可能的结果——即:考虑black会阻止white实现此目标。在这种冲突的情况下,一个agent可能发现一步移动,使得无论对方如何移动,它都可达到目标。不过更常见的情况是,由于计算和时间的限制,无论哪方都不能找到一个动作以保证取得成功。本书将提供有限范围搜索方法,可用于在这种情况下找到合理的移动方式。在任何情况下,在决定了第一步之后,执行移动,考虑另一方的可能移动,然后在感知/计划/动作方式中重复计划过程。
这个网格例子是双agent、信息完全,零和(zero-sum)博奕的一个实例。此处所讨论的是,两个agent(称为博弈者)轮流移动,直到其中任何一方获胜(另一方因此失败),或双方和局。
每个博弈者完全熟悉环境及自己和对方可能的移动方式和影响(尽管每个博弈者都不知道另一方在任何情况下究竟会怎样移动)。研究这种博弈可使我们深入了解当有多个agent时,计划过程可能出现的更多的普遍问题—即使在这些agent的目标并不互相冲突时。
可以看出,有许多常见的博弈,包括国际象棋、西洋跳棋(dranght)和围棋,都属于这种类型。而且它们的程序已经编写得相当好——有的甚至可以达到参赛的水平。但此处,以并不十分有趣的井字博弈(Tic-Tac-Toe)为例,因为它简单,有利于分析搜索技巧。有些博弈(例如
西洋双陆棋,Backgammon)由于包含了概率因素而导致难以对它们进行分析。对许多博弈,特别像国际象棋这一类,通常都用图标来描述自己的状态空间,我们用8×8数组来记录黑白机器人在8×8网格中的不同位置;用算子表示博弈的移动,算子把一种状态描述转换为另一种描述,由一个开始节点和每个博弈者的算子隐式定义博弈图,照前面章节的
方法建立搜索树,但在选择第一步时要使用一些不同方法。
-----------------------------------------------------------------
加不加分我到不奢求,但我希望以后多交流,我也喜欢人工智能
『伍』 flash as3.0中,制作迷宫时如何使用摸墙法自动寻路 求代码
摸墙法?不是A*吗?
『陆』 A* 算法求解迷宫寻路问题
我不想说出来我是刷的
『柒』 求广度优先算法C++走迷宫程序,可以显示路径
一般迷宫寻路可以用递归的算法,或者用先进后出的栈数据结构实现
用的是深度优先的算法,可以寻找到走出迷宫的路径
但本题要求求出最短的路径,这就要使用广度优先的算法
一般在程序中需要用到先进先出的队列数据结构
下面是程序的代码,主要原理是用到
quei,quej和prep三个数组来构成队列
分别储存路径的行,列坐标和上一个节点在队列中的位置
大致算法如下,右三个嵌套的循环实现
首先是第一个节点进入队列
当队列不空(循环1)
{
遍历队列中每节点(循环2)
{
将八个方向能够走的节点加入队列(循环3)
}
旧的节点出列
}
#include<iostream>
#include<ctime>
usingnamespacestd;
#defineMAXNUM50
voidmain()
{
intm,n,i,j,x;
cout<<"请输入迷宫大小"<<endl;
cin>>m>>n;
intmaze[MAXNUM][MAXNUM];
srand((int)time(NULL));
for(i=0;i<=m+1;i++){
for(j=0;j<=n+1;j++){
if(i==0||j==0||i==m+1||j==n+1)
maze[i][j]=1;
else
{
x=rand()%1000;
if(x>700){maze[i][j]=1;}//控制矩阵中1的个数,太多1迷宫很容易走不通
else{maze[i][j]=0;}
}
cout<<maze[i][j]<<'';
}
cout<<endl;
}
//以上是输入和迷宫生成,一下是走迷宫
intmove[8][2]={0,1,1,0,0,-1,-1,0,1,1,-1,1,-1,-1,1,-1};
int*quei=newint[m*n];//储存行坐标队列
int*quej=newint[m*n];//储存列坐标队列
int*prep=newint[m*n];//储存之前一步在队列中的位置
inthead,rear,length;//队列头,队列尾,队列长度
head=0;rear=1;length=1;
quei[head]=1;quej[head]=1;prep[head]=-1;//入口位置进队列
intpos;//当前节点在队列中的位置,
intii,jj,ni,nj;//当前节点的坐标,新节点的坐标
intdir;//移动方向
if(maze[1][1]==1)length=0;//第一点就不能通过
elsemaze[1][1]=1;
while(length)//队列非空继续
{
for(pos=head;pos<head+length;pos++)//寻找这一层所有节点
{
ii=quei[pos];jj=quej[pos];//当前位置坐标
if(ii==m&&jj==n)break;
for(dir=0;dir<8;dir++)//寻找8个方向
{
ni=ii+move[dir][0];nj=jj+move[dir][1];//新坐标
if(maze[ni][nj]==0)//如果没有走过
{
quei[rear]=ni;quej[rear]=nj;prep[rear]=pos;//新节点入队
rear=rear+1;
maze[ni][nj]=1;//标记已经走过
}
}
}
if(ii==m&&jj==n)break;
head=head+length;
length=rear-head;//这一层节点出列
}
if(ii==m&&jj==n)
{
while(pos!=-1)
{
cout<<'('<<quei[pos]<<','<<quej[pos]<<')';
pos=prep[pos];
if(pos!=-1)cout<<',';
}
}
else
{
cout<<"THEREISNOPATH."<<endl;
}
delete[]quei;
delete[]quej;
delete[]prep;
}
『捌』 帮忙翻译几句话 英语。。。只有5财富值了。。。
Since artificial intelligence built last century fifty's, after several generations of people restless effort, now was used in all aspects of life, this is what makes it great. As an important branch of artificial intelligence --intelligence search problems, also let a person can not ignore, in the main content of paper, introced the basic theory of intelligent search problems,maze routing problem solution and so on.