这是Subhasis's answer 的扩展和更正版本。
正式地,问题是,给定一个 n 字母表 V 和两个 m 字母单词,x em> 和 y,其中存在一个置换 p 使得 p(x) = y,确定组成 q 满足 q(x) 的最少交换次数(固定除两个元素之外的所有元素的排列) = 是。假设 n 字母词是从集合 {1, ..., m} 到 V 的映射,并且 p 和 q 是 {1, ..., m} 上的排列,动作 p(x) 被定义为组合 p 后跟 x.
组成为p的交换次数最少可以用p的循环分解来表示。当 j1, ..., jk 在 { 1, ..., m},循环(j1 ... jk) 是将 ji 映射到 ji + 1 for i in {1, ..., k - 1}, maps j k 到 j1,并将所有其他元素映射到自身。排列 p 是每个不同循环 (j p(j) p em>(p(j)) ... j'),其中 j 是任意的,而 p(j') = j。组合的顺序无关紧要,因为每个元素恰好出现在一个组合循环中。一个k-元素循环(j1 ... jk) 可以写成乘积 (j1jk sub>) (j1jk - 1) ... ( j1j2) 的 k - 1 个周期。一般来说,每个排列都可以写成 m 个交换的组合减去构成其循环分解的循环数。一个简单的归纳证明表明这是最优的。
现在我们进入 Subhasis 答案的核心。 提问者问题的实例与 欧拉 一对一对应(对于每个顶点,入度等于出-degree) 有向图 G,顶点 V 和 m 弧标记为 1, ..., m。对于 {1, ..., n} 中的 j,标记为 j 的弧从 y(j) 到 x(j)。 G 的问题是确定将 G 的弧划分为有向循环的部分可以有多少。 (因为 G 是欧拉,所以这样的划分总是存在的。)这是因为排列 q 使得 q(x em>) = y 与分区一一对应,如下所示。对于 的每个循环 (j1 ... jk) >q,有一个部分的有向循环由标记为 j1, ..., jk.
问题与 Subhasis 的 NP-hardness reduction 是 Eulerian 有向图上的弧不相交循环包装是一般有向图上的弧不相交循环包装的特例,所以后者的 NP 硬度结果对前者的复杂性状态没有直接影响。然而,在very recent work(参见下面的引文)中,已经表明,事实上,即使是欧拉特例也是 NP 难的。因此,通过上面的对应关系,提问者的问题也是如此。
正如 Subhasis 所暗示的,当字母表的大小 n 是固定的(固定参数可处理)时,这个问题可以在多项式时间内解决。由于弧没有标记时有 O(n!) 个可区分的循环,我们可以在大小为 O( mn),可区分子图的个数。在实践中,这对于(比方说)二进制字母表可能已经足够了,但是如果我试图尝试在具有大字母表的实例上完全解决这个问题,那么我可能会尝试分支定界,通过使用线性规划获得边界使用色谱柱生成分步填充循环。
@article{DBLP:journals/corr/GutinJSW14,
author = {Gregory Gutin and
Mark Jones and
Bin Sheng and
Magnus Wahlstr{\"o}m},
title = {Parameterized Directed \$k\$-Chinese Postman Problem and \$k\$
Arc-Disjoint Cycles Problem on Euler Digraphs},
journal = {CoRR},
volume = {abs/1402.2137},
year = {2014},
ee = {http://arxiv.org/abs/1402.2137},
bibsource = {DBLP, http://dblp.uni-trier.de}
}