Problème de vecteur algorithmique


13

J'ai un problème algébrique lié aux vecteurs dans le domaine GF (2). Soit (0,1) de dimension et . Trouver un algorithme polynomial temporel qui trouve un (0,1) -vecteur de la même dimension tel que n'est pas la somme des vecteurs parmi . L'addition de vecteurs se fait sur le champ GF (2), qui a deux éléments 0 et 1 ( , et ).v1,v2,,vmnm=nO(1)uu(logn)O(1)v1,v2,,vm0+1=0+1=10+0=1+1=0

Il est facile de voir l'existence d'un tel vecteur u par un simple argument de comptage. Pouvons-nous trouver dans un temps polynomial? Il est trivial de trouver en temps exponentiel. J'enverrai un chèque de 200 $ pour la première solution correcte.uu


il semble vaguement lié au problème de la somme des sous-ensembles qui est NP complet. cependant qui utilise la somme entière complète au lieu de XOR.
vzn

1
étrangement, j'ai récemment essayé de formuler et d'examiner un problème similaire. essayez sec13.5 du livre stasys jukna sur la complexité de la fonction booléenne. il semble que votre q puisse être formulé en termes de circuits linéaires dans ce chapitre.
vzn

1
qu'en est-il des algorithmes super-poly, c'est-à-dire m ^ log (n)?
Dimitris

1
@Niel de Beaudrap: mais le nombre de XOR que vous devez vérifier est super-poly (c'est-à-dire à peu près ), pas poly. N'est-ce pas un problème? (mlog(n))
Dimitris

1
Pour étendre la remarque de vzn: il semblerait que presque tous les vecteurs satisfont vos exigences, par le même argument de comptage. J'imagine que vous voudriez aussi une preuve qu'un vecteur (peut-être généré de façon aléatoire) n'est contenu dans aucun sous-espace couvert par le polylog ( n ) des vecteurs: votre question revient donc à montrer que le problème de déterminer si oui ou non un candidat le vecteur u n'appartient pas à un sous-espace généré par une dimension f ( n ) ∈ le polylogue ( n ) des vecteurs est dans NP . vj
Niel de Beaudrap

Réponses:


8

Il semble y avoir une faute de frappe; Je suppose que vous voulez dire trouver qui est pas la somme de ( log n ) O ( 1 ) vecteurs parmi v 1 , ... , v m (non n ).u{0,1}n(logn)O(1)v1,,vmn

Il n'est pas clair pour moi si une constante dans fonctionne pour vous. Si vous pouvez vous contenter de sommes inférieures à des vecteurs log m, il y a peut-être quelque chose à faire. Mais si vous voulez que cette quantité soit ( log m ) 1 + δ , alors je pense que c'est assez difficile (je travaille sur ce problème depuis longtemps).(logn)O(1)logm(logm)1+δ

Vous pouvez toujours être intéressé de savoir qu'il s'agit d'une instance du problème de point distant d'Alon, Panigrahy et Yekhanin ("Algorithmes d'approximation déterministes pour le problème de mot de code le plus proche") pour certains paramètres. Soit et v 1 , , v m les colonnes de la matrice de contrôle de parité d'un code linéaire en { 0 , 1 } m de dimension d = m - n (si cette matrice n'avait pas de rang complet, la problème serait trivial). Alors votre problème est équivalent à trouver u { 0 ,m>nv1,,vm{0,1}md=mn qui est ( log n ) O ( 1 ) -loin du code. Ce paramétrage, où la dimension est très proche de m, n'est pas étudié dans l'article. Cependant, ils ne peuvent atteindre l'éloignement log m jusqu'à la dimension d = c m pour une constante c . En fait, je ne pense pas que nous connaissions de certificat de taille polynomiale qui nous permette deprouverqu'un vecteur est supérieur à ω ( log m ) - loin d'un espace de dimension Ω ( m )u{0,1}n(logn)O(1)logmd=cmcω(logm)Ω(m), encore moins le trouver.

Un autre lien est avec l'apprentissage des parités dans le modèle lié à l'erreur. Si l'on peut apprendre efficacement parités O ( 1 ) (définies sur 0 , 1 m ) avec une erreur strictement inférieure à n , alors on peut définir des valeurs arbitraires sur les n - 1 premiers bits de u et `` forcer une erreur '' sur le dernier bit en le mettant à la valeur opposée à celle prédite par l'apprenant. Cela semble cependant beaucoup plus fort.(logn)O(1)0,1mnn1u

Le problème est également lié à la séparation de l'EXP de certaines réductions des ensembles clairsemés.


1
Merci d'avoir souligné la faute de frappe. Le dernier «v_n» doit être «v_m». J'espère que quelqu'un va le réparer. Votre réponse contient des informations utiles. +1
Bin Fu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.