矩阵乘法与邻接矩阵

        矩阵乘法与邻接矩阵

        矩乘结合律的证明 \(:\)
        \[\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 最快开奖记录结果_小鱼儿玄机2站开奖 开奖结果 南安市| 德钦县| 泰来县| 筠连县| 中宁县| 临洮县| 尖扎县| 兰西县| 沙雅县| 庄河市| 四子王旗| 贞丰县| 丰都县| 监利县| 楚雄市| 丘北县| 抚远县| 黑龙江省| 黔江区| 新巴尔虎右旗| 通山县| 镇巴县| 吉林省| 栾川县| 阳江市| 德庆县| 台州市| 铜山县| 高雄县| 重庆市| 鄄城县| 永康市| 商都县| 临潭县| 冀州市| 石首市| 中宁县| 丰宁| 进贤县| 汨罗市| 临清市| 新乡市| 明溪县| 固阳县| 铜川市| 南城县| 两当县| 桐庐县| 玛沁县| 古交市| 鹤峰县| 卓尼县| 凌海市| 乌拉特中旗| 大丰市| 苏尼特右旗| 彝良县| 进贤县| 慈溪市| 神池县| 城步| 乐至县| 固始县| 万山特区| 广宁县| 田东县| 南宫市| 天津市| 沁源县| 新晃| 广平县| 德清县| 庆城县| 保山市| 张家港市| 濮阳市| 图木舒克市| 合江县| 台北县| 曲麻莱县| 班戈县| 天祝| 富蕴县| 依安县| 新巴尔虎右旗| 家居| 清河县| 黎平县| 六安市| 长白| 玉门市| 常德市| 克什克腾旗| 高雄县| 固镇县| 永安市| 井冈山市| 泽普县| 德清县| 绥棱县| 衡山县| 赫章县| 大足县| 福清市| 东至县| 凤城市| 鄢陵县| 北辰区| 平江县| 乃东县| 肥乡县| 容城县| 手游| 登封市| 乌拉特中旗| 来宾市| 阜南县| 台北县| 横峰县| 台北市| 鹤山市| 朔州市| 淅川县| 神木县| 婺源县| 凤冈县| 宁强县| 财经| 舞阳县| 邵武市| 宁海县| 黄山市| 响水县| 达州市| 雷州市| 阜城县| 德格县| 承德县| 江门市| 油尖旺区| 体育| 两当县| 南郑县| 三江| 利辛县| 探索| 泰安市| 介休市| 南投县| 株洲市| 遂溪县| 海丰县| 常山县| 宝兴县| 安吉县| 松潘县| 磴口县| 信丰县| 阳西县| 京山县| 黎川县| 霍邱县| 宁海县| 闽侯县| 内丘县| 永昌县| 龙口市| 长乐市| 东城区| 九台市| 简阳市| 丁青县| 正定县| 阿巴嘎旗| 金昌市| 虹口区| 克山县| 应用必备| 平度市| 三明市| 房产| 大连市| 吴堡县| 武威市| 嘉禾县| 和政县| 永新县| 青州市| 曲靖市| 黄大仙区| 加查县| 香格里拉县| 广饶县| 洮南市| 阳泉市| 武胜县| 繁峙县| 湘潭市| 文成县| 永寿县| 淅川县| 拉孜县| 修文县| 舞钢市| 肃宁县| 澳门| 铅山县| 澄城县| 鲁甸县| 双桥区| 双辽市| 青海省| 郑州市| 容城县| 安远县| 老河口市| 同心县| 杨浦区| 商河县| 苍梧县| 会泽县| 鹤庆县| 望奎县| 仙居县| 江油市| 长丰县| 永登县| 崇义县| 施甸县| 遵化市| 桑日县| 大名县| 陆丰市| 秀山| 陇西县| 朝阳区| 肇源县| 明光市| 南昌县| 南安市| 永和县| 保亭| 揭西县| 新余市| 铁岭市| 孟村| 原平市| 扎囊县| 瑞安市| 柯坪县| 顺昌县| 株洲市| 仙桃市| 察雅县| 金塔县| 买车| 微山县| 万载县| 松原市| 大埔区| 垫江县| 布拖县| 荥阳市| 青铜峡市| 安图县| 嘉义市| 南乐县| 东乌珠穆沁旗| 宜昌市| 甘孜县| 余姚市| 舞钢市| 腾冲县| 德安县| 班戈县| 宜章县| 扎兰屯市| 景洪市| 永丰县| 仙游县| 铅山县| 方正县| 台湾省| 武夷山市| 沐川县| 阜康市| 静宁县| 荥经县| 绥宁县| 阜新市| 双辽市| 偏关县| 凌云县| 望都县| 洛隆县| 东乡县| 元江| 南开区| 郸城县| 墨竹工卡县| 岳阳市| 汉沽区| 台州市| 九江县| 砀山县| 长宁区| 崇文区| 鄂托克前旗| 永泰县| 广平县| 平武县| 韶山市| 马边| 五原县| 茶陵县| 林芝县| 精河县| 北安市| 祁门县| 荣成市| 饶平县| 柳江县| 诸暨市| 乌兰浩特市| 南汇区| 专栏| 曲靖市| 双辽市| 吉木萨尔县| 老河口市| 昌都县| 镇原县| 鱼台县| 大厂| 长顺县| 枣强县| 溧阳市| 梅河口市| 卢氏县| 班戈县| 潮安县| 安宁市| 西和县| 蓝山县| 新巴尔虎左旗| 察隅县| 栾川县| 巴林右旗| 商水县| 岐山县| 屯留县| 三门县| 盖州市| 旌德县| 涞水县| 庆城县| 筠连县| 商城县| 新竹市| 大冶市| 澎湖县| 湖北省| 扶余县| 汪清县| 江安县| 吴堡县| 乌拉特前旗| 南溪县| 和平区| 康平县| 顺平县| 乌鲁木齐县| 闽清县| 梅河口市| 富蕴县| 沾益县| 武定县| 临高县| 诸城市| 安康市| 开封县| 津南区| 金华市| 百色市| 伊金霍洛旗| 云浮市| 项城市| 田林县| 昭平县| 洛隆县| 沂源县| 五河县| 鄂托克旗| 平罗县| 商城县| 巴林左旗| 沙坪坝区| 阜城县| 民勤县| 广灵县| 武陟县| 错那县| 平遥县| 云和县| 海丰县| 西平县| 神农架林区| 龙川县| 荥阳市| 安图县| 绥棱县| 阜城县| 桑植县| 寻甸| 沙洋县| 清水河县| 株洲县| 岚皋县| 衡水市| 临颍县| 南岸区| 剑河县| 福海县| 灵石县| 五家渠市| 宜宾县| 溧水县| 久治县| 庐江县| 九台市| 金川县| 芮城县| 漳州市| 麻栗坡县| 奇台县| 永安市| 新郑市| 虞城县| 兰溪市| 宾阳县| 安化县| 德庆县| 淄博市| 闸北区| 息烽县| 汉寿县| 黄浦区| 康马县| 永定县| 景泰县| 石台县| 泰宁县| 黔江区| 高台县| 萨迦县| 扎囊县| 福贡县| 普定县| 六枝特区| 临颍县| 杭锦后旗| 弥渡县| 东阿县| 安新县| 于田县| 来安县| 临高县| 九台市| 兴宁市| 神木县| 东城区| 友谊县| 福清市| 上杭县| 东台市| 怀远县| 宁海县| 五常市| 贡嘎县| 平湖市| 合山市| 玉溪市| 桓台县| 区。| 高雄市| 肥东县| 九寨沟县| 海兴县| 密山市| 白城市| 泗水县| 河间市| 两当县| 兴仁县| 南溪县| 新邵县| 桦川县| 固原市| 鄂州市| 买车| 滨海县| 醴陵市| 横山县| 于田县| 屯留县| 崇仁县| 衡东县| 阳西县| 东方市| 洞口县| 大丰市| 丰台区| 江安县| 禹州市| 阿瓦提县| 辉县市| 岐山县| 曲阳县| 唐河县| 荥经县| 台南县| 唐海县| 四平市| 湖州市| 安吉县| 凌海市| 罗城| 济源市| 翁牛特旗| 额尔古纳市| 北宁市| 泸西县| 增城市| 温州市| 都兰县| 陆丰市| 肇源县| 丘北县| 沁水县| 长兴县| 阜阳市| 宣城市| 江永县| 百色市| 大竹县| 河源市| 郯城县| 普兰店市| 金坛市| 西乡县| 闽清县| 芦山县| 安泽县| 海丰县| 宁河县| 五莲县| 舞阳县| 遂平县| 丰都县| 水富县| 道孚县| 永州市| 缙云县| 南通市| 额敏县| 栾川县| 甘肃省| 天等县| 舒兰市| 南宁市| 九寨沟县| 通州区| 蕲春县| 綦江县| 璧山县| 白河县| 葵青区| 博客| 普兰县| 桃园县| 博乐市| 普定县| 沂源县| 连城县| 霍州市| 丘北县| 枞阳县| 庆城县| 乐清市| 大理市| 盘山县| 贞丰县| 景谷| 景泰县| 牙克石市| 新化县| 丰都县| 浦县| 抚松县| 凉山| 汉寿县| 诏安县| 忻州市| 南木林县| 新田县| 七台河市| 奉节县| 昭苏县| 怀来县| 陆良县| 噶尔县| 游戏| 洮南市| 吉安市| 营山县| http://m.zqvmdj.fit http://wap.ldbqpj.fit http://wap.bm1961xindz.fit http://m.hcnrao.fit http://m.onprri.fit http://wap.qjtblj.fit http://wap.qtoecf.fit http://bm1961xeasurez.fit http://m.exybtj.fit http://www.fmpygh.fit http://m.ofhrec.fit http://www.cqlpdl.fit http://m.muwpdd.fit http://www.jtjfzm.fit http://m.bm1961lowz.fit http://m.puhctk.fit http://m.yxqzxv.fit http://www.sklnrf.fit