要求:

1.以恐龙识别系统产生式规则为例;

2.用python语言建造规则库和综合数据库,并能对它们进行增加,删除和修改操作。

这是一个Python小实验题目,侵删

部分实现比较笨重,如有更好的方法,可以留言交流~

'''
编程实现简单恐龙识别系统的知识表示
'''
# python 使用类创建结构体
class MyRules(object):class Struct(object):def __init__(self, count, pre, back,mark):self.count = countself.pre = preself.back = backself.mark = markdef make_rule(self, count, pre, back,mark):return self.Struct(count, pre, back,mark)
myrule = MyRules()#规则库
rules=[myrule.make_rule(3,'晚三叠纪到早侏罗纪&杂食-素食&中等体型','原蜥脚类',0),myrule.make_rule(3,'原蜥脚类&巨型&第一种','板龙',0),myrule.make_rule(2,'原蜥脚类&侏罗纪早期','安琪龙',0),myrule.make_rule(3,'晚三叠世至白垩纪&大型&素食','蜥脚形类',0),myrule.make_rule(4,'头小&脖子长&尾巴长&牙齿成小匙状','蜥脚形类',0),myrule.make_rule(1,'蜥脚形类','蜥脚类',0),myrule.make_rule(1,'原蜥脚类','蜥脚类',0),myrule.make_rule(4,'蜥脚类&产于我国四川、甘肃&晚侏罗纪&由19节颈椎组成的脖子长度约等于体长的一半','马门溪龙',0),myrule.make_rule(2,'蜥脚类&体形最大的陆地动物','易碎双腔龙',0),myrule.make_rule(6,'晚三叠世至白垩纪&肉食性&两足行走&趾端长有锐利的爪子&头部很发达&最聪明','兽脚类',0),myrule.make_rule(1,'嘴里长着匕首或小刀一样的利齿','兽脚类',0),myrule.make_rule(2,'兽脚类&著名代表','暴龙',0),myrule.make_rule(2,'鸟臀类&化石最多的一个类群','鸟脚类',0),myrule.make_rule(1,'化石最多的一个类群','鸟脚类',0),myrule.make_rule(5,'两足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲','鸟脚类',0),myrule.make_rule(5,'四足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲','鸟脚类',0),myrule.make_rule(2,'晚三叠纪至白垩纪&全部素食','鸟脚类',0),myrule.make_rule(3,'四足行走&背部具有直立的骨板&尾部有骨质刺棒两对或多对','剑龙类',0),myrule.make_rule(3,'侏罗纪到早白垩纪&全部素食&最先灭亡的一个大类','剑龙类',0),myrule.make_rule(2,'剑龙类&居住在平原上','剑龙',0),myrule.make_rule(2,'剑龙类&被发现于坦桑尼亚','肯氏龙',0),myrule.make_rule(4,'体形低矮粗壮&全身披有骨质甲板&素食&白垩纪早期','甲龙类',0),myrule.make_rule(2,'四足行走&素食','角龙类',0),myrule.make_rule(3,'头骨后部扩大成颈盾&白垩纪晚期&祖先是鹦鹉嘴龙','角龙类',0),myrule.make_rule(6,'头骨肿厚&颥孔封闭&骨盘中耻骨被坐骨排挤&不参与组成腰带&生活在白垩纪&全部素食','肿头龙类',0),
]
cat=24#规则库长度
length=0#事实库长度
f=[]#事实库def check():#查看规则库print('规则库如下:')j=1for i in rules:print(j,'.由',i.pre,'可得',i.back)j=j+1def inputRule():#添加规则   #ask1global cat,rules
###########开始1#############print('测试输入: 2兽脚类&直系后代 现代鸟类 0 24')rules.append(myrule.make_rule(7, '兽脚类&直系后代', '现代鸟类',0))check()
###########结束1#############def deleteRule():#删除规则  #ask2
###########开始2#############print('删除规则:24')del1 = input()i = int(del1)rules.pop(i)print('删除后')check()###########结束2#############
inputRule()
deleteRule()

结果如下:

