首页 > 其他分享 >【动态规划】矩阵连乘问题

【动态规划】矩阵连乘问题

时间:2023-11-15 23:34:14浏览次数:38  
标签:连乘 Ai 矩阵 A1 次数 相乘 动态

问题描述:

    给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2…,n-1。

  如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。

  

  m[ i ][ j ]  :i = j时指矩阵Ai ,i < j时指矩阵Ai到矩阵Aj的若干矩阵连乘的最小次数。pi 指维数。

例:       

       

c图表示连乘矩阵中k的位置。

 

1.求A1-A6矩阵的最小连乘次数,就是求m[ 1 ][ 6 ]的值。

先对m[ 1 ][ 6 ]进行一次划分,

划分结果为m[ 1 ][ 1 ]+m[ 2 ][ 6 ]+p0p1p6 ( A1(A2*A3*A4*A5*A6) ),

       m[ 1 ][ 2 ]+m[ 3 ][ 6 ]+p0p2p6 ....

      ....  m[ 1 ][ 5 ]+m[ 6 ][ 6 ]

 

2.这5中情况,值最小的即为这次划分(结合律)的最优连乘顺序。

而类似m[ 2 ][ 6 ](超过2个矩阵相乘的连乘最小次数)则也是通过划分为两部分矩阵得到的最优连乘顺序。

 

3.综上:m[ 1 ][ 6 ]=m[ 1 ][ 3 ]+m[ 3 ][ 6 ]+p0p3p6

   m[ 1 ][ 3 ]=m[ 1 ][ 1 ]+m[ 2 ][ 3 ]+p0p1p3

   m[ 3 ][ 6 ]=m[ 3 ][ 3 ]+m[ 4 ][ 6 ]+p2p3p6

   m[ 4 ][ 6 ]=m[ 4 ][ 5 ]+m[ 6 ][ 6 ]+p3p5p6

最少两个矩阵相乘,得出它们的连乘次数。然后推广到3个矩阵相乘,...... n个矩阵相乘。

 

标签:连乘,Ai,矩阵,A1,次数,相乘,动态
From: https://www.cnblogs.com/wanna-be-star/p/17835137.html

相关文章

  • DyHGCN:一种学习用户动态偏好的动态异构图卷积网络,用于信息扩散预测
    DyHGCN:ADynamicHeterogeneousGraphConvolutionalNetworktoLearnUsers’DynamicPreferencesforInformationDiffusionPredictionECML-PKDD2020欧洲机器学习与数据挖掘顶级会议Abstract​ 信息扩散预测是了解信息传播过程的一项基本任务。它在错误信息传播预测......
  • 【路径规划】基于动态窗口法DWA算法的机器人动态避障路径规划研究附Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 第8章 Qt 布局管理--动态调整浏览器登录
    Qt布局管理--动态调整浏览器登录控件没有跟随窗口变大的位置布局管理器概念及原理讲解参考值:控件变化的最小限度扩展策略:水平垂直扩展时扩展的方案都拉伸还是只拉伸,还有保持不变的方案比利:多个控件分别按多少比利1:1间隙:美观边距:美观这块吃实践,暂时放着··......
  • task01:绪论、马尔可夫过程、动态规划
    绪论1.强化学习1.1强化学习定义强化学习(ReinforcementLearning,RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题1.2强化学习的应用游戏和机器人领域,强化......
  • 源码级JVS低代码功能新增:动态配置、逻辑多级循环嵌套等等
    低代码更新功能新增:1.下拉组件选项新增动态配置;选项的内容可以根据特定的条件或数据源进行动态变化的功能,通过动态配置,用户可以灵活地设置下拉组件的选项内容,例如从数据库或其他数据源中获取选项数据,或者根据用户的操作动态改变选项。2.新增应用操作日志详情;操作日志是用来记录轻......
  • 【随手记】mybatis动态sql foreach遍历List<Map>问题
    使用mybatis时经常需要在xml里写动态sql,发现foreach标签使用的问题foreach标签使用当Mapper传参是List<Map<String,Object>集合的形式时,不能直接使用参数名,会找不到对应的参数。list类型的参数会特殊处理封装在map中,map的key就叫list所以collection属性值只能是"list"//m......
  • C++ 程序数据传输到动态库后,出现乱码
    程序结构体和动态库结构体如下structVehInfo{ intID; intlaneId; VEHSTATEvehstate; intleftX; intrightX; intleftXSignal;//单车道的左位置 intrightXSignal;//单车道的右位置 intvehLen; intvehWidth; intvehHeight; /*****************************......
  • Redis数据结构之动态字符串SDS
    动态字符串SDS我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:V获取字符串长度的需要通过运算V非二进制安全V不可修改Redis构建了一种新的字......
  • 【动态规划】流水线调度问题(加工顺序问题)
    问题描述:有若干任务,{1,2...n}。每个任务都需要先在机器1,然后在机器2上执行。每个任务在不同机器执行时有相应时间。求解任务的执行顺序,使得在最短的时间内分别在两台机器上执行完所有任务。例:下图为任务i,j在机器a,b的执行时间。           根据J......
  • [左神面试指南] 递归和动态规划[下]篇
    CD42子数组异或和为0的最多划分⭐/*⭐DP⭐*/publicclassCD42_1{publicstaticintsolution(int[]arr){HashMap<Integer,Integer>map=newHashMap<>();int[]dp=newint[arr.length];inttemp=0;dp[0]=arr[0]......