您当前的位置:首页 > 问答 > 内容

johnson算法(熟悉路径计算时间里解)

本文目录

  • 熟悉路径计算时间里解
  • 约翰逊算法的公式
  • Johnson算法的内容是怎么样的
  • 《企业运营管理》名词解释(急)
  • 数据结构,为什么详解!
  • c++ 排序
  • 求问,matlab里实现Johnson变换用什么算法
  • ford-johnson algorithm是什么算法

熟悉路径计算时间里解

常用的最短路径算法有:Dijkstra算法、Bellman-Ford算法、Floyd-Warshall算法、Johnson算法最短路径算法可以分为单源点最短路径和全源最短路径。单源点最短路径有Dijkstra算法和Bellman-Ford算法,其中Dijkstra算法主要解决所有边的权为非负的单源点最短路径,Bellman-Ford算法可以适用权值有负值的问题。全源最短路径主要有Floyd-Warshall算法和Johnson算法,其中Floyd算法可以检测图中的负环并可以解决不包括负环的图中全源最短路径问题,Johnson算法相比Floyd-Warshall算法,效率更高。算法性能分析在分别讲解这四个算法之前先来理清下这个四个算法的复杂度:Dijkstra算法直接实现时间复杂度是O(n²),空间复杂度是O(n)(保存距离和路径),二叉堆实现时间复杂度变成O((V+E)logV),Fibonacci Heap可以将复杂度降到O(E+VlogV);Bellman-Ford算法时间复杂度是O(V*E),SPFA是时间复杂度是O(kE);Floyd-Warshall算法时间复杂度是O(n³),空间复杂度是O(n²);Johnson算法时间复杂度是O( V * E * lgd(V) ),比Floyd-Warshall算法效率高。

约翰逊算法的公式

