第八章-优化问题_第1页
第八章-优化问题_第2页
第八章-优化问题_第3页
第八章-优化问题_第4页
第八章-优化问题_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章优化问题1/17/20251MATLAB优化问题优化工具箱概述无约束最优化问题有约束最优化问题多目标规划最大最小化遗传算法(GA)模拟退火算法(SA)例:travel-->travelsalesmanproblem

旅行商问题——一个典型的优化问题1/17/20252一、优化工具箱概述在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方向的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。优化问题无所不在,最优化方法的应用和研究已经深入到生产和科研的各个领域,如土木、机械、化工、运输调度、生产控制、经济规划、管理等,并取得了显著的经济效益和社会效益;用最优化方法解决最优化问题的技术称为最优化技术,包含:(1)建立数学模型:即用数学语言来描述最优化问题,模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。(2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。1/17/20253最优化方法的发展很快,已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等;利用MATLAB的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程组的求解,线性、非线性的最小二乘问题,另外,该工具箱还提供了线性、非线性最小化,方程求解、曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便、快捷的途径。1/17/20254二、无约束最优化问题1.单变量最优化讨论只有一个变量的最小化问题,即一维搜索问题,该问题在某些情况下可以直接用于求解实际问题,但大多数情况下它是作为多变量最优化方法的基础,因为进行多变量最优化要用到一维搜索算法。该问题的数学模型为

minf(x)x1<x<x21/17/20255Rosenbrock函数(香蕉函数)最小值为:x=[1,1];f(x)=0观察:在命令窗口键入bandemo选择不同方法观察对香蕉函数的优化结果和过程。1/17/20256fminbnd

函数:利用该函数找到固定区间内单变量函数的最小值;调用格式为:

fminbnd(‘f’,x1,x2)返回区间(x1,x2)上f函数描述的标量函数的最小值x。注意:

1)目标函数必须是连续的;

2)fminbnd函数可能只给出局部最优解;

3)只用于实数变量。1/17/20257[例]

在区间(0,2π)上求函数sin(x)的最小值:x=fminbnd(@sin,0,2*pi)x=4.7124

所以区间(0,2π)上函数sin(x)的最小值点位于x=4.7124处。最小值处的函数值为:y=sin(x)y=-1.00001/17/202582.无约束非线性规划问题基本数学原理无约束最优化问题在实际应用中较为常见。许多有约束最优化问题可以转化为无约束最优化问题进行求解;求解无约束最优化问题的方法主要有两类:直接搜索法(DirectSearchMethod)梯度法(GradientMethod)。直接搜索法适用于目标函数高度非线性,没有导数或导数很难计算的情况;由于实际工程中很多问题都是非线性的,故直接搜索法不失为一种有效的解决办法,常用的直接搜索法为单纯形法等,其缺点是收敛速度慢。1/17/20259(1)fminunc函数可求多变量无约束函数的最小值。多变量无约束函数的数学模型为式中,x为矢量,f(x)为函数,返回标量;

fminunc函数的调用格式:

fminunc(fun,x0),x0为给定初值,可以是标量、矢量或矩阵。1/17/202510例:将下列函数最小化建立m文件:myfun.mfunctionf=myfun(x)f=3*x(1)^2+2*x(1)*x(2)+x(2)^2然后:x0=[1,1];[x,fval]=fminunc('myfun',x0)%[x,fval]=fminunc(@myfun,x0)%函数句柄16次迭代后,x=1.0e-008*-0.75120.2479fval=1.3818e-0161/17/202511(2)fminsearch函数,功能类似于fminunc函数x0=[1,1];[x,fval]=fminsearch('myfun',x0)%[x,fval]=fminsearch(@myfun,x0)%函数句柄1/17/202512三、有约束优化问题线性规划有约束极小问题非线性有约束最优化问题1/17/2025131.线性规划概述线性规划的广泛应用是计算机时代的产物。1902年,J.Farkas

