CN107533539A - 矩阵三角化装置、矩阵三角化方法以及程序 - Google Patents
矩阵三角化装置、矩阵三角化方法以及程序 Download PDFInfo
- Publication number
- CN107533539A CN107533539A CN201680025956.4A CN201680025956A CN107533539A CN 107533539 A CN107533539 A CN 107533539A CN 201680025956 A CN201680025956 A CN 201680025956A CN 107533539 A CN107533539 A CN 107533539A
- Authority
- CN
- China
- Prior art keywords
- unit
- product
- matrix
- operation unit
- inverse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明的矩阵三角化装置,在以由有限域的元素构成的第一方阵为输入且得到包含将该第一方阵三角化而得到的上三角部分的第二方阵的至少一部分元素的过程中,进行以基于该第一方阵的矩阵的多个位置的元素为被运算符的积和运算,得到对应于与该被运算符不同的位置的元素的积和运算结果,并进行该积和运算结果的化简。
Description
技术领域
本发明涉及进行以有限域为元素的方阵的三角化的技术。
背景技术
在进行以有限域为元素的方阵的三角化的情况下,需要至少元素间的运算及化简(相除)(例如,参照非专利文献1、2等)。
现有技术文献
非专利文献
非专利文献1:池田一貞著,“現代数学の応用”,森北出版,1975年3月5日,P107-108.
非专利文献2:森正武,杉原正顕,室田一雄著,“線型計算”,岩波書店,1994年2月10日,P1-10.
发明所要解决的课题
现有的三角化方法中,进行以矩阵的规定位置的元素为被运算符的运算,且根据该运算结果进行更新作为该被运算符的元素的“递归的运算”的频率较高。例如,作为现有的三角化方法之一的“消除法”中,将规定的元素的逆元乘以规定的行,将由此得到的行从其它行减去,从而对各行递归性地反复进行更新该其它行的处理。在矩阵的元素为有限域的元的情况下,每当更新矩阵的元素时必须进行化简(reduction),用于三角化的化简次数增大。
发明内容
本发明的课题在于,减少以有限域为元素的方阵的三角化的化简次数。
用于解决课题的方案
在以由有限域的元素构成的第一方阵为输入,得到包含将该第一方阵三角化而得到的上三角部分的第二方阵的至少一部分元素的过程中,进行以基于该第一方阵的矩阵的多个位置的元素为被运算符的积和运算,得到对应于与该被运算符不同的位置的元素的积和运算结果,并进行该积和运算结果的化简。
发明效果
本发明中,通过积和运算得到对应于与该被运算符不同的位置的元素的积和运算结果。在该积和运算的过程中不需要更新矩阵的元素的递归性的处理,且直到积和运算结束也不需要进行化简。其结果,能够减少以有限域为元素的方阵的三角化的化简次数。
附图说明
图1是示例实施方式的矩阵三角化装置的功能结构的块图;
图2是示例实施方式的矩阵三角化装置的处理的流程图;
图3是示例实施方式的矩阵三角化装置的处理的流程图;
图4是示例实施方式的矩阵三角化装置的处理的流程图;
图5是示例实施方式的矩阵三角化装置的处理的流程图;
图6是示例实施方式的矩阵三角化装置的处理的流程图;
图7是示例实施方式的矩阵三角化装置的处理的流程图;
图8是示例实施方式的矩阵三角化装置的处理的流程图;
图9是示例实施方式的矩阵三角化装置的处理的流程图;
图10是示例实施方式的矩阵三角化装置的处理的流程图;
图11是示例实施方式的矩阵三角化装置的处理的流程图;
图12是示例实施方式的矩阵三角化装置的处理的流程图。
具体实施方式
以下,说明本发明的实施方式。
[概要]
首先,说明概要。
本实施方式中,以由有限域的元素构成的“第一方阵”为输入,得到包含将“第一方阵”三角化而得到的“上三角部分”的“第二方阵”的至少一部分元素。“第二方阵”的元素也是该有限域的元。该三角化的过程中,进行以基于“第一方阵”的矩阵的多个位置的元素为被运算符的积和运算,得到对应于与该被运算符不同的位置(行及列的至少一方不同)的元素的积和运算结果,并进行该积和运算结果的化简。这种积和运算为线性运算,在积和运算的过程中不需要更新矩阵的元素的递归性的处理。因此,能够在结束积和运算后进行化简,能够减少以有限域为元素的方阵的三角化的化简次数。此外,“有限域”也可以是质数域,也可以是扩展域。“有限域”为质数域时的“化简”是成为模数的质数等的正整数下的余数运算。“有限域”为扩展域时的“化简”是使用了不可约多项式的多项式(表示扩展域的多项式)的变换(不可约多项式进行的除法)。在三角化的过程中不仅需要上述的积和运算还需要递归性的运算的情况下,只要进一步进行该递归性的运算并进行化简即可。在该情况下,也进行上述的积和运算,因此,递归性的运算的次数能够比以往方法大幅减少,也能够减少化简次数。
“第二方阵”也可以是由“上三角部分”和零的元素构成的上三角矩阵(上三角方阵),也可以是包含“上三角部分”和“下三角部分”的方阵。其中,包含该“下三角部分”的下三角矩阵和“第一方阵”的积成为包含“上三角部分”的上三角矩阵。换言之,也可以是B=A’(“第二方阵”为由“上三角部分”和零的元素构成的上三角矩阵),也可以是B=L+A’(“第二方阵”为包含“上三角部分”和“下三角部分”的方阵)。其中,L为包含“下三角部分”的下三角矩阵,A为“第一方阵”,A’为包含“上三角部分”的上三角矩阵,B为“第二方阵”,满足LA=A’的关系。另外,直到由“第一方阵”得到“第二方阵”的处理中,也可以对“第一方阵”的三角化的过程中成为零的元素分配该“下三角部分”的元素。由此,能够减少储存“下三角部分”的存储区域。即,“第一方阵”的三角化的过程中成为零的元素不需要保存于存储区域。因此,也可以将成为该“零的元素的存储区域”沿用于存储该“下三角部分”的元素。由此,不需要仅存储该“下三角部分”的元素的区域。此外,“零”是指加法单位元。关于该具体例在第一、第三实施方式中进行说明。
另外,三角化的过程也可以包含得到基于“第一方阵”的元素的元素X的逆元及元素Y的逆元的逆元运算过程。元素X及元素Y是“有限域”的元。也可以得到成为XY的逆元(XY)-1的值,通过成为逆元(XY)-1的值和元素Y的相乘得到成为元素X的逆元X-1的值,通过成为逆元(XY)-1的值和元素X的相乘得到元素Y的逆元Y-1的值。由此,通过一次逆元(XY)-1的运算和两次相乘能够得到两个逆元X-1及Y-1。逆元的运算量非常大,该方法中,与进行两次逆元运算相比,也能够减少运算量(逆元的效率化1)。关于该具体例在第三实施方式中进行说明。
另外,在三角化的过程包含得到基于“第一方阵”的元素的元素X=xα的逆元X-1=x-α的逆元运算过程的情况下,能够进行通过使用了预先计算的逆元x-c的相乘x-cxc-α得到元素X的逆元X-1的逆元运算过程。其中,X及x为有限域的元,c及α为正的整数常数,1≤α≤c。在该情况下,能够通过相乘得到逆元,能够减少运算量(逆元的效率化2)。另外,也可以参照对α=1,2,···,c预先计算的x-α得到与α对应的逆元X-1=x-α。即,对于1≤α≤c的各整数α,X-1=x-cxc-α如以下。
[表1]
α | 1 | 2 | … | c |
X-1=x-cxc-a | x-1 | x-2 | … | x-c |
因此,如果将使α=1,2,···,c和X-1=x-1,x-2,···,x-c(即,x-α)相对应的参照表储存于存储单元,则能够通过一次表的参照得到逆元。该参照表只要在α=1,2,···,c的范围内准备即可,大小也较小(逆元的效率化3)。关于这些具体例在第二实施方式中进行说明。
以下,参照附图说明各实施方式。
〔第一实施方式〕
说明第一实施方式。
<结构>
如图1中示例的那样,本实施方式的矩阵三角化装置1具有:输入单元11、输出单元12、存储单元13、控制单元14、积和运算单元15、逆元运算单元16、相乘单元17、以及化简单元18。实施方式的矩阵三角化装置是通过例如具备CPU(central processing unit)等的处理器(硬件·处理器)及RAM(random-access memory)·ROM(read-only memory)等的存储器等的通用或专用的计算机执行规定的程序而构成的装置。该计算机也可以具备一个处理器或存储器,也可以具备几个处理器或存储器。该程序也可以安装于计算机,也可以预先记录于ROM等。另外,也可以不是如CPU那样通过读入程序来实现功能结构的电子电路(circuitry),而使用不使用程序来实现处理功能的电子电路构成一部分或所有的处理单元。另外,构成一个装置的电子电路也可以包含多个CPU。输入到输入单元11的数据及各单元中得到的数据储存于存储单元13,根据需要进行读出。矩阵三角化装置1以控制单元14的控制为基础执行各处理。
<处理>
使用图2~图4说明本实施方式的处理。
《步骤S11》
以有限域(例如,以位数2的质数域或该质数域为基础域的扩展域)的元为元素的n×n的方阵A(第一方阵)被输入到矩阵三角化装置1的输入单元11,并储存于存储单元13。以下,将方阵A的i行j列的元素表示为Aij。其中,n为4以上的整数,i=0,···,n-1,j=0,···,n-1。
《步骤S12》
逆元运算单元16以A00为输入,得到A00:=A00 -1。其中,β1:=β2表示将β2设定为β1(即,将β2代入β1)。
《步骤S13》
步骤S13的循环中,对于j=1,···,n-1,一边将j从1起每次增加1,一边执行以下的步骤S131、S132。
相乘单元17以A00及A0j为输入,得到A0j:=A00A0j(步骤S131)。化简单元18以步骤S131中得到的A0j为输入,进行A0j的化简,并更新为化简后的元素A0j(步骤S132)。
《步骤S14》
步骤S14的循环中,对于i=1,···,n-1各自,一边将i从1起每次增加1,一边执行以下的步骤S141~S146。
[步骤S141]
步骤S141的循环中,对于j=1,···,i-1,一边将j从1起每次增加1,一边执行以下的步骤S1411、S1412。需要说明的是,在不存在j的情况下,不执行步骤S141(该点对于其它循环也相同)。
积和运算单元15将Aik及Akj为输入,得到
。即,进行以矩阵的多个位置的元素Aik及Akj为被运算符的积和运算,得到对应于与该被运算符Aik及Akj不同的位置的元素的积和运算结果Aij(步wS1411)。化简单元18进行步骤S1411中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1412)。
[步骤S142]
步骤S142的循环中,对于j=1,···,n-1,一边将j从1起每次增加1,一边执行以下的步骤S1421、S1422。
积和运算单元15以Aik及Akj为输入,得到
。这里也进行以矩阵的多个位置的元素Aik及Akj为被运算符的积和运算,得到对应于与该被运算符Aik及Akj不同的位置的元素的积和运算结果Aij(步骤S1421)。化简单元18进行步骤S1421中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1422)。
[步骤S143]
步骤S143的循环中,对于j=0,···,i-2,一边将j从0起每次增加1,一边执行以下的步骤S1431、S1432。
积和运算单元15以Aik及Akj为输入,得到
。这里也进行以矩阵的多个位置的元素Aik及Akj为被运算符的积和运算,得到对应于与该被运算符Aik及Akj不同的位置的元素的积和运算结果Aij(步骤S1431)。化简单元18进行步骤S1431中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1432)。
[步骤S144]
步骤S144中,逆元运算单元16以Aii为输入,得到Aii:=Aii -1(步骤S144)。
[步骤S145]
步骤S145的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S1451、S1452。
相乘单元17以Aii及Aij为输入,得到Aij:=AiiAij(步骤S1451)。化简单元18进行步骤S1451中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1452)。
[步骤S146]
步骤S146的循环中,对于j=i+1,···,n-1,一边将j从i+1起每次增加1,一边执行以下的步骤S1461、S1462。
相乘单元17以Aii及Aij为输入,得到Aij:=AiiAij(步骤S1461)。化简单元18进行步骤S1461中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1462)。
《步骤S15》
上述的步骤S14的循环之后,执行步骤S15的循环。步骤S15的循环中,对于作为输出需要的行i∈{1,···,n-1},执行步骤S151。作为输出需要的行i也可以是{1,···,n-1}的所有的元素,也可以是其一部分元素(例如,i=n-1的元素)。
[步骤S151]
步骤S151的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S1511、S1512。
相乘单元17以Ajj及Aij为输入,得到Aij:=AjjAij(步骤S1511)。化简单元18进行步骤S1511中得到的Aij的化简,并更新成化简后的元素Aij(步骤S1512)。
《步骤S16》
输出单元12输出由上述那样得到的元素Aij(其中,i=0,···,n-1,j=0,···,n-1)构成的n×n的方阵B(第二方阵)。例如,对于所有的i=0,···,n-1,在执行步骤S15的循环的情况下,B由满足LA=A’的n×n的下三角矩阵L的下三角部分和n×n的上三角矩阵A’的上三角部分构成(即,B=L+A’)。需要说明的是,本实施方式中,方阵A的三角化的过程中,向成为零的元素分配下三角矩阵L的下三角部分的元素并进行了计算。即,步骤S1411、S1431、S1451的运算结果与下三角矩阵L的下三角部分的元素对应,但将其分配给方阵A的三角化的过程中成为零的元素Aij并进行计算。因此,本实施方式中,不需要仅储存下三角矩阵L的下三角部分的元素、例如步骤S1411、S1431、S1451的运算结果的存储区域。
〔第二实施方式〕
也可以将第一实施方式中说明的处理的逆元运算通过上述的“逆元的效率化2”或“逆元的效率化3”进行效率化。以下,以与目前为止说明的事项的不同点为中心进行说明,对于已经说明的事项引用相同的参照编号并简化说明。
<结构>
如图1中示例的那样,本实施方式的矩阵三角化装置2具有:输入单元11、输出单元12、存储单元13、控制单元14、积和运算单元15、逆元运算单元26、相乘单元17、及化简单元18。
<处理>
与第一实施方式的不同点仅在于,步骤S12被置换为步骤S22,步骤S144置换为步骤S244。步骤S22及S244中的A00 -1及Aii -1分别能够表示为A00 -1=x-α1及Aii -1=x-α2。其中,α1及α2分别是满足1≦α1≦c及1≦α2≦c的正的整数。在该情况下,逆元运算单元26通过使用了预先计算的逆元x-c的相乘x-cxc-α1计算A00 -1(步骤S22),并通过相乘x-cxc-α2计算Aii -1(步骤S244)。或者,逆元运算单元26也可以参照对于α=1,2,···,c预先计算的x-α,得到x-α1作为A00 -1(步骤S22),得到x-α2作为Aii -1(步骤S244)。其它与第一实施方式相同。
〔第三实施方式〕
也可以将第一实施方式中说明的处理的逆元运算通过上述的“逆元的效率化1”进行效率化。本实施方式中示例其细节。
<结构>
如图1中示例的那样,本实施方式的矩阵三角化装置3具有:输入单元11、输出单元12、存储单元13、控制单元14、积和运算单元35、逆元运算单元36、相乘单元37、及化简单元38。
<处理>
使用图5~图9说明本实施方式的处理。
执行上述的步骤S11、S12(或S22)、以及S13之后,执行以下的步骤S34。
《步骤S34》
步骤S34的循环中,对于i=1,···,n-1,一边将i从1起每次增加2(即,对于奇数i),一边执行以下的步骤S340~S349、S34a~S34d。
[步骤S340]
步骤S340中,控制单元14得到r:=i+1(步骤S340)。
[步骤S341]
步骤S341的循环中,对于j=1,···,i-1,一边将j从1起每次增加1,一边执行以下的步骤S3411、S3412、S3413。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3411)。化简单元38进行步骤S3411中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3412)。
步骤S3413的循环中,对于j’=1,···,r-1,一边将j’从1起每次增加1,一边执行以下的步骤S3413a、S3413b。
积和运算单元35以Ark及Akj’为输入,得到
(步骤S3413a)。化简单元38进行步骤S3413a中得到的Arj’的化简,并更新成化简后的元素Arj’(步骤S3413b)。
[步骤S342]
步骤S342的循环中,对于j=i,···,n-1,一边将j从i起每次增加1,一边执行以下的步骤S3421、S3422、S3423、S3424。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3421)。化简单元38进行步骤S3421中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3422)。积和运算单元35以Ark及Akr为输入,得到
(步骤S3423)。化简单元38进行步骤S3423中得到的Arr的化简,并更新成化简后的元素Arr(步骤S3424)。
[步骤S343]
步骤S343的循环中,对于j=0,···,i-2,一边将j从0起每次增加1,一边执行以下的步骤S3431、S3432。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3431)。化简单元38进行步骤S3431中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3432)。
[步骤S344]
逆元运算单元36以Aii、Air、Ari、Arr为输入,得到矩阵式
(步骤S3441)。化简单元38进行步骤S3441中得到的矩阵式det的化简(步骤S3442)。
[步骤S345]
逆元运算单元36以Aii和det为输入,得到inv:=(Aiidet)-1(步骤S345)。
[步骤S346]
逆元运算单元36以inv和det为输入,得到Aii -1:=inv·det(步骤S3461)。化简单元38进行步骤S3461中得到的Aii -1的化简(步骤S3462)。
[步骤S347]
逆元运算单元36以inv和Aii为输入,得到invArr:=inv·Aii 2(步骤S3471)。化简单元38进行步骤S3471中得到的invArr的化简(步骤S3472)。
[步骤S348]
步骤S348的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S3481、S3482。
相乘单元37以Aik和Akj为输入,得到Aij:=Aii -1Aij(步骤S3481)。化简单元38进行步骤S3481中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3482)。
[步骤S349]
步骤S349的循环中,对于j=i+1,···,n-1,一边将j从i+1起每次增加1,一边执行以下的步骤S3491、S3492。
相乘单元37以Aii -1和Aij为输入,得到Aij:=Aii -1Aij(步骤S3491)。化简单元38进行步骤S3491中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3492)。
[步骤S34a]
步骤S34a的循环中,对于j=r+1,···,n-1,一边将j从r+1起每次增加1,一边执行以下的步骤S34aa、S34ab。
积和运算单元35以Ark和Akj为输入,得到
(步骤S34aa)。化简单元38进行步骤S34aa中得到的Arj的化简,并更新成化简后的元素Arj(步骤S34ab)。
[步骤S34b]
步骤S34b的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S34ba、S34bb。
积和运算单元35以Ark和Akj为输入,得到
(步骤S34ba)。化简单元38进行步骤S34ba中得到的Arj的化简,并更新成化简后的元素Arj(步骤S34bb)。
[步骤S34c]
步骤S34c的循环中,对于j=0,···,r-1,一边将j从0起每次增加1,一边执行以下的步骤S34ca、S34cb。
相乘单元37以invArr和Arj为输入,得到Arj:=invArrArj(步骤S34ca)。化简单元38进行步骤S34ca中得到的Arj的化简,并更新成化简后的元素Arj(步骤S34cb)。
[步骤S34d]
步骤S34d的循环中,对于j=r+1,···,n-1,一边将j从r+1起每次增加1,一边执行以下的步骤S34da、S34db。
相乘单元37以invArr和Arj为输入,得到Arj:=invArrArj(步骤S34da)。化简单元38进行步骤S34da中得到的Arj的化简,并更新成化简后的元素Arj(步骤S34db)。
《步骤S35》
控制单元14判定n是否为奇数(步骤S351)。在此,如果n为偶数,则进入上述的步骤S15。另一方面,如果n为奇数,则执行以下的步骤S352~S357后,进入上述的步骤S15。
[步骤S352]
控制单元14得到i:=n-1(步骤S352)。
[步骤S353]
步骤S353的循环中,对于j=1,···,i-1,一边将j从1起每次增加1,一边执行以下的步骤S3531、S3532。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3531)。化简单元18进行步骤S3531中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3532)。
[步骤S354]
步骤S354的循环中,对于j=i,···,n-1,一边将j从i起每次增加1,一边执行以下的步骤S3541、S3542。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3541)。化简单元18进行步骤S3541中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3542)。
[步骤S355]
步骤S355的循环中,对于j=0,···,i-2,一边将j从0起每次增加1,一边执行以下的步骤S3551、S3552。
积和运算单元35以Aik及Akj为输入,得到
(步骤S3551)。化简单元18进行步骤S1431中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3552)。
[步骤S356]
步骤S356的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S3561、S3562。
相乘单元37得到Aij:=Aii -1Aij(步骤S3561)。化简单元18进行步骤S3561中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3562)。
[步骤S357]
步骤S357的循环中,对于j=j+1,···,n-1,一边将j从j+1起每次增加1,一边执行以下的步骤S3571、S3572。
相乘单元37得到Aij:=Aii -1Aij(步骤S3571)。化简单元18进行步骤S3571中得到的Aij的化简,并更新成化简后的元素Aij(步骤S3572)。
〔第四实施方式〕
上述的第一~三实施方式中,也可以代替各运算单元中得到的满足u≧v的Auv,得到Luv=Auv的n×n的方阵L的u行v列元素,并代替各运算单元中得到的Auv,进行使用了Luv的运算。以下,说明代替第一实施方式中由各运算单元得到的满足u≧v的Auv而得到满足Luv=Auv的n×n的方阵L的u行v列元素的例子。
<结构>
如图1中示例的那样,本实施方式的矩阵三角化装置4具有:输入单元11、输出单元12、存储单元13、控制单元14、积和运算单元45、逆元运算单元46、相乘单元47、以及化简单元48。
<处理>
使用图10~图12说明本实施方式的处理。
执行上述的步骤S11、S12(或S22)之后,执行以下的步骤S43。
《步骤S43》
步骤S43的循环中,对于j=1,···,n-1,一边将j从1起每次增加1,一边执行以下的步骤S431、S432。
相乘单元47以A00及A0j为输入,得到A’0j:=A00A0j(步骤S131)。化简单元18以步骤S131中得到的A’0j为输入,进行A’0j的化简,并更新成化简后的元素A’0j(步骤S432)
《步骤S44》
步骤S44的循环中,对于i=1,···,n-1的每一个,一边将i从1起每次增加1,一边执行以下的步骤S441~S446。
[步骤S441]
步骤S441的循环中,对于j=1,···,i-1,一边将j从1起每次增加1,一边执行以下的步骤S4411、S4412。
积和运算单元45以Lik和Akj为输入,得到
。其中,未得到被运算符的Lik时,设为Lik=Aik。即,进行以矩阵的多个位置的元素Lik和Akj为被运算符的积和运算,得到对应于与该被运算符Lik和Akj不同的位置的元素的积和运算结果Lij(步骤S4411)。化简单元18进行步骤S4411中得到的Lij的化简,并更新成化简后的元素Lij(步骤S4412)。
[步骤S442]
步骤S442的循环中,对于j=1,···,n-1,一边将j从1起每次增加1,一边执行以下的步骤S4411、S4412。
积和运算单元45以A’ik及A’kj为输入,得到
。其中,未得到被运算符的A’ik时,设为A’ik=Aik,未得到A’kj时,设为A’kj=Akj。这里也进行将矩阵的多个位置的元素Aik和A’kj设为被运算符的积和运算,得到对应于与该被运算符A’ik和A’kj不同的位置的元素的积和运算结果A’ij(步骤S4421)。化简单元18进行步骤S4421中得到的A’ij的化简,并更新成化简后的元素A’ij(步骤S4422)。
[步骤S443]
步骤S443的循环中,对于j=0,···,i-2,一边将j从0起每次增加1,一边执行以下的步骤S4431、S4432。
积和运算单元45以Lik及Lkj为输入,得到
。其中,未得到被运算符的Lik时,设为Lik=Aik,未得到Lkj时,设为Lkj=Akj。这里也进行将矩阵的多个位置的元素Lik和Lkj设为被运算符的积和运算,得到对应于与该被运算符Lik及Lkj不同的位置的元素的积和运算结果Lij(步骤S4431)。化简单元18进行步骤S4431中得到的Lij的化简,并更新成化简后的元素Lij(步骤S4432)。
[步骤S444]
步骤S444中,逆元运算单元46以Aii为输入,得到Lii:=Aii -1(步骤S444)。
[步骤S445]
步骤S445的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S4451、S4452。
相乘单元47以Lii和Lij为输入,得到Lij:=LiiLij(步骤S4451)。化简单元18进行步骤S4451中得到的Lij的化简,并更新成化简后的元素Lij(步骤S4452)。
[步骤S446]
步骤S446的循环中,对于j=j+1,···,n-1,一边将j从j+1起每次增加1,一边执行以下的步骤S4461、S4462。
相乘单元47以Lii和A’ij为输入,得到A’ij:=LiiA’ij(步骤S4461)。化简单元18进行步骤S4461中得到的A’ij的化简,并更新成化简后的元素A’ij(步骤S4462)。
《步骤S45》
上述的步骤S44的循环之后,执行步骤S45的循环。步骤S45的循环中,对于作为输出需要的行i∈{1,···,n-1},执行步骤S451。作为输出需要的行i也可以是{1,···,n-1}的所有的元素,也可以是其一部分元素。
[步骤S451]
步骤S451的循环中,对于j=0,···,i-1,一边将j从0起每次增加1,一边执行以下的步骤S4511、S4512。
相乘单元47以Ljj和Lij为输入,得到Lij:=LjjLij(步骤S4511)。化简单元18进行步骤S4511中得到的Lij的化简,并更新成化简后的元素Lij(步骤S4512)。
《步骤S46》
输出单元12输出由上述那样得到的元素Lij(其中,i=0,···,n-1,j=0,···,n-1)构成的n×n的方阵L、以及由元素A’ij(其中,i=0,···,n-1,j=0,···,n-1)构成的n×n的方阵A’。例如,对于所有的i=0,···,n-1,在执行步骤S45的循环的情况下,方阵L,A’分别成为满足LA=A’的n×n的下三角矩阵L、以及n×n的上三角矩阵A’。需要说明的是,本实施方式中,与第一、三实施方式不同,需要储存下三角矩阵L的下三角部分的元素的存储区域。
<输出日志的具体例>
以下示例输出日志。以下的例子中,作为有限域,使用以位数2的质数域为基础域的2的3次扩展域,作为用于化简的不可约多项式,使用x3+x+1,并设为n=4,且仅对于i=3执行与上述的步骤S15相当的递归性的处理。需要说明的是,以下,将矩阵的各元素以十进制数记载。将各元素的值变换成二进制数,将其第M位(2M-1的位)的值ηM∈{0,1}设为多项式的M-1次的项的系数,使用x3=x+1进行化简的多项式与扩展域的元对应。
《输入矩阵》
1 1 1 1
1 2 4 8
1 4 16 64
1 8 64 5 12
《第一实施方式的输出日志的示例》
-----0:输入-------------------------------------
1,1,1,1,
1,2,4,3,
1,4,6,5,
1,3,5,4,
-----1:第0行处理完-------------------------------------
1,1,1,1,
1,2,4,3,
1,4,6,5,
1,3,5,4,
-----2:第i行左侧-------------------------------------
1,1,1,1,
1,2,4,3,
1,4,6,5,
1,3,5,4,
-----3:第i行对角&右侧-------------------------------------
1,1,1,1,
1,3,5,2,
1,4,6,5,
1,3,5,4,
-----4:第i行计算下三角部分-------------------------------------
1,1,1,1,
1,3,5,2,
1,4,6,5,
1,3,5,4,
-----5:第i行将对角成分的逆元相乘-------------------------------------
1,1,1,1,
6,6,3,7,
1,4,6,5,
1,3,5,4,
-----6:第i行左侧-------------------------------------
1,1,1,1,
6,6,3,7,
1,5,6,5,
1,3,5,4,
-----7:第i行对角&右侧-------------------------------------
1,1,1,1,
6,6,3,7,
1,5,3,2,
1,3,5,4,
-----8:第i行计算下三角部分-------------------------------------
1,1,1,1,
6,6,3,7,
2,5,3,2,
1,3,5,4,
-----9:第i行将对角成分的逆元相乘-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
1,3,5,4,
-----10:第i行左侧-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
1,2,2,4,
-----11:第i行对角&右侧-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
1,2,2,5,
-----12:第i行计算下三角部分-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
3,4,2,5,
-----13:第i行将对角成分的逆元相乘------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,3,4,2,
-----14:最后的行计算-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,3,4,2,
-----15:最后的行对角成分相乘-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,1,5,2,
-----16:输出(基本)-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,1,5,2,
《第三实施方式的输出日志的示例》
-----17:第0行处理完-------------------------------------
1,1,1,1,
1,2,4,3,
1,4,6,5,
1,3,5,4,
-----18:第i行左侧-------------------------------------
1,1,1,1,
1,2,4,3,
1,4,6,5,
1,3,5,4,
-----19:第i+1行左侧-------------------------------------
1,1,1,1,
1,2,4,3,
1,5,6,5,
1,3,5,4,
-----20:第i行对角&右侧-------------------------------------
1,1,1,1,
1,3,5,2,
1,5,6,5,
1,3,5,4,
-----21:第i+1行对角-------------------------------------
1,1,1,1,
1,3,5,2,
1,5,7,5,
1,3,5,4,
-----22:第i行计算下三角-------------------------------------
1,1,1,1,
1,3,5,2,
1,5,7,5,
1,3,5,4,
-----23:第i行的逆元和第i+1行的逆元计算---------------------------
1,1,1,1,
1,6,5,2,
1,5,6,5,
1,3,5,4,
-----24:第i行左侧逆元相乘-------------------------------------
1,1,1,1,
6,6,5,2,
1,5,6,5,
1,3,5,4,
-----25:第i行右侧逆元相乘-------------------------------------
1,1,1,1,
6,6,3,7,
1,5,6,5,
1,3,5,4,
-----26:第i+1行右侧-------------------------------------
1,1,1,1,
6,6,3,7,
1,5,6,2,
1,3,5,4,
-----27:第i+1行下三角部分计算-------------------------------------
1,1,1,1,
6,6,3,7,
2,5,6,2,
1,3,5,4,
-----28:第i+1行左侧逆元相乘-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,2,
1,3,5,4,
-----29:第i+1行右侧逆元相乘-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
1,3,5,4,
-----30:最后的行计算-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,3,4,2,
-----31:最后的行对角成分相乘-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,1,5,2,
-----32:输出(逆元效率化后)-------------------------------------
1,1,1,1,
6,6,3,7,
7,3,6,7,
6,1,5,2,
〔变形例等〕
需要说明的是,本发明不限定于上述的实施方式。例如,上述的各种处理根据记载不仅按照时系列执行,而且也可以根据执行处理的装置的处理能力或需要并行地或单独地执行。另外,当然也可以在不脱离本发明宗旨的范围内适当变更。
在通过计算机实现上述结构的情况下,各装置应具有的功能的处理内容通过程序描述。通过利用计算机执行该程序,利用计算机实现上述处理功能。描述了该处理内容的程序能够记录于利用计算机能够读取的记录介质。由计算机能够读取的记录介质的例子是非临时性的(non-transitory)记录介质。这种记录介质的例子为磁记录装置、光盘、光磁记录介质、半导体存储器等。
该程序的流通通过例如销售、转让、借贷等记录该程序的DVD、CD-ROM等的便携式记录介质而进行。另外,通过将该程序储存于服务器计算机的存储装置,经由网络,从服务器计算机向其它计算机转发该程序,也可以使该程序流通。
执行这种程序的计算机例如首先将记录于便携式记录介质的程序或从服务器计算机转发的程序暂且储存于自己的存储装置。执行处理时,该计算机读取储存于自己的记录装置的程序,根据读取的程序执行处理。作为该程序的其它执行形式,计算机也可以从便携式记录介质直接读取程序,并根据该程序执行处理,还可以每当从服务器计算机向该计算机转发程序时,逐次根据接收的程序执行处理。也可以不进行从服务器计算机向该计算机转发程序,通过仅根据该执行指示和结果取得实现处理功能的、所谓的ASP(ApplicationService Provider,应用服务供应商)型的服务,执行上述的处理。
上述实施方式中,在计算机上执行规定的程序来实现本装置的处理功能,但也可以利用硬件实现这些处理功能的至少一部分。
产业上的可利用性
本发明例如在纠错码或秘密分散等的加密领域中,能够用于计算以扩展域为元素的正则矩阵的逆矩阵的情况等。除此之外,也能够广泛用于需要解联立方程式的技术领域(例如,机器人手臂的驱动控制等的机器人工学领域)、及需要解固有值问题的技术领域(例如,量子计算机的量子电路设计等)。
标记说明
1~4 矩阵三角化装置
Claims (9)
1.一种矩阵三角化装置,以由有限域的元素构成的第一方阵为输入且得到包含将所述第一方阵三角化而得到的上三角部分的第二方阵的至少一部分元素,
所述矩阵三角化装置包括:
积和运算单元,进行以基于所述第一方阵的矩阵的多个位置的元素为被运算符的积和运算,得到对应于与所述被运算符不同的位置的元素的积和运算结果;以及
化简单元,进行所述积和运算结果的化简。
2.如权利要求1所述的矩阵三角化装置,其中,
所述第二方阵包含下三角部分,包含所述下三角部分的下三角矩阵和所述第一方阵的积成为包含所述上三角部分的上三角矩阵,
对所述三角化的过程中为零的元素分配所述下三角部分的元素。
3.如权利要求1或2所述的矩阵三角化装置,其中,
所述三角化的过程包含得到基于所述第一方阵的元素的元素X的逆元及元素Y的逆元的逆元运算过程,
所述元素X及元素Y为所述有限域的元,
所述矩阵三角化装置包括:
第一逆元运算单元,得到成为XY的逆元(XY)-1的值;
第二逆元运算单元,通过成为所述逆元(XY)-1的值和所述元素Y的相乘,得到成为所述元素X的逆元X-1的值;以及
第三逆元运算单元,通过成为所述逆元(XY)-1的值和所述元素X的相乘,得到成为所述元素Y的逆元Y-1的值。
4.如权利要求1或2所述的矩阵三角化装置,其中,
所述三角化的过程包含得到基于所述第一方阵的元素的元素X=xα的逆元X-1=x-α的逆元运算过程,
X和x为所述有限域的元,c和α为正的整数常数,1≦α≦c,所述矩阵三角化装置包括:逆元运算单元,进行通过使用了预先计算的逆元x-c的相乘x-cxc-α,得到所述元素X的逆元X-1,或参照对于α=1,2,···,c预先计算的x-α,得到与α对应的所述逆元X-1=x-α的所述逆元运算过程。
5.一种矩阵三角化装置,包括:
第一逆元运算单元,得到A00:=A00 -1;
第一相乘单元,对于j=1,···,n-1,得到A0j:=A00A0j;
第一化简单元,进行所述第一相乘单元中得到的所述元素A0j的化简;
第一积和运算单元,对于(1)i=1,···,n-1各个中的、
(1-1)j=1,···,i-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>j</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第二化简单元,进行所述第一积和运算单元中得到的所述元素Aij的化简;
第二积和运算单元,对于(1-2)j=1,···,n-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第三化简单元,进行所述第二积和运算单元中得到的所述元素Aij的化简;
第三积和运算单元,对于(1-3)j=0,···,i-2,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>+</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第四化简单元,进行所述第三积和运算单元中得到的所述元素Aij的化简;
第二逆元运算单元,得到(1-4)Aii:=Aii -1;
第二相乘单元,对于(1-5)j=0,···,i-1,得到
Aij:=AiiAij;
第五化简单元,进行所述第二相乘单元中得到的所述元素Aij的化简;
第三相乘单元,对于(1-6)j=i+1,···,n-1,得到
Aij:=AiiAij;以及
第六化简单元,进行所述第三相乘单元中得到的所述元素Aij的化简,其中,
n为4以上的整数,A为n×n的方阵,Aij为所述方阵的i行j列的元素,i=0,···,n-1,j=0,···,n-1。
6.一种矩阵三角化装置,包括:
第一逆元运算单元,得到A00:=A00 -1;
第一相乘单元,对于j=1,···,n-1,得到A0j:=A00A0j;
第一化简单元,进行所述第一相乘单元中得到的所述元素A0j的化简;
第一积和运算单元,对于(1)奇数i=1,···,n-1各个中的、
(1-1)j=1,···,i-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>j</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第二化简单元,进行所述第一积和运算单元中得到的所述元素Aij的化简;
第二积和运算单元,对于(1-1-1)j’=1,···,r-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<msup>
<mi>rj</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<msup>
<mi>j</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<msup>
<mi>kj</mi>
<mo>&prime;</mo>
</msup>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第三化简单元,进行所述第二积和运算单元中得到的所述元素Arj’的化简;
第三积和运算单元,对于(1-2)j=i,···,n-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第四化简单元,进行所述第三积和运算单元中得到的所述元素Aij的化简;
第四积和运算单元,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>r</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>r</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>r</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第五化简单元,进行所述第四积和运算单元中得到的所述元素Arr的化简;
第五积和运算单元,对于(1-3)j=0,···,i-2,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>+</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第六化简单元,进行所述第五积和运算单元中得到的所述元素Aij的化简;
第二逆元运算单元,得到(1-4)矩阵式
<mrow>
<mi>det</mi>
<mo>=</mo>
<mfenced open = "|" close = "|">
<mtable>
<mtr>
<mtd>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>i</mi>
</mrow>
</msub>
</mtd>
<mtd>
<msub>
<mi>A</mi>
<mrow>
<mi>i</mi>
<mi>r</mi>
</mrow>
</msub>
</mtd>
</mtr>
<mtr>
<mtd>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>i</mi>
</mrow>
</msub>
</mtd>
<mtd>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>r</mi>
</mrow>
</msub>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>;</mo>
</mrow>
第七化简单元,进行所述矩阵式det的化简;
第三逆元运算单元,得到(1-5)inv:=(Aiidet)-1;
第四逆元运算单元,得到(1-6)Aii -1:=inv·det;
第八化简单元,进行所述第四逆元运算单元中得到的所述元素Aii -1的化简;
第五逆元运算单元,得到(1-7)invArr:=inv·Aii 2;
第九化简单元,进行所述第五逆元运算单元中得到的所述元素invArr的化简;
第二相乘单元,对于(1-8)j=0,···,i-1,得到Aij:=Aii -1Aij;
第十化简单元,进行所述第二相乘单元中得到的所述元素Aij的化简;
第三相乘单元,对于(1-9)j=i+1,···,n-1,得到Aij:=Aii -1Aij;
第十一化简单元,进行所述第三相乘单元中得到的所述元素Aij的化简;
第六积和运算单元,对于(1-10)j=r+1,···,n-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mn>0</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>r</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第十二化简单元,进行所述第六积和运算单元中得到的所述元素Arj的化简;
第七积和运算单元,对于(1-11)j=0,···,i-1,得到
<mrow>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>:</mo>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>+</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>k</mi>
<mo><</mo>
<mi>i</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow>
<mi>r</mi>
<mi>k</mi>
</mrow>
</msub>
<msub>
<mi>A</mi>
<mrow>
<mi>k</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>;</mo>
</mrow>
第十三化简单元,进行所述第七积和运算单元中得到的所述元素Arj的化简;
第四相乘单元,对于(1-12)j=0,···,r-1,得到Arj:=invArrArj;
第十四化简单元,进行所述第四相乘单元中得到的所述元素Arj的化简;
第五相乘单元,对于(1-13)j=r+1,···,n-1,得到Arj:=invArrArj;以及
第十五化简单元,进行所述第五相乘单元中得到的所述元素Arj的化简,其中,
n为4以上的整数,A为n×n的方阵,Aij为所述方阵的i行j列的元素,i=0,···,n-1,j=0,···,n-1,r:=i+1。
7.如权利要求5或6所述的矩阵三角化装置,其中,
取代满足u≧v的Auv,得到Luv=Auv的n×n的方阵L的u行v列元素,取代Auv,进行使用了Luv的运算。
8.一种矩阵三角化方法,以由有限域的元素构成的第一方阵为输入且得到包含将所述第一方阵三角化而得到的上三角部分的第二方阵的至少一部分元素,
所述矩阵三角化方法包括:
在积和运算单元中,进行以基于所述第一方阵的矩阵的多个位置的元素为被运算符的积和运算,得到对应于与所述被运算符不同的位置的元素的积和运算结果的积和运算步骤;以及
在化简单元中,进行所述积和运算结果的化简的化简步骤。
9.一种程序,其用于使计算机具有作为权利要求1~7中任一项所述的矩阵三角化装置的功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-097279 | 2015-05-12 | ||
JP2015097279A JP6059287B2 (ja) | 2015-05-12 | 2015-05-12 | 行列三角化装置およびプログラム |
PCT/JP2016/063959 WO2016181981A1 (ja) | 2015-05-12 | 2016-05-11 | 行列三角化装置、行列三角化方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533539A true CN107533539A (zh) | 2018-01-02 |
CN107533539B CN107533539B (zh) | 2021-05-07 |
Family
ID=57248122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680025956.4A Active CN107533539B (zh) | 2015-05-12 | 2016-05-11 | 矩阵三角化装置、矩阵三角化方法以及记录介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10929502B2 (zh) |
EP (1) | EP3296887A4 (zh) |
JP (1) | JP6059287B2 (zh) |
CN (1) | CN107533539B (zh) |
WO (1) | WO2016181981A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100268753A1 (en) * | 2007-08-13 | 2010-10-21 | Kyoto University | Inverse laplace transform program, program for forming table for inverse laplace transform, program for calculating numerical solution of inverse laplace transform, and inverse laplace transform device |
CN102396010A (zh) * | 2009-04-24 | 2012-03-28 | 日本电信电话株式会社 | 有限域运算装置、有限域运算方法、程序以及记录介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4354609B2 (ja) | 1999-07-16 | 2009-10-28 | パナソニック株式会社 | 有限体上の連立方程式求解装置及び逆元演算装置 |
JP4752313B2 (ja) | 2004-09-30 | 2011-08-17 | ソニー株式会社 | 暗号処理演算方法、および暗号処理装置、並びにコンピュータ・プログラム |
JP2005124194A (ja) * | 2004-10-12 | 2005-05-12 | Hitachi Communication Technologies Ltd | エラー訂正符号の構成方法、復号方法、伝送装置、ネットワーク |
US8347192B1 (en) * | 2010-03-08 | 2013-01-01 | Altera Corporation | Parallel finite field vector operators |
-
2015
- 2015-05-12 JP JP2015097279A patent/JP6059287B2/ja active Active
-
2016
- 2016-05-11 CN CN201680025956.4A patent/CN107533539B/zh active Active
- 2016-05-11 EP EP16792706.0A patent/EP3296887A4/en not_active Ceased
- 2016-05-11 WO PCT/JP2016/063959 patent/WO2016181981A1/ja active Application Filing
- 2016-05-11 US US15/571,156 patent/US10929502B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100268753A1 (en) * | 2007-08-13 | 2010-10-21 | Kyoto University | Inverse laplace transform program, program for forming table for inverse laplace transform, program for calculating numerical solution of inverse laplace transform, and inverse laplace transform device |
CN102396010A (zh) * | 2009-04-24 | 2012-03-28 | 日本电信电话株式会社 | 有限域运算装置、有限域运算方法、程序以及记录介质 |
Non-Patent Citations (1)
Title |
---|
李慧: ""积和式的几种常用计算方法"", 《湖南农机》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107533539B (zh) | 2021-05-07 |
EP3296887A1 (en) | 2018-03-21 |
JP2016212723A (ja) | 2016-12-15 |
US20180260362A1 (en) | 2018-09-13 |
EP3296887A4 (en) | 2019-01-02 |
WO2016181981A1 (ja) | 2016-11-17 |
US10929502B2 (en) | 2021-02-23 |
JP6059287B2 (ja) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Axelsson | Iterative solution methods | |
EP1612948B1 (en) | Message-passing decoding of low-density parity-check (LDPC) codes using pipeline node processing | |
CN105426345A (zh) | 一种矩阵求逆运算方法 | |
US9928037B2 (en) | Modulo calculation using polynomials | |
CN104617959A (zh) | 一种基于通用处理器的ldpc编译码方法 | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
WO2015087643A1 (ja) | 誤り訂正復号装置 | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
CN107534449B (zh) | 解码装置、解码方法、及程序 | |
CN107533539B (zh) | 矩阵三角化装置、矩阵三角化方法以及记录介质 | |
KR20230155417A (ko) | 하드웨어에서의 희소 행렬 곱셈 | |
KR101770122B1 (ko) | Simd 프로세서를 이용하는 갈로아 필드 이진 다항식 제산 장치 및 방법 | |
CN107534450B (zh) | 矩阵应用装置、矩阵应用方法、以及存储介质 | |
CN112668709B (zh) | 计算装置以及用于数据重用的方法 | |
CN110990776B (zh) | 编码分布式计算方法、装置、计算机设备及存储介质 | |
JP4405452B2 (ja) | 逆変換回路 | |
JP2021502743A5 (zh) | ||
Dureisseix | Generalized fraction-free LU factorization for singular systems with kernel extraction | |
CN113114276B (zh) | 一种基于循环移位的网络编解码方法、装置及相关组件 | |
CN116070282B (zh) | 一种隐私计算中的数据处理方法、装置及电子设备 | |
JP3875183B2 (ja) | 演算装置 | |
JP6687700B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
CN114981861A (zh) | 秘密计算装置、秘密计算方法及程序 | |
CN113708779A (zh) | 一种矩阵与向量乘运算单元 | |
Dong et al. | Parallel Matrix Condensation for Calculating Log-Determinant of Large Matrix |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |