当前位置:文档之家› 分枝定界算法应用小结

分枝定界算法应用小结

分枝定界算法应用小结
分枝定界算法应用小结

分枝定界算法应用小结

摘要

本文首先总结了分枝定界算法的总体内容。

然后,我们列举了6个分枝定界算法应用的实例,它们分别:(1)基于分枝限界法的公交换乘算法设计;(2)分枝定界算法用于有机混合物的分析;(3)求解最大割问题的分枝定界算法;(4)弱有效集上凹函数极大问题的分枝定界算法;(5)分枝定界算法在食品分析中的应用—水果中有机酸的同时定性定量分析;(6)基于分枝定界法的环肋圆柱壳优化研究。

我们得知,分枝定界算法是一种常用算法,属于枚举算法,能够系统地搜索解空间,分枝定界算法的应用非常广泛。

一、分枝定界算法总述

分枝定界算法也可以叫做分支限定法。分枝定界法是一个用途十分广泛的算法,运用这种算法的技巧性很强,不同类型的问题解法也各不相同。总的来说,“分支限定法求解问题的过程与图的广度优先方法类似。它是把问题的各个结点的解看作是解空间树上的各个分支结点,求解过程是在解空间树中进行官广度优先搜索的过程。”[1]

分枝定界算法的具体内容如下:

“步骤一:如果问题的目标为最小化,则设定目前最优解的值Z=∞。

步骤二:根据分枝法则(Branching rule),从尚未被洞悉(Fathomed)节点(局部解)中选择一个节点,并在此节点的下一阶层中分为几个新的节点。

步骤三:计算每一个新分枝出来的节点的下限值(Lower bound,LB)。

步骤四:对每一节点进行洞悉条件测试,若节点满足以下任意一个条件,则此节点可洞悉而不再被考虑:此节点的下限值大于等于Z值。已找到在此节点中,具最小下限值的可行解;若此条件成立,则需比较此可行解与Z 值,若前者较小,则需更新Z值,以此为可行解的值。此节点不可能包含可行解。

步骤五:判断是否仍有尚未被洞悉的节点,如果有,则进行步骤二,如果已无尚未被洞悉的节点,则演算停止,并得到最优解。”[2]

二、分枝定界算法的有关应用

分枝定界算法是一种常用算法,属于枚举算法,能够系统地搜索解空间,分枝定界算法的应用非常广泛。以下列举几个具体应用实例。

1、基于分枝限界法的公交换乘算法设计[3]

(1)问题陈述

伴随着经济的高速发展,公共交通问题成为解决城市拥挤,环境污染等问题

的重要手段。由于受计算机硬件及软件资源的制约,我们在对城市,特别是大型城市庞大的公交网络进行公交换乘问题求解时,不可能对每一种可能解进行计算。那该如何更好地解决该问题呢?

(2)该问题算法设计思想

在本文所解决的公交换乘问题中,我们的设计是根据具体城市的具体情况,我们对城市地图进行逐层分块,直至求出所求解。

从起点站开始,我们总是试图转乘最少次数的车到终点站,因此,当我们坐上一辆公交车后,我们要尽可能走更远的距离。只有当这趟车不满足我们乘车方向的要求时,我们才会考虑转车。所以我们在每一个起始点站总是试图找到能够到达离目的地最近的一趟车。在每一个车站总会有好几趟车经过,我们怎样才能知道坐哪趟车才会是最佳方案呢?从这站开始,每走一站,我们便作一次条件判断,保留满足某一条件的车次,对不满足这一条件的车次修枝(删除)。按此方案,不断往前走,只要有车次能够继续往目的地方向前进,我们就决不换车。只有当目前所有的车都不满这一条件时,我们再按上面的方案,把此站作为起始站换乘车辆继续前进,直至终点站。

根据以上思想设计的算法是一种行之有效的公交换乘解决方案。

2、分枝定界算法用于有机混合物的分析[4]

在分析工作中常常会遇到一种分析体系,即定性组成不完全确知的混合体系称为“灰色”分析体系。最常见的情形为已知混合物体系中可能存在的组分(物种)范围,但种类和数目未知。对于这类灰色分析体系,一般需先用某方法进行定性分析,再进行定量测定。采用分枝定界算法,实现未知混合试样体系的同时定性定量分析。此方法克服了逐步回归法只能找出局部最优解的不足,仅用较少的计算就可以找出全局最优解。在最优回归子集的选择中,选用4个判据,解决了最优回归子集难判断的问题,使最优回归子集的选择更加准确,真实,可靠。采用分枝定界算法,实现最优回归子集的选择。

3、求解最大割问题的分枝定界算法[5]

最大割问题是图论中的一个典型的NP困难问题,它在工程问题中有着广泛的应用。该应用基于最大割问题的半定规划松弛模型,给出了最大割问题的一种二次规划松弛模型,并且理论证明了文中提出的二次规划松弛模型要优于半定规划松弛模型. 在该模型的基础上,利用分枝定界算法求解最大割问题。对小规模和中等规模的最大割问题分别作数值实验。实验表明分枝定界算法能够给出最大割问题一个好的近似解。

4、弱有效集上凹函数极大问题的分枝定界算法[6]

弱有效集上的优化问题主要思想是寻找一个使决策者最满意的弱有效解,为了达到这个目的,决策者选择一些实值目标函数,搜索一个弱有效解以便优化其目标函数。该应用考虑了一凹函数在弱有效集上的极大问题。此优化问题主要有两方面的困难。第一,弱有效解集一般说来不再是凸集,因此,存在多个局部最优解;第二,该问题不属于存在一个全局最优解在多面体集的一个极点取得的一类间题。其方法的主要思想是,首先,把所考虑的问题转化为在k+1维空间中的一个特殊全局优化问题;其次,用分枝定界型算法求解产生的非凸优化问题。当实施算法时,分枝过程是采用锥形剖分;定界过程是通过求解普通线性规划完成的。

5、分枝定界算法在食品分析中的应用—水果中有机酸的定性定量分析[7]

