如何找到幂集的子集的最短表示形式?


13

我正在寻找解决以下问题的有效算法或NP硬度的证明。

令为一个集合,为的子集。找到一个最小长度的序列,使得对于每个,都有一个使得。ΣAP(Σ)ΣwΣLAkN{wk+i0i<|L|}=L

例如,对于,单词是该问题的解决方案,因为对于存在,对于,。w = b a c { a b } k = 0 { a c } k = 1A={{a,b},{a,c}}w=bac{a,b}k=0{a,c}k=1

至于我的动机,我试图表示一个有限自动机的边集,其中每个边都可以用输入字母中的一组字母来标记。我想存储一个字符串,然后在每个边缘保留一对指向该字符串的指针。我的目标是最小化该字符串的长度。


1
换句话说,问题在于将集排序为序列使最大化?| 大号大号+ 1 |L1,,Ln|LiLi+1|
KarolisJuodelė13年

@KarolisJuodelė,我认为这还不够,因为对于您可能不得不将元素放入两次,即使它们在。例如,您可以在前两个或后两个之间共享,但不能共享所有a中最短的a将是。大号大号+ 2瓦特大号+ 1 { { 一个b } { 一个Ç } { 一个d } } 一个瓦特b 一个Ç 一个dLi,Li+1,Li+2LiLi+2wLi+1{{a,b},{a,c},{a,d}}awbacad
avakar 2013年

@KarolisJuodelė,此外,在某些情况下,对于某些,,这使得情况变得更加复杂,因为在这种情况下,“邻居排序”可能不完整。大号大号ĴijLiLj
avakar 2013年

只是为了振作起来,如果我对的问题正确,集合是否为,然后一个单词满足给出的要求,但是(可能)这样的单词和解决方案最少是吗?:)c o w o w l w o l f c o w l fA={{c,o,w},{o,w,l},{w,o,l,f}}cowowlwolfcowlf
MindaugasK

@MindaugasK,这是正确的,非常好的例子:)
avakar

Answers:


4

我相信我从哈密​​顿路径中得到了减少,从而证明了NP-hard问题。

如果单词满足的条件,则称它为见证人(对于中的每个,都有使得)。大号1 { 瓦特+ | 0 < | L | } = LwΣALAm1{wm+i0i<|L|}=L

考虑原始问题的决策版本,即,确定对于某个和,是否有一个证人的长度最大为。可以使用原始问题作为多项式时间内的预言来解决此问题(找到最短的见证人,然后将其长度与进行比较)。ķ 0 ķ ķAk0Akk

现在为减少的核心。令是一个简单的,无向的连通图。对于每个,令为包含顶点及其所有相邻边的集合。设置和。那么,当且仅当存在见证者的的长度至多为才具有哈密顿路径。v V 大号v = { v } { Ê Ë | v ë } v Σ = Ë = { 大号v | v V } g ^ 2 | E | + 1G=(V,E)vVLv={v}{eEve}vΣ=EA={LvvV}GA2|E|+1

证明。令是的哈密顿路径,并且是路径上所有边的集合。对于每一个顶点,定义该组。选择任意排序每个。字为证人,由于由子表示,乘,对于每个,, ģ ħ = { ë 1ë 2... ë ñ - 1 } v Ù v = 大号vħ α v Ù v瓦特= α v 1 Ë 1个α v 2 ë 2 ... ë ñ - 1 α vv1e1v2en1vnGH={e1,e2,,en1}vUv=LvHαvUv大号 v 1 α1Ë1大号 v ñ ë ñ - 1个 αÑv{1Ñ}大号 v ë- 1 ü v ëÈ瓦特| V| 1HV| w| =2| E| +1w=αv1e1αv2e2en1αvnALv1α1e1Lvnen1αnvii{1,n}Lvi由。此外,每个边缘在出现两次,但的边缘出现一次,而每个顶点出现一次,给出。ei1uvieiEw|V|1HV|w|=2|E|+1

对于另一个方向,令成为长度最大为的任意证明。显然,每个和至少在中出现一次。在不失一般性的前提下,假设每个最多在中出现两次,而每个恰好出现一次。否则,可以通过从删除元素来找到较短的见证人。令是在出现一次的所有边的集合。给定以上假设,可以认为。A 2 | E | + 1 Ë Ë v V 瓦特Ë Ë 瓦特v V 瓦特ħ ë 瓦特| w | = 2 | E | - | H | + | V |wA2|E|+1eEvVweEwvVwHEw|w|=2|E||H|+|V|

考虑的一个连续串形式的,其中,。我们说是相邻的。注意,如果,则,因为仅发生一次,但它与两个顶点相邻。因此,最多可以在。类似地,在第一个顶点之前或最后一个顶点之后的中,任何边都不会出现。ü ë 1 Ë 2 ... Ë ķ v ü v V ë é ù v È ħ Ê = { ü v } È ģ ë ħ ħ 瓦特wue1e2ekvu,vVeiEu,veiHei={u,v}eiGeiHHw

现在,顶点,因此。从那里开始,。由于我们假设,我们得到相等。从那里我们得到。根据鸽洞原理,在相邻的每对顶点之间有一个从到的边。表示从所有元素在它们出现的顺序。因此,是的哈密顿路径。| H | | V | 1 | w | 2 | E | + 1 | w | 2 | E | + 1 | H | = | V | 1 H w h 1 h 2h n 1 H w v 1 h 1 v 2 h|V||H||V|1|w|2|E|+1|w|2|E|+1|H|=|V|1Hwh1h2hn1Hw ģ v1h1v2h2hn1vnG

由于确定哈密顿路径存在性的问题是NP-hard,而上述归约是多项式,因此原来的问题也是NP-hard。

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.