dayseven-因果分析-图模型与结构因果模型
在数学上,“图”(graph)是顶点(vertex,也可以称为节点)和边(edge)的集合,表示为图G=(V,E),其中V是节点的集合,E是边的集合,图中的节点之间通过边相连(也可以不相连)。

在图2.3a中,节点的集合是V={A,B,C,D,E},边的集合是E={AB,BC,CD,BD,DE,AE},边用其两端的节点来表示。如果两个节点之间有边,我们称两个节点相互邻接。在图2.3a中,A和B、E相互邻接,B和C、D、A相互邻接,C和B、D相互邻接,D和B、C、E相互邻接,E和A、D相互邻接。如果图中的每一对节点之间都有一条边相连,则称这个图为 “完全图”,假设完全图中节点数量为n,则相应其边的数量为C^2 n,显然图2.3a不是完全图。
两个节点X和Y之间的路径是从X开始以Y结束的一个节点序列,在这个节点序列中,前一个节点和相邻后一个节点之间通过一条边相连。比如,在图2.3a中,节点A和节点E之间有3条路径,分别是{A,B,C,D,E}、{A,B,D,E}和{A,E};在图2.3b中,节点A到节点E也有3条路径{A,B,C,D,E}、{A,B,D,E}和{A,E}。
图中的边分为有向边和无向边两种边。有向边在图中标明了边“入”和“出”的节点,它从一个节点出来、进入另一个节点,用带箭头的线表示,箭头的头表示边进入的节点,箭头的尾表示边出来的节点,用字母来表示,则是出的节点在前、入的节点在后,比如图2.3b中节点A和节点B之间的边表示为BA,而不能表示为AB。无向边在图中没有标明“入”和“出”的节点,用没有箭头的线表示。无向边用代表两端节点变量的字母来表示时,不区分前后顺序,比如,图2.3a中节点A和节点B之间的边,既可以表示为BA,也可以表示为AB。如果图中的所有边都是有向边,那么该图称为有向图;如果图中所有的边都是无向边,则该图称为无向图;如果图中有的边为有向边,有的边为无向边,则该图称为部分有向图。图2.3a中所有的边都是无向边,该图是无向图;图2.3b中所有的边都用带箭头的线表示,都是有向边,该图是有向图;2.3c中有的边是有向边,有的边是无向边,该图为部分有向图。
为表示有向图路径中边的方向,图2.3b中节点A到节点E的3条路径通常表示为{A←B←C→D→E}、{A←B→D→E}和{A←E}。值得注意的是,识别两个节点之间的路径数量时,不需要考虑将相邻两个节点相连的边的方向,只要有边相连即可,只有在考虑路径的“连通”或“阻断”时才考虑边的方向,相关内容将在第3章做详细介绍。
在图中,一条有向边的起点节点称为该有向边的终点节点的父节点,反之,终点节点为起点节点的子节点。在图2.3b中,节点C是节点B和D的父节点,相应地,节点B和节点D是节点C的子节点。若一条路径一直顺着箭头延伸,则称该路径为有向路径,比如图2.3b中的路径{C→D→E}。在有向路径上的所有节点中,没有一个节点在该路径中有两条边都进入该节点,或者两条边都从该节点出来。如果两个节点通过有向路径相连,则该有向路径上的第一个节点是该路径上其他所有节点的祖先,其他所有节点是第一个节点的后代。下面用父节点和子节点来说明:父节点是其子节点的祖先,是其子节点的子节点的祖先,也是其子节点的子节点的子节点的祖先,以此类推。若一个节点只有子节点没有父节点,则称该节点为根节点。在图2.3b中,节点C是节点E和节点A的祖先,节点E和节点A是节点C的后代,节点C是根节点。
如果一条有向路径从一个节点出发再回到它自身,则该路径称为环。有向图中没有环,则称为无环图。比如,图2.4a中,没有任何一个节点能够通过一条有向路径回到它自身,因此它是无环图;图2.4b中,节点X存在有向路径{X→Y→Z→X}回到自身,即图中有环,则它是有环图。
我们用图来表示变量之间的因果关系,该图则称为图模型。在图模型中,图中的一个节点对应于因果关系中的一个变量,因此,图模型中的节点也称为节点变量,节点变量的一个取值对应于一个事件。在图模型中,若节点变量X是节点变量Y的祖先,则称节点变量X(准确地说,应该是节点变量的一个取值,一般简称为节点变量)是节点变量Y的因,节点变量Y是节点变量X的果。若存在从节点变量X到节点变量Y的有向边,即节点X是节点Y的父节点,则节点变量X是节点变量Y的直接因。由于因果关系的非反身性,一个事件不能是自己的因,因此,用于表达因果关系的图通常为有向无环图,该图也称为因果图。以图2.5为例,节点C是节点F的祖先,节点C也是节点F的因。因为存在从节点C和节点Y到节点Z的有向边,所以节点C和节点Y都是节点Z的直接因。

