我们知道很多算法内部都是一些基本运算的组合,比如向量加减法,矩阵加减,矩阵-向量乘积,矩阵乘法,hadamard积,kronecker张量积,元素索引等。而QTT对于这些运算都可以很简单的实现并行。
首先我们来看一下,什么是QTT表示。给定一个多维数组A,其可以是向量,矩阵,或者更高维的数组,这都不是问题。 设A的维数为\(l\),如果它有如下的表示,则我们称其为多维数组A的QTT分解。
那读者肯定得问这里的\(U_k\)和\(\bowtie\)是什么鬼,先不急,假设你已经懂了,就把它看成是一种编码。按这个编码我们来看看常见的运算是怎么实现的。
1.加法