研究水果中有机酸的成分和含量具有一定的实际意义,目前分析混合物的方法都有一个共同的弱点,即要求预先知道待测样品中所含有机酸的数目及种类。这一点对实际待测样品来说是难于满足的。即使满足了这一要求,应用这些方法也非常麻烦。因为这些方法对数目及种类不同的有机酸体系,要求应用不同的校正矩阵,这就限制了这些方法的使用范围。由于实际样品的分析往往比人工混

合样更复杂,而上述方法仅对人工混合酸进行了分析, 没有研究水果等实际样品的测定方法, 因此这些方法能否用于测定实际样品,还需要进行进一步研究。该应用将分枝定界算法与电位滴定法相结合,设计出一种新方法。在实验中只需解析由一份试样测得的数据,即可同时得到待测样品中所含有机酸的数目、种类及含量。本法不需预先知道水果中有机酸的数目及种类,具有简单、快速、准确等优点。

不同的酸具有不同的离解常数, 因此它们的滴定曲线也不相同。当离子强度、温度等条件恒定时, 在某个PH 值下, 滴定剂氢氧化钠溶液的体积与待测酸的浓度间有线性关系,其数学模型可由下式给出

1122i i i i n n i V K C K C K C e =++++ , (1,,)i m = (1)

式中i V 为滴定至第i 个Ph 值时所消耗的NaOH 溶液的体积 ;k c 为第k 种

可能存在的酸的浓度;ik K 为第6 种可能存在的酸在第个i 点上的比例因子,i e 为测量误差,一般为服从零均等方差的正态分布误差,n 为可能存在于待测样品中的组分数。

常规定性分析的目的是找出混合样品中存在的组分,从数学角度看就是要找出(1)式中究竟存在哪些项。这个问题可归结为回归变量的选择。该应用分枝定界算法来实现最优回归子集的选择。此法既克服了穷举法计算量大缺点,又克服了逐步回归法只能找出局部最优解的不足;仅用较少的计算就可以找出全局最优解。在回归分析中,任一不相关变量(组分) 集A ,与其某一子集B 的残差平方和(RSS),存在不等式:()()RSS A RSS B ≤此式是分枝定界算法的基础。

6、基于分枝定界法的环肋圆柱壳优化研究[8]

加筋圆柱壳结构的优化问题属于典型的离散优化问题,工程中常用的处理方法是先求得问题的连续变量的最优解。然后按照工程要求进行规格化处理,但是圆整后的解很可能出现在约束区域外,成为不可行解,并且圆整没有规律可循,当维数较高时,校核的工作量较大。另外,圆整的方法甚至不能得到离散变量的最优解。针对这种离散优化问题,本文则采用分枝界定法[8]对环肋圆柱壳在静水压力作用下的最小重量设计进行了研究,设计变量是壳板的厚度、肋骨的型、间距和数量,讨论了强度约束和稳定性约束以及材料几何参数对重量以及其它特征量的影响。

该应用基于分枝界定法分析了环肋圆柱壳在静水压力作用下的混合优化问题, 讨论了分枝界定方法的精度以及材料和几何特性对于环肋圆柱壳重量和其它特征量的影响。可以得出如下结论:

(1)分支界定法能够有效求解环肋圆柱壳的混合优化问题, 计算量小, 精度高;

(2)环肋圆柱壳经优化后, 壳板的重量比例大约是70%, 肋骨重量占30%, 并且随壳体的长径比变化不大;

(3)圆柱壳的优化中,肋骨的应力约束是主要约束。在算例中,肋骨应力已经非常接近许用应力标准,其他应力、局部和总体失稳压力还有一定的储备。

参考文献

[1] 梁田贵张鹏.算法设计与分析.北京:冶金工业出版社,2004,31

[2] 百度百科.分枝界限法. https://www.doczj.com/doc/5c15719767.html,/view/2102243.html,2011.5.20

[3] 张华丽. 基于分枝限界法的公交换乘算法设计.软件导刊,2009,(12):42-43

[4] 于洪梅侯德芳周士蓉.分枝定界算法用于有机混合物的分析.计算机与应用

化学,2002,(7):451-453

[5] 张亚玲龙熙华穆学文.求解最大割问题的分枝定界算法.西安科技大学学

报,2006,(12):541-544

[6] 杜廷松张明望王浚岭.弱有效集上凹函数极大问题的分枝定界算法.黑龙江

大学自然科学学报,2002,(6):14-17

[7] 曾伟吴少辉张惠珍李克安童沈阳.分枝定界算法在食品分析中的应用—

水果中有机酸的同时定性定量分析.北京大学学报(自然科学版),1994,(2):159-163

[8] 李学斌.基于分枝定界法的环肋圆柱壳优化研究.船舶力学,2008,(10):

793-798

整数规划分支定界算法matlab通用源程序

整数规划分支定界算法matlab通用源程序 %整数规划分支定界算法matlab通用源程序 %各参数的意义同matlab优化工具箱的线性规划函数linprog %调用前,输入参数要化成matlab的标准形式 [x,val]=kfz-f-3(n,f,a,b,aeq,beq,lb,ub) x=zeros(n,1); x1=zeros(n,1); m1=2; m2=1; [x1,val1]=linprog(f,a,b,aeq,beq,lb,ub); if (x1==0) x=x1; val=val1; elseif (round(x1)==x1) x=x1; val=val1; else e1={0,a,b,aeq,beq,lb,ub,x1,val1}; e(1,1)={e1}; zl=0; zu=-val1; while (zu~=zl) for c=1:1:m2 if (m1~=2) if (cell2mat(e{m1-1,c}(1))==1) e1={1,[],[],[],[],[],[],[],0}; e(m1,c*2-1)={e1}; e(m1,c*2)={e1}; continue; end; end; x1=cell2mat(e{m1-1,c}(8)); x2=zeros(n,1); s=0; s1=1; s2=1; lb1=cell2mat(e{m1-1,c}(6)); ub1=cell2mat(e{m1-1,c}(7)); lb2=cell2mat(e{m1-1,c}(6)); ub2=cell2mat(e{m1-1,c}(7)); for d=1:1:n if (abs((round(x1(d))-x1(d)))>0.0001)&(s==0) s=1;

