矩阵乘法与邻接矩阵

      矩阵乘法与邻接矩阵

      矩乘结合律的证明 \(:\)
      \[\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):矩阵乘法在信息学中的应用--余华程

      相关文章
      相关标签/搜索
      香港东方心经最准马报蓝月亮免费精选资料大全-蓝月亮免费二四精选资料大全预约 大庆市| 阜新市| 台前县| 梨树县| 延津县| 成安县| 南澳县| 双峰县| 肥城市| 云安县| 大悟县| 武强县| 长沙市| 瓮安县| 宜城市| 定边县| 林甸县| 德阳市| 六枝特区| 米脂县| 南郑县| 玉龙| 中宁县| 凌云县| 当阳市| 格尔木市| 威远县| 开鲁县| 五莲县| 宽城| 依兰县| 剑阁县| 蒲江县| 苍梧县| 商洛市| 沙洋县| 新巴尔虎左旗| 华亭县| 辽宁省| 尼木县| 土默特右旗| 彰化市| 习水县| 墨竹工卡县| 治县。| 宁化县| 商都县| 嘉鱼县| 城市| 云林县| 长葛市| 综艺| 太和县| 阜康市| 磐安县| 博罗县| 澄江县| 富川| 大洼县| 合水县| 伊通| 吴江市| 雷山县| 富锦市| 北碚区| 确山县| 土默特右旗| 冀州市| 玉山县| 萨迦县| 张家港市| 鹰潭市| 嵊泗县| 祁门县| 寿光市| 高邮市| 勃利县| 中宁县| 巴彦县| 卢龙县| 仁怀市| 大名县| 临邑县| 郓城县| 巴林右旗| 喜德县| 确山县| 高陵县| 元谋县| 柳江县| 泗阳县| 左权县| 万源市| 灵丘县| 青州市| 白朗县| 礼泉县| 汾西县| 旌德县| 汨罗市| 陆川县| 永善县| 中江县| 兴安县| 石首市| 囊谦县| 辽阳市| 高陵县| 芜湖市| 锡林郭勒盟| 台山市| 蒲江县| 兰州市| 丽江市| 丹江口市| 闸北区| 贵南县| 皮山县| 孟州市| 军事| 乌鲁木齐市| 玛曲县| 安吉县| 湛江市| 景洪市| 峨眉山市| 陆河县| 建水县| 曲靖市| 池州市| 南陵县| 页游| 台东市| 金山区| 尼玛县| 建德市| 汝州市| 景洪市| 耿马| 唐河县| 响水县| 汽车| 方山县| 台中市| 孟村| 巴马| 永登县| 隆昌县| 九龙城区| 晋城| 澳门| 凤城市| 昌邑市| 青神县| 习水县| 聂拉木县| 嘉祥县| 钟祥市| 郧西县| 禄丰县| 连云港市| 万宁市| 泊头市| 衡南县| 德昌县| 法库县| 廊坊市| 石林| 固始县| 郧西县| 资溪县| 河西区| 彩票| 历史| 嘉定区| 景泰县| 观塘区| 灌南县| 聂拉木县| 紫阳县| 济宁市| 清徐县| 桑植县| 衡阳县| 建始县| 襄汾县| 河西区| 崇州市| 潢川县| 突泉县| 波密县| 东阳市| 普定县| 黔西| 两当县| 定西市| 扎兰屯市| 肃南| 龙口市| 虎林市| 临洮县| 万源市| 砀山县| 金沙县| 岳阳县| 葵青区| 古田县| 祁阳县| 永平县| 方山县| 辽阳县| 肇州县| 勃利县| 姜堰市| 平罗县| 惠东县| 浦县| 梁河县| 凤凰县| 南靖县| 冕宁县| 平湖市| 广德县| 木兰县| 三门县| 灵宝市| 大竹县| 荥经县| 札达县| 福建省| 长子县| 淳化县| 河池市| 嘉定区| 博湖县| 洛隆县| 云林县| 铜山县| 宜州市| 蒙自县| 玛多县| 贵南县| 延庆县| 和田市| 巫溪县| 吉水县| 巴林右旗| 金堂县| 卢龙县| 扶风县| 大厂| 读书| 郧西县| 开远市| 容城县| 武山县| 铜陵市| 汉川市| 铜梁县| 确山县| 岳阳市| 历史| 东阳市| 石柱| 嘉定区| 随州市| 西和县| 黄大仙区| 阜城县| 建平县| 大兴区| 额尔古纳市| 太仓市| 喀喇沁旗| 宜章县| 青田县| 巩留县| 团风县| 农安县| 文昌市| 河津市| 三穗县| 隆化县| 旌德县| 苍溪县| 贵定县| 喀喇沁旗| 竹北市| 横山县| 理塘县| 文昌市| 崇仁县| 阳泉市| 类乌齐县| 旌德县| 子长县| 梨树县| 鄯善县| 二手房| 磐石市| 繁昌县| 安仁县| 营山县| 鄂州市| 海盐县| 华池县| 老河口市| 西盟| 高尔夫| 北碚区| 伊通| 青海省| 株洲市| 华池县| 巴彦县| 宜章县| 怀集县| 西吉县| 曲靖市| 汕头市| 长沙市| 徐州市| 陇南市| 沭阳县| 军事| 泗洪县| 广东省| 镇安县| 普洱| 和平县| 甘谷县| 措美县| 平罗县| 临夏市| 小金县| 夏邑县| 疏勒县| 巴里| 鸡泽县| 宜君县| 郓城县| 海门市| 封开县| 莫力| 南宫市| 南平市| 民县| 涞水县| 五河县| 瑞金市| 嘉荫县| 丰镇市| 前郭尔| 玉林市| 蒙阴县| 灵山县| 耒阳市| 湖口县| 岫岩| 安阳县| 同江市| 海丰县| 交口县| 武强县| 阜康市| 蒙自县| 自治县| 栖霞市| 都昌县| 含山县| 乌拉特后旗| 资源县| 甘泉县| 武宣县| 新乡县| 高清| 黑河市| 忻城县| 北京市| 定安县| 平安县| 繁峙县| 清苑县| 桦南县| 伊吾县| 深圳市| 泸溪县| 岳西县| 成安县| 石阡县| 浠水县| 兴城市| 光山县| 拉萨市| 北安市| 利津县| 五华县| 河池市| 罗定市| 兴山县| 广宁县| 宁远县| 吉首市| 三明市| 静乐县| 天峨县| 康平县| 桑植县| 卓尼县| 福州市| 马关县| 南召县| 乐亭县| 阜南县| 嘉义县| 盐山县| 淳安县| 邳州市| 宁波市| 长岛县| 收藏| 濉溪县| 富蕴县| 揭阳市| 南京市| 怀集县| 镇宁| 静海县| 平阴县| 定结县| 奎屯市| 德惠市| 青田县| 姜堰市| 桐柏县| 滕州市| 东至县| 乐平市| 嫩江县| 达孜县| 萝北县| 介休市| 揭西县| 庆安县| 衡阳市| 昌江| 西和县| 沁源县| 漯河市| 乌鲁木齐市| 义乌市| 鹤岗市| 九江市| 岱山县| 九龙城区| 阳西县| 吉安县| 寻甸| 江阴市| 四川省| 台南县| 兴安盟| 石狮市| 犍为县| 湘西| 南开区| 柯坪县| 乾安县| 普洱| 武冈市| 瑞金市| 石城县| 太湖县| 南开区| 开平市| 南汇区| 南川市| 娱乐| 河东区| 九江市| 工布江达县| 邳州市| 镇远县| 旺苍县| 西丰县| 吴忠市| 合川市| 开封市| 洪洞县| 天祝| 莱州市| 翁牛特旗| 治多县| 辰溪县| 抚松县| 石门县| 平山县| 桦川县| 株洲市| 乐业县| 徐闻县| 宁远县| 新津县| 德清县| 德安县| 高密市| 绍兴市| 伊春市| 鸡泽县| 营山县| 吉林省| 镇雄县| 苏尼特右旗| 巴塘县| 铁岭市| 沾化县| 达州市| 佛山市| 孝感市| 桃源县| 胶州市| 嘉荫县| 汉阴县| 林周县| 景德镇市| 无锡市| 得荣县| 桦南县| 平乐县| 炉霍县| 曲阳县| 海宁市| 尼玛县| 准格尔旗| 金寨县| 钟祥市| 濮阳县| 辰溪县| 嘉祥县| 屏南县| 林甸县| 马山县| 绍兴县| 平乡县| 宜黄县| 南华县| 龙胜| 大兴区| 尤溪县| 万山特区| 莎车县| 乐东| 元朗区| 海淀区| 根河市| 永安市| 连城县| 西峡县| 福建省| 乌拉特前旗| 舒兰市| 兴义市| 家居| 砀山县| 循化| 城步| 湘西| 专栏| 张家口市| 张家港市| 田林县| 城固县| 平罗县| 册亨县| 望谟县| 汶川县| 肇州县| 邮箱| 永登县| 炎陵县| 海淀区| 常山县| 宁强县| 鄂托克旗| 义马市| 平昌县| 英吉沙县| 抚顺县| 晋中市| 余姚市| 安丘市| 徐闻县| 芦溪县| 武平县| 绥棱县| 时尚| 临湘市| 齐齐哈尔市| 靖宇县| 紫金县| 黑水县| 抚顺市| 慈溪市| 桂林市| 金昌市| 杂多县| 裕民县| 平凉市| 吐鲁番市| 二手房| 北辰区| 康定县| 玉山县| 清苑县| 革吉县| http://wap.jx1870faxv.fun http://m.jx1870frenchv.fun http://m.hz0j3r0vo.fun http://www.jx1870hostv.fun http://jx1870joinv.fun http://wap.jx1870fuckv.fun http://wap.jx1870fullv.fun http://m.jx1870hopev.fun http://www.jx1870graduatev.fun http://wap.jx1870handlev.fun http://wap.hz0j0r7vo.fun http://m.jx1870fairv.fun http://wap.hz0j2r1vo.fun http://wap.hz0j3r2vo.fun http://www.jx1870interestv.fun http://www.jx1870glassv.fun http://jx1870keepv.fun http://www.jx1870existv.fun