correspondance de motifs à n dimensions

20

Quels sont les résultats connus pour trouver un sous-tableau exact à n dimensions dans un tableau à n dimensions?

Dans 1D, c'est juste un problème de correspondance de chaînes, KMP le fait en temps linéaire.

En 2D, cet article a montré que cela peut être fait en temps linéaire avec peu d'espace supplémentaire.

Ce problème peut-il être résolu dans le pire des cas en temps linéaire pour n'importe quelle dimension fixe?

Chao Xu
la source

Réponses:

13

Vous pouvez résoudre le problème dans un nombre fixe de dimensions en étendant la solution originale à temps linéaire de Bird de 1977 http://www.sciencedirect.com/science/article/pii/0020019077900175 (abonnement nécessaire malheureusement).

L'idée générale (en 2D) est à l'étape 1 de construire un automate Aho-Corasick des rangées du motif 2D puis d'alimenter les rangées du texte 2D une par une. Vous trouverez alors toutes les positions que les lignes du motif correspondent dans le texte. Pour terminer, il vous suffit maintenant de faire une recherche 1D pour les (étiquettes de) les lignes du motif dans le bon ordre dans une colonne dans la sortie de l'étape 1, en utilisant KMP say. Tout cela prend du temps linéaire.

En utilisant la même méthode, vous pouvez réduire de n'importe quel problème de correspondance exacte de dimension d à un problème de dimension d-1. De cette façon, vous obtenez une solution de temps linéaire pour toute dimension fixe d.

Raphael
la source
9

Il est possible de le résoudre en un temps presque (jusqu'à un facteur polylog) linéaire en utilisant des techniques FFT. Vous pouvez consulter le document: http://www.cs.tau.ac.il/~klim/papers/CEPR08.pdf où nous utilisons des techniques FFT pour l'appariement de motifs unidimensionnels. Si vous souhaitez résoudre la correspondance de motifs multidimensionnels, il vous suffit d'utiliser la FFT de haute dimension.

Klim
la source
Étant donné que l'article date de 2008, je suppose que les algorithmes de temps linéaire ne sont pas encore connus.
Chao Xu
Je ne l'ai donné qu'à titre d'exemple de technique pouvant être utilisée pour résoudre votre problème. Avantage de cette approche qui vous permet également de résoudre le problème des décalages et ne vous en souciez pas. Mais comme pour une correspondance exacte de motifs dimensionnels, il existe un temps linéaire alg. il se peut donc qu'il soit connu pour plusieurs dimensions.
Klim
1
Je pense que le résultat de base sur la correspondance de motifs avec les caractères génériques provient de Fischer et Paterson 1974, puis a été continuellement modifié et simplifié jusqu'à cs.bris.ac.uk/Publications/pub_master.jsp?id=2000602 (excuses pour l'auto-citation). Cependant, il peut être légèrement exagéré pour le problème demandé par l'OP étant donné l'ancienne méthode de correspondance exacte que je mentionne ci-dessous.
Raphael