版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生(xu sheng)实验报告实验课名称: 人工(rngng)智能(zh nn)实验项目名称: 产生式系统实验专业名称: 计算机科学与技术班级: 2012240201学号: 12学生姓名: 雷彬教师姓名: 陈亮亮 2014 年 12 月 10 日实验(shyn)日期: 2012 年 12 月 10 日 实验室名称(mngchng): 明远(mn yun)2202 一实验名称:产生式系统实验二实验目的与要求: 1、确定推理方法(正向还是反向),并根据问题设计实现一个简单的不通用推理机(匹配、冲突消解)2、规则库要求至少包含15条规则3、初始事实可以任意给定,输入初始事实后能够得到推理结果4、设
2、计人机界面,解释模块提供查询规则的功能5、可以不考虑知识库管理模块6、提交实验报告7、报告中要有推理树三实验内容:动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。四算法描述: 动物识别的15条规则:规则1:如果:动物有毛发 则:该动物是哺乳动物规则2:如果:动物能产奶 则:该单位是哺乳动物规则3: 如果:该动物有羽毛 则:该动物是鸟规则4:如果:动物会飞,且会下蛋 则:该动物是鸟规则5:如果:动物吃肉 则:该动物是肉食动物规则6:如果:动物有犬
3、齿,且有爪,且眼盯前方 则:该动物是食肉动物规则7:如果:动物是哺乳动物,且有蹄 则:该动物是有蹄动物规则8:如果:动物是哺乳动物,且是反刍动物 则:该动物是有蹄动物规则9:如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点则:该动物是豹规则10:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹则:该动物是虎规则11:如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类则:该动物是长颈鹿规则12:如果:动物有黑条纹,且是有蹄类动物则:该动物是斑马规则13:如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞则:该动物是鸵鸟规则14:如果:动物是鸟,且不会飞,且会游泳,且
4、是黑色的则:该动物是企鹅规则15:如果:动物是鸟,且善飞 则 :该动物是信天翁 首先给定初始事实,将初始事实放入动态数组中,并用初始事实与15条规则进行匹配,如果规则匹配成功,将规则的后件存入数组中,再用数组中所有的元素与规则进行匹配,满足即加入数组,直到匹配出动物。如果给定初始事实能推出多种动物,按照数组中条件的先后顺序,顺序循环匹配规则,先匹配出哪种动物就显示该动物。五源程序:/ MFC_AnimalDlg.cpp : 实现文件#include stdafx.h#include MFC_Animal.h#include MFC_AnimalDlg.h#include afxdialogex
5、.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogExpublic:CAboutDlg();/ 对话框数据enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持/ 实现protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialogEx(CA
6、boutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()/ CMFC_AnimalDlg 对话框CMFC_AnimalDlg:CMFC_AnimalDlg(CWnd* pParent /*=NULL*/): CDialogEx(CMFC_AnimalDlg:IDD, pParent)m_hIcon = AfxGetApp()-LoadIcon(IDR_MAIN
7、FRAME);void CMFC_AnimalDlg:DoDataExchange(CDataExchange* pDX)CDialogEx:DoDataExchange(pDX);DDX_Control(pDX, IDC_COMBO1, m_point1);DDX_Control(pDX, IDC_COMBO4, m_point2);DDX_Control(pDX, IDC_COMBO5, m_point3);DDX_Control(pDX, IDC_COMBO6, m_point4);DDX_Control(pDX, IDC_COMBO7, m_point5);DDX_Control(pD
8、X, IDC_COMBO8, m_point6);DDX_Control(pDX, IDC_COMBO9, m_point7);BEGIN_MESSAGE_MAP(CMFC_AnimalDlg, CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON2, &CMFC_AnimalDlg:OnClickedButton2)ON_BN_CLICKED(IDC_BUTTON1, &CMFC_AnimalDlg:OnClickedButton1)END_MESSAGE_MAP()/ C
9、MFC_AnimalDlg 消息处理程序BOOL CMFC_AnimalDlg:OnInitDialog()CDialogEx:OnInitDialog();/ 将“关于.”菜单项添加到系统菜单中。/ IDM_ABOUTBOX 必须在系统命令范围内。ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ 设置此对话框的图标。当应用程序主窗口不是对话
10、框时,框架将自动/ 执行此操作SetIcon(m_hIcon, TRUE);/ 设置大图标SetIcon(m_hIcon, FALSE);/ 设置小图标/ TODO: 在此添加额外的初始化代码m_point1.SetCurSel(0);/设置组合框的默认值为第一项 m_point2.SetCurSel(0);m_point3.SetCurSel(0);m_point4.SetCurSel(0);m_point5.SetCurSel(0);m_point6.SetCurSel(0);m_point7.SetCurSel(0);return TRUE; / 除非将焦点设置到控件,否则返回 TRUE
11、void CMFC_AnimalDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0 xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialogEx:OnSysCommand(nID, lParam);/ 如果向对话框添加最小化按钮,则需要下面的代码/ 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,/ 这将由框架自动完成。void CMFC_AnimalDlg:OnPaint()if (IsIconic()CPaintDC dc(this); /
12、用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0);/ 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ 绘制图标dc.Draw
13、Icon(x, y, m_hIcon);elseCDialogEx:OnPaint();/当用户拖动最小化窗口时系统调用此函数取得光标/显示。HCURSOR CMFC_AnimalDlg:OnQueryDragIcon()return static_cast(m_hIcon);void CMFC_AnimalDlg:OnClickedButton2()/ TODO: 在此添加控件通知处理程序代码(CListBox*)GetDlgItem(IDC_LIST1)-ResetContent();int i,j,n;int flag = 1;bool check=true;CString msg;CS
14、tring point7;CString Fact10;int k=-1;m_point1.GetWindowText(point0); m_point2.GetWindowText(point1); m_point3.GetWindowText(point2); m_point4.GetWindowText(point3); m_point5.GetWindowText(point4); m_point6.GetWindowText(point5); m_point7.GetWindowText(point6); for(i=0;i=5;i+)if(pointi!=无)for(j=i+1;j
15、=6;j+)if(pointi=pointj)check=false;if(check=false)MessageBox(L特征不能一样!);elsefor(i=0;iInsertString(k,pointi);for(i=0;iInsertString(k+1,msg);k+;Factk = msg;if(Factk!=哺乳动物) /R2for(i=0;iInsertString(k+1,msg);k+;Factk = msg;/Sleep(1000);for(i=0;iInsertString(k+1,msg);k+;Factk = msg;n=0;if(Factk!=鸟) /R4for
16、(i=0;iInsertString(k+1,msg);k+;Factk = msg;for(i=0;iInsertString(k+1,msg);k+;Factk = msg;n=0;if(Factk!=食肉动物) /R6for(i=0;iInsertString(k+1,msg);k+;Factk = msg;for(j=0;j=k;j+) /R7if(Factj=哺乳动物)for(i=0;iInsertString(k+1,msg);k+;Factk = msg;if(Factk!=有蹄动物) /R8for(j=0;j=k;j+) if(Factj=哺乳动物)for(i=0;iInser
17、tString(k+1,msg);k+;Factk = msg;n=0;for(j=0;j=k;j+) /R9if(Factj=哺乳动物)for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP1);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.D
18、etach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP2);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.Detach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;Se
19、tDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP3);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.Detach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlg
20、Item(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP4);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.Detach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(I
21、DB_BITMAP5);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.Detach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP6);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HB
22、ITMAP(bmpload.Detach();n=0;for(i=0;iInsertString(k+1,msg);Factk = msg;SetDlgItemText(IDC_EDIT2,msg);CStatic* cwm=(CStatic*)GetDlgItem(IDC_SHOWBITMAP);CBitmap bmpload;bmpload.LoadBitmap(IDB_BITMAP7);cwm-ModifyStyle(0,SS_BITMAP);cwm-SetBitmap(HBITMAP(bmpload.Detach(); void CMFC_AnimalDlg:OnClickedButton1()/ TODO: 在此添加控件通知处理程序代码m_point1.SetCurSel(0);/设置组合框的默认值为第一项 m_point2.SetCurSel(0);m_point3.SetCurSel(0);m_point4.SetCurSel(0);m_point5.SetCurSel(0);m_point6.SetCurSel(0);m_point7.SetCurSel(0);CStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南文理学院《古典舞基训(二)》2021-2022学年第一学期期末试卷
- 湖南农业大学《服务端应用基础》2021-2022学年第一学期期末试卷
- 集装箱火灾扑救初战展开程序
- 工业园区道路延伸工程可行性研究报告
- 宏观经济学第五版课后习题答案12-23章(高鸿业版)
- 2024至2030年中国52.5R型水泥行业投资前景及策略咨询研究报告
- 2024至2030年中国饰花行业投资前景及策略咨询研究报告
- 2024至2030年中国镀镍单声道行业投资前景及策略咨询研究报告
- 2024至2030年中国超滑泥鳅导丝行业投资前景及策略咨询研究报告
- 2024至2030年中国油漆吹干剂行业投资前景及策略咨询研究报告
- 国开电大地域文化(广东)形考任务一至四参考答案
- 科普管理工作总结报告
- 功能目的论视角下的国产游戏翻译以《原神》为例
- 2024年1-全年时事政治试题及答案汇编-时事一点通、半月谈
- 监控维保报告
- 家校社协同育人工作存在问题及建议
- 部编版一年级语文下册第五单元分层作业设计
- 数控生涯发展展示
- 患者术后饮食健康宣教护理课件
- 精神科患者饮食健康宣教知识
- 乡村小学劳动课校本教材
评论
0/150
提交评论