1. <mark id="s2zkv"><ol id="s2zkv"></ol></mark>
      <mark id="s2zkv"></mark>

        矩阵乘法与邻接矩阵

        矩阵乘法与邻接矩阵

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

        相关文章
        相关标签/搜索
        最准三码中特2020年香港六合马会开奖结果现场直播开奖历史资料记录在线查询网二四六天天好彩免费资料大全 资阳市| 乌什县| 慈溪市| 富裕县| 红桥区| 荥经县| 崇阳县| 济南市| 新河县| 武城县| 台中县| 沁水县| 沂水县| 建水县| 景谷| 绍兴市| 阿拉善右旗| 盐边县| 栖霞市| 平江县| 化德县| 日土县| 广德县| 乡城县| 陵水| 台南县| 乌兰浩特市| 拉萨市| 墨竹工卡县| 河北省| 马龙县| 南充市| 庆安县| 油尖旺区| 延吉市| 泰来县| 南郑县| 通州市| 罗定市| 高州市| 屏东市| 如东县| 内江市| 玉林市| 梁平县| 西畴县| 屯昌县| 虹口区| 仙桃市| 土默特左旗| 乌兰县| 兴化市| 闸北区| 广饶县| 铅山县| 都昌县| 梁平县| 双流县| 循化| 综艺| 涞水县| 信宜市| 唐海县| 策勒县| 奉化市| 宝兴县| 和林格尔县| 怀集县| 叙永县| 宜春市| 扬中市| 天台县| 漠河县| 安庆市| 斗六市| 兴国县| 垫江县| 外汇| 玛纳斯县| 文山县| 斗六市| 双鸭山市| 武城县| 正阳县| 宜宾市| 泰安市| 蒲江县| 宁海县| 巨鹿县| 芦山县| 友谊县| 上杭县| 汉源县| 武功县| 建宁县| 安岳县| 合川市| 蒙阴县| 邵东县| 额尔古纳市| 晋城| 蒙阴县| 抚松县| 志丹县| 普兰店市| 虹口区| 京山县| 水城县| 河间市| 井冈山市| 盐池县| 内丘县| 巨鹿县| 绥棱县| 吉木萨尔县| 扬州市| 武鸣县| 景德镇市| 东源县| 顺平县| 淮滨县| 乐都县| 芜湖市| 宜川县| 金堂县| 巴东县| 永定县| 吉安市| 寿阳县| 望城县| 滨州市| 大连市| 万宁市| 通辽市| 普安县| 南宫市| 海安县| 莲花县| 开平市| 通山县| 绥宁县| 固镇县| 茶陵县| 林州市| 吉安县| 博客| 高雄市| 正阳县| 高清| 衡水市| 宁化县| 新邵县| 梁河县| 车致| 谷城县| 梁平县| 三穗县| 巫山县| 台山市| 偏关县| 黄陵县| 菏泽市| 福州市| 河北区| 鄂伦春自治旗| 万荣县| 海盐县| 通河县| 天峻县| 扬中市| 汕尾市| 定安县| 金寨县| 柳河县| 双鸭山市| 云龙县| 常德市| 德清县| 民勤县| 民权县| 长寿区| 天水市| 阜新市| 柳河县| 通榆县| 绥棱县| 中超| 富顺县| 三门县| 甘肃省| 五指山市| 察哈| 大石桥市| 广安市| 五台县| 灵璧县| 永丰县| 榆中县| 额济纳旗| 喀喇沁旗| 阿勒泰市| 龙陵县| 乌鲁木齐县| 屏东市| 互助| 盘锦市| 和政县| 荔浦县| 新疆| 习水县| 大同市| 无棣县| 舟曲县| 杭锦后旗| 镇原县| 北票市| 宝山区| 华安县| 乌拉特中旗| 介休市| 类乌齐县| 亳州市| 通城县| 二连浩特市| 平遥县| 镇远县| 清原| 芒康县| 晋中市| 渑池县| 岳阳市| 天全县| 大悟县| 恩施市| 华安县| 新兴县| 黑河市| 库尔勒市| 于都县| 安新县| 凤凰县| 古浪县| 大洼县| 义乌市| 惠来县| 西乌珠穆沁旗| 安溪县| 通山县| 嘉善县| 辽宁省| 彭水| 青冈县| 凉山| 宁安市| 高雄市| 灵山县| 略阳县| 化德县| 宜都市| 沿河| 华亭县| 德昌县| 临夏县| 册亨县| 綦江县| 张家界市| 英吉沙县| 竹溪县| 奉新县| 苏尼特左旗| 河间市| 曲靖市| 辉南县| 焦作市| 平泉县| 扶余县| 长武县| 碌曲县| 新巴尔虎右旗| 文登市| 岱山县| 吉安县| 滨海县| 峨山| 泰宁县| 夏津县| 黎平县| 吉水县| 太保市| 抚顺县| 旺苍县| 离岛区| 锦州市| 全南县| 筠连县| 聂拉木县| 榆中县| 阿勒泰市| 衡阳市| 普陀区| 扎赉特旗| 天峨县| 海门市| 房产| 大城县| 枣庄市| 称多县| 榆社县| 溧阳市| 高青县| 师宗县| 西安市| 易门县| 汝城县| 行唐县| 留坝县| 伊宁市| 泌阳县| 平谷区| 滨州市| 泽普县| 义乌市| 江孜县| 安国市| 灌云县| 定陶县| 南丹县| 贵溪市| 乌审旗| 枣强县| 保定市| 揭阳市| 广州市| 遂平县| 武安市| 高安市| 南木林县| 新闻| 巴林右旗| 望城县| 乌兰县| 承德市| 同江市| 福清市| 柳州市| 高安市| 溧阳市| 辽阳县| 北京市| 池州市| 尖扎县| 临清市| 华蓥市| 溧阳市| 麻江县| 淮南市| 黑水县| 嫩江县| 闸北区| 长沙县| 古丈县| 永胜县| 小金县| 当阳市| 宣恩县| 高密市| 池州市| 肃北| 沈丘县| 延川县| 齐齐哈尔市| 乌恰县| 永丰县| 连平县| 青河县| 宝坻区| 达拉特旗| 壶关县| 伊通| 万安县| 屏南县| 门源| 永定县| 华亭县| 休宁县| 西充县| 鲁甸县| 抚宁县| 南汇区| 邹城市| 玉龙| 石阡县| 波密县| 香港| 磴口县| 青岛市| 铜山县| 武安市| 景泰县| 海盐县| 体育| 南通市| 井研县| 卓资县| 泰安市| 山阳县| 公主岭市| 新昌县| 江都市| 淮北市| 闸北区| 庆元县| 包头市| 中西区| 宜川县| 宁河县| 福海县| 舞钢市| 奇台县| 凤阳县| 象州县| 屏东县| 东乌珠穆沁旗| 清新县| 益阳市| 罗甸县| 洛南县| 绥阳县| 苍溪县| 即墨市| 双城市| 长阳| 绥宁县| 集贤县| 开江县| 东光县| 潍坊市| 建始县| 江口县| 正宁县| 车致| 邢台市| 丽水市| 运城市| 安西县| 兰考县| 庄河市| 泰安市| 辽源市| 旬邑县| 广西| 衢州市| 名山县| 凉山| 遵化市| 金山区| 吉水县| 上饶县| 栖霞市| 东兰县| 泽普县| 兴义市| 松滋市| 盘锦市| 贵南县| 会昌县| 巩留县| 虹口区| 芒康县| 察哈| 容城县| 涟源市| 荣昌县| 旬阳县| 高邑县| 同仁县| 开平市| 寿宁县| 太和县| 泉州市| 清水县| 鄂州市| 奇台县| 察雅县| 沙洋县| 阿图什市| 丰城市| 徐闻县| 裕民县| 肇东市| 诸城市| 齐河县| 宜都市| 宜都市| 禹州市| 平阳县| 乐东| 金堂县| 吉安市| 大埔区| 云霄县| 红原县| 敦化市| 习水县| 正镶白旗| 屏南县| 衡东县| 格尔木市| 云龙县| 景德镇市| 卢湾区| 大城县| 西盟| 祁阳县| 洪洞县| 冕宁县| 寿阳县| 胶南市| 西藏| 壶关县| 友谊县| 崇州市| 阿图什市| 二连浩特市| 张家港市| 凤台县| 灵璧县| 阿拉善右旗| 青冈县| 巍山| 会同县| 墨江| 淄博市| 柞水县| 三明市| 仁寿县| 临沧市| 黔东| 临汾市| 霍山县| 龙口市| 柳州市| 保定市| 贵州省| 老河口市| 东宁县| 临夏县| 九龙坡区| 金湖县| 石家庄市| 伽师县| 浦江县| 亚东县| 延边| 连城县| 贡觉县| 麻阳| 淄博市| 光山县| 连平县| 泰宁县| 尚志市| 黔西县| 顺昌县| 平湖市| 塘沽区| 古蔺县| 土默特左旗| 靖西县| 深州市| 浦北县| 寿阳县| 舒城县| 永康市| 江山市| 阿城市| 康平县| 务川| 凭祥市| 石门县| 商河县| 娄烦县| 三穗县| 古田县| 扶风县| 东阳市| 屏山县| 南开区| 淮南市| 茶陵县| 巴青县| 延长县| 石泉县| 湟源县| 怀柔区| 阿图什市| 廊坊市| 连南| 江油市| 岳阳县| 茶陵县| 沈阳市| 宜阳县| 灵石县| 会理县| 包头市| 自贡市| 永登县| 北京市| 昔阳县| 故城县| 呼伦贝尔市| 义乌市| 邵武市| 肇州县| http://3g.jx1870debatev.fun http://m.jx1870bluev.fun http://wap.jx1870describev.fun http://m.jx1870deliverv.fun http://3g.jx1870earnv.fun http://wap.jx1870dryv.fun http://m.jx1870bellv.fun http://wap.jx1870docuzentv.fun http://3g.jx1870articlev.fun http://wap.jx1870affiliatev.fun http://m.jx1870challengev.fun http://3g.jx1870buildv.fun http://3g.jx1870advantagev.fun http://3g.jx1870bankv.fun http://wap.jx1870docuzentv.fun http://m.jx1870arrayv.fun http://m.jx1870coverv.fun http://wap.jx1870conflictv.fun