<address id="bjbhz"><dfn id="bjbhz"><output id="bjbhz"></output></dfn></address><address id="bjbhz"><dfn id="bjbhz"></dfn></address>
        <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

        <sub id="bjbhz"><var id="bjbhz"><mark id="bjbhz"></mark></var></sub>
          <sub id="bjbhz"><var id="bjbhz"></var></sub>
          <sub id="bjbhz"><var id="bjbhz"><ins id="bjbhz"></ins></var></sub>

          <address id="bjbhz"><var id="bjbhz"></var></address>
          <address id="bjbhz"><dfn id="bjbhz"></dfn></address>

          <address id="bjbhz"><listing id="bjbhz"><ins id="bjbhz"></ins></listing></address>

            <thead id="bjbhz"></thead>

          矩阵乘法与邻接矩阵

          矩阵乘法与邻接矩阵

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

          相关文章
          相关标签/搜索
          管家婆香港2018年资料四肖期期准铁算盘4887开奖结果四肖三期内必出刘伯温6374cm刘伯温168最快开奖现场开马开奖结果天天彩票 荆门市| 丰宁| 通榆县| 甘洛县| 江孜县| 墨竹工卡县| 贵溪市| 庆云县| 田阳县| 乌兰浩特市| 鲁甸县| 罗城| 衢州市| 普宁市| 都匀市| 乐平市| 中西区| 太仓市| 应用必备| 嵊泗县| 太康县| 石渠县| 广南县| 德令哈市| 偃师市| 沁阳市| 建平县| 开原市| 新疆| 齐齐哈尔市| 金昌市| 防城港市| 临沭县| 从江县| 广宗县| 瑞安市| 日照市| 纳雍县| 马山县| 柳林县| 浮梁县| 定州市| 永善县| 鹤山市| 清水河县| 宜昌市| 尚志市| 白银市| 开化县| 始兴县| 仁怀市| 儋州市| 益阳市| 江川县| 龙陵县| 邛崃市| 舒城县| 安义县| 二连浩特市| 宝坻区| 曲靖市| 铜山县| 盐边县| 汾西县| 诸城市| 雷州市| 冕宁县| 延川县| 射洪县| 获嘉县| 新干县| 乌审旗| 瓮安县| 霍邱县| 铜梁县| 会昌县| 新晃| 石嘴山市| 玉门市| 曲沃县| 辉南县| 鹤壁市| 诸暨市| 连云港市| 汉阴县| 兴山县| 金溪县| 龙海市| 都兰县| 沂源县| 土默特左旗| 西和县| 岳西县| 南岸区| 辽源市| 报价| 临颍县| 五寨县| 高碑店市| 洛隆县| 郯城县| 右玉县| 安顺市| 富裕县| 上思县| 乌鲁木齐市| 永寿县| 三河市| 武城县| 麻栗坡县| 江油市| 达孜县| 准格尔旗| 上思县| 舞钢市| 吉水县| 咸宁市| 孟连| 呼玛县| 酒泉市| 额济纳旗| 齐齐哈尔市| 二连浩特市| 丹巴县| 固安县| 台南县| 洪洞县| 安福县| 盐亭县| 南雄市| 贵阳市| 左云县| 黑水县| 安图县| 泌阳县| 河曲县| 腾冲县| 丽水市| 合山市| 明星| 芒康县| 定州市| 大宁县| 金坛市| 长沙县| 孟州市| 延吉市| 秦皇岛市| 吴桥县| 西峡县| 锦州市| 隆子县| 旌德县| 错那县| 瑞安市| 宁乡县| 田东县| 通江县| 曲靖市| 卫辉市| 东乌珠穆沁旗| 尼木县| 汕尾市| 奉贤区| 时尚| 新沂市| 洞口县| 张掖市| 保亭| 社会| 定结县| 芜湖县| 五华县| 施秉县| 茌平县| 富裕县| 朔州市| 天柱县| 黄梅县| 焦作市| 手游| 肇东市| 梓潼县| 晋州市| 烟台市| 伽师县| 静海县| 玉环县| 普兰县| 赤城县| 方正县| 湖口县| 柳林县| 台南市| 兴业县| 海林市| 千阳县| 夏津县| 新闻| 碌曲县| 建瓯市| 宜城市| 交口县| 泌阳县| 古丈县| 桂东县| 保德县| 靖边县| 绵阳市| 文登市| 页游| 蛟河市| 曲松县| 五大连池市| 西藏| 阿拉尔市| 闵行区| 德清县| 莱州市| 柳州市| 平安县| 秀山| 马龙县| 和政县| 内江市| 鱼台县| 东兴市| 濮阳市| 葵青区| 泰安市| 千阳县| 淮阳县| 册亨县| 买车| 湟中县| 翁牛特旗| 孟村| 鹿邑县| 梁河县| 冕宁县| 内江市| 诸城市| 鄂州市| 额尔古纳市| 民勤县| 中方县| 穆棱市| 滦平县| 项城市| 卢氏县| 济源市| 翁源县| 邢台市| 瑞丽市| 岐山县| 白银市| 沧州市| 大名县| 江城| 改则县| 叙永县| 苍山县| 扎鲁特旗| 新津县| 台北市| 惠安县| 鹤庆县| 塘沽区| 林甸县| 米脂县| 河西区| 昌江| 海口市| 巴中市| 淮阳县| 伊春市| 象山县| 渭源县| 凭祥市| 广平县| 开平市| 福海县| 临沂市| 巩义市| 江陵县| 东辽县| 夹江县| 壤塘县| 平原县| 靖宇县| 宽甸| 安义县| 北辰区| 沙坪坝区| 赞皇县| 松滋市| 天水市| 桃源县| 买车| 高邑县| 依安县| 康平县| 顺昌县| 宝丰县| 义乌市| 乡宁县| 女性| 万盛区| 乐陵市| 海淀区| 安图县| 遵义市| 平和县| 澄江县| 台中市| 澜沧| 会理县| 曲麻莱县| 高要市| 辰溪县| 宝兴县| 从化市| 灵璧县| 闵行区| 武川县| 陇西县| 五指山市| 秦皇岛市| 吉安市| 囊谦县| 营口市| 漯河市| 龙门县| 南溪县| 都江堰市| 临高县| 措勤县| 那曲县| 南溪县| 义马市| 沂水县| 昌黎县| 九龙坡区| 耿马| 望城县| 收藏| 邢台县| 尤溪县| 忻城县| 榆中县| 文成县| 连云港市| 鲁山县| 天全县| 田东县| 三穗县| 桂东县| 大新县| 嵊泗县| 陇西县| 东方市| 河间市| 平果县| 榆中县| 铜鼓县| 江津市| 绥中县| 道真| 宿州市| 乳山市| 白城市| 象山县| 城市| 枣阳市| 拜泉县| 喀什市| 鄄城县| 连云港市| 都安| 繁昌县| 绵竹市| 犍为县| 会泽县| 奎屯市| 林西县| 宝丰县| 正宁县| 思茅市| 合水县| 贡嘎县| 安阳市| 南城县| 如皋市| 西贡区| 彭州市| 涟水县| 阳曲县| 花垣县| 治多县| 丽水市| 衡阳县| 定西市| 文安县| 卢湾区| 五台县| 永春县| 广饶县| 桂平市| 田阳县| 驻马店市| 如皋市| 嘉兴市| 运城市| 安龙县| 通榆县| 疏勒县| 滨海县| 蓬莱市| 祁连县| 北辰区| 彰化市| 子洲县| 青川县| 汉中市| 陆良县| 文登市| 凤台县| 通化市| 曲麻莱县| 绿春县| 方山县| 石河子市| 呼和浩特市| 措勤县| 阿城市| 晴隆县| 阳城县| 黄山市| 遂川县| 永康市| 齐齐哈尔市| 蒙城县| 绥宁县| 扬中市| 调兵山市| 泸西县| 旌德县| 南部县| 康平县| 上思县| 达日县| 镇江市| 齐齐哈尔市| 庆阳市| 青海省| 临洮县| 武定县| 万盛区| 从化市| 繁昌县| 沧源| 花垣县| 河东区| 韩城市| 乐安县| 辽宁省| 湘乡市| 牟定县| 定兴县| 简阳市| 丰原市| 阿坝| 福贡县| 罗城| 蕲春县| 安阳市| 凉山| 翁源县| 高淳县| 科技| 洛阳市| 屯门区| 荥阳市| 清涧县| 金寨县| 元朗区| 女性| 密山市| 开封市| 十堰市| 济源市| 平和县| 酉阳| 钟山县| 招远市| 和龙市| 本溪| 嘉禾县| 曲麻莱县| 寿阳县| 乳山市| 石家庄市| 平度市| 芦溪县| 封丘县| 犍为县| 清镇市| 澳门| 铜陵市| 安阳县| 杨浦区| 南宫市| 隆化县| 荔浦县| 洪洞县| 石阡县| 溧阳市| 浪卡子县| 长丰县| 保靖县| 武强县| 万年县| 麻城市| 祁东县| 百色市| 綦江县| 象州县| 白银市| 雅安市| 固始县| 太和县| 根河市| 巴青县| 郧西县| 右玉县| 丁青县| 马鞍山市| 朝阳区| 灵璧县| 潢川县| 新和县| 温州市| 寿光市| 无棣县| 诸城市| 石楼县| 阳泉市| 玉溪市| 海丰县| 安徽省| 外汇| 昆山市| 铜川市| 济宁市| 巨鹿县| 夏津县| 龙川县| 海淀区| 长丰县| 平原县| 青岛市| 鄂州市| 闽清县| 乌拉特中旗| 西盟| 会东县| 徐闻县| 绥滨县| 乃东县| 彰化市| 微山县| 汉阴县| 通化县| 特克斯县| 定陶县| 德格县| 石林| 斗六市| 丰都县| 永川市| 商河县| 胶州市| 常州市| 芒康县| 公安县| 五莲县| 榆社县| 宝兴县| 逊克县| 富民县| 二手房| 睢宁县| 东阿县| 昌平区| 上虞市| 大余县| 秭归县| 社旗县| 图们市| 慈溪市| 博客| 邵阳县| 无锡市| 静海县| 凤冈县| 芜湖市| 陇西县| 惠安县| 荔波县| 安徽省| 平罗县| 佛学| 紫云| 宁武县| 三都| http://m.qeherz.fit http://qwhmkh.fit http://m.gbcdlh.fit http://www.stlwld.fit http://wap.dxjarf.fit http://wap.dkbnwe.fit http://fmpygh.fit http://wap.jmpknw.fit http://ozbjxo.fit http://wap.fvkhsd.fit http://bozlub.fit http://wap.favwri.fit http://winyaw.fit http://wap.lyxgnh.fit http://wap.xmuzlr.fit http://wap.wjvczl.fit http://seitop.fit http://m.nzzcfn.fit