有4个矩阵{A1,A2,A3,A4},其中Ai与Ai+1是可乘的,i=1,2,3,连乘积为A1A2A3A4。在这个四矩阵连乘积问题中,请问不同子问题的个数总共有多少个,并请把所有的子问题列出来。

题目

有4个矩阵{A1,A2,A3,A4},其中Ai与Ai+1是可乘的,i=1,2,3,连乘积为A1A2A3A4。在这个四矩阵连乘积问题中,请问不同子问题的个数总共有多少个,并请把所有的子问题列出来。


相似考题
更多“有4个矩阵{A1,A2,A3,A4},其中Ai与Ai+1是可乘的,i=1,2,3,连乘积为A1A2A3A4。在这个四矩阵连乘积问题中,请问不同子问题的个数总共有多少个,并请把所有的子问题列出来。”相关问题
  • 第1题:

    试题四(15分)

    阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。

    【说明】

    某工程计算中要完成多个矩阵相乘(链乘)的计算任务。

    两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am*n*Bn*p,需要m*n*p次乘法运算。

    矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A110*100,A2100*5,A35*50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按A1*(A2*A3)计算,则需要进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。

    矩阵链乘问题可描述为:给定n个矩阵<A1,A2,….An>,矩阵Ai的维数为pi-1*Pi,其中i = 1,2,….n。确定一种乘法顺序,使得这n个矩阵相乘时进行乘法的运算次数最少。

    由于可能的计算顺序数量非常庞大,对较大的n,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2*…*An的一个最优计算顺序从第k个矩阵处断开,即分为A1*A2*….Ak和Ak+1*Ak+2*…*An两个子问题,则该最优解应该包含A1*A2*…*Ak的一个最优计算顺序和Ak+1*Ak+2*…An的一个最优计算顺序。据此构造递归式,

    其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最优计算的计算代价。最终需要求解cost[0][n-1]。

    【C代码】

    算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计算量,然后依次计算3个矩阵、4个矩阵、…、n个矩阵相乘的最小计算量及最优计算顺序。下面是算法的C语言实现。

    (1)主要变量说明

    n:矩阵数

    seq[]:矩阵维数序列

    cost[][]:二维数组,长度为n*n,其中元素cost[i][j]表示Ai+1*Ai+2*…Aj+1的最优计算的计算代价

    trace[][]:二维数组,长度为n*n,其中元素trace[i][j]表示Ai+1*Ai+2*Aj+1的最优计算对应的划分位置,即k

    (2)函数cmm

    define N 100

    intcost[N][N];

    inttrace[N][N];

    int cmm(int n,int seq[]){

    int tempCost;

    int tempTrace;

    int i,j,k,p;

    int temp;

    for( i=0;i<n;i++){ cost[i][i] =0;}

    for(p=1;p<n;p++){

    for(i=0; (1) ;i++){

    (2);

    tempCost = -1;

    for(k = i;k<j;k++){

    temp = (3) ;

    if(tempCost==-1||tempCost>temp){

    tempCost = temp;

    (4) ;

    }

    }

    cost[i][j] = tempCost;

    trace[i][j] = tempTrace;

    }

    }

    return cost[0][n-1];

    }

    【问题1】(8分)

    根据以上说明和C代码,填充C代码中的空(1)~(4)。

    【问题2】(4分)

    根据以上说明和C代码,该问题采用了 (5) 算法设计策略,时间复杂度 (6) 。(用O符号表示)

    【问题3】(3分)

    考虑实例n=6,各个矩阵的维数:A1为5*10,A2为10*3,A3为3*12,A4为12*5,A5为5*50,A6为50*6,即维数序列为5,10,3,12,5,50,6。则根据上述C代码得到的一个最优计算顺序为 (7) (用加括号方式表示计算顺序),所需要的乘法运算次数为 (8) 。


    正确答案:

    试题四分析

    在解答本题时,需要注意的第一个问题便是矩阵的乘法到底是怎么进行的。

    一个nm列的矩阵可以乘以一个mp列的矩阵,得到的结果是一个np列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。如:

    在本题中,题干部分提到“发现矩阵链乘问题具有最优子结构”,这是利用动态规划法求解最优解问题的典型特征。所以(5)应填动态规划法。

    接下来分析(1)-(4)空,这几个空中,最容易回答的是(3)和(4)。(3)空可通过题目给出的递归式分析得到,其中cost数组部分与公式完全一致,而p数组在程序中是seq,所以回答时修正即可,(3)填:cost[i][k]+cost[k+1][j]+seq[i]*seq[k+1]*seq[j+1]。第(4)空的上一句为:tempCost = temp,即保存当前状态最优解,由于在保存最优解时,不仅涉及cost的记录,还涉及其位置k的记录,所以需要在此进行tempTrace=k的操作。

    1)与(2)相对复杂,其中(1)是对i值范围的确定,而(2)是对j的赋值操作(由于后面用到了j,但程序中没有对j的赋值,从而断定该空是对j的赋值)。两者一并起到一个效果,对cost数组操作时的操作范围与顺序。由于在进行矩阵链乘操作时,分析解空间所用到的是cost右上角的三角矩阵,而操作时,是对这个三角矩阵从左至右,呈斜线的访问(如图所示)。所以(1)和(2)分别填i<n-pj=i+p

    该程序由于涉及3重循环,所以时间复杂度为:On3)。通过手动运行程序的方式可知最优解为:

    A1A2)((A3A4)(A5A6))。

    总计算次数为2010

    参考答案

    问题1

    1i<n-p

    2j=i+p

    3cost[i][k]+cost[k+1][j]+seq[i]*seq[k+1]*seq[j+1]

    4tempTrace=k

    问题2

    5)动态规划法 6On3

    问题3

    7)(A1A2)((A3A4)(A5A6)) 82010


  • 第2题:

    给定关系模式R(U,F),萁中:u为关系模式R中的属性集,,是u上的一组函数依赖。假设u={A1,A2,A3;A4),F={A1→A2,A1A2→A3,A1→A4,A2→A4那么关系R的主键应为( 52 )。函数依赖集F中的( 53 )是冗余的。

    A.AI →A2

    B.AIA2→A3

    C.Al→A4

    D.A2→A4


    正确答案:C

  • 第3题:

    设A是3阶矩阵,P=(a1,a2,a3)是3阶可逆矩阵,
    若矩阵Q=(a1,a2,a3),则Q-1AQ=


    答案:B
    解析:
    提示:当P-1AP=Λ时,P=(a1,a2,a3)中a1,a2,a3的排列满足对应关系,a1对应λ1,a2对应λ2,a3对应λ3,可知a1对应特征值λ1=1,a2对应特征值λ2=2,a3对应特征值λ3=0,由此可

  • 第4题:

    某大型整数矩阵用二维整数组 G[1:2M ,l:2N]表示,其中M 和 N 是较大的整数,而且每行从左到右都己是递增排序,每到从上到下也都己是递增排序。元素 G[M,N]将该矩阵划分为四个子矩阵 A[1:M,1:N],B[1:M,(N+1):2N],C[(M+1):2M,1:N ],D[(M+1):2M,(N+1):2N]。如果某个整数 E 大于 A[M,N],则 E(65)。

    A.只可能在子矩阵 A中
    B.只可能在子矩阵 B或 C中
    C.只可能在子矩阵 B、C或 D中
    D.只可能在子矩阵 D中

    答案:C
    解析:
    可以把A作为一个直角坐标系的原点,X轴是从左到右递增,Y轴是从上到下递增。如果E大于A,那么E应该在A的右侧或者在A的下侧。因此,可能在子矩阵B、C或者D中。

  • 第5题:

    设A是3阶矩阵,P=(a1,a2,a3)是3阶可逆矩阵,且P-1AP=


    答案:B
    解析:
    提示 当P-1AP=Λ时,P=(a1,a2,a3)中a1,a2,a3的排列满足对应关系,a1对应λ1,a2对应λ2,a3对应λ3,可知a1对应特征值λ1=1,a2对应特征值λ2=2,a3对应特征值

  • 第6题:

    采用贪心算法保证能求得最优解的问题是( )

    A.0-1背包
    B.矩阵连乘
    C.最长公共子序列
    D.邻分(分数)背包

    答案:D
    解析:
    动态规划算法适合解决0-1背包问题,贪心法适合解决部分背包(邻分(分数)背包)问题。

  • 第7题:

    阅读下列说明和C代码,回答问题1至问题3

    【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am×n*Bn×p,需要m*n*p次乘法运算。 矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A110×100,A2100×5,A35×50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按A1*(A2*A3)计算,则需要进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。 矩阵链乘问题可描述为:给定n个矩阵


    答案:
    解析:

  • 第8题:

    定轴轮系的齿轮传动比怎样计算?()

    • A、i=主动轮齿数连乘积/从动轮齿数连乘积
    • B、i=从动轮齿数连乘积/主动轮齿数连乘积
    • C、i=从动轮齿数连加和/主动轮齿数连加和
    • D、i=主动轮齿数连加和/从动轮齿数连加和

    正确答案:B

  • 第9题:

    在Excel2003中,单元格B3的值是单元格A1、A2、A3、A4的平均值,则可输入公式()。

    • A、=AVERAGE(A1:A4)
    • B、=AVERAGE(A1、A2、A3、A4)
    • C、=AVERAGE(A1+A2+A4+A4)
    • D、=(A1,A4)/4

    正确答案:A

  • 第10题:

    生成矩阵是可逆矩阵,当Ω其中的2n个矩阵都是非零矩阵,那么存在一对I,j满足什么等式成立?()

    • A、Ai=Aj
    • B、Ai+Aj=1
    • C、Ai+Aj=-1
    • D、AiAj=1

    正确答案:A

  • 第11题:

    问答题
    有4个矩阵{A1,A2,A3,A4},其中Ai与Ai+1是可乘的,i=1,2,3,连乘积为A1A2A3A4。在这个四矩阵连乘积问题中,请问不同子问题的个数总共有多少个,并请把所有的子问题列出来。

    正确答案: 5个
    (A1(A2(A3A4)))
    (A1((A2A3)A4))
    ((A1A2)(A3A4))
    ((A1(A2A3))A4)
    (((A1A2)A3)A4)
    解析: 暂无解析

  • 第12题:

    问答题
    设有三个非零的n阶(n≥3)方阵A1、A2、A3,满足Ai2=Ai(i=1,2,3),且AiAj=0(i≠j,i、j=1,2,3),证明:  (1)Ai(i=1,2,3)的特征值有且仅有0和1;  (2)Ai的对应于特征值1的特征向量是Aj的对应于特征值0的特征向量(i≠j);  (3)若α(→)1、α(→)2、α(→)3分别为A1、A2、A3的对应于特征值1的特征向量,则向量组α(→)1、α(→)2、α(→)3线性无关。

    正确答案:
    (1)设λi为矩阵Ai的特征值,α()i(α()i≠0)是Ai的属于特征值λi的特征向量,则有λiα()i=Aiα()i=Ai2α()iiAiα()ii2α()i,所以(λii2)α()i=0。
    α()i≠0知λii2=0,所以λi=0或1,即若Ai有特征值,则只能是0或1。
    由Ai2=Ai得Ai(Ai-E)=0,因为AiAj=0(i≠j)且Ai≠0(i=1,2,3),所以Ai≠E,即Ai-E≠0。所以知Ai的列向量都是齐次线性方程组AiX()=0()的解,且AiX()=0()有非零解。
    从而,Ai,=0,即,Ai-0E,=0。即0是Ai的特征值,同理可证1也是Ai的特征值。
    (2)设Ai属于特征值1的特征向量为α()i,则Aiα()i=α()i,AjAiα()i=Ajα()i(i≠j)。
    因为AiAj=0(i≠j),所以AjAi=0,Ajα()i=0α()i,故Ai的属于特征值1的特征向量是Aj属于特征值0的特征向量。
    (3)设有数k1,k2,k3使k1α()1+k2α()2+k3α()3=0(),即k1A1α()1+k2A1α()2+k3A1α()3=0(),根据(2)可知α()2,α()3应是A1的属于特征值0的特征向量,即A1α()2=0(),A1α()3=0()
    故有k1A1α()1=k1·1·α()1=k1α()1=0,由α()1≠0,故k1=0。同理可证k2=k3=0,因此α()1α()2α()3线性无关。
    解析: 暂无解析

  • 第13题:

    在关系R(A1,A2 ,A3) 和 S(A2 ,A3 ,A4) 上进行关系运算,与该关系表达式等价的是( )

    A.B.C.D.


    正确答案:D

  • 第14题:

    与T细胞表面CD4分子结合的部位是A.HLA-I类分子轻链β2mB.HLA—I类分子a2和a3结构域SXB

    与T细胞表面CD4分子结合的部位是

    A.HLA-I类分子轻链β2m

    B.HLA—I类分子a2和a3结构域

    C.HLA-Ⅱ类分子a1和β1结构域

    D.HLA_1类分子a3结构域

    E.HLⅡ类分子β2结构域


    正确答案:E

  • 第15题:

    某有向图G及其邻接矩阵如下所示。以下关于图的邻接矩阵存储的叙述中,错误的是( )。

    A.有向图的邻接矩阵可以是对称矩阵
    B.第i行的非零元素个数为顶点i的出度
    C.第i行的非零元素个数为顶点i的入度
    D.有向图的邻接矩阵中非零元素个数为图中弧的数目

    答案:C
    解析:
    本题考查数据结构基础知识。
    图中顶点v的度是指关联于该顶点的边的数目,若为有向图,顶点的度表示该顶点的入度和出度之和。
    图的邻接矩阵表示法利用一个矩阵来表示图中顶点之间的关系。矩阵元素的值设置如下:
    http://www.yfzxmn.cn/newyfB12/"tu/1612/j/sp/cj/cx2013s.1A7E517.jpg"
    对于题中所给的图,各顶点的度如下表所示:

    显然,邻接矩阵中每一行的非零元素个数对应一个顶点的出度,每一列的非零元素个数对应一个顶点的入度。

  • 第16题:

    在关系R(A1,A2,A3)和S(A2,A3,A4)上进行关系运算,与该关系表达式等价的是( )



    答案:D
    解析:
    题干的关系代数运算的含义是R与S先进行自然连接运算,然后在自然连接的基础上进行选择运算,最后做投影运算。自然连接运算,可以转化为R与S先进行笛卡儿积运算,在笛卡儿积运算的基础上,进行选择运算,选择运算的条件为:R.A2=S.A2 AND R.A3=S.A3,然后在选择运算的结果集上,进行投影运算,投影运算是消除重复的列。将表达式综合起来,进行优化可以转换成选项D的表达式。

  • 第17题:

    已知al,a2,a3,a4是四维非零列向量,记A=(a1,a2,a3,a4),A+是A的伴随矩阵,若齐次方程组AX=0的基础解系为(1,0,-2,0)T,则AX=0的基础解系为( )。

    A、al a2
    B、a1 a3
    C、al a2 a3
    D、a2 a3 a4

    答案:D
    解析:
    AX=0的基础解系只含有一个向量,所以矩阵A的秩为3,所以A存在不为0的3阶子 即a1-2a3=0,所以a1与a3线性相关。而方程组的基本解系必须是线性相关的向量,所以正确答案为D。

  • 第18题:

    给定关系模式R(U,F),其中:U为关系模式R中的属性集,F是U上的一组函数依赖。假设U={A1,A2,A3,A4},F={A1→A2,A1A2→A3,A1→A4,A2→A4},函数依赖集F中的( )是冗余的。

    A.A1→A2
    B.A1A2→A3
    C.A1→A4
    D.A2→A4

    答案:C
    解析:
    A1->A2,A2->A4利用传递率:A1->A4,因此A1->A4是冗余。

  • 第19题:

    已知矩阵 Am*n和 Bn*p 相乘的时间复杂度为 O(mnp)矩阵相乘满足结合律,如三个矩阵A、B、C 相乘的顺序可以是(A*B)*C),也可以是A*(B*C).不同的相乘序所需进行的乘法次数可能有很大的差别,因此确定n 个矩阵相乘的最优计算顺序是一个非常重要的问题。已知确定n 个短阵 A,A2........An 相乘的计算顺序具有最优子结构,即 A1A2..........An 的最优计算顺序包含其子问题A1A2.......Ak和 Ak+1Ak+2.......An(<=kcn)的最优计算顺序。
    可以列出其递归式为



    其中,A 的维度为 pi-1*pim【i,j】,表示 AiAi+1…A j最优计算顺字的相乘次数,
    先釆用自底向上的方法求n 个矩阵相乘的最优计算顺序。则该问题的算法设计策略为( ),算法的时间复杂度为( ),空间复杂度为( )
    给定一个实例,(POPi........P5)=(20.15.4.10.20.25)最优计算顺序为(请作答此空)

    A.(((A1*A2)*A3)*A4)*A5
    B.A1*(A2*(A3*(A4*A5)))
    C.((A1*A2)*A3)*(A4*A5)
    D.(A1*A2)*((A3*A4)*A5)

    答案:D
    解析:
    矩阵链乘法: 一个给定的矩阵序列A1A2...An计算连乘乘积,有不同的结合方法,并且在结合时,矩阵的相对位置不能改变,只能相邻结合。根据矩阵乘法的公式,10*100和100*5的矩阵相乘需要做10*100*5次标量乘法。那么对于维数分别为10*100、100*5、5*50的矩阵A、B、C,用(A*B)*C来计算需要10*100*5 + 10*5*50 =7500次标量乘法;而A*(B*C)则需要100*5*50+10*100*50=75000次标量乘法。根据题干有A1-A5五个矩阵,分别为:20*15、15*4、4*10、10*20、20*25,分别带入65题各个选项,得到选项D是计算次数最少的选项。具体计算结果为:选项A:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,(((A1*A2)*A3)*A4)=20*10*20=4000,(((A1*A2)*A3)*A4)*A5=20*20*25=10000,总的计算次数为1200+800+4000+10000=16000次。选项B:A4*A5=10*20*25=5000,A3*(A4*A5)=4*10*25=1000,A2*(A3*(A4*A5))=15*4*25=1500,A1*(A2*(A3*(A4*A5)))=20*15*25=7500,总的计算次数为:5000+1000+1500+7500=15000次。选项C:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,A4*A5=10*20*25=5000,((A1*A2)*A3)*(A4*A5)=20*10*25=5000,总的计算次数为1200+800+5000+5000=12000次。选项D:A1*A2=20*15*4=1200,A3*A4=4*10*20=800,(A3*A4)*A5=4*20*25=2000,(A1*A2)*((A3*A4)*A5)=20*4*25=2000,总的计算次数为1200+800+2000+2000=6000次。该算法的,pi 1,pk,pj的值需要三重循环解决,因此时间复杂度为O(n^3),空间复杂度为O(n^2)。

  • 第20题:

    矩阵连乘问题的算法可由()设计实现。


    正确答案:动态规划

  • 第21题:

    若R为关系模式名,A1、A2、A3、A4是其属性名,下列正确的关系模式表示形式是()

    • A、R(A1×A2×A3×A4)
    • B、R(A1,A2,(A3,A4))
    • C、R(A1、A2、A3、A4)
    • D、R(A1,A2,A3,A4)

    正确答案:D

  • 第22题:

    问答题
    (1)已知A1,A2同时发生时A发生,证明:P(A)≥P(A1)+P(A2)-1。  (2)已知任意三个事件A1,A2,A3都满足Ai⊂A(i=1,2,3),证明:P(A)≥P(A1)+P(A2)+P(A3)-2。

    正确答案:
    (1)当A1,A2同时发生时A发生,所以A1A2⊂A,P(A)≥P(A1A2),因为P(A1∪A2)=P(A1)+P(A2)-P(A1A2),所以P(A1A2)=P(A1)+P(A2)-P(A1∪A2)。
    又0≤P(A1∪A2)≤1,所以P(A)≥P(A1A2)≥P(A1)+P(A2)-1。
    (2)因为Ai⊂A(i=1,2,3),所以A1A2A3⊂A,由(1)结论可知,P(A)≥P(A1A2)+P(A3)-1≥P(A1)+P(A2)-1+P(A3)-1=P(A1)+P(A2)+P(A3)-2。
    解析: 暂无解析

  • 第23题:

    填空题
    矩阵连乘问题的算法可由()设计实现。

    正确答案: 动态规划
    解析: 暂无解析