证明力引导算法forceatlas2为什么不是启发式算法

一、基本概念

吸引力
F a ( n i ) = ∑ n j ∈ N c t d ( n i ) ω i , j d E ( n i , n j ) V i , j \displaystyle \bm{F}_a(n_i)= \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \omega_{i,j} \; d_E(n_i,n_j) \bm{V}_{i,j} Fa(ni)=njNctd(ni)ωi,jdE(ni,nj)Vi,j
其中 n i n_i ni代表节点 i i i N c t d ( n i ) \mathcal{N}_{ctd}(n_i) Nctd(ni)代表与节点 n i n_i ni相连的所有节点的集合。 ω i , j \omega_{i,j} ωi,j是节点 n i n_i ni与节点 n j n_j nj之间边的权重。 d E ( n i , n j ) d_E(n_i, n_j) dE(ni,nj)是节点 n i n_i ni与节点 n j n_j nj之间的距离。 V i , j \bm{V}_{i,j} Vi,j是从节点 n i n_i ni倒节点 n j n_j nj之间的单位方向矢量。

图1. 吸引力定义中一些基本概念示意图
在这里插入图片描述

斥力
F r ( n i ) = ∑ n j ∈ N , n ≠ n j k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) d E ( n i , n j ) V j , i \displaystyle \bm{F}_r(n_i)=\sum_{n_j \in \mathcal{N}, n \neq n_j} k_r \frac{(D(n_i)+1)(D(n_j)+1)}{d_E(n_i,n_j)} \bm{V}_{j,i} Fr(ni)=njN,n=njkrdE(ni,nj)(D(ni)+1)(D(nj)+1)Vj,i
N \mathcal{N} N所有节点的集合, k r k_r kr一个 ( 0 , 1 ) (0,1) (0,1)之间的系数。 D ( n i ) D(n_i) D(ni)节点 n i n_i ni的度, D ( n j ) D(n_j) D(nj)节点 n j n_j nj的度。 V j , i \bm{V}_{j,i} Vj,i节点 n j n_j nj倒节点 n i n_i ni的单位方向矢量。

二、关于力引导过程是启发式与否的探讨

问:力引导系统的过程的结果是确定的吗?
答:是

证明过程出发点:
只要证明最终顶点分布是一个确定的结果,是否就证明了该结果是非启发式的。

证明:
力引导过程最终平衡态是指整个系统达到力的平衡 → \to 所有节点的速度为0,即 v ( n i ) → 0 , i = 1 , ⋯ , N v(n_i) \to 0,i=1,\cdots,N v(ni)0,i=1,,N。下面将开始推导平衡态情况下,节点所处的状态。

按照系统合力为0推导

0 = F r e s u l t a n t = ∑ n i ∈ N { F n i 节点所受吸引力合力 ( n i ) + F n i 节点所受斥力合力 ( n i ) } \bm{0}=\bm{F}_{resultant}=\sum_{n_i \in N} \left\{ \bm{F}_{n_i节点所受吸引力合力}(n_i)+\bm{F}_{n_i节点所受斥力合力}(n_i) \right\} 0=Fresultant=niN{Fni节点所受吸引力合力(ni)+Fni节点所受斥力合力(ni)}
= ∑ n i ∈ N { F a ( n i ) + F r ( n i ) } =\sum_{n_i \in N} \left\{ \bm{F}_a(n_i) + \bm{F}_r(n_i) \right\} =niN{Fa(ni)+Fr(ni)}
= ∑ n i ∈ N { ∑ n j ∈ N c t d ( n i ) ω i , j d E ( n i , n j ) V i , j + ∑ n k ∈ N , n k ≠ n i k r ( D ( n i ) + 1 ) ( D ( n k ) + 1 ) d E ( n i , n k ) V k , i } =\sum_{n_i \in N} \left\{ \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \omega_{i,j} \; d_E(n_i,n_j) \bm{V}_{i,j} + \sum_{n_k \in \mathcal{N}, n_k \neq n_i} k_r \frac{(D(n_i)+1)(D(n_k)+1)}{d_E(n_i,n_k)} \bm{V}_{k,i} \right\} =niN njNctd(ni)ωi,jdE(ni,nj)Vi,j+nkN,nk=nikrdE(ni,nk)(D(ni)+1)(D(nk)+1)Vk,i

