用python解决归结反演的问题

2024-02-05 11:20

本文主要是介绍用python解决归结反演的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用python解决归结反演的问题

  • 一、实验目的
  • 二、实验思路
  • 三、代码及注解

一、实验目的

在这里插入图片描述

二、实验思路

第一步:先将子句集转换为数字表示,这样利于判断归并,相加为0即可
第二步:从子句集中取出2个进行归并判断
第三步:完成判断后进行移除数据和查重处理,然后将新子句集加入总子句集中
第四步:判断总子句集中的最后一个元素是否为空,为空的话证明归结成功

三、代码及注解


# 非用字符~表示,析取用大写v表示 a=in put("请输入子句集:")X=[ ]
X=[]
a = input("请输入子句集:")
while a != "0":x = a.split("V")for i in range(len(x)):if x[i] == "P(A)":x[i]=1elif x[i] =="P(B)":x[i]=2elif x[i] == "P(C)":x[i]=3elif x[i] == "~P(B)":x[i]=-2elif x[i] == "~P(A)":x[i]=-1elif x[i] == "~P(C)":x[i]= -3X.append(x)a = input("请输入子句集:")
print(X)# 对加入的归并后产生的子句集列表进行去重
def doubleRemove (o=[]):length1 = 0while length1 != len(o):length1 = len(o)for i in range(len(o)):if i< len(o):for j in range(i+ 1 ,len(o)):if j < len(o):if o[i]==o [j]:o.remove(o[i])return o# 从中总的子句集列表中取出2个子句集,判断是否能够去重
def guiJie (s=[], q=[]):length3 = len(s + q)for i in s:for j in q:if i + j == 0:s.remove(i)q.remove(j)if length3 != len(s + q):return doubleRemove(s + q)else:return 0# length为X的长度
length = 0
while length != len(X):length = len(X)for i in range(len(X)):for j in range(i + 1, len(X)):return_value = guiJie(X[i], X[j])if return_value != 0:X.append(return_value)doubleRemove(X)if not X[-1]:print("推理成功")
else:print("推理失败")

这篇关于用python解决归结反演的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680747

相关文章

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)