En 1979, Freivalds a montré que la vérification des produits matriciels sur n'importe quel champ peut être effectuée en temps randomisé . Plus formellement, étant donné trois matrices A, B et C, avec des entrées d'un champ F, le problème de vérifier si AB = C a un algorithme de temps randomisé .O ( n 2 )
Ceci est intéressant car l'algorithme connu le plus rapide pour multiplier les matrices est plus lent que cela, donc vérifier si AB = C est plus rapide que calculer C.
Je veux savoir quelle est la structure algébrique la plus générale sur laquelle la vérification du produit matriciel a toujours un algorithme de temps (aléatoire) . Étant donné que l'algorithme d'origine fonctionne sur tous les domaines, je suppose qu'il fonctionne également sur tous les domaines intégrés.
La meilleure réponse que j'ai pu trouver à cette question était dans les équivalences sous- cubiques entre les problèmes de chemin, de matrice et de triangle , où ils disent que "la vérification du produit de la matrice sur les anneaux peut être effectuée en temps aléatoire [BK95]." ([BK95]: M. Blum et S. Kannan. Concevoir des programmes qui vérifient leur travail. J. ACM, 42 (1): 269-291, 1995.)
Premièrement, les anneaux sont-ils la structure la plus générale sur laquelle ce problème a un algorithme randomisé ? Deuxièmement, je ne pouvais pas voir comment les résultats de [BK95] montrent un algorithme de temps sur tous les anneaux. Quelqu'un peut-il expliquer comment cela fonctionne?
la source
Réponses:
Voici un argument rapide pour expliquer pourquoi cela fonctionne sur les anneaux. Étant donné les matrices , , , nous vérifions en choisissant un vecteur binaire aléatoire , puis en vérifiant si . Cela passe clairement si .B C A B = C v A B v = C v A B = CUNE B C A B = C v A B v = Cv A B = C
Supposons et . Laissez . est une matrice non nulle pour laquelle . Quelle est la probabilité que cela se produise? Soit une entrée non nulle. Par hypothèse, . Avec une probabilité , , nous avons doncA B v = C v D = A B - C D D v = 0 D [ i ′ , j ′ ] ∑ j D [A B ≠ C A B v = Cv D = A B - C ré D v = 0 D[i′,j′] 1 / deux v [ j ′ ] = 1∑jD[i′,j]v[j]=0 1/2 v[j′] =1
Tout anneau sous son opération d'addition est un groupe additif, il y a donc un inverse unique de , c'est-à-dire . Maintenant, la probabilité du mauvais événement est au plus . (Une façon de voir cela est le "principe des décisions différées": pour que la somme soit égale à , au moins un autre doit être différent de zéro. correspond à ces autres entrées non nulles. Même si nous définissons tous ces l'exception de l'un d'entre eux de manière optimale ,- D [ i ′ , j ′ ] - D [ i ′ , j ′ ] = ∑ j ≠ j ′ D [ i ′ , j ] v [ ] v [ j ] v [ j ] 0 1 - D [ i ′ , j ′ ]D [ i′, j′] - D [ i′, j′] une / 2 - D [ i ′ , J ′ ] D [ i ′ , j- D [ i′, j′] = ∑j ≠ j′D [ i′, j ] v [ j ] 1 / 2 - D [ i′, j′] D [ i′, j ] v [ j ] v [ j ] 0 1 , mais toujours une seule de ces valeurs pourrait rendre la somme finale égale à .) Donc, avec une probabilité d'au moins , nous trouvons avec succès que , lorsque est non nul. (Notez que et sont choisis indépendamment pour .)- D [ i′, j′] 1/4 Dv≠0 D v[j] v[j′] j≠j′
Comme vous le voyez, l'argument ci-dessus dépend de la soustraction. Donc, cela ne fonctionnera pas (par exemple) sur des semirings commutatifs arbitraires. Peut-être pourriez-vous assouplir les propriétés multiplicatives de la structure algébrique et obtenir toujours le résultat?
la source