实验二、人工智能:产生式系统(动物识别系统)

这篇具有很好参考价值的文章主要介绍了实验二、人工智能:产生式系统(动物识别系统)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

产生式系统(动物识别系统)

一、相关知识

  • 把一组产生式放在一起,让它们互相配合、协同作用,一个产生式生成的结果可以供另一个产生式作为已知事实使用,以求得问题的解,这样的系统成为产生是系统。

产生式系统的例子:动物识别系统

  • 本系统为识别虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等七种动物的产生式系统。
  • 根据这些动物识别的专家知识,建立如下规则库:
    r1:IF 该动物有毛发 THEN 该动物是哺乳动物
    r2:IF 该动物有奶 THEN 该动物是哺乳动物
    r3:IF 该动物有羽毛 THEN 该动物是鸟
    r4:IF 该动物会飞 AND 会下蛋 THEN 该动物是鸟
    r5:IF 该动物吃肉 THEN 该动物是肉食动物
    r6:IF 该动物有犬齿 AND 有爪 AND 眼盯前方 THEN 该动物是食肉动物
    r7:IF 该动物是哺乳动物 AND 有蹄 THEN 该动物是有蹄类动物
    r8:IF 该动物是哺乳动物 AND 是咀嚼反刍动物 THEN 该动物是有蹄类动物
    r9:IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有暗斑点 THEN 该动物是金钱豹
    r10:IF 该动物是哺乳动物 AND 是肉食动物 AND 是黄褐色 AND 身上有黑色条纹 THEN 该动物是虎
    r11:IF 该动物是蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑点 THEN 该动物是长颈鹿
    r12:IF 该动物是蹄类动物 AND 身上有黑色条纹 THEN 该动物是斑马
    r13:IF 该动物是鸟 AND 有长脖子 AND 有长腿 AND 不会飞 AND 有黑白二色 THEN 该动物是鸵鸟
    r14:IF 该动物是鸟 AND 会游泳 AND 不会飞 AND 有黑白二色 THEN 该动物是企鹅
    r15:IF 该动物是鸟 AND 善飞 THEN 该动物是信天翁

二、实验目的

  1. 根据已知规则建立规则库
  2. 根据输入的规则进行推理
  3. 得到最终结果

三、实验要求

  1. 有推理过程

  2. 对结果进行打印

  3. 若得到最终结果,即虎、金钱豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等输出,需输出此判断结果。

  4. 例如:
    1
    10
    14
    0
    前提条件为:
    有毛发 有蹄 身上有黑色条纹

    推理过程如下:
    有毛发->是哺乳动物
    是哺乳动物,有蹄->是蹄类动物
    是蹄类动物,身上有黑色条纹->斑马
    所识别的动物为斑马

四、源代码

# 通过传入的列表寻找结果
def find_data(process_data_list):
    # 依次进行循环查找并对过程排序
    for epoch, data_process in enumerate(data_process_list):
        # 用于判断此过程是否成立
        num = 0
        for i in process_data_list:
            if i in data_process:
                num += 1
        # 过程成立则数值相同,可以进入下一步
        if num == len(data_process):
            # 此过程中结果是否为最终结果,不是将此过程结果加入到过程中
            if data_result_list[epoch] not in result_list:
                # 弹出过程和此过程结果,因为此过程已经进行过,此结果存入需要查找的过程中
                result = data_result_list.pop(epoch)
                process = data_process_list.pop(epoch)
                # 判断结果是否已经存在过程中,存在则重新寻找,不存在则加入过程,并将其存入最终结果
                if result not in process_data_list:
                    dict_input[','.join(process)] = result
                    end_result = find_data(process_data_list + [result])
                    if end_result == 1:
                        return 1
                    else:
                        return 0
                # 存在则直接寻找
                else:
                    end_result = find_data(process_data_list)
                    if end_result == 1:
                        return 1
                    else:
                        return 0
            # 找到最终结果,取出结果后返回
            else:
                process = data_process_list.pop(epoch)
                dict_input[','.join(process)] = data_result_list[epoch]
                return 1


