- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我对 VF2 算法实现有疑问。在许多情况下,一切似乎都运行良好,但有一个问题我无法解决。
该算法不适用于以下示例。在这个例子中,我们正在比较两个相同的图形(见下图)。起始顶点为 0。在s0内部计算出的集合P,存储了所有顶点对的幂集。
下面是关于 VF2 的出版物中包含的伪代码,我的实现基于此。
/*右边的注释描述了我对代码的理解方式:
我不确定创建 P() 集是否有效,如下所述。对的幂集按字典顺序按对的第一个值和第二个值进行迭代。
PROCEDURE Match(s)
INPUT: an intermediate state s; the initial state s0 has M(s0)=empty
OUTPUT: the mappings between the two graphs
IF M(s) covers all the nodes of G2 THEN
OUTPUT M(s)
ELSE
Compute the set P(s) of the pairs candidate for inclusion in M(s)
/*by powerset of all succesors from already matched M(s) if not empty or
/*predestors to already matched M(s) if not empty
/*or all possible not included vertices in M(s)
FOREACH (n, m)∈ P(s)
IF F(s, n, m) THEN
Compute the state s ́ obtained by adding (n, m) to M(s)
/*add n to M1(s), exclude from T1(s)
/*add m to M2(s), exclude from T2(s)
/*M1(s) is now M1(s'), other structures belong to s' too
CALL Match(s′)
END IF
END FOREACH
Restore data structures
/*Return all structures as from before foreach
END IF
END PROCEDURE
当算法进入 s4 时,当从函数返回时,它会丢失有关良好顶点匹配的信息。它导致搜索子图同构 ({(0,0),(1,1),(2,2),(5,3),(6,4)}) - 即使图是同构的。
我在这里做错了什么?
最佳答案
我认为要了解您的问题“我在这里做错了什么”,有必要在此处包含您的一些代码。您根据论文中提供的伪代码自己重新实现了代码?或者您是在一些图形处理包的帮助下进行匹配的?
对我来说,我没有时间深入研究细节,但我也使用图形,所以我尝试使用 networkx(一个 Python 包)和 Boost 1.55.0 库(非常广泛的图形 C++ 库)。您的示例和另一个具有 1000 个节点、1500 条边的图形示例返回正确的匹配(将图形与自身匹配的简单情况)。
import networkx as nx
G1 = nx.Graph()
G2 = nx.Graph()
G1.clear()
G2.clear()
G1.add_nodes_from(range(0,7))
G2.add_nodes_from(range(0,7))
G1.add_edges_from([(0,1), (1,2), (2,3), (3,4), (2,5), (5,6)])
G2.add_edges_from([(0,1), (1,2), (2,3), (3,4), (2,5), (5,6)])
from networkx.algorithms import isomorphism
GM = isomorphism.GraphMatcher(G2,G1)
print GM.is_isomorphic()
GM.mapping
正确
输出[39]:{0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6}
关于algorithm - VF2算法——实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19883567/
我在用 ffmpeg -y -ss 00:02:24.643 -fflags +igndts -t 00:00:39.337 -i 1.mp4 -r 60 -c:v libx264 -copytb 1
我有一个包含 2 个日期字段和搜索按钮的 VF 页面。 点击搜索我得到了一些结果。我还有另一个按钮来打印这些结果,它只是一个呈现为 pdf 的新 VF 页面。 我想将这个日期值传递到 printVF
我想使用 -filter_complex和 -vf放在一行中,但我不能这样做并出错。 第一个代码: ffmpeg -i 1.mp4 -filter_complex "[0:v]setpts=0.87*
我想在对象中显示一个字段以仅显示整个数字/整数值。该字段在结构中具有十进制值,但我只需要显示此 VF 页面的整数值。
我正在尝试使用存储在文件 filter.txt 中的模式从 data.txt 过滤数据。如下所示, grep -v -f filter.txt data.txt > op.txt 对于 filter.
我有一个使用 snprintf 和 vsnprintf 将字符串打印到缓冲区的应用程序。目前,如果它检测到溢出,它会在字符串末尾附加一个 > 作为字符串被截断的标志,并向 stderr 打印警告。我正
我正在尝试在不同时间点用多个图像覆盖视频。这里的问题是图像可能比视频大,但它们应该按比例缩小(保持纵横比)并且缺失的空间应该用黑色填充。 这是我到目前为止所拥有的: -i 'input_video.m
我正在运行这个命令 ffmpeg -i "video_in.mp4" -vf "movie=watermark.png [watermark]; [in][watermark] overlay=mai
我正在使用 php 创建具有淡入淡出效果的视频。但是 exec() 函数给出以下输出: 数组(19){ [0]=> string(67) "FFmpeg 版本 0.6.1,版权所有 (c) 2000-
我有这个工作: ffmpeg -input_format yuyv422 -f v4l2 -s 800x448 -r 30 -i /dev/video0 -vf "[in]drawtext=fontf
我正在尝试使用 FFmpeg 进行一些复杂的视频转码(例如连接多个文件)。为此,我一直在尝试使用 filter_complex,但我注意到我之前使用普通视频过滤器看到的质量略有下降。 为了仔细检查,我
我想将一些视频与视频最终输出的一些特定功能(视频速度、音量增加、分辨率、旋转、帧率)结合起来 我们可以分两步完成这个过程,比如 合并视频 ffmpeg -i test1.mp4 -i test2.mp
我正在构建一个 VF 页面,目的是轻松浏览自定义报告。我刚刚开始学习代码,可以使用额外的眼睛来帮助识别我的错误。 两个问题是: 第三层菜单悬停不出现(我试过很多css代码组合) 初始链接在 iFram
我用命令编辑视频 ffmpeg -i video.mp4 -y -vf eq=saturation={rand_saturation},fade=in:st=0:d={rand_fade},hflip
我正在使用以下命令在 mac 上将视频转换为 FFMPEG 中的 gif: ffmpeg -i screenAnimation2.mov -i palette.png -lavfi paletteus
我需要制作一个带有叠加 png 的慢动作视频。 源视频为 240fps 和 h265 (HEVC) 我想制作一个 24fps 的视频 -vf "setpts=(10/1)*PTS" 覆盖 .png 图
ffmpeg -i "udp://localhost:2117" -vf "movie= logo3.png [logo];[in] [logo]overlay= 30:70 [out]" -c:a
我将此代码用于裁剪视频: crop=2/3*in_w:2/3*in_h 并使用更改颜色: -vf mp=eq2=3.0:0.0:1.0:0.0:3.0:3.0:1.0 我如何使用组合这个命令? 我试过
我正在使用以下命令覆盖 jpg: ffmpeg -i in.mp4 -vf "movie=bb.png [movie]; [in] [movie] overlay=0:0 [out]"-vcodec
我正在将 VF 页面导出为 Excel 文档。当我导出 excel 文件时,图像单元格包含空白数据。下面是我的 VF 页面代码。如果我使用静态 url ( ) 而不是动态图像 url,它工作正常。
我是一名优秀的程序员,十分优秀!