= ∑ n i ∈ N { 俩节点相同的斥力和吸引力 + 不存在吸引力的节点之间的斥力 } =\sum_{n_i \in N} \left\{ 俩节点相同的斥力和吸引力 + 不存在吸引力的节点之间的斥力 \right\} =niN{俩节点相同的斥力和吸引力+不存在吸引力的节点之间的斥力}

= ∑ n i ∈ N { { ∑ n j ∈ N c t d ( n i ) ω i , j d E ( n i , n j ) V i , j + ∑ n j ∈ N c t d ( n i ) k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) d E ( n i , n j ) V j , i } + ∑ n k ∈ N , n k ≠ n i k r ( D ( n i ) + 1 ) ( D ( n k ) + 1 ) d E ( n i , n k ) V k , i } =\sum_{n_i \in N} \left\{ \left\{ \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \omega_{i,j} \; d_E(n_i,n_j) \bm{V}_{i,j} + \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} k_r \frac{(D(n_i)+1)(D(n_j)+1)}{d_E(n_i,n_j)} \bm{V}_{j,i} \right\} + \sum_{n_k \in \mathcal{N}, n_k \neq n_i} k_r \frac{(D(n_i)+1)(D(n_k)+1)}{d_E(n_i,n_k)} \bm{V}_{k,i} \right\} =niN njNctd(ni)ωi,jdE(ni,nj)Vi,j+njNctd(ni)krdE(ni,nj)(D(ni)+1)(D(nj)+1)Vj,i +nkN,nk=nikrdE(ni,nk)(D(ni)+1)(D(nk)+1)Vk,i

d E ( n i , n j ) = d j d_E(n_i,n_j)=d_{j} dE(ni,nj)=dj,其对应的x、y和z三轴分量为 d j x , d j y , d j z d_j^x, d_j^y, d_j^z djx,djy,djz,上述推导过程中存在矢量,下面我将采用解析结合,进一步推导。 V i , j \bm{V}_{i,j} Vi,j x x x y y y z z z轴上的坐标分别为 ( p x , p y , p z ) (p_x, p_y, p_z) (px,py,pz),则 V j , i \bm{V}_{j,i} Vj,i x x x y y y z z z轴上的坐标分别为 ( − p x , − p y , − p z ) (-p_x, -p_y, -p_z) (px,py,pz)。则上述公式可拆分为两个函数 f 1 f_1 f1 f 2 f_2 f2

f 1 = ( ∑ n j ∈ N c t d ( n i ) { ω i , j d j x p x − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) d j x p x } , ∑ n j ∈ N c t d ( n i ) { ω i , j d j y p y − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) d j y p y } , ∑ n j ∈ N c t d ( n i ) { ω i , j d j z p z − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) d j z p z } ) f_1=\left(\sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \left\{ \omega_{i,j} \; d_j^x p_x - k_r \frac{(D(n_i)+1)(D(n_j)+1)}{d_j^x} p_x \right\}, \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \left\{ \omega_{i,j} \; d_j^y p_y - k_r \frac{(D(n_i)+1)(D(n_j)+1)}{d_j^y} p_y \right\}, \sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \left\{ \omega_{i,j} \; d_j^z p_z - k_r \frac{(D(n_i)+1)(D(n_j)+1)}{d_j^z} p_z \right\} \right) f1= njNctd(ni){ωi,jdjxpxkrdjx(D(ni)+1)(D(nj)+1)px},njNctd(ni){ωi,jdjypykrdjy(D(ni)+1)(D(nj)+1)py},njNctd(ni){ωi,jdjzpzkrdjz(D(ni)+1)(D(nj)+1)pz}

f 2 = ∑ n k ∈ N , n k ≠ n i k r ( D ( n i ) + 1 ) ( D ( n k ) + 1 ) d E ( n i , n k ) V k , i f_2=\sum_{n_k \in \mathcal{N}, n_k \neq n_i} k_r \frac{(D(n_i)+1)(D(n_k)+1)}{d_E(n_i,n_k)} \bm{V}_{k,i} f2=nkN,nk=nikrdE(ni,nk)(D(ni)+1)(D(nk)+1)Vk,i
其中, f 1 f_1 f1是关于各个 d E ( n i , n j ) d_E(n_i, n_j) dE(ni,nj)的函数, f 2 f_2 f2是关于各个 d E ( n i , n k ) d_E(n_i, n_k) dE(ni,nk)的函数。再令, ω i , j p x = k 1 d j x \omega_{i,j} p_x=k_1^{d_j^x} ωi,jpx=k1djx − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) p x = k 2 d j x -k_r (D(n_i)+1)(D(n_j)+1) p_x=k_2^{d_j^x} kr(D(ni)+1)(D(nj)+1)px=k2djx ω i , j p y = k 1 d j y \omega_{i,j} p_y=k_1^{d_j^y} ωi,jpy=k1djy − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) p y = k 2 d j y -k_r (D(n_i)+1)(D(n_j)+1) p_y=k_2^{d_j^y} kr(D(ni)+1)(D(nj)+1)py=k2djy ω i , j p z = k 1 d j z \omega_{i,j} p_z=k_1^{d_j^z} ωi,jpz=k1djz − k r ( D ( n i ) + 1 ) ( D ( n j ) + 1 ) p z = k 2 d j z -k_r (D(n_i)+1)(D(n_j)+1) p_z=k_2^{d_j^z} kr(D(ni)+1)(D(nj)+1)pz=k2djz。那么函数 f 1 f_1 f1则为

