三、传播引擎

news2024/12/22 19:57:48

文章目录

  • 1、约束传播问题的数学表示
  • 2、传播引擎
  • 3、幂等(idempotent)
  • 4、调用事件
  • 5、已解决的传播器
  • 6、引擎优化
  • THE END

1、约束传播问题的数学表示

\qquad 给定 变量集合 { X i } \{X_i\} {Xi}和其对应的值域 D ( X i ) D(X_i) D(Xi);给定传播器集合 { f j } \{f_j\} {fj}

\qquad 计算最大的值域 D ′ ( X i ) ⊆ D ( X i ) D'(X_i) \subseteq D(X_i) D(Xi)D(Xi)使得 D ′ = f ( D ′ ) D' = f(D') D=f(D),即计算最大的值域范围,使得无论再怎样调用传播器,变量的值域都不会再继续变化,若调用某个传播器 f f f之后,所有变量的值域均不发生变化,则称传播器 f f f达到一个不动点状态

2、传播引擎

\qquad 传播引擎可以看做是一种传播的方式(一种算法),这种传播方式重复采用传播器 f ∈ F f \in F fF,直到所有的传播器均达到不动点状态。令 F 0 F_0 F0表示已经达到不动点状态的传播器的集合, F n F_n Fn表示未达到不动点状态的传播器的集合。令 i S o l v ( F 0 , F n , D ) iSolv(F_0,F_n,D) iSolv(F0,Fn,D)表示传播引擎算法,算法流程如下所示:
在这里插入图片描述
\qquad 上述算法流程中有两个比较重要的函数: C h o o s e ( Q ) Choose(Q) Choose(Q) N e w ( f , F , D , D ′ ) New(f,F,D,D') New(f,F,D,D),分别用于选择县一个用于更新变量值域的传播器和向 Q Q Q中载入新的传播器。
\qquad 其中 C h o o s e ( Q ) Choose(Q) Choose(Q)可以使用队列来进行管理,利用队列先进先出的特性,选取在队列中逗留时间最长的传播器。
\qquad N e w ( f , F , D , D ′ ) New(f,F,D,D') New(f,F,D,D)函数在 F F F中选取出可能出现 f ′ ( D ′ ) ≠ D ′ f'(D')\neq D' f(D)=D的所有传播器 f ′ f' f添加到 Q Q Q中;最简单的 N e w ( f , F , D , D ′ ) New(f,F,D,D') New(f,F,D,D)函数的规则是观察调用 f f f之后,改变了哪些变量的值域,之后将这些变量所在的传播器均添加到 Q Q Q中,注意不要向 Q Q Q中添加重复的传播器。

3、幂等(idempotent)

\qquad 如果一个传播器满足 f ( D ) = f ( f ( D ) ) f(D)=f(f(D)) f(D)=f(f(D)),则称这个传播器是幂等的,即幂等传播器在调用一次之后,后续再进行调用时不对对变量的值域产生新的缩减效果。
\qquad 一个幂等传播器在被调用之后,不需要马上放回队列里面;但因为实际操作中很多变得值域中存在空洞,很多传播器都不是幂等的。
\qquad 值域传播器和最强的边界传播器(如果值域没有空洞)是幂等的。

4、调用事件

\qquad 一些变量的值域的改变不会导致传播器改变其他变量的值域,只有在一些相关事件发生时才需要唤醒调用某些传播器:
在这里插入图片描述

5、已解决的传播器

\qquad 有时候可以判断对所有未来的值域都存在 f ( D ) = D f(D)=D f(D)=D成立,则称传播器 f f f是一个已经解决的传播器,在后续传播过程中均不需要将传播器 f f f放入队列 Q Q Q中。
\qquad 通常情况下,当 D D D所有的解均是 c c c的解,则称获得 D D D的传播器是已经解决的传播器。

6、引擎优化

\qquad 传播引擎可以通过下述方式进行优化:

  • 所有含非单元素值域的非等( ≠ \neq =)传播器都放到 F 0 F_0 F0
  • 只有当非等( ≠ \neq =)传播器中某个值域编程单元素值域时,非等( ≠ \neq =)传播器才会被调用
  • 非等( ≠ \neq =)传播器在一个值域传播器 f f f被调用之后,由于它是幂等的,所以可以将 f f f从队列 Q Q Q中永久移除
  • 一个已解决的传播器应该被永久移除:e.g., 当某个非等( ≠ \neq =)传播器被传播之后;当一个约束的所有变量的值域均包含一个值

THE END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gnuplot画图

首先,安装gnuplot: sudo apt-get install gnuplot 接着,输入gnuplot,进入gnuplot工作模式: gnuplot 输入下述命令,打开对应的位姿文件,使用XX列数据进行画图: plot poses.txt using 2:3输入下述命令,打开两个不同的位姿文件,同时进行绘图. plot poses.txt using 2:3 with l…

Mac上,flv怎么转换成mp4格式

Mac电脑 怎么把mov格式的视频转换mp4?在进行视频格式转换之前,让我们先了解一下为什么需要将MOV格式转换为MP4格式。mov是由美国Apple公司开发的一种视频格式,主要由Apple QuickTime用于存储视频文件。使用苹果手机的用户可以发现&#xff0c…

AIDL Binder机制和原理

新的Android 通信规范中,C层使用AIDL替代HIDL实现Framework和Vendor层之间调用解耦。 我们知道,Binder之间通信,需要一个服务端和一个客户端. 【Binder】 Binder架构分成四层,应用层,Framework层,Native…

4. 注册machine

数字mic系列&#xff0c;注册machine dts配置如下 digital_mic: digital-mic {status "okay";compatible "simple-audio-card";simple-audio-card,format "i2s";simple-audio-card,mclk-fs <256>;simple-audio-card,name "digit…

你知道2个KT6368A的蓝牙芯片模块如何配对_以及数据传输吗

目录 一、简介你知道2个KT6368A的蓝牙芯片模块如何配对_以及数据传输吗&#xff1f;KT6368A的蓝牙模块之间是可以建立连接&#xff0c;并且全双工数据透传的但是有几点注意事项&#xff0c;一定要选择KT6368A的主机版本&#xff0c;和从机版本&#xff0c;如下图&#xff1a; …

Spring Boot 中的分布式锁

Spring Boot 中的分布式锁 在分布式系统中&#xff0c;多个应用程序可能需要同时对同一个资源进行修改。为了避免数据的不一致性和冲突等问题&#xff0c;我们需要对这些资源进行加锁操作。在本文中&#xff0c;我们将介绍 Spring Boot 中的分布式锁是什么&#xff0c;原理是什…

OpenCV键盘监听函数 cv2::waitKey( delay )

1、函数原型&#xff1a;cv::waitKey( delay ) delay&#xff1a;等待时间(毫秒) 作用&#xff1a;通过 waitKey() 可以获取键盘输入2、示例&#xff1a; 实现键盘输入1&#xff0c;将图像转为灰度图输出&#xff1b; 键盘输入2&#xff0c;将图像转为HSV图输出&#xff1b; …

element ui - el-button 重新渲染后disabled属性失效

element ui - el-button重新渲染后disabled属性失效 场景解决方法 场景 有两组不同的按钮&#xff1a; 不在灰度发布状态下的 disabled 的灰色按钮&#xff1b;灰度发布状态下的 可点击按钮&#xff1b; 发现当再次渲染 灰色按钮 时&#xff0c;disabled 属性失效。 解决方…

7.6 【Linux】文件系统的特殊观察与操作

7.6.1 磁盘空间之浪费问题 从上面的特殊字体部分&#xff0c;那就是每个文件所使用掉 block 的容量&#xff01;举例来说&#xff0c;那个 crontab 虽然仅有 451Bytes &#xff0c; 不过他却占用了整个 block &#xff08;每个 block 为 4K&#xff09;&#xff0c;所以将所有的…

电子企业MES管理系统如何加强生产现场管控

随着数字化时代的到来&#xff0c;中小型电子企业面临着提升生产现场管控的挑战。为了应对这一挑战&#xff0c;许多企业开始采用MES生产管理系统。本文将探讨MES生产管理系统如何帮助电子企业加强生产现场管控&#xff0c;提高生产效率和质量。 在电子企业的生产现场&#xf…

MCU是否会从ADAS域控制器消失

摘要&#xff1a; ADAS架构及MCU功能概览、未来ADAS架构的两种方案、MCU是否从ADAS域消失的一点思考 ADAS的装机量和渗透率再提升&#xff0c;尤其L2及L2级&#xff1b;那么随着ADAS域控制器主控芯片的增强&#xff0c;未来&#xff0c;MCU是否还会存在&#xff1f; 转自佐思汽…

SSM之MyBatis

MyBatis学习笔记 一、入门二、XML配置1、configuration&#xff08;配置&#xff09;2、properties&#xff08;属性&#xff09;3、settings&#xff08;设置&#xff09;4、typeAliases&#xff08;类型别名&#xff09;5、typeHandlers&#xff08;类型处理器&#xff09;6、…

CSS的学习3

什么是CSS CSS是层叠样式表的简称&#xff0c;又称为CSS样式表或级联样式表。CSS是一种标记语言。 主要用于设置HTML页面中的文本内容&#xff08;字体、大小、对齐方式等&#xff09;、图片的外形&#xff08;宽高、边框样式、边距等&#xff09;、版面的布局和外观显示样式…

【算法】树形DP ② 打家劫舍Ⅲ(树上最大独立集)

文章目录 前期知识例题337. 打家劫舍 III 相关练习题目没有上司的舞会 https://www.luogu.com.cn/problem/P13521377. T 秒后青蛙的位置 https://leetcode.cn/problems/frog-position-after-t-seconds/⭐⭐⭐解法1&#xff1a;BFS优化代码 解法2——自顶向下dfs解法3——自底向…

Buildroot 系统设置开机密码登录-迅为RK3588开发板

首先对开发板进行上电&#xff0c;开发板正常启动后&#xff0c;使用命令“vi /etc/inittab”对文件进行修改&#xff0c;如 下图所示&#xff1a; 设置为密码登陆时配置如下图&#xff08;注意将 ttyS0 修改为 ttyFIQ0&#xff09;&#xff1a; 修改完&#xff0c;保存退出&a…

GLM: General Language Model Pretrainingwith Autoregressive Blank Infilling翻译理解

GPT&#xff08;autoregressive&#xff09;模型是一个自回归模型&#xff0c;利用left-to-right语言模型&#xff0c;由于不是双向attention 机制&#xff0c;因此不能再NLU任务中&#xff0c;获取充分的上下文信息&#xff0c;BERT类似自编码&#xff08;autoencoding&#x…

SQL 优化(四):合理使用 join

在工作的时候经常听到的一句话就是&#xff0c;“这条 SQL 因为 join 了很多表&#xff0c;导致查询速度比较慢”&#xff0c;可以从侧面反映出&#xff0c;join语句对性能的影响是比较大的&#xff0c;而且大部分人不知道如何进行优化。这篇文章我们来讲讲join的执行过程&…

PC C++ SDK 全局函数、防录制功能、下载器、播放器

本文档提供了使用 CSDK 的操作步骤及代码示例&#xff0c;通过本文您可以快速了解如何使用 SDK 提供的功能。您也可以通过 Demo 中的示例进行了解和自有业务开发。 SDK 名词含义及功能说明 参见 plv-player-def.h SDK 全局函数 设置日志&#xff0c;日志过滤项。设置观众信息…

ENVI遥感影像处理—水体提取

2 .水体提取 &#xff08;1&#xff09;导入经过大气校正后的影像FLAASH_result.dat。 &#xff08;2&#xff09;选择工具箱中ToolBox——Band Ratio——Band Math&#xff0c;输入(float(b1)-float(b2))/(float(b1)float(b2))&#xff0c;点击Add to List&#xff0c;选中公…

R3LIVE环境搭建

一、安装ros、livox sdk、livox_ros_driver 安装方法[参考] 二、CGAL和pcl_viewer sudo apt-get install libcgal-dev pcl-tools 三、opencv&#xff08;≥3.3&#xff09; 3.1 命令检查 OpenCV 版本&#xff0c;如果 openCV 版本低于 OpenCV-3.3, 更新openCV版本为3.3.1、3…