• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

    矩乘结合律的证明 \(:\)
    \[\begin{aligned}((\mathbf{A B}) \mathbf{C})[i, j] & \\ &=\sum_{l=1}^{c}\left(\sum_{k=1}^{b} \mathbf{A}[i, k] \mathbf{B}[k, l]\right) \mathbf{C}[l, j] \\ &=\sum_{k=1}^{b} \sum_{l=1}^{c} \mathbf{A}[i, k] \mathbf{B}[k, l] \mathbf{C}[l, j] \\ &=\sum_{k=1}^{b} \mathbf{A}[i, k]\left(\sum_{l=1}^{c} \mathbf{B}[k, l] \mathbf{C}[l, j]\right) \\ &=(\mathbf{A}(\mathbf{B} \mathbf{C}))[i, j] \end{aligned}\]

    矩阵乘法能进行快速幂运算的原因就是因为它具有结合律.

    引例 \(1:\) [TJOI2017]可乐

    相信很多人都能想出一个 \(\Theta(t\times m)\) 的做法.(虽然我没想出来,但这只是因为我菜)

    问题简化一下,如果我们没有在原地停留和自爆两个操作,那么就是问从起点出发,走 \(t\) 步的不同路径数.

    这个问题怎么做呢?

    不考虑 \(Dp\) .

    令该图的邻接矩阵是 \(G\) , 那么我们考虑 \(G^2\) 是个什么东西.(此处的幂运算是指矩阵的幂).

    我们单独考虑某一行和某一列的相关运算 \(:\) 令其为 \(G_{a,i}\)\(G_{i,b}\) , 令 \(G'\) 为相乘得到的矩阵,那么会有 \(:\)

    \[G'_{a,b} = \sum_{i=1}^m{G_{a,i}\times G_{i,b}}\]

    容易发现,当且仅当 \(G_{a,i}\)\(G_{i,b}\) 都不为零,即 \(i\) 点可连通 \(a,b\) 两点的时候上式的该项才为 \(1\) , 否则为零.

    那么所有的这些情况累加起来,就是从 \(a\)\(b\) 长度为 \(2\) 的路径条数.(即走 \(2\) 步从 \(a\) 走到 \(b\) 的方案数,长度是 \(2\) 是因为经过一个中间点.)

    由此,我们可以得到, \(G^2\) 得到的矩阵其实表示了任意两点间长度为 \(2\) 的路径条数.

    那么 \(G^3\) 是否就表示任意两点间长度为 \(3\) 的路径条数呢?

    \(G'=G^2\) , \(G''\)\(G^3\). 那么有:

    \[G''=G'\times G\]

    \[G''_{a,b}=\sum_{i=1}^n\sum_{j=1}^n{G_{a,i}\times G_{i,j}\times G_{j,b}}\]

    分析方法与上面相同,于是我们归纳结论如下:

    \(G\) 表示一张图的邻接矩阵表示,那么 \(G^i\) 表示任意两点间长度为 \(i\) 的路径条数.

    那么我们就解决了引例的简化问题.

    那么怎么处理引例中的自爆和原地不动呢?

    很简单,原地不动视为自环,自爆就额外建一个虚点,表示自爆,这里要注意的是,不需要从虚点连回原图,因为自爆之后就不能再走了.

    于是我们解决了引例.

    那么矩乘是否仅仅只有这一个用处呢?

    引例 \(2:\) USACO07NOV Cow Relays

    题目大意 \(:\) 求从 \(s\)\(t\) 经过 \(k\) 条边的最短路.

    这个问题乍一看很眼熟,似乎就是上一个问题在细节上做一下变换得到.

    但你仔细思考会发现,最短路这个看似平凡的条件竟然不能用加法和乘法解决.

    但其实这也合理,因为我们知道最短路的求法都是以类似于 \(Dp\) 的松弛操作为核心的,也就是说有一个核心运算 \(: min!\)

    那么是否可以用矩阵解决这个运算呢?

    考虑 \(Floyd\) 的过程,其核心代码是 \(f_{i,j}=min(f_{i,j},f_{i,k}+f_{k,j})\)

    这给了我们一定启发,因为 \(Floyd\) 的过程和矩乘的过程十分相似.( \(Floyd\) 的本质是滚掉一维的三维 \(Dp\))

    于是,我们大胆定义新的矩乘 \(:\)

    令矩阵 \(A\) 和 矩阵 \(B\) 相乘的结果为矩阵 \(C\) .

    则定义:

    \[C_{a,b}=\sum_{i=1}^m{min(A_{x,i},B_{i,y})}\]

    容易发现,这个矩乘同样具有结合律.(可以从 \(min\) 运算是和 \(+\) 运算具有同样性质的二元运算符考虑,证明与普通矩乘相同).

    那么这样,我们直接应用引例 \(1\) 中的结论即可解决该题.

    引例 \(3:\) 最小最大边问题

    找不到题目了,国集论文没给题目来源,找不到.

    最小最大边问题 \(:\) 给定一张有向图,求某两点间通过边数恰好为 \(k\) 的路径,使得最大边最小.

    同样的熟悉,同样的问题.

    考虑如果没有长度恰好为 \(k\) 的做法,那么就是把 \(Floyd\) 的核心代码换成 \(:\)
    \[f_{i,j}=max(f_{i,j},min(f_{i,k},f_{k,j}))\]

    能否采用与上面相同的方式重定义矩乘呢?答案是肯定的.

    令矩阵 \(A\) 和矩阵 \(B\) 相乘的结果为矩阵 \(C\).

    则定义 \(:\)

    \[C_{a,b}=\max_{i=1}^m\{min(A_{x,i},B_{i,y})\}\]

    直接套用上面的结论即可.

    参考文献 \(:\) 2008年国集论文(ACM Paper):矩阵乘法在信息学中的应用--余华程

    相关文章
    相关标签/搜索
    一,肖一码′期期准2019年香港马会开码结果直播 开奖结果现场历史记录资料查询香港开马开奖现场直播网香港2019开奖结果 丹凤县| 漳平市| 庆元县| 阆中市| 来安县| 阳曲县| 泊头市| 连州市| 盖州市| 云梦县| 霍州市| 台安县| 沧州市| 八宿县| 林甸县| 抚松县| 新和县| 香格里拉县| 龙州县| 芷江| 阿合奇县| 都安| 扶沟县| 南城县| 盐边县| 拉萨市| 永丰县| 庄浪县| 商水县| 会东县| 沙田区| 磐安县| 吐鲁番市| 德清县| 天台县| 绥滨县| 普陀区| 元氏县| 济源市| 苍南县| 刚察县| 乐东| 萍乡市| 河池市| 景宁| 普兰县| 米脂县| 台北县| 尉犁县| 于田县| 大悟县| 海伦市| 无极县| 高州市| 长丰县| 梓潼县| 紫云| 隆尧县| 石家庄市| 中牟县| 博乐市| 磴口县| 承德市| 元阳县| 湖北省| 达拉特旗| 岑巩县| 徐汇区| 西乡县| 永修县| 涟源市| 乌兰浩特市| 宣威市| 大竹县| 沭阳县| 巩义市| 哈尔滨市| 龙游县| 湟中县| 广昌县| 泾源县| 乐都县| 乌兰察布市| 平江县| 比如县| 商洛市| 汉阴县| 丘北县| 临邑县| 金堂县| 博爱县| 南康市| 丹棱县| 濮阳县| 集贤县| 日喀则市| 江安县| 湟中县| 石河子市| 丰顺县| 临沧市| 阿合奇县| 铜梁县| 报价| 凤山县| 绥芬河市| 剑川县| 含山县| 西城区| 缙云县| 修文县| 鹰潭市| 临湘市| 炉霍县| 石林| 湘乡市| 马尔康县| 苏州市| 巴马| 清涧县| 宁海县| 西宁市| 井冈山市| 延寿县| 武定县| 延川县| 宝山区| 福鼎市| 临澧县| 营山县| 罗田县| 阜南县| 潞城市| 城固县| 漯河市| 新宾| 苏尼特右旗| 宜宾市| 长阳| 屯留县| 政和县| 云安县| 济阳县| 三明市| 兰西县| 汤原县| 丹东市| 和硕县| 三门峡市| 泌阳县| 元江| 晋江市| 化州市| 长子县| 浑源县| 铁力市| 平江县| 延吉市| 西峡县| 平邑县| 镇坪县| 德州市| 阳城县| 盐亭县| 永春县| 汪清县| 冷水江市| 获嘉县| 贺州市| 禄丰县| 南投县| 尚义县| 加查县| 定南县| 张家口市| 云阳县| 怀宁县| 霞浦县| 西畴县| 吴桥县| 固始县| 普兰县| 蕲春县| 方正县| 肥西县| 邵阳市| 宜都市| 兴隆县| 图木舒克市| 海兴县| 沙坪坝区| 观塘区| 平江县| 温泉县| 原阳县| 忻城县| 山阴县| 武邑县| 台湾省| 云龙县| 禄丰县| 濮阳市| 七台河市| 广宁县| 辉县市| 类乌齐县| 陇川县| 鱼台县| 衡水市| 宜州市| 浑源县| 绍兴县| 永修县| 通城县| 东安县| 红原县| 安庆市| 陵川县| 黔西县| 济南市| 威宁| 花莲市| 靖西县| 嘉峪关市| 怀集县| 神农架林区| 两当县| 乌拉特后旗| 龙川县| 延川县| 白朗县| 齐河县| 江油市| 垦利县| 同仁县| 东阳市| 青神县| 建昌县| 固原市| 仙居县| 远安县| 永靖县| 门源| 凤冈县| 昌邑市| 红原县| 菏泽市| 台安县| 阳城县| 汶川县| 武乡县| 宁安市| 渑池县| 镇坪县| 满城县| 清水河县| 伽师县| 浦江县| 临澧县| 南安市| 响水县| 台东市| 白玉县| 巴彦县| 鄂托克旗| 淳安县| 湘西| 观塘区| 崇明县| 广东省| 武胜县| 无为县| 岗巴县| 台南县| 博乐市| 宜川县| 临夏县| 隆昌县| 土默特右旗| 阿拉尔市| 吴江市| 灵川县| 宁强县| 建德市| 柳江县| 宝兴县| 肃北| 邢台县| 秦皇岛市| 重庆市| 道孚县| 恩平市| 海宁市| 长阳| 溧阳市| 客服| 尼勒克县| 广宗县| 金门县| 沾益县| 宿迁市| 达孜县| 萨迦县| 岢岚县| 古交市| 方山县| 大关县| 郓城县| 九台市| 呈贡县| 荆州市| 涿州市| 廉江市| 东港市| 尼玛县| 资溪县| 广州市| 中江县| 夏河县| 蒙山县| 台前县| 梅河口市| 陇川县| 建始县| 无极县| 沁阳市| 姚安县| 开原市| 巫溪县| 壶关县| 建始县| 会理县| 定安县| 泰州市| 临清市| 武陟县| 宿州市| 平泉县| 洛扎县| 湘潭县| 大宁县| 金阳县| 图木舒克市| 拉萨市| 句容市| 阿克苏市| 霸州市| 漳平市| 高唐县| 沂源县| 利辛县| 广昌县| 连城县| 东平县| 连南| 沈阳市| 山阳县| 岢岚县| 甘孜县| 光泽县| 枞阳县| 临颍县| 盈江县| 塔城市| 姜堰市| 内江市| 江川县| 株洲县| 平阳县| 望江县| 曲周县| 墨竹工卡县| 白玉县| 呼玛县| 策勒县| 措美县| 金寨县| 布拖县| 牡丹江市| 垣曲县| 绥棱县| 温州市| 龙泉市| 庄河市| 黄山市| 海伦市| 黄大仙区| 沈阳市| 濉溪县| 双城市| 城市| 民县| 三穗县| 绥芬河市| 渝中区| 惠安县| 泊头市| 华坪县| 温宿县| 五寨县| 天门市| 宁南县| 玉溪市| 罗平县| 淅川县| 苏州市| 北安市| 应用必备| 永川市| 平度市| 台北市| 思茅市| 手游| 神池县| 济南市| 纳雍县| 崇礼县| 响水县| 诏安县| 婺源县| 涿鹿县| 滦平县| 九台市| 固阳县| 北辰区| 富平县| 新龙县| 墨竹工卡县| 奎屯市| 旌德县| 西和县| 湖州市| 桂平市| 曲阳县| 桐庐县| 南丰县| 江达县| 读书| 武隆县| 诏安县| 山阳县| 常德市| 平山县| 马鞍山市| 万宁市| 务川| 延边| 沙河市| 太仓市| 宁波市| 淄博市| 苍山县| 太和县| 仙居县| 宿州市| 勃利县| 盐山县| 大兴区| 织金县| 望江县| 财经| 金门县| 麻阳| 图木舒克市| 台东市| 漳浦县| 横山县| 兴安盟| 苍南县| 阳西县| 阜新| 尼玛县| 汉阴县| 凭祥市| 鄱阳县| 石家庄市| 定西市| 牡丹江市| 会泽县| 孝义市| 荆州市| 介休市| 登封市| 田东县| 敦化市| 堆龙德庆县| 永济市| 耿马| 开封市| 乌兰浩特市| 修武县| 桐柏县| 马鞍山市| 安国市| 随州市| 靖宇县| 正定县| 灵川县| 桦南县| 崇信县| 鄂尔多斯市| 安乡县| 通海县| 冀州市| 富阳市| 萍乡市| 称多县| 德江县| 罗田县| 杭州市| 连南| 建昌县| 亚东县| 雅安市| 昆山市| 防城港市| 温宿县| 依安县| 海林市| 高邮市| 郯城县| 津市市| 永城市| 盘锦市| 连山| 津市市| 福州市| 香河县| 米易县| 龙口市| 专栏| 西平县| 屯门区| 柘荣县| 金昌市| 盐城市| 广汉市| 张掖市| 芷江| 自贡市| 吴堡县| 普格县| 乌苏市| 榆林市| 游戏| 台州市| 高清| 平潭县| 杂多县| 新巴尔虎左旗| 浮山县| 桑植县| 嘉荫县| 静宁县| 林甸县| 邵阳县| 军事| 云龙县| 泸州市| 宕昌县| 八宿县| 渝北区| 临沂市| 克拉玛依市| 舟曲县| 江津市| 临清市| 隆子县| 报价| 德州市| 股票| 巴林右旗| 绩溪县| 潢川县| 雅安市| 仁寿县| 朝阳区| 香河县| 曲阳县| 东光县| 横山县| 临海市| 申扎县| 济南市| 万山特区| 远安县| 公主岭市| 云阳县| 搜索| 旅游| 平遥县| 武宁县| 平舆县| 恩平市| 曲水县| 中卫市| 龙江县| 泸水县| 光山县| 博野县| 灌阳县| 张家港市| 大埔区| 盐边县| 鱼台县| 克什克腾旗| 马关县| 顺平县| 专栏| 米易县| 罗田县| 商河县| 平原县| 那坡县| 许昌市| http://www.jx1870evenv.fun http://m.jx1870husbandv.fun http://www.hz0j3r9vo.fun http://www.jx1870heatv.fun http://www.hz0j3r7vo.fun http://www.jx1870leadv.fun http://www.jx1870enhancev.fun http://m.jx1870fundv.fun http://jx1870graduatev.fun http://wap.jx1870launchv.fun http://wap.jx1870fanv.fun http://www.jx1870explainv.fun http://m.jx1870fieldv.fun http://m.jx1870footv.fun http://m.jx1870enterv.fun http://m.jx1870influencev.fun http://wap.jx1870guidev.fun http://jx1870hatev.fun