Étant donné un groupe de permutations sur [ n ] = { 1 , ⋯ , n } , et deux vecteurs u , v ∈ Γ n où Γ est un alphabet fini qui n'est pas tout à fait pertinent ici, la question est de savoir s'il existe des π ∈ G tel que π ( u ) = v où π ( u ) signifie appliquer la permutation π sur u de manière attendue.
Supposons en outre que soit donné, en entrée, par un ensemble fini S de générateurs. Quelle est la complexité du problème? En particulier, est-ce en NP?
Réponses:
Soit où S n est le groupe de permutation sur n éléments. Vérifier si g ∈ ⟨ g 1 , ... , g k ⟩ peut être fait dans NC ⊆ P par [1]. Soit u , v ∈ Γ n , puis devinez simplement g ∈ S n , testez en temps polynomial si g ∈ Gg1,…,gk,g∈Sn Sn n g∈⟨g1,…,gk⟩ NC⊆P u,v∈Γn g∈Sn g∈G et si . Cela donne une limite supérieure NP .g(u)=v NP
Pour compléter cette réponse:
[1] L. Babai, EM Luks et A. Seress. Groupes de permutation en NC. Proc. symposium annuel de l'ACM sur la théorie de l'informatique, pp. 409-420, 1987.19th
la source
Votre problème est connu sous le nom ( -) chaîne G -isomorphisme. Il est dans une classe assez étroite de problèmes autour Graphique Isomorphisme: il est au moins aussi dur que GI, et est en N P de la c o A M .Γ G NP∩coAM
Réduction de GI: soit , et soitG≤SNl'action induite deSnsur les paires.N=(n2) G≤SN Sn
protocole M : Arthur choisit au hasard un élément de G (je ne suis pas sûr que cela puisse être fait de manière uniforme, mais je pense que les algorithmes connus se rapprochent suffisamment de l'uniformité pour ce résultat) et l'appliquent à la fois à u et à v . Avec une probabilité 1/2, il échange u et v , puis les présente à Merlin et demande lequel était lequel.coAM G u v u v
la source
Malgré mes commentaires, j'ajouterai également une réponse.
Dans le cas où les deux vectros donnés sont connus pour être une permutation l'un de l'autre (et la permutation est connue / supposée être dans le groupe donné ). Alors la permutation qui transforme v → u peut être trouvée en temps linéaire comme telle:G v→u
Alignez les 2 vecteurs l'un sous l'autre
La permutation est trouvée en partant du 1er élément de qui se transforme en 1er élément de uv u
Obtenez la position de l'élément dans l'étape précédente (de en v ) et répétez l'étape (2), puis c'est le 2e élément de la permutation et ainsi de suite, jusqu'à ce que tous les éléments soient traversés.u v
Si vous ne savez pas si les deux vecteurs sont positivement la permutation l'un de l'autre (ou pour des cas plus généraux où il peut y avoir plusieurs transformations, comme par exemple un jeu de sudoku), vérifiez le Another Solution Problem qui est en général NP-difficile. Cela nécessite d'utiliser certaines transformations de symétrie (par exemple permutations) qui satisfont aux contraintes d'un problème donné pour générer une autre solution du problème étant donné une solution initiale.
De plus, cela fait partie des problèmes connus sous le nom de problèmes inverses (à la Jaynes)
la source