相关文章:
dayseven-因果分析-图模型与结构因果模型
在数学上,“图”(graph)是顶点(vertex,也可以称为节点)和边(edge)的集合,表示为图G(V,E),其中V是节点的集合,E是边的集合,图中的节点之间通过边相连(也可以不相连&…...
并发编程(8)—— std::async、std::future 源码解析
文章目录 八、day81. std::async2. std::future2.1 wait()2.2 get() 八、day8 之前说过,std::async内部的处理逻辑和std::thread相似,而且std::async和std::future有密不可分的联系。今天,通过对std::async和std::future源码进行解析&#x…...
稻米分类和病害检测数据集(猫脸码客 第237期)
稻米分类图像数据集:推动农业智能化发展的关键资源 在农业领域,稻米作为世界上最重要的粮食作物之一,其品种繁多,各具特色。然而,传统的稻米分类方法往往依赖于人工观察和经验判断,不仅耗时费力࿰…...
HANDLINK ISS-7000v2 网关 login_handler.cgi 未授权RCE漏洞复现
0x01 产品简介 瀚霖科技股份有限公司ISS-7000 v2网络网关服务器是台高性能的网关,提供各类酒店网络认证计费的完整解决方案。由于智慧手机与平板电脑日渐普及,人们工作之时开始使用随身携带的设备,因此无线网络也成为网络使用者基本服务的项目。ISS-7000 v2可登录300至1000…...
基于Multisim串联型连续可调直流稳压正电源电路设计与仿真
设计任务和要求: (1)输出直流电压 1.5∽10V 可调; (2)输出电流 IOm300mA;(有电流扩展功能) (3)稳压系数 Sr≤0.05; (4&…...
【QT】Qt文件和多线程
个人主页~ Qt系统内容 一、Qt文件1、文件读写读写 2、文件和目录信息 二、多线程1、线程使用timethread.hwidget.htimethread.cppwidget.cpp 2、线程安全(1)互斥锁QMutexQMutexLocker一个例子mythread.hmythread.cppwidget.cpp QReadWriteLocker、QReadL…...
PN结如何实现不同反向耐压及达到高反向耐压
目录 1. PN结实现不同耐压值 2. PN如何达到高反向耐压 1. PN结实现不同耐压值 主要通过以下几个方面: • PN结设计:不同耐压值的二极管在PN结的设计上有所不同。通过调整PN结的宽度和深度,可以改变空间电荷区的大小,从而影响二极…...
【bug日志-水】解决本地开发下代理和url同名导致刷新404的问题
bug描述 在本地开发,并且路由是history的模式下,代理和url同名的情况下,刷新会404。 {path: /googleAds,//如果有个代理也叫googleAds,刷新时就会404name: googleAds,icon: sound,routes: [{path: /googleAds/GoogleAdsSettingPag…...
Hive面试题-- 查询各类型专利 top10 申请人及专利申请数
在数据处理中,尤其是涉及到专利信息等复杂数据时,Hive 是一个强大的工具。本文将详细介绍如何使用 Hive 查询语句来获取各类型专利 top10 申请人以及他们对应的专利申请数,以下是基于给定的 t_patent_detail 表结构的分析和查询步骤。 建表语…...
996引擎 - 活捉NPC
996引擎 - 活捉NPC 引擎触发 - 引擎事件(QF)事件处理模块 GameEvent测试文件参考资料 引擎触发 - 引擎事件(QF) cfg_game_data 配置 ShareNpc1 可以将QM和机器人的触发事件全部转到 QF 引擎触发是通用的,TXT的所有触发转换成小写后在LUA中就可使用,如说明书中缺省可反馈至对接群…...
航展畅想:从F35机载软件研发来看汽车车载软件研发
两款经典战机的机载软件 F-22和F-35战斗机的研制分别始于1980年代和1990年代末,F-22项目在1981年启动,主要由洛克希德马丁(Lockheed Martin)和波音公司(Boeing)合作开发,以满足美军“先进战术战…...
用Dify搭建AI知识库
Dify 可以上传各种格式文档和抓取网页数据训练自已的知识库 一 安装 1 Docker安装 我基于Docker来安装的,所以本机先装Docker Desktop, Docker 安装方法在这里 2 Dify 安装 git clone https://github.com/langgenius/dify.git cd dify/docker copy .env.exampl…...
架构师:如何提高web网站的请求并发响应量?
文章目录 一、提出问题二、相关概念三、如何提高网站请求响应能力?四、负载均衡有那些方式?五、常用微服务架构图及推荐书籍 一、提出问题 今天,突然想到一个问题,双十一,那些电商网站的并发量是多大? 简…...
图论基础--孤岛系列
孤岛系列有: 孤岛总面积求解(用了dfs、bfs两种方法)和沉没孤岛(这里只写了dfs一种) 简单解释一下: 题目中孤岛的定义是与边缘没有任何接触的(也就是不和二维数组的最外圈连接)&…...
Docker学习—Docker的安装与使用
Docker安装 1.卸载旧版 首先如果系统中已经存在旧的Docker,则先卸载: yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2.配置Docker的yum库 首先…...
HC-SR04超声波传感器详解(STM32)
HC-SR04是一款广泛使用的超声波传感器,它通过发射和接收超声波来测量距离。本文将详细介绍HC-SR04的工作原理、引脚描述、STM32的接线方式以及如何通过STM32控制HC-SR04来测量距离。 一、HC-SR04传感器介绍 HC-SR04超声波传感器的主要参数如下: 工作电…...
如何在BSV区块链上实现可验证AI
发表时间:2024年10月2日 nChain的顶尖专家们已经找到并成功测试了一种方法:通过区块链技术来验证AI(人工智能)系统的输出结果。这种方法可以确保AI模型既按照规范运行,避免严重错误,遵守诸如公平、透明…...
Python快速安装软件包到环境的方案
问题描述 直接在终端输入,显示安装numpy包要20分钟, pip install numpyxxx.whl解决方案 直接搜索pip install 后在终端显示的.whl文件,在pypi.org官网下载, 之后在终端进入下载目录,从.whl文件安装软件包即可 pip …...
npm入门教程17:准备发布的npm包
一、环境准备 安装Node.js和npm: 确保你的计算机上已安装Node.js和npm。可以通过运行node -v和npm -v命令来检查它们的版本。如果没有安装,可以从Node.js官方网站下载并安装最新版本。 注册npm账号: 访问npm官网,点击“Sign Up”…...
协程1 --- 发展历史
文章目录 一个编译器问题背景解决 协程为什么一开始没发展成一等公民?自顶向下、逐步求精(Top-down, stepwise refinement)线程的出现 协程的雄起IO密集型同步语义实现异步发展史 线程和协程的关系并发性调度方式资源占用 一个编译器问题 协…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