约翰逊法是作业排序中的一种排序方法。这种方法适用的条件是:n个工件经过二、三台设备(有限台设备)加工,所有工件在有限设备上加工的次序相同。为了便于阐述这种方法的具体做法,下面结合一个例子来进行说明:例:有五个工件在二台设备上加工,加工顺序相同,现在设备1上加工,再在设备2上加工,工时列于下表1中,用约翰逊法排序。表1 加工工时表具体步骤为:第一步,取出最小工时t12=2。如该工时为第一工序的,则最先加工;反之,则放在最后加工。此例是A工件第二工序时间,按规则排在最后加工。第二步,将该已排序工作划去。第三步,对余下的工作重复上述排序步骤,直至完毕。此时t21=t42=3,B工件第一工序时间最短,最先加工;D工件第二工序时间最短,排在余下的工件中最后加工。最后得到的排序为:B-C-E-D-A。整批工件的停留时间为27分钟。更一般的情况是工件加工顺序不同,称为随机性排序。由杰克逊对约翰逊法稍加改进后得到求解方法,称为杰克逊算法。[周期性生产类型作业计划编制] 周期性生产类型由于是多产品轮番生产,零件数量又十分大,作业计划的难度比较大。作业计划分厂部计划和车间计划。在车间计划中的作业排序问题是一件十分困难的工作。一、 厂部作业计划厂部作业计划一般只以产品作为计划单位,如产品结构比较简单,厂部计划的能力又很强,也可做部件计划。在确定了周期性生产类型的期量标准的基础上,根据其量标准下达产品的生产批量,以及投入出产的时间,就是厂部计划的主要内容。实际上,采用这种生产方式的企业由于产品大结构复杂,产品生产周期比较长,往往都超过一个月。厂部都是根据订单安排月度计划,当品种数量比较多时,很难做批量计划,这时的厂部计划主要下达月度的生产总量和具体的产品品种规格。由于产品周期垮了数个月,还要下达产品的出产日期、毛坯的投入出产期和机加工的投入出产期,计划单位为产品。部件和零件的生产计划由车间考虑。二、 车间作业计划车间接到的生产任务是一个计划期的总生产量,车间要进一步细分任务,分批生产。主要考虑的问题是生产能力的平衡、零部件数量上的配套、提高设备利用率、缩短生产周期、减少在制品资金占用量,所以计划难度很高。大多数企业都是凭经验安排计划。作车间作业计划时,有一些定量模型和方法可供适用,如多品种轮番生产的最小生产费用计划方法就是其中常用的一种。。三、 作业排序周期性生产类型的生产组织形式是工艺专业化,车间往往就是生产过程中的某个工艺阶段,每个零件在车间内要经过某几个工序的加工。因此车间的作业计划中工件加工的排序问题是一个难点。其难处在于零件种类多,加工的工艺流程和加工工时差别较大。一般采取重点管住关键零件和关键设备的方法。零件加工排序问题一般可作如下描述:n种零件在有m台设备的车间内加工,每种零件加工所需要的设备数可以是不同的,加工的顺序也可以不同,要求排出效果尽可能好的工件加工次序。目前对这个问题的研究所取得的成果只能解决少数几种特殊条件下的排序问题,其思路是先确定一个优化目标,再寻求解题模型。通常取一批加工任务在车间内停留的时间最短为优化目标。下面做简要介绍。1、 n个工件在一台设备上加工这是一种最简单的排序问题,只要按如下规则排序既可以了。式中,ti为第i个工件的加工工时,该式的排序规律是加工工时短的工件先加工。2、 n个工件需经过二台设备加工比较简单的一种情况是所有工件在二台设备上加工的次序相同,此时用约翰逊法可以求解。更一般的情况是工件加工顺序不同,称为随机排序。由杰克逊对约翰逊法稍加改进后得到求解方法,称为杰克逊算法。3、 n个工件在三台设备上加工随着设备数量的增加,优化难度加大。在三台设备上加工,当满足一定条件时有优化方法。如果n个工件的加工顺序相同,且满足以下两条件中的任何一条,可用约翰逊法求解。算法如下:第一步,令Ti1=ti1+ti2Ti2=ti2+ti3得到两台虚拟设备的工序工时;第二步,对二台虚拟设备,按约翰逊法排序。对于三台设备的随机性问题还没有简便的优化方法。4、 二个工件在m台设备上加工这种情况下可用分枝定界法求解,如设备数量较大,则工作量很大,通常采用图解法。但图解法不能保证是最优解。上述四种情况在实际生产中只是少数情况,可见多数情况下还没有好的解法,一般可根据排队理论采用计算机模拟方法。 [最小批量法]最小批量法是确定批量和生产间隔期时常用的一种以量定期法。此方法从设备利用和生产率方面考虑批量的选择,要时的选定的批量能够保证一次准备结束时间对批量加工时间的比值不大于给定的数值。可用下式表示: 损失系数由经验确定,可参考下表1:表1 准备结束时间损失系数[经济批量法]经济批量法是确定批量和生产间隔期时常用的一种以量定期方法。生产费用与批量之间存在着函数关系,批量主要通过两方面因素影响生产费用:一是生产准备费用,这部分费用随生产批次增减而变化;二是保管费用,即在制品在存储保管期间所发生的费用,如仓库管理费用、资金呆滞损失、存货的损耗费用等。这些费用与批量大小和存储时间长短有关。[周期性生产类型作业计划的期量标准]周期性生产类型的作业计划的期量标准主要包括批量和生产间隔期、生产周期和生产提前期,合理制定期量标准可以使生产资源得到较好的利用。下面分别阐述这些期量标准。一、 批量和生产间隔期采用周期性生产类型的企业,由于产品体积大、结构复杂,再加上品种多等因素,不能采取月度计划一次投料生产的方法。否则不但使在制品充满生产现场,使现场一片混乱,甚至发生生产场地不够用的现象,还会占用大量的流动资金。但又不能像流水生产那样每天小批量的投料生产,所以需要确定一个合理的生产批量。批量是指一次性投入生产的同种制品的数量。每投一次需要消耗一次准备结束时间,,用于熟悉图纸、领取工卡量居、调整设备工装等等作业。生产间隔期是相邻两批同种工件投入(或产出)的时间间隔。在周期性重复生产条件下批量和生产间隔期有如下关系:批量=平均日产量*生产间隔期在生产任务稳定条件下,日产量不变,则批量与生产间隔期成正比。批量大,则间隔期长,相应的在制品数量也大,生产周期较长,这样对使用流动资金是不利的。反之,如批量小,会导致频繁变动产品,增加准备结束作业次数,多消耗准备结束时间,降低设备利用率,也是不利的。因此确定批量和生产间隔期,需要在这些因素之间进行平衡,达到既有利于流动资金的有效使用,又提高设备的利用率。确定批量和生产间隔期通常有两种方式。(一) 以量定期法当平均日产量不变时,批量与生产间隔期互为因果关系,此方法的思路为,先根据综合经济效果确定批量,然后推算生产间隔期,对间隔期做适当的修正后,再对批量做调整。这种方式又有几种具体的方法:最小批量法、经济批量法等。(二) 以期定量法此方法的思路为先确定生产间隔期,在推算出批量。按照零件复杂程度、体积大小、价值高低确定各个零件的生产间隔期,然后根据生产数量推算出批量。为了管理上的方便企业都事先制定好标准生产间隔期,数值通常取月工作日(20天)的约数,如1天、2天、4天、5天(一周)、10天、20天(1月)等等。采用这种方法使生产间隔期和相应的批量规范化了,便于管理。标准生产间隔期表如下表1所示:表1 标准生产间隔期表生产间隔期与批量的总数不宜太多,一般不超过六种为宜。二、 生产周期生产周期是指从加工对象投产起,到它完工时止所经历的日历时间。生产周期这一期量标准是编制生产作业计划和确定产品及其零件在各工艺阶段投入和产出日期的主要依据,是成批生产作业计划的一项重要期量标准。对产品来说,它的生产周期包括毛坯准备、零件加工、部件装配、成品总装、油漆,直到入库为止的全部时间,如下图2所示:图2 产品生产周期结构示意图生产周期可以按零件工序、零件加工过程和产品进行计算。其中零件工序生产周期是计算产品生产周期的基础。这里分别介绍它们的计算方法:1、 零件工序生产周期指一批零件在某道工序上的作业时间。计算公式如下:式中:Tp--修正后的零件加工生产周期;a--为平行系数。上述公式也适用于计算装配阶段的生产周期。2、 产品生产周期产品生产周期是各工艺阶段的生产周期与所有保险期之和。[多品种轮番生产的最小生产费用计划方法]多品种轮番生产的最小生产费用计划方法是车间制定生产作业计划时常可用到的一种很有用的定量方法。这种方法的思路是将计划期划分为几个长度相等的循环流程,在每个循环流程中实行多品种轮番生产;以循环流程长度作为因变量,列出生产费用函数,求出最小费用循环流程;最后从该流程长度推算出各品种的批量。设:Di--第i种产品计划期需求量;Pi--第i种产品计划期生产能力;tmi--第i种产品单件加工时间,tmi=1/Pi;ti--第i种产品批量生产时间,ti=Qi·tmi;tsi--第i种产品准备与结束时间;Si--第i种产品一次准备、结束单位时间的费用;Ci--第i种产品单位产品计划期储存费用;Qi--第i种产品生产批量;Ii--第i种产品在制品数量;L--循环流程长度,

