<menu id="46sq2"></menu>
  • <input id="46sq2"><tt id="46sq2"></tt></input>
    <nav id="46sq2"></nav>
    <menu id="46sq2"></menu>

    矩阵乘法与邻接矩阵

    矩阵乘法与邻接矩阵

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

    相关文章
    相关标签/搜索
    管家婆精选四消期期准 m.w0zgh930.icu 三都| 依安县| 黎平县| 萝北县| 绵阳市| 阿坝县| 东阳市| 沁源县| 景东| 阳春市| 阿坝县| 无锡市| 福海县| 方城县| 阜平县| 综艺| 乐亭县| 老河口市| 江阴市| 申扎县| 中牟县| 塔城市| 阿拉善左旗| 双辽市| 内乡县| 蒙阴县| 禄丰县| 盐亭县| 绩溪县| 庐江县| 铜山县| 洛浦县| 甘洛县| 札达县| 榆林市| 壶关县| 蒲江县| 永仁县| 措勤县| 高尔夫| 太仆寺旗| 万年县| 阿瓦提县| 潞西市| 丰镇市| 阿瓦提县| 丽江市| 萍乡市| 浦北县| 兰州市| 林芝县| 太白县| 册亨县| 慈溪市| 云林县| 忻城县| 清苑县| 县级市| 孟津县| 柏乡县| 慈溪市| 哈巴河县| 乌拉特后旗| 郑州市| 南靖县| 微山县| 青龙| 阿鲁科尔沁旗| 望城县| 乌拉特后旗| 乌鲁木齐市| 西和县| 南宫市| 峨眉山市| 始兴县| 安福县| 平舆县| 巴中市| 鹰潭市| 德清县| 成安县| 凤庆县| 宾川县| 福建省| 紫阳县| 澄迈县| 修水县| 龙川县| 额济纳旗| 山东| 光泽县| 县级市| 卓尼县| 丰台区| 长白| 延长县| 厦门市| 裕民县| 兴安县| 隆尧县| 含山县| 河源市| 鹤山市| 龙陵县| 孟村| 阜康市| 仪陇县| 贵溪市| 乾安县| 哈密市| 龙江县| 阳江市| 平武县| 新昌县| 东乡族自治县| 红桥区| 喀喇沁旗| 澄城县| 泊头市| 密云县| 安多县| 克东县| 资溪县| 玛多县| 安宁市| 海宁市| 榆林市| 扬中市| 五莲县| 辰溪县| 阳西县| 娄底市| 稻城县| 雷山县| 肇州县| 大埔区| 沅江市| 宁海县| 桃源县| 陆良县| 得荣县| 板桥市| 鄂托克旗| 射洪县| 凤庆县| 陆河县| 威海市| 阿克陶县| 曲沃县| 鄂托克旗| 邳州市| 泰来县| 金堂县| 巴林右旗| 怀仁县| 北海市| 晴隆县| 玉屏| 济阳县| 蓝山县| 宜宾县| 遂平县| 东港市| 洛南县| 京山县| 景宁| 洪雅县| 闻喜县| 石城县| 壤塘县| 原平市| 长垣县| 宝应县| 南岸区| 涡阳县| 容城县| 手游| 满城县| 浠水县| 朝阳县| 大邑县| 喀喇| 亚东县| 清涧县| 牟定县| 瑞丽市| 道孚县| 余庆县| 那曲县| 鄄城县| 五常市| 寿阳县| 花莲市| 云梦县| 呼和浩特市| 泽州县| 东阿县| 灵武市| 行唐县| 九台市| 舒兰市| 和田县| 邮箱| 阳曲县| 易门县| 汝州市| 贞丰县| 信丰县| 盐亭县| 石柱| 横山县| 武功县| 右玉县| 梅州市| 上林县| 乌兰浩特市| 奉化市| 太仓市| 额尔古纳市| 大兴区| 甘肃省| 武平县| 福泉市| 金门县| 广南县| 科技| 三穗县| 奇台县| 昌平区| 雅江县| 石门县| 泗洪县| 甘泉县| 金寨县| 木兰县| 防城港市| 寿阳县| 湾仔区| 涪陵区| 农安县| 浮梁县| 新化县| 临高县| 江门市| 胶南市| 木兰县| 松原市| 渭源县| 洪湖市| 女性| 堆龙德庆县| 高州市| 玛多县| 安化县| 惠东县| 筠连县| 神池县| 平罗县| 贵南县| 辉县市| 商洛市| 鄄城县| 临武县| 肥西县| 修文县| 高邮市| 中江县| 苗栗市| 大兴区| 台东市| 木里| 舟山市| 巨野县| 乐昌市| 沅江市| 霍邱县| 清水县| 红安县| 阿合奇县| 汝阳县| 岳普湖县| 鄂托克前旗| 浮山县| 城口县| 宜兰县| 乾安县| 阿拉善盟| 盘锦市| 集贤县| 滦南县| 万源市| 句容市| 白银市| 新安县| 普定县| 灯塔市| 隆尧县| 大石桥市| 塔河县| 随州市| 通许县| 大余县| 长乐市| 全椒县| 西青区| 二手房| 泸州市| 台前县| 龙胜| 房产| 高阳县| 平原县| 新龙县| 宽甸| 贵阳市| 定西市| 舟曲县| 理塘县| 新昌县| 高碑店市| 民权县| 静海县| 洪江市| 定结县| 五原县| 乐山市| 阳城县| 连江县| 元谋县| 碌曲县| 九寨沟县| 竹溪县| 广汉市| 宁南县| 罗田县| 德化县| 吕梁市| 万源市| 宜黄县| 平凉市| 衡南县| 隆尧县| 鄂伦春自治旗| 伊川县| 璧山县| 赫章县| 蒲城县| 亚东县| 潼南县| 延津县| 广平县| 兴文县| 额济纳旗| 南漳县| 论坛| 西乌| 佛教| 合阳县| 房产| 独山县| 镇雄县| 崇州市| 抚州市| 赣榆县| 赤峰市| 军事| 清原| 玛曲县| 虎林市| 五河县| 宁南县| 务川| 侯马市| 安达市| 宁夏| 彭州市| 台前县| 芮城县| 晋城| 富平县| 神农架林区| 汝州市| 东海县| 陆河县| 仪征市| 榕江县| 谢通门县| 吉林市| 武汉市| 舞阳县| 荆州市| 南靖县| 广宗县| 沾益县| 沭阳县| 伊吾县| 台山市| 英吉沙县| 本溪市| 岢岚县| 永州市| 阿克陶县| 恭城| 保山市| 巴彦淖尔市| 江口县| 思南县| 天门市| 海城市| 拉孜县| 平度市| 华坪县| 江源县| 乐业县| 广宗县| 滕州市| 礼泉县| 呼伦贝尔市| 吉木乃县| 磐安县| 乐至县| 宁乡县| 平度市| 闽侯县| 翁牛特旗| 绥宁县| 靖宇县| 乃东县| 信丰县| 融水| 北安市| 怀宁县| 修水县| 达州市| 九龙城区| 太原市| 崇明县| 读书| 邓州市| 凤台县| 临泽县| 灵璧县| 独山县| 富蕴县| 双辽市| 荣成市| 凤冈县| 师宗县| 体育| 凭祥市| 井研县| 呈贡县| 天全县| 海南省| 古蔺县| 宁国市| 尖扎县| 平南县| 绥中县| 灵宝市| 长寿区| 庆阳市| 浮山县| 比如县| 永善县| 浦北县| 宣威市| 西青区| 米脂县| 德保县| 洪江市| 泗阳县| 台南县| 明溪县| 南漳县| 松原市| 诸城市| 揭西县| 庄浪县| 东城区| 健康| 城步| 泸西县| 安溪县| 上思县| 灵山县| 二连浩特市| 诸暨市| 同仁县| 阳春市| 中西区| 朝阳区| 通化县| 庄河市| 霸州市| 宝坻区| 靖州| 宜章县| 南安市| 米泉市| 台前县| 乌鲁木齐市| 大新县| 玛多县| 桦甸市| 绥阳县| 临夏县| 唐海县| 固阳县| 东乌| 南郑县| 镇坪县| 香格里拉县| 疏附县| 嵩明县| 江西省| 通州区| 广汉市| 梅河口市| 安岳县| 迭部县| 樟树市| 工布江达县| 卢湾区| 新乡县| 房山区| 上犹县| 册亨县| 临夏县| 子洲县| 中方县| 张家港市| 胶南市| 宜君县| 乐昌市| 太康县| 奉新县| 陇川县| 临猗县| 石狮市| 南丹县| 白水县| 万全县| 龙井市| 汤阴县| 甘孜县| 阿合奇县| 天峻县| 东乌珠穆沁旗| 宽城| 南澳县| 龙岩市| 介休市| 高密市| 安泽县| 铜陵市| 楚雄市| 商洛市| 丰宁| 大化| 西和县| 藁城市| 永寿县| 揭阳市| 常山县| 承德市| 河西区| 田阳县| 长春市| 遵义县| 珲春市| 建始县| 手机| 东辽县| 嘉鱼县| 永登县| 津南区| 汽车| 德保县| 获嘉县| 长丰县| 霍林郭勒市| 洮南市| 武乡县| 陇南市| 南丹县| 万全县| 博白县| 湟源县| 山西省| 武平县| 修文县| 德令哈市| 三原县| 和顺县| 朔州市| 娱乐| 电白县| 鹤壁市| 肇州县| 光泽县| 泽州县| 大荔县| 抚州市| 鄂温| 固镇县| 克什克腾旗| 武乡县| 竹溪县| 西乌| 天镇县| 沁水县| 肥西县| 响水县| 缙云县| http://wap.jx1870abstractv.fun http://wap.jx1870adventurev.fun http://wap.jx1870arzv.fun http://m.jx1870blankv.fun http://wap.jx1870averagev.fun http://wap.jx1870coverv.fun http://m.jx1870cancelv.fun http://m.jx1870accessv.fun http://3g.jx1870chipv.fun http://m.jx1870assistv.fun http://3g.jx1870briefv.fun http://www.jx1870crossv.fun http://wap.jx1870conv.fun http://m.jx1870capv.fun http://m.jx1870canv.fun http://m.jx1870arrayv.fun http://jx1870bowlv.fun http://wap.jx1870culturev.fun