【算法概论】贪心算法:Horn公式

本文介绍了Horn公式,一种特殊的布尔表达式,由蕴含式和纯否定子句构成。文章详细阐述了如何通过贪心算法判断Horn公式是否存在一致解释,即一组变量赋值使所有子句满足。算法过程包括构建有向图,并使用深度优先搜索逐步将变量置为true,同时确保纯否定子句仍满足条件。
摘要由CSDN通过智能技术生成

Horn公式,又称霍恩公式。

Horn公式中最基本的对象是取值为true或false的布尔变量。

在Horn公式中,关于变量的知识通过两类子句表达:

① 蕴含式:其左侧为任意肯定变量的并,右侧为一个单独的肯定变量。如:(z /\ w)  → u。

② 纯否定子句:包含任意多个否定文字的或。如:(\bar{u} \vee \bar{v} \vee \bar{y})。

问题描述:

给定某个由以上两类子句构成的集合,我们需要判断是否存在一个一致的解释,也即一组使得所有子句都满足的变量赋值。该解释通常也称为该Horn公式的一个可满足赋值。

❗算法描述❗:

       从所有变量为 false 开始(使得刚开始纯否定子句一定满足), 一个接一个地将其中的部分变量置为 true,置为 true 的前提简单地就是说:“只需且不得不”这样做以使得某个蕴含式满足;而一旦所有的蕴含式得到了满足,再回头检查是否所有否定子句仍然满足。

       那具体如何实现呢:

       首先读取所有的蕴含式,利用它们构造一个有向图。

       式子的右边的字母,是箭头最终的指向,该箭头的从式子左边的字母分别出发,一同指向一个结点(式子左边字母的个数),由该数字结点指向结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值