Johnson算法的内容是怎么样的

Johnson算法适用于求All Pairs Shortest Path. Johnson算法应用了重标号技术,先进行一次Bellman-Ford算法,然后对原图进行重标号,w’(i,j)=h[i]-h[j]+w(i,j)。然后对每个点进行一次Dijkstra,每次Dijkstra的复杂度为O(nlogn+m),于是算法复杂度为O(n^2logn+m)。 关于求解流水作业调度问题的 Johnson 算法具体描述:http://www.cnitblog.com/jsjzzm/archive/2006/11/07/18939.html

《企业运营管理》名词解释(急)

1.流水线:流水线是在一定的线路上连续输送货物搬运机械,又称输送线或者输送机。2.生产与运作战略:生产与运作战略是企业总体战略下的职能战略,是在企业总体战略框架下,按照所选定的目标市场和确定的竞争战略,对企业经营领域的生产系统的建立和运行制定全局性的规划,它根据企业各种资源要素和内部、外部环境的分析,构建和运行一个能使企业获得竞争优势、适应市场需求并不断发展的生产与运作系统,保证企业总体战略目标的实现。3. 节拍:节拍是指在一个工作站上完成相邻两个产品的实际时间,又可称之为产品间隔时间。4.聚集效应:是指各种产业和经济活动在空间上集中产生的经济效果以及吸引经济活动向一定地区靠近的向心力,是导致城市形成和不断扩大的基本因素。5. Johnson算法:Johnson算法适用于求All Pairs Shortest Path. Johnson算法应用了重标号技术,先进行一次Bellman-Ford算法,然后对原图进行重标号,w’(i,j)=h[i]-h[j]+w(i,j)。然后对每个点进行一次Dijkstra,每次Dijkstra的复杂度为O(nlogn+m),于是算法复杂度为O(n^2logn+m)。 6.生产系统的柔性:所谓柔性生产即通过系统结构、人员组织、运作方式和市场营销等方面的改革,使生产系统能对市场需求变化作出快速的适应,同时消除冗余无用的损耗,力求企业获得更大的效益。7.经济订货批量:即Economic Order Quantity是固定订货批量模型的一种,可以用来确定企业一次订货(外购或自制)的数量。当企业按照经济订货批量来订货时,可实现订货成本和储存成本之和最小化。 8. 假定产品:是指按各种具体产品工作量比重构成的一种实际上不存在的产品,为结构与工艺差异大的产品假定的一个统一的计量单位,来核定企业的生产种具体产品的生产能力能力的方法。9.精益生产:是通过系统结构、人员组织、运行方式和市场供求等方面的变革,使生产系统能很快适应用户需求不断变化,并能使生产过程中一切无用、多余的东西被精简,最终达到包括市场供销在内的生产的各方面最好的结果。与传统的大生产方式不同,其特色是“多品种”,“小批量”。10.生产一体化:指生产过程的全球化,是从生产要素的组合到产品销售的全球化,跨国公司是生产一体化的主要实现者。11.质量:质量是产品或服务的总体特征和特性,基于此能力来满足明确或隐含的需要。12.5S:它对生产现场环境全局进行综合考虑,并制订切实可行的计划与措施,从而达到规范化管理。13.全面质量管理:是指在全面社会的推动下,企业中所有部门,所有组织,所有人员都以产品质量为核心,把专业技术,管理技术,数理统计技术集合在一起,建立起一套科学严密高效的质量保证体系,控制生产过程中影响质量的因素,以优质的工作最经济的办法提供满足用户需要的产品的全部活动。 14.PDCA循环:它是全面质量管理所应遵循的科学程序。全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程15.牵引式生产系统 :在加工装配式生产中,从市场需求出发,由市场需求信息牵动产品装配,再由产品装配牵动零件加工,将物料流和信息流是结合在一起的的生产系统。