if __name__ == '__main__':
    # 用于储存中间过程
    data_process_list = []
    # 用于存储过程对应的结果
    data_result_list = []
    # 存储用于查询的数据
    list_data = []
    # 用于存储输出结果
    dict_input = {}

    # 规则库
    txt = '''有毛发,是哺乳动物
有奶,是哺乳动物
有羽毛,是鸟
会飞,会下蛋,是鸟
吃肉,是肉食动物
有犬齿,有爪,眼盯前方,是食肉动物
是哺乳动物,有蹄,是蹄类动物
是哺乳动物,是咀嚼反刍动物,是蹄类动物
是哺乳动物,是食肉动物,是黄褐色,身上有暗斑点,金钱豹
是哺乳动物,是肉食动物,是黄褐色,身上有黑色条纹,虎
是蹄类动物,有长脖子,有长腿,身上有暗斑点,长颈鹿
是蹄类动物,身上有黑色条纹,斑马
是鸟,有长脖子,有长腿,不会飞,有黑白二色,鸵鸟
是鸟,会游泳,不会飞,有黑白二色,企鹅
是鸟,善飞,信天翁'''
    # 将数据预处理
    datas = txt.split('\n')
    for data in datas:
        data = data.split(',')
        data_process_list.append(data[:-1])
        data_result_list.append(data[-1].replace('\n', ''))
    # 最终结果列表
    result_list = ['信天翁', '鸵鸟', '斑马', '长颈鹿', '虎', '金钱豹', '企鹅']
    # 数据库对应的过程
    database = {'1': '有毛发', '2': '有奶', '3': '有羽毛', '4': '会飞', '5': '会下蛋', '6': '吃肉', '7': '有犬齿',
                '8': '有爪', '9': '眼盯前方', '10': '有蹄', '11': '是咀嚼反刍动物', '12': '是黄褐色', '13': '身上有暗斑点', '14': '身上有黑色条纹',
                '15': '有长脖子', '16': '有长腿', '17': '不会飞', '18': '会游泳', '19': '有黑白二色', '20': '善飞', '21': '是哺乳动物',
                '22': '是鸟', '23': '是食肉动物', '24': '是蹄类动物', '25': '金钱豹', '26': '虎', '27': '长颈鹿', '28': '斑马',
                '29': '鸵鸟', '30': '企鹅', '31': '信天翁'}
    # 循环进行输入,直到碰见0后退出
    while 1:
        term = input("")
        if term == '0':
            break
        if database[term] not in list_data:
            list_data.append(database[term])
    # 打印前提条件
    print('前提条件为:')
    print(' '.join(list_data) + '\n')
    # 进行递归查找,直到找到最终结果,返回1则找到最终结果
    end_result=find_data(list_data)
    if end_result == 1:
        print('推理过程如下:')
        # 将结果进行打印
        for i in dict_input.keys():
            print(f"{i}->{dict_input[i]}")
            # 得到最终结果即输出所识别动物
            if dict_input[i] in result_list:
                print(f'所识别的动物为{dict_input[i]}')
    else:
        # 将结果进行打印
        for i in dict_input.keys():
            print(f"{i}->{dict_input[i]}")

五、实验结果

人工智能导论产生式系统实验,人工智能,python文章来源地址https://www.toymoban.com/news/detail-851192.html

到了这里,关于实验二、人工智能:产生式系统(动物识别系统)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能大作业——人脸识别系统(最终)

    写在前面 时间过得飞快,时间已经距离我发第一篇文章过去2年多了,也不再从事代码工作,偶然间上到csdn翻看文章经过,看到还是有些人关注人脸识别系统的后续的,我猜大概率是学弟学妹们正在被期末实验折磨中,翻了翻原先的代码还能找到就一并更完了吧,如果抄了我

    2024年01月16日
    浏览(54)
  • 【人工智能】从零开始的口罩识别系统

    本文是从零开始搭建口罩识别系统的学习过程总结,涉及到的软件环境、硬件环境、代码、操作都会一一给出。 在开始之前,我们首先整理一下需要的软件环境清单. 软件环境: 1. Python 2. labelimg 3. AI Studio 4. YOLO2COCO 5. PaddleUtils 6. paddleyolo 首先,笔者的电脑是安装了Python的,但

    2024年02月16日
    浏览(33)
  • 人工智能能产生情绪吗?

    此图片来源于网络 人的情绪本质是一个复杂的现象,涉及到生理、心理和社会的多个层面。以下是关于情绪本质的几种观点: 情绪的本质是生命能量的表达。情绪被认为是生命能量的一种体现,通过情绪的体验和表达,人们能够获得力量和动力,以应对生活中的挑战和目标

    2024年02月19日
    浏览(34)
  • 【机器学习/人工智能】 大作业:手写数字识别系统

    参考的是https://zh.d2l.ai/index.html 代码运行的相关实操移步视频https://www.bilibili.com/video/BV1XP411C7Hs/ (1)利用所学习的聚类算法完成简单的图像分割系统。 (2)编程并利用相关软件完成大作业测试,得到实验结果。 (3)通过对实验结果的分析得出实验结论,培养学生创新思维和

    2024年02月02日
    浏览(45)
  • 人工智能在智能家居安全系统软件中的人脸识别应用

    作者:禅与计算机程序设计艺术 《人工智能在智能家居安全系统软件中的人脸识别应用》 引言 1.1. 背景介绍 随着物联网技术的发展,智能家居逐渐成为人们生活中不可或缺的一部分。智能家居系统通常包括智能门锁、智能灯光、智能插座、智能窗帘、智能家电等。其中,智

    2024年02月08日
    浏览(35)
  • 【人工智能】实验二: 洗衣机模糊推理系统实验与基础知识

    理解模糊逻辑推理的原理及特点,熟练应用模糊推理。 设计洗衣机洗涤时间的模糊控制。 已知人的操作经验为: “污泥越多,油脂越多,洗涤时间越长”; “污泥适中,油脂适中,洗涤时间适中”; “污泥越少,油脂越少,洗涤时间越短”。 模糊控制规则如表1所示: x y z

    2024年02月03日
    浏览(35)
  • AI人工智能课题:图像识别货币识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(47)
  • AI人工智能课题:图像识别菜品识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(42)
  • AI人工智能课题:图像识别地标识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(39)
  • AI人工智能课题:图像识别红酒识别系统的设计与实现(基于百度智能云AI接口)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包