Si j'ai deux matrices et B , de dimensions 1000 × 2 et 2 × 1000 , respectivement, et que je veux calculer ( A B ) 5000 , il est plus efficace de réécrire d'abord l'expression sous la forme A ( B A ) 4999 B et ensuite seulement évaluer numériquement, car A B est de dimension 1000 × 1000 mais B A est de dimension 2 × 2 .
Je veux résoudre une version généralisée de ce problème. Existe-t-il un algorithme raisonnablement efficace (pas de force brute) pour optimiser une expression contenant:
- Variables matricielles libres de dimensions connues
- Produits de sous-expressions arbitraires
- Sous-expressions arbitraires élevées à la puissance naturelle
... de sorte qu'il faut le moins de travail pour évaluer numériquement, après avoir remplacé les variables matricielles libres par des valeurs matricielles concrètes?
Le problème de multiplication de la chaîne matricielle est un cas particulier de mon problème.
Éditer:
Ceci est une réponse provisoire. Cela me semble intuitivement juste, mais je n'ai aucune preuve que c'est correct. Si cela s'avère correct, je suis toujours intéressé par la preuve. (Si ce n'est pas correct, bien sûr, veuillez me corriger.)
Pour chaque produit élevé à une puissance, disons , considérons chaque permutation cyclique des facteurs:
- ...
... récursivement. Chaque puissance doit être calculée en utilisant l'exponentiation par quadrature (évidemment), et tous les autres produits doivent être calculés en utilisant l'ordre optimal renvoyé par l'algorithme de multiplication de la chaîne matricielle.
Éditer:
L'idée décrite dans ma précédente édition n'est toujours pas optimale. L'algorithme d'exponentiation par quadrature évalue en fait des expressions de la forme ou A n K , où K n'est pas nécessairement la matrice d'identité. Mais mon algorithme ne considère pas la possibilité d'utiliser l'algorithme d'exponentiation par quadrature avec K différent de la matrice d'identité.
Réponses:
Avertissement: La méthode suivante n'a pas été rigoureusement prouvée comme étant optimale. Une preuve informelle est fournie.
Le problème se résume à trouver la commande la plus efficace lorsque l'on considère le carré du produit.
En utilisant plus de matrices, l'argument est similaire. Peut-être qu'une preuve inductive est possible? L'idée générale est que la résolution du MCM pour le carré trouvera la taille optimale pour les opérations avec toutes les matrices impliquées considérées.
Étude de cas:
la source
la source