人工智能课实践-一字棋问题
来源:互联网 发布:淘宝助手是什么 编辑:程序博客网 时间:2024/06/05 08:25
说明
本设计由matlab实现,模拟极大极小搜索过程,实现一字棋的第三步走法。
代码
主程序:
clearclcMAX=cell(1);tail=0;A=[0 0 -1;0 1 0;0 0 0];%A=[0 0 0;0 0 0;0 0 0];%A=[0 -1 0;0 1 0;0 0 0];[MAX,tail]=expand(MAX,tail,A);MIN=cell(1);tail2=0;for i=1:tail [MIN,tail2]=expand2(MIN,tail2,MAX{1,i}.S,i); tail2=0;endfor i=1:tail MAX{1,i}.f=getMin(MIN,i);endmax=MAX{1,1}.f;result=1;for i=2:tail if MAX{1,i}.f>max result=i; max=MAX{1,i}.f; endendMAX{1,result}.S
expend.m
function [MAX,tail] = expand(MAX,tail,A)n=tail; for i=1:3 for j=1:3 if A(i,j)==0 T=A; T(i,j)=1; tail=tail+1; MAX{1,tail}.S=T; end end end
expend2.m
function [MIN,tail2]=expand2(MIN,tail2,A,l)for i=1:3 for j=1:3 if A(i,j)==0 T=A; T(i,j)=-1; tail2=tail2+1; MIN{l,tail2}.S=T; MIN{l,tail2}.f=f(T); end endend
f.m
function n=f(A)n=0;for i=1:3 if A(i,1)~=-1&&A(i,2)~=-1&&A(i,3)~=-1 n=n+1; end if A(1,i)~=-1&&A(2,i)~=-1&&A(3,i)~=-1 n=n+1; end if A(i,1)~=1&&A(i,2)~=1&&A(i,3)~=1 n=n-1; end if A(1,i)~=1&&A(2,i)~=1&&A(3,i)~=1 n=n-1; endendif A(1,1)~=-1&&A(2,2)~=-1&&A(3,3)~=-1 n=n+1;endif A(1,3)~=-1&&A(2,2)~=-1&&A(3,1)~=-1 n=n+1;endif A(1,1)~=1&&A(2,2)~=1&&A(3,3)~=1 n=n-1;endif A(1,3)~=1&&A(2,2)~=1&&A(3,1)~=1 n=n-1;end
getMin.m
function min=getMin(MIN,i)min=MIN{i,1}.f;for j=2:6 if MIN{i,j}.f<min min=MIN{i,j}.f; endend
阅读全文
0 0
- 人工智能课实践-一字棋问题
- 人工智能课程实践-八数码问题
- [人工智能实践]爬山法,分支界限法求解皇后问题
- 人工智能开发实践记录
- 人工智能实践教程(一)
- 人工智能实践教程(二)
- 人工智能实践教程(三)
- 人工智能实践教程(四)
- 人工智能的认识论问题
- [人工智能]八数码问题
- 人工智能-八数码问题
- 人工智能经典问题搜集
- 人工智能权限问题
- 【人工智能】农夫过河问题
- 人工智能的伦理问题
- 人工智能的伦理问题
- HTML5人工智能基础及OO实践
- 【实践课】PB问题记录
- poj3278-Catch That Cow
- ssh 公钥私钥认证原理
- 触发器
- 802.11n协议帧格式详解
- 兼容性测试实习
- 人工智能课实践-一字棋问题
- 将十进制数字转换为二进制
- 四、4、数组方法
- 八大算法思想(二)------------------递推算法
- py实现网关功能
- think python 课后题实现
- 同步代码块解决线程安全
- [BZOJ3672][NOI2014]购票-点分治-CDQ分治-斜率优化DP
- 802.11协议帧基本格式详解