发表论文,阐述有关线性规划问题。1938年,英国人康德进行较详细研究。1947年,美国学者G.Dantzig(丹茨格)发明了求解线性规划的单纯形法(1951年发表),从而为线性规划的推广奠定了基础。可以认为,求解线性规划的单纯形算法可与求解线性方程组的高斯消元法相媲美。1/17/202514线性规划的数学模型有三个要素,从实际问题提炼成数学模型时,首先寻找需求解的未知量xj(j=1,…,n),然后列举三要素:

列写与自变量(未知量)有关的若干个线性约束条件(等式或不等式)。列写自变量xj取值限制(xj≥0,xj≤0或不限)。列写关于自变量的线性目标函数值(极大值或极小值)。其中,前两条称为可行条件,最后一条称为优化条件。符合这三个条件的数学模型通常称为线性规划的一般型(general)。1/17/202515问题的提出例:某企业计划生产甲、乙两种产品,该两种产品均需经A、B、C、D四种不同设备上加工,按生产工艺,在各种不同设备上的加工时间及设备加工能力、单位产品利润如表中所示。问:如何安排产品的生产计划,才能使企业获利最大?

一般线性规划问题及数学模型1/17/202516建立模型:设产品的产量甲

x1件,乙

x2件,则Max z=2x1+3x2

2x1+2x212 x1+2x284

x116 4

x2

12x10,

x20目标(object):限制条件(subjectto):1/17/202517线性规划有约束极小问题

用命令x=linprog(C,A,b,Aeq,beq,lb)例:求x使f(x)最小

f(x)=-5x1-4x2-6x3约束条件:

x1-x2+x3≦203x1+2x2+4x3≦423x1+2x2≦300≦x1,0≦x2,0≦x31/17/202518Matlab程序:clearC=[-5;-4;-6];A=[1-11;324;320];b=[20;42;30];lb=zeros(3,1);linprog(C,A,b,[],[],lb)输出结果:x=0.000015.00003.00001/17/2025192.非线性规划有约束极小问题

用命令x=fmincon

(‘f’,x0,A,b)早期版本用constr(‘f’,x0),只针对不等式约束。例:求f(x)=-x1x2x3的最小值,x0=[10;10;10]

s.t.-x1-2x2-2x3≤0,x1+2x2+2x3≤72,1/17/202520建立m文件:functionf=myfun1(x)f=-x(1)*x(2)*x(3);MATLAB程序:

x0=[10,10,10];A=[-1-2-2;122];b=[0;72];x=fmincon('myfun1',x0,A,b)输出结果:x=24.000012.000012.00001/17/202521四、二次规划如果某非线性规划的目标函数为自变量的二次函数,约束条件全是线性函数,就称这种规划为二次规划。其数学模型为:1/17/202522用quadprog(H,f,A,b,Aeq,beq,lb)若无等式约束条件,则采用

quadprog(H,f,A,b)例:1/17/202523目标函数写成矩阵形式:MATLAB程序:clearH=[1-1;-12];f=[-2;-6];A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag]=quadprog(H,f,A,b,[],[],lb)1/17/202524五、多目标规划前面介绍的最优化方法只有一个目标函数,是单目标最优化方法。但是,在许多实际工程问题中,往往希望多个指标都达到最优值,所以就有多个目标函数,这种问题称为多目标最优化问题。数学模型为式中,F(x)为目标函数矢量。1/17/202525由于多目标最优化问题中各目标函数之间往往是不可公度的,往往没有唯一解,此时须引进非劣解的概念(非劣解又称为有效解或帕累托解)。定义:若x*(x*∈Ω)的邻城内不存在Δx,使得(x*+Δx

)∈Ω,且则称x*为非劣解。

