【问题标题】:Consensus on multiple graphs多图共识
【发布时间】:2013-04-26 15:04:26
【问题描述】:

G = (V,E) 是一个有向无环图 (DAG)。 V 是顶点集,E 是边集。

现在,根据众包范式,假设 G 被人群中的一些注释者破坏:

  • 他们中的一些人可能决定删除属于E的一些边缘e
  • 他们中的一些人可能决定添加一个不存在的边 e

注释器i 的工作结果是一个图,其顶点集V 与原始图相同,而其边集Ei 可能与原始图不同。如果n 是注释器的数量,我们会得出n 不同的图,具有相同的顶点集V,但一组不同的边E。设G1 = (V,E1), ..., Gn = (V,En) 为图集。

我想知道是否有合并这些图的方法,以便在V 中的两个顶点v1,v2 之间找到每个可能的边e 的存在/不存在的共识。此操作的目的是融合每个注释者对图G 中边集E 的构造的意见。最终图必须是 DAG。

【问题讨论】:

  • 结果图是否必须是 DAG?如果是这样,这个问题(如果你想接受最大数量的边插入)概括了 NP-hard 反馈弧集问题,并且可能很难以最佳方式解决。但这取决于实际目标是什么。
  • @FalkHüffner 是的,它必须是一个 DAG。我听说过您提出的解决方案,但是由于我不熟悉它,我无法应用它。不过,我会更新问题文本。

标签: algorithm graph graph-theory crowdsourcing


【解决方案1】:

让...

  • U 是所有 Ei 集合加上原始集合 E 的唯一并集
  • T 是任意阈值
  • H(x) 是一些启发式函数
  • F 是最终的共识边集

伪代码:

for each Edge e in U
   if H(e) >= T then F.Add(e)

那么问题当然是如何定义您的启发式函数。一种天真的方法将基于投票设置。计算包含边的E 集的数量,如果有足够多的人同意它在图中,则将其包括在内。这是一个简单而高效的实现功能。这种启发式的一些弱点是它无法检测和补偿不良注释器或小人群。

【讨论】:

  • 感谢您的回答。但是,这样做可以引入一些循环,而我的目标是找到一个 DAG。也许可以引入一个约束,通过这样做:当一个循环被识别时,可以删除具有最小“投票”的弧。
  • 啊,说得好。您必须在合并级别添加约束。不允许循环注释是不够的,因为一个可以由一组独立的注释产生。
【解决方案2】:

对于每条边,计算包含它的图的数量。如果它大于某个阈值,则假定它是原始边缘。

如果某些操作有偏见,您可能会遇到一些问题。也就是说,每个用户都不会随机选择特定的边缘进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多