<address id="bxxfd"><dfn id="bxxfd"></dfn></address>

<dl id="bxxfd"><video id="bxxfd"></video></dl>

<sub id="bxxfd"><delect id="bxxfd"><ins id="bxxfd"></ins></delect></sub>

      <address id="bxxfd"><var id="bxxfd"></var></address>
      <sub id="bxxfd"><dfn id="bxxfd"><ins id="bxxfd"></ins></dfn></sub>

      <form id="bxxfd"><listing id="bxxfd"></listing></form>

      <thead id="bxxfd"><delect id="bxxfd"><output id="bxxfd"></output></delect></thead>

      <thead id="bxxfd"><var id="bxxfd"><output id="bxxfd"></output></var></thead><sub id="bxxfd"><var id="bxxfd"><output id="bxxfd"></output></var></sub>
      <sub id="bxxfd"><var id="bxxfd"><ruby id="bxxfd"></ruby></var></sub>
      <address id="bxxfd"><dfn id="bxxfd"></dfn></address>

      矩阵乘法与邻接矩阵

      矩阵乘法与邻接矩阵

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

      相关文章
      相关标签/搜索
      三十码期期必中√资料2020年香港马会最快手机报码开奖结果现场直播历史查询记录二四六天天好彩免费资料大全网 醴陵市| 安西县| 新源县| 肃宁县| 望城县| 安塞县| 双城市| 鸡泽县| 衡阳县| 黎平县| 杭锦旗| 静宁县| 师宗县| 宕昌县| 伽师县| 策勒县| 睢宁县| 前郭尔| 剑阁县| 广饶县| 于田县| 含山县| 岑巩县| 松桃| 安义县| 海阳市| 两当县| 娱乐| 大城县| 漾濞| 澜沧| 孝感市| 腾冲县| 朝阳区| 玉环县| 龙泉市| 珠海市| 通州区| 吉林省| 庄河市| 江北区| 定边县| 扎赉特旗| 玉山县| 通州市| 馆陶县| 锦屏县| 广昌县| 勐海县| 壶关县| 安康市| 屯门区| 上蔡县| 手机| 莱阳市| 高州市| 通许县| 香河县| 秦皇岛市| 彭水| 格尔木市| 龙川县| 昌江| 丰台区| 若尔盖县| 静安区| 阳江市| 沾益县| 巴南区| 监利县| 舒城县| 肥西县| 云林县| 青川县| 温泉县| 托克托县| 柳河县| 广丰县| 奇台县| 梁河县| 乌鲁木齐市| 壤塘县| 西昌市| 贡觉县| 会泽县| 溧阳市| 喀什市| 正阳县| 印江| 荥经县| 浦江县| 定兴县| 新津县| 丰顺县| 轮台县| 格尔木市| 大悟县| 绥德县| 白城市| 县级市| 镇安县| 蕲春县| 武穴市| 新民市| 万安县| 清镇市| 应用必备| 金平| 获嘉县| 宜昌市| 盐源县| 邵阳市| 扬州市| 南靖县| 江门市| 龙江县| 麻江县| 河津市| 高州市| 大同县| 连平县| 陇南市| 古交市| 沙坪坝区| 胶南市| 平果县| 绥化市| 宜章县| 寿宁县| 灯塔市| 时尚| 油尖旺区| 五峰| 镇坪县| 定南县| 汽车| 渝北区| 简阳市| 闻喜县| 海宁市| 靖边县| 沽源县| 板桥市| 蒙自县| 栾川县| 苗栗市| 巴青县| 乐陵市| 荔波县| 城市| 广南县| 汽车| 古浪县| 津南区| 凤阳县| 江西省| 龙岩市| 贵阳市| 吉木萨尔县| 乌拉特中旗| 石门县| 曲阜市| 沁阳市| 山阳县| 大石桥市| 公主岭市| 黄浦区| 玉山县| 桃江县| 蕲春县| 方正县| 石台县| 莱芜市| 合肥市| 深泽县| 北辰区| 郁南县| 启东市| 炉霍县| 鸡东县| 新宁县| 安顺市| 五峰| 惠安县| 即墨市| 荔波县| 察隅县| 贡觉县| 沐川县| 广宁县| 舞钢市| 沭阳县| 斗六市| 青田县| 南木林县| 宜君县| 哈密市| 琼中| 洛宁县| 江陵县| 中牟县| 濮阳市| 柘荣县| 工布江达县| 哈巴河县| 绩溪县| 阿勒泰市| 玉屏| 宁河县| 阳东县| 临沧市| 满洲里市| 锦州市| 长垣县| 蓬安县| 天全县| 从化市| 东台市| 黔南| 青田县| 肃南| 柘城县| 唐海县| 南澳县| 长岭县| 禄丰县| 文安县| 寿光市| 梓潼县| 绵阳市| 宜君县| 尼木县| 合阳县| 兴化市| 三门县| 上栗县| 常州市| 攀枝花市| 霍城县| 南陵县| 德昌县| 务川| 桐梓县| 马边| 剑阁县| 积石山| 谢通门县| 福贡县| 金秀| 颍上县| 虹口区| 彰化县| 大厂| 保定市| 牟定县| 亳州市| 元谋县| 孙吴县| 桃源县| 安塞县| 阜康市| 锦州市| 谢通门县| 苍梧县| 竹山县| 闵行区| 阿合奇县| 昭通市| 平远县| 平舆县| 通渭县| 东安县| 大石桥市| 拜泉县| 岳阳县| 永仁县| 休宁县| 天台县| 巍山| 嘉鱼县| 利川市| 岳阳县| 江安县| 蒙自县| 永善县| 崇左市| 万荣县| 九龙坡区| 渭南市| 甘南县| 盐亭县| 宜丰县| 开平市| 旬邑县| 玉屏| 睢宁县| 巍山| 固始县| 尚志市| 北京市| 思茅市| 长宁县| 乐平市| 渝北区| 海阳市| 余干县| 阳朔县| 乌恰县| 麦盖提县| 馆陶县| 镇赉县| 顺昌县| 绩溪县| 新昌县| 依兰县| 弥勒县| 轮台县| 丹寨县| 即墨市| 三都| 论坛| 安龙县| 甘南县| 周口市| 荆州市| 旬邑县| 高清| 郁南县| 安阳县| 南陵县| 长泰县| 霍山县| 兴和县| 汉中市| 汨罗市| 奎屯市| 化州市| 巴彦淖尔市| 白水县| 阳曲县| 凤台县| 山东省| 瑞金市| 屏南县| 黎城县| 新竹市| 苍溪县| 盱眙县| 曲水县| 汝阳县| 衡水市| 景德镇市| 高青县| 璧山县| 吉林市| 南澳县| 普格县| 固阳县| 驻马店市| 荣成市| 嘉祥县| 莱芜市| 永泰县| 海伦市| 聂荣县| 曲阜市| 北安市| 兴宁市| 隆尧县| 衡山县| 新和县| 峡江县| 苍梧县| 昭苏县| 贡山| 淅川县| 泗水县| 富阳市| 乐都县| 天峨县| 天镇县| 武功县| 调兵山市| 栖霞市| 永平县| 集安市| 怀集县| 图木舒克市| 芮城县| 镇宁| 绥德县| 邵阳市| 来宾市| 色达县| 贵港市| 肥西县| 宝兴县| 开化县| 沙湾县| 濉溪县| 沙湾县| 武夷山市| 越西县| 五常市| 邹平县| 贡觉县| 科尔| 延安市| 黄平县| 松潘县| 亚东县| 聂荣县| 焦作市| 东至县| 客服| 清苑县| 乃东县| 准格尔旗| 远安县| 贵州省| 岫岩| 贵阳市| 靖州| 平泉县| 辽源市| 武邑县| 潞西市| 景洪市| 新津县| 平南县| 福清市| 丹凤县| 乳山市| 得荣县| 同心县| 巴里| 建水县| 斗六市| 云林县| 靖江市| 湘潭县| 海口市| 海南省| 安阳县| 平潭县| 南投市| 博罗县| 富裕县| 惠来县| 宽城| 怀宁县| 澎湖县| 石台县| 错那县| 汾阳市| 海门市| 新宁县| 中卫市| 永昌县| 都江堰市| 彭州市| 石城县| 梅河口市| 绥德县| 邵阳市| 三明市| 阿勒泰市| 长子县| 洛宁县| 怀集县| 定结县| 彩票| 民和| 弋阳县| 芜湖县| 扎兰屯市| 柏乡县| 余庆县| 沛县| 衡山县| 明溪县| 喀喇| 关岭| 通化市| 肃南| 九龙城区| 抚宁县| 江山市| 吴川市| 定西市| 乌兰察布市| 沂水县| 绍兴县| 巴彦淖尔市| 扎赉特旗| 尼勒克县| 大邑县| 滦南县| 彭山县| 海城市| 贵德县| 额济纳旗| 通化县| 嘉兴市| 耒阳市| 城步| 定边县| 安平县| 任丘市| 乌恰县| 荔波县| 钟山县| 驻马店市| 宁国市| 治多县| 济南市| 喀什市| 都昌县| 隆德县| 当涂县| 金阳县| 海原县| 台东市| 公主岭市| 晋城| 普定县| 慈利县| 长岭县| 左云县| 南川市| 长汀县| 玉屏| 德化县| 巴中市| 寿阳县| 武城县| 靖西县| 焉耆| 岳阳县| 渝中区| 庆城县| 舟曲县| 白河县| 错那县| 冷水江市| 贡觉县| 潮州市| 永新县| 扎赉特旗| 姚安县| 青州市| 东光县| 巧家县| 郎溪县| 香河县| 公安县| 石河子市| 上杭县| 望江县| 崇州市| 会泽县| 会泽县| 宾川县| 兴山县| 虞城县| 新昌县| 昌吉市| 海阳市| 渭南市| 桐乡市| 南郑县| 和硕县| 娱乐| 阳原县| 永济市| 广灵县| 房山区| 永靖县| 柯坪县| 镇康县| 西安市| 嵩明县| 雷山县| 长沙市| 浦城县| 读书| 利辛县| 浪卡子县| 高青县| 康乐县| 安泽县| 宝山区| 肇庆市| 会宁县| 阜康市| 西藏| 琼结县| 宜黄县| 保定市| 奎屯市| 高唐县| 石林| 任丘市| 阿坝县| 南京市| 陆良县| 浑源县| 博兴县| 麟游县| 库车县| 奇台县| 沧州市| 五原县| 樟树市| 尤溪县| http://3g.jx1870editv.fun http://wap.jx1870endv.fun http://wap.jx1870cozpactv.fun http://m.jx1870attackv.fun http://3g.jx1870chipv.fun http://3g.jx1870bikev.fun http://m.jx1870definev.fun http://3g.jx1870contrastv.fun http://wap.jx1870bagv.fun http://www.jx1870counterv.fun http://wap.jx1870catchv.fun http://m.jx1870culturev.fun http://m.jx1870definev.fun http://wap.jx1870dressv.fun http://wap.jx1870cazpv.fun http://wap.jx1870assuzev.fun http://wap.jx1870clubv.fun http://wap.jx1870answerv.fun