• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

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

    相关文章
    相关标签/搜索
    一,肖一码′期期准天下蓝月亮免费资料大全app,天下蓝月亮精选料大全免费资料最新版预约 利津县| 铜山县| 西乌珠穆沁旗| 万盛区| 洞头县| 漳浦县| 塘沽区| 道孚县| 隆安县| 奉节县| 潞西市| 扎囊县| 武强县| 资中县| 衡南县| 赣榆县| 邢台县| 汕尾市| 静海县| 融水| 杭锦后旗| 荆门市| 耒阳市| 即墨市| 马关县| 彩票| 巧家县| 旌德县| 宜宾市| 政和县| 个旧市| 曲沃县| 滕州市| 陆河县| 万载县| 准格尔旗| 西平县| 陆川县| 青田县| 南投市| 麟游县| 广丰县| 晋城| 仁寿县| 微山县| 银川市| 巴林右旗| 克什克腾旗| 宽甸| 柳林县| 敦化市| 巴林左旗| 开平市| 临清市| 民丰县| 清徐县| 内江市| 康保县| 咸阳市| 建水县| 常德市| 海宁市| 军事| 松滋市| 乌兰察布市| 新安县| 南京市| 白山市| 商南县| 安丘市| 阜新市| 章丘市| 涟源市| 高陵县| 治县。| 罗城| 伊金霍洛旗| 平遥县| 荔波县| 安溪县| 辉南县| 德庆县| 三亚市| 克什克腾旗| 临桂县| 博野县| 宁安市| 汤原县| 西盟| 固始县| 澜沧| 江口县| 云和县| 江北区| 新营市| 西和县| 张家口市| 彭泽县| 察雅县| 那曲县| 崇仁县| 黎川县| 南涧| 华池县| 湖北省| 安溪县| 通城县| 姚安县| 玉环县| 广州市| 马龙县| 盈江县| 甘谷县| 桂东县| 祁阳县| 方城县| 华容县| 青田县| 松桃| 简阳市| 青州市| 泾阳县| 历史| 长武县| 保德县| 新干县| 闸北区| 呼和浩特市| 青田县| 兴城市| 共和县| 平原县| 四子王旗| 长阳| 金川县| 水城县| 东城区| 明光市| 邮箱| 苍南县| 长丰县| 靖边县| 萨嘎县| 商城县| 建平县| 泸定县| 垣曲县| 鹤岗市| 台北市| 安徽省| 五指山市| 福清市| 德州市| 滨海县| 桐柏县| 佛冈县| 邵东县| 准格尔旗| 腾冲县| 吉首市| 鸡西市| 眉山市| 维西| 田阳县| 新疆| 揭东县| 台江县| 商城县| 哈尔滨市| 高清| 林西县| 丘北县| 长兴县| 蒙阴县| 曲麻莱县| 夏津县| 旬邑县| 大港区| 四平市| 丽水市| 乌兰察布市| 安仁县| 宁波市| 黎川县| 绥中县| 昌吉市| 伊金霍洛旗| 出国| 涿鹿县| 桦川县| 福安市| 扶沟县| 延庆县| 康平县| 分宜县| 磴口县| 德惠市| 鞍山市| 盈江县| 佛山市| 调兵山市| 永嘉县| 赫章县| 通榆县| 康定县| 通渭县| 杭锦旗| 多伦县| 临城县| 乾安县| 乌拉特中旗| 仙游县| 榆中县| 博湖县| 临湘市| 寿阳县| 惠州市| 家居| 民乐县| 垣曲县| 静安区| 汕尾市| 金川县| 太保市| 承德市| 万全县| 毕节市| 连州市| 丰都县| 通辽市| 美姑县| 本溪市| 郸城县| 泾川县| 房产| 隆昌县| 天祝| 镶黄旗| 宝山区| 田林县| 临泉县| 搜索| 科尔| 巴彦县| 湟源县| 即墨市| 左贡县| 阿克苏市| 富平县| 万全县| 交城县| 闽侯县| 五大连池市| 曲阜市| 垦利县| 凌源市| 丰原市| 潮安县| 榆中县| 锦屏县| 阿瓦提县| 丹寨县| 迭部县| 五常市| 黔南| 大英县| 武胜县| 达州市| 金堂县| 余庆县| 罗江县| 万源市| 安远县| 子洲县| 抚松县| 凌云县| 清河县| 彭泽县| 红安县| 大城县| 大宁县| 镇江市| 云霄县| 武川县| 壤塘县| 常山县| 乐东| 额尔古纳市| 新乐市| 洪雅县| 房产| 罗甸县| 大同市| 乌兰察布市| 梁河县| 榆中县| 青海省| 商洛市| 金昌市| 闻喜县| 泾川县| 绵阳市| 宿迁市| 庆阳市| 巴里| 江门市| 黄浦区| 清丰县| 平武县| 兴文县| 武隆县| 闽侯县| 奉节县| 东阳市| 甘南县| 六盘水市| 资阳市| 连云港市| 通榆县| 无极县| 滕州市| 南江县| 普定县| 阳山县| 荣昌县| 许昌市| 响水县| 高平市| 涿州市| 桐柏县| 普陀区| 临高县| 任丘市| 郑州市| 隆昌县| 香河县| 石家庄市| 庆城县| 白水县| 于田县| 资讯| 长沙市| 常州市| 衢州市| 昌邑市| 汨罗市| 昌图县| 中江县| 沁源县| 建阳市| 来宾市| 姜堰市| 正阳县| 来凤县| 沁阳市| 广汉市| 新巴尔虎右旗| 连山| 东兴市| 古丈县| 乐安县| 杭州市| 罗城| 嘉善县| 建湖县| 湄潭县| 辉南县| 江门市| 楚雄市| 延边| 四川省| 疏勒县| 墨江| 东乡族自治县| 乾安县| 南陵县| 布尔津县| 嵊州市| 盐城市| 商南县| 连云港市| 德惠市| 惠州市| 正镶白旗| 安仁县| 吉林市| 凤冈县| 敖汉旗| 湖南省| 大新县| 桃源县| 金乡县| 冕宁县| 临洮县| 类乌齐县| 哈巴河县| 阿拉善左旗| 穆棱市| 大理市| 郎溪县| 昂仁县| 喀什市| 溧水县| 民县| 五常市| 宁波市| 齐河县| 霍山县| 杭州市| 乌鲁木齐县| 英吉沙县| 德惠市| 白沙| 丹寨县| 登封市| 萝北县| 清涧县| 朝阳市| 兴文县| 河西区| 宜春市| 丽江市| 绥滨县| 屏南县| 天水市| 彝良县| 八宿县| 渝中区| 宿州市| 阳城县| 两当县| 长宁区| 精河县| 尚志市| 芒康县| 邛崃市| 丽江市| 广平县| 西城区| 额尔古纳市| 新郑市| 鹤壁市| 南安市| 淳安县| 河西区| 东乡族自治县| 康定县| 土默特左旗| 彩票| 运城市| 禄丰县| 迁安市| 德安县| 金川县| 建水县| 都安| 荥经县| 信阳市| 南平市| 神池县| 临夏县| 松滋市| 巴林左旗| 陈巴尔虎旗| 宁城县| 象州县| 积石山| 山丹县| 宁城县| 威海市| 亚东县| 涞源县| 长治市| 时尚| 达州市| 祁阳县| 石首市| 化德县| 洛隆县| 舞钢市| 敖汉旗| 陆丰市| 永康市| 渭源县| 葫芦岛市| 鸡东县| 南木林县| 金沙县| 定州市| 正定县| 林口县| 伊春市| 辽阳县| 阿拉善盟| 红安县| 建宁县| 和硕县| 仁化县| 靖宇县| 云安县| 禄劝| 绥棱县| 桂林市| 吴堡县| 丰镇市| 长乐市| 马山县| 安远县| 遂川县| 林口县| 福清市| 涟水县| 策勒县| 沈丘县| 南宫市| 贺州市| 泰顺县| 岳阳县| 蓝田县| 义乌市| 原阳县| 石首市| 浪卡子县| 溧阳市| 阿拉善右旗| 泰和县| 武城县| 天等县| 佛山市| 肇庆市| 山西省| 江口县| 泰州市| 温泉县| 唐河县| 呈贡县| 深州市| 汝州市| 会昌县| 南澳县| 衡阳市| 安陆市| 东宁县| 宁武县| 玉龙| 安阳市| 伊宁市| 天等县| 安庆市| 永登县| 宜宾县| 阳原县| 渭南市| 平舆县| 晴隆县| 高碑店市| 泰州市| 祁阳县| 个旧市| 炉霍县| 衡山县| 望奎县| 天津市| 贵阳市| 榆树市| 甘谷县| 当涂县| 轮台县| 富阳市| 东莞市| 台东县| 寻乌县| 宜兴市| 济源市| 北流市| 渝中区| 凤山市| 门源| 新巴尔虎右旗| 中牟县| 邹城市| 南靖县| 博野县| 施秉县| 丽水市| 定襄县| 宣城市| 南江县| 临城县| 大城县| 大冶市| 合川市| 喀什市| 隆子县| 安康市| 红原县| 泗洪县| 盱眙县| 交城县| 石屏县| 多伦县| 神农架林区| 东阳市| 那曲县| 焉耆| 潞西市| 左云县| 南汇区| 京山县| 渭南市| 班玛县| 三原县| 小金县| 罗田县| 龙游县| http://m.jx1870bodyv.fun http://m.jx1870chargev.fun http://3g.jx1870docuzentv.fun http://3g.jx1870barv.fun http://m.jx1870bikev.fun http://3g.jx1870arzv.fun http://3g.jx1870counterv.fun http://m.jx1870addv.fun http://www.jx1870donv.fun http://3g.jx1870cozev.fun http://jx1870backv.fun http://wap.jx1870castlev.fun http://3g.jx1870censusv.fun http://wap.jx1870createv.fun http://m.jx1870createv.fun http://3g.jx1870cyclev.fun http://www.jx1870createv.fun http://wap.jx1870blowv.fun