【问题标题】:Disjoint Sets of Strings - Minimization Problem不相交的字符串集 - 最小化问题
【发布时间】:2021-08-11 14:25:44
【问题描述】:

有两组,s1s2,每组都包含一对字母。只有当它们的字母顺序相同时,一对才等效于另一对,因此它们本质上是字符串(长度为 2)。集合s1s2 是不相交的,两个集合都不为空,并且每对字母只出现一次。

以下是这两个集合的示例:

s1 = { ax, bx, cy, dy }
s2 = { ay, by, cx, dx }

(s1s2) 中所有字母的集合称为sl。集合sr 是您选择的一组字母,但必须是sl 的子集。您的目标是定义从sl 中的字母到sr 中的字母的映射m,当应用于s1s2 时,将生成集合s1's2',这也包含成对的字母,也必须是不相交的。

最明显的m 只是将每个字母映射到自身。在此示例中(如下所示),s1 等价于 s1's2 等价于 s2'(但对于任何其他 m,情况并非如此)。

a -> a
b -> b
c -> c
d -> d
x -> x
y -> y

目标是构造m,使sr(映射右侧的字母集)具有尽可能少的字母数。为此,您可以将sl 中的多个字母映射到sr 中的同一个字母。请注意,根据s1s2 以及m,您可能会破坏s1's2' 必须不相交的规则。例如,将sl 中的每个字母映射到sr 中的单个字母,显然会违反该规则。

那么,给定s1s2,如何构造一个m 以最小化sr,同时确保s1's2' 不相交?

这是问题的简化可视化:

【问题讨论】:

  • 使用您当前的公式,无需单独处理 s1s2,因为如果您只考虑单个集合 s = s1 ∪ s2,问题不会改变(即,对此的每个解决方案新问题是原始问题的解决方案,反之亦然)。这是你的意图吗?
  • 问题的关键部分是确保s1's2' 不相交。如果我们说只有一个输入集s = s1 ∪ s2,那么将m 应用于s 只会生成一个输出集s'。问题的关键部分消失了,因为我们不再有两个输出集来检查不相交性。所以不,我认为它们不是同一个问题。
  • 我明白了,谢谢你的解释!
  • 我正在寻找的解决方案是最小化sr 的解决方案。因此,将每个字符映射到自身确实是一种解决方案,但不是理想的解决方案。尽管我用字母(其中有 26 个英文字母)说明了问题,但我正在处理的真正问题使用 256 个字母的字母表。因此,m 有 256 ^ 256 种可能的排列方式。我需要一个可以在真实计算机上运行的算法,所以蛮力方法行不通。
  • 啊,好吧,对不起,我看错了。该应用程序正在优化解析器生成器。从本质上讲,s1s2 是一组字符串,它们是 UTF-8 编码的 Unicode 代码点(所以在真正的问题中,它们的长度可以是 1-4,而不总是长度为 2,但我认为这不是一个重要的细节)。如果我可以最小化m,那么我可以生成一个更小(因此更快;更少的缓存未命中)的解析器。

标签: algorithm set mathematical-optimization set-theory


【解决方案1】:

这个问题是 NP 难的,为了说明这一点,考虑将图形着色减少到这个问题。

证明: 令 G=(V,E) 是我们要计算最小graph coloring 问题的图。形式上,我们要计算图的色数,即最低的k,其中 G 为k colourable。

要将图形着色问题简化为此处描述的问题,请定义

 s1 = { zu : (u,v) \in E }
 s2 = { zv : (u,v) \in E }

其中z 是一个在构造s1s2 之外未使用的魔法值。

通过上述集合的构造,对于任何映射m 和任何边(u,v),我们必须有m(u) != m(v),否则将违反s1's2' 的不相交性。因此,任何最佳sr 是一组最佳颜色(z 除外),用于为图形 G 着色,m 是定义为哪个节点分配哪种颜色的映射。 QED。


上面的证明可能会给人一种直觉,即研究图形着色近似值将是一个好的开始,而且确实可能​​会,但其中涉及一个混淆因素。这个混淆因素是对于两个元素ab \in s1cd \in s2,如果m(a) = m(c) 然后m(b) != m(d)。从逻辑上讲,这相当于声明m(a) != m(c)m(b) != m(d)。这些类型的约束,孤立地,不能自然地映射到类似的图问题(因为 or 语句)。

有多种方法可以将此问题表述为(二进制)ILP 并以此方式解决。与自定义设计和调整的分支定界实现相比,这可能会给您(稍微)较差的结果(假设您想找到最佳解决方案),但可以使用交钥匙求解器。

如果您对近似值(可能有保证的最优比率)更感兴趣,我会调查 SDP 对您的问题的放松和适当的舍入方案。这种水平的工作可能会投资于一篇中小型研究论文。

【讨论】:

  • 感谢您清晰而彻底的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-14
  • 2012-11-06
  • 2021-05-15
  • 1970-01-01
相关资源
最近更新 更多