Простите, но может кто-нибудь объяснить простому IT'шнику как вообще можно посчитать выражение, содержащее
![$N-1$ $N-1$](https://dxdy-03.korotkov.co.uk/f/e/3/5/e35caf405a5e9b4afd75a0d338c4dc1282.png)
сложений и
![$N$ $N$](https://dxdy-04.korotkov.co.uk/f/f/9/c/f9c4988898e7f532b9f826a75014ed3c82.png)
умножений, за число операций меньшее чем
![$2N-1$ $2N-1$](https://dxdy-03.korotkov.co.uk/f/a/4/2/a4226bb2e373db1332602f95c13ad7d582.png)
?
Ну вот выражение
![$axy + bx + c$ $axy + bx + c$](https://dxdy-02.korotkov.co.uk/f/9/c/1/9c1b2a44028a495883538e854d8d8e2882.png)
содержит 3 умножения и 2 сложения, а считать можно так:
![$(ay+b)x + c$ $(ay+b)x + c$](https://dxdy-04.korotkov.co.uk/f/3/1/6/316d0de83e0565be26a0cbe5110743cf82.png)
Наверное, плохой пример, но больше ничего простого в голову не лезет.
Конечно, если числа в выражении подчиняются некоторым априорно известным функциональным зависимостям, то, очевидно, оптимизация возможна. Действительно, пусть все
![$a_i$ $a_i$](https://dxdy-03.korotkov.co.uk/f/6/5/e/65ed4b231dcf18a70bae40e50d48c9c082.png)
равны, тогда вынося за "скобки" достаточно будет произвести лишь операций (кстати, уже в этом случае получается, что изначальное предположение-теоремка неверна...)
Это предположение верно в случае, если
![$a_i$ $a_i$](https://dxdy-03.korotkov.co.uk/f/6/5/e/65ed4b231dcf18a70bae40e50d48c9c082.png)
,
![$x_i$ $x_i$](https://dxdy-02.korotkov.co.uk/f/9/f/c/9fc20fb1d3825674c6a279cb0d5ca63682.png)
- независимые, заранее неизвестные. Ну, например, если они все на вход поступают.
И ещё, в первоначальной версии заголовка темы упоминалась теория графов, но связь с ней почему-то (почти) не обсуждается... Как переформулировать задачу в терминах этой теории?
Каждому алгоритму можно поставить в соответствие орграф. У этог графа будет столько истоков, сколько есть входных переменных, каждая вершина, кроме стока, помечена операцией, и в нее входят ребра из вершин, соответствующих операндам.