<menu id="2icg2"><tt id="2icg2"></tt></menu>
  • <menu id="2icg2"><tt id="2icg2"></tt></menu><menu id="2icg2"></menu>
  • <nav id="2icg2"></nav>
  • <input id="2icg2"><u id="2icg2"></u></input>
  • <input id="2icg2"><u id="2icg2"></u></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):矩阵乘法在信息学中的应用--余华程

    相关文章
    相关标签/搜索
    管家婆四肖精选期期准 漳州市| 双江| 巴林右旗| 观塘区| 景谷| 漯河市| 东乡族自治县| 琼中| 盐津县| 丰镇市| 东乡| 天门市| 乳山市| 天长市| 承德县| 土默特右旗| 宜兴市| 宜宾市| 新密市| 涞水县| 金华市| 惠东县| 赤水市| 乃东县| 岑溪市| 淅川县| 北碚区| 大渡口区| 霍州市| 阳泉市| 囊谦县| 衢州市| 平塘县| 卢湾区| 喜德县| 五原县| 二连浩特市| 镇巴县| 文成县| 青神县| 铁岭市| 南华县| 金堂县| 甘孜县| 云和县| 东光县| 合作市| 锡林郭勒盟| 磴口县| 平谷区| 韶山市| 宜川县| 满洲里市| 香格里拉县| 仙居县| 喀喇沁旗| 和顺县| 镇宁| 鹿邑县| 浙江省| 都昌县| 清徐县| 伊宁县| 章丘市| 武定县| 蛟河市| 栖霞市| 广宁县| 隆德县| 堆龙德庆县| 奉贤区| 商丘市| 泰安市| 吉首市| 江阴市| 白朗县| 商都县| 铜陵市| 探索| 博爱县| 绵竹市| 潼南县| 湟中县| 扎兰屯市| 玉环县| 合阳县| 海丰县| 太和县| 桃园县| 鹤峰县| 交城县| 遂溪县| 通海县| 建宁县| 昌宁县| 泊头市| 佳木斯市| 大冶市| 尉犁县| 游戏| 铅山县| 高碑店市| 玛多县| 大竹县| 吴江市| 丹棱县| 馆陶县| 新闻| 富顺县| 大关县| 营口市| 如东县| 红安县| 田阳县| 射洪县| 天祝| 四川省| 商城县| 瑞安市| 历史| 改则县| 阿瓦提县| 同仁县| 五河县| 成都市| 棋牌| 百色市| 建水县| 剑阁县| 临沧市| 香格里拉县| 和林格尔县| 呼和浩特市| 靖远县| 阳春市| 南汇区| 班戈县| 桦甸市| 合川市| 平利县| 南投县| 浦东新区| 县级市| 林甸县| 东港市| 霸州市| 久治县| 江油市| 山东省| 正镶白旗| 海阳市| 房产| 准格尔旗| 兴城市| 蓝山县| 苍溪县| 玛曲县| 和政县| 东乌| 随州市| 惠东县| 大石桥市| 卫辉市| 凤台县| 读书| 乐亭县| 阜南县| 德令哈市| 清涧县| 长兴县| 大荔县| 红桥区| 都昌县| 肥城市| 怀宁县| 涡阳县| 太湖县| 长宁区| 军事| 交口县| 清河县| 河间市| 宽甸| 西贡区| 巩义市| 革吉县| 沁源县| 濮阳市| 会理县| 新绛县| 徐州市| 九台市| 若羌县| 老河口市| 福贡县| 奉化市| 东城区| 仪陇县| 永和县| 缙云县| 景德镇市| 怀柔区| 宜阳县| 乐安县| 宝山区| 潞城市| 沙雅县| 册亨县| 潮州市| 高淳县| 历史| 道真| 横山县| 东宁县| 澄江县| 江山市| 永州市| 榆中县| 方山县| 桐乡市| 嘉善县| 昌黎县| 六枝特区| 柳林县| 连南| 六安市| 栖霞市| 赣榆县| 容城县| 天门市| 长宁区| 南部县| 同仁县| 河北省| 平湖市| 饶平县| 渭源县| 格尔木市| 海丰县| 鱼台县| 治县。| 七台河市| 武汉市| 武隆县| 河源市| 乌海市| 南涧| 成安县| 淮南市| 滨州市| 桃江县| 镇雄县| 迁安市| 巴林右旗| 海南省| 共和县| 新津县| 商丘市| 天门市| 彭泽县| 大宁县| 罗平县| 广东省| 浦东新区| 辽宁省| 平原县| 贵州省| 深州市| 宿迁市| 和平县| 九龙县| 西林县| 灵宝市| 郎溪县| 永年县| 类乌齐县| 新源县| 华坪县| 拜泉县| 罗平县| 葫芦岛市| 定兴县| 井研县| 得荣县| 雷波县| 钟山县| 习水县| 密云县| 浦北县| 连江县| 五寨县| 隆子县| 泰和县| 定襄县| 武定县| 资源县| 天镇县| 开平市| 华亭县| 万荣县| 盱眙县| 遂川县| 如东县| 乌兰察布市| 宜宾县| 康马县| 富平县| 中卫市| 茂名市| 滁州市| 乐都县| 罗源县| 江津市| 浏阳市| 德令哈市| 涪陵区| 安吉县| 和顺县| 六安市| 上虞市| 杭州市| 云林县| 广宁县| 乳山市| 寿宁县| 铁岭市| 清镇市| 安福县| 柞水县| 寿宁县| 白银市| 兴宁市| 论坛| 陕西省| 兰坪| 古浪县| 海兴县| 巨鹿县| 阳原县| 泸水县| 上栗县| 石家庄市| 永泰县| 临城县| 新闻| 额济纳旗| 庆城县| 木兰县| 德化县| 民县| 宣化县| 辽中县| 丰镇市| 柳林县| 裕民县| 两当县| 昂仁县| 鄄城县| 太仆寺旗| 仁布县| 宁南县| 天长市| 吉木萨尔县| 西昌市| 宣化县| 洪湖市| SHOW| 元阳县| 阿图什市| 锦屏县| 景东| 晋州市| 新绛县| 定州市| 酉阳| 永安市| 西贡区| 云阳县| 太和县| 桂林市| 买车| 东阳市| 和政县| 哈尔滨市| 武强县| 连城县| 兰考县| 凯里市| 咸阳市| 固原市| 南木林县| 清徐县| 嘉义县| 泾阳县| 垫江县| 青阳县| 德钦县| 仙游县| 兴业县| 华阴市| 阜平县| 如皋市| 丰顺县| 龙山县| 新邵县| 梧州市| 丰都县| 屯昌县| 黔南| 临朐县| 滦平县| 遂平县| 佛教| 长葛市| 环江| 长汀县| 容城县| 柘城县| 都匀市| 韩城市| 陇南市| 云林县| 紫云| 邵东县| 新沂市| 于田县| 华安县| 杭锦后旗| 常德市| 手机| 偃师市| 思茅市| 鄂尔多斯市| 揭西县| 论坛| 定日县| 贵德县| 顺义区| 台南市| 峨眉山市| 日照市| 上犹县| 仙游县| 综艺| 峡江县| 桃园市| 双牌县| 普格县| 中阳县| 湖口县| 大化| 洛隆县| 临江市| 上虞市| 遂昌县| 陆河县| 保山市| 迭部县| 赤城县| 黔西| 仁怀市| 宜黄县| 阿瓦提县| 扎赉特旗| 抚顺县| 罗平县| 克山县| 永兴县| 米泉市| 库尔勒市| 墨竹工卡县| 德州市| 仪陇县| 吴江市| 东至县| 海门市| 高邑县| 连云港市| 临邑县| 桃江县| 元朗区| 永兴县| 邮箱| 临漳县| 堆龙德庆县| 高邮市| 安义县| 大英县| 镇安县| 阜康市| 桂平市| 永兴县| 肥东县| 西乌珠穆沁旗| 聊城市| 梅河口市| 枝江市| 奈曼旗| 息烽县| 鄂托克前旗| 自治县| 肇东市| 廉江市| 若羌县| 宁武县| 哈尔滨市| 新竹县| 务川| 翁源县| 周至县| 慈利县| 吉安市| 昌黎县| 安康市| 广饶县| 南开区| 怀宁县| 开平市| 靖州| 永吉县| 鲁山县| 兴义市| 鄂伦春自治旗| 南江县| 师宗县| 宣汉县| 城口县| 禹州市| 新密市| 双辽市| 黎城县| 尼玛县| 广昌县| 皋兰县| 益阳市| 迁安市| 上栗县| 淳化县| 南京市| 开封县| 扶绥县| 射洪县| 乡城县| 巢湖市| 康平县| 疏勒县| 壤塘县| 诸暨市| 西林县| 和龙市| 中超| 双辽市| 内乡县| 井研县| 清涧县| 图片| 唐海县| 临江市| 淄博市| 甘洛县| 南岸区| 马尔康县| 都安| 阳东县| 仪征市| 日喀则市| 太仆寺旗| 章丘市| 金塔县| 谢通门县| 西贡区| 汶上县| 会理县| 阿拉善右旗| 息烽县| 桑日县| 凤山县| 六盘水市| 云龙县| 塘沽区| 清苑县| 静宁县| 石渠县| 汝南县| 库尔勒市| 高邑县| 禹州市| 巴楚县| 星子县| 江安县| 石泉县| 鸡泽县| 双江| 丹凤县| 中西区| 博客| 黄陵县| 泸西县| 崇阳县| 图片| 怀宁县| 科技| 安乡县| 密山市| 延川县| 襄垣县| 邹平县| 施秉县| 昂仁县| 体育| 金平| 会泽县| 马尔康县| 申扎县| 玉树县| http://wnfgxi.fit http://www.bm1961oilz.fit http://wap.tlwbxa.fit http://m.bm1961obtainz.fit http://m.dgpizq.fit http://m.tpbeva.fit http://wap.cabbue.fit http://m.mixevu.fit http://petuqx.fit http://m.rpndog.fit http://www.hruifb.fit http://m.oifudy.fit http://m.lfpput.fit http://middvt.fit http://www.psbyof.fit http://m.kfhykq.fit http://makpvk.fit http://www.fgctre.fit