Умножение цепочек матриц - это проблема, которая может быть решена с помощью подхода Динамическое программирование , требующего Матрицы в скобках для умножения данных матриц с минимальным числом умножений
Пример
M1 = 12 x 20
M2 = 20 x 15
M3 = 15 x 30
Есть два способа решения этой проблемы, в зависимости от того, где вы начинаете умножать свои матрицы.
1). ((M1 x M2) x M3)
2). (M1 x (M2 x M3))
Первый требует только 3 600 + 5400 = 9 000 умножений.
Второе решение требует 9 000 + 7 200 = 16 200 умножений.
Здесь мы выберем первый, а не второй, потому что нужно меньше умножений.
Ваша программа должна быть в состоянии сообщить пользователю, как заключить в скобки матрицы, чтобы минимизировать умножения ( Задача оптимизации )