E:\SDK\python\python.exe E:/Project/Python-project/2/Main.py
测试输入: 2兽脚类&直系后代 现代鸟类 0 24
规则库如下:
1 .由 晚三叠纪到早侏罗纪&杂食-素食&中等体型 可得 原蜥脚类
2 .由 原蜥脚类&巨型&第一种 可得 板龙
3 .由 原蜥脚类&侏罗纪早期 可得 安琪龙
4 .由 晚三叠世至白垩纪&大型&素食 可得 蜥脚形类
5 .由 头小&脖子长&尾巴长&牙齿成小匙状 可得 蜥脚形类
6 .由 蜥脚形类 可得 蜥脚类
7 .由 原蜥脚类 可得 蜥脚类
8 .由 蜥脚类&产于我国四川、甘肃&晚侏罗纪&由19节颈椎组成的脖子长度约等于体长的一半 可得 马门溪龙
9 .由 蜥脚类&体形最大的陆地动物 可得 易碎双腔龙
10 .由 晚三叠世至白垩纪&肉食性&两足行走&趾端长有锐利的爪子&头部很发达&最聪明 可得 兽脚类
11 .由 嘴里长着匕首或小刀一样的利齿 可得 兽脚类
12 .由 兽脚类&著名代表 可得 暴龙
13 .由 鸟臀类&化石最多的一个类群 可得 鸟脚类
14 .由 化石最多的一个类群 可得 鸟脚类
15 .由 两足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲 可得 鸟脚类
16 .由 四足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲 可得 鸟脚类
17 .由 晚三叠纪至白垩纪&全部素食 可得 鸟脚类
18 .由 四足行走&背部具有直立的骨板&尾部有骨质刺棒两对或多对 可得 剑龙类
19 .由 侏罗纪到早白垩纪&全部素食&最先灭亡的一个大类 可得 剑龙类
20 .由 剑龙类&居住在平原上 可得 剑龙
21 .由 剑龙类&被发现于坦桑尼亚 可得 肯氏龙
22 .由 体形低矮粗壮&全身披有骨质甲板&素食&白垩纪早期 可得 甲龙类
23 .由 四足行走&素食 可得 角龙类
24 .由 头骨后部扩大成颈盾&白垩纪晚期&祖先是鹦鹉嘴龙 可得 角龙类
25 .由 头骨肿厚&颥孔封闭&骨盘中耻骨被坐骨排挤&不参与组成腰带&生活在白垩纪&全部素食 可得 肿头龙类
26 .由 兽脚类&直系后代 可得 现代鸟类
删除规则:
24
规则库如下:
1 .由 晚三叠纪到早侏罗纪&杂食-素食&中等体型 可得 原蜥脚类
2 .由 原蜥脚类&巨型&第一种 可得 板龙
3 .由 原蜥脚类&侏罗纪早期 可得 安琪龙
4 .由 晚三叠世至白垩纪&大型&素食 可得 蜥脚形类
5 .由 头小&脖子长&尾巴长&牙齿成小匙状 可得 蜥脚形类
6 .由 蜥脚形类 可得 蜥脚类
7 .由 原蜥脚类 可得 蜥脚类
8 .由 蜥脚类&产于我国四川、甘肃&晚侏罗纪&由19节颈椎组成的脖子长度约等于体长的一半 可得 马门溪龙
9 .由 蜥脚类&体形最大的陆地动物 可得 易碎双腔龙
10 .由 晚三叠世至白垩纪&肉食性&两足行走&趾端长有锐利的爪子&头部很发达&最聪明 可得 兽脚类
11 .由 嘴里长着匕首或小刀一样的利齿 可得 兽脚类
12 .由 兽脚类&著名代表 可得 暴龙
13 .由 鸟臀类&化石最多的一个类群 可得 鸟脚类
14 .由 化石最多的一个类群 可得 鸟脚类
15 .由 两足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲 可得 鸟脚类
16 .由 四足行走&下颌骨有单独的前齿骨&牙齿仅生长在颊部&上颌牙齿齿冠向内弯曲&下颌牙齿齿冠向外弯曲 可得 鸟脚类
17 .由 晚三叠纪至白垩纪&全部素食 可得 鸟脚类
18 .由 四足行走&背部具有直立的骨板&尾部有骨质刺棒两对或多对 可得 剑龙类
19 .由 侏罗纪到早白垩纪&全部素食&最先灭亡的一个大类 可得 剑龙类
20 .由 剑龙类&居住在平原上 可得 剑龙
21 .由 剑龙类&被发现于坦桑尼亚 可得 肯氏龙
22 .由 体形低矮粗壮&全身披有骨质甲板&素食&白垩纪早期 可得 甲龙类
23 .由 四足行走&素食 可得 角龙类
24 .由 头骨后部扩大成颈盾&白垩纪晚期&祖先是鹦鹉嘴龙 可得 角龙类
25 .由 兽脚类&直系后代 可得 现代鸟类
删除后Process finished with exit code 0

结果截图:

