清华大学的院士剽窃吗？

清华大学计算机系工程院院士孙家广教授等人2001年3月在英文杂志Computer Aided Geometric Design上发表的一篇论文与《计算机学报》2000年3月发表的清华大学计算机系秦开怀教授等人的另一篇论文很相似，存在剽窃问题。为了便于比较，下面先给出3篇论文的编号：
[Q2000]	秦开怀，黄海昆，B样条曲线降阶新方法，计算机学报，Vol. 23，No.3，pp.306－310，2000年3月。
[S2001]	J-H Yong, S-M Hu, J-G Sun（孙家广）, X-Y Tan, Degree reduction of B-spline curves, Computer Aided Geometric Design, Vol. 18，No.2，pp.117－127，March 2001。
[Q1998]	Kaihuai Qin, General matrix representation for B-splines, Proceedings of Pacific Graphics ’98, Singapore, Oct 26-29, 1998, pp37-43.

一、	剽窃内容
1.	题目基本相同：
[Q2000] 在计算机学报上发表的英文题目是New algorithm for degree reduction of B-spline curves; [S2001] 的题目是Degree reduction of B-spline curves。

2.	B样条退化曲线的计算方法完全相同：
为了便于比较，下面把[S2001]中相应的有关内容译成了中文。
[Q2000]中，假定原始曲线有N个控制点，通过对控制点的扰动，使曲线满足退化（即：可降阶）的充要条件。这需要求解一个约束优化问题。其目标函数和约束条件为（见[Q2000]P.308第一列的第6行～第7行）：

其中的Sj见307页第一列倒数第6行，即（5）式，i为第i个控制点Vi的扰动量。从上述约束优化问题可以解出控制点的扰动[见308页公式（6）～公式（9）]，从而得到扰动后的新的B样条曲线，其控制点为Vi + i（见P.307第一列倒数第11行～第8行）。
[S2001]中，假定原始曲线有n+1个控制点，其“目标函数为
。
约束条件，即（5）式，容易写成矩阵形式，
	AQ＝0
其中Q是由新的B样条曲线的n+1个控制点组成的向量，这个约束优化问题的解是Q=D+ATX，其中D是原始曲线的n+1个控制点组成的矢量，”X实际上就是上述优化问题的解。见[S2001]P.122第13行～第18行。
这里的i就是[Q2000]中的i，这里的n就相当于[Q2000]中的N－1。
应当指出，虽然对B样条曲线的k-1阶导数的计算采用了不同的公式，但是由于[Q2000]和[S2001]中B样条曲线退化的充要条件相同，其结果是两者所计算出的约束条件完全相同。
接下来，[Q2000]给出了具体的求解方法及其公式（见P.308页的公式(6)～(8)），但[S2001]对求解的过程只是简单地一笔带过（见P.122页的第20行～第21行）。
 紧接着，[Q2000]中指出，“此外，为了使降阶后的曲线与原曲线具有相同的端点，应加入边界条件0 = N-1 = 0”（见P.308第二列的第3行～第5行）。[S2001]接着也写到（见P.122页的第22～24行）：“下面考虑强制性约束，即：新曲线的两端点应当与老曲线的端点重合，于是，q0 = d0和qn = dn是已知的控制点”。（说明：因为q0 = d0 ＋ 0，qn = dn ＋ n，所以，q0 = d0和qn = dn与0＝n＝0是等价的，因此它与0 = N-1 = 0也是等价的。）
可见，[S2001] 实际上采用了和[Q2000]完全相同的约束优化模型。不仅其目标函数相同，约束条件相同，优化的策略相同(上述优化问题也可以用二次规划等其它方法求解，但是[S2001]采用的求解方法却与[Q2000]的方法雷同)，优化解的结果也完全相同；而且（更有甚者）加入各种约束的顺序和描述的形式，两者也都基本相同。两者的差别仅仅在于[Q2000]中给出的公式更加详细和具体，便于读者理解和编程实现。

3.	B样条曲线降阶算法的思想(Idea)相同：
[Q2000] 中，首先提出了B样条退化（即可精确地降阶表示）的充要条件为，见307页第一列公式（3）。然后，把降阶看成是升阶的逆过程，插入重节点（见P.307第2.1.2和2.1.3节），再对曲线的控制点进行扰动使其满足退化的充要条件（见P.308第一列第1行～第3行），最后利用2.1.1节的结论“由于扰动后，该曲线的次数已由（k-1）降到（k-2）,因此扰动后的曲线可以准确的降为k-1阶。”（见P.307第一列倒数第4行～第2行），即曲线满足
，
利用这个关系，可以立即得到降阶后的控制点的计算公式（见P.309第二列第1行～第2行）。
根据上述基本思想，[Q2000]在2.2节（P.309页）中用伪C语言给出了详细的算法：

注：	① 插入重节点；

