当前位置: 首页 > news >正文

福州网站建设兼职网络营销案例视频

福州网站建设兼职,网络营销案例视频,全国企业信用信息公示系统河北,照片做3d网站Horn 子句归结 实验概述 实验目的 熟悉和掌握归结原理的基本思想和基本方法,通过实验培养学生利用逻辑方法表示知识,并掌握采用机器推理来进行问题求解的基本方法。 实验内容 对所给问题进行知识的逻辑表示,转换为子句,对子句…

Horn 子句归结

实验概述

实验目的

熟悉和掌握归结原理的基本思想和基本方法,通过实验培养学生利用逻辑方法表示知识,并掌握采用机器推理来进行问题求解的基本方法。

实验内容

对所给问题进行知识的逻辑表示,转换为子句,对子句进行归结求解。

选用一种编程语言,在逻辑框架中实现 Horn 子句的归结求解。

对下列问题用逻辑推理的归结原理进行求解,要求界面显示每一步的求解过程。

破案问题:在一栋房子里发生了一件神秘的谋杀案,现在可以肯定以下几点事实:

  1. 在这栋房子里仅住有 A,B,C 三人;
  2. 是住在这栋房子里的人杀了 A;
  3. 谋杀者非常恨受害者;
  4. 所恨的人,C 一定不恨;
  5. 除了 B 以外,A 恨所有的人;
  6. 恨所有不比 A 富有的人;
  7. 所恨的人,B 也恨;
  8. 没有一个人恨所有的人;
  9. 杀人嫌疑犯一定不会比受害者富有。

为了推理需要,增加如下常识:(j)A 不等于 B。

问:谋杀者是谁?

实验方案设计

  • 总体设计思路与总体架构
  • 输入事实/过程
  • 将一阶逻辑语言化为子句
  • 输入目标
  • 调用归结法证明
  • 利用置换合一,匹配目标和过程的后件,根据前件更新目标
  • 目标变成空语句,结论成立
  • 输出证明过程
    在这里插入图片描述

核心算法及基本原理:

采用的数据结构:线性结构、数组(Python 代码里面分别用到列表和元组存储 Horn 子句和逻辑语句的函数表示)

算法:本实验并没有涉及到很复杂的算法,其过程是模拟手写推导过程,需要将 Horn 子句,输入执行 main 文件中,最主要的两个函数是 mgu(self, other, limit=None)(实现置换合一)和 resolution(self, exp: Expression)(子句归结),都是通过遍历所有子句(从数组里面取出),尝试所有可能的表达式/单元,进行置换合一和归结,其中,子句归结过程主要通过递归证明置换后的新目标,返回一条证明步骤。

关于 Horn 子句的解释:

在这里插入图片描述

网络查找的解释

Horn 子句可以表示出事件之间的逻辑关系,通过结合 Python 高效的处理正则语言的功能,可以简化证明过程。

关于机器推理:

机器推理(Machine Reasoning),是指基于已有知识对未见问题进行理解和推断,并得出问题对应答案的过程。根据该定义,机器推理涉及 4 个主要问题:(1)如何对输入进行理解和表示?(2)如何定义知识?(3)如何抽取和表示与输入相关的知识?(4)基于对输入及其相关知识的理解,如何推断出输入对应的输出?下图给出机器推理的整体框架:

在这里插入图片描述

机器推理整体框架

本次子句归结实验,总体上是依照机器推理的思路框架展开,可归类为机器推理里的基于推理的事实检测,具体推理步骤在下面依次进行展开。

模块设计:本实验的具体模块设计

两个 py 文件: main.py 为入口文件,用于输入输出,控制流程_init_.py 包含 3 个类,分别为 Unit(过程体或函数),Expression(事实,过程,目标), Engine(归结法核心)

其他创新内容或优化算法

创新点:开始在处理非语句的时候考虑在肯定语句前加上“<-”来表示否定,例如:“A 所恨的人,C 一定不恨。”表示为“<-hate(C,*X)<-hate(A,*X)”结果这样实现起来会很麻烦,因为一个 Horn 语句中有两个“<-”,给正则语句分析造成了混淆,最后考虑在原肯定语句的基础上,在前面加上 n 表否定,如“nhate(C,*X)<-hate(A,*X)”,事实上还是一个肯定句,但语义是否定的,通过这种方法,使得证明步骤的实现方便了很多。

实验过程

环境说明:

操作系统:windows10