1/17/202526多目标规划有许多解法,常用的有:1.权和法该法将多目标矢量问题转化为所有目标的加权求和的标量问题,即加权因子的选取方法很多,有专家打分法等。该问题可以用标准的无约束最优化算法进行求解。1/17/2025272.ε约束法对目标函数矢量中的主要目标函数Fp进行最小化,其它目标用不等式约束的形式,即1/17/2025283.目标达到法目标函数系列为对应地有其目标值系列允许目标函数有正负偏差,偏差的大小由加权系数矢量ω={ω1,ω2,…,ωm

}控制,问题可以表达为标准的最优化问题1/17/202529应用实例某化工厂拟生产两种新产品A和B,其生产设备投资分别为:A,2万元/吨;B,5万元/吨。这两种产品均会造成环境污染,设由公害所造成的损失可折算为:A,4万元/吨;B,1万元/吨。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨和6吨,而市场需要这两种产品的总量每月不少于7吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备投资和公害损失均达最小。工厂决策认为:这两个目标中环境污染应优先考虑,设备投资的目标值为20万元,公害损失的目标为12万元。1/17/202530设工厂每月生产产品A为x1吨,B为x2吨,设备投资费为f1(x),公害损失费为f2(x),则这个问题可表达为多目标优化问题:1/17/202531首先需要编写目标函数的M文件opt1.m,返回目标计算值

functionf=opt1(x)f(1)=2*x(1)+5*x(2);f(2)=4*x(1)+x(2);给定目标,权重按目标比例确定,给出初值

goal=[2012];weight=[2012];x0=[25];%给出约束条件的系数

A=[10;01;-1-1];b=[56-7];lb=zeros(2,1);[x,fval,attainfactor,exitflag]=...fgoalattain(@opt1,x0,goal,weight,A,b,[],[],lb,[])1/17/202532六、最大最小化通常我们遇到的都是目标函数的最大化和最小化问题,但是在某些情况下,则要求使最大值最小化才有意义。例如城市规划中需要确定急救中心、消防中心的位置,可取的目标函数应该是到所有地点最大距离的最小值,而不是到所有目的地的距离和为最小。这是两种完全不同的准则,在控制理论、逼近论、决策论中也使用最大最小化原则。1/17/202533最大最小化问题的数学模型为式中,x,b,beq,lb,andub为矢量,

A、Aeq为矩阵,c(x),ceq(x),F(x)为函数,返回矢量。F(x),c(x),ceq(x)可以是非线性函数。MATLAB优化工具箱中采用序列二次规划法求解最大最小化问题。1/17/202534[例]求解下列最优化问题,使下面各目标函数中的最大值最小:首先编写一个计算x处五个函数的M文件opt2.m。functionf=opt2(x)f(1)=2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;f(2)=-x(1)^2-3*x(2)^2;f(3)=x(1)+3*x(2)-18;f(4)=-x(1)-x(2);f(5)=x(1)+x(2)-8;然后调用优化过程:x0=[0.1;0.1];%初值[x,fval]=fminimax(@opt2,x0)得到问题的解x=4.00004.0000fval=0.0000-64.0000-2.0000-8.0000-0.00001/17/202535例:定位问题:设某城市有某种物品的10个需求点,第i个需求点Pi的坐标为(ai,bi),道路网与坐标轴平行,彼此正交。现打算建一个该物品的供应中心,且由于受到城市某些条件的限制,该供应中心只能设在x界于[5,8],y界于[5,8]的范围内。问该中心应建在何处为好?

Pi点的坐标为ai:1435912620178

bi:2108181451089该供应中心的位置为(x,y),要求它到最远需求点的距离尽可能小。由于此处应采用沿道路行走的距离,可知用户Pi到该中心的距离为|x-ai|+|y-bi|,从而可得目标函数

1/17/202536首先,编写一个计算x处10个目标函数的M文件opt3.m;functionf=opt3(x)a=[1435912620178];b=[2108181451089];

%输入各个点的坐标值f(1)=abs(x(1)-a(1))+abs(x(2)-b(1));f(2)=abs(x(1)-a(2))+abs(x(2)-b(2));f(3)=abs(x(1)-a(3))+abs(x(2)-b(3));f(4)=abs(x(1)-a(4))+abs(x(2)-b(4));f(5)=abs(x(1)-a(5))+abs(x(2)-b(5));f(6)=abs(x(1)-a(6))+abs(x(2)-b(6));f(7)=abs(x(1)-a(7))+abs(x(2)-b(7));f(8)=abs(x(1)-a(8))+abs(x(2)-b(8));f(9)=abs(x(1)-a(9))+abs(x(2)-b(9));f(10)=abs(x(1)-a(10))+abs(x(2)-b(10));clear;x0=[6;6];%初值AA=[-10;10;0-1;01];bb=[-5;8;-5;8];%约束条件的系数[x,fval]=fminimax(@opt2,x0,AA,bb)运行结果:

