决策支持系统作业_第1页
决策支持系统作业_第2页
决策支持系统作业_第3页
决策支持系统作业_第4页
决策支持系统作业_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

决策支持系统作业决策支持系统作业决策支持系统作业决策支持系统作业编制仅供参考审核批准生效日期地址:电话:传真:邮编:决策支持系统导论期末作业姓名:学号:1、设某企业生产多种最终产品Y=(yi),各种产品的单价为Pi,它们的投入产出直接消耗系数为A=(aij),企业的资源(煤、电力、劳力)的约束方程为BX<=>h(“<=>”表示<、=、>),其中,B=(bij)是资源消耗系数矩阵,X=(xi)是企业总产品向量,h是资源约束向量。为使企业净产值最大,其目标方程S=max∑Piyi,试安排生产计划(求总产品X和最终产品Y)。请设计该企业的生产计划决策支持系统,画出DSS运行结构图,并对总控程序、模型程序、数据库进行结构和功能说明。提示:该决策支持系统需要利用3个模型(投入产出模型、线性规划模型和报表模型(打印投入产出表))和两个数据库(投入产出数据库和线性规划数据库)。在DSS总控程序中要详细说明何时调用哪个模型运行,何时存取哪个数据库中的数据,何时进行数据计算。该DSS需要两次调用投入产出模型:一次计算中间结果,一次计算最后结果。请注意,模型程序应该是一个标准程序,在一定的参数控制下,可得到中间结果,也可得到最终结果。该模型程序既适合于该问题的DSS,也适合于其他问题的DSS,不能是一个专用的模型程序。(20分)模型投入产出模型投入:经济部门在进行经济活动时候的资源消耗;产出:经济部门在进行经济活动时候的成果;投入产出模型表示的是各个经济部门之间的投入产出关系。根据公式可求得中间结果值X与最终产品值Y之间的关系:X=(I-A)-1Y2.线性规划模型:根据约束方程BX<=>h与目标方程S=∑Piyi→max,输入参数为B、P、h,运用模型中的数学公式求解问题,最后输出Y即为最终结果。报表模型调用投入产出数据库中的数据,根据投入产出模型的分析结果,得到投入产出表,并将其打印出来。不需要输入参数,可以手动调用,也可以用时间来触发,生成表格。数据库投入产出数据库首先对数据进行初始化,存入投入产出相关的数据,包括最终产品Y=(yj),各种产品的单价Pi,它们的投入产出直接消耗系数A=(aij),企业总产品向量X=(xi)等用于投入产出表计算的重要数据,方便模型对数据的提取。数据库本身可以对数据进行维护,如自动初始化,自动更新等操作。字段名数据类型长度是否可为空最终产品int8是int8是int8是……int8是int8是产品单价float16是float16是float16是……float16是float16是直接消耗系数float16是float16是float16是……float16是float16是线性规划数据库对数据进行初始化,存储的数据包括最终产品Y=(yj),各种产品的单价为Pi,资源消耗系数矩阵B=(bij),企业总产品向量X=(xi)企业的资源(煤、电力、劳力)的约束方程为BX<=>h(“<=>”表示<、=、>)目标方程S=ΣPiyi等线性规划是需要的数据。字段名数据类型长度是否可为空资源消耗系数float8是float8是float8是……float8是float8是总产品int16是int16是int16是……int16是int16是资源约束hfloat16是最终产品int8是int8是int8是……int8是int8是产品单价float16是float16是float16是……float16是float16是三、总控程序(1)根据系统提示选择需要的服务,输入提示要求的相关数据,保存到数据库中。(2)调用投入产出模型,提取投入产出数据库中A、Y作为模型的输入参数。调用模型内部的公式解决问题,根据输入参数判断需要输出的是中间结果还是最终结果,将结果输并存入投入产出数据库中。(3)调用线性模型,提取线性规划数据库中的数据作为输入参数,根据模型内部公式进行数据计算,既要符合约束条件,又要使得目标函数值最大,最终得出Y向量,将结果输出并存入投入产出数据库。(4)调用投入产出模型,提取投入产出数据库中的A、Y作为输入参数。调用模型内部公式计算出需要的结果X,根据输入参数判断需要的输出结果,输出结果,并存入投入产出数据库。(5)调用报表模型,提取投入产出数据库中的数据,得出投入产出表并打印。四、运行结构图教材中节物资分配与调拨决策支持系统,详细给出模型库设计,包括主要模型、存储形式说明,数据库设计,各接口说明(各模块之间的调用顺序、数据存取关系)。(30分)一、分析问题物资分配调拨问题是根据各单位提出对物资的需求申请,按仓库的库存情况制定分配方案,再根据分配放案以及仓库和单位的距离制定物资运输方案。最后按照物资运输方案制定各仓库的发货表和各单位的接收表,修改各仓库库存数和各单位的物资数。物资申请和库存的物资申请和库存的计划汇总制定物资分配方案物资调拨预处理制定物资运输方案制定物资调拨方案打印报表图3物资分配调拨流程图具体方案通过上述分析可知该决策问题共涉及6个模型:汇总模型,预处理模型、分配模型、运输优化模型、调拨模型、制表模型。其中汇总、预处理、调拨、制表模型都是数据处理模型,属于管理业务工作。分配和运输优化属于数学模型。分配模型属于平衡分配决策,它要达到的目标是使物资分配尽量合理,该模型的计算公式是分配决策方法之一,也可以采用别的分配方法。运输模型属于优化决策,它使运输过程达到总吨公里数最小。该6个模型以程序形式出现,均放入模型库中。该方案包括十个数据表(1)单位申请数据表;(2)仓库库存数据表;(3)物资总申请数据表;(4)物资总库存数据表;(5)物资分配数据表;(6)距离数据表;(7)物资调拨数据表;(8)仓库发货数据表;(9)单位收货数据表;(10)单位物资数据表。三、具体表设计(1)单位申请数据表名称类型长度是否允许为空描述marketno(pk)char3否单位号goodsno(fk)char13否资源编号goodssumbigint10是申请数量(2)仓库库存表名称类型长度是否允许为空描述w_no(pk)char3否仓库号goodsno(fk)char13否资源号goodsnumbigint10是库存量unitvarchar6否数量单位(3)物资分配数据表名称类型长度是否允许为空描述marketno(pk)char3否单位号goodsno(fk)char13否资源编号goodssumbigint10是分配数量(4)距离数据表名称类型长度是否允许为空描述marketno(pk)char3否单位号w_no(fk)char3否仓库号distancevarchar10否距离unitvarchar10否计量单位(5)物资调拨分配数据表名称类型长度是否允许为空描述marketno(pk)char3否单位号w_no(fk)char3否仓库号goodsno(fk)char13否资源号goodsnumbigint10否分配数量(6)单位收货数据表名称类型长度是否允许为空描述marketno(pk)char3否单位号goodsno(fk)char13否资源编号goodssumbigint10是收物数量(7)仓库发货数据表名称类型长度是否允许为空描述w_no(pk)char3否仓库号goodsno(fk)char13否资源编号goodssumbigint10是发物数量(8)物资总库存数据表名称类型长度是否为空?描述W_no(pk)char3否仓库号Goodsno(pk)char13否物资号goodsnumbigint10是物资数量(9)物资分配数据表名称类型长度是否为空?描述Marketno(pk)char3否单位号Goodsno(pk)char13否物资号goodsnumbigint10是物资数量(10)单位物资数据表。名称类型长度是否允许为空描述marketno(pk)char3否单位号goodsno(fk)char13否资源号goodsnumbigint10是库存量unitvarchar6否数量单位四、各接口说明(各模块之间的调用顺序、数据存取关系)。物资申请和库存的计划汇总1.各单位按自己的需求提出对各物资的申请申请数据库为:Di={SQ(W1),SQ(W2),…}i=1,2,3…()其中Di表示第i各单位,SQ(Wj)表示申请物资Wj的需要数量。将各单位的申请数据库汇总成各单位对物资的需求量,形成总申请数据库。Wj={SQ(D1),SQ(D2),…}j=1,2,3…其中SQ(Di)表示第i个单位对物资Wj的申请数量。该项数据处理需要编制程序,类似于数据库的旋转来完成。2.各仓库度物资的可供应情况Ki={XY(W1)—KD(W1),XY(W2)—KD(W2),…}i=1,2,…()其中Ki表示第i个仓库;XY(Wj),KD(Wj)分别表示该仓库中物资Wj的现有数量和最低储备量;XY(Wj)—KD(Wj)表示物质Wj的可供量。各仓库的多物资的可供应情况汇总成某一物资个仓库的可供量,形成总库存数据库。Wj={XY(K1)—KD(K1),XY(K2)—KD(K2),…}()该项数据处理工作,要在数据库中计算出可供量后,再进行类似于数据库旋转来实现。该计划汇总工作构成数据处理模型,它与数据库的关系如图:单单位申请数据库仓库库存数据库计划汇总物资总申请数据库物资总库存数据库图4计划汇总模型与数据库的关系制定物资的分配方案物资分配方案是利用物资分配模型来完成的,该分配模型是通过一系列公式实现。比较分配情况对同一物资Wj计算总可供量S(各仓库可供量之和)与总申请量Q(各单位申请量之和)的大小。物资分配方法总可供量大于等于总申请量S≥Q完全满足各单位的申请数量,即各单位的分配数量FB(Dj)等于他的申请量。FB(Dj)=SQ(Dj)()总可供量小于总申请量S〈Q这里有2种处理方法:按申请比例削减FB(Dj)=SQ(Dj)*S/Q按优先类别分配各单位按需求物资的需求程度有一个优先类别该模型是一个数学模型。模型和数据库之间的关系如图:物资总申请数据库物资总申请数据库物资总库存数据库物资分配模型物资分配数据库图3物资分配模型与数据库的关系其中物资分配数据库中每条记录表示每种物资分配给各单位的具体数量。物资调拨预处理在制定物资分配方案中已经确定了每种物资给各接收单位的分配数量。具体由哪个仓库调拨多少物资到哪个单位去,就有运输问题的线性规划来解决。但决定哪几个仓库,哪几个接收单位之间实现调拨供应是需要进行预处理的。每种物资的调运中,参加调运的仓库和接收单位都是不一样的,是随机出现的。参加调运的仓库是由该仓库提供某物资的可供量是否大于零来决定。参加调用接收单位要看他接收某物资的分配数大于零来决定。每个仓库到所接收单位的路程,存入一个距离数据库中。对每一种物资,由于参加调运的仓库和单位不同,要形成参加调运的实际距离矩阵,这就要对每个距离记录进行挑选,挑选后形成小的实际距离矩阵,再形成好实际调拨矩阵后,才可以进行运输问题的线性规划运算,计算出有哪个仓库运多少物资给某个接收单位。这个物资调运预处理是一个数据处理模型,用数据库中投影操作来完成。该模型完成了物资调用预处理后,接着就可以进行物资运输调拨了,当求出具体解后,由调拨方案的解回到原数据库中的位置,由数据库反投影操作来完成。该模型和数据库之间的关系如图:某物资实际距离矩阵某物资实际距离矩阵物资分配数据库距离数据库物资调拨预处理模型图6物资调拨预处理模型和数据库的关系制定物资运输方案利用运输问题数学模型的具体求解方法,制定各物资的运输方案。该模型和数据库之间的关系:物资调拨数据库物资调拨数据库物资分配数据库实际距离矩阵运输问题模型图7运输问题模型和数据库的关系运输问题的计算机算法实现:物资调拨数据库中每条记录表示有各仓库运给各单位的具体数量。从距离表中选出能够提供A资源的仓库,若S>=Q即库存量>=申请量,我们采用产销不平衡的沃尔格运输方法;若S<Q,则按产销平衡沃尔格运输方法计算。制定物资调拨方案利用物资调拨数据库中调拨物资的数量,经过物资调拨模型将所有物资仓库调拨给单位所有的数量,转换成个仓库的发货数据库和各单位的接收数据库,在制定表格,打印各仓库的发货报表和各单位的收货报表。制定物资调拨方案包括物资调拨模型和制表模型,他们都是数据处理模型。其中物资调拨模型完成物资调拨汇总工作(类似于计划汇总的旋转处理),同时修改库存和物资的两个数据库。制表模型完成发货和收货报表的打印。它们和数据库之间的关系如图:物资调拨数据库物资调拨数据库物资调拨模型仓库发货数据库单位收货数据库制表修改发、收报表仓库库存、单位物资数据库图8物资调拨与制表模型与数据库的关系物资分配调拨决策支持系统体系结构为了使模型部件和数据部件有机结合,要建立总控程序,即控制各模型有序运行,数据有效存取,同时进行必要的人机对话,允许决策用户修改分配方案和调拨方案,形成决策支持系统,达到人机共同进行决策。该决策支持系统的基本方案按目前分析的模型和数据库进行组合运算,得到辅助决策信息。其运行结构如图:单位申请数据库仓库单位申请数据库仓库库存数据库计划汇总模型总申请数据库总库存数据库分配模型物资分配数据库距离数据库调拨预处理模型运输模型物资调拨数据库物资调调拨汇总模型仓库发货数据库单位物资数据库单位收货数据库制表模型仓库发货报表单位收货报表开始计划汇总分配处理人工干预吗取出修改送回调拨预处理运输处理人工干预吗取出修改送回调拨预处理制表处理修改方案否?修改方案处理结束YNYN3、考虑去卡拉OK厅唱歌的时候,是否要等待包间的问题。规定如下属性可用于描述该领域内的实例:(1)Others(其他地点):附近是否有其他卡拉OK厅;(2)WaitCond(等候条件):供顾客等候的地方是否舒适;(3)Weekend(周末):若是周六或周日,则为真;(4)Conssumers(顾客):店中有多少顾客(值为None(没人),Some(一些)或Full(满座));(5)Price(价格):价格范围(值为Cheep(便宜),Middle(中等),Expensive(较贵));(6)Raining(下雨):外面是否在下雨;(7)Reservation(预约):是否预约过;(8)WaitEstimate(等候时间估计):估计的等候时间(值为0—10,10—30,30—60,>60,单位为分钟)。训练集见表:实例属性目标WillWaitOthersWCondWEndConsPriceRainResWEstX1YesNoNoSomeEXNoYes0-10YesX2YesNoNoFullCHNoNo30-60NoX3NoYesNoSomeCHNoNo0-10YesX4YesNoYesFullCHYesNo10-30YesX5YesNoYesFullEXNoYes>60NoX6NoYesNoSomeMIDYesYes0-10YesX7NoYesNoNoneCHYesNo0-10NoX8NoNoNoSomeMIDYesYes0-10YesX9NoYesYesFullCHYesNo>60NoX10YesYesYesFullEXNoYes10-30NoX11NoNoNoNoneCHNoNo0-10NoX12YesYesYesFullCHNoNo30-60Yes要求:建立BP神经网络模型,并进行容错性分析。(25分)解:通过对训练集进行训练建立神经网络模型,首先对训练集输入数字化,之后建立神经网络,设置输入输出向量,网络层数及网络各层权值阈值。然后进行训练得到神将网络模型。最后进行容错分析,可以训练原训练集的数据,分析网络的准确性,均方差的误差值等,也可以对原训练集数据稍作修改,看是否会影响所作的决策。对训练集数据修改后如下表,用来进行容错分析。实例属性目标WillWaitOthersWCondWEndConsPriceRainResWEstX11000-1011X210011000X301001001X4101111001X51011-101-10X601000111X7010-11100X800000111X90111110-10X101111-10100X11000-11000X12111-110011:等待0:不等在MATLAB中运行如下代码P=[1000-1011;100-11000;01001001;101-1110;101-1-101-1;01000111;01011101;00000111;011-1110-1;111-1-101;00011001;111-11000;]';>>T=[101101010001];>>pause;运行结果>>net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')Warning:NEWFFusedinanobsoleteway.>Innntobsuat18Innewffat105SeehelpforNEWFF=NeuralNetworkobject:architecture:numInputs:1numLayers:2biasConnect:[1;1]inputConnect:[1;0]layerConnect:[00;10]outputConnect:[01]numOutputs:1(read-only)numInputDelays:0(read-only)numLayerDelays:0(read-only)subobjectstructures:inputs:{1x1cell}ofinputslayers:{2x1cell}oflayersoutputs:{1x2cell}containing1outputbiases:{2x1cell}containing2biasesinputWeights:{2x1cell}containing1inputweightlayerWeights:{2x2cell}containing1layerweightfunctions:adaptFcn:'trains'divideFcn:(none)gradientFcn:'calcgrad'initFcn:'initlay'performFcn:'mse'trainFcn:'traingdm'parameters:adaptParam:.passesdivideParam:(none)gradientParam:(none)initParam:(none)performParam:(none)trainParam:.epochs,.goal,.lr,.max_fail,.mc,.min_grad,.show,.timeweightandbiasvalues:IW:{2x1cell}containing1inputweightmatrixLW:{2x2cell}containing1layerweightmatrixb:{2x1cell}containing2biasvectorsother:userdata:(userinformation)>>inputWeights={1,1}inputWeights=>>inputbias={1}inputbias=>>layerWeights={2,1}layerWeights=>>layerbias={2}layerbias=>>pause;>>=50;>>=;>>=;>>=1000;>>=1e-3;>>pause;>>[net,tr]=train(net,P,T);TRAINGDM-calcgrad,Epoch0/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch50/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch100/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch150/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch200/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch250/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch300/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch350/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch400/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch450/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch500/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch550/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch600/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch650/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch700/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch750/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch800/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch850/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch900/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch950/1000,MSE,Gradient1e-010TRAINGDM-calcgrad,Epoch1000/1000,MSE,Gradient1e-010TRAINGDM,Maximumepochreached,performancegoalwasnotmet.>>pause>>A=sim(net,P)A=Columns1through11Column12>>E=T-AE=Columns1through11Column12>>MSE=mse(E)MSE=>>test=[1010-1010;100-11010;01011001;101-1010;111-1-101-1;01101111;01011001;00000101;1110110-1;111-1-101;01011001;11101000;]';>>A1=sim(net,test)A1=Columns1through11Column12>>E1=T-A1E1=Columns1through11Column12>>MSE=mse(E1)MSE=>>pause>>echooff得到如下的曲线图:对运行结果进行容错性分析:实例输入输出WillWait(1)输出WillWait(0)结果OthsWConWEnConPriceRaiResWEstX11100-1011等(1)X21011100-1不一定X301011001等(1)X410011100等(1)X51111-101-2不等(0)X601100011不一定X7011-10101不等(0)X801100111不一定X90000110-2不一定X1011001010不等(0)X11111-11001不等(0)X121100000-1等(1)编制旅行商路径优化问题的遗传算法程序,并计算一个实例。(25分)一、旅行商问题概述旅行商问题(TravelingSalemanProblem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。TSP问题最简单的求解方法是枚举法。它的解是多维的、多局部极值的、趋于无穷大的复杂解的空间,搜索空间是n个点的所有排列的集合,大小为n-1。可以采用遗传算法来搜索解空间,群体搜索易于进行并行化处理,它并不是盲目穷举,而是启发式搜索,由于采用了遗传、变异、突变,丰富了种群的基因,优化了解空间。遗传算法是建立在最优解与较优解的差别小的基础上的,也可以说是建立在父母漂亮,小孩很有可能也漂亮的理论基础上的。遗传算法得出的很有可能是局部最优解,而不是全局最优解。(百度)二、遗传算法(GA)遗传算法(GeneticAlgorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初由美国Michigan大学教授于1975年首先提出来的,并出版了颇有影响的专著《AdaptationinNaturalandArtificialSystems》,GA这个名称才逐渐为人所知,教授所提出的GA通常为简单遗传算法(SGA)。三、问题描述假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。TSP问题是一个组合优化问题。该问题可以被证明具有NPC计算复杂性。因此,任何能使该问题的求解得以简化的方法,都将受到高度的评价和关注。四、问题分析TSP问题就是寻找一条最短的遍历n个城市的最短路径,即搜索自然子集W={1,2,⋯,n}(W的元素表示对n个城市的编号)的一个排列π(W)={V1,V2,⋯,Vn},使len=∑d(Vi,Vi+1)+d(V1,Vn)取最小值,式中的d(Vi,Vi+1)表示城市Vi到城市Vi+1的距离.遗传算法是具有“生成+检测”的迭代过程的搜索算法。它的基本处理流程如图1所示。由此流程图可见,遗传算法是一种群体型操作,该操作以群体中的所有个体为对象。选择(Selection)、交叉(Crossover)和变异(Mutation)是遗传算法的3个主要操作算子,它们构成了所谓的遗传操作(geneticoperation),使遗传算法具有了其它传统方法所没有的特性。遗传算子包含如下6个基本因素:参数编码:由于遗传算法不能直接处理解空间的解数据,因此必须通过编码将它们表示成遗传空间的基因型串结构数据。生成初始群体:由于遗传算法的群体型操作需要,所以必须为遗传操作准备一个由若干初始解组成的初始群体。初始群体的每个个体都是通过随机方法产生。适应度评估检测:遗传算法在搜索进化过程中一般不需要其他外部信息,仅用适应度(fitness)值来评估个体或解的优劣,并作为以后遗传操作的依据。选择(selection):选择或复制操作是为了从当前群体中选出优良的个体,使它们有机会作为父代为下一代繁殖子孙。个体适应度越高,其被选择的机会就越多。此处采用与适用度成比例的概率方法进行选择。具体地说,就是首先计算群体中所有个体适应度的总和(),再计算每个个体的适应度所占的比例(),并以此作为相应的选择概率。交叉操作:交叉操作是遗传算法中最主要的遗传操作。简单的交叉(即一点交叉)可分两步进行:首先对种群中个体进行随机配对;其次,在配对个体中随机设定交叉处,配对个体彼此交换部分信息。(6)变异:变异操作是按位(bit)进行的,即把某一位的内容进行变异。变异操作同样也是随机进行的。一般而言,变异概率都取得较小。变异操作是十分微妙的遗传操作,它需要和交叉操作配合使用,目的是挖掘群体中个体的多样性,克服有可能限于局部解的弊病。这6个要素构成了遗传算法的核心内容,其流程如图1所示。图1遗传算法的基本流程遗传算法解题的基本步骤如下:Step1:参数设置及种群初始化;Step2:对不可行解进行贪婪修复;Step3:适应度评价;Step4:轮盘赌选择;Step5:交叉;Step6:变异;Step7:对不可行解进行贪婪修复;Step8:适应度评价;Step9:终止条件判断,若未达到终止条件,则转到Step4;Step10:输出结果。五、运行结果初始种群中的一个随机值:Rlength=+004Rlength=+004迭代次数c400迭代后结果Rlength=+00436个城市坐标随机化结果遗传算法求解结果六、结果分析由遗传算法对以上求解可以看出,用遗传算法来求解TSP问题是可行的。用遗传算法求解时,增加迭代次数,可以得到更加优良的结果,但是会需要更长的时间,即一个优良的结果往往是以时间为代价的,这种情况要依据具体问题具体分析,平衡两者在问题求解时的比重。另外,对选择算法进行优化,会提高遗传算法的性能,这些都需要在实践中不断积累和广泛涉猎优良算法。最后,遗传算法得到的未必是最优解,我们可以根据需要进行多次求解,从而比较得出符合要求的结果。七、程序源代码a=[13042312;36391315;41772364;37121399;34881535;33261556;...32381229;41961044;4312790;2864570;19271970;25621756;...27881491;23811676;1332695;37151678;39182179;40612370;...37802212;36762578;15372838;27452931;34291908;35072376;...27881491;23811676;1332695;37151678;39182179;40612370;...37802212;36762578;15372838;27452931;34291908;35072376;...];%a:假定的36个城市的坐标n=100;%n:种群个数C=200;%C:停止代数m=2;%m:适配值淘汰加速指数,不宜太大Pc=;%Pc:交叉概率Pm=;%Pm:变异概率D=distance(a);%生成距离矩阵[R,Rlength]=GeneTSP(D,a,n,C,m,Pc,Pm);function[R,Rlength]=GeneTSP(D,a,n,C,m,Pc,Pm)[N,NN]=size(D);%(31*31)farm=zeros(n,N);%存储种群%随机生成初始种群,随机产生从1到N的N个初始值,例如,RANDPERM(6),可能结果为:[245613].fori=1:nfarm(i,:)=randperm(N);endR=farm(1,:);%一个随机解(个体)scatter(a(:,1),a(:,2),'x');%画出所有点,a(:,1):X坐标,a(:,2):Y坐标holdonpause(1)%画出随机解得路径图figure;plotaiwa(a,R);holdonpause(1)%输出随机的解得路径和总距离disp('初始种群中的一个随机值:')Rlength=myLength(D,R)%计算各个个体总距离和适配置len=zeros(n,1);%存储路径长度fitness=zeros(n,1);%存储适配值counter=0;whilecounter<Cfori=1:nlen(i,1)=myLength(D,farm(i,:));%计算路径长度endminlen=min(len);rr=find(len==minlen);%返回的是在len中路径最短的路径坐标(i,1)R=farm(rr(1,1),:);%更新最短路径FARM=farm;%优胜劣汰,nn记录了复制的个数%选择K=23;[aa,bb]=size(FARM);FARM2=FARM;len2=len;[len]=sort(len);fori=1:aatt=find(len2==len(i,1));FARM(i,:)=FARM2(tt(1,1),:);endfori=1:Kj=aa+1-i;FARM(j,:)=FARM(i,:);end%交叉操作[aa,bb]=size(FARM);FARM2=FARM;fori=1:2:aaifPc>rand&&i<aa%交叉概率PcA=FARM(i,:);B=FARM(i+1,:);[A,B]=cross(A,B);%交叉算法采用部分匹配交叉FARM(i,:)=A;FARM(i+1,:)=B;endend%变异FARM2=FARM;fori=1:aaifPm>=randFARM(i,:)=mutate(FARM(i,:));endendFARM=[R;FARM];%将随机产生的n-aa个体加入从后面种群

温馨提示

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

评论

0/150

提交评论