“//①
for ( i=k; i<n; i++ ) 在t(i)后加入重节点；
for ( j=0; i<s; j++ )
{
//②
for ( i=k-1; i<n; i++ ) 按照(2)式递推计算矩阵Mk(i);
按照(9)式计算系数矩阵P;
按照(9)式计算向量Q;
解方程PX=Q;

//③
for ( i=0; i<n; i++ ) 退化后的控制点V’(i)=V(i)+X(i);

//④
按照(10)式计算曲线段c(0)的降阶转换矩阵A(0); 
//A(0)为类三角阵
按照(11)式计算前k-1个降阶后的控制点newV(0)~newV(k-2)；
//只解前k-1个方程
for ( i=2; i<=n-k; i+=2 )
{	
		  按照(10)式计算曲线段c(i)的降阶转换矩阵A(i);
//只需要计算第k-3和第k-2列
按照(11)式,解第k-3和第k-2个方程，得降阶后的控制点
newV(k+i-3)和newV(k+i-2);
}
k--;
n--;
t++;
}”

	② 解约束优化问题，计算控制点的扰动量；
	③ 计算扰动后的控制点的坐标，使其成为一条退化的B样条曲线；
	④ 退化曲线可以精确地用低一阶的B样条曲线表示，即“在退化条件下，满足
		” （见P.309第二列第1行），
		比较上式两边对应B样条基函数的系数，立即得到降阶曲线的控制点（见P.309页第二列第1行～第2行）。这里，还可以采用另外一种方法：将上式的两边都表示成为多项式，然后通过比较等式两边的相应的多项式系数，也可以得到降阶曲线的控制点（见[Q1998]P.42倒数第8行～第2行）。

[S2001]与[Q2000]的基本思想完全相同，仅仅对部分内容的描述稍微作了一些改写。例如：将[Q2000]中的“显然，曲线退化的充要条件为，其充要条件可以表示为 ”（见P.307第一列倒数第14行～第12行），改写为“我们有下面的定理：
定理1  B样条曲线退化的充要条件是
pk-1(u) = 0” （见[S2001]P.120倒数第9行～第6行）。

[S2001]将[Q2000]中2.1.1节～2.1.3节中关于退化曲线可以降阶表示以及为什么需要插入重节点的分析改写成定理2。例如：[Q2000]中写道：
“对曲线的控制顶点选取适当的扰动，使得扰动后的曲线
	（４）
满足退化条件：
 	 (5)
取所得曲线为的降阶逼近曲线，由于扰动后，该曲线的次数已由（k-1）降到（k-2）,因此扰动后的曲线可以准确的降为k-1阶。”（见P.307第一列第倒数第11行～第2行）
“为保证升阶后的曲线在各段曲线间的连续性不变，应当插入重节点，使各个内节点的重节点数增加１，同时在两端各增加１个边界节点，以便保证升阶后各曲线段间的连续性仍然保持不变。” （见P.307第二列第倒数第20行～第16行）
“降阶是升阶的逆过程。所不同的是，升阶可以精确地进行，而降阶一般不能，除非曲线本身是一条退化的曲线。如果是一条退化曲线，那么它可以看作是升阶的结果。” （见P.307第二列第倒数第14行～第11行）
[S2001]将上述内容归纳汇总为
“定理2  假设由公式（4）定义的曲线是一条退化的B样条曲线，并且满足（5）式，那麽它能够用一条低次的曲线表示如下：
p(u) = …		(6)” （见P.121第3行～第6行）。这两个定理，他们均没有给出具体的证明。

[S2001]没有给出B样条曲线降阶的具体算法，只是给出了一个计算步骤：
“算法1  退化的B样条曲线的次数降低
1)	按照定理2生成节点矢量。
2)	根据deBoor-Cox递推定义，分别扩展用（4）和（6）式定义的分段多项式曲线。
3)	因为（4）式的右边等于（6）式的左边，对于（ti, ti+1）（i=0，1，…, T-1）的每个多项式段，相应的同次多项式的系数都是相同的。因此，我们有一个线性方程组，其中的变量是新的控制点。
4)	根据定理2我们知道该线性方程组有唯一解。解此方程组，得到降阶B样条曲线的控制点。
5)	算法1结束。”（见P.121倒数第12行～第1行。）
稍加对比，可以发现：[S2001]算法1中的第1）和第2）对应于[Q2000]的算法的“注③”，[S2001]算法1中的第3）和第4）步就是[Q2000]的算法的“注④” 部分（见前面P.3）。除了这里不包括解约束优化问题外，两个算法的基本思想相同。

