资源简介
实验一 掌握符号主义推理原理,编程实现置换合一
实验二 状态空间搜索:传教士与野人问题求解
实验三 启发式搜索算法:斑马属谁问题求解
实验四 ID3算法:客户分类与预测
实验一 掌握符号主义推理原理,编程实现置换合一
实验二 状态空间搜索:传教士与野人问题求解
实验三 启发式搜索算法:斑马属谁问题求解
实验四 ID3算法:客户分类与预测
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=3002;
set se1se2;
int IBV[8]={01234567};
int FPV[120]fnum;
int LPV[25]lnum;
struct Example{
int IB;
int FP;
int LP;
int res;
Example(int IB=0int FP=0int LP=0int res=0):
IB(IB)FP(FP)LP(LP)res(res){}
}example[maxn];
int num;
struct Node{
bool isleaf; /**是否是叶子节点**/
int responded; /**类别**/
int property; /**属性**/
struct Node* son; /**属性值对应的孩子节点**/
int Size; /**包含孩子节点数大小**/
};
class ID3{
private:
Node *root; /**根节点**/
int record[maxn]vis[3]; /**record标记每条记录vis标记每种属性**/
int PE[120]NE[120]; /**PE记录正例个数NE记录反例个数**/
public:
ID3(){
root=(Node *)malloc(sizeof(Node));
root->son=NULL;
root->Size=0;
memset(record0sizeof(record));
memset(vis0sizeof(vis));
}
void Destroy(Node* r){
if(r->son!=NULL){
for(int i=0;iSize;i++) Destroy(&(r->son[i]));
free(r->son);
}
}
~ID3(){
Destroy(root);
free(root);
}
/**============================================**/
/**计算正例和反例的个数**/
void CalExample(int stepint& aint& b){
for(int i=0;i if(record[i]!=step) continue;
if(example[i].res==0) a++;
else b++;
}
}
/**设置标记**/
void SetRecord(int chooseint iint d){
for(int j=0;j if(choose==0&&example[j].IB==IBV[i]) record[j]+=d;
else if(choose==1&&example[j].FP==FPV[i]) record[j]+=d;
else if(choose==2&&example[j].LP==LPV[i]) record[j]+=d;
}
}
/**计算熵值**/
double CalQ(int pint n){
if(p==0||n==0) return 0;
double a=p*1.0/(p+n);
double b=n*1.0/(p+n);
return -a*log2(a)-b*log2(b);
}
/**二分查找属性值对应的下标**/
int BIS(int keyint *Aint n){
int x=0y=n-1mid;
while(x<=y){
mid=(x+y)/2;
if(key==A[mid]) return mid;
else if(key else x=mid+1;
}
return -1;
}
/**计算E(pini)之和**/
double CalE(int chooseint stepint aint b){
memset(PE0sizeof(PE));
memset(NE0sizeof(NE));
for(int j=0;j if(record[j]!=step) continue;
int pos;
if(choose==0) pos=BIS(example[j].IBIBV8);
else if(choose==1) pos=BIS(example[j].FPFPVfnum);
else pos=BIS(example[j].LPLPVlnum);
if(pos!=-1&&example[j].res==1) PE[pos]++;
else if(pos!=-1&&example[j].res==0) NE[pos]++;
}
int Size;
if(choose==0) Size=8;
else if(choose==1) Size=fnum;
else Size=lnum;
double ret=0;
for(int i=0;i ret+=1.0*(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-03-12 09:43 人工智能实验\
文件 475342 2018-05-27 19:30 人工智能实验\2016 《人工智能导论_实验指导》.doc
目录 0 2018-06-20 22:25 人工智能实验\Debug\
文件 66560 2018-06-20 22:27 人工智能实验\Debug\vc60.idb
文件 53248 2018-06-20 22:25 人工智能实验\Debug\vc60.pdb
文件 184413 2018-06-20 22:27 人工智能实验\Debug\斑马归谁问题.exe
文件 183264 2018-06-20 22:27 人工智能实验\Debug\斑马归谁问题.ilk
文件 10473 2018-06-20 22:27 人工智能实验\Debug\斑马归谁问题.obj
文件 1140588 2018-06-20 22:25 人工智能实验\Debug\斑马归谁问题.pch
文件 361472 2018-06-20 22:25 人工智能实验\Debug\斑马归谁问题.pdb
文件 6331 2017-05-24 18:47 人工智能实验\ID3.cpp
文件 220943 2018-06-21 09:03 人工智能实验\ID3.exe
文件 31101 2018-06-21 09:03 人工智能实验\ID3.o
文件 57000 2017-05-21 21:49 人工智能实验\in.txt
文件 3973 2002-11-02 06:49 人工智能实验\river.CPP
文件 2339 2017-05-20 14:56 人工智能实验\传教士与野人.cpp
文件 28803 2018-06-20 21:26 人工智能实验\传教士与野人.exe
文件 2705 2018-06-20 21:26 人工智能实验\传教士与野人.o
文件 3326 2015-05-26 17:19 人工智能实验\国籍房子宠物.cpp
文件 75719 2018-06-21 09:26 人工智能实验\截图.docx
文件 46514 2018-06-21 09:27 人工智能实验\截图.pdf
文件 4225 2017-05-23 22:38 人工智能实验\斑马归谁问题 - 副本.cpp
文件 4248 2017-05-28 22:11 人工智能实验\斑马归谁问题.cpp
文件 3475 2017-05-28 22:08 人工智能实验\斑马归谁问题.dsp
文件 532 2017-05-28 22:09 人工智能实验\斑马归谁问题.dsw
文件 29685 2017-05-24 18:46 人工智能实验\斑马归谁问题.exe
文件 41984 2018-06-21 09:41 人工智能实验\斑马归谁问题.ncb
文件 3209 2017-05-24 18:46 人工智能实验\斑马归谁问题.o
文件 48640 2018-06-21 09:41 人工智能实验\斑马归谁问题.opt
文件 780 2018-06-20 22:27 人工智能实验\斑马归谁问题.plg
文件 5315 2017-05-23 22:36 人工智能实验\置换合一.cpp
............此处省略2个文件信息
相关资源
- C语言实现模糊控制
- C语言实战-学生成绩管理系统
- 通过 S-Function 集成 C 代码进行仿真
- fpmax*源代码 c语言实现
- C语言教案 环节完整 谭浩强版
- 一位滑动窗口协议模拟 c语言实现
- ADS7809C语言程序
- 找最近对的分治法 C语言实现
- 贪心算法解决骑士游历问题C语言版
- DFT FFT 的C语言实现方法及程序
- 影碟出租管理系统C语言编写 用于课
- linuxc语言信号量爸爸女儿儿子橘子苹
- 一个FTP客户端的设计与实现C实现
- 用C语言编写二叉排序树
- 酒店管理系统c语言实现133784
- 中值滤波C语言
- c语言画图及小动画制作
- 捷联惯导c语言仿真
- 两颗会跳动的心
- 小型书店进销存管理系统(c语言)
- C语言练习题+综合模拟卷3套(附答案
- 复合形法C语言程序
- gps-gsm的仿真程序 c语言
- unix 下实现ftp部分功能lsgetput等等
- RS编解码的C语言实现
- 数据结构课程设计《活期储蓄帐目管
- c语言端口扫描
- 门禁系统代码(C语言版).
- 实现最近点对问题源的代码(C语言)
- [纯C语言 + Win32 API]一步一步写个围棋
评论
共有 条评论