Quelle est la structure la plus générale sur laquelle la vérification du produit matriciel peut être effectuée en temps ?


18

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 )O(n2)O(n2)

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.O(n2)

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.)O(n2)

Premièrement, les anneaux sont-ils la structure la plus générale sur laquelle ce problème a un algorithme randomisé O(n2) ? Deuxièmement, je ne pouvais pas voir comment les résultats de [BK95] montrent un algorithme de temps O(n2) sur tous les anneaux. Quelqu'un peut-il expliquer comment cela fonctionne?


Une question stupide: est-il évident que la vérification déterministe est aussi difficile que la multiplication? Et si vous recevez non seulement A, B et C mais aussi un certificat compact; est-ce que ça aide quelque chose?
Jukka Suomela

@Jukka: Je crois que le meilleur algorithme déterministe pour ce problème n'est pas plus rapide que la multiplication matricielle, mais je ne sais pas s'il y a une raison pour que ce soit le cas. À propos de la deuxième question, si AB n'est pas égal à C, alors il y a un certificat court qui fonctionne: l'entrée de C qui est incorrecte, et la ligne correspondante de A et la colonne de B.
Robin Kothari

Réponses:


14

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 = CUNEBCUNEB=CvUNEBv=CvUNEB=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 [UNEBCUNEBv=Cv=UNEB-Cv=0D[i,j]1 / deux v [ j ] = 1jD[i,j]v[j]=01/2v[j]=1

[je,j]+jj[je,j]v[j]=0 .

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 ][je,j]-[je,j]une / 2 - D [ i , J ] D [ i , j-[je,j]=jj[je,j]v[j]1/2-[je,j][je,j]v[j]v[j]01, 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 .)-[je,j]1/4Dv0Dv[j]v[j]jj

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?


Bien, merci. Je vois votre point de vue sur la possibilité de réduire les contraintes sur la structure multiplicative. Juste pour mon information, n'est-ce pas le même algorithme que celui de l'article original de Freivalds?
Robin Kothari

L'algorithme de Freivalds sélectionne un vecteur aléatoire avec des composants dans {-1,1}. Ça marche aussi. Si vous êtes plus prudent, vous pouvez obtenir une probabilité de réussite d'au moins . 1/2
Ryan Williams
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.