4.	节点细化问题：
[Q2000]指出：“插入节点可以使其控制点更加接近曲线，当大于给定的容差时，可以在降阶前或降阶后对曲线进行节点插入，直到满足给定误差为止。限于篇幅，在此不再赘述。”（见P.310第一列倒数第6行～第3行）
[S2001]的“算法2 用降阶的B样条曲线q(u)逼近一条B样条曲线p(u)
1）	对于每一个简单节点ti (即，节点重数是1), 将ti作为一个节点插入p(u)。
2）	使用约束优化方法，获得p(u)的退化的B样条曲线c(u) （注意：这里p(u)是节点插入后的B样条曲线）。
3）	如果c(u)和p(u)之间的误差大于给定的容差，那麽
3.1 找c(u)和p(u)之间的误差最大的位置tj。
3.2 找区间[ui, ui+1]，使得
		(1) ui和ui+1是p(u)的节点；
		(2) [ui, ui+1]包含tj;
		(3) 在满足（1）和（2）的所有所有区间中，区间[ui, ui+1]最长。
3.3 作为p(u)的新节点，两次插入（ui＋ui+1）/2;
3.4 转2)。
4）	如果c(u)和p(u)之间的误差不大于给定的容差，那麽完成算法1，并得到降阶曲线q(u)。
5）	算法2结束。” （见P.123第6行～第24行）。
其中，第1）、2）步和第4)步与[Q2000]中2.2节的算法的①～④所完成的工作完全相同；第3)步则是当误差不满足给定容差时所进行的处理，处理的方法就是插入重节点，与[Q2000]中介绍的方法相同，只不过[Q2000]中限于篇幅，当时没有展开而已。

二、	 几点说明：
1． 由于降阶是升阶的逆过程，秦开怀等1996年完成B样条曲线升阶的新方法后，便开始研究B样条曲线的降阶问题。1998年在新加坡召开的PG’98国际会议上，就已经发表了关于B样条曲线的降阶的部分阶段性成果（见[Q1998]P.42）。1999年初，他们又开发了新的算法，即[Q2000]中的算法。与已有的其它方法相比，秦开怀他们所得到的降阶曲线的误差是最小的，效果很好。虽然，国外也有不同的研究人员彼此独立地完成了类似的研究工作、独立地发表类似论文的情况，但是，那种情况只有在彼此不了解、在不同的工作地点、不知道对方也在从事同样的研究工作的情况下，才可能出现。孙家广等与秦开怀在同一个教研组工作，由于胡事民*是教研组的科研副主任，秦开怀本人亲自和他谈过有关的情况（至少2次电话交谈，2次当面谈过），他跟秦开怀说，“降阶已经没有什麽东西可研究了，这方面的论文已经很多了”。研究生雍俊海也曾经问秦开怀是如何进行B样条曲线的降阶的，秦开怀也向雍俊海作过简单的介绍。那时，根本没想到同一个教研组内还会有人敢干这种事，所以大家根本就没有戒心。[Q2000]的论文手稿在实验室打印、修改，教研组的老师和学生经常在实验室来往，很多人都能够看到[Q2000]的论文手稿。2000年春节前（即2000年1月前），雍俊海还专门去黄海昆**的宿舍里，声称他在当《计算机辅助几何造型技术》课的辅导老师，要黄海昆给他找秦开怀在这方面的论文和资料给他，黄就把这篇论文[Q2000]给他看过。当时这篇论文已经被《计算机学报》接收，即将刊出。综上所述，这两篇论文是“独立完成”的说法不能成立。
2. [S2001]的内容也是雍俊海的博士论文的一部分，他的博士论文声称，“本文给出了求B样条曲线导数的新公式，并且首次给出了B样条曲线可精确降阶的充要条件”（见[雍2000]1）P.1倒数第9行～第7行）。让我们来戳穿他的谎言：
首先，[雍2000]的2.1.2节“计算B样条导函数的新方法”（P.45倒数第9行）中，给出的计算B样条曲线导数的公式（见[雍2000]P.46第2～3行）与[deBoor1978]2) P.139第17～19行，即公式(12a)和(12b)完全相同。该公式在中文书中也能找到，如[朱2000]3) P.111第10～13行，即公式（6.5.10）。[雍2000]的计算B样条曲线的导数的所谓“新方法”只不过是把别人的方法改写了一下，类似于把公式

改写成

一样！把一些整数的乘积改写为两个整数阶乘的商、把公式中的某一部分展开、或者把一个递归定义的差商展开等等，并没有改变计算公式及计算方法本身的任何实质性的内容！这种符号游戏改变不了其剽窃的本质。
[Q2000]早已提出了“B样条曲线可精确降阶的充要条件”，发表时间显然早于2000年8月（即，[雍2000] 完成的时间），[雍2000]不但不引用论文[Q2000]，反而说是他们“首次”提出了“B样条曲线可精确降阶的充要条件”，真是厚颜无耻。如果说是“首次剽窃”，那倒好象是真的。

请大家发表评论，到底是谁剽窃谁的？