版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 启发式搜索启发式搜索 第二部分第二部分 状态空间搜索状态空间搜索使用评估函数使用评估函数 除了搜索过程不是从开始节点统一向外扩展除了搜索过程不是从开始节点统一向外扩展外,下面描述的搜索过程有点像广度优先搜索,外,下面描述的搜索过程有点像广度优先搜索,不同的是,它会优先顺着有启发性和具有特定信不同的是,它会优先顺着有启发性和具有特定信息的节点搜索下去,这些节点可能是到达目标的息的节点搜索下去,这些节点可能是到达目标的最好路径。我们称这个过程为最好路径。我们称这个过程为最优最优( (best-first)best-first)或启发式搜索或启发式搜索。 其基本思想:其基本思想: 1)
2、1)假定有一个启发式假定有一个启发式( (评估评估) )函数,函数, 可以帮助确定下一个可以帮助确定下一个要扩展的最优节点要扩展的最优节点。我们采用一个约定,即我们采用一个约定,即 的值小表示找的值小表示找到了好的节点(这个函数基于指定问题域的信息,它是状态到了好的节点(这个函数基于指定问题域的信息,它是状态描述的一个实数值函数)。描述的一个实数值函数)。 2) 2)下一个要扩展的节点下一个要扩展的节点n n是是 值最小的节点值最小的节点( (假定节点假定节点扩展产生一个节点的所有后继扩展产生一个节点的所有后继) )。 3) 3)当下一个要扩展的节点是目标节点时过程终止。当下一个要扩展的节点是
3、目标节点时过程终止。 我们常常可以为最优搜索指定好的评估函数。例如在我们常常可以为最优搜索指定好的评估函数。例如在8 8数数码问题中,可以用不在正确位置的数字个数作为状态描述好码问题中,可以用不在正确位置的数字个数作为状态描述好坏的一个度量:坏的一个度量: 位置不正确的数字个数位置不正确的数字个数( (和目标相比和目标相比) )在搜索过程中采用这个启发式函数将产生下图所示的图,每在搜索过程中采用这个启发式函数将产生下图所示的图,每个节点的数值是该节点的值。个节点的数值是该节点的值。 ff f( (n n) )f f( (n n) )f f 这个例子表明,在搜索过程中我们需要偏向这个例子表明,在
4、搜索过程中我们需要偏向有利于回溯到早期路径的搜索。因此我们加了一有利于回溯到早期路径的搜索。因此我们加了一个个“深度因子深度因子”给给 :其中:其中: 是对图中节点是对图中节点n n的的“深度深度”估计估计( (即从即从开始节点到开始节点到n n的最短路径长度的最短路径长度) ), 是对节点是对节点n n的的启发或评估启发或评估。像前面一样,像前面一样,如果如果 = =不正确位置的数字个数不正确位置的数字个数( (和目标相比和目标相比) ), 搜索图中节点搜索图中节点n n的深度,的深度, f f( (n n) )h h( (n n) )g g( (n n) )f f( (n n) )g g(
5、 (n n) )h h(n)h ( (n n) )g g可以得到下图可以得到下图 :两个重要的问题:两个重要的问题: 第一,我们如何为最优搜索决定评估函数?第一,我们如何为最优搜索决定评估函数? 第二,最优搜索的特性是什么?它能找到第二,最优搜索的特性是什么?它能找到到达目标节点的好路径吗?到达目标节点的好路径吗? 我们把上面两个问题放到以后讨论,这里我们把上面两个问题放到以后讨论,这里主要讨论最优搜索的形式表示。主要讨论最优搜索的形式表示。一一个个通通用用的的图图搜搜索索算算法法 GRAPHSEARCHGRAPHSEARCH 1) 1)生成一个仅包含开始节点生成一个仅包含开始节点N N0 0
6、的搜索树的搜索树TrTr。把把N N0 0放在放在一个称为一个称为OPENOPEN的有序列表中。的有序列表中。 2) 2)生成一个初始值为空的列表生成一个初始值为空的列表CLOSEDCLOSED。 3) 3)如果如果OPENOPEN为空,则失败并退出。为空,则失败并退出。 4) 4)选出选出OPENOPEN中的第一个节点,并将它从中的第一个节点,并将它从OPENOPEN中移出,中移出,放入放入CLOSEDCLOSED中,称该节点为中,称该节点为n n。 5) 5)如果如果n n是目标节点,顺着是目标节点,顺着TrTr中的弧从中的弧从n n回溯到回溯到n n0 0找到找到一条路径,获得解决方案,
7、则成功退出一条路径,获得解决方案,则成功退出( (弧在第弧在第6 6步产生步产生) )。 6) 6)扩展节点扩展节点n n,生成生成n n的后继节点集的后继节点集M M(放入放入OPENOPEN)。)。通过在通过在TrTr中建立从中建立从n n到到M M中每个成员的弧生成中每个成员的弧生成n n的后继。的后继。 7) 7)按照任意的模式或启发式方式对列表按照任意的模式或启发式方式对列表OPENOPEN重新排序。重新排序。 8) 8)返回步骤返回步骤3 3。 这个算法可用来执行最优搜索、广度优先这个算法可用来执行最优搜索、广度优先搜索或深度优先搜索。搜索或深度优先搜索。 在广度优先搜索中,新节点
8、只要放在在广度优先搜索中,新节点只要放在OPENOPEN的尾部即可的尾部即可( (先进先出,先进先出, FIFO)FIFO),节点不用重节点不用重排。排。 在深度优先搜索中,新节点放在在深度优先搜索中,新节点放在OPENOPEN的开的开始始( (后进先出,后进先出, LIFO)LIFO)。 在最优在最优( (也叫启发式也叫启发式) )搜索中,按照节点的搜索中,按照节点的启发式方式来重排启发式方式来重排OPENOPEN。 算法算法A A* * 用最优搜索算法详细说明用最优搜索算法详细说明GRAPHSEARCHGRAPHSEARCH。最优搜最优搜索算法根据函数索算法根据函数 的增加值,的增加值,(
9、 (在第在第7 7步步) )重排重排OPENOPEN中中的节点。把的节点。把GRAPHSEACHGRAPHSEACH的这种算法称为的这种算法称为算法算法A A* *。 f 设设h(n)h(n)节点节点n n和目标节点和目标节点( (遍及所有可能的目标遍及所有可能的目标节点以及从节点以及从n n到它们的所有可能路径到它们的所有可能路径) )之间的最小代价之间的最小代价路径的实际代价。路径的实际代价。 设设g(n)g(n)从开始节点从开始节点n n0 0到节点到节点n n的一个最小代价的一个最小代价路径的代价。路径的代价。 那么那么f(n)=g(n)+h(n)f(n)=g(n)+h(n)就是从就是
10、从n n0 0到目标节点并且经到目标节点并且经过节点过节点n n的最小代价路径的代价。注意的最小代价路径的代价。注意f(nf(n0 0) )h(nh(n0 0) )是从是从n n0 0到目标节点的一个到目标节点的一个( (不受限的不受限的) )最小代价路径的最小代价路径的代价。代价。 对每个节点对每个节点n n,设设 ( (启发因子启发因子) )是是h(n)h(n)的某个估计,的某个估计, ( (深度因子深度因子) )是由是由A A* *发现的到节点发现的到节点n n的最小代价路径的的最小代价路径的代价。在算法代价。在算法A A* *中,我们用中,我们用 。注意注意,如果算法,如果算法A A*
11、 *中的中的 恒等于恒等于0 0,就成为相同代价搜索。,就成为相同代价搜索。 )(nh )(ng ghf h 如果要搜索的隐式图不是一棵树(有超过一个动如果要搜索的隐式图不是一棵树(有超过一个动作序列能从开始状态到达相同的环境状态)会怎样呢作序列能从开始状态到达相同的环境状态)会怎样呢? ?引深问题:引深问题:把把GRAPHSEARCHGRAPHSEARCH中的第中的第6 6步改为步改为: 6) 6)扩展节点扩展节点n n,生成后继集合生成后继集合(放入放入OPENOPEN)。)。 n n的双亲不能在的双亲不能在中。通过在中。通过在TrTr中建立从中建立从n n到到中每中每个成员的弧生成个成员
12、的弧生成n n的后继。的后继。 考虑到更长的循环,把第考虑到更长的循环,把第6 6步改为步改为: : 6) 6)扩展节点扩展节点n n,生成后继集合生成后继集合(放入放入OPENOPEN)。)。 n n的祖先不能在的祖先不能在中。通过在中。通过在TrTr中建立从中建立从n n到到中每中每个成员的弧生成个成员的弧生成n n的后继。的后继。 算法算法A A* *: 1)1)生成一个只包含开始节点生成一个只包含开始节点n n0 0的搜索图的搜索图G G,把把n n0 0放在一个放在一个叫叫OPENOPEN的列表上。的列表上。 2) 2)生成一个列表生成一个列表CLOSEDCLOSED,它的初始值为空
13、。它的初始值为空。 3) 3)如果如果OPENOPEN为空,则失败退出。为空,则失败退出。 4) 4)选择选择OPENOPEN上的第一个节点,把它从上的第一个节点,把它从OPENOPEN中移入中移入CLOSEDCLOSED,称该节点为称该节点为n n。 5) 5)如果如果n n是目标节点,顺着是目标节点,顺着G G中,从中,从n n到到n n0 0的指针找到一条的指针找到一条路径,获得解决方案,成功退出路径,获得解决方案,成功退出( (该指针定义了一个搜索树,该指针定义了一个搜索树,在第在第7 7步建立步建立) )。 6) 6)扩展节点扩展节点n n,生成其后继节点集生成其后继节点集M M,在
14、在G G中,中,n n的祖先不能的祖先不能在在M M中。在中。在G G中安置中安置M M的成员,使它们成为的成员,使它们成为n n的后继。的后继。 7) 7)从从M M的每一个不在的每一个不在G G中的成员建立一个指向中的成员建立一个指向n n的指针的指针( (例例如,既不在如,既不在OPENOPEN中,也不在中,也不在CLOSEDCLOSED中中) )。把。把M M的这些成员加到的这些成员加到OPENOPEN中。对中。对M M的每一个已在的每一个已在OPENOPEN中或中或CLOSED CLOSED 中的成员中的成员m m,如如果到目前为止找到的到达果到目前为止找到的到达m m的最好路径通过
15、的最好路径通过n n,就把它的指针就把它的指针指向指向n n。对已在对已在CLOSEDCLOSED中的中的M M的每一个成员,重定向它在的每一个成员,重定向它在G G中中的每一个后继,以使它们顺着到目前为止发现的最好路径指的每一个后继,以使它们顺着到目前为止发现的最好路径指向它们的祖先。向它们的祖先。 8) 8)按递增值,重排按递增值,重排OPEN(OPEN(相同最小相同最小 值可根据搜索树中值可根据搜索树中的最深节点来解决的最深节点来解决) )。 9) 9)返回第返回第3 3步。步。 f f 在第在第7 7步中,如果搜索过程发现一条路径到步中,如果搜索过程发现一条路径到达一个节点的代价比现存
16、的路径代价低,我们就达一个节点的代价比现存的路径代价低,我们就要重定向指向该节点的指针。要重定向指向该节点的指针。 已经在已经在CLOSEDCLOSED中的节点子孙的重定向保存中的节点子孙的重定向保存了后面的搜索结果,但是可能需要指数级的计算了后面的搜索结果,但是可能需要指数级的计算代价。因此,第代价。因此,第7 7步常常不会实现。随着搜索的步常常不会实现。随着搜索的向前推进,其中有些指针最终将会被重定向向前推进,其中有些指针最终将会被重定向。 A A* *的可接纳性的可接纳性 对图和对图和 施加一些条件可以保证应用到图的算法施加一些条件可以保证应用到图的算法A A* *总能找到最小代价路径。
17、总能找到最小代价路径。 图的条件是:图的条件是: 1) 1)图中每个节点的后继是有限的图中每个节点的后继是有限的( (如果有的话如果有的话) ); 2) 2)图中所有弧的代价都大于某个正数图中所有弧的代价都大于某个正数。 的条件是:的条件是: 3) 3)对搜索图中的所有节点对搜索图中的所有节点n n, (n)h(n) (n)h(n)。也就也就是说,决不会超过实际值是说,决不会超过实际值h h的估计。的估计。( (这样的这样的 函数函数有时被称为有时被称为优化概算机优化概算机) ) h h h h h h h h 定理定理9.19.1 如果图和如果图和 具有上述的稳定条件,而且从具有上述的稳定条
18、件,而且从开始节点开始节点n n0 0到目标节点有一条有限代价的路径,那么算到目标节点有一条有限代价的路径,那么算法法A A* *保证终止于到达目标的一条最小代价路径。保证终止于到达目标的一条最小代价路径。 h h 引理引理9.19.1 在在A A* *终止前的每一步,总是有一个节点终止前的每一步,总是有一个节点n n* *,它在它在OPENOPEN上有下面的特性:上有下面的特性: 1) 1)n n* *在到达目标的一条最佳路径上。在到达目标的一条最佳路径上。 2) 2)A A* *已经发现了到达已经发现了到达n n* *的一条最佳路径。的一条最佳路径。 3) 3) ) )f f( (n n)
19、 )( (n nf f0 0* * 任何保证能找到一条到达目标的最佳路径的算法是任何保证能找到一条到达目标的最佳路径的算法是可接纳的可接纳的。 如果如果A A* *的两个版本的两个版本A A1 1* *和和A A2 2* *,其差别在于对所有的非其差别在于对所有的非目标节点,目标节点, ,那么我们就说,那么我们就说A A1 1* *比比A A2 2* *更更灵通灵通(informedinformed)。)。 定理定理9.29.2 如果如果A A2 2* *比比A A1 1* *更灵通,那么对任何有从更灵通,那么对任何有从n n0 0到到目标节点的一条路径的图,在搜索时,被目标节点的一条路径的图
20、,在搜索时,被A A2 2* *扩展过的每扩展过的每一个节点也被一个节点也被A A1 1* *扩展过。扩展过。 可以得出可以得出A A1 1* *扩展的节点至少和扩展的节点至少和A A2 2* *的一样多,这的一样多,这个更灵通的算法个更灵通的算法A A2 2* *也就更有效。因此,我们要寻找尽也就更有效。因此,我们要寻找尽可能接近真实函数可能接近真实函数h h的函数的函数 ( (为了搜索效率为了搜索效率) ),同时又,同时又不能超过它们不能超过它们( (为了可接纳性为了可接纳性) )。 最灵通的算法是最灵通的算法是 h h h h h h2 21 1h hh h 一致性一致性( (或单调或单
21、调) )条件条件 考虑一对节点考虑一对节点( (n ni i,n,nj j) ),n nj j 是是n ni i的一个后继。如果在的一个后继。如果在搜索图中所有的这种节点对都满足下述条件:搜索图中所有的这种节点对都满足下述条件: 其中其中 是从是从 n ni i 到到 n nj j 的代价。的代价。上式也写作:上式也写作:和和 那么我们就说那么我们就说h h服从一致性条件服从一致性条件。 ) )n n, ,c c( (n n) )( (n nh h) )( (n nh hj ji ij ji i) )n n, ,c c( (n n) )( (n nh h) )( (n nh hj ji ij
22、ji i),()()(jiijnncnhnh) )n n, ,c c( (n nj ji i 这个条件陈述了顺着搜索图中的任何路径,到达目标这个条件陈述了顺着搜索图中的任何路径,到达目标的最优的最优( (剩余剩余) )代价的估价的减少不会大于该路径弧代价。代价的估价的减少不会大于该路径弧代价。 也就是说,在考虑了一个弧的已知代价后,启发式函也就是说,在考虑了一个弧的已知代价后,启发式函数在局部是一致的。这种一致性条件可以表示为如图所示数在局部是一致的。这种一致性条件可以表示为如图所示的三角不等式。的三角不等式。 一致性函数也暗示了当搜索树中结点的值远离开始节一致性函数也暗示了当搜索树中结点的值
23、远离开始节点时,它是点时,它是单调非递减单调非递减的。因此,一致性条件的。因此,一致性条件( (对对 ) )也常也常被称为被称为单调条件单调条件( (对对 ) )。 h h f f 定理定理9.39.3 如果如果 上的一致性条件被满足,那么当上的一致性条件被满足,那么当A A* *扩展节点扩展节点n n时,它已经找到了到达节点时,它已经找到了到达节点n n的一条最优路径。的一条最优路径。 h h 满足一致性条件时,可以为满足一致性条件时,可以为A A* *的可接纳性给出一个简单直观的论的可接纳性给出一个简单直观的论证证。它是这样的:。它是这样的: 1) 1) 的单调性暗示了搜索顺着的单调性暗示
24、了搜索顺着 值增大的边缘向外扩展。值增大的边缘向外扩展。 2) 2) 因此,被选择的第一个目标节点就是有最小值的一个目标节因此,被选择的第一个目标节点就是有最小值的一个目标节点。点。 3) 3) 对任何目标节点对任何目标节点n ng g, ( (这里,我们用了这样的这里,我们用了这样的事实,如果事实,如果 函数是一致的,它也将绝不会比真正的函数是一致的,它也将绝不会比真正的h h函数大函数大。 4) 4) 因此,第一个被选择的目标节点将是有最小因此,第一个被选择的目标节点将是有最小 值的目标节点。值的目标节点。 5) 5) 作为定理作为定理9.39.3的一个结论,无论何时的一个结论,无论何时(
25、 (特别地特别地) )当一个目标节点当一个目标节点n ng g被选择扩展时,我们已找到了到达那个目标节点的一个最佳路径。被选择扩展时,我们已找到了到达那个目标节点的一个最佳路径。即即 。 6) 6) 这样,第一个被选择的目标节点将是算法发现的最佳路径的这样,第一个被选择的目标节点将是算法发现的最佳路径的目标节点。目标节点。 f f f f) )( (n ng g) )( (n nf fg gg g h h g g) )( (n ng g) )( (n ng gg gg g 迭代加深的迭代加深的A A* * 广度优先搜索的存储需求会随着搜索空间中目标深广度优先搜索的存储需求会随着搜索空间中目标深
26、度的增加呈指数递增。尽管好的启发式搜索减少了分枝度的增加呈指数递增。尽管好的启发式搜索减少了分枝因子,但启发式搜索还是有如上一样的缺点。因子,但启发式搜索还是有如上一样的缺点。 在第在第8 8章介绍的迭代加深搜索,不但允许我们找到最章介绍的迭代加深搜索,不但允许我们找到最小代价路径,而且存储需求随着深度增加呈线性增长。小代价路径,而且存储需求随着深度增加呈线性增长。迭代加深迭代加深A A* *(ID(ID* *) )方法能获得同启发式搜索相似的好处。方法能获得同启发式搜索相似的好处。通过使用通过使用IDAIDA* * 的并行实现能获得更高的效率的并行实现能获得更高的效率。 该方法同普通迭代加深
27、方法工作相似,我们执行一系该方法同普通迭代加深方法工作相似,我们执行一系列深度优先搜索。在第一次搜索中,建立一个列深度优先搜索。在第一次搜索中,建立一个“截止代截止代价价”,它等于,它等于 ,n n0 0是开始节点。是开始节点。 我们所知道的就是到达目标的最佳路径代价可能等于我们所知道的就是到达目标的最佳路径代价可能等于这个截断值这个截断值( (如果如果 ,上述语句就是肯定的;因,上述语句就是肯定的;因为为 ,它不可能较小,它不可能较小) )。 我们在深度优先方式下扩展节点,无论何时,只要扩我们在深度优先方式下扩展节点,无论何时,只要扩展节点的一个后继的展节点的一个后继的 值超过截断值,就进行
28、回溯。如果值超过截断值,就进行回溯。如果该深度优先搜索终止在一个目标节点,显然它已经找到了该深度优先搜索终止在一个目标节点,显然它已经找到了到达目标的一个最小代价路径。否则,一个最优路径的代到达目标的一个最小代价路径。否则,一个最优路径的代价一定比这个截断值要大。因此,我们增大截断值,开始价一定比这个截断值要大。因此,我们增大截断值,开始另一次深度优先搜索。另一次深度优先搜索。 ) )(n(nh h) )(n(nh h) )(n(ng g) )(n(nf f0 00 00 00 0 ) )(n(nh h) )h(nh(n0 00 0) )( (n nh h) )h h( (n n0 00 0
29、f f递归最优搜索递归最优搜索 递归最优搜索递归最优搜索( (RBFS)RBFS)方法比方法比IDAIDA* *用到的存储稍微多用到的存储稍微多一点,但是比一点,但是比IDAIDA* *产生的节点少。当扩展一个节点产生的节点少。当扩展一个节点n n时,时, RBFSRBFS计算计算n n的后继的的后继的 值,并且重新计算搜索树上值,并且重新计算搜索树上n n和和n n的祖先的的祖先的 的值。这个重新计算的过程叫做的值。这个重新计算的过程叫做值的回溯值的回溯( (backing up)backing up)。 f f f f 回溯是这样进行的:刚刚扩展的节点的后继的回溯回溯是这样进行的:刚刚扩展
30、的节点的后继的回溯值就是该后继的值就是该后继的 值。搜索树上带有后继值。搜索树上带有后继m mi i的节点的节点m m的的回溯值是回溯值是 f f) )( (m mf fm mi in n( (m m) )f fi im mi i 其中其中 ( (m mi i) )是节点是节点m mi i的回溯值。的回溯值。 f f 如果节点如果节点n(n(它刚被扩展它刚被扩展) )的后继之一在所有的后继之一在所有的的OPENOPEN点中有最小点中有最小 值,它被依次扩展一直进值,它被依次扩展一直进行下去。但是如果行下去。但是如果OPENOPEN中的其他节点中的其他节点nn它它不是不是n n的后继,有最小的的
31、后继,有最小的 值。在这种情况下,值。在这种情况下,算法回溯到节点算法回溯到节点nn和和n n的最低共同祖先节点的最低共同祖先节点k k。让节点让节点k kn n是到节点是到节点n n的路径上节点的路径上节点k k的后继。的后继。RBFSRBFS移去以移去以k kn n为根的子树,于是为根的子树,于是k kn n变成了其变成了其 值等于值等于它的回溯值的一个它的回溯值的一个OPENOPEN节点,搜索继续在有最节点,搜索继续在有最低低 值的值的OPENOPEN节点下进行。节点下进行。 f f f f f f f f启发式函数和搜索效率启发式函数和搜索效率 在决定在决定A A* *效率时,启发式函
32、数的选择是全关重要的。效率时,启发式函数的选择是全关重要的。用用 保证了可接纳性,但生成了相同代价搜索,因保证了可接纳性,但生成了相同代价搜索,因而效率不高。而效率不高。 等于上较低约束的最高可能值,不但等于上较低约束的最高可能值,不但可以扩展较少的节点,还能维持可接纳性可以扩展较少的节点,还能维持可接纳性。 0 0h h h h 在选择在选择 函数时,我们必须考虑计算函数时,我们必须考虑计算 本身的计本身的计算量。常常是在精确算量。常常是在精确 函数和其计算代价之间取函数和其计算代价之间取折衷折衷值值。 h h h h h h 经常,通过使用一些非低约束的函数经常,通过使用一些非低约束的函数
33、 以可接纳以可接纳性为代价来换取搜索效率。也就是说,一个可能不是最性为代价来换取搜索效率。也就是说,一个可能不是最佳的路径比最佳路径更容易找到,一个非较低约束的佳的路径比最佳路径更容易找到,一个非较低约束的 函数可能比一个较低约束的函数容易计算。在这些情况函数可能比一个较低约束的函数容易计算。在这些情况下,效率可能会成倍地增加下,效率可能会成倍地增加因为被扩展的节点会被因为被扩展的节点会被减少减少( (虽然以可接纳性为代价虽然以可接纳性为代价) )并且计算量也被减少。并且计算量也被减少。 h h h h 另一种可能性是修改评估函数中另一种可能性是修改评估函数中 和和 的权值,的权值,即用即用
34、,w w是一个正数。非常大的是一个正数。非常大的w w值会过分强值会过分强调启发式部分,而非常小的调启发式部分,而非常小的w w会突出搜索的广度优先特性。会突出搜索的广度优先特性。 实验结果表明如果实验结果表明如果w w值与搜索树上节点深度成反比,值与搜索树上节点深度成反比,常会提高搜索效率。常会提高搜索效率。 在浅深度时,搜索主要依赖启发式部分,然而随着深在浅深度时,搜索主要依赖启发式部分,然而随着深度的增加,为了确保最终会发现一些到达目标的路径,搜度的增加,为了确保最终会发现一些到达目标的路径,搜索会逐渐以广度优先为主。索会逐渐以广度优先为主。 g g h h h hw wg gf f28316475 搜索效率的一个度量是有效分枝因子搜索效率的一个度量是有效分枝因子B B,它描述了它描述了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度收银审核员通关考试题库含完整答案详解(典优)
- 2024-2025学年度中医执业医师试题预测试卷及参考答案详解【模拟题】
- 2024-2025学年度化验员考前冲刺练习题附答案详解【模拟题】
- 2024-2025学年度火电电力职业鉴定考前冲刺测试卷【有一套】附答案详解
- 2024-2025学年医师定期考核题库附答案详解【培优B卷】
- 2024-2025学年医学检验(士)练习题附答案详解(培优B卷)
- 2024-2025学年度粮油食品检验人员自我提分评估【典型题】附答案详解
- 智能网联汽车概论 教案 2.2 中国智能网联汽车国家标准体系
- 2024-2025学年度反射疗法师3级考前冲刺练习附参考答案详解(综合题)
- 2024-2025学年度执业药师过关检测试卷及完整答案详解(有一套)
- 花卉大棚种植转让合同范本
- 2025年中国质量协会质量专业能力考试(六西格玛绿带)历年参考题库含答案详解(5套)
- 儿童呼吸道合胞病毒性肺炎
- 春耕劳动主题班会课件
- 铁路设计定型管理办法
- 煤矿皮带运输管理办法
- 医院医务人员个人意识形态工作存在问题及整改措施
- 2025年苏州市中考物理试卷真题(含答案解析)
- 中国消防检测系统行业市场发展前瞻及投资战略研究报告2025-2028版
- 村集体林地管理制度
- 保险公司报价管理制度
评论
0/150
提交评论