(Un grand merci à Gilad Barkan (גלעד ברקן) de m'avoir informé de cette discussion.)
Permettez-moi de partager mes réflexions sur ce problème d'un point de vue purement théorique (notez que j'utilise également "facteur" au lieu de "sous-mot").
Je pense qu'une définition suffisamment formelle du ou des problèmes considérés ici est la suivante:
Étant donné un mot w, trouvez les mots u_1, u_2, ..., u_k tels que
- u_i! = u_j pour chaque i, j avec 1 <= i <j <= k et
- u_1 u_2 ... u_k = w
Variante de maximisation (nous voulons plusieurs u_i): maximiser k
Variante de minimisation (nous voulons u_i court): minimiser max {| u_i | : 1 <= i <= k}
Ces problèmes deviennent des problèmes de décision en donnant en plus une borne B, qui, selon que nous parlons de la variable "plusieurs facteurs" ou de la variable "facteurs courts", est une borne inférieure sur k (nous voulons au moins B ou une borne supérieure sur max {| u_i | : 1 <= i <= k} (nous voulons des facteurs de longueur au plus B), respectivement. Pour parler de dureté NP, nous devons parler de problèmes de décision.
Utilisons les termes SF pour la variable "facteurs courts" et MF pour la variante "nombreux facteurs". En particulier, et c'est un point vraiment crucial, les problèmes sont définis de telle manière que nous obtenons un mot sur un alphabet qui n'est en aucune façon restreint. La version du problème était que nous savons a priori que nous ne récupérons que les mots d'entrée, disons que l'alphabet {a, b, c, d} est un problème différent! La dureté NP ne passe pas automatiquement de la variante "sans restriction" à la variante "alphabet fixe" (cette dernière peut être plus simple).
SF et MF sont des problèmes NP-complets. Cela a été montré dans [1, 1b] et [2], respectivement (comme Gilad l'a déjà souligné). Si je comprends bien la définition du problème informel (peut-être aussi) ici au début de cette discussion, alors le problème de cette discussion est exactement le problème MF. Il n'est pas mentionné au départ que les mots sont restreints pour provenir d'un alphabet fixe, plus tard on dit que nous pouvons supposer que seules les lettres minuscules sont utilisées. Si cela signifie que nous ne considérons que les mots sur l'alphabet fixe {a, b, c, ..., z}, alors cela changerait beaucoup en termes de dureté NP.
Un examen plus approfondi révèle certaines différences de complexité de SF et MF:
- l'article [1, 1b] montre que SF reste NP-complet si nous fixons l'alphabet à un binaire (plus précisément: obtenir un mot w sur les lettres a et b et une borne B, peut-on le factoriser en facteurs de longueur distincts à la plupart des B?).
- l'article [1, 1b] montre que SF reste NP-complet si nous fixons la borne B = 2 (plus précisément: en obtenant un mot w, pouvons-nous le factoriser en facteurs distincts de longueur au plus 2?).
- l'article [3] montre que si à la fois l'alphabet et la borne B sont fixes, SF peut être résolu en temps polynomial.
- l'article [2] montre que MF est NP-complet, mais seulement si l'alphabet n'est pas restreint ou fixé a priori! En particulier, il ne répond pas à la question si le problème est NP-complet si nous considérons uniquement les mots saisis sur un alphabet fixe (comme c'est généralement le cas dans les paramètres pratiques).
- l'article [3] montre que MF peut être résolu en temps polynomial si les bornes d'entrée B sont à nouveau limitées par une constante, c'est-à-dire que le problème entré est un mot et une borne B de {1, 2, ..., K} , où K est une constante fixe.
Quelques commentaires sur ces résultats: Wrt (1) et (2), il est intuitivement clair que si l'alphabet est binaire, alors, pour rendre le problème SF difficile, la borne B ne peut pas être fixée aussi. Inversement, fixer B = 2 signifie que la taille de l'alphabet doit être assez grande pour produire des instances difficiles. En conséquence, (3) est plutôt trivial (en fait, [3] en dit un peu plus: on peut alors le résoudre en temps d'exécution non seulement polynomial, mais aussi | w | ^ 2 fois un facteur qui ne dépend que de la taille de l'alphabet et lié B). (5) n'est pas difficile non plus: si notre mot est long par rapport à B, alors nous pouvons obtenir la factorisation souhaitée en découpant simplement en facteurs de longueurs différentes. Sinon, alors nous pouvons forcer toutes les possibilités, ce qui n'est exponentiel que dans B, qui dans ce cas est supposé être une constante.
Donc, l'image que nous avons est la suivante: SF semble plus difficile, car nous avons la dureté même pour les alphabets fixes ou pour une borne fixe B. Le problème MF, d'autre part, devient résolu poly-temps si la borne est fixe (dans à cet égard, il est plus facile que SF), tandis que la question correspondante par rapport à la taille de l'alphabet est ouverte. MF est donc légèrement moins complexe que SF, même s'il s'avère que MF pour les alphabets fixes est également NP-complet. Cependant, s'il peut être démontré que MF peut être résolu pour des alphabets fixes en poly-temps, alors MF s'avère beaucoup plus facile que SF ... car le seul cas pour lequel il est difficile est quelque peu artificiel (alphabet illimité!) .
J'ai fait des efforts pour essayer de résoudre le cas de la MF avec un alphabet borné, mais je n'ai pas pu le régler et j'ai cessé de travailler dessus depuis. Je ne crois pas que d'autres chercheurs aient essayé très fort de le résoudre (donc ce n'est pas un de ces problèmes ouverts très difficiles, beaucoup de gens ont déjà essayé et échoué; je le considère en quelque sorte faisable). Je suppose que c'est aussi NP-difficile pour les alphabets fixes, mais peut-être que la réduction est si compliquée que vous obtiendrez quelque chose comme "MF est difficile pour les alphabets de taille 35 ou plus" ou quelque chose, ce qui ne serait pas super sympa non plus .
Concernant la littérature, je connais l'article [4], qui considère le problème de la division d'un mot w en facteurs distincts u_1, u_2, ..., u_k qui sont tous des palindromes, qui est également NP-complet.
J'ai jeté un rapide coup d'œil au papier [5], souligné par Gilad. Il semble cependant considérer un cadre différent. Dans cet article, les auteurs s'intéressent à la question combinatoire du nombre de sous-séquences ou sous-mots distincts qui peuvent être contenus dans un mot donné, mais ceux-ci peuvent se chevaucher. Par exemple, aaabaab contient 20 sous-mots différents a, b, aa, ab, ba, bb, aaa, aab, aba, baa, aaab, aaba, abaa, baab, aaaba, aabaa, abaab, aabaab, aaabaa, aaabaab (peut-être que je mal compté, mais vous avez l'idée). Certains d'entre eux n'ont qu'une seule occurrence, comme baa, certains plusieurs, comme aa. Dans tous les cas, la question n'est pas de savoir comment diviser le mot pour obtenir de nombreux facteurs distincts, car cela signifie que chaque symbole individuel contribue à exactement un facteur.
En ce qui concerne les solutions pratiques à ce genre de problèmes (gardez à l'esprit que je suis théoricien, alors prenez cela avec du grain de sel):
À ma connaissance, il n'y a pas de bornes inférieures théoriques (comme la dureté NP) qui l'excluraient pour résoudre MF en temps polynomial si nous considérons uniquement les mots saisis sur un alphabet fixe. Il y a cependant une mise en garde: si vous obtenez un algorithme poly-temps, alors il devrait fonctionner de façon exponentielle dans le nombre de symboles de l'alphabet fixe (ou exponentiel dans une fonction de cela)! Sinon, ce serait aussi un algorithme de temps polynomial pour le cas des alphabets illimités. Donc, en tant que théoricien, je chercherais des tâches algorithmiques qui peuvent être calculées en exponentielle dans le temps uniquement si le nombre de symboles et qui aident en quelque sorte à concevoir un algorithme pour MF. D'un autre côté, il est probable qu'un tel algorithme n'existe pas et MF est également NP-difficile dans le cas de l'alphabet fixe.
Si vous êtes intéressé par des solutions pratiques, il pourrait être utile d'approximer la solution. Il ne serait donc pas trop mauvais d'obtenir une factorisation garantie qui ne serait que la moitié de la valeur optimale dans le pire des cas.
Heuristique qui ne donne pas un rapport d'approximation prouvable, mais qui fonctionne bien dans un cadre pratique serait également intéressant, je suppose.
La transformation des instances de problème en instances SAT ou ILP ne devrait pas être trop difficile et vous pouvez alors exécuter un solveur SAT ou ILP pour obtenir même des solutions optimales.
Mon opinion personnelle est que même si l'on ne sait pas si le cas de l'alphabet fixe de MF est NP-difficile, il y a suffisamment de connaissances théoriques qui suggèrent que le problème est suffisamment difficile pour qu'il soit justifié de rechercher des solutions heuristiques, etc. fonctionnent bien dans un cadre pratique.
Bibliographie:
[1] Anne Condon, Ján Manuch, Chris Thachuk: La complexité du partitionnement des chaînes. J. Algorithmes discrets 32: 24-43 (2015)
[1b] Anne Condon, Ján Manuch, Chris Thachuk: Complexité d'un problème de partition de chaîne sensible aux collisions et sa relation avec la conception Oligo pour la synthèse des gènes. COCOON 2008: 265-275
[2] Henning Fernau, Florin Manea, Robert Mercas, Markus L. Schmid: Pattern Matching with Variables: Fast Algorithms and New Hardness Results. STACS 2015: 302-315
[3] Markus L. Schmid: Calcul des factorisations de chaînes sans égalité et répétitives. Théor. Comput. Sci. 618: 42-51 (2016)
[4] Hideo Bannai, Travis Gagie, Shunsuke Inenaga, Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski, Shiho Sugimoto: la factorisation palindromique diversifiée est NP-Complete. Int. J. Trouvé. Comput. Sci. 29 (2): 143-164 (2018)
[5] Abraham Flaxman, Aram Wettroth Harrow, Gregory B. Sorkin: Des cordes avec un maximum de sous-séquences et de sous-chaînes distinctes. Electr. J. Comb. 11 (1) (2004)
aab|a|b|aa
est toujours 4