基于仿真的优化方法综述

基于仿真的优化方法综述 作者:东汪定伟 1 引言 人们对复杂事物和复杂系统建立数学模型并进行求解的能力是有限的,目标函数和约束条件往往不能以明确的函数关系表达,或因函数带有随机参、变量,导致基于数学模型的优化方法在应用于实际生产时,有其局限性甚至不适用。基于仿真的优化(Simulation Based Optimization,SBO)方是在这样的背景下发展起来的。 随着优化问题越来越复杂,对优化对象的评价只能通过仿真获得的统计指标来实现。这时,SBO是复杂优化问题的惟一选择。近年来,SBO已成为国际上最热的研究方向。 虽然SBO已经在很多领域得到了应用,但是当前对于SBO的理论研究并不完善,算法仍在不断探索和改进中,新的研究成果不断出现。 2 SBO的研究概况及分类 综观最优化的发展过程,大约经过了以下几个阶段: ①1940~1970年数学规划阶段一目标和约束是解析函数。②1970-2000年智能优化阶段一目标和约束放宽为含有判断逻辑的计算机程序。③2000年一未来基于仿真的优化(SBO)阶段一用大量仿真的统计数据来进行性能评价。 有些学者对SBO做了一些综述工作。Andradottir从连续事件和离散事件两个方面,对SBO 技术作了总结;Azadivar从单目标优化和多目标优化的角度对SBO方法作了论述;在国,湘龙等认为SBO是非枚举地从可能值中找到最佳输入变量值,使得输出结果为最优或满意解的过程。王凌等按照优化方法的不同,对SBO及其改进和应用作了综述。 随着对SBO方法研究的深入,SBO在复杂工程系统的设计优化、供应链和物流系统、制造系统及社会经济系统等领域得到了应用。总结当前的研究和应用情况,可以看出,基于仿真的优化是仿真方法和优化方法的结合,是借助仿真手段实现系统的优化的一种优化方法。

《人工智能基础》实验报告-实验名称:启发式搜索算法

实验名称:启发式搜索算法 1、实验环境 Visual C++ 6.0 2、实验目的和要求 (复述问题)使用启发式算法求解8数码问题 (1)编制程序实现求解8数码问题A*算法,采用估价函数 f(n)=d(n)+p(n) 其中:d(n)是搜索树中结点n的深度;w(n)为节点n的数据库中错放的旗子个数; p(n)为结点n的数据库中每个棋子与其目标位置之间的距离总和。 (2)分析上述(1)中两种估价函数求解8数码问题的效率差别,给出一个是p(n)的上界h(n)的定义,并测试该估价函数是否使算法失去可采纳性。 实验目的:熟练掌握启发式搜索A*算法及其可采纳性。 3、解题思路、代码 3.1解题思路 八数码问题的求解算法 (1)盲目搜索 宽度优先搜索算法、深度优先搜索算法 (2)启发式搜索 启发式搜索算法的基本思想是:定义一个评价函数f,对当前的搜索状态进行评估,找出一个最有希望的节点来扩展。 先定义下面几个函数的含义: f*(n)=g*(n)+h*(n) (1) 式中g*(n)表示从初始节点s到当前节点n的最短路径的耗散值;h*(n)表示从当前节点n到目标节点g的最短路径的耗散值,f*(n)表示从初始节点s经过n到目标节点g的最短路径的耗散值。 评价函数的形式可定义如(2)式所示: f(n)=g(n)+h(n) (2) 其中n是被评价的当前节点。f(n)、g(n)和h(n)分别表示是对f*(n)、g*(n)和h*(n)3个函数值的估计值。 利用评价函数f(n)=g(n)+h(n)来排列OPEN表节点顺序的图搜索算法称为算法A。在A算法中,如果对所有的x,h(x)<=h*(x) (3)成立,则称好h(x)为h*(x)的下界,它表示某种偏于保守的估计。采用h*(x)的下界h(x)为启发函数的A算法,称为A*算法针对八数码问题启发函数设计如下: F(n)=d(n)+p(n) (4)

车辆路径调度问题的启发式算法综述

·论文· 车辆路径调度问题的启发式算法综述1 杨燕旋1,宋士吉1 (1.清华大学自动化系,北京 100084) 摘要:车辆路径调度问题是一类具有重大研究意义及广泛应用价值的NP难优化问题。本文给出了该问题的定义和基本描述,并将目前为止被应用于求解VRP问题的启发式算法分为构造型启发式算法、改进型启发式算法和人工智能算法这三大类,接着介绍了各类中比较典型的算法,并对算法的应用和研究情况进行了分析和总结,最后对进一步的研究做出了展望。 关键词:物流;车辆路径问题;调度;启发式算法 中图分类号:F252 A Survey on the Heuristic Algorithms for the Vehicle Routing Problem YANG Yan-Xuan,1 SONG Shi-Ji,1 (1.Department of Automation, Tsinghua University, Beijing 100084, China) Abstract:Vehicle Routing Problem is an NP-hard problem with great research and application significance. In this research, we first present the definition of the problem and give a classification to the existed heuristic algorithms for the problem. Then typical algorithms are introduced and research on the algorithms are investigated and summarized. Finally, further research directions are given. Key words:Logistics; Vehicle Routing Problem; Scheduling; Heuristic Algorithm 1959年,Dantzig等人首先从旅行商问题(Traveling Salesman Problem,简称TSP问题,)得到启发,提出了车辆分配问题TDP(Truck Dispatching Problem)。这是一类具有重要研究价值的问题。一方面,它代表了一类典型的组合优化问题,具有深远的理论意义;另一方面,它是一类重要的物流运输问题,直接影响着相关企业的运转效率,具有广泛的实践意义。半个世纪以来,许多的专家学者对该问题进行了广泛而深入的研究,并将这类问题统称为车辆路径调度问题(Vehicle Routing Problem,简称为VRP问题)。他们从基本问题出发,根据 1基金项目:自然科学基金(编号:60574077)、国家“八六三”高技术项目(编号:2007AA04Z102) 作者简介:杨燕旋(1983-),女,汉族,广东,清华大学硕士研究生,从事车辆路径调度方向的研究,E-mail: yyx02@https://www.doczj.com/doc/5c15719767.html,. 宋士吉(1965-),男,汉族,黑龙江,清华大学教授,博导,从事供应链管理等方向的研究,E-mail: shijis@https://www.doczj.com/doc/5c15719767.html,

