没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子札记92(2004)65-84www.elsevier.com/locate/entcs动态最短路径容器多萝西娅·瓦格纳a,1岁,托马斯·威尔海姆a,1岁,克里斯蒂娜·扎罗利亚吉斯b,1岁aInstitutfur?Logik,Komplexit?aundDeduktionssystemeUniversit?atKarlsruhe76128 Karlsruhe,德国b计算机技术学院和计算机工程信息学地址:26500 Patras,Greece摘要使用一组几何容器来加速加权图中的最短路径查询已被证明是处理大型稀疏图的有用工具。给定一个图G=(V,E)的布局,对于每个边(u,v)∈E,我们存储所有节点t∈V的边界盒,其中最短u-t-路以(u,v)开始。 最短路径查询,然后可以回答Dijkstra在本文中,我们提出了新的算法,以及这个问题的动态情况下,边缘权重的实证研究是受变化和边界框必须更新。 我们评估的质量和时间不同的更新策略,保证正确的最短路径,在一个有趣的应用程序,铁路信息系统,使用真实世界的数据从六个欧洲国家。保留字: 几何容器,动态最短路径,图形布局。1介绍在本文中,我们考虑一个典型的应用在交通,特别是在铁路系统中,中央服务器必须回答大量的客户查询,询问他们的最佳行程。上述场景最常见的应用涉及路线规划系统1这项工作得到欧洲联盟人类潜力方案的部分支助,合同号为HPRN-CT-1999-00104(AMORE)。部分工作是在第二位提交人访问帕特雷计算机技术学院时完成的。1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2003.12.02366D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-对于汽车,自行车和徒步旅行者[21,2],或火车和公共汽车等预定车辆[19,11,13,17,10]。其他应用包括空间数据库[18]和网络搜索[3]。这种系统的用户不断地输入他们的请求,以找到他们的“最佳”连接。算法的核心问题,上述问题的基础是一个特殊的情况下,单源最短路径问题的一个给定的有向图与非负边长度相关的布局图,这也提供了。特定的图是相当大的(尽管稀疏),因此空间要求仅在节点数量上是线性的在[17]中,引入了角扇区来加速此类最短路径查询的处理。 在预处理步骤中,确定每个边的角扇区,该角扇区包含使用该边的最短路径存在的所有节点。最短路径查询,然后回答Dijkstra[5]仅限于目标节点在角扇区内的边缘。请注意,这种方法保证找到最短路径,但它需要耗时的所有对最短路径计算作为预处理。[20]中最近的一项实验研究用其他凸几何容器替换了角扇区,并比较了它们对访问节点数量和运行时间的影响。令人惊讶的是,简单的边界框可以产生最快的算法,并且在访问节点的数量上也很有竞争力。这种几何修剪的思想可以扩展到双向搜索[12]。第二组边界框是通过反转所有边并在此修改后的图上再次运行预处理来确定的。如图1所示,我们将此图中具有反向边的边界框称为向前迈出的一步双向搜索检查目标容器,而向后的步骤使用源容器。然而,所有以前的方法都是处理所研究问题的静态版本在本文中,我们关注的是上述场景的动态版本;即,随着时间的推移,图可能会动态变化的情况下,街道可能会被封锁,建造或破坏,火车可能会被添加或取消。在这项工作中,我们提出了新的算法,动态地保持几何容器时,边的重量增加或减少(请注意,这些情况下也包括边缘删除和插入)。我们还报告了一个实验研究与现实世界的铁路数据。我们的实验表明,新的算法是2-3倍的速度比天真的方法从头开始重新计算的几何容器。D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-670S(u,v)T(u,v)不SuvFig. 1.目标容器T(u,v)包含(至少)所有节点t,对于这些节点t,从u到t的最短路径从边(u,v)开始。类似地,源容器S(u,v)包含从s到v的最短路径以边(u,v)结束的所有节点s我们的动态算法可能是针对动态单源最短路径问题的有效算法的第一个结果,而不使用输出复杂性模型-在[ 14,15 ]中引入并在[ 7,8 ]中扩展-通常分析动态单源我们还想提及的是,用于动态全对最短路径问题的现有方法(例如,参见,[6,16,4,1,9]和[22]最近的概述)不适用于维护几何容器,因为它们固有的二次空间要求。在下一节中,给出了动态最短路径容器的正式描述和必要的定义。随后的第3节重新总结了预处理的静态情况。 第4节包含更新几何容器的算法,以减少重量和增加重量。在最后一节的结论之前,在第52定义一 个 有 向 简 单 图 G 是 一 个 对 ( V , E ) , 其 中 V 是 一 个 有 限 集 ,E<$V×V。V的元素是图G的节点,E的元素是图G的边。在本文中,节点的数量|V|用n表示,边的个数|E|用m表示。G中的路径是节点u1,.,uk使得(ui,ui+1)∈E,对所有1 ≤< ik.图的边由函数w:E→R+加权。在路径的长度是其边的权重之和的意义上,我们将该权重表示为边长度。在本文中,我们假设对于所有的对(s,t)∈V×V,从s到t的最短路径是唯一的。22如果需要,可以通过向边权重添加一小部分来实现。68D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-0如果n表示节点数,则一个图(没有多条边)最多可以有n2条边。我们称一个图为稀疏的,如果边的数量m是在O(n),我们称一个图为大的,如果一个人只能在O(n)的内存消耗特别是对于大的稀疏图,n2空间不是可积的.我们假设在欧几里得平面上有一个布局L:V→R2 为了便于记法,我们将确定一个节点v∈V,其位置为L(v)∈R2。在本文中,我们将假设布局是固定的。我们称一个区域为RR2,. (x,y)∈R2:x≤x≤xmax小敏≤y≤yΣMax一个(轴平行的)矩形。给定一组点P<$R2,与P<$R的最小直角R称为P的包围盒。请注意,有限集合P的边界框总是存在的,并且是唯一的。公式2.1设G=(V,E),w:E→R+e与线性方程组相关联L:V→R2.对于边(u,v)∈E的矩形T(u,v)称为(u,v)的(一致)目标容器,如果T(u,v)包含(至少)所有节点t,存在从边(u,v)开始的最短u-t类似地,对于边(u,v)∈E的矩形S(u,v)被称为(u,v)的(一致)源容器S(u,v),如果S(u,v)包含(至少)所有节点s,对于这些节点s,存在以边(u,v)结束的最短s-v注意,另外的节点可以是目标容器的一部分。然而,至少可以通过以e开始的最短路径到达的节点必须在T(e)中。我们将把这些额外的节点称为错误节点,因为它们将我们引向错误的方向。3创建一致的容器现在我们详细描述如何计算所有边(s,x)∈E的T(s,x)。完整的算法如算法1所示(浅灰色线条表示Dijkstra为了确定每个边(s,x)∈E的T(s,x),Dijkstra每个节点s∈V。 我们保持一个节点数组A,其中条目A[v],v∈V,存储G中最短s-v-路的第一条边(s,x)。这可以在一种类似于最短路径树的方法:每次距离标签如果一个节点v通过(u,v)进行调整,则如果u=s,则将A[v]设置为(u,v),否则设置为A[u](第14-17行)。当一个节点u从优先级队列中被移除时,A[u]保持s的出边,从s到u的最短路径从该出边开始。在行18和19中,对于每个边(s,x),所有节点的边界框y∈V,其中A[u]=(s,x)。它是一个一致的目标容器,minD. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-690集装箱输入:gG=(V,E),weightsw:E→R+输出:一致的目标容器0对于所有的s∈V,1setd(u):=∞ for all nodesu∈V2创建空优先级队列Q3在Q中插入源s并设置d(s):= 04当优先级队列不为空时5得到Q中具有最小试探距离的节点u6对于u的所有邻居节点v7setnew-dist:=dist(u)+w(u,v)8ifnew-distdist(v)<9如果d(v)=∞10在Q中插入具有优先级new-dist邻居节点v11其他12将Q中的邻居节点v的优先级设置为new-dist13setdist(v):=new-dist14如果u=s15集合A[v]:=(s,v)16其他17集合A[v]:=A[u]18对于所有节点y∈V\{s}19放大A[y]的边界框以包含y算法1. 集装箱对所有节点运行Dijkstra算法的修改s ∈ V来创建一致的目标容器。(s,x)。总的运行时间是O(n2logn),因为Dijkstra时间复杂度为O(n)一致的源容器可以通过反转边缘并在此修改后的图上运 行DSP-Containers 来 创建 。4更新容器如果更改了边的权重,则必须放大某些源容器和目标容器以保持一致。更准确地说,对于每个新的最短路径,u0,u1,.,uk−1,uk在图中,T(u0,u1)和S(uk−1,uk)必须更新以分别包括uk和u0在本节中,我们将标记变量在更新前使用下标70D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-00zS(x,y)T(x,y)不SXy图二、当边(x,y)的权重增加时,从s开始的新的最短路径的源sto t必须在S old(x,y)之内。4.1增加边权重让我们首先考虑增加边(x,y)∈E的权重的情况。我们将证明,考虑从Sold(x,y)中的顶点开始的路径可以纠正所有源容器(参见图2)。更新本身可以实现通过对所有这些节点运行截断DijkstraLemma4. 1LetG=(V ,E ),w:E→R+b是 一个加权的graph. 如果边(x,y)∈ E的权增加,则在G中产生一条新的最短s-t-路Pnew. 那么,在权重改变之前,(x,y)是最短s-y-路径的最后一条边和最短x-t-路径的第一条边。证据设Pold表示从s到t的旧最短路径。由于权重w(x,y)增加,因此(x,y)∈Pold。设Psy表示从s到y的路径Pold的第一部分。由于最短路径的子路径也是最短路径,Psy是从s到y的最短路径。由于对称的原因,最短x-t-路径的第一边是(x,y)。Q推论4.2LetG=(V,E),w:E→R+beaw eightedgraph. 证明了边(x,y)∈ E的权的增加在G中产生一条新的最短s-t-路Pnew.然后s∈ Sold(x,y)和t ∈ Told(x,y)。因此,为了扩大容器,它需要搜索从Sold(x,y)中的节点开始并以Told(x,y)中的节点结束的最短路径因此,运行限制在Sold(x,y)中的节点上的Node-Containers会固定源容器。然而,有可能进一步截断Dijkstra使用以下Lemma。D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-7100增加边权重(x,y)输入:gG=(V,E),weightsw:E→R+,旧边权重wold(x,y)的一致目标容器,增加边权重wnew(x,y)的一致目标容器输出:增加边权重wnew(x,y)的一致目标容器0对于所有的s∈Sold(x,y),1setd(u):=∞ for all nodesu∈V2创建空优先级队列Q3在Q中插入源s并设置d(s):= 04当优先级队列不为空时5得到Q中具有最小试探距离的节点u5a如果ui=s,则放大T(A[u])以包含u6对于u的所有邻居节点v7setnew-dist:=dist(u)+w(u,v)7a ifnew_dist wnew(x,y)+dold(y,v),则存在从x到v的不包含(u,v)的较短路径。因此在这种情况下可以忽略节点v也Q我们的最终目标是对S new(x,y)中的所有节点运行Dijkstra算法的截断版本截断的实现类似于引理4.3,但这次在比较中使用了边(x,y)的旧74D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-0S(x,y)T(x,y)不SuXyCompute-Tnew(x,y)输入:gG=(V,E),weightsw:E→R+,旧边权重wold(x,y)的一致目标容器,降低的边权重wnew(x,y)输出:一致目标容器Tnew(x,y)0sets:=x1setd(u):=∞ for all nodesu∈V2创建空优先级队列Q3在Q中插入源s并设置d(s):= 04当优先级队列不为空时5得到Q中具有最小试探距离的节点u5a如果ui=s且T(A[u])=(x,y)则放大T((x,y))以包含u6对于u的所有邻居节点v7setnew-dist:=dist(u)+w(u,v)7a ifnew-distnew-dist9如果d(v)=∞10在Q中插入具有优先级new-dist邻居节点v11其他12将Q中的邻居节点v的优先级设置为new-dist13setdist(v):=new-dist14如果u=s15集合A[v]:=(s,v)16其他17集合A[v]:=A[u]算法3. (x,y)的值。Dijkstra算法在减小权重w(x,y)后截断以扩大目标容器T(x,y)。只有当从x到v的距离小于旧距离dold(x,v)时,才访问邻居v。图三.当边(x,y)的权重减小时,对于从s到t的新的最短路径上的所有节点u,dnew(s,u)0。如果Ps,u包含(x,y),则dnew(s,u)=dnew(s,x)+wnew(x,y)+dnew(y,u)否则,从s到u的较短路径将存在,这与Pnew是最短路径的事实相矛盾。由于wold(x,y)> wnew(x,y),引理如下。Q使用引理4.6和4.8,如以下定理所述,递减边权重(x,y)(算法4定理4.9递减边权重(x,y)(算法4)在权重w(x,y)减小之后放大所有目标容器。Q让Pot-AffJ(s):={v∈V:dnew(s,v)new-dist9如果d(v)=∞10在Q中插入具有优先级new-dist邻居节点v11其他12将Q中的邻居节点v的优先级设置为new-dist13setdist(v):=new-dist14如果u=s15集合A[v]:=(s,v)16其他17集合A[v]:=A[u]算法4.递减边权重(x,y)。Dijkstra算法在减少权重w(x,y)后截断以扩大目标容器。如果从s到v的路径短于使用具有旧权重wold(x,y)的edge(x,y)的从s到v的最短路径,则仅访问邻居v。可以类似地处理所有边缘反转。因此,在边减少之后更新源容器和目标容器的完整算法是(i) 对源y运行Dijkstra(ii) 运行Dijkstrad(u,x)对所有u∈V.(iii) 运行Compute-Tnew(x,y)以放大目标容器S(x,y)。(iv) 运行Compute-Tnew(x,y)fory with reversed edges来放大源容器S(x,y)。(v) 运行Decrease-Edge-Weight(x,y)以放大起始容器。(vi) 使用反向边缘运行递减边缘权重(x,y)以放大源D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-77容器.5实验5.1实验装置我们进行了实验研究,以评估我们的算法的性能和质量。更确切地说,审查了以下两个问题• 更新容器需要多少时间(平均)?• 从零开始计算,集装箱与集装箱的差异有多大(请记住,我们不会在更新中缩小容器根据以下标准评价一组容器的质量。定义5.1令C表示我们要检查的容器集,Cref表示从s_crat_c_h计算出的参考容器集。对于bothsets,我们可以在所有容器中设置nod的numbe∈E| {t∈C(e)}|. 两个和都有n·m的界。 因此,我们定义了C的质量为:nm− Σe∈E| {t∈ C(e)}|nm− Σe∈E| {t∈ Cref(e)}|如果C和Cref的容器内错误节点的数量相同,但由于正确节点的数量而有所偏差,则该分数等于1如果C中的所有容器都包含整个图,则C的质量为0。计算研究中的测试图是欧洲不同国家的铁路网络。 这样的图的节点是站,如果存在不间断连接,则在两个站之间存在边缘。边由平均旅行时间加权这些网络的大小在表1中给出。对于每个图,我们将100个随机边的权重增加到一个大值(即,图中所有权重的总和这类似于从图形中删除每次重量变更后,根据第4.1节更新容器。从头开始确定第二组容器以计算质量并比较计算时间。为了评估边权重的下降,我们从100个随机边被设置为大权重的图开始。然后将权重减小到其原始值。再次,将更新的容器与新计算的容器进行比较。除了第4节中的算法外,如果源容器没有维护,我们还评估了更新。在这种情况下,增加边权重(x,y)78D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-和Decrease-Edge-Weight(x,y)不能分别覆盖Sold(x,y)和Snew(x,y)中的所有节点。必须事先确定容器必须更新的节点。根据引理4.1和4.5,对于这样的节点s∈V,最短s-y-路上的最后一条边是(x,y)。这些节点可以通过从y开始的具有反向边的修改的Dijkstra的运行来确定。注意,在这种情况下,只有一半的容器需要维护。这两种变体(有源容器和没有源容器)都查找必须更新关联边的容器的节点。对于这两种变体,我们研究了三种方法来更新边缘的容器• 按照第4节所述放大容器。根据引理4.3和4.8修剪的Dijkstra算法的变体• 从头开始计算容器。结果与从头开始重新计算所有容器略有不同,因为有些容器可能会缩小,但不会更新。然而,在这种情况下,不需要所有节点到x和从y到所有节点的距离,并且可以省略它们的计算• 将容器放大到无穷大(无需任何进一步计算)。如果整个图都在容器内,那么它肯定是一致的。然而,集装箱的质量正在迅速下降。同样,在这种情况下,不需要所有节点到x和从y到所有节点的距离,并且可以省略它们的计算。所有六种变体都是基于LEDA 4.4提供的图形结构在C++中实现的。这些程序是用GCC 3.2编译的,并在一个运行Linux 2.4的2.4GHz IntelXeon5.2计算结果图4和图5描绘了更新后的容器的质量变化。在这两种情况此外,边权重增加的情况类似于边权重减小的情况• 如果容器只是扩大,它们的质量下降的大部分时间,如预期的那样。有趣的是,图越大,其质量越大。如果图包含更多的边,那么单个“坏”容器显然不那么重要。对于大型图表,即使在100次更新后,质量也保持接近1。• 如果容器被简单地设置为无限,情况就大不相同了。经过几次更新后,容器将处于几乎所有节点都在所有容器内的状态。这样的状态显然是不可取的,因为没有节点被Dijkstra算法修剪用于查询。D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-79源容器使用不使用容器更新设为无限扩大从头设为无限扩大从头nMnl409121513312.172.452692.525.02au1660432780931.992.5415512.072.13ch22796015102112.182.5622352.772.48我2399800895522.852.7720952.802.64fr459814937176912.092.8743822.554.25de688418601331601.722.0465682.532.56表1增加边权重后更新容器的平均加速图5中的情况稍微好一些,其中没有使用源容器,因为它们可能已经因为以前的更新而变得非常糟糕。经过几次更新后,产生的容器仍然不可接受• 图中缺少了从零开始重新计算相邻边的容器的情况,因为得到的容器在大多数情况下与新计算的容器一致。换句话说,几乎每次更新后质量都等于1。因此,在实践中,这种更新可以被认为与使用新确定的容器一样好。时间测量值的分析如表1(体重增加)和表2(体重降低)所示。前两列列出了各个图中的节点数和边数。其他六列是指我们研究中检查的六个案例。三种类型的更新(将容器扩大到无穷大,根据引理4.3和4.8扩大容器,从头开始重新计算容器)在维护源容器和不维护源容器的情况下进行了测试(使用反向Dijkstra)。虽然时间的改进是巨大的,但如果容器被扩大到无限大,这些值或多或少是没有意义的,因为质量不可接受。讨论它们并没有真正意义,它们主要是为了完整性而显示的。80D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-0 20 40 60 80 100 0 20 40 60 80 100指数(a) 增加重量后的扩大容器指数(b) 重量减轻后的扩大容器02040 608010002040 6080100指数指数(c) 增加重量后的无限容器(d) 重量递减后的无限容器见图4。如果源容器可用并得到维护,则100次更改边缘重量后容器的质量。在上面的图中,容器由修剪的Dijkstra更新,用于具有改变的权重的边的源容器中的所有节点(参见算法2和4)。 在下面的图中,容器被放大到无限大,用于所有与Sold(x,y)内部节点相关的边。idfrechaunldfirechaunlfdicannrhuelficannrhul质量质量0.00.20.40.60.80.901.00.920.940.960.98质量1.00质量0.00.20.40.60.80.901.00.920.940.960.981.00D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-810 20 40 60 80 100 0 20 40 60 80 100索引索引(a) 增加重量后的扩大容器(b) 重量减轻后的扩大容器02040 608010002040 6080100指数指数(c) 增加重量后的无限容器(d) 重量递减后的无限容器图五.集装箱的质量经过100次边重变化。在上面的图中,对于所有以(x,y)为最短s-y-路径的最后一条边的节点s,容器被修剪后的Dijkstra放大;在下面的图中,对于所有以(x,y)为最短s-y-路径的最后一条边的节点s新闻中nl代伊弗楚nlchaifruenlchau我自由nl质量质量0.00.20.40.60.80.901.00.920.940.960.98质量1.00质量0.00.20.40.60.80.901.00.920.940.960.981.0082D. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-源容器使用不使用容器更新设为无限扩大从头设为无限扩大从头nMnl40912151732.002.702283.433.02au166043277001.902.3814292.102.10ch227960159532.242.5823002.853.09我239980089652.752.6820972.652.94fr45981493719322.212.6642913.133.36de68841860129741.712.2165832.312.76表2降低边权重后更新容器的平均速度一个有趣的观察是,加速因子似乎与图的大小无关。此外,增加和减少边权重的算法的相似性可能解释了在定时方面的相似行为。有源容器和没有源容器的加速值非常相似,但请注意,有源容器的绝对时间值大约是两倍大。因此,维护源容器只有在它们被用于其他用途(例如用于双向搜索)时才是合理的。然而,最有趣的观察是,使用修剪的Dijkstra(列显然,额外的检查和计算所有节点到x和从y的距离超过了修剪的好处。6结论与展望我们已经看到,在几乎所有情况下保持最优性的同时,可以将几何容器的维护速度提高约2-3倍将容器扩大到无穷大会导致级联效应,破坏几何容器的好处。如果容器只是扩大,提出的修剪DijkstraD. Wagner et al. / Electronic Notes in Theoretical Computer Science 92(2004)65-83找到其他的简化方法来保证容器的一致性,但在最优性和运行时间之间实现一个很好的折衷,这将是很有趣的。此外,我们的研究结果表明,它应该是可能的,以获得一个加速因子约为2(可证明)的最佳更新策略。最后,可以在单个算法中组合边权重增加和边引用[1] Ausiello,G.,G. F. Italiano,A. Marchetti-Spaccamela和U. Nanni,Incremental Algorithmsfor Minimum Length Paths,Journal of Algorithms12(1991),pp.615-638[2] 巴雷特角,K.比塞特河Jacob,G. Konjevod和M.经典和当代最短路径问题的道路网络:实施和实验 分 析 的 transansimsruter , 在 : R 。 Méoh ringg and R.Rama n , 编 辑 , ESA2002 ,LNCS2461(2002),pp. 126-138.[3] 巴雷特角,R. Jacob和M. Margaret,Formal-language-constrained path problems,SIAMJournal on Computing30(2000),pp. 809-837URLhttp://epubs.siam.org/sam-bin/dbq/article/33771[4] 德梅特雷斯库角和G. F. Italiano,A new approach to dynamic all pairs shortest paths,in:Proceedings of the thirty-fifth ACM Symposium on Theory of Com
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功