数据结构,为什么详解!

AB-----------------------判断有否环,就是要知道 if( v0 == vm) 即判断 某一个点和查找过程中的另一个点,是否是同一个点我的想法是这样的,希望和大家交流下..1.[深度优先遍历]的概念:假定每一个点都没被访问过。从起点开始,找邻接的点。对每个点,只要存在有向的路径,查找就可以继续,顺藤摸瓜(同时把经过的点给标记成“已访问”)。一旦遇到“已访问”就表示,有环路。2.[拓扑],一般判断环路都靠它任一有向无环图,必定有拓扑排序(有可能多个)所以如果拓扑排序成功,则无环路;排序失败,则有环路3.[求最短路径]的算法很多,Dijkstra算法,SPFA算法,Floyd-Warshall算法,Johnson算法,Bellman-Ford算法..我想这里指的是Dijkstra算法吧,Dijkstra解决的问题是:指定起始点,计算它到图中各点的最小路径。条件是图中无负权。Dijkstra的想法是“最短路径的前缀一定是最短路径”,于是有环的路径肯定被剔除,但是被剔除的不一定都有环啊,所以没法直接判断这整个图有没有环。4.[求关键路径]求关键路径的前提是无环...一般求关键路径之前会先用[拓扑]验证一下是否有环5.[广度优先搜索]广度优先搜索,好比树的层次遍历。在有向图中,广度优先搜索不能判断环路 —— 无法通过判断“已访问”而断定回路。

