算法高手请进!狂难!最佳公共子串匹配的数学描述?
最佳子串匹配在计算中的应用:
例1。求
z1=4*a+4*b+2*c+1*d;
z2=2*a-4*b+1*c+4*d;
的最简单计算方法。所有计算都用移位和加搞定。不用乘法。
引入
w1=2*a+1*c作为公共子串,先计算之,然后重用reuse该结果。
z1=2*w1+4*b+1*d;
z2=1*w1-4*b+4*d;
例2。求
z1=4*a+4*b+2*c-5*d;
z2=2*a-4*b+1*c+4*d;
的最简单计算方法。
引入
w1=2*a+1*c;
w2=4*b-4*d;
则
z1=2*w1+1*w2-1*d;
z2=1*w1-1*w2;
上面的问题如果用greedy搜索算法最佳公共子串匹配不难搞定。
这里请教的是,如何不用搜索,用数学描述这个问题。
首先我都没有办法用数学语言来描述这里的优化目标。。。公共子串,重用等等,如何用数学来限定和描述?