Que sait-on de la complexité exacte du problème de chaîne la plus courte? Peut-il être résolu plus rapidement que ? Existe-t-il des algorithmes connus qui résolvent la super chaîne la plus courte sans réduire au TSP?
UPD: supprime les facteurs polynomiaux.
Le problème de superstring le plus court est un problème dont la réponse est la chaîne la plus courte qui contient chaque chaîne d'un ensemble donné de chaînes. La question porte sur l'optimisation de l'extension d'un célèbre problème NP-Shortest Superstring (Garey et Johnson, p.228).
cc.complexity-theory
ds.algorithms
graph-theory
tsp
exp-time-algorithms
Alex Golovnev
la source
la source
Réponses:
En supposant que les chaînes ont un polynôme de longueur en , alors oui, il y a au moins 2 n - Ω ( √n solution de temps. La raison en est la réduction bien connue du problème de superstring commun le plus court à ATSP avec des poids entiers de taille polynomiale, que vous pouvez à votre tour résoudre par interpolation polynomiale si vous pouvez compter les cycles hamiltoniens dans un multigraphe dirigé. Ce dernier problème a un2n-Ω( √2n−Ω(n/logn√) solution de temps.
Björklund 20122n−Ω(n/logn√)
La réduction de l'ATSP avec les poids pour chaque paire de sommets u , v au comptage de cycle hamiltonien se déroule comme suit:wuv u,v
Pour , où w sum est une borne supérieure sur toutes les sommes de n poids dans l'instance ATSP, construisez un graphique G r où vous remplacez chaque poids w u v par r w u v arcs à partir de u à v .r=1,2,⋯,wsum wsum n Gr wuv rwuv u v
En résolvant le comptage du cycle hamiltonien pour chaque , vous pouvez, par interpolation polynomiale, construire un polynôme ∑ w somme l = 0 a l r l avec un l égal au nombre de tours TSP dans le graphique d'origine du poids l . Ainsi, la localisation du plus petit l tel que a l est non nul résout le problème.Gr ∑wsuml=0alrl al l l al
la source
J'ai étudié le problème et j'ai trouvé des résultats. La chaîne commune la plus courte (SCS) peut être résolue dans le temps avec seulement un espace polynomial ( Kohn, Gottlieb, Kohn ; Karp ; Bax, Franklin ).2n
L'approximation la plus connue est (Paluch).21130
La meilleure approximation connue de la compression est (Paluch).34
Si SCS peut être approximé par un facteur sur l'alphabet binaire, alors il peut être approximé par un facteur α sur n'importe quel alphabet ( Vassilevska-Williams ).α α
SCS ne peut être approché avec un rapport meilleur que moins que P = NP ( Karpinski, Schmied ).1.0029
La compression maximale ne peut être approchée avec un rapport meilleur que moins que P = NP ( Karpinski, Schmied ).1.0048
Je serais reconnaissant pour tout ajout et suggestion.
la source
Voici le problème de super chaîne le plus court: on vous donne chaînes s 1 , … , s n sur un alphabet Σ et vous voulez trouver la chaîne la plus courte sur Σ qui contient chaque s i comme sous-séquence de caractères consécutifs, c'est-à-dire une sous-chaîne.n s1,…,sn Σ Σ si
Lorsque nous parlons d'algorithmes exacts pour le problème, trouver la longueur de la chaîne la plus courte équivaut à trouver la compression maximale C qui est la somme de tous les chevauchements de chaînes consécutifs dans la chaîne supérieure, c'est-à-dire C = ∑ i | s i | - L .L C C=∑i|si|−L
Autant que je sache, l'algorithme exact le plus rapide pour les supercordes les plus courtes s'exécute dans ( 2 n ) où n est le nombre de chaînes. Il s'agit d'un algorithme de programmation dynamique simple similaire à l'algorithme de programmation dynamique pour le chemin le plus long (et d'autres problèmes):O∗ 2n n
Pour chaque sous-ensemble de chaînes et chaîne v dans S, nous calculons la compression maximale sur toutes les super- chaînes sur S où v est la première chaîne apparaissant dans la super-chaîne, la stockant sous la forme C (( v , S )). Pour ce faire, nous traitons d'abord tous les sous-ensembles avec un seul élément, puis nous construisons les valeurs C (( v , S )) pour les sous-ensembles S sur k chaînes à partir de celles sur k - 1 chaînes. Plus précisément:S v S S v v,S v,S S k k−1
Pour chaque chaîne nous examinons tous les sous-ensembles S ′ sur k - 1 chaînes qui n'incluent pas u et fixons la valeur pour ( u , u ∪ S ′ ) au maximum sur les chaînes v dans S ′ de la somme du maximum chevauchement de u avec v avec C (( v , S ′ )).u S′ k−1 u u,u∪S′ v S′ u v v,S′
L'exécution finale n'est pas supérieure à O ( ) où l est la longueur de chaîne maximale.n22n+n2l l
Il y a de meilleurs algorithmes si vous supposez que est petit, ou que les chevauchements par paire sont petits, la taille de l'alphabet est petite, etc., mais je ne connais aucun algorithme plus rapide que 2 n .l 2n
la source