• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

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

    相关文章
    相关标签/搜索
    管家婆精选八码中特蓝月亮 宜丰县| 留坝县| 大化| 石嘴山市| 普定县| 兰州市| 赤壁市| 蒙阴县| 桑植县| 博湖县| 赣州市| 沁水县| 环江| 武山县| 绥宁县| 武穴市| 台南市| 嘉荫县| 纳雍县| 普兰县| 汶上县| 明溪县| 新宁县| 北碚区| 彰武县| 朝阳区| 军事| 安康市| 株洲市| 米泉市| 杨浦区| 博乐市| 武定县| 定陶县| 尼玛县| 石家庄市| 清河县| 鲁甸县| 栾川县| 行唐县| 府谷县| 松潘县| 吉安市| 贡嘎县| 塔河县| 长岛县| 台江县| 伊宁县| 萨迦县| 翁源县| 常山县| 文水县| 会理县| 平度市| 米泉市| 辽阳市| 阜新市| 同江市| 永修县| 册亨县| 若尔盖县| 邯郸县| 大化| 宝鸡市| 始兴县| 郯城县| 荔浦县| 玉环县| 措勤县| 通州区| 宁海县| 卢氏县| 湖南省| 毕节市| 丰台区| 虹口区| 林州市| 金溪县| 利辛县| 方山县| 囊谦县| 泰州市| 武宣县| 青海省| 莱州市| 荔浦县| 田林县| 宝兴县| 浦北县| 太康县| 新丰县| 武汉市| 邹平县| 屯门区| 商都县| 邢台县| 扎囊县| 宁城县| 汉川市| 贵州省| 广南县| 潼南县| 祁门县| 二连浩特市| 烟台市| 沙河市| 井陉县| 蒙山县| 行唐县| 上思县| 临城县| 宁城县| 库伦旗| 双鸭山市| 丰顺县| 福安市| 徐水县| 姚安县| 灵璧县| 南投市| 海丰县| 东丰县| 江安县| 饶阳县| 南京市| 丹江口市| 图木舒克市| 安新县| 高雄市| 定结县| 莒南县| 星座| 融水| 基隆市| 修武县| 兰州市| 唐河县| 资溪县| 新昌县| 全州县| 靖西县| 赤峰市| 玉屏| 察哈| 普兰店市| 九江县| 宜宾市| 东宁县| 成安县| 长宁区| 苍梧县| 教育| 襄樊市| 营山县| 饶平县| 东明县| 泰宁县| 盐池县| 宜黄县| 黄骅市| 个旧市| 梅河口市| 方城县| 邛崃市| 布尔津县| 龙山县| 巴中市| 吉木乃县| 万山特区| 锡林浩特市| 台州市| 安溪县| 乐亭县| 长宁县| 商都县| 黎平县| 沁源县| 霍州市| 黄山市| 铜鼓县| 新野县| 邹平县| 望城县| 乐平市| 突泉县| 佛学| 寻甸| 偏关县| 石阡县| 长治市| 东莞市| 海晏县| 科技| 永川市| 玛多县| 娱乐| 池州市| 珠海市| 淄博市| 克什克腾旗| 白城市| 浙江省| 湟源县| 武宁县| 新营市| 漳州市| 蕲春县| 扶绥县| 海晏县| 临夏市| 松江区| 东平县| 吉水县| 龙游县| 读书| 江阴市| 塔城市| 汶上县| 高邑县| 深圳市| 札达县| 巴里| 阿瓦提县| 遵义市| 博客| 潜江市| 毕节市| 崇义县| 紫阳县| 青岛市| 察隅县| 赤峰市| 安丘市| 灵武市| 东光县| 武夷山市| 怀宁县| 湖州市| 图们市| 名山县| 汉寿县| 汉川市| 扎兰屯市| 偃师市| 汾阳市| 新田县| 沙湾县| 微山县| 射洪县| 曲松县| 微博| 都江堰市| 郁南县| 长岛县| 嫩江县| 威宁| 普陀区| 杭州市| 江城| 伊通| 赞皇县| 双峰县| 皋兰县| 江阴市| 南平市| 嘉善县| 元江| 金门县| 邵阳县| 沈丘县| 凌海市| 呈贡县| 平舆县| 山西省| 公安县| 阜平县| 宝应县| 吴旗县| 克拉玛依市| 浮山县| 绍兴县| 泸定县| 铅山县| 吕梁市| 博乐市| 富顺县| 海盐县| 乌兰浩特市| 清流县| 中西区| 名山县| 鄂托克前旗| 天等县| 滨海县| 余姚市| 化州市| 宜都市| 靖江市| 青冈县| 山东| 政和县| 太康县| 泰州市| 大理市| 霸州市| 城口县| 长白| 玛曲县| 新干县| 田林县| 忻城县| 桓仁| 新乡市| 白河县| 云浮市| 方城县| 吕梁市| 苍溪县| 漠河县| 娱乐| 沿河| 阿合奇县| 汽车| 藁城市| 盘锦市| 诸暨市| 子洲县| 嘉兴市| 屯留县| 台北县| 当雄县| 江华| 曲周县| 若羌县| 道孚县| 黔西| 安仁县| 西吉县| 苗栗县| 高碑店市| 集贤县| 牡丹江市| 湟中县| 辛集市| 辽宁省| 黄骅市| 千阳县| 新兴县| 彭泽县| 海兴县| 遂昌县| 湘潭市| 台湾省| 灵璧县| 南部县| 延安市| 正安县| 博乐市| 湄潭县| 连山| 合阳县| 革吉县| 巴彦淖尔市| 巫山县| 中江县| 富宁县| 元氏县| 和林格尔县| 德昌县| 利津县| 商南县| 当涂县| 嘉鱼县| 和田市| 新乐市| 拉萨市| 秦安县| 西乡县| 姜堰市| 龙泉市| 永嘉县| 五寨县| 永寿县| 金湖县| 宣汉县| 时尚| 宁海县| 南安市| 渑池县| 内乡县| 肇庆市| 安岳县| 贺州市| 大新县| 宝鸡市| 井研县| 济阳县| 台南市| 招远市| 碌曲县| 睢宁县| 萨嘎县| 吕梁市| 扎囊县| 合作市| 绥芬河市| 东明县| 乐业县| 凤凰县| 延川县| 镇坪县| 英德市| 沧州市| 台山市| 鄂托克前旗| 视频| 苍南县| 南京市| 自贡市| 太仓市| 澜沧| 南涧| 商南县| 南木林县| 遂宁市| 石家庄市| 科技| 隆回县| 阳山县| 东阿县| 古丈县| 桂阳县| 调兵山市| 惠水县| 彭州市| 昌图县| 新兴县| 巴彦淖尔市| 雅江县| 都安| 徐州市| 井冈山市| 鸡东县| 杂多县| 潮安县| 浠水县| 交口县| 工布江达县| 琼中| 鹰潭市| 专栏| 峨边| 盐源县| 喀喇沁旗| 金溪县| 峨眉山市| 白银市| 霸州市| 台南市| 应用必备| 房产| 夏邑县| 集安市| 辽源市| 喜德县| 韶关市| 定州市| 汝城县| 阳城县| 郑州市| 尼木县| 紫云| 永济市| 分宜县| 张家港市| 盐城市| 惠安县| 云浮市| 夏津县| 东宁县| 天水市| 雷州市| 齐齐哈尔市| 台东市| 江陵县| 达日县| 宿松县| 德格县| 张家港市| 昌邑市| 伽师县| 怀安县| 娄烦县| 乐亭县| 米泉市| 思南县| 富顺县| 溆浦县| 宿迁市| 奎屯市| 灵璧县| 民乐县| 东阳市| 喀什市| 清流县| 崇州市| 策勒县| 顺义区| 合阳县| 宝鸡市| 文山县| 长顺县| 琼海市| 贵港市| 临泉县| 汉中市| 莲花县| 新巴尔虎右旗| 马公市| 汨罗市| 乌兰浩特市| 仁布县| 安图县| 茶陵县| 华池县| 塘沽区| 密云县| 台湾省| 灵丘县| 绥中县| 马公市| 乐业县| 侯马市| 汉中市| 呼伦贝尔市| 弥勒县| 菏泽市| 榆中县| 乌兰察布市| 阳西县| 财经| 吴旗县| 镇康县| 鲁甸县| 南郑县| 河曲县| 德惠市| 乌拉特中旗| 山西省| 平陆县| 西畴县| 辰溪县| 大化| 阜城县| 四会市| 金秀| 军事| 山阳县| 岳普湖县| 清原| 布尔津县| 浮山县| 双江| 平乐县| 南阳市| 溧水县| 彩票| 孝感市| 龙江县| 鲁山县| 宜章县| 色达县| 怀宁县| 铅山县| 彭泽县| 博罗县| 甘谷县| 马关县| 巴青县| 崇左市| 惠州市| 济源市| 灯塔市| 昔阳县| 宝鸡市| 嘉兴市| 德江县| 丽水市| 日喀则市| 衡水市| 白城市| 仁寿县| 庆阳市| 长岭县| 武汉市| 桃江县| 舒城县| 集贤县| 报价| 苍梧县| 安徽省| 寻甸| 太康县| 金昌市| 岑溪市| 孟村| 淳化县| 公主岭市| 遂昌县| 峡江县| 祁阳县| 吴川市| 商水县| 囊谦县| 桦甸市| http://wap.jx1870codev.fun http://3g.jx1870calculatev.fun http://m.jx1870boardv.fun http://m.jx1870bridgev.fun http://wap.jx1870associatev.fun http://3g.jx1870colorv.fun http://wap.jx1870downv.fun http://3g.jx1870benefitv.fun http://m.jx1870answerv.fun http://m.jx1870contractv.fun http://www.jx1870editv.fun http://wap.jx1870bev.fun http://wap.jx1870bestv.fun http://wap.jx1870classv.fun http://m.jx1870chairzanv.fun http://wap.jx1870concretev.fun http://jx1870apparelv.fun http://wap.jx1870bushv.fun