欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    自动化立体仓库课程设计xin.doc

    • 资源ID:66763551       资源大小:1.59MB        全文页数:56页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    自动化立体仓库课程设计xin.doc

    目录1.绪论12.货位规划12.1设计条件12.2计算系数矩阵22.2.1符号假设22.2.2已知条件22.2.3计算系数矩阵32.3运用匈牙利算法求解42.4最终的货位规划图112.5运行结果122.6设计总结123.堆垛机径路规划133.1设计条件133.2计算节点相对距离133.2.1符号假设143.2.2已知条件143.2.3计算节点相对距离143.3规划堆垛机合理线路163.3.1最近邻点法163.3.2最近插入法183.3.3两种方法的程序运行结果233.4分析结果233.5设计总结24参考文献25附录261.绪论自动化立体仓库作为现代物流行业的重中之重,发挥着十分重要的作用,实现这些功能的直接机构包括:(1)自动仓储设备(自动化立体仓库)(2)其他货架(平面托盘货架和流动货架等)(3)各种输送机(皮带输送机、升降移载机、提升机等)(4)各种分拣设备(5)无人台车(AGV、RGV、LGV)(6)其他各种辅助设备。运用一流的集成化物流理念,采用先进的控制、总线、通讯和信息技术,通过以上设备的协调动作,按照用户的需要完成指定货物的自动有序、快速准确、高效的入库出库作业。自动化立体仓库是现代物流系统中迅速发展的一个重要组成部分,它具有节约用地、减轻劳动强度、消除差错、提高仓储自动化水平及管理水平、提高管理自动化立体仓库是现代物流系统中迅速发展的重要组成部分,它具有和操作人员素质、降低储运损耗、有效地减少流动资金的积压、提高物流效率等诸多优点。与厂级计算机管理信息系统联网以及与生产线紧密相连的自动化立体仓库更是当今必不可少的关键环节。自动化所围绕自动化仓储系统开发了多种自动化系统硬件设备及软件产品,如:不同类型的管理软件、系统仿真软件、图形控制及调度软件、堆垛机输送机控制软件、条形码识别跟踪系统、搬运机器人、码垛机械手、自动运行小车、货物分选系统、堆垛机认址检测系统、货位探测器、高度检测器、输送系统、码垛系统、自动输送小车等产品。2.货位规划2.1设计条件某自动化立体仓库采用2行3列的单元货格式货架存放货物,一共有6个货格,每个货格存放一个托盘货物。货格以按列编码的形式进行编号,如图2.1所示。已知其它参数假定如下:假设堆垛机在水平方向的行驶速度Vx=3.0m/s,在垂直方向的行驶速度Vy=2m/s;货格大小为L(长)×W(宽)×H(高)=1m×1m×0.8m;堆垛机初始状态在原点0处;货格j的横坐标和纵坐标就是其所在的列和行,如货格6的坐标为(3,2)。现有6个托盘货物需要存放到货架上,货物的出入库频率如表2.1所示。Vy2461350Vx图2.1原始货格图表2.1 托盘货物出入库频率表货物频率货物频率货物频率A6C15E4B30D9F20根据以上条件,利用匈牙利算法合理安排各托盘货物的存放位置。2.2计算系数矩阵2.2.1符号假设1.为第i种货物的出入库频率(次数),i=A,B,C,D,E,F;2,分别为货格j的横坐标和纵坐标,即货格j所在的列和行(距离巷道口最近的列记为第1列,最底层记为第1层),j=1,2,3,4,5,6;3为水平方向的行驶速度;4.为垂直方向的行驶速度;5.L为货格的长;6.W为货格的宽;7.H为货格的高;8.为堆垛机运行之货格j所用时间,该时间是堆垛机行进过程中水平方向和垂直方向所用时间的最大值,j=1,2,3,4,5,6;9. 为堆垛机将货物i向货格j存取时所花费的时间。2.2.2已知条件=6,=30,=15,=9,=4,=20;=3.0m/s, =2.0m/s;L×W×H=1m×1m×0.8m;货格1的坐标为(,)=(1,1);货格2的货格为(,)=(1,2);货格3的坐标为(,)=(2,1);货格4的坐标为(,)=(2,2);货格5的坐标为(,)=(3,1);货格6的坐标为(,)=(3,2)。2.2.3计算系数矩阵1.计算:公式为=max (2.1)=max=max=1/3=max=max=2/5=max=max=2/3=max=max=2/3=max=max=1=max=max=12.计算系数矩阵中的系数:= (2.2)=6×1/3=2, =30×1/3=10, =15×1/3=5,=9×1/3=3, =4×1/3=4/3,=20×1/3=20/3;=6×2/5=12/5,=30×2/5=12,=15×2/5=6,=9×2/5=18/5,=4×2/5=8/5,=20×2/5=8;=6×2/3=4,=30×2/3=20,=15×2/3=10,=9×2/3=6,=4×2/3=8/3,=20×2/3=40/3;=6×2/3=4,=30×2/3=20,=15×2/3=10,=9×2/3=6,=4×2/3=8/3,=20×2/3=40/3;=6×1=6,=30×1=30,=15×1=15,=9×1=9,=4×1=4,=20×1=20;=6×1=6,=30×1=30,=15×1=15,=9×1=9,=4×1=4,=20×1=20;得到系数矩阵表: 表2.2系数矩阵表ABCDEF1210534/320/3212/512618/58/5834201068/340/344201068/340/3563015942066301594202.3运用匈牙利算法求解1. 匈牙利算法的步骤第一步:建等效矩阵。(1) 从系数矩阵的每行元素中减去该行的最小元素。(2) 再从所得系数矩阵的每列元素中减去该列的最小元素。第二步:找独立0元素,进行试指派。(1)从只有一个0元素的行(或列)开始,给这个0元素加括号(0),表示这行所代表的货格已有一种货物分配。然后划去(0)所在列(或行)的其它0元素,记作“”,表示这列所代表的货物已指派。(2)对只有一个0元素的列(或行)的0元素加括号(0),然后划去(0)所在行(或列)的0元素,记作“”。如果在(1),(2)两步中,遇到每一行和每一列都有两个或两个以上的0元素,可任选一个加括号,同时把其所在行和列的0元素都划去。(3)重复(1),(2)两步,直到所有0元素都被加括号或打叉。(4)加括号的0元素即为独立0元素,若其个数m等于矩阵的阶数n,则已得到问题的最优解。若m<n,则转入第三步。第三步:用最少的直线覆盖所有0元素。(1)对没有独立0元素的行打“”。(2)对以打“”的行中所含0元素的列打“”。(3)再对(2),(3),直到得不到新的打“”的行、列为止。(4)将没有打“”的行和以打“”的列用直线覆盖,且直线的数目一定等于独立0元素的个数。转第四步。第四步:增加0元素。 从没有被直线覆盖的元素中找出最小元素。未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,转第二步,重新确定独立0元素。2应用过程(1)给系数矩阵表乘以15, 从系数矩阵的每行元素中减去该行的最小元素, 再从所得系数矩阵的每列元素中减去该列的最小元素,得到等效矩阵。 (2)从只有一个0元素的第2行开始,给这个0元素加括号(0),表示这行所代表的货格已有一种货物分配。然后划去(0)所在列的其它0元素,记作“”,表示这列所代表的货物已指派。对只有一个0元素的第1列的0元素加括号(0),然后划去(0)所在行的0元素,记作“”。 独立0元素的个数m=2<矩阵的阶数n=6,转入下一步。(3)用最少的直线覆盖所有0元素。对第3、4、5、6行打“”。对第5列打“”。得不到新的打“”的行、列,停止。将没有打“”的行和已打“”的列用直线覆盖,且直线的数目一定等于独立0元素的个数。 (4)增加0元素。 从没有被直线覆盖的元素中找出最小元素2。未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=3n=6,用最少的直线覆盖所有0元素。m<n重新确定独立0元素用直线覆盖 (5)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=3n=6,用最少的直线覆盖所有0元素。重新确定独立0元素 用直线覆盖 m<n (6)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=4n=6,用最少的直线覆盖所有0元素。m<n重新确定独立0元素用直线覆盖 (7)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=4n=6,用最少的直线覆盖所有0元素。重新确定独立0元素m<n用直线覆盖 (8)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=4n=6,用最少的直线覆盖所有0元素。m<n重新确定独立0元素用直线覆盖 (9)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=5n=6,用最少的直线覆盖所有0元素。重新确定独立0元素m<n用直线覆盖 (10)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=5n=6,用最少的直线覆盖所有0元素。m<n用直线覆盖重新确定独立0元素 (11)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=5n=6,用最少的直线覆盖所有0元素。重新确定独立0元素m<n用直线覆盖 (12)继续增加0元素,即从未被直线覆盖的元素中找出一个最小元素,未被覆盖的元素都减去该最小元素,而被两条线覆盖的元素都加上该最小元素,其它元素不变。这样得到新系数矩阵,然后重新确定独立0元素。矩阵中独立0元素的个数m=n=6,所以问题已得最优解,将矩阵中的非0元素变为0,将独立0元素变为1。重新确定独立0元素m=n 由解可得最优分配方案:A货物放5货格,B货物放1货格,C货物放3货格,D货物放4货格,E货物放6货格,F货物放2货格。2.4最终的货位规划图2(货物F)4(货物D)6(货物E)1(货物B)3(货物C)5(货物A) 图2.2最终的规划货位图2.5运行结果2.6设计总结 通过这个设计我了解了自动化立体仓库货位规划问题,并掌握了解决这个问题的方法:匈牙利算法。利用匈牙利算法对货位进行规划,合理安排各托板货物的存放位置。将学到的计算方法灵活运用到现实问题中,可以量化的解决问题,增加了我的知识储备。在此过程中,培养了我的细心计算和认真检查能力。更重要的是,我学会了这种学习的方法,而这是日后最实用的,真的是受益匪浅,也感觉到了收获的喜悦。3.堆垛机径路规划3.1设计条件随机从图3.1中的25个货格中抽出7个货格的货物,分别用节点v1,v2,v3,v4,v5,v6,v7表示。节点间的距离用直角距离公式求解。分别用最近邻点法和最近插入法找出堆垛机存取7个托盘货物的合理路线。Vy5 (O)10 (U)15 (W)20 (X)25 (Y)4 (G)9 (K)14 (T)19 (N)24 (Q)3 (D)8 (J)13 (H)18 (E)23 (S)2 (B)7 (F)12 (I)17 (V)22 (R)1 (A)6 (C)11 (M)16 (P)21 (L)oVx图3.1 最终的货位规划图3.2计算节点相对距离从图3.1中随机抽出7个货格的货物B、J、I、T、P、X、S,分别用节点,,表示。货格和节点的相对位置如图3.2、图3.3所示。Vy5 (O)10 (U)15 (W)20 (X)25 (Y)4 (G)9 (K)14 (T)19 (N)24 (Q)3 (D)8 (J)13 (H)18 (E)23 (S)2 (B)7 (F)12 (I)17 (V)22 (R)1 (A)6 (C)11 (M)16 (P)21 (L)oVx图3.2货格相对位置图 图3.3节点相对位置图 3.2.1符号假设1. 表示节点i,i=1,2,3,4,5,6,7;2.为节点与之间的直角距离;3. 为节点i的横坐标; 为节点j的纵坐标;4. L为货格的长;5.W为货格的宽;6.H为货格的高;3.2.2已知条件节点的坐标为(,)=(1,2),节点的坐标为(,)=(2,3), 节点的坐标为(,)=(3,2), 节点的坐标为(,)=(3,4), 节点的坐标为(,)=(4,1), 节点的坐标为(,)=(4,5), 节点的坐标为(,)=(5,3);L×W×H=1m×1m×0.8m;两货格相对距离相等。3.2.3计算节点相对距离计算出所有节点之间的相对距离,直角距离公式为: (3.1)=|2-1|×1+|3-2|×0.8=1.8=|3-1|×1+|2-2|×0.8=2=|3-1|×1+|4-2|×0.8=3.6=|4-1|×1+|1-2|×0.8=3.8=|4-1|×1+|5-2|×0.8=5.4=|5-1|×1+|3-2|×0.8=4.8=|3-2|×1+|2-3|×0.8=1.8=|3-2|×1+|4-3|×0.8=1.8=|4-2|×1+|1-3|×0.8=3.6=|4-2|×1+|5-3|×0.8=3.6=|5-2|×1+|3-3|×0.8=3=|3-3|×1+|4-2|×0.8=1.6=|4-3|×1+|1-2|×0.8=1.8=|4-3|×1+|5-2|×0.8=3.4=|5-3|×1+|3-2|×0.8=2.8=|4-3|×1+|1-4|×0.8=3.4=|4-3|×1+|5-4|×0.8=1.8=|5-3|×1+|3-4|×0.8=2.8=|4-4|×1+|5-1|×0.8=3.2=|5-4|×1+|3-1|×0.8=2.6=|5-4|×1+|3-5|×0.8=2.6得到节点相对距离表: 表3.1节点相对距离表元素v1v2v3v4v5v6v7v11.823.63.85.44.8v21.81.83.63.63v31.61.83.42.8v43.41.82.8v53.22.6v62.6v73.3规划堆垛机合理线路3.3.1最近邻点法1最近邻点法的思路 (1)从零点开始,作为整个回路的起点。 (2)找到离刚刚加入到回路中的顶点最近的一个顶点,并将其加入到回路中。(3)重复步骤(2),直到所有顶点都加入到回路中。(4)最后,将最后一个加入的顶点和起点连接起来。2.应用过程 (1)先将节点加入回路中,T=。(2)从节点出发,比较其到节点,的距离,选择其最小值,加入到回路中。 Min|iN,1i7,且i1=1.8因此将加入到回路中,T=,,其结果如图3.4。 图3.4步骤2图(3)从节点出发,在节点,中,找出离最近的节点。Min|iN,1i7,且i1,2=1.8这样就是最近的点,将加入回路中,T=,其结果如图3.5。图3.5步骤3图(4)从节点出发,在,中,找出离最近的节点。Min|iN,1i7,且i1,2,3=1.6这样就是最近的点,将加入回路中,T= ,其结果如图3.6所示。图3.6步骤4图(5)从节点出发,观察离最近的节点。Min|iN,1i7,且i1,2,3,4=1.8这样就是最近的点,将加入到回路中,T= ,其结果如图3.7所示。 图3.7步骤5图(6)从节点出发,观察离最近的节点。Min|iN,1i7,且i1,2,3,4,6=2.6这样就是最近的点,将加入到回路中,T= ,其结果如图3.8所示。图3.8步骤6图(7)从节点出发,是最后一个点,直接加入就可以加入了。然后,将和相连,得到最后的解为 ,其结果如图3.9。 图3.9步骤7图 所以堆垛机运行线路为:281214202316即取送货物次序为:BJITXSP堆垛机总行驶距离为: f=1.8+1.8+1.6+1.8+2.6+2.6+3.8=163.3.2最近插入法1.最近插入法的思路(1)先将节点加入到回路中,找到最小的节点,形成一个子回路,T=,。(2)在剩下的节点中,寻找一个离子回路中某一节点最近的节点。(3)在子回路中找到一条弧(,),使得里程增量+最小。如果有多条满足条件,任选一条,然后将节点插入到和之间,用两条新的弧(,)和(,)代替原来的弧(,),并将节点加入到子回路中。(4)重复步骤(2)和(3),直到所有的节点都加入到子回路中。2.应用过程(1)比较货格相对距离表中从出发的所有路径的大小 Min|iN,1i7,且i1=1.8这样就由节点和构成的子回路,T=,如图3.10所示。图3.10步骤1图(2)然后考虑剩下的节点,到和中某一个节点的最小距离:Min,|iN,1i7,且i1,2=1.8(3)由于对称性,无论将插入到和之间往返路径中,结果都是一样的,这样,构成一个新的子回路T=,其结果如图3.11所示。图3.11步骤2图(4)接着考虑剩下的节点,到,中某一个节点的最小距离:Min,|iN,1i7,且i1,2,3=1.6(5)由图3.11可知,节点有3个位置(条弧线)可以插入。现在分析将加入到哪里合适: 插入到(,)间, =+=3.6+1.81.8=3.6 插入到(,)间, =+=1.8+1.61.8=1.6插入到(,)间, =+=1.6+3.61.8=2.4 比较上面3中情况增量,插入(,)之间的增量最小,所以将节点加入到(,),所以结果为:T= ,其子回路则变为如图3.12所示。图3.12步骤3图(6)接着考虑剩下的节点,到,中某一个节点的最小距离:Min,|iN,1i7,且i1,2,3,4=1.8由图3.12可知,节点有4个位置(条弧线)可以插入。现在分析将加入到哪里合适:插入到(,)间, =+=5.4+3.61.8=7.2 插入到(,)间, =+=3.6+1.81.8=3.6插入到(,)间, =+=1.8+3.41.6=3.6插入到(,)间, =+=3.4+5.42=6.8比较上面4中情况增量,可将插入到(,)(,)的增量最小,现选其一,这里将节点加入到(,)间,结果为:T= ,其子回路则变为如图3.13所示。图3.13步骤4图(7)接着考虑剩下的节点,到,中某一个节点的最小距离:Min,|iN,1i7,且i1,2,3,4,6=1.8由图3.13可知,节点有5个位置(条弧线)可以插入。现在分析将加入到哪里合适:插入到(,)间, =+=3.8+3.61.8=5.6 插入到(,)间, =+=3.6+3.41.8=5.2插入到(,)间, =+=3.4+3.61.8=5.2插入到(,)间, =+=3.2+1.83.4=1.6插入到(,)间, =+=1.8+3.82=3.6比较上面5中情况增量,插入(,)之间的增量最小,所以将节点加入到(,)间,结果为:T= ,其子回路则变为如图3.14所示。图3.14步骤5图(8)在最后考虑剩下的节点到,中某一节点的最小距离:Min,|iN,1i7,且i1,2,3,4,5,6=2.6有6个位置(条弧线)可以插入。现在分析将加入到哪里合适:插入到(,)间, =+=4.8+31.8=6 插入到(,)间, =+=3+2.81.8=4插入到(,)间, =+=2.8+2.61.8=3.6插入到(,)间, =+=2.6+2.63.2=2插入到(,)间, =+=2.6+2.81.8=3.6插入到(,)间, =+=2.8+4.82=5.6 比较上面6种情况增量,插入到(,)间的增量最小,所以将节点加入到(,)间,结果为:T= ,其子回路则变为如图3.15所示。图3.15步骤6图利用最近插入法所得的解为:T= ,所以堆垛机运行路线为:281420231612即取送货物次序为:BJTXSPI总距离为:f=1.8+1.8+1.8+2.6+2.6+1.8+2=14.4节省路程为:16-14.4=1.63.3.3两种方法的程序运行结果程序运行结果与手算结果一致。C+程序见附录。我通过这次实践发现运用C+等编程工具得出的结论准确,且比人工手算快捷方便。在以后的学习实践中应多加运用和提高。3.4分析结果从3.3的结果可知,最近插入法求得的运行路线比最近邻点法求得的运行路线更优。最近邻点法的算法十分简单,但是得到的方案并不十分理想,有很大的改善余地,故此法可作为进一步优化的初始方案。与之相比,最近插入法比较复杂,但是可以得到相对满意的方案。两种方法都有各自的优势,如果遇到简单的问题,比如只有三五个节点,用最近邻点法就能得出最优方案。如果遇到复杂的问题,就要采用最近插入法才能得出最优方案。3.5设计总结通过这个设计我深入了解了自动化立体仓库堆垛机径路优化问题,并掌握了解决这个问题的方法:最近邻点法和最近插入法。利用这两种方法对堆垛机径路进行了优化,得出了最优方案,通过对这两种方法的计算结果进行比较分析,让我对这两种方法有了更透彻的理解。在设计过程中,我认真对待每一步,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,为以后从事相关工作打下了坚实的基础。参考文献【1】焦永兰.管理运筹学. 北京:中国铁道出版社.2000年3月 【2】蔡临宁.物流系统规划建模及实例分析. 北京:机械工业出版社【3】李霞.区域物流规划与管理. 北京:经济科学出版社.2008【4】钱颂迪.运筹学(第三版).北京:清华大学出版社.2005【5】郝勇.张丽.黄健伟.物流系统规划与设计. 北京:清华大学出版社.2008【6】刘昌祺.董良.自动化立体仓库设计. 北京:机械工业出版社.2004【7】贾争现.物流配送中心规划与设计. 北京:机械工业出版社.2008【8】何善君.自动小车存取系统的建模及若干关键技术研究.D.厦门大学,2008.【9】李梅娟.自动化仓储系统优化方法的研究.D.大连理工大学,2008.【10】商允伟、刘长有.自动化仓库货位分配优化问题研究.J.计算工程与应用,2004.【11】魏飞、周燕飞.自动化立体仓库中复合出入库作业的优化.起重运输机械,2007(07).【12】周奇才.自动化仓库系统运行的优化控制.J.起重机械,2000(03).【13】周奇才.基于现代物流的自动化立体仓库系统管理.D西南交通大学,2002.【14】邹晖华、胡吉全.自动化立体仓库分配策略优化研究.J.科技资讯,2006(17). 附录1.匈牙利算法源程序代码#include "stdio.h"#include "fstream.h"#include "iostream"#include <iomanip.h>#define TRUE 1#define FALSE 0#define BOOL intusing std:ios_base;BOOL OutPut(double *,int);void MaxSubstract(double *A,int n);double GetMaxItem(double *A,int n);double Min(double *,int,int,int =0);/求某一行或列的最小值int Adjust(double *,int);/调整效率矩阵使每一行列都含有零元素int Record(double *,double *,int ,int *,int *);int MinCount(double *,int,double *);/找出含有零元素最少的某行(列)int Choose(double *,int,int *,int *,int,int,int,int&,int *,int *);int LocalFirst(double *,int,int,int =1);/找出独立零的位置int Change(double *,double *,int ,int *,int *,int *R,int *C);/覆盖int Allot(double *,double *,int ,int *,int *);/全局分配void Print(double *A,double *M,int n,int *Row,int *Col,int *P,int *Q,int *P1=NULL,int *Q1=NULL);/画出分配的步骤ofstream myfile("匈牙利算法演算过程.txt",ios_base:out);int main() int n = 6;double r16 = 30,150,75,45,20,100; double r26 = 36,180,90,54,24,120; double r36 = 60,300,150,90,40,200;double r46 = 60,300,150,90,40,200;double r56 = 90,450,225,135,60,300;double r66 = 90,450,225,135,60,300;double *k6 = r1,r2,r3,r4,r5,r6;double *A = k;double *M=NULL;if (n>0) M=new double*n;for (int i=0;i<n;i+)Mi=new doublen;for (i=0;i<n;i+)for (int j=0;j<n;j+)int *Row=new intn;int *Col=new intn;for (int i=0;i<n;i+)Rowi=Coli=0;/cout<<"=原矩阵="<<endl;myfile<<"原矩阵:"<<endl;OutPut(A,n);for (i=0;i<n;i+)for (int j=0;j<n;j+)cout<<setiosflags(ios_base:fixed);cout<<setw(8)<<setprecision(4)<<Aij;cout<<endl;cout<<endl;myfile<<endl;Adjust(A,n);Record(A,M,n,Row,Col);Allot(A,M,n,Row,Col);cout<<endl;cout<<endl<<endl;return 0; BOOL OutPut(double *A,int n)for (int i=0;i<n;i+)for (int j=0;j<n;j+)/cout<<setiosflags(ios_base:fixed);/cout<<setw(8)<<setprecision(4)<<Aij;myfile<<setiosflags(ios_base:fixed);myfile<<setw(8)<<setprecision(8)<<Aij;/cout<<endl;myfile<<endl; return TRUE;double GetMaxItem(double *A,int n) double max = A00;for (int i=0;i<n;i+) for (int j=0;j<n;j+) if (max < Aij) max = Aij;/cout<<"获取最大元素值得:"<<max<<endl;/cout<<endl;return max; void MaxSubstract(double *A,int n) int max = GetMaxItem(A,n);for (int i=0;i<n;i+) for (int j=0;j<n;j+) Aij = max - Aij;/cout<<"最大元素都减去每个元素得矩阵:"<<endl;/OutPut(A,n);/找出第n行(列)

    注意事项

    本文(自动化立体仓库课程设计xin.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开