Если у меня есть две матрицы и с размерами и , соответственно, и я хочу вычислить , более эффективно сначала переписать выражение как и только потом оценивать численно, потому что имеет размер а имеет размер .
Я хочу решить обобщенную версию этой проблемы. Существует ли достаточно эффективный алгоритм (не грубая сила) для оптимизации выражения, содержащего:
- Свободные матричные переменные известных размеров
- Произведения произвольных подвыражений
- Произвольные подвыражения, возведенные в естественную силу
... так что для числовой оценки требуется меньше всего работы после замены переменных свободной матрицы конкретными значениями матрицы?
Задача умножения цепочки матриц является частным случаем моей проблемы.
Редактировать:
Это предварительный ответ. Это кажется мне интуитивно правильным, но у меня нет доказательств, что это правильно. Если это окажется правильным, я все еще заинтересован в доказательстве. (Если это не правильно, пожалуйста, исправьте меня.)
Для каждого произведения, возведенного в степень, скажем, , рассмотрим каждую циклическую перестановку факторов:
- ...
... рекурсивно. Каждая мощность должна быть рассчитана с использованием возведения в степень путем возведения в квадрат (очевидно), а все остальные произведения должны быть рассчитаны с использованием оптимального порядка, возвращаемого алгоритмом умножения цепочки матриц.
Редактировать:
Идея, изложенная в моем предыдущем редактировании, все еще неоптимальна. Алгоритм возведения в степень по квадрату фактически оценивает выражения вида или A n K , где K не обязательно является единичной матрицей. Но мой алгоритм не учитывает возможность использования возведения в степень при помощи алгоритма возведения в квадрат с K, не равным единичной матрице.
Ответы:
Отказ от ответственности: следующий метод не был строго доказан, чтобы быть оптимальным. Неформальное доказательство предоставляется.
Проблема сводится к поиску наиболее эффективного заказа при рассмотрении площади изделия.
Например, при рассмотрении , например , , нам нужно только , чтобы оптимально решить ( A B C ) 2 , так как это расширяется до В C A B C . Никакая полезная информация для заказа не добавляется путем объединения A B C снова. Интуиция здесь заключается в том, что, поскольку проблема оптимального упорядочения может быть решена снизу вверх, более высокие упорядочения, состоящие из большего числа элементов, использующих одинаковые матрицы, не имеют значения.( A B C)50 ( A B C)2 A B CA B C A B C
Нахождение наилучшего порядка сводится к задаче умножения матричной цепи. После нахождения оптимального порядка примените возведение в степень к триплету (обычно n-кортежу) в порядке.A B CA B C
В качестве например, если оптимальное упорядочение для квадрата ( В ( С ) ) В С , решение исходной задачи ( В ( С ) ) 49 В С .А ( В ( СA ) ) B C А ( В ( СА ) )49B C
В итоге:( А1A2⋯ AN)м ( А1A2⋯ AN)2
( А1A2⋯ AN)2
грамм (обратите внимание, что любые другие группировки из решения (2) также должны применяться).A1⋅ A2⋅ Gм - 1⋅ AN
1) Первый шаг в решении - это решение ( A 1 A 2 ⋯ A n ) 2 . 2) Решение ( A 1 A 2 ⋯ A n ) 2 лучше всего рассматривать как пример задачи умножения матричных цепей. 3) Использование порядка n-кортежей G из решения в (2) даст нам решение (1) в виде некоторого аромата A 1 ⋅ A
Неформальное доказательство( А Б )N A В Икс× Y Y× X A В
Рассматривая простейший случай с использованием двух матриц , отметим, что A и B имеют размерность X × Y и Y × X соответственно. Любой продукт, использующий A и B, имеет одно из следующих измерений:
Y × X Y × Y X × XИкс× Y
Y× X
Y× Y
Икс× X
Используя больше матриц, аргумент похож. Возможно, индуктивное доказательство возможно? Общая идея состоит в том, что решение MCM для квадрата найдет оптимальный размер для операций со всеми рассматриваемыми матрицами.
Тематическое исследование:
источник
источник