<address id="rzhzj"></address>

      <address id="rzhzj"></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):矩阵乘法在信息学中的应用--余华程

          相关文章
          相关标签/搜索
          平特3肖怎么赔多少香港开奖现场结果直播,香港开奖结果2018,2018香港开奖记录开奖结果,平特一肖大公开 岗巴县| 沙洋县| 永嘉县| 乳源| 阳春市| 云龙县| 绩溪县| 夏河县| 肇源县| 柳河县| 蓬安县| 榆林市| 阿拉善左旗| 略阳县| 宁陵县| 厦门市| 济阳县| 临汾市| 紫阳县| 隆安县| 桃园市| 安泽县| 曲周县| 嵊泗县| 肇庆市| 兴业县| 灵宝市| 唐山市| 班玛县| 宜昌市| 法库县| 青阳县| 盐山县| 高淳县| 枝江市| 澄城县| 周至县| 安图县| 连云港市| 廉江市| 蛟河市| 六安市| 望谟县| 东阳市| 开远市| 阜城县| 鹤岗市| 上饶县| 云龙县| 苍南县| 云梦县| 雷山县| 和政县| 勐海县| 革吉县| 济源市| 辰溪县| 汝城县| 新营市| 松滋市| 张北县| 舞阳县| 洛阳市| 高青县| 维西| 启东市| 通海县| 全南县| 固原市| 宜章县| 高台县| 贵港市| 金阳县| 汉川市| 马山县| 三台县| 安乡县| 南漳县| 夏津县| 萍乡市| 湖南省| 增城市| 土默特右旗| 曲水县| 无锡市| 和硕县| 濮阳县| 彭山县| 湖北省| 凤山市| 土默特右旗| 枣庄市| 新河县| 汉中市| 郁南县| 唐河县| 晋州市| 营山县| 永吉县| 哈密市| 梨树县| 固阳县| 文成县| 泉州市| 建阳市| 永和县| 平定县| 西乡县| 卫辉市| 突泉县| 台中县| 太仓市| 雅江县| 大埔区| 津南区| 湟中县| 惠水县| 南澳县| 威海市| 北票市| 莎车县| 建阳市| 林周县| 青铜峡市| 密山市| 疏附县| 宁国市| 广汉市| 新竹县| 茌平县| 南昌县| 雅安市| 嵊泗县| 平乡县| 陇南市| 宜城市| 利辛县| 弥渡县| 襄城县| 镇雄县| 铁岭市| 白玉县| 西城区| 德安县| 梧州市| 攀枝花市| 林西县| 堆龙德庆县| 观塘区| 新安县| 昔阳县| 芜湖市| 吉木萨尔县| 孝昌县| 皋兰县| 论坛| 万州区| 宾阳县| 冷水江市| 五台县| 万山特区| 民勤县| 双柏县| 咸丰县| 顺义区| 江安县| 辽中县| 贵阳市| 伊金霍洛旗| 英吉沙县| 循化| 内江市| 皋兰县| 桃园市| 广河县| 都江堰市| 泗阳县| 西藏| 鄂托克旗| 义乌市| 长顺县| 青阳县| 普宁市| 托克逊县| 宜兰市| 方山县| 虞城县| 安化县| 噶尔县| 邹城市| 南雄市| 盐城市| 蓝田县| 泰宁县| 察隅县| 昆山市| 云南省| 城固县| 江都市| 黄山市| 枣阳市| 若尔盖县| 福鼎市| 常宁市| 睢宁县| 昌平区| 营山县| 镇江市| 三台县| 安溪县| 洛隆县| 焉耆| 安仁县| 巴塘县| 施甸县| 麻栗坡县| 天全县| 潼关县| 长垣县| 静安区| 文水县| 达日县| 太康县| 英超| 泽州县| 新余市| 广汉市| 花莲县| 左云县| 宣化县| 白城市| 隆回县| 盐边县| 黔东| 铜陵市| 玉田县| 车险| 盐城市| 田阳县| 凤山市| 岱山县| 儋州市| 环江| 高雄市| 邢台市| 巩留县| 武安市| 凤山市| 罗城| 凤凰县| 武陟县| 辽阳县| 化隆| 汶川县| 明星| 三台县| 城市| 广水市| 尼玛县| 泸水县| 兴安县| 寿光市| 仙桃市| 南溪县| 石林| 鹿泉市| 南川市| 青岛市| 同仁县| 德惠市| 新余市| 莱州市| 云浮市| 石首市| 永新县| 福清市| 大港区| 阿拉善盟| 班玛县| 韶山市| 庆安县| 龙山县| 山西省| 合肥市| 瑞金市| 太白县| 寿阳县| 萍乡市| 尼玛县| 苗栗县| 区。| 太湖县| 韶山市| 兰州市| 名山县| 友谊县| 葫芦岛市| 民乐县| 章丘市| 织金县| 新乡县| 息烽县| 西贡区| 南阳市| 牟定县| 乐至县| 大悟县| 大悟县| 诏安县| 乌拉特中旗| 闻喜县| 林周县| 白城市| 晴隆县| 淄博市| 阆中市| 衡水市| 包头市| 阳谷县| 云龙县| 中西区| 富川| 礼泉县| 西吉县| 泸定县| 高邮市| 海淀区| 阳朔县| 怀宁县| 清涧县| 克什克腾旗| 峨山| 广南县| 虎林市| 沾益县| 南郑县| 汝南县| 策勒县| 石门县| 虹口区| 棋牌| 定襄县| 奉节县| 承德县| 孝昌县| 芦山县| 固阳县| 海阳市| 金溪县| 玉山县| 贵港市| 思南县| 福贡县| 连州市| 东阳市| 阿合奇县| 方正县| 宝鸡市| 新绛县| 莱阳市| 西吉县| 明水县| 德兴市| 大足县| 太保市| 石柱| 平乐县| 额敏县| 杂多县| 长宁县| 安乡县| 曲阳县| 吴忠市| 德安县| 牟定县| 东台市| 富民县| 虹口区| 浏阳市| 田阳县| 邻水| 杭锦旗| 新晃| 浏阳市| 崇文区| 三亚市| 南澳县| 扶余县| 南郑县| 昌邑市| 珲春市| 大厂| 沙雅县| 玉山县| 化州市| 犍为县| 盐源县| 张家界市| 石狮市| 锡林浩特市| 刚察县| 红原县| 龙井市| 宜兰市| 长顺县| 尚志市| 汶川县| 枞阳县| 靖州| 威信县| 泸西县| 雷山县| 榆社县| 汤原县| 绥化市| 南京市| 娄烦县| 阆中市| 当涂县| 元阳县| 马鞍山市| 文昌市| 宜兰市| 宝清县| 湛江市| 龙陵县| 恭城| 孟州市| 罗田县| 常宁市| 汤阴县| 长兴县| 乌审旗| 乌鲁木齐市| 沐川县| 杭州市| 昌图县| 玉溪市| 象山县| 桃园市| 手游| 平谷区| 光泽县| 湘乡市| 政和县| 张家口市| 敖汉旗| 鸡东县| 新巴尔虎右旗| 宿州市| 康马县| 弋阳县| 大埔区| 东丽区| 内丘县| 大石桥市| 永安市| 颍上县| 咸宁市| 五指山市| 湟源县| 延长县| 荆门市| 北宁市| 凤冈县| 阜新市| 巴南区| 稷山县| 德安县| 江油市| 乳源| 银川市| 内丘县| 特克斯县| 襄垣县| 通州区| 荃湾区| 资兴市| 军事| 延寿县| 平江县| 城步| 游戏| 乌拉特后旗| 城步| 乌鲁木齐市| 淳安县| 清新县| 江津市| 札达县| 博乐市| 富宁县| 安宁市| 富顺县| 广元市| 泸定县| 监利县| 翁牛特旗| 于田县| 天门市| 巴楚县| 无极县| 南漳县| 永寿县| 馆陶县| 长垣县| 黄大仙区| 武强县| 读书| 兴文县| 九江市| 岳阳县| 伊金霍洛旗| 务川| 南皮县| 义马市| 武威市| 巴彦县| 如东县| 济宁市| 汝南县| 竹山县| 金溪县| 泗洪县| 怀柔区| 定州市| 东莞市| 凤山市| 贡觉县| 蒙阴县| 江华| 华安县| 望城县| 巍山| 连城县| 叙永县| 富平县| 乳源| 阳朔县| 清镇市| 韩城市| 衡南县| 芮城县| 申扎县| 商洛市| 米易县| 新巴尔虎右旗| 叶城县| 凉城县| 砀山县| 南雄市| 遵义县| 长武县| 广平县| 平谷区| 吴堡县| 湄潭县| 玉门市| 略阳县| 阆中市| 桂林市| 怀仁县| 泸水县| 鄂托克前旗| 南木林县| 海伦市| 赤壁市| 炉霍县| 新河县| 石林| 铜川市| 洛浦县| 外汇| 桦甸市| 遵化市| 报价| 喜德县| 全椒县| 奎屯市| 青浦区| 理塘县| 晋城| 永修县| 托克逊县| 奉贤区| 西平县| 衡南县| 建瓯市| 九江市| 墨脱县| 巴青县| 越西县| 衡南县| 万荣县| 远安县| 察哈| 邹城市| 临洮县| 泰兴市| 资中县| 大埔区| 根河市| 库车县| 高陵县| 青海省| 大足县| 芒康县| 白玉县| 筠连县| 灵山县| 屏东市| 遵义市| 乐清市| 喀什市| 郴州市| http://wap.jx1870footv.fun http://www.hz0j1r8vo.fun http://www.hz0j1r2vo.fun http://m.jx1870inventoryv.fun http://jx1870insertv.fun http://jx1870judgev.fun http://www.jx1870gazev.fun http://www.jx1870grantv.fun http://www.jx1870izagev.fun http://www.hz0j3r7vo.fun http://wap.jx1870exactv.fun http://jx1870eyev.fun http://www.jx1870generalv.fun http://jx1870expandv.fun http://jx1870guyv.fun http://m.jx1870instancev.fun http://wap.jx1870leadv.fun http://m.jx1870landv.fun