f 1 = ( ∑ n j ∈ N c t d ( n i ) { k 1 d j x d j x + k 2 x j d j x } , { k 1 d j y d j y + k 2 d j y ) d j y } , { k 1 d j z d j z + k 2 d j z ) d j z } ) f_1=\left(\sum_{n_j \in \mathcal{N}_{ctd}(n_i)} \left\{ k_1^{d_j^x} d_j^x + \frac{k_2^{x_j}}{d_j^x} \right\}, \left\{ k_1^{d_j^y} d_j^y + \frac{k_2^{d_j^y})}{d_j^y} \right\}, \left\{ k_1^{d_j^z} d_j^z + \frac{k_2^{d_j^z})}{d_j^z} \right\} \right) f1= njNctd(ni){k1djxdjx+djxk2xj},{k1djydjy+djyk2djy)},{k1djzdjz+djzk2djz)}

此时求偏导
{ ∂ f 1 ∂ x = 0 ∂ f 1 ∂ y = 0 ∂ f 1 ∂ z = 0 \left\{\begin{array}{l} \frac{\partial f_1}{ \partial x}=0 \\ \frac{\partial f_1}{ \partial y}=0 \\ \frac{\partial f_1}{\partial z}=0 \end{array} \right. xf1=0yf1=0zf1=0

由于距离只能为正,为了使得函数 f 1 f_1 f1最小,应满足距离满足如下情况
(1)根据函数 f 1 f_1 f1,相互连接的节点之间应满足距离 k 1 d j k 2 d j \frac{k_1^{d_j}}{k_2^{d_j}} k2djk1dj
(2)根据函数 f 2 f_2 f2,没有连接的节点之间的距离趋于无穷大。

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

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

相关文章

class常量池、运行时常量池和字符串常量池的关系

类常量池、运行时常量池和字符串常量池这三种常量池,在Java中扮演着不同但又相互关联的角色。理解它们之间的关系,有助于深入理解Java虚拟机(JVM)的内部工作机制,尤其是在类加载、内存分配和字符串处理方面。 类常量池…

NeurIPS‘24 截稿日期逼近 加拿大温哥华邀你共赴盛会

会议之眼 快讯 第38届NeurIPS24(Conference and Workshop on Neural Information Processing Systems)即神经信息处理系统研讨会将于 2024 年 12月9日-15日在加拿大温哥华会议中心举行! NeurIPS 每一年都是全球AI领域的一场盛宴,吸引着来自世界各地的顶…

5.10.8 Transformer in Transformer

Transformer iN Transformer (TNT)。具体来说,我们将局部补丁(例如,1616)视为“视觉句子”,并将它们进一步划分为更小的补丁(例如,44)作为“视觉单词”。每个单词的注意力将与给定视…

信号和槽基本概念

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、概述 二、信号的本质 三、槽的本质 一、概述 在 Qt 中,用户和控件的每次交互过程称…

Bootloader+升级方案

随着设备的功能越来越强大,系统也越来越复杂,产品升级也成为了开发过程不可或缺的一道程序。在工程应用中,如何在不更改硬件的前提下通过软件的方式实现产品升级。通过Bootloader来实现固件的升级是一种极好的方式,Bootloader是单…

I2CKD : INTRA- AND INTER-CLASS KNOWLEDGE DISTILLATION FOR SEMANTIC SEGMENTATION

摘要 本文提出了一种新的针对图像语义分割的知识蒸馏方法,称为类内和类间知识蒸馏(I2CKD)。该方法的重点是在教师(繁琐模型)和学生(紧凑模型)的中间层之间捕获和传递知识。对于知识提取&#x…

12个乒乓球,有一个次品,不知轻重,用一台无砝码天平称三次,找出次品,告知轻重?

前言 B站上看到个视频:为什么有人不认可清北的学生大多是智商高的? 然后试了下,发现我真菜 自己的思路(失败) 三次称重要获取到12个乒乓球中那个是次品,我想着将12个小球编号,分为四组,每组…

yo!这里是socket网络编程相关介绍

目录 前言 基本概念 源ip&&目的ip 源端口号&&目的端口号 udp&&tcp初识 socket编程 网络字节序 socket常见接口 socket bind listen accept connect 地址转换函数 字符串转in_addr in_addr转字符串 套接字读写函数 recvfrom&&a…

Java入门基础学习笔记2——JDK的选择下载安装

搭建Java的开发环境: Java的产品叫JDK(Java Development Kit: Java开发者工具包),必须安装JDK才能使用Java。 JDK的发展史: LTS:Long-term Support:长期支持版。指的Java会对这些版…

pycharm报错Process finished with exit code -1073740791 (0xC0000409)

pycharm报错Process finished with exit code -1073740791 (0xC0000409) 各种垃圾文章(包括chatgpt产生的垃圾文章),没有给出具体的解决办法。 解决办法就是把具体报错信息显示出来,然后再去查。 勾选 然后再运行就能把错误显示…

MetaRTC-play拉流客户端代码分析

渲染使用opengl,音频播放使用alsa。 当点击播放按钮后,以此调用的类如下,开始建立rtc连接,AV解码,音频渲染,视频渲染。 如果想去除QT,改为cmake工程管理,去掉渲染部分即可。 下方是…

Linux---vim编辑器(续写)

5. vim正常模式命令集 插入模式 按「i」切换进入插入模式「insert mode」, 按“i”进入插入模式后是从光标当前位置开始输入文件; 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按「o」进入插入模式…

从头开始学Spring—01Spring介绍和IOC容器思想

目录 1.Spring介绍 1.1Spring概述 1.2特性 1.3五大功能模块 2.IOC容器 2.1IOC思想 ①获取资源的传统方式 ②反转控制方式获取资源 ③DI 2.2IOC容器在Spring中的实现 ①BeanFactory ②ApplicationContext ③ApplicationContext的主要实现类 1.Spring介绍 1.1Sprin…

Linux系统一步一脚印式学习

Linux操作系统具有许多特点和优势。首先,它是开放源代码的,也就意味着任何人都可以对源代码进行查看和修改。其次,可以同时支持多个用户且可以同时执行多个任务,此外,Linux操作系统也非常稳定和安全。相对于其他操作系…

安全测试|常见SQL注入攻击方式、影响及预防

SQL注入 什么是SQL注入? SQL注入是比较常见的网络攻击方式之一,主要攻击对象是数据库,针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,篡改数据库。 SQL注入简单来说就是通过在表单中填写包含SQL关键…

SSD-60S施耐德电机保护器EOCR-SSD

EOCR主要产品有电子式电动机保护继电器,电子式过电流继电器,电子式欠电流继电器,电子式欠电压继电器,其它保护装置,电流互感器。EOCR-SSD 10-60A电机保护器 系列型号: EOCRSSD-05SEOCRssD-30s EOCRSSD-60SEOCRSSD-0…

开源即时通讯IM框架 MobileIMSDK v6.5 发布

一、更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes、Github Release Notes)。 MobileIMSDK 可能是市面上唯一同时支持 UDPTCPWebSocket 三种协议的同类开源IM框架。轻量级、高…

8种常见的CMD命令

1.怎么打开CMD窗口 步骤1:winr 步骤2:在弹出的窗口输入cmd,然后点击确认,就会出现一个cmd的窗口 2.CMD的8种常见命令 2.1盘符名称冒号 说明:切换盘的路径 打开CMD窗口这里默认的是C盘的Users的27823路径底下&#xf…

基于微信小程序+JAVA Springboot 实现的【网上商城小程序】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称: 基于微信小程序的网上商城 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java, SSM框架数据库: MySQL前端技术: 微信开发者工具,微信小程序框架 项目展示 5.1 管理员服务…

Mat: Unknown HPROF Version

问题:Mat 加载 android studio 导出的 hprof 文件失败 原因:android hprof 文件不是标准的 java hprof 文件 解决办法: 使用 android sdk 自带的命令将 hprof 转换成标准的 java hprof