c++ 排序

写的好像不是很清楚,可能描述存在问题 ------------------------------------噢,题我是看懂了,给我点时间,挑选最大最小值我有思路,就是把列移到最后或是最前应该是再新建一个数组专门来保存列数,具体实现我还需要整理一下。 代码如下,实现了你说的功能,代码写到网页上格式的层次感就不明显了。*******************************************#include《iostream》using namespace std;int a,b,c;//这里我暂且把数组长度设为4,你可以根据需要改变数值int i,j,k,m=1,x=3,y=0;//i,j,k这些都是循环控制变量,m是用来判断a[i]和b[i]是否是最小值void main(){ cout《《“输入第一行的数\n“; //第一行的数字保存到a for(i=0;i《4;i++) {cin》》a[i];} cout《《“输入第二行的数\n“; //第二行的数字保存到b for(i=0;i《4;i++) {cin》》b[i];}//**********************************三层循环,宜从里面开始看./ for(k=0;k《4;k++) /*依次找到第1,2,3,4个最小值,*/ { for(i=0;i《4;i++) /*依次判断最小值是否在第i=0,1,2,3列*/ { m=1; for(j=0;j《4;j++) /*最内层是判断第i列里面是否包含所有数的最小值*/ { /*如果不是就把判断初值不为0的变量m的值改为0*/ if((a[i]》a[j]||a[i]》b[j])&&(b[i]》a[j]||b[i]》b[j]))/*经过本层循环后a[i]就与所有数字比较了一次,如果a[i]》b[j]或a[i]》a[j]说明a[i]不是最小值,如果a[i],b[i]都不是最小值,即最小值不在这一列*/ {m=0;}/*之后把m改为0*/ } if(m==1&&a[i]》b[i])//m为初值1,即最小值在这一列,如果在第二行 { c[x]=i+1; //将 列标号(i+1) 赋值给c第x个元素(x初始为3,即c的最后一个), x--; a[i]=6553; //通过给这一列赋足够大的数达到类似删除这一行 的效果, b[i]=6555; //这个足够大的数只要比8个数都大就行,也可以把8个数的最大值赋给它. break; }//这里break相当重要,不然当它前面的最小值删掉之后,它不停止就又找到剩下的最小值,会是c[i]前后交叉了 } if(m==1&&a[i]《=b[i])//m为初值1,即最小值在这一列,如果在第一行 { c[y]=i+1; //将 列标号(i+1) 赋值给c第y个元素(y初始为0,即c的第一个), y++; //并将光标向后移动一位,(前面说的交叉就是循环次数过的x,y交叉了) a[i]=65535; b[i]=65535; break; } } } cout《《“调整后的列标号为\n“; for(i=0;i《4;i++) //输出调整后的列标号c { cout《《“ “《《c[i]《《“ “; } cout《《endl; } /*******************************************还有另外一种思路,根据运行后的结果可知前面的数是按第一行的数依次增大的。倒在看,后面的数是按第二行的数依次增大的这样就好办了*/

求问,matlab里实现Johnson变换用什么算法

最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。 实现代码如下: 02 Jul 2015 hui cheng 06 May 2015 Mei Dong...

ford-johnson algorithm是什么算法

算法是用来解决一个问题的程序或者公式。“算法”(algorithm)这个词源自生活在公元9世纪的波斯数学家Al-Khowarizmi。一个电脑程序可以被看成是一个精心设计的算法。在数学和电脑学科,一个算法通常意味着一个可以解决循环问题的小程序。width=“295“ height=“33“ usemap=“#MapMap2Map“ border=“0“》


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 如何给孩子讲性教育,如何正确教育孩子性知识(注册商标®、商标™、©)

下一篇: 小本创业干点什么好,自己0基础怎么创业(分享几个穷人创业小项目)



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号