整数规划_分支定界法_MATLAB程序

function [x,y]=lpint(f,G,h,lb,ub,x,n,id) % 整数线性规划分枝定界法,可求解线性全整数或线性混合整数规划% 此程序基于Matlab优化工具箱的lp函数写成 % 此程序为GreenSim团队原创作品,转载请注明 % 欢迎访问GreenSim团队的主页https://www.doczj.com/doc/5c15719767.html,/greensim % y = min f'x subject to: Gx <= h x为整 % x % 用法 % [x,y]=lpint(f,G,h) % [x,y]=lpint(f,G,h,lb,ub) % [x,y]=lpint(f,G,h,lb,ub,x) % [x,y]=lpint(f,G,h,lb,ub,x,n) % [x,y]=lpint(f,G,h,lb,ub,x,n,id) % 参数说明 % x: 最优解列向量 % y: 目标函数最小值 % f: 目标函数系数列向量 % G: 约束条件系数矩阵 % h: 约束条件右端列向量 % lb: 解的的下界列向量(Default: -inf) % ub: 解的的上界列向量(Default: inf) % x: 迭代初值列向量 % n: 等式约束数(Default: 0) % id: 整数变量指标列向量。1-整数,0-实数(Default: 1) % 举例 % min Z=x1+4x2 % s.t. 2x1+x2<=8 % x1+2x2>=6 % x1, x2>=0且为整数 %先将x1+2x2>=6化为 - x1 - 2x2<= -6 %》[x,y]=lpint([1;4],[2 1;-1 -2],[8;-6],[0;0]) % Y. MA & L.J. HU 1999 global upper opt c N x0 A b ID; if nargin<8, id=ones(size(f));end if nargin<7|isempty(n), n=0;end if nargin<6, x=[];end if nargin<5|isempty(ub), ub=inf*ones(size(f));end if nargin<4|isempty(lb), lb=zeros(size(f));end

启发式优化算法

启发式优化算法
Heuristic Optimization Algorithm
理论与应用 Theory & Application

内容纲要
? ?
优化问题与优化算法 常用的启发式优化算法
模拟退火算法 ? 遗传算法 ? 粒子群优化算法 ? 混合策略优化算法
?
?
讨论

优化问题
?
组合式优化问题
? ? ? ?
七桥问题 最短路径问题 公路连接问题 旅行商问题 无约束函数优化问题 有约束函数优化问题 函数优化+组合优化
?
函数优化问题
? ?
?
混合优化问题
?

七桥问题
?
Euler在1736年访问Konigsberg时,他发现Konigsberg城中有 一条名叫Pregel的河流,河上建有七座桥如图所示: 市民有 趣的消遣活动是星期六作一次走过所有七座桥的散步,每 座桥只能经过一次而且起点与终点必须是同一地点。
Impossible Task!

最短路径问题 SPP-shortest path problem
?
?
?
货柜车司机奉命在最短的时间内将一车货 物从甲地运往乙地。 从甲地到乙地的公路网纵横交错,因此有 多种行车路线,这名司机应选择哪条线路 呢? 假设货柜车的运行速度是恒定的,那么这 一问题相当于需要找到一条从甲地到乙地 的最短路。

公路连接问题
?
?
某一地区有若干个主要城市,现准备修建 高速公路把这些城市连接起来,使得从其 中任何一个城市都可以经高速公路直接或 间接到达另一个城市。 假定已经知道了任意两个城市之间修建高 速公路成本,那么应如何决定在哪些城市 间修建高速公路,使得总成本最小?

整数规划_分支定界法_MATLAB程序

整数规划分支定界法MATLAB程序 1.这种方法绝对能都解出答案,而且答案正确 function [x,val]=fzdj(n,f,a,b,aeq,beq,lb,ub) x=zeros(n,1); x1=zeros(n,1); m1=2; m2=1; [x1,val1]=linprog(f,a,b,aeq,beq,lb,ub); if (x1==0) x=x1; val=val1; elseif (round(x1)==x1) x=x1; val=val1; else e1={0,a,b,aeq,beq,lb,ub,x1,val1}; e(1,1)={e1}; zl=0; zu=-val1; while (zu~=zl) for c=1:1:m2 if (m1~=2) if (cell2mat(e{m1-1,c}(1))==1) e1={1,[],[],[],[],[],[],[],0}; e(m1,c*2-1)={e1}; e(m1,c*2)={e1}; continue; end; end; x1=cell2mat(e{m1-1,c}(8)); x2=zeros(n,1); s=0; s1=1; s2=1; lb1=cell2mat(e{m1-1,c}(6)); ub1=cell2mat(e{m1-1,c}(7)); lb2=cell2mat(e{m1-1,c}(6)); ub2=cell2mat(e{m1-1,c}(7)); for d=1:1:n if (abs((round(x1(d))-x1(d)))>0.0001)&(s==0) s=1; lb1(d)=fix(x1(d))+1;

启发式算法研究小结

