我正在研究一个组合优化问题,我怀疑它是NP难的,遗传算法在我们的数据集中运行良好。我们是一个研究小组,并计划在我们的领域(不是数学或CS)发表我们的结果,我想在发送稿件进行审核之前探讨NP难题。
有两个主要问题:
1)我想知道是否已经研究过这个特定的优化问题。我已经大量搜索了灯,但没有看到任何完全一样的东西。
2)如果问题尚未得到研究,我可能会对进行还原性证明采取一些措施,并希望得到一些指向优秀的NP完全候选者的指标。
问题可以用两种方式描述,作为子序列变体,以及作为二分图问题。
在后续的味道中,我想找到一个允许排列的“宽松”子序列,并优化以最小化排列计数。例如:(。=任何其他字符)
查询:abc,目标:..b.a.b.c。,结果:abc(正常子序列)
查询:abc,目标:..b.a.c.a。,结果:bac(带有一个排列的子序列)
二分公式是匹配问题或线性分配问题,图形分为查询字符节点和目标字符节点。边缘将查询字符连接到目标字符,这样每个查询字符到目标字符只有一条边。目标函数是最小化边缘交叉的数量(在点亮时也称为“交叉数”)。这类似于二分图布局算法,它重新排序节点放置以最小化边缘交叉,但我的问题要求两个节点顺序保持固定。
专家对问题1或2的任何想法?
提前致谢!
答案 0 :(得分:0)
只是一些想法:它是否等于找到排序数组所需的最小交换次数(MIN-SBR)?如果是,则为NP-Hard。
(顺便说一下,你在做什么similar to this?)
答案 1 :(得分:0)
“单词问题”的问题应该更难,对吗? - J-16 SDiZ 14
是的,在目标中多次出现char似乎使我的问题比MIN-SBR更难,所以从这个角度来看,我的问题至少和NP-complete一样难。另一方面,我还不清楚他们关于块逆转的中心概念将如何影响我对NP完全性的主张。
我很高兴知道我的优化能否在多项式时间内得到解决。换句话说,如果审稿人回来时有五行伪代码在O(n)中找到全局最大值,那肯定会令人尴尬。
答案 2 :(得分:0)
会,查询:abc目标:..c.b.a.a结果:cba,是三个排列(根据你使用的术语)然后呢?如果是这样,那么也许你的意思是换位而不是排列。换位是两个相邻字符的交换。
好问题。我们对Query的映射感兴趣 - >具有尽可能少的交叉的目标。这是提到原始帖子中的二分边缘交叉的动机。或者,您可以考虑最大化排名统计,如Spearman的Rho,而不是映射。
此外,出于好奇,查询/目标中有多少个唯一字符? - Justin Peel 18
典型查询:100,典型目标:1000。组合起来,这是一个巨大的解决方案空间。
答案 3 :(得分:0)
我认为这不是NP难的。参见Pevzner和Hannehali的工作。想到的一篇论文题为“从卷心菜到萝卜”。我们的想法是找到从一个字符串到另一个字符串的最小倒数。他们有一个polytime算法。