• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

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

    相关文章
    相关标签/搜索
    577777开奖现场直播开彩开奖现场直播 开奖结果开 今晚六会彩开奖结 果查询 香港开奖现场直播结果 开奖记录 阿拉善左旗| 开化县| 当雄县| 福贡县| 武胜县| 太原市| 永清县| 林西县| 凉城县| 吉木乃县| 耒阳市| 左云县| 永年县| 舟曲县| 巧家县| 昌图县| 波密县| 洪雅县| 九江县| 普定县| 志丹县| 朝阳区| 泰兴市| 定结县| 洛川县| 延长县| 清流县| 新宾| 昌宁县| 龙江县| 泸水县| 望江县| 寻甸| 荆门市| 长白| 高邑县| 秦皇岛市| 阜阳市| 葫芦岛市| 宝山区| 舒兰市| 大姚县| 儋州市| 思南县| 屏南县| 平昌县| 保定市| 临海市| 通城县| 平谷区| 深州市| 锡林浩特市| 吴江市| 滦平县| 腾冲县| 公主岭市| 左权县| 洪雅县| 富民县| 巴彦淖尔市| 长葛市| 渝中区| 西乡县| 贞丰县| 竹溪县| 徐州市| 甘泉县| 汝城县| 盐池县| 滦南县| 惠东县| 谢通门县| 武宁县| 禹城市| 罗定市| 沙洋县| 涡阳县| 石景山区| 新宁县| 公主岭市| 泰州市| 获嘉县| 石景山区| 明星| 靖西县| 北辰区| 阿城市| 龙里县| 噶尔县| 潜江市| 山东省| 育儿| 荣昌县| 吉林省| 民丰县| 新津县| 广宗县| 肥西县| 昌宁县| 庆阳市| 株洲县| 正定县| 凤城市| 板桥市| 日土县| 阳朔县| 临安市| 博乐市| 新蔡县| 甘南县| 临桂县| 金沙县| 肃宁县| 永川市| 白河县| 岳池县| 天门市| 旌德县| 富蕴县| 新野县| 凉城县| 沅江市| 清河县| 济源市| 玛沁县| 龙井市| 景泰县| 南江县| 湟源县| 陆良县| 广宁县| 嘉善县| 乳源| 徐水县| 疏勒县| 龙海市| 扎鲁特旗| 枞阳县| 梧州市| 岫岩| 丹寨县| 成安县| 龙南县| 双鸭山市| 仲巴县| 区。| 绥化市| 宕昌县| 莆田市| 博客| 苏尼特左旗| 张家港市| 南安市| 玛曲县| 平顺县| 乌拉特中旗| 蓬溪县| 洪湖市| 西畴县| 凌云县| 溧水县| 恭城| 民权县| 霍林郭勒市| 乌苏市| 金寨县| 周至县| 微博| 丹棱县| 云南省| 平凉市| 安岳县| 夏津县| 六安市| 灵丘县| 乌恰县| 潢川县| 涟水县| 鄢陵县| 湘西| 周至县| 龙岩市| 盐源县| 峨眉山市| 明溪县| 桦川县| 泰来县| 通榆县| 常熟市| 平顺县| 大埔县| 高安市| 寿阳县| 阳山县| 东港市| 红安县| 中超| 礼泉县| 西盟| 中西区| 兰州市| 曲麻莱县| 绵阳市| 黄梅县| 宜城市| 平遥县| 平利县| 监利县| 元朗区| 淅川县| 治县。| 泸水县| 玛曲县| 尚义县| 邮箱| 苍山县| 阜阳市| 白沙| 如皋市| 镇原县| 无为县| 聂荣县| 随州市| 阳城县| 广东省| 江阴市| 大英县| 收藏| 谢通门县| 秀山| 卫辉市| 泊头市| 西吉县| 周口市| 当涂县| 阳城县| 镇雄县| 河津市| 合山市| 迁安市| 无为县| 延津县| 水富县| 任丘市| 阿勒泰市| 通渭县| 东兴市| 临朐县| 平邑县| 长春市| 台湾省| 蕲春县| 临安市| 大厂| 同德县| 横峰县| 汉川市| 普格县| 忻城县| 白玉县| 卓尼县| 武功县| 梁平县| 东明县| 农安县| 巴塘县| 井陉县| 五莲县| 水富县| 大连市| 晋江市| 桑植县| 丽江市| 沁阳市| 西丰县| 湟源县| 申扎县| 丰城市| 阜平县| 潼关县| 惠州市| 和林格尔县| 酉阳| 视频| 于田县| 冀州市| 闻喜县| 绩溪县| 巴东县| 大渡口区| 云梦县| 万载县| 彩票| 余姚市| 库车县| 那坡县| 北京市| 西丰县| 湄潭县| 安泽县| 青岛市| 久治县| 彩票| 潼南县| 西乡县| 元谋县| 通榆县| 都安| 山东省| 麻阳| 隆尧县| 淳化县| 浦东新区| 广州市| 海晏县| 准格尔旗| 桐庐县| 义马市| 涪陵区| 剑川县| 资阳市| 垫江县| 青阳县| 报价| 伊金霍洛旗| 望都县| 罗平县| 阜阳市| 科技| 枣阳市| 富宁县| 石屏县| 白朗县| 喜德县| 清原| 海南省| 石阡县| 濮阳县| 佳木斯市| 塘沽区| 香格里拉县| 清远市| 新竹市| 即墨市| 乃东县| 司法| 蒙自县| 通渭县| 石景山区| 武强县| 鄂托克旗| 辛集市| 阿勒泰市| 马尔康县| 清苑县| 安顺市| 淄博市| 宕昌县| 利川市| 资中县| 左云县| 高密市| 罗平县| 商洛市| 东莞市| 益阳市| 滨州市| 阿尔山市| 丹凤县| 资中县| 新绛县| 昆明市| 宁德市| 明星| 盘山县| 句容市| 大田县| 凤冈县| 宿松县| 澄迈县| 高雄县| 饶河县| 瑞安市| 鄂州市| 阿瓦提县| 什邡市| 盐山县| 若尔盖县| 教育| 桐梓县| 益阳市| 汽车| 秀山| 和龙市| 双柏县| 文安县| 凉城县| 永吉县| 济源市| 曲水县| 赤水市| 灵台县| 屏东县| 西丰县| 正镶白旗| 汉阴县| 长岛县| 陇西县| 平湖市| 龙里县| 枝江市| 甘肃省| 明光市| 安吉县| 龙川县| 阳东县| 鲁山县| 社旗县| 宿州市| 盘山县| 峨边| 高唐县| 河东区| 兴文县| 蓬莱市| 瓮安县| 彭水| 赤峰市| 随州市| 比如县| 蛟河市| 博兴县| 凯里市| 布拖县| 道孚县| 陆河县| 阳谷县| 泽州县| 会泽县| 讷河市| 新平| 古丈县| 金沙县| 额尔古纳市| 格尔木市| 信丰县| 桃江县| 白银市| 阿荣旗| 于都县| 嵊州市| 昆山市| 牡丹江市| 武川县| 台南市| 广昌县| 孟连| 星子县| 汽车| 长兴县| 汨罗市| 基隆市| 富顺县| 苗栗县| 怀安县| 巩义市| 东港市| 民和| 天津市| 嘉义县| 江川县| 丽江市| 许昌市| 阳原县| 宜州市| 化德县| 深圳市| 鲜城| 定襄县| 新建县| 中山市| 资中县| 北京市| 商都县| 宁河县| 东港市| 青河县| 密云县| 巩留县| 太保市| 县级市| 永和县| 图木舒克市| 来宾市| 且末县| 常熟市| 郸城县| 洛浦县| 武夷山市| 河池市| 理塘县| 余庆县| 昭觉县| 嘉禾县| 鹤壁市| 遂昌县| 论坛| 于都县| 平乡县| 吉木萨尔县| 曲松县| 黑河市| 巴南区| 台州市| 河源市| 海原县| 班玛县| 基隆市| 无锡市| 阿鲁科尔沁旗| 湛江市| 海丰县| 汕头市| 留坝县| 泸定县| 石狮市| 宣武区| 当雄县| 绍兴县| 银川市| 金阳县| 黑山县| 京山县| 遵义市| 巴马| 沙湾县| 晋宁县| 井研县| 清新县| 石城县| 宁海县| 包头市| 乌苏市| 徐闻县| 辽宁省| 平远县| 宾川县| 衡水市| 安徽省| 鹰潭市| 清流县| 乾安县| 定陶县| 绥芬河市| 清流县| 吉林省| 彭阳县| 昌宁县| 邵东县| 灵石县| 曲靖市| 古交市| 迭部县| 侯马市| 广丰县| 丹棱县| 黄陵县| 合水县| 宣化县| 丰城市| 天峨县| 尼玛县| 红安县| 鹤岗市| 漳浦县| 徐汇区| 大宁县| 榕江县| 上栗县| 读书| 宜阳县| 乐亭县| 增城市| 邮箱| 肃宁县| 曲阜市| 白银市| 西藏| 莫力| 布拖县| 信阳市| 临颍县| 进贤县| 清河县| 房山区| 楚雄市| 红桥区| 淄博市| 太保市| 会昌县| 罗平县| 滦南县| 阿尔山市| 伊春市| 昆山市| 祁门县| 蒙城县| 莆田市| 乐亭县| 昂仁县| 天门市| 乾安县| 法库县| 罗江县| 柏乡县| http://wap.jx1870evenv.fun http://jx1870frontv.fun http://www.hz0j2r2vo.fun http://jx1870instancev.fun http://jx1870figurev.fun http://wap.jx1870handv.fun http://www.jx1870fillv.fun http://wap.jx1870izportv.fun http://m.jx1870instruzentv.fun http://m.jx1870fuelv.fun http://jx1870failv.fun http://www.jx1870frankv.fun http://m.jx1870generatev.fun http://wap.jx1870holidayv.fun http://wap.jx1870explorev.fun http://jx1870fearv.fun http://m.hz0j2r1vo.fun http://wap.jx1870indicatev.fun