启发式算法研究小结 0.探究启发式算法的缘由 在选《管理优化决策》这门课的时候,我抱着很强的好奇心和巨大的求知欲,试图尝试在这门课上学到我感兴趣的知识点以及确定我今后极有可能的研究领域和大方向。很幸运的是,我找到了。为什么这么说呢?就在我选择博士专业内选修课和专业外选修课的同时我发现了管理优化决策这门课和计算机学院那边开的选修课——《启发式优化》(由吕志鹏教授讲授),有很多是相通的,发现管理界尤其是在管理科学与工程方向和计算机技术应用领域所探究的问题出奇的一致,已经很难分清,哪个是管理方面的问题,哪个是计算机技术应用的范围了。正如各位都知道的是,由于选修课最终确定前一个月是可以去试听的,然而我并没有因为两者看上去内容有些相似就匆忙退选。通过对这两门课的内容进行比较,它给了我很大的触动,也带给我巨大的好奇,到底是管理方面的研究越来越偏向运用计算机等其他学科的知识和工具,还是计算机应用研究的方面越来越偏向实际的管理优化问题了呢?亦或者两个学科的边界正在走向模糊?我想学科交叉和融合的这一说法对于我来说可能并不是很新鲜,但这的确是我亲身经历的一种美妙体验和发现。它带给我新奇的同时也无疑给了我值得我深思几点的启示: 首先,众所周知,管理学科作为一门交叉的新兴学科,它的方法和工具都是依托和借助其他领域和学科而来的,它本身并没有或者几乎没有一个完完整整的只属于管理学科的方法和工具,几乎是其它学科的知识演变而来的,这就是我们所知道的学科交叉和学科融合;然而管理领域和传统计算机研究等领域的视角并不完全一样,其中对于计算机领域的研究者们而言,他们不但在乎启发式算法是否能够解决问题、效率是否大幅提高(而管理领域的专家们更在乎这点,能用第一,好用第二,或者说管理专家们更在乎第一点——问题能够得到的解决,至于第二点就不是那么迫切。而对计算机领域的向专家们而言,可以说两者都非常重要、要求非常苛刻),更在乎它所表现出来的优越特性(就时间、空间复杂度以及算法求解过程中保持一定的集中性和分散性而言的)。然而当管理领域的学者们求解类似问题,一般来说都是和我们生活中的管理者经常遇到且直接和的决策相关的问题,因为由于管理者的决策质量好坏会往往直接导致企业和团体的效率和绩效和高低,进而导致企业和组织的竞争力强弱,所以一般企业或者个人都是基于一定的价值诉求来解决管理问题,进而提高工作效率。由于管理者们非常了解生活中并不存在完完全全的理性人和完全信息,因此他们很难也极少去尝试寻找最优解,找到满意解就可以了,这一点和启发式算法的设计思想不谋而合(由于

启发式搜索算法解决八数码问题(C语言)

1、程序源代码 #include #include struct node{ int a[3][3];//用二维数组存放8数码 int hx;//函数h(x)的值,表示与目标状态的差距 struct node *parent;//指向父结点的指针 struct node *next;//指向链表中下一个结点的指针 }; //------------------hx函数-------------------// int hx(int s[3][3]) {//函数说明:计算s与目标状态的差距值 int i,j; int hx=0; int sg[3][3]={1,2,3,8,0,4,7,6,5}; for(i=0;i<3;i++) for(j=0;j<3;j++) if(s[i][j]!=sg[i][j]) hx++; return hx; } //-------------hx函数end----------------------// //-------------extend扩展函数----------------// struct node *extend(node *ex) { //函数说明:扩展ex指向的结点,并将扩展所得结点组成一条//单链表,head指向该链表首结点,并且作为返回值 int i,j,m,n; //循环变量 int t; //临时替换变量 int flag=0; int x[3][3];//临时存放二维数组 struct node *p,*q,*head; head=(node *)malloc(sizeof(node));//head p=head; q=head; head->next=NULL;//初始化 for(i=0;i<3;i++)//找到二维数组中0的位置 { for(j=0;j<3;j++)

MATLAB分支定界法程序(推荐文档)

源代码如下: fun ctio n [x,y]=ILp(f,G,h,Geq,heq,lb,ub,x,id,optio ns) %整数线性规划分支定界法,可求解纯整数规划和混合整数规划。 %y=minf ' *x s.t. G*x<=h Geq*x=heq x为全整数或混合整数列向量 %用法 %[x,y]=ILp(f,G,h,Geq,heq,lb,ub,x,id,optio ns) %参数说明 %lb:解的下界列向量(Default:」nt ) %ub:解的上界列向量(Default:int) %x:迭代初值列向量 %id :整数变量指标列向量,1-整数,0-实数(Default:1 ) global upper opt c x0 A b Aeq beq ID options; if nargin<10,options=optimset({});options.Display='off; opti on https://www.doczj.com/doc/5c15719767.html,rgeScale='off;e nd if nargin<9,id=ones(size(f));end if nargin<8,x=[];end if nargin<7 |isempty(ub),ub=inf*ones(size(f));end if nargin<6 |isempty(lb),lb=zeros(size(f));end if narginv5,heq=[];end if narginv4,Geq=[];end upper=i nf;c=f;xO=x;A=G;b=h;Aeq=Geq;beq=heq;ID=id; ftemp=ILP(lb(:),ub(:)); x=opt;y=upper; %下面是子函数 fun cti on ftemp=ILP(vlb,vub) global upper opt c x0 A b Aeq beq ID options; [x,ftemp,how]=li nprog(c,A,b,Aeq,beq,vlb,vub,xO,opti on s); if how <=0 return; en d; if ftemp-upper>0.00005 %in order to avoid error return; en d; if max(abs(x.*ID-round(x.*ID)))<0.00005 if upper-ftemp>0.00005 %in order to avoid error opt=x';upper=ftemp; return; else

集装箱码头泊位调度问题的启发式算法研究

第25卷第4期 青岛大学学报(工程技术版)  Vol.25No.4 2010年12月JOURNAL OF QING DAO UNIVERSIT Y (E &T) Dec.2010 文章编号:1006-9798(2010)04-0057-04 集装箱码头泊位调度问题的启发式算法研究 张海滨,张纪会,宣金钊 (青岛大学复杂性科学研究所,山东青岛266071) 摘要:为优化集装箱码头泊位的分配,提高泊位的利用率,把码头泊位的调度问题转化为带有约束条件的特殊二维装箱问题。通过建立连续泊位调度的非线性规划模型,提出了一种求解集装箱码头连续泊位分配问题启发式算法。仿真算例结果表明该算法能在实际的集装箱码头泊位调度中有效的提高泊位的利用率。关键词:泊位分配;装箱问题;启发式算法中图分类号:U692.4 文献标识码:A 收稿日期:2010-09-11 基金项目:国家自然科学基金项目(70671057);山东省自然科学基金项目(ZR2010GM006)作者简介:张海滨(1982-),男,硕士研究生,主要从事集装箱码头泊位调度的研究。 泊位作为港口运输中一种重要的资源,是影响港口发展的关键因素之一。随着港口之间的竞争越来越激烈,如何最大限度提高泊位的利用率、加快船舶的装卸速度,提高港口作业效率和服务水平,是增强港口竞争力的关键因素之一。因此,泊位调度问题成为港口运输中研究的一项重点内容之一。泊位分配问题根据泊位的特点分为离散泊位分配和连续泊位分配,根据作业特点分为静态泊位分配和动态泊位分配。泊位分配问题作为N P 难问题,可以视为指派问题或者划分问题[1];Lai 等[2]提出了以先到先服务为准则的动态泊位调度的启发式算法;Imai [3-5]提出了一种离散泊位下静态和动态泊位分配的启发式算法;Cordeau 等[6]利用禁忌搜索方法对动态泊位分配问题进行了求解;K im 等[7]建立了惩罚策略下的最小费用泊位动态分配模型,并利用模拟退火算法进行了求解;Monaco 等[8]通过考虑船舶总的在港时间,建立了一种连续泊位动态分配模型并进行求解;Hansen 等[9]基于在港时间和在港费用综合考虑建立了相应的模型,并进行了仿真求解。本文仅考虑泊位一种因素,建立了连续的动态泊位分配优化模型,提出了一种启发式算法可以求得模型的近似最优解。 1 以利用率最高为目标的泊位调度模型 泊位调度问题实际是如何安排船舶靠泊的时间和靠泊位置,使某一时间内港口泊位的利用率最高。实际上泊位的划分主要是逻辑划分而非物理划分。目前国际上的集装箱运输都是采用班轮运输方式,因此,为建立模型作如下假设:模型中的泊位是连续的,进入待泊区域的集装箱船舶都可以进入泊位作业区域进行作业;根据集装箱采取班轮运输的特点,假设船舶的作业时间由所在目的港装卸箱子的数量决定,与船舶的靠泊位置无关;假设船舶都能按照预计时间到达目的港,可以根据船舶的预计到达时间对船舶进行分配靠泊位置。 建立x -y 直角坐标系,x 轴表示作业时间,y 轴表示离散泊位长度。则连续泊位调度的模型可以描述为: 1) 某一时间段内通过合理安排船舶靠泊作业顺序和作业位置使泊位的利用率最大,其模型为 max F = ∑ j ∈V l j t nj /S (1) 式中,l j 表示船舶j 安全作业需要的泊位长度(其中包括船舶的长度和船舶安全作业之间的距离);t nj 表示船

