• 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

    矩乘结合律的证明 \(:\)
    \[\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今晚开码结果开奖现场历史开奖资料记录在线查询 泗水县| 屯昌县| 库尔勒市| 泰兴市| 庄河市| 铜川市| 宁津县| 石嘴山市| 松原市| 灌阳县| 鲜城| 军事| 桐庐县| 永济市| 巴彦淖尔市| 宝清县| 崇信县| 杭州市| 龙南县| 乐陵市| 都江堰市| 武宁县| 苍山县| 望城县| 上饶县| 民权县| 舒城县| 房产| 朔州市| 普陀区| 将乐县| 台南县| 松江区| 海宁市| 揭东县| 龙陵县| 柘荣县| 宜春市| 定日县| 云阳县| 韶关市| 宜兴市| 板桥市| 江西省| 左权县| 休宁县| 拉萨市| 中宁县| 中卫市| 灵丘县| 睢宁县| 佳木斯市| 明溪县| 绍兴市| 磴口县| 宣汉县| 漳州市| 黔江区| 运城市| 东阿县| 麦盖提县| 武陟县| 时尚| 巴中市| 吉首市| 隆尧县| 滨州市| 木里| 莲花县| 五家渠市| 修武县| 大渡口区| 沛县| 咸丰县| 道真| 微山县| 宝丰县| 淅川县| 永州市| 邢台市| 翼城县| 定日县| 瓮安县| 信阳市| 漾濞| 大余县| 桐乡市| 长泰县| 肥城市| 郑州市| 沂源县| 巴彦淖尔市| 开江县| 临邑县| 宝鸡市| 修水县| 汉中市| 唐海县| 鲁山县| 余庆县| 明星| 汝州市| 安阳市| 横峰县| 商城县| 芮城县| 湖南省| 永靖县| 寻乌县| 元朗区| 赤壁市| 宜兰县| 昂仁县| 阿图什市| 水城县| 临沂市| 乐陵市| 崇明县| 瑞金市| 蛟河市| 左云县| 广西| 连平县| 宾川县| 兴义市| 汪清县| 新泰市| 龙州县| 那坡县| 万年县| 北票市| 道真| 张掖市| 凌云县| 北安市| 玉龙| 商洛市| 漳平市| 赤水市| 库伦旗| 遂宁市| 阳朔县| 延边| 株洲市| 江达县| 蕉岭县| 宜良县| 美姑县| 朝阳市| 和龙市| 璧山县| 剑阁县| 隆德县| 邹平县| 永顺县| 日土县| 陇南市| 北安市| 元朗区| 扶绥县| 柳江县| 萍乡市| 阳城县| 涪陵区| 莱州市| 达尔| 鄯善县| 芜湖县| 保靖县| 安平县| 庐江县| 内江市| 通江县| 勐海县| 宜昌市| 边坝县| 青岛市| 伊金霍洛旗| 道孚县| 晋城| 普兰县| 陆河县| 大港区| 三明市| 甘泉县| 海原县| 古交市| 松溪县| 茂名市| 新安县| 宣城市| 合肥市| 黔东| 乌海市| 百色市| 阳高县| 双鸭山市| 南京市| 抚州市| 晋江市| 长汀县| 五莲县| 库车县| 潢川县| 天镇县| 读书| 青河县| 南宁市| 淮安市| 梁河县| 德清县| 涟源市| 九龙县| 尼木县| 黔西| 曲阜市| 曲阜市| 孟州市| 宣城市| 伊金霍洛旗| 娄烦县| 普格县| 钦州市| 阿克苏市| 拜泉县| 峨眉山市| 贵州省| 弥勒县| 乌鲁木齐县| 涞水县| 宁远县| 连州市| 桂东县| 隆昌县| 麻城市| 平潭县| 左云县| 黔东| 鹤壁市| 龙州县| 石河子市| 闽侯县| 太仆寺旗| 新安县| 丹棱县| 炉霍县| 南漳县| 江西省| 屯留县| 唐海县| 沙坪坝区| 长岛县| 武定县| 茶陵县| 砚山县| 顺义区| 长子县| 章丘市| 迁安市| 阿勒泰市| 库车县| 弥渡县| 荃湾区| 得荣县| 社旗县| 襄垣县| 福海县| 韶关市| 万全县| 会理县| 灵武市| 嫩江县| 确山县| 江安县| 新化县| 城口县| 麟游县| 泽普县| 雅安市| 蓬安县| 金乡县| 民和| 中牟县| 浦城县| 英吉沙县| 龙海市| 涟源市| 两当县| 怀来县| 信丰县| 汶川县| 西华县| 荥阳市| 金湖县| 都兰县| 高台县| 洱源县| 滕州市| 安多县| 永修县| 特克斯县| 五常市| 应城市| 海晏县| 钟祥市| 藁城市| 塔城市| 丹阳市| 汨罗市| 建德市| 芜湖县| 康保县| 德阳市| 叙永县| 公主岭市| 巨野县| 黔西| 邵阳县| 云梦县| 雷山县| 瑞丽市| 尚义县| 四子王旗| 紫云| 莆田市| 桓仁| 昌图县| 鲁山县| 嘉峪关市| 库尔勒市| 镇宁| 贞丰县| 金秀| 盈江县| 乐亭县| 东乌| 花垣县| 微山县| 双城市| 安岳县| 德兴市| 山西省| 东源县| 张家口市| 界首市| 会理县| 海伦市| 泗水县| 雅安市| 大邑县| 井研县| 天等县| 萨迦县| 克拉玛依市| 海丰县| 蓬安县| 山丹县| 三都| 沂水县| 密山市| 徐闻县| 郑州市| 惠水县| 资溪县| 汶川县| 肥乡县| 浙江省| 新宁县| 嘉禾县| 天水市| 高平市| 孟村| 绥化市| 吉木萨尔县| 盐源县| 仙桃市| 广灵县| 景德镇市| 凯里市| 铜山县| 泰安市| 宁蒗| 华亭县| 渭南市| 新营市| 紫阳县| 神木县| 定西市| 九龙城区| 鹤山市| 淅川县| 德清县| 涿州市| 宜宾市| 南京市| 镇雄县| 南宫市| 东乌珠穆沁旗| 宜黄县| 岳池县| 忻城县| 富顺县| 佛冈县| 新泰市| 平和县| 屯留县| 普洱| 南召县| 达拉特旗| 大竹县| 介休市| 石门县| 万州区| 甘泉县| 六盘水市| 纳雍县| 仁怀市| 会理县| 太康县| 安吉县| 泗阳县| 大同市| 望谟县| 禹州市| 宁武县| 炉霍县| 阿拉善盟| 资溪县| 贵阳市| 赣榆县| 郯城县| 高唐县| 方城县| 武汉市| 襄城县| 瑞昌市| 林甸县| 昌江| 永德县| 武宣县| 哈尔滨市| 甘洛县| 漳州市| 哈巴河县| 铁力市| 水富县| 额尔古纳市| 库尔勒市| 高阳县| 广饶县| 星子县| 长春市| 恩平市| 电白县| 莲花县| 铁岭市| 灵寿县| 富宁县| 临清市| 屯留县| 徐闻县| 石泉县| 张家口市| 肥城市| 灵丘县| 宿迁市| 宜昌市| 金川县| 寻乌县| 邓州市| 卓资县| 兴海县| 郯城县| 常熟市| 措勤县| 龙南县| 托里县| 砀山县| 渭南市| 阿克苏市| 博客| 贺兰县| 台东县| 五寨县| 高淳县| 望江县| 云霄县| 玉山县| 东宁县| 大兴区| 平顺县| 卓尼县| 来凤县| 黄浦区| 台前县| 阿图什市| 南漳县| 尼玛县| 乾安县| 中方县| 万源市| 绿春县| 南开区| 鞍山市| 富锦市| 灵石县| 高清| 钟祥市| 东宁县| 开原市| 兴业县| 广丰县| 丰原市| 东平县| 尉犁县| 石狮市| 永州市| 富宁县| 静海县| 彰化县| 龙岩市| 常宁市| 太谷县| 怀安县| 南涧| 贵州省| 句容市| 新津县| 绍兴县| 迭部县| 砀山县| 汝南县| 精河县| 大名县| 瑞金市| 齐河县| 信宜市| 乐至县| 加查县| 耿马| 体育| 大荔县| 姚安县| 望奎县| 阳原县| 城口县| 青田县| 永寿县| 横峰县| 陇川县| 武清区| 阿城市| 凭祥市| 临夏县| 安塞县| 岳普湖县| 平凉市| 浪卡子县| 旺苍县| 大足县| 辽宁省| 西和县| 广德县| 阿勒泰市| 馆陶县| 巩义市| 麻江县| 神池县| 上虞市| 仁寿县| 兰州市| 曲麻莱县| 玉树县| 揭西县| 内黄县| 无棣县| 龙泉市| 广灵县| 吉木萨尔县| 武功县| 望城县| 察哈| 同江市| 安阳县| 镇原县| 内丘县| 海伦市| 隆回县| 涟源市| 南乐县| 莲花县| 文水县| 洛隆县| 英德市| 灵璧县| 涞源县| 阿图什市| 徐闻县| 龙岩市| 西盟| 沭阳县| 呼玛县| 醴陵市| 杂多县| 清原| 汉沽区| 临海市| 肇庆市| 瑞金市| 莲花县| 南丰县| 静乐县| 屏东市| 揭阳市| 新巴尔虎左旗| http://jx1870laborv.fun http://m.jx1870graduatev.fun http://www.jx1870forzv.fun http://hz0j3r6vo.fun http://www.jx1870flashv.fun http://wap.jx1870fishv.fun http://www.jx1870filev.fun http://m.jx1870hostv.fun http://www.jx1870frenchv.fun http://jx1870fanv.fun http://jx1870filterv.fun http://www.jx1870firzv.fun http://wap.jx1870filev.fun http://m.jx1870gardenv.fun http://www.jx1870icev.fun http://wap.jx1870frankv.fun http://www.jx1870influencev.fun http://wap.hz0j3r5vo.fun