编辑两个分区之间的距离


17

我有两个分区,[1…n]正在寻找它们之间的编辑距离。

这样,我想找到从分区A到分区B所需的节点到不同组的单个转换的最小数量。

例如,从{0 1} {2 3} {4}到的距离为{0} {1} {2 3 4}2

搜索之后,我发现了这篇论文,但是a)我不确定他们是否考虑了在他们距离内的组的排序(我不在乎)b)我不确定它是如何工作的,c)没有参考。

任何帮助表示赞赏


5
您认为{0 1 2 3}与{0 1} {2 3}之间的距离是多少?会是2吗?其次,我根本不明白为什么“图”会出现在图片中。听起来您有两个[n]分区,并且想要计算它们之间的距离。
— Suresh Venkat

是的,那将是两个。实际上,这些是图的节点上的集合分区(即图分区)。这对解决方案可能并不重要,但这是我要解决的问题,因此我为什么要提到它。
— zenna

3
如果图形不相关,请从您的问题中删除所有对“图形”和“节点”的引用;它没有帮助,它分散了注意力。
— Jukka Suomela 2011年

不能根据分隔格上的距离​​来定义编辑距离吗?
— Tegiri Nenashi

@Tegiri-这确实是partititons晶格上的测地距离。不幸的是,对于任何大于10的基数集,都无法计算该晶格。
— zenna 2011年

Answers:


21

该问题可以转化为分配问题,也称为最大加权二分匹配问题。

首先请注意,编辑距离等于需要从一组更改为另一组的元素的数量。这等于元素总数减去不需要更改的元素数目。因此,找到不更改的最小元素数量等同于找​​到不更改的最大顶点数量。

让和B = { BA={A1,A2,...,Ak}是分区 [ 1 ,2 ,。。。,n ]。同样,在不失一般性的前提下,令B={B1,B2,...,Bl}[1,2,...,n](允许的,因为 Ë d 我吨k≥l,...,乙ķ全部为空集。则不变的最大顶点数为:)。然后让乙升+ 1,乙升+ 2edit(A,B)=edit(B,A)Bl+1Bl+2Bk

maxf∑i=1k|Ai∩Bf(i)|

其中是的置换[ 1 ,2f。[1,2,...,k]

这正是顶点为,...,A k,B 1,...,B k且边为权重为|对(A i,B j)的赋值问题。甲我 ∩ 乙ĴA1AkB1Bk(Ai,Bj)。可以在 O (| V | 2 log | V | + | V | | E中解决|一种一世∩乙Ĵ|时间中解决。Ø(|V|2日志⁡|V|+|V||Ë|)


您能否命名该算法,该算法会增加时间复杂度?
— D-503

我相信@bbejot指的是连续最短路径算法(子例程Dijkstra使用斐波那契堆来实现)。
— 威

我花了很长时间来解析它,因为我不是数学家,但谢谢。我花了很长时间进行搜索,这是我唯一能找到的东西,它显示了如何将分区距离问题转换为赋值问题,或者转换为可以从某个Python库调用的任何算法。(对我来说,最困难的部分是弄清楚如何使用scipy.optimize.linear_sum_assignment,然后根据这些指令设置矩阵。)
— Sigfried

我需要使权重为负。否则scipy.optimize.linear_sum_assignment会为我提供0。
— Sigfried

2

看看本文的PDF

http://www.ploscompbiol.org/article/info:doi/10.1371/journal.pcbi.0030160

我想您所需要的正是编辑距离的定义。“引用”分区将是(任意)两个分区之一,另一个分区就是另一个分区。还包含相关引用。

最好,罗布


谢谢罗伯。但是,除非我缺少任何内容,否则这是根据拆分合并移动定义的编辑距离。对这些进行了充分的研究,正如论文所指出的那样,信息的变化是对此进行信息理论的度量。但是,我对单元素移动过渡感兴趣。
— zenna 2011年

1

可能不正确的周日凌乱的想法:

Wlog,令为具有更多集合的分区,P 2为另一个。首先,分配互不相同的名字ñ 1(小号)∈ Σ你套P 1。然后,通过以下规则找到集合P 2的最佳命名n 2(S ):P1个P2ñ1个(小号)∈ΣP1个ñ2(小号)P2

  • 为小号∈ P 2与小号∩ 小号'最大在所有小号' ∈ P 1 ; 如果有多种选择,则选择冲突最少的一种。ñ2(小号):=ñ1个(小号′)小号∈P2小号∩小号′小号′∈P1个
  • 如果现在对于一些小号≠ 小号',分配一个股更少的元件小号“,Ñ 1(小号”)ñ2(小号)=ñ2(小号′)小号≠小号′,该组的名称在 P 1小号'',ñ1个(小号'')=ñ2(小号)P1它共享第二多的元素,即让它竞争该集合的名称。
  • 如果不能应用前一个规则,请检查两个集合是否可以竞争与它们共享较少元素的其他集合的名称(它们可能仍具有来自某些S的更多元素”比我被分配它的名字套!)。如果是这样,则将该名称分配给 S ,S '中的一个S″∈P1S,S′,该名称与它们可以竞争其名称的各个集合共享更多元素;另一个保留以前冲突的名称。
  • 重复此过程,直到解决所有冲突。由于集合少于P 2,因此有足够的名称。P1P2

现在,你可以考虑你的元素的比特串WRT无论是分区,即和w ^ 2 = ñ 2(1 )·&⋯ ·&ñ 2(ñ )(与ñ Ĵ(我)= ñ Ĵ(小号),我∈ 小号∈ P Ĵw1=n1(1)⋅⋯⋅n1(n)w2=n2(1)⋅⋯⋅n2(n)nj(i)=nj(S),i∈S∈Pj)。然后,期望量是,即位串之间的汉明距离。dH(w1,w2)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.