编程实现恐龙识别系统编程表示相关推荐

  1. 实验5:简单恐龙识别系统的产生式推理

    实验目的 理解和掌握产生式系统的推理方法,能够编程实现推理机 实验内容 完成实验2的题目中对恐龙类别的推理 实验2:编程实现简单恐龙识别系统的知识表示 参考代码: ''' 简单恐龙识别系统的产生式推理 ...

  2. 快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...

    全球博弈(quanqiuboyi)--不一样的观点,不一样的解读,8000万人订阅的超级微信大号.不关注时事,你将会被这个世界抛弃,点击标题下蓝字"全球博弈"关注,我们将为您提供有 ...

  3. Linux C/C++ 零基础学习编程教程,Linux 系统编程教程

    从事 Linux 系统软件开发十余载,整理多套 Linux C/C++程序设计,Linux 系统编程的教程和实践项目,希望能够和更多的读者一起学习!       更多的资料,可以访问作者的博客网站: ...

  4. linux系统编程 小项目,linux系统编程小项目.doc

    linux系统编程小项目.doc 一.项目概述简单智能远程监控功能服务器端1.服务器端利用随机数模拟向串口读取传感数据,需要模拟的传感数据要求有温度.湿度.光照.室内噪音度等等.2.服务器要求在数据保 ...

  5. linux 编程博客,Linux系统编程博客参考

    Jquery中的日历插件 这个插件很简单:只需要在HTML代码中引入插件如下,CLASS名和click事件函数固定! ... Apache Solr 访问权限控制 Current state of a ...

  6. 【读书笔记】linux系统编程

    linux系统编程 原作名:Linux System Programming 作者: Robert Love 第一章 入门和基本概念 1.1 系统编程 应用程序需要与更高层次的库进行交互,系统程序就是 ...

  7. linux原子过程,linux系统编程:IO读写过程的原子性操作实验

    所谓原子性操作指的是:内核保证某系统调用中的所有步骤(操作)作为独立操作而一次性加以执行,其间不会被其他进程或线程所中断. 举个通俗点的例子:你和女朋友OOXX的时候,突然来了个电话,势必会打断你们高 ...

  8. 嵌入式开发第二阶段,系统编程

    第二阶段课程,属于linux下高级编程,也叫linux系统编程,感知linux内核的存在和内核的强大功能: 内容包括:文件管理.进程管理.设备管理.内存管理.网络管理. 目录 第一章.文件管理 一.文 ...

  9. 【README】Linux系统编程必读:本专栏内容提要以及系统调用接口总结

    文章目录 前言 第一部分:博客知识点 (1)基础篇 Linux系统编程1:Linux中使用率最高的一些命令 Linux系统编程2:详解Linux中的权限问题 Linux系统编程3:基础篇之详解Linu ...

最新文章

  1. python列表实现原理_Python动态类型实现原理及过程解析
  2. Exchange Server2010系列之七:多邮箱搜索找出神秘邮件的幕后黑手
  3. Dubbo源码分析系列之-深入Dubbo扩展机制
  4. html控制弯曲图,html – CSS3 3D弯曲视角
  5. 2MyBatis入门--深入浅出MyBatis技术原理与实践(笔记)
  6. python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
  7. python生成热度图_Python数据可视化 热力图
  8. 一个游戏大量合服代表什么_一个女人哭了代表什么?这几点帮你分析
  9. 206. Reverse Linked List (LL)
  10. ie tab 强制使用外部程序——ie view
  11. 联通计算机用户名和密码,终极:联通路由器的默认登录密码是什么?
  12. WDS桥接副路由器有线上网方法
  13. 电脑安装有道后打开word文档很慢
  14. 苹果海洋视频源直播源文件
  15. 史上最强模型 GPT-4 上线:一张手绘草图能生一个网站、60 秒搞定一个游戏开发!
  16. IE浏览器下载excel文件时不弹出下载保存提示框的解决方法
  17. MATLAB数字图像处理系统——边缘检测
  18. poi对excel进行读取
  19. 设置Hbuildx实现编译less的快捷键
  20. 苹果新iPhone发布会9月11日开幕 官宣海报神似西瓜霜

热门文章

  1. 30岁以后,不好找工作怎么办?
  2. echarts radar雷达图常规使用
  3. 怎么用计算机打印出东西,如何把需要的东西打印出来?谢谢,我是新手
  4. 寻找图像中的局部极大点
  5. 解决 命令行程序 中文英文不对齐的情况
  6. 抖音为什么没有浏览量
  7. html中表单的action属性作了什么?
  8. matplotlib横向条形图(barh、get_width、get_y)
  9. hackthebox-buff(gym渗透 端口转发 cloudme 缓冲区溢出 )
  10. 甜品消消乐 14 消除