开发语言:Python 3.7 开发环境:PyCharm Professional 2017

核心使用库:re、copy

主要函数清单

函数名作用域功能功能功能
def is_variable(cls, arg: str) ;-> boolUnit 类判断事实或目标集中是否含有变量判断事实或目标集中是否含有变量判断事实或目标集中是否含有变量
def update_args(self, ;mapping: dict)Unit 类在置换的过程中替换变量在置换的过程中替换变量在置换的过程中替换变量
def mapping_args(self, ;other)Unit 类寻找可置换的过程(函数) ;self 和 other,分别需要修改什么变量,以 other 的为主寻找可置换的过程(函数) ;self 和 other,分别需要修改什么变量,以 other 的为主寻找可置换的过程(函数) ;self 和 other,分别需要修改什么变量,以 other 的为主
def eq(self, other)Unit 类判断当前事实和目标是否相等判断当前事实和目标是否相等判断当前事实和目标是否相等
def str(self)Unit 类和;Expression 类将事实集转换为字符串将事实集转换为字符串将事实集转换为字符串
def update_args(self, ;mapping: dict)Expression 类用 mapping 中的置换对,更新表达式用 mapping 中的置换对,更新表达式用 mapping 中的置换对,更新表达式
def ;remove_all_from_body(self, unit: Unit)Expression 类清除表达式中所有 unit清除表达式中所有 unit清除表达式中所有 unit
def clear_same_unit(self)Expression 类移除相同的 unit移除相同的 unit移除相同的 unit
def mgu(self, other, limit=None)Expression 类置换合一,利用过程更新目标
def mgu(self, other, limit=None)Expression 类self 和 other 的归结结果
def mgu(self, other, limit=None)Expression 类self 是目标(待证明)
def mgu(self, other, limit=None)Expression 类
def resolution(self, exp: ;Expression)Engine 类实现子句归结的过程实现子句归结的过程实现子句归结的过程
def proof(self, exp: str)Engine 类返回归结过程,存到数组中,如果证明失败,则返回 None返回归结过程,存到数组中,如果证明失败,则返回 None返回归结过程,存到数组中,如果证明失败,则返回 None

实验结果展示

在这里插入图片描述
在这里插入图片描述

http://www.lbrq.cn/news/2745739.html

相关文章:

  • 长沙自媒体公司广州:推动优化防控措施落
  • 网站建设学费要多少广告优化师前景怎样
  • 专做婚礼logo的网站推广普通话的意义简短
  • 烟台网站开发制作网站开发费用
  • 网站如何做se企业网站优化外包
  • 做足彩推荐赚钱的网站品牌营销是什么
  • html改变字体大小代码张家界网站seo
  • 文体广电旅游局网站建设方案信息流优化师面试常见问题
  • 海淀做网站百度竞价点击价格
  • 可以做外链的图片网站山东省住房和城乡建设厅
  • 网站改版什么意思哪些行业适合做seo
  • 网站营销型企业销售平台搜索优化网络推广
  • 哈尔滨微网站建设吴江网站制作
  • 网站空间怎么买免费的网页模板网站
  • 合肥企业网站建设工作室网站推广工具有哪些
  • 网站建设怎么接单上海站优云网络科技有限公司
  • 军事新闻网最新新闻河北电子商务seo
  • 网站搜索栏怎么做南京关键词优化软件
  • 建设工程教育网建设工程类的考试辅导网站广州百度首页优化
  • flash网站导航怎么做公众号如何推广运营
  • 网站建设公司潍坊微博seo营销
  • 模板网站可以自己买空间吗吗安徽网站推广优化
  • 网站建站流程图二十条优化措施
  • 如何建立自己推广网站企业推广哪个平台好
  • 在线网站开发培训爱站网 关键词挖掘工具站
  • 学校网站方案阿里巴巴关键词排名优化
  • 网站开发 哪些技术发稿推广
  • 手机网站模板源码下载seo优化一般多少钱
  • 餐饮设计网站推广网址
  • 制作网站费用明细轻松seo优化排名
  • Windchill 11.0使用枚举类型自定义实用程序实现生命周期状态管理
  • 代码随想录算法训练营四十四天|图论part02
  • Java 基础 -- Java 基础知识
  • STM32标准库学习笔记
  • OpenStack Neutron中的L2 Agent与L3 Agent:新手友好指南
  • 肖臻《区块链技术与应用》第20-22讲 - 以太坊难度调整、权益证明和智能合约