启发式搜索算法在N数码问题中的应用

编号 南京航空航天大学毕业论文 题目启发式搜索算法在N数码问 题中的应用 学生姓名 学号 学院 专业 班级 指导教师 二〇一三年六月

南京航空航天大学 本科毕业设计(论文)诚信承诺书本人郑重声明:所呈交的毕业设计(论文)(题目:启发式搜索算法在N数码问题中的应用)是本人在导师的指导下独立进行研究所取得的成果。尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。 作者签名:年月日 (学号):

启发式搜索算法在N数码问题中的应用 摘要 N数码问题是人工智能领域中的经典问题,N数码可以有效的判断一个搜索算法的优劣。在低阶数码问题中,使用简单的宽搜或深搜就可以解决问题,但在高阶数码中,由于其巨大的搜索规模,我们必须采用更加智能的算法才能解决问题。与传统搜索相比,启发式搜索当前搜索过程中的信息,选择最为可行的状态进行拓展,从而大大提高了搜索的质量和效率。 本文通过建立N数码问题的存储机制和移动规则,使得N数码问题转化为了一个标准的搜索问题。并着重分析了A*算法和遗传算法在N数码中的应用,在A*算法中使用了两种不同的估价函数,目的是比较不同估价函数在N数码问题中的表现。在最后,本文进行了大量实验,综合分析了A*算法和遗传算法在不同规模数据下的优劣。 关键词:启发式搜索,数码问题,A*算法,遗传算法

The Application of Heuristic Search Algorithm on N-Puzzle Problem Abstract N-puzzle problem is a classic problem in artificial intelligence. N-puzzle problem can effectively judge the merits of a search algorithm. In the low order puzzle problem, using a Depth-First-Search or Breadth-First-Search can solve the problem, but in the higher order digital, because of the huge search space area,we must adopt a more intelligent https://www.doczj.com/doc/5c15719767.html,pared with the traditional search method, heuristic search uses the information in the search process, and it will choose the most feasible state, thus greatly improves the search quality and efficiency. This paper designs the storage mechanism and movement rules of N-puzzle problem, making the N-puzzle problem transforms to a standard search problem. This paper focuses on the application of A* algorithm and genetic algorithm in N-puzzle problem, and two different evaluation function used in A* algorithm. The objective is to compare the performance of different valuation function in N digital problem. In the end, this paper carries out a large number of experiments, a comprehensive analysis of the A* algorithm and genetic algorithm in different scale of data. Key Words:Heuristic Search;N-puzzle Problem;A* algorithm; Genetic algorithm

分支定界法详解

1、概念: 分支定界算法(Branch and bound,简称为BB、B&B, or BnB)始终围绕着一颗搜索树进行的,我们将原问题看作搜索树的根节点,从这里出发,分支的含义就是将大的问题分割成小的问题。大问题可以看成是搜索树的父节点,那么从大问题分割出来的小问题就是父节点的子节点了。分支的过程就是不断给树增加子节点的过程。而定界就是在分支的过程中检查子问题的上下界,如果子问题不能产生一比当前最优解还要优的解,那么砍掉这一支。直到所有子问题都不能产生一个更优的解时,算法结束。 2、例子: 用BB算法求解下面的整数规划模型 因为求解的是最大化问题,我们不妨设当前的最优解BestV为-INF,表示负无穷。 1.

