• 大小: 903KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: C语言  

资源简介

实验一 掌握符号主义推理原理,编程实现置换合一 实验二 状态空间搜索:传教士与野人问题求解 实验三 启发式搜索算法:斑马属谁问题求解 实验四 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个文件信息

评论

共有 条评论