5

問題があり、それを解決するためのアルゴリズムが必要です。
私はそれを見つけることができず、問題がNP困難であるかどうかわかりません。

問題は次のとおりです。シンボルのシーケンスがいくつかあります。それらを単一のシーケンスにマージしたいのですが、元のシーケンスのすべてのシンボルが含まれ、シンボルの元の順序が維持されます。異なるシーケンスに由来する重複したシンボルは削除する必要があります。結果のシーケンスは、可能な限り最小のシーケンスである必要があります。

シーケンスの1つが「abc」の場合、結果のシーケンスは* a * b * c *である必要があります。ここで、*は0個以上のシンボルのシーケンスです。入力シーケンスが「abc」および「cba」の場合、出力は「abcba」である必要があり、「c」が1回含まれ、* a * b *c*および*c* b *a*プロパティが保持されます。

入力:

abcde
xbcaf
axdaf

それがどのようにマージされるか:

a-bcde--
-xbc--af
ax--d-af

出力:

axbcdeaf

複数の出力が可能です。「abcd」および「cba」は、「abcdba」、「abcbda」、または「abcbad」になります。必要な出力は1つだけです。その長さが可能な最小の長さであれば、どの出力も有効です。

感謝

4

1 に答える 1

5

この問題はShortestCommonSupersequenceと呼ばれ、NP完全であることが知られています。近似に問題がない場合は、次のようなものを検索して見つけることができます。最短の一般的なスーパーシーケンス問題の近似アルゴリズム:実験的分析、Baroneet。al(pdf)

于 2012-07-25T23:05:24.373 に答える