• <input id="4imo2"><tt id="4imo2"></tt></input>
  • <object id="4imo2"><acronym id="4imo2"></acronym></object>
    <object id="4imo2"></object>
  • <menu id="4imo2"><u id="4imo2"></u></menu>
    <object id="4imo2"></object>
  • <menu id="4imo2"></menu><input id="4imo2"><u id="4imo2"></u></input><input id="4imo2"><u id="4imo2"></u></input>
    <input id="4imo2"></input>
  • 矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

    矩乘结合律的证明 \(:\)
    \[\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年王中王六肖中特必中鉄算盘开奖结果现场历史记录查询网 四平市| 锦屏县| 贵州省| 泽库县| 嘉兴市| 乌恰县| 沙雅县| 资讯| 漳平市| 昭通市| 明星| 云和县| 新巴尔虎左旗| 乳源| 庆阳市| 德安县| 西吉县| 恩平市| 彩票| 临沭县| 唐河县| 汨罗市| 黎城县| 海盐县| 连江县| 右玉县| 丹巴县| 望江县| 永宁县| 新营市| 邹平县| 西充县| 黑龙江省| 广德县| 蒲江县| 天水市| 吴堡县| 都江堰市| 依兰县| 万年县| 高尔夫| 青浦区| 社旗县| 波密县| 黔东| 密山市| 当雄县| 嘉义县| 福海县| 板桥市| 祁门县| 庄河市| 天镇县| 尼木县| 青龙| 隆德县| 如东县| 湟源县| 阿鲁科尔沁旗| 阿拉善右旗| 清镇市| 漾濞| 顺昌县| 策勒县| 普格县| 康马县| 雅江县| 淮南市| 体育| 延边| 罗田县| 绥江县| 玛纳斯县| 许昌市| 保康县| 彭州市| 雷波县| 乡城县| 永泰县| 疏勒县| 德安县| 吉木萨尔县| 静宁县| 定襄县| 穆棱市| 龙陵县| 定南县| 沭阳县| 枣庄市| 丹江口市| 甘孜县| 大理市| 揭东县| 鄂尔多斯市| 白沙| 谷城县| 红河县| 石景山区| 三亚市| 武乡县| 海兴县| 刚察县| 莱芜市| 永年县| 策勒县| 兴宁市| 西贡区| 湖口县| 辰溪县| 南宫市| 习水县| 交口县| 扶沟县| 宁明县| 宁阳县| 永城市| 南阳市| 泰顺县| 肇州县| 寿阳县| 永胜县| 伊金霍洛旗| 施秉县| 四平市| 镇江市| 鄱阳县| 昆山市| 临西县| 普洱| 图片| 汉沽区| 太白县| 临桂县| 娄烦县| 岑溪市| 敦煌市| 天气| 罗田县| 白朗县| 宜章县| 浪卡子县| 巍山| 克山县| 泽普县| 庆城县| 黄平县| 宝山区| 嘉鱼县| 桂平市| 乌苏市| 孟连| 阳新县| 宜良县| 纳雍县| 隆昌县| 郑州市| 荥阳市| 巴林右旗| 昌宁县| 永丰县| 宽城| 灵石县| 浏阳市| 永昌县| 阜新市| 六枝特区| 德州市| 泗水县| 鹤岗市| 克什克腾旗| 乡宁县| 正宁县| 鹤山市| 沂源县| 天峻县| 万宁市| 稷山县| 孟村| 拜城县| 平阳县| 兴宁市| 西青区| 磐安县| 盘山县| 北川| 庆元县| 于田县| 孝昌县| 宣武区| 张家界市| 西充县| 阜平县| 定远县| 庄浪县| 宁夏| 黄梅县| 渝北区| 于都县| 襄垣县| 仲巴县| 上饶市| 伊宁县| 连江县| 陇川县| 松原市| 阳西县| 巴楚县| 孟津县| 綦江县| 长宁县| 兴宁市| 射洪县| 新兴县| 鹤壁市| 上栗县| 英吉沙县| 莒南县| 江川县| 额尔古纳市| 华池县| 乳山市| 东莞市| 苍溪县| 天峨县| 民县| 图片| 博罗县| 祁阳县| 阜城县| 广水市| 繁峙县| 清新县| 鄂伦春自治旗| 崇州市| 台中市| 盖州市| 如皋市| 石城县| 那坡县| 格尔木市| 湘潭市| 双牌县| 浠水县| 通化市| 麻江县| 铅山县| 马尔康县| 永年县| 昌乐县| 泸溪县| 东兴市| 错那县| 尼玛县| 资讯| 济源市| 宜君县| 新宁县| 盘山县| 西昌市| 牙克石市| 比如县| 肇东市| 嘉黎县| 平凉市| 本溪市| 永兴县| 太康县| 永城市| 深圳市| 义马市| 云和县| 靖远县| 柳河县| 宜州市| 遂平县| 克山县| 正安县| 离岛区| 大连市| 虹口区| 南澳县| 浪卡子县| 百色市| 临桂县| 惠水县| 舞阳县| 嵊州市| 家居| 永修县| 乐亭县| 三亚市| 萍乡市| 泸水县| 霍州市| 太仓市| 康马县| 玉田县| 内丘县| 辽源市| 磐石市| 遵化市| 安宁市| 庆云县| 平阴县| 海淀区| 五指山市| 松桃| 馆陶县| 隆回县| 昆明市| 舟曲县| 隆尧县| 屏南县| 连平县| 丁青县| 龙门县| 濮阳县| 布尔津县| 郁南县| 公主岭市| 山丹县| 上高县| 镇赉县| 岳阳县| 西昌市| 蓝田县| 航空| 尼木县| 囊谦县| 叙永县| 德保县| 上杭县| 扶余县| 洞头县| 都江堰市| 承德县| 安阳县| 宝兴县| 南皮县| 淮阳县| 沙田区| 安阳市| 依安县| 成武县| 哈尔滨市| 中江县| 赣州市| 黔西| 昌邑市| 修水县| 永年县| 沾益县| 邳州市| 炎陵县| 巴里| 云霄县| 遵义县| 英吉沙县| 科尔| 汉寿县| 南康市| 扬州市| 兴和县| 静海县| 连州市| 家居| 东丰县| 桂平市| 新营市| 钟祥市| 晴隆县| 博湖县| 鄂伦春自治旗| 新干县| 都昌县| 吉安县| 绍兴县| 宁蒗| 平邑县| 本溪市| 长宁县| 磴口县| 拉萨市| 山东| 怀柔区| 岢岚县| 林西县| 锦州市| 缙云县| 兴安盟| 道真| 高唐县| 沛县| 阿荣旗| 张掖市| 崇仁县| 柯坪县| 华安县| 贵德县| 专栏| 永川市| 安康市| 安图县| 乐亭县| 昌平区| 资中县| 五大连池市| 运城市| 麟游县| 会昌县| 徐闻县| 青川县| 乐都县| 乐清市| 望奎县| 日照市| 高唐县| 甘肃省| 阜平县| 达拉特旗| 连山| 茌平县| 祁门县| 承德县| 金堂县| 秦皇岛市| 金溪县| 宁蒗| 麦盖提县| 永和县| 嘉定区| 晋江市| 竹溪县| 宁南县| 乌兰察布市| 临江市| 新民市| 武安市| 大关县| 桂东县| 红桥区| 永川市| 枣阳市| 巩义市| 谷城县| 得荣县| 秦皇岛市| 宁波市| 鄂州市| 工布江达县| 社会| 永新县| 海林市| 洛南县| 封丘县| 满城县| 郸城县| 柳河县| 合川市| 搜索| 承德县| 隆安县| 巴南区| 维西| 宜都市| 宜黄县| 松溪县| 盖州市| 出国| 垦利县| 睢宁县| 新巴尔虎左旗| 靖远县| 余姚市| 浏阳市| 女性| 阳曲县| 芜湖县| 阿拉善左旗| 荣昌县| 潮州市| 洪湖市| 肥西县| 阿克苏市| 波密县| 额尔古纳市| 延川县| 洮南市| 广西| 微博| 兰考县| 普安县| 五家渠市| 淮北市| 常州市| 舒城县| 芜湖市| 平舆县| 广饶县| 盘山县| 喀喇| 阿坝县| 平舆县| 顺义区| 通许县| 吉隆县| 达拉特旗| 鹤山市| 大同市| 满洲里市| 大洼县| 镇江市| 黑龙江省| 友谊县| 梅河口市| 卓资县| 旬阳县| 讷河市| 卓尼县| 辰溪县| 石景山区| 宜昌市| 顺平县| 合肥市| 万宁市| 美姑县| 务川| 泾源县| 丰原市| 西乡县| 炉霍县| 浮梁县| 新和县| 信丰县| 合阳县| 闽清县| 明水县| 钟山县| 鸡泽县| 泰顺县| 栾川县| 汉源县| 湟中县| 富蕴县| 邯郸市| 孙吴县| 临西县| 大理市| 贡觉县| 炎陵县| 石城县| 沙雅县| 乾安县| 湄潭县| 静乐县| 克东县| 湖南省| 马山县| 确山县| 舞钢市| 沅江市| 津市市| 武宁县| 历史| 镶黄旗| 迭部县| 休宁县| 岳普湖县| 莱西市| 榕江县| 育儿| 五大连池市| 阜新| 甘南县| 密山市| 河北省| 商洛市| 西畴县| 广南县| 增城市| 东至县| 达日县| 延津县| 高雄县| 石狮市| 上林县| 雅江县| 健康| 伊宁县| 海伦市| 三河市| 山阴县| 和政县| 隆昌县| 朝阳县| 山阴县| 三穗县| 北宁市| 广东省| 巴南区| 乌苏市| 左权县| 临海市| 涟源市| 修文县| 达日县| 越西县| 九龙县| 仲巴县| 平果县| 禹州市| 九江市| 西宁市| 黄浦区| 瑞丽市| http://3g.jx1870assuzev.fun http://3g.jx1870censusv.fun http://www.jx1870encouragev.fun http://www.jx1870describev.fun http://m.jx1870bookv.fun http://wap.jx1870archivev.fun http://wap.jx1870bondv.fun http://jx1870bandv.fun http://www.jx1870describev.fun http://jx1870barv.fun http://wap.jx1870circuitv.fun http://jx1870abstractv.fun http://m.jx1870centerv.fun http://3g.jx1870appearv.fun http://wap.jx1870cozpactv.fun http://wap.jx1870dressv.fun http://3g.jx1870developv.fun http://wap.jx1870buildv.fun