首先从主问题分出两支子问题: 通过线性松弛求得两个子问题的upper bound为Z_LP1 = 12.75,Z_LP2 = 12.2。由于Z_LP1 和Z_LP2都大于BestV=-INF,说明这两支有搞头,继续往下。 2. 3.

从节点1和节点2两个子问题再次分支,得到如下结果: 子问题3已经不可行,无需再理。子问题4通过线性松弛得到最优解为10,刚好也符合原问题0的所有约束,在该支找到一个可行解,更新BestV = 10。 子问题5通过线性松弛得到upper bound为11.87>当前的BestV = 10,因此子问题5还有戏,待下一次分支。而子问题6得到upper bound为9<当前的BestV = 10,那么从该支下去找到的解也不会变得更好,所以剪掉! 4.

对节点5进行分支,得到: 子问题7不可行,无需再理。子问题8得到一个满足原问题0所有约束的解,但是目标值为4<当前的BestV=10,所以不更新BestV,同时该支下去也不能得到更好的解了。 6.

实验一 启发式搜索算法

实验一启发式搜索算法 学号:2220103430 班级:计科二班 姓名:刘俊峰

一、实验内容: 使用启发式搜索算法求解8数码问题。 1、编制程序实现求解8数码问题A *算法,采用估价函数 ()()()()w n f n d n p n ??=+??? , 其中:()d n 是搜索树中结点n 的深度;()w n 为结点n 的数据库中错放的棋子个数;()p n 为结点n 的数据库中每个棋子与其目标位置之间的距离总和。 2、 分析上述⑴中两种估价函数求解8数码问题的效率差别,给出一个是()p n 的上界 的()h n 的定义,并测试使用该估价函数是否使算法失去可采纳性。 二、实验目的: 熟练掌握启发式搜索A * 算法及其可采纳性。 三、实验原理: (一)问题描述 在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,其移动规则是:与空格相邻的数码方格可以移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。该问题称八数码难题或者重排九宫问题。 (二)问题分析 八数码问题是个典型的状态图搜索问题。搜索方式有两种基本的方式,即树式搜索和线式搜索。搜索策略大体有盲目搜索和启发式搜索两大类。盲目搜索就是无“向导”的搜索,启发式搜索就是有“向导”的搜索。 启发式搜索:由于时间和空间资源的限制,穷举法只能解决一些状态空间很小的简单问题,而对于那些大状态空间的问题,穷举法就不能胜任,往往会导致“组合爆炸”。所以引入启发式搜索策略。启发式搜索就是利用启发性信息进行制导的搜索。它有利于快速找到问题的解。 由八数码问题的部分状态图可以看出,从初始节点开始,在通向目标节点的路径上,各节点的数码格局同目标节点相比较,其数码不同的位置个数在逐渐减少,最后为零。所以,这个

群智能优化算法综述

现代智能优化算法课程群智能优化算法综述学生姓名: 学号: 班级: 2014年6月22日

摘要 工程技术与科学研究中的最优化求解问题十分普遍,在求解过程中,人们创造与发现了许多优秀实用的算法。群智能算法就是一种新兴的演化计算技术,已成为越来越多研究者的关注焦点,智能优化算法具有很多优点,如操作简单、收敛速度快、全局收敛性好等。群智能优化就是智能优化的一个重要分支,它与人工生命,特别就是进化策略以及遗传算法有着极为特殊的联系。群智能优化通过模拟社会性昆虫的各种群体行为,利用群体中个体之间的信息交互与合作实现寻优。本文综述群智能优化算法的原理、主要群智能算法介绍、应用研究及其发展前景。 关键词:群智能;最优化;算法

目录 摘要 0 1 概述 (2) 2 定义及原理 (2) 2、1 定义 (2) 2、2 群集智能算法原理 (3) 3 主要群智能算法 (3) 3、1 蚁群算法 (3) 3、2 粒子群算法 (4) 3、3 其她算法 (5) 4 应用研究 (6) 5 发展前景 (6) 6 总结 (7) 参考文献 (8)

