这个组合优化问题是否为NP难问题?

6
我正在处理一个组合优化问题,怀疑这是NP难问题,并且遗传算法在我们的数据集上表现良好。我们是一个研究小组,计划在我们的领域(不是数学或计算机科学)发表我们的结果,我想在将手稿提交审查之前探索NP难问题。
有两个主要问题:
1)我想知道是否已经研究了这个特定的优化问题。我已经仔细搜索了文献,但没有看到完全相同的内容。
2)如果该问题尚未研究,我可能会尝试进行可约简性证明,并希望获得一些指向好的NP完全候选项的指针。
该问题可以用两种方式描述,作为子序列变体和二分图问题。
在子序列变体中,我希望找到一个“放松”的子序列,允许排列,并优化以最小化排列计数。例如:(. = 任何其他字符)
查询:abc,目标:..b.a.b.c.,结果:abc(正常子序列)
查询:abc,目标:..b.a.c.a.,结果:bac(具有一个排列的子序列)
二分图公式是匹配问题或线性分配问题,其中图被分成查询字符节点和目标字符节点。边连接查询字符和目标字符,使得每个查询字符都恰好有一条边连接到目标字符。目标函数是最小化边交叉的数量(在文献中也称为“交叉数”)。这类似于二分图布局算法,可以重新排列节点位置以最小化边交叉,但我的问题要求两个节点顺序保持不变。
请问专家们对第1或第2个问题有何想法?
提前感谢!

如果你不是在数学或计算机科学领域发表文章,那么 NP 完全性的结果将是无关紧要的,只会让审稿的生物学家或医生感到烦恼。我有过这样的经历。 - piccolbo
你对排列的定义是什么?涉及到只有两个字符吗?还是只有相邻的两个字符?我认为排列在其一般意义上允许你重新排列整个字符串,但那么问题就变得简单了吧? - piccolbo
如果我证明它是NP难的,我能得到共同作者吗? - piccolbo
会有三种排列方式(根据您使用的术语)。如果是这样的话,那么您可能指的是交换而不是排列。交换是指两个相邻字符的交换。另外,出于好奇,查询/目标中有多少个唯一字符?目标:..c.b.a.a 查询:abc 结果:cba - Justin Peel
4个回答

2

我不认为这是NP难问题。请参考Pevzner和Hannehali的研究成果,其中一篇论文标题为“从卷心菜到萝卜”。其思路是找到从一个字符串到另一个字符串所需的最小逆序对数。他们已经提出了一个多项式时间复杂度算法。


2

仅仅是一些想法:这是否等同于找到排序数组所需的最小交换次数(MIN-SBR)?如果是,那么这是NP-Hard

(顺便问一下,你是否正在做类似于这个的东西?)


0

“单词问题”应该更难,对吧?- J-16 SDiZ 14

是的,在目标中有多个字符的出现似乎使我的问题比MIN-SBR更难,因此从这个角度来看,我的问题至少与NP完全一样困难。另一方面,我还不清楚他们的块翻转的核心概念会如何影响我关于NP完全性的声明。

我肯定想知道我的优化是否可以在多项式时间内解决。换句话说,如果审稿人用五行伪代码找到O(n)中的全局最大值,那将是非常尴尬的事情。


0

那么,根据您使用的术语,会有三个排列吗?如果是这样,那么也许您的意思是置换而不是排列。置换是交换两个相邻字符。

好问题。我们对从查询 -> 目标的映射感兴趣,该映射具有尽可能少的交叉。这非常是提到原始帖子中的二分图边交叉的动机。或者,您可以考虑在映射中最大化等级统计量,例如Spearman's Rho。

此外,出于好奇,查询/目标中有多少个唯一字符?- Justin Peel 18

典型查询:100,典型目标:1000。组合上,它是一个巨大的解空间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接