x=88fval=13651388514911/17/202537七、遗传算法(GA)生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。1967年Bagley最早提出遗传算法的概念;1975年Michigan大学的J.H.Holland开始遗传算法的理论和方法的系统性、开创性研究。遗传算法简称GA(GeneticAlgorithm),在本质上是一种不依赖具体问题的直接搜索方法。遗传算法在模式识别、神经网络、图像处理、机器学习、结构优化、自适应控制、生物科学、社会科学等方面都得到应用。在人工智能研究中,现在人们认为“遗传算法、自适应系统、细胞自动机、混沌理论与人工智能一样,都是对今后十年的计算技术有重大影响的关键技术”。1/17/2025381.遗传算法的基本概念遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些能适应环境的个体特征方能保留下来。Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。1/17/202539由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法,因而在这个算法中要用到各种进化和遗传学的概念。这些概念如下:(1)串(String)

它是个体(Individual)的形式,在算法中为二进制串,并且对应于遗传学中的染色体(Chromosome)。(2)群体(Population)

个体的集合称为群体,串是群体的元素(3)群体大小(PopulationSize)

在群体中个体的数量称为群体的大小。(4)基因(Gene)

基因是串中的元素,基因用于表示个体的特征。例如有一个串S=1011,则其中的1,0,1,1这4个元素分别称为基因。它们的值称为等位基因(Alletes)。1/17/202540(5)基因位置(GenePosition)——一个基因在串中的位置称为基因位置,有时也简称基因位。基因位置由串的左向右计算,例如在串S=1101中,0的基因位置是3。基因位置对应于遗传学中的地点(Locus)。(6)基因特征值(GeneFeature)——在用串表示整数时,基因的特征值与二进制数的权一致;例如在串S=1011中,基因位置3中的1,它的基因特征值为2;基因位置1中的1,它的基因特征值为8。(7)串结构空间SS——在串中,基因任意组合所构成的串的集合。基因操作是在结构空间中进行的。串结构空间对应于遗传学中的基因型(Genotype)的集合。(8)参数空间SP——这是串空间在物理系统中的映射,它对应于遗传学中的表现型(Phenotype)的集合。(9)非线性——它对应遗传学中的异位显性(Epistasis)(10)适应度(Fitness)——表示某一个体对于环境的适应程度。1/17/2025412.遗传算法的原理遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。(1)遗传算法的目的典型的遗传算法通常用于解决下面这一类的静态最优化问题:考虑对于一群长度为L的二进制编码xi,i=1,2,…,n;有xi∈{0,1}L;给定目标函数f,有f(xi),并且0<f(xi)<∞;同时f(xi)≠f(xi+1)

求满足:max{f(xi)|xi∈{0,1}L}

的xi

。显然,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串xi处,即求出最优解。1/17/202542(2)遗传算法的基本原理长度为L的n个二进制串xi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:1.选择(Selection)

这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differentialreproduction)。2.交叉(Crossover)

这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。3.变异(Mutation)

这是在选中的个体中,对个体中的某些基因执行异向转化。在串xi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。1/17/202543(3)遗传算法的步骤和意义a.初始化选择一个群体,即选择一个串或个体的集合xi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30~160。通常以随机方法产生串或个体的集合xi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。b.选择根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。给出目标函数f,则f(xi)称为个体xi的适应度。显然:(i)适应度较高的个体,繁殖下一代的数目较多。

(ii)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。1/17/202544c.交叉

对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。例如有个体S1=100101,选择左边3位进行交叉操作,则S1=010101S2=010111S2=100111

一般而言,交叉概率P常取为0.25—0.75。d.变异根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm一般取值较小,一般取0.01-0.2。例如有个体S=101011,对其的第1,4位置的基因进行变异,则有

