资源简介

实验目的: 1、利用产生式系统的结构设计出动物识别系统,从而理解知识的产生式表示法; 2、实现基于产生式表示法的动物识别系统,从而掌握产生式系统的工作原理; 3、实现浏览器/服务器架构,并且让动物识别系统在服务器上正常运行。 实验内容: 用WEB语言实现一个简单的动物识别系统。该系统引用书中P37页的十五条规则,可以识别老虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁这7种动物。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Experiment01
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void checkedListBox_SelectedIndexChanged(object sender EventArgs e)
        {
        }

        private void enterButton_Click(object sender EventArgs e)//当“看看“按钮按下时
        {
            long inputSet = 0;//记录选择的事实集其二进制的第i位为1表示i号复选框被选中
            for (int i = 0; i < Rules.len; ++i)
            {
                if (this.checkedListBox.GetItemChecked(i))//第i个复选框被选中
                {
                    inputSet |= 1L << i;//把inputSet的二进制的第i位变为1
                }
            }

            Rules rules = new Rules();//规则
            RecoginzeSystem recoginzer = new RecoginzeSystem();//推理用
            long result = recoginzer.recoginze(inputSet rules);//计算新的事实集

            int cnt = 0;//统计设别出的动物个数0或大于1时为无法识别
            string output=“无法识别...“;
            if ((result & (1L << 11))>0)//result的二进制第11为1时
            { output = “是老虎“; cnt++; }
            if ((result & (1L << 13)) > 0)//result的二进制第13为1时
            { output = “是金钱豹“; cnt++; }
            if ((result & (1L << 08))>0)//如此类推
            { output = “是斑马“; cnt++; }
            if ((result & (1L << 10))>0)
            { output = “是长颈鹿“; cnt++; }
            if ((result & (1L << 16))>0)
            { output = “是企鹅“; cnt++; }
            if ((result & (1L << 19))>0)
            { output = “是信天翁“; cnt++; }
            if (cnt > 1) output = “是外星动物!!“;

            this.resultTextBox.Text = output.ToString();//结果输出
        }

        private void resultTextBox_TextChanged(object sender EventArgs e)
        {
        }

        private void MainForm_Load(object sender EventArgs e)
        {
        }

        private void resultTipLabel_Click(object sender EventArgs e)
        {
        }
    }

    public class Rules//规则类
    {
        /*
        00.不会飞
        01.吃肉
        02.会飞
        03.会下蛋
        04.会游泳
        05.善飞
        06.身上有暗斑点
        07.身上有黑色条纹
        08.是斑马
        09.是哺乳动物
        10.是长颈鹿
        11.是虎
        12.是黄褐色
        13.是金钱豹
        14.是嚼反刍动物
        15.是鸟
        16.是企鹅
        17.是肉食动物
        18.是鸵鸟
        19.是信天翁
        20.是有碲类动物
        21.眼盯前方
        22.有长脖子
        23.有长腿
        24.有碲
        25.有黑白二色
        26.有毛发
        27.有奶
        28.有犬齿
        29.有羽毛
        30.有爪
         */
        public const int len = 31;
        public long[] factSets;//事实
        public long[] resultSets;//结果
        //factSets[i]对应resultsSets[i]

        public Rules()
        {
            factSets = new long[len];
            resultSets = new long[len];
  
            //rule00
            factSets[0] 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5589  2008-04-15 19:30  动物识别系统1.0\IA\IA\ClientBS.class

     文件       4134  2008-04-17 22:20  动物识别系统1.0\IA\IA\ClientBS.java

     文件       1219  2008-04-02 21:49  动物识别系统1.0\IA\IA\Rule.class

     文件        975  2008-04-02 15:40  动物识别系统1.0\IA\IA\Rule.java

     文件       4860  2008-04-13 14:44  动物识别系统1.0\IA\IA\RuleDB.class

     文件       6693  2008-04-17 22:19  动物识别系统1.0\IA\IA\RuleDB.java

     文件        920  2008-04-02 21:49  动物识别系统1.0\IA\IA\RuleElement.class

     文件        643  2008-04-02 15:23  动物识别系统1.0\IA\IA\RuleElement.java

     文件       1330  2008-04-18 03:20  动物识别系统1.0\IA\IA\save.txt

     文件       3121  2008-04-14 00:05  动物识别系统1.0\IA\IA\Server.class

     文件       8320  2008-04-14 13:05  动物识别系统1.0\IA\IA\Server.jar

     文件       2316  2008-04-17 22:14  动物识别系统1.0\IA\IA\Server.java

     文件       2935  2008-04-13 13:07  动物识别系统1.0\IA\IA\ServerThread.class

     文件       2106  2008-04-17 22:16  动物识别系统1.0\IA\IA\ServerThread.java

     文件         60  2008-04-13 10:39  动物识别系统1.0\IA\IA\test.html

     文件      47104  2008-04-17 22:34  动物识别系统1.0\IA\IA\人工智能实验一.doc

     目录          0  2008-04-17 22:41  动物识别系统1.0\IA\IA

     目录          0  2008-04-17 22:47  动物识别系统1.0\IA

     文件      14328  2008-04-17 18:18  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Debug\Experiment01.vshost.exe

     文件        490  2007-07-21 01:33  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Debug\Experiment01.vshost.exe.manifest

     目录          0  2008-04-17 03:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Debug

     文件      11264  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\Application Files\Experiment01_1_0_0_0\Experiment01.exe.deploy

     文件       7221  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\Application Files\Experiment01_1_0_0_0\Experiment01.exe.manifest

     目录          0  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\Application Files\Experiment01_1_0_0_0

     目录          0  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\Application Files

     文件       5327  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\Experiment01.application

     文件     461760  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish\setup.exe

     目录          0  2008-04-17 21:58  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\app.publish

     文件       1590  2008-04-17 22:37  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\Experiment01.application

     文件      11264  2008-04-17 22:37  动物识别系统1.0\Experiment01\Experiment01\Experiment01\bin\Release\Experiment01.exe

............此处省略50个文件信息

评论

共有 条评论