1 概述 优化就是人们长久以来不断研究与探讨的一个充满活力与挑战的领域。很多实际优化问题往往存 在着难解性,传统的优化方法如牛顿法、共扼梯度法、模式搜索法、单纯形法等己难以满足人们需求。 因此设计高效的优化算法成为众多科研工作者的研究目标。随着人类对生物启发式计算的研究, 一些社会性动物( 如蚁群、蜂群、鸟群) 的自组织行为引起了科学家的广泛关注。这些社会性动物在漫长的进化过程中形成了一个共同的特点: 个体的行为都很简单, 但当它们一起协同工作时, 却能够“突现”出非常复杂的行为特征。基于此,人们设计了许多优化算法,例如蚁群算法、粒子群优化算法、混合蛙跳算法、人工鱼群算法,并在诸多领域得到了成功应用。目前, 群智能理论研究领域主要有两种算法: 蚁群算法(Ant Colony Optimization, ACO) 与粒子群优化算法(ParticleSwarm Optimization, PSO)。 2 定义及原理 2、1 定义 群集智能优化算法源于对自然界的生物进化过程或觅食行为的模拟。它将搜索与优化过程模拟成个体的进化或觅食过程,用搜索空间中的点模拟自然界中的个体;将求解问题的目标函数度量成个体对环境的适应能力;将个体的优胜劣汰过程或觅食过程类比为搜索与优化过程中用好的可行解取代较差可行解的迭代过程。从而,形成了一种以“生成+检验”特征的迭代搜索算法,就是一种求解极值问题的自适应人工智能技术。各类优化算法实质上都就是建立问题的目标函数,求目标函数的最优解,因而实际工程优化问题均可转化为函数优化问题。其表达形式如下: 求: ,,2,1,0)(..), (min , ,,2,1,),,,(21Lm j X g t s X f n L i x L x x X i T n i =≤== 。Ω∈X 其中,i X 为设计变量;)(X f 为被优化的目标函数;0)(≤X g j 为约束函数;Ω为设计变量的可行

分支定界算法的MATLAB程序

Linprogdis子程序: function [x,fval,exitflag,output,lambda]=... linprogdis(ifint,f,A,b,Aeq,beq,lb,ub,x0,options) %Title: % 分支定届法求解混合整数线性规划模型 % %初步完成:2002年12月 %最新修订: 2004-03-06 %最新注释:2004-11-20 %数据处理 [t1,t2] = size(b); if t2~=1, b=b';%将b转置为列向量 end %调用线性规划求解 [x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb,ub,x0,options); if exitflag<=0,%如果线性规划失败,则本求解也失败 return end %得到有整数约束的决策变量的序号 v1=find(ifint==1);%整数变量的index tmp=x(v1);%【整数约束之决策变量】的当前值 if isempty(tmp), %无整数约束,则是一般的线性规划,直接返回即可 return end v2=find(checkint(tmp)==0);%寻找不是整数的index if isempty(v2), %如果整数约束决策变量确实均为整数,则调用结束 return end %第k个决策变量还不是整数解 %注意先处理第1个不满足整数约束的决策变量 k=v1(v2(1)); %分支1:左分支 tmp1=zeros(1,length(f));%线性约束之系数向量 tmp1(k)=1; low=floor(x(k)); %thisA 分支后实际调用线性规划的不等式约束的系数矩阵A %thisb 分支后实际调用线性规划的不等式约束向量b if ifrowinmat([tmp1,low],[A,b])==1 %如果分支的约束已经存在旧的A,b中,则不改变约束 thisA= A; thisb= b;

启发式优化算法综述

启发式优化算法综述 一、启发式算法简介 1、定义 由于传统的优化算法如最速下降法,线性规划,动态规划,分支定界法,单纯形法,共轭梯度法,拟牛顿法等在求解复杂的大规模优化问题中无法快速有效地寻找到一个合理可靠的解,使得学者们期望探索一种算法:它不依赖问题的数学性能,如连续可微,非凸等特性; 对初始值要求不严格、不敏感,并能够高效处理髙维数多模态的复杂优化问题,在合理时间内寻找到全局最优值或靠近全局最优的值。于是基于实际应用的需求,智能优化算法应运而生。智能优化算法借助自然现象的一些特点,抽象出数学规则来求解优化问题,受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(Heuristic Algorithm)。 为什么要引出启发式算法,因为NP问题,一般的经典算法是无法求解,或求解时间过长,我们无法接受。因此,采用一种相对好的求解算法,去尽可能逼近最优解,得到一个相对优解,在很多实际情况中也是可以接受的。启发式算法是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解和最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。 启发式算法是和问题求解及搜索相关的,也就是说,启发式算法是为了提高搜索效率才提出的。人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题

时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案,以随机或近似随机方法搜索非线性复杂空间中全局最优解的寻取。启发式解决问题的方法是与算法相对立的。算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案。启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。 2、发展历史 启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,才能取得了巨大的成就。纵观启发式算法的历史发展史: 40年代:由于实际需要,提出了启发式算法(快速有效)。 50年代:逐步繁荣,其中贪婪算法和局部搜索等到人们的关注。 60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规模的问题仍然无能为力(收敛速度慢)。 70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。由此必须引入新的搜索机制和策略。 Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的兴趣。 80年代以后:模拟退火算法(Simulated Annealing Algorithm),人工神经网络(Artificial Neural Network),禁忌搜索(Tabu Search)相继出现。 最近比较火热的:演化算法(Evolutionary Algorithm), 蚁群算法(Ant Algorithms),拟人拟物算法,量子算法等。

深度学习方法在图像处理中的应用与研究(总结)

深度学习方法在图像处理中的应用与研究 1. 概述和背景 (1) 2.人脑视觉机理 (3) 3.深度学习的基本思想 (6) 4.深度学习的常用方法 (7) 5. 总结与展望 (9)

深度学习方法在图像处理中的应用与研究 1. 概述和背景 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生“自我”的意识。是的,在人类和大量现成数据的帮助下,电脑可以表现的十分强大,但是离开了这两者,它甚至都不能分辨一个喵星人和一个汪星人。 图灵(图灵,大家都知道吧。计算机和人工智能的鼻祖,分别对应于其著名的“图灵机”和“图灵测试”)在1950 年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。但是半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是“伪科学”。 但是自2006 年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是,Deep Learning。借助于Deep Learning 算法,人类终于找到了如何处理“抽象概念”这个亘古难题的方法。 在实际应用中,例如对象分类问题如对象的分类(对象可是文档、图像、音频等),我们不得不面对的一个是问题是如何用数据来表示这个对象,当然这里的数据并非初始的像素或者文字,也就是这些数据是比初始数据具有更为高层的含义,这里的数据往往指的就是对象的特征。例如人们常常将文档、网页等数据用词的集合来表示,根据文档的词集合表示到一个词组短语的向量空间(vector space model, VSM模型)中,然后才能根抓不同的学习方法设计出适用的分类器来对目标对象进行分类;又如在图像处理中,像素强度的集合的表示方法可以最初浅的表示一幅图像,这也是我们视觉意义上的图像,一可是由于各种原因人们提出了更高层的语义的特征,如SIFT为经典的几何特征、以LBP为经典的纹理特征、以特征脸为经典的统计特征等,像SIFT,特征在很多图像处理的应用中突显出其优越性,因此特征选取得好坏对于实际应用的影响是很深刻的。因此,选取什么特征或者用什么特征来表示某一对象对于解决一个实际问题非常的重要。然而,人为地选取特征的时间代价是非常昂贵,另外劳动成本也高,而所谓的启发式的算法得到的结果往往不稳定,结果好坏经常是依靠经验和运气。既然如此,人们自然考虑到自动学习来完成特征抽取这一任务。Deep Learning的产生就是缘于此任务,它又被称为无监督的特征学习(Unsupervised Feature Learning ),一显然从这个名称就可以知道这是一个没有人为参与的特征选取方法。 深度学习(Deep Learning)的概念是2006年左右由Geoffrey Hinton等人在《science》上发表的一篇文章((Reducing the dimensionality of data with neural networks》》提出来的,主要通过神经网络(Neural Network NN)来模拟人的大脑

相关主题
文本预览
相关文档 最新文档