S'=001111单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。1/17/202545e.全局最优收敛当最优个体的适应度达到给定的阀值,或者最优个体的适应度和群体适应度不再上升时,则算法的迭代过程收敛、算法结束。否则,用经过选择、交叉、变异所得到的新一代群体取代上一代群体,并返回到第2步即选择操作处继续循环执行。1/17/202546简单遗传算法框图1/17/2025473.遗传算法的手工计算示例考虑下列一元函数求最大值的优化问题:极值点满足:1/17/202548下面用遗传算法求解上述简单优化问题:(1)编码变量x作为实数,可视为遗传算法的表现型形式,从表现型到基因型的映射称为编码。通常用二进制串编码形式,串长度取决于求解精度。若需要达到6位小数,则需将区间[-1,2]分为3×106等份,因为

2097152=221<3×106

≤222=4194304所以二进制串长度需要22位

1/17/202549将一个22位二进制串(b21b20…b0)化为十进制数在区间[-1,2]内,x’对应的实数为:例:二进制串s1=<1000101110110101000111>

表示实数0.637197

x’=(1000101110110101000111)2=2288967

二进制串<0000000000000000000000>和<1111111111111111111111>

表示区间[-1,2]的两个端点值1/17/202550(2)产生初始种群一个个体由串长为22的随机产生的二进制串组成染色体的基因码,可以产生一定数目的个体组成种群,种群的大小就是群中的个体数目;(3)计算适应度直接引用目标函数作为适应度函数:

f(s)=f(x)

如:s1=<1000101110110101000111>s2=<0000001110000000010000>f(s1)=f(x1)=2.586345f(s2)=f(x2)=1.078878显然,两个个体中,s1的适应度大,个体s1优于个体s21/17/202551

(4)遗传操作介绍交叉和变异这两个遗传操作的工作过程:下面是经过选择操作(轮盘赌选择方法)的两个个体,先执行单点交叉,如

s1=<00000|01110000000010000>s2=<11100|00000111111000101>随机选择一个交叉点,例如第5位与第6位之间的位置,交叉后产生新的子个体

s1’=<00000|00000111111000101>s2’=<11100|01110000000010000>

这两个子个体的适应度分别为:

f(s1’)=f(-0.998113)=1.940865f(s2’)=f(1.666028)=3.459245适应度高于两个父个体的适应度1/17/202552下面考察变异操作:假设以一小概率选择了s2的第5个遗传因子(即第5位)变异,遗传因子由原来的0变为1,产生新的个体为

s2’’=<1110100000111111000101>

计算该个体的适应度:

f(s2’’)=f(1.721638)=0.917743发现个体s2’’的适应度比其父个体的适应度减少了,但如果选择第10个遗传因子变异,产生新的个体为:

s2’’’=<1110100001111111000101>适应度:f(s2’’’)=f(1.630818)=3.343555个体s2’’’的适应度比其父个体的适应度改善了,这说明了变异操作的”扰动”作用。1/17/202553(5)模拟结果设定种群大小为50,交叉概率为0.25,变异概率为0.01,按照上述基本遗传算法(SGA),在运行到89代时获得最佳个体:

smax=<1101001111110011001111>

xmax=1.850549,

f(xmax)=3.850274这个个体对应的解与其它方法预计最优解的情况吻合,可以作为问题的近似最优解。1/17/2025544.Matlab遗传算法与直接搜索工具箱

(TheGeneticAlgorithmandDirectSearchToolbox)%定义一个简单的适应度函数,即目标函数functiony=simple_fitness(x)y=100*(x(1)^2-x(2))^2+(1-x(1))^2;%开始搜索clearFitnessFunction=@simple_fitness;numberOfVariables=2;[x,fval]=ga(FitnessFunction,numberOfVariables)1/17/202555%定义simple_objective.m

functiony=simple_objective(x)y=(4-2.1*x(1)^2+x(1)^4/3)*x(1)^2+x(1)*x(2)+...(-4+4*x(2)^2)*x(2)^2;%开始搜索ObjectiveFunction=@simple_objective;X0=[0.50.5];%Startingpoint[x,fval]=patternsearch(ObjectiveFunction,X0)1/17/202556八、模拟退火算法(SA)模拟退火算法工具箱

satools

模拟退火算法(SimulatedAnnealingAlgorithm,简称为SA算法)的基本思想最早由Metropolis等人于1953年提出,用于模拟固体在给定温度下的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论