• 人工智能专家系统的简单实现


    经过一段时间的学习。最终对专家系统有了一定的认识,在此发表一下个人的见解,希望和大家一起交流学习。

     专家系统,通俗的讲。就是让计算机具有人类专家的知识、经验和技能,可以像人类专家一样解决实际问题。专家系统实质上是一段计算机程序,它可以以人类专家的水平完毕某一专业领域的任务。

    通过计算机。模拟人类专家怎样运用他们的知识和经验解决面临问题的方法、技巧和步骤。


    基本系统结构(通常由人机交互界面、知识库、综合数据库、推理机、解释器、知识获取等6个部分构成):


    以下是一个简单的动物识别的专家系统设计(简单推断蛇、蜥蜴、鸡、猫四种动物):

    1. 实现流程:

    1)    初始化规则集合

    2)    初始化规则事实集合

    3)    使用规则推导

    2. 加入规则信息:

    ”冷血”,”有腿”,”羽毛”,”会飞”

    3. 规则事实:

    冷血+没有腿 -> 蛇

    冷血+有腿 -> 蜥蜴

    非冷血+有羽毛+不会飞 -> 鸡

    非冷血+没有羽毛 -> 猫

    4. 推理过程:


    部分代码:

    #define Chicken 0x02	//鸡		0010
    #define Cat     0x00	//猫		0000
    #define Snake   0x01	//蛇		0001
    #define Lizard  0x05	//蜥蜴	0101
    

    4位二进制位分别表示:能飞、有腿、有羽毛、冷血,匹配上则为1,否则为0
    数据结构定义

    typedef struct Rule
    {
    	char *info;		//规则信息
    	Rule *pYes;		//匹配到的下一个规则
    	Rule *pNo;		//未匹配到的下一个规则
    	int pos;		//该规则的位置
    }Rule;
    
    unsigned char result = 0;
    

    推导函数

    void MatchRules(char *s, Rule *match)
    {
    	if(!s || !match)
    		return;
    	//规则是否匹配上
    	if(CheckRule(s, match->info) > 0)
    	{
    		//记录位置
    		result += 1 << match->pos;
    		MatchRules(s, match->pYes)
    	}
    	else
    	{
    		//未匹配上
    		MatchRules(s, match->pNo);
    	}
    }
    

    推断result。得出结论

    switch (result)
    	{
    	case Chicken:
    		printf("鸡!");	
    		break;
    	case Cat:
    		printf("猫!");
    		break;
    	case Snake:
    		printf("蛇。");
    		break;
    	case Lizard:
    		printf("蜥蜴!");
    		break;
    	default:
    		printf("其它!");
    		break;
    	}
    

    以上仅仅包括简单规则(4种动物推断,和4条规则),想要功能更完好。我们还能够加入很多其它精确的规则和事实。

  • 相关阅读:
    NSString 处理
    我的第一个IOSDemo
    NSArray创建和使用
    NSDate
    NSDictionary
    flash全屏代码
    getBounds
    运用递归随机出与上一个数不重复的数
    标签跟随鼠标移动
    保存数据到本地
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7350984.html
Copyright © 2020-2023  润新知