• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

    矩乘结合律的证明 \(:\)
    \[\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今晚开码结果开奖现场历史开奖资料记录在线查询 调兵山市| 大余县| 敦化市| 平遥县| 麟游县| 宣城市| 伊宁县| 望奎县| 栖霞市| 黔南| 崇义县| 抚州市| 望城县| 南溪县| 瑞安市| 纳雍县| 丰台区| 金寨县| 呼图壁县| 沈阳市| 城口县| 宁乡县| 云南省| 海南省| 阳山县| 平江县| 临汾市| 合肥市| 永安市| 隆尧县| 海阳市| 南投县| 永修县| 同德县| 汉源县| 榆中县| 马边| 济阳县| 咸宁市| 朝阳市| 鄂温| 高唐县| 昭觉县| 天祝| 阿拉善右旗| 阜康市| 全椒县| 巫溪县| 兴宁市| 咸阳市| 富民县| 滁州市| 黄平县| 禹州市| 扬州市| 英山县| 牙克石市| 互助| 汶上县| 田阳县| 台湾省| 长子县| 通州区| 古浪县| 临沧市| 德昌县| 泰州市| 海淀区| 海丰县| 祥云县| 富宁县| 通榆县| 崇礼县| 阿拉善左旗| 九龙坡区| 伽师县| 铜川市| 新安县| 建瓯市| 阿坝| 改则县| 沂南县| 朔州市| 尚义县| 永吉县| 微山县| 封开县| 商城县| 天长市| 鞍山市| 万全县| 蓝山县| 石狮市| 军事| 嘉峪关市| 都兰县| 兰考县| 宜昌市| 景洪市| 城固县| 兴业县| 萍乡市| 宁波市| 佛学| 旬邑县| 南澳县| 铁岭县| 怀来县| 玉溪市| 肇东市| 河南省| 利川市| 涟源市| 长岛县| 临安市| 杭锦旗| 盐山县| 洪湖市| 怀安县| 洛扎县| 大余县| 宜君县| 文安县| 灵川县| 南部县| 云安县| 六枝特区| 乌审旗| 溧阳市| 巴林左旗| 磐安县| 陆良县| 洛宁县| 策勒县| 南康市| 东兰县| 赫章县| 棋牌| 株洲市| 清新县| 阳山县| 红安县| 安义县| 甘德县| 青阳县| 卢龙县| 汕头市| 东港市| 浦北县| 法库县| 广元市| 金沙县| 那曲县| 乌恰县| 乌拉特中旗| 林甸县| 北辰区| 广元市| 五河县| 肇东市| 舒兰市| 双峰县| 高清| 浦北县| 札达县| 航空| 巨野县| 余江县| 和龙市| 读书| 绍兴市| 金平| 山丹县| 临沭县| 天全县| 奉贤区| 乐昌市| 盐池县| 克东县| 渝中区| 沧源| 克山县| 清原| 泗洪县| 崇礼县| 琼结县| 安庆市| 德令哈市| 黄平县| 吉安市| 漾濞| 贵定县| 察哈| 普宁市| 凯里市| 壤塘县| 万盛区| 陇川县| 阳山县| 凤台县| 军事| 泗阳县| 望都县| 昭觉县| 榆树市| 乌拉特后旗| 阳江市| 昭通市| 兴文县| 桑植县| 苍溪县| 怀化市| 通许县| 靖江市| 曲阳县| 融水| 彰化市| 湘潭市| 图木舒克市| 斗六市| 南城县| 喜德县| 葫芦岛市| 东安县| 涪陵区| 福建省| 农安县| 敦化市| 霸州市| 维西| 淳安县| 巴里| 安乡县| 石楼县| 通河县| 高密市| 永靖县| 卓尼县| 博客| 孟州市| 平和县| 乌拉特后旗| 永春县| 德惠市| 油尖旺区| 阿拉善左旗| 岢岚县| 武功县| 江源县| 确山县| 东兰县| 洪湖市| 武定县| 六盘水市| 济南市| 阳城县| 静宁县| 眉山市| 依安县| 南木林县| 阳城县| 罗定市| 五寨县| 鱼台县| 洛川县| 吉木萨尔县| 通州市| 正定县| 昔阳县| 抚宁县| 同心县| 双流县| 武夷山市| 大新县| 怀宁县| 油尖旺区| 怀来县| 靖西县| 塔城市| 林甸县| 西华县| 雅安市| 区。| 莱芜市| 金湖县| 万荣县| 岐山县| 左贡县| 沂南县| 鹿泉市| 灵山县| 米泉市| 静乐县| 望谟县| 高清| 黔江区| 合水县| 土默特左旗| 濮阳市| 钟祥市| 新兴县| 长岛县| 武安市| 柳州市| 伊吾县| 昌乐县| 芷江| 轮台县| 永清县| 富裕县| 天台县| 黔西| 林州市| 林州市| 无为县| 阿坝| 珲春市| 绥阳县| 百色市| 五河县| 白玉县| 长阳| 紫金县| 江口县| 综艺| 雷波县| 永仁县| 娄底市| 金坛市| 彩票| 盖州市| 和田市| 于都县| 台东市| 新巴尔虎左旗| 阳春市| 定州市| 龙井市| 内黄县| 合阳县| 吉木乃县| 丰原市| 湛江市| 冕宁县| 汨罗市| 沈阳市| 正宁县| 左贡县| 鞍山市| 鄢陵县| 视频| 乌鲁木齐市| 莒南县| 冷水江市| 汕尾市| 荥经县| 永川市| 临朐县| 龙口市| 公安县| 松溪县| 日喀则市| 洪泽县| 乌鲁木齐市| 娄底市| 英超| 镇远县| 平罗县| 葵青区| 保德县| 阜平县| 玉门市| 咸丰县| 青冈县| 河间市| 天全县| 南康市| 河西区| 平利县| 香河县| 弋阳县| 大英县| 定边县| 南投市| 正镶白旗| 久治县| 江华| 长沙市| 揭东县| 开封县| 托克托县| 荥阳市| 印江| 滦平县| 潼关县| 龙井市| 英德市| 嘉义市| 岱山县| 东乡县| 许昌市| 芜湖县| 泰宁县| 鄢陵县| 四平市| 永昌县| 虎林市| 连州市| 资源县| 新野县| 东丽区| 刚察县| 靖西县| SHOW| 西乌珠穆沁旗| 乐昌市| 中宁县| 任丘市| 新宁县| 丽江市| 南江县| 景泰县| 株洲市| 濮阳县| 高尔夫| 黔江区| 海盐县| 黄龙县| 黎城县| 襄城县| 呈贡县| 西畴县| 玛多县| 迁西县| 温宿县| 威信县| 五莲县| 鄂尔多斯市| 拜泉县| 贵南县| 金华市| 钟山县| 承德县| 富民县| 兰坪| 洛南县| 库车县| 平定县| 社会| 尉氏县| 安远县| 浙江省| 安新县| 广宁县| 惠安县| 基隆市| 伊川县| 河北区| 洞口县| 邮箱| 乌拉特前旗| 炎陵县| 上蔡县| 隆子县| 万州区| 封丘县| 翼城县| 唐海县| 乌兰县| 鹤山市| 嵊州市| 任丘市| 贺州市| 阜平县| 防城港市| 禄丰县| 观塘区| 正安县| 柘城县| 邛崃市| 临江市| 体育| 红安县| 湘潭市| 台东县| 乌拉特后旗| 浑源县| 芦山县| 寻乌县| 广德县| 南充市| 包头市| 浙江省| 华阴市| 彰化县| 江城| 衡阳县| 湖北省| 新泰市| 辛集市| 南城县| 普兰店市| 威远县| 忻州市| 武鸣县| 泸定县| 鄯善县| 新竹县| 股票| 大理市| 商城县| 应用必备| 阳东县| 新巴尔虎左旗| 镇宁| 营口市| 绥江县| 莎车县| 安庆市| 织金县| 新宾| 邢台县| 宝山区| 唐河县| 桃源县| 凤庆县| 浦北县| 鹤岗市| 教育| 安乡县| 平邑县| 文水县| 元谋县| 哈尔滨市| 曲麻莱县| 平阴县| 保定市| 龙口市| 岗巴县| 澎湖县| 保德县| 海门市| 尉氏县| 渝中区| 贞丰县| 资中县| 德庆县| 镇平县| 肇源县| 元江| 密山市| 平利县| 舒兰市| 曲松县| 武功县| 广宗县| 罗源县| 汉寿县| 平武县| 织金县| 宁南县| 乡城县| 通海县| 宁明县| 义马市| 呼和浩特市| 西藏| 慈溪市| 边坝县| 泰顺县| 锦屏县| 哈巴河县| 泗阳县| 江西省| 沈丘县| 大竹县| 大理市| 浪卡子县| 洪雅县| 钟祥市| 衡东县| 台安县| 古浪县| 乐业县| 晋中市| 阳东县| 和政县| 杭锦旗| 沂源县| 富源县| 镇康县| 大同县| 乌兰浩特市| 西昌市| 洛隆县| 城口县| 丰都县| 吉安市| 介休市| 纳雍县| 安远县| 张家川| 许昌县| 隆子县| 同江市| 连州市| 贵南县| 颍上县| 连平县| 宜兰市| 朔州市| 二连浩特市| 博兴县| 宁都县| 汾西县| http://wap.jx1870conv.fun http://wap.jx1870closev.fun http://wap.jx1870bayv.fun http://wap.jx1870benefitv.fun http://3g.jx1870choosev.fun http://3g.jx1870bearv.fun http://wap.jx1870addressv.fun http://3g.jx1870bookv.fun http://3g.jx1870dezandv.fun http://m.jx1870appearv.fun http://wap.jx1870chazberv.fun http://wap.jx1870associatev.fun http://wap.jx1870casev.fun http://m.jx1870diskv.fun http://3g.jx1870briefv.fun http://wap.jx1870basev.fun http://m.jx1870characterv.fun http://www.jx1870costv.fun