CN1144569A - 资源分配 - Google Patents

资源分配 Download PDF

Info

Publication number
CN1144569A
CN1144569A CN95192287A CN95192287A CN1144569A CN 1144569 A CN1144569 A CN 1144569A CN 95192287 A CN95192287 A CN 95192287A CN 95192287 A CN95192287 A CN 95192287A CN 1144569 A CN1144569 A CN 1144569A
Authority
CN
China
Prior art keywords
resource
cost
time
give
technician
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN95192287A
Other languages
English (en)
Other versions
CN1097798C (zh
Inventor
保罗·沃克
罗伯特·诺埃尔·威廉·莱思韦特
约翰·登曼
戴维·莫滕
格温·勒韦德·威廉斯
迈克·朱布
艾伦·泰勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trimble Inc
Original Assignee
British Telecommunications PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB9416596A external-priority patent/GB9416596D0/en
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN1144569A publication Critical patent/CN1144569A/zh
Application granted granted Critical
Publication of CN1097798C publication Critical patent/CN1097798C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Hardware Design (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Feedback Control In General (AREA)
  • General Factory Administration (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Diaphragms For Electromechanical Transducers (AREA)
  • Transplanting Machines (AREA)

Abstract

为了优化执行多个作业中的资源利用(诸如技术人员),赋予各作业一个与时间相关的成本函数并为各资源估计其将可以利用的时间。为作业与资源的各种组合能够确定一个实际成本。然后确定给出最低整体成本的组合。还公开了附加特征以保证不分配不相容的作业/资源组合,及通过优先化作与资源而降低计算复杂性。

Description

资源分配
本发明涉及优化分配多个资源给多个作业的方法并涉及执行这一方法的装置。它特别适用于资源的可利用性及要执行的作业两者都是动态改变的情况中。这种情况的实例便是分配作业给现场工作队,例如救护车或出租车司机、车辆修理现场召集队、或者诸如供电或供水或电信网等分布式系统的现场维修队。
在这些情况中工作量是高度可变与短暂的,并由于必要的响应时间具有作业本身长度的数量级且远比技工的工作日为短而必须实时分配作业。单个作业的持续时间本身也是高度可变的,这便影响了等待分配的那些作业的资源可利用性。
分配作业给资源的各种成本分析算法是已知的,诸如1955年HWKuhn的论文“分配问题的匈牙利方法”中所描述的所谓“匈牙利算法”(海军研究所后勤季刊,卷2,83-97页)及MB Wright进一步发展的“加快匈牙利算法”,计算机操作研究,卷17,一号,95-96页(1990)。然而在实际情况中使用这些算法并不容易。
按照本发明的第一方面提供了分配多个资源给多个作业的方法,用计算机执行下述步骤:
—确定各资源预测成为可利用的时间;
—确定需要执行各作业的时间;
—分配给各作业作为将执行该作业的时间的函数计算的一个与时间相关的成本函数;
—对各种可能的作业与资源组合,根据各资源预测可利用的时间及该时间上各作业的成本函数值,确定总的预计成本;
—确定产生最小总预计成本的组合。
可操作这一方法使得当一个资源成为可利用时便执行上述步骤,然后将可利用的资源分配给在上述过程中所识别出的最小成本组合中与之关联的作业。
可在这多个作业上增加新的作业,当发生这种增加时,便执行上述方法。
如果在或接近其预测时间第二个资源成为可利用并且自从上次执行优化确定以来未发生其它变化,可将第二资源分配给事先计算出的最低成本组合中已分配给它的作业。
可将本方法配置成使不相容的资源与作业组合具有基本上无穷大的成本值。如果希望分配一个特定的资源给一个作业,则可以将该作业与其它资源的组合配置成作为不相容对待。
可在执行作业的时间的基础上优先化作业,及在预测首先成为可利用的基础上优先化资源。成本估计可对具有最高优先级的预定数目的作业进行。
本方法可容许中断低优先级作业而容许一高优先级作业代替它进行。
如果作业多于资源,则在分析中可包含虚设资源。将高值指派给分配给这些资源的作业的成本函数。
在成本分值计算中可用一个单一的作业来代表一组密切相关的作业,该组中的其它作业如果相容便分配相同的资源。
按照本发明的第二方面,提供了分配多个资源给多个作业的装置,包括:
—用于存储关于资源的参数的装置;
—用于存储关于作业的参数的装置;
—用于从参数中确定各资源预测成为可利用的时间的装置;
—用于从参数中确定需要执行各作业的时间的装置;
—用于分配给各作业一个作为将执行该作业的时间的函数计算出的成本函数的装置;
—用于根据各资源预测可利用的时间及该时间上各作业的成本函数值,为作业与资源的各种可能组合确定预计成本的装置;
—用于确定产生最小总预计成本的组合的装置。
按照又一方面,提供了用于分配多个作业给多个资源的计算机装置,所述计算机装置包括一个中央处理单元、一个存储器、一个输入设备及一个输出设备,所述存储器包含一个用于控制该计算机的程序,及该程序配置成:
—存储关于资源的参数;
—存储关于作业的参数;
—从参数中确定各资源预测成为可利用的时间;
—从参数中确定需要执行各作业的时间;
—分配给各作业一个作为将执行该作业的时间的函数计算出的成本函数;
—根据各资源预测可利用的时间及在该时间上各作业的成本函数值,为作业与资源的各种可能组合确定预计成本;以及
—确定产生最小总预计成本的组合。
通过分配一个与时间相关的成本函数给各作业,便能考虑进去不同的资源可在不同时间执行它这一事实以及诸如不能满足协议的时间等的后果。
可设置装置将新作业增加到该多个作业上。也可设置装置来识别作业与资源的不相容组合并赋予这些组合以无穷大的成本值。也可有装置来有选择地分配一个指定的资源给一个给定的作业,配置成使这一作业与其它资源的组合被认为是不相容的。
也可设置装置来优先化作业与/或资源,及用于选择带有在其上执行成本估计的最高优先级的作业与资源。
上述分配设备可结合供资源使用的多台通信终端及供终端与控制装置之间通信的一个通信网一起设置。
有利地,这些终端可存储分配设备临时分配给资源的第二作业细节,但只在报告第一作业完成的企图不能与分配装置通信时才透露这些细节。
终端最好是便携式的,并可通过无线电网或这些终端可连接的固定电信网与分配设备通信。它们发送信息到分配设备,并且接收来自它的指令。
在本发明中,将作业的性能及资源的可利用性作为与时间相关的函数计算,将较大的成本加权作用在带有较不可能达到目标时间的资源作业组合上。
在一种较佳配置中只向已经完成了它们的当前作业的资源通知分配给它们的下一作业。其它分配是临时的,并可随环境改变而改变,诸如请求新作业或一个资源早于或晚于估计的时间报告一个作业完成。在一个特别好的配置中,作业分配过程通常是在每当一个资源报告完成了其当前作业时执行的,但如果从分配过程的上一次运行以来没有诸如新作业请求等变化,及如果资源在接近预计完成时间时报告作业完成,则不执行作业分配过程而利用过程上次运行的结果。
分配过程也可以在发生诸如增加新作业等重大变化时执行。这使得当前的分配跟上这种发展,从而当一个资源请求作业时,系统能立即以分配的作业来应答而无须运行分配过程。然而,如果一个资源比预测早报告作业完成,这本身便是要求重新运行分配过程的重大变化。
在某些情况中,可能存在着不能执行某些作业的资源。这可能适用于诸如需要特定技能的作业,或需要只掌握在某些可利用的工人手中的设备项目的时候。其它可能发生的情况是诸如由于客户的安全措施而只有受限制的工人组具有在一个特定的工地工作的权力。在又另一情况中,可能请求一位特定的个体工人来进行一项特定作业,例如因为它是该个人所执行一项早期作业的继续,或者作为该个人的培训的一部分。为了接纳这一点,可将所有不相容的资源/作业组合的成本值配置成重新设定为无穷大。然而,如果该系统正在其上运行的操作系统处理无穷大有困难,则可使用一个不会作出这种不相容的分配的充分大的有穷数。这将保证分配将对相容的资源作出。在本说明书中,短语“基本上无穷大”用于表示其值大到足以达到这一点的任何数。
为了减少处理时间,系统可以只在预计在不久的将来成为可利用的资源(包含当前可利用的资源)与具有最高优先级的作业的组合上操作。
在本发明的进一步发展中,提供了用于分配多个资源给多个作业的装置,包括:
—用于存储关于资源的参数的装置;
—用于存储关于作业的参数的装置;
—用于从参数中确定各资源预测成为可利用的时间的装置;
—用于从参数中确定需要执行各作业的时间的装置;
—用于将一个作为将要执行该作业的时间的函数计算的成本函数分配给各作业的装置;
—用于根据各资源的预测可利用时间及该时间上各作业的成本函数值,为作业与资源的各种可能组合,确定预计的成本的装置;
—用于确定产生最小总预计成本的组合的装置;
与在其上执行作业的网络结合,所述网络包括用于检测网络中的故障的装置、及用于向存储关于作业的参数的所述装置提供校正检测到的故障要执行的作业的参数的装置。
其中的网络为一电信网,所述故障检测装置可以是构成网络的一部分的故障管理系统。用于向作业提供参数的装置可以仅仅是在故障管理系统与所述装置之间的接口。
参数中可包含全部或部分地在网络中的多余容量的可利用性的基础上作出的待执行的作业的优先级的估计。特别地,如果没有多余容量而使业务中断,则分配给作业最高优先级。
下面参照附图只以示例的方式描述本发明的实施例,附图中:
图1示出包含配置成按照本发明操作的计算机的一个系统的总布置;
图2为图示构成图1的系统的计算机的一部分主程序的最小成本计算例程(“匈牙利算法”-Wright变式)的操作的流程图;
图3为展示一起构成计算机主程序的各种例程的概貌的总流程图,单个例程极详细地示出在图2及4至12中;
图4为展示当工人报告作业完成时所执行的例程的流程图;
图5示出更新系统中的工人参数的例程;
图6为展示作业分配例程本身的流程图;
图7示出请求一个新作业时更新作业参数的例程;
图8示出作业参数更新的继续;
图9示出用于识别为一位特定个体工人所要求的作业的预分配例程;
图10示出工作日开始时执行的初始化例程的流程图;
图11示出周期性更新过程的流程图;及
图12示出构成图6的例程的选用部分的将第二作业分配给一位工人的子例程。
图13示出一天结束过程的流程图。
图14示出‘作业中断’过程的流程图。
图15a示出作业选择过程的流程图。图15b示出作业成组过程的流程图。
图16与17为图1中所示的情况中的成本分值矩阵的图示。
图18为图1中所示的资源分配系统的功能方框图。
图19示出图1的计算机的部件。
参见图1,其中示出了一个资源分配系统,包括用于分配资源给作业的一台计算机X形式的装置及三个手持式终端H1、H2、H3。各手持式终端可以是英国Coventry的Husky计算机有限公司生产的Husky型号FS/2。各手持式终端可用固定或移动电信网连接在计算机X上。图1示出由这种网络作出的终端H1与计算机X之间的链路C。
在本例中,资源采取分别提供有终端H1、H2、H3的三位技术人员T1、T2、T3的形式。这三位技术人员当前正从事作业J1、J2、J3,并且还有另外四个作业J4、J5、J6、J7等待关注。在实际情况中将有更多的技术人员及作业。技术人员T1、T2、T3可将他们的终端H1、H2、H3用于报告作业完成及稍后要描述的某些特殊目的。他们还用终端接收来自计算机X的下一作业的指令。
在本例中,三位技术人员T1、T2、T3为在电信网上执行作业的现场劳动力的一部分。
计算机X的部件示出在图19中。它们包括一个键盘191、一个中央处理单元(CPU)192、一个视觉显示单元(VDU)193、一个存储器194及一个输入/输出端口195。用于控制计算机X的数据与程序存储在存储器194中。输入/输出端口195将计算机连接在提供计算机X与手持式终端H1、H2、H3之间的通信链路的电信系统上。计算机X也能观察来自与电信网关联的故障监视系统的报警。
计算机X设置有将技术人员分配给作业的主程序。主程序分成一组例程。下面详细讨论用于分配技术人员给作业的程序与单个例程的总体结构及程序所用的方法。
图1中,技术人员T1已完成作业J1并在其终端H1与通信链路C的协助下为其下一作业的指令接触计算机X。问题是确定应指令技术人员T1下一个执行的作业是J4、J5、J6、J7中哪一个。计算机X的主程序所用的方法考虑:
—该技术人员是否能执行各单个作业;
—该技术人员行进到各作业位置要花费的时间;
—该技术人员执行各作业要花费的时间;
—各作业的相关重要性,例如由受影响的客户数或协议的最大响应时间确定;以及
—其它技术人员T2、T3的可利用性
这些技术人员的可利用性取决于何时他们成为可利用的,这依次又取决于当前作业的长度、技术人员开始做它的时间及他的工作速率。
由于在许多情况中作业中包含一个报告的问题的调查与纠正,因而作业占用的时间存在一定的不确定性。直到调查完问题,纠正将占用的时间只能用相当大的误差范围来估计。还有其它可变因素,诸如使精确的测定难于实现的各作业的当地环境等。计算机X的主程序所用的方法为当前从事作业的所有技术人员计算作业完成的一个估计的时间,并在一位技术人员较早地报告作业完成或未曾在估计的时间上报告时更新这一时间。
本方法首先为各作业计算一个与时间相关的“成本函数”。这考虑进去不能满足协议时间的惩罚。如果对不能满足时间的赔偿是可支付给客户的,惩罚可以是实际的货币成本,或者是诸如公司的声誉损失等‘虚’成本。惩罚是与时间相关的资产。在最简单的情况中,如果满足了协议的时间该函数为零,否则为一固定值。在较复杂的情况中,例如当赔偿是按照延迟程度支付时,它可以是某种更复杂的与时间相关的函数。
对于技术人员对作业的各种可能分配,估计将一个给定的作业分配给一个给定的技术人员的成本“技术人员/作业成本”。其中考虑进去作业失败的成本(对于任何人做它都一样)及作业失败的概率(随技术人员变化而变化)。这一概率主要取决于技术人员当前作业的预计结束时间、到达新的作业必须的旅行时间量、必须完成新作业的时间、新作业的估计持续时间以及这些因素的可变性。通过确定将可以利用技术人员的预计时间及确定在该时间上该作业的成本函数的值,计算出预计成本。
其它因素,诸如技术人员执行这一作业的能力(计及技能、设备及各个人能利用的安全余地)及包含在参加执行该作业的该技术人员中的非生产性时间量(诸如花在旅行上的时间、或者如果作出过“不能提前”约定时间时等待进入场地的时间)也能考虑进去。应认识到这些成本是估计值并包含概率加权:换言之,它们是保险成本。在许多情况中,分配作业的成本实际上只能是两个值之一,零或者失败成本。保险的或加权的成本在这两个值之间,其精确值取决于失败的概率。
需要将这些不同的因素归约到一个公共的测量单位。例如,所有因素都可用旅行时间的等值单位测量。容许一个作业不满足其目标时间的成本可计算成等值于派送一位技术人员来防止该失败发生准备使用的旅行时间量。
本方法然后确定总“技术人员/作业成本”值为最小的技术人员与作业的组合。
下面更详细地描述该计算。从图16中显而易见技术人员与作业的各种组合将具有不同的总成本,并选择最低成本的组合作为分配计划。也必须考虑不分配各作业的成本,这可以通过包含一个或多个不存在的或“虚”技术人员来做到。其它事物是一样的,最低优先级作业可分配给假人。例如,可对技术人员T1分配作业J5,技术人员T2作业J7及技术人员T3作业J6,在这一阶段不分配作业J4。然后用通信链路C指令技术人员T1去执行作业J5。然而在这一阶段不给技术人员T2与T3任何指令,因为他们尚未完成他们的当前作业。将作业J6与J7分配给技术人员T2与T3是临时的,并且例如如果请求了具有高于作业J6或J7之一的优先级的另一作业(未示出),或者如果一位技术人员(例如T3)出乎意料地早地报告作业完成/或不能在预测的时间上完成作业时,可以改变。在后一情况中,可重新分配(也是临时的)作业J4、J6与J7来保证仍按时完成最高优先级的作业。图17中示出这一修正过的矩阵。可以看出现在分配不同了。同时,作业J5已被新作业J8所取代,因为现在正在进行J5。
下面要描述的方法中执行的过程中包含大量步骤。为了帮助理解图2及4至15的流程图的关系,图3示出了整个过程的这些部分的相互关系。下面参照图2的流程图简要地描述基本分配算法。HWKuhn在海军研究后勤季刊卷2,83至97页中(1955:“分配问题的匈牙利方法”)及MB Wright在“加快匈牙利算法”:计算机操作研究,卷17,95-96页(1990)中更详细地描述了这一过程。
一开始制备一个给出各种成本分值的方阵(在下面的例中为一4×4矩阵)供在矩阵中分配各资源给各作业。可给予各行与各列一种称作“标签”的属性,这一标签标识一行或列已为了在优化分配中选择一个元素而被检验过,及是否已作出这一选择。然后执行下述步骤:
步骤2.1    从各行减去行最小值,从各列减去列最小值。这将在各行与列中留下一个零。如果一些行或列全是无穷大则矩阵是不能实行的。
步骤2.2    选择尽可能多的独立零,即并不与另一个选择的零同在一行或一列的零。如果两个零同在一行或列,只选择它们之一。这便可能(虽然可能性不大),现在我们已有了一种完整的分配(见下面步骤2.11)。
步骤2.3    如果分配不完整,取出一个未分配的行并加上标签。如果没有这样的行,前进到步骤2.7。
步骤2.4    找出一个已加标签但尚未检验过的行。将其标记为检验过并扫描它寻找零。
步骤2.5    如果在一个未分配的列中找到一个零,便进行到步骤2.10。
如果在已分配的一列中找到一个零,用该零的行号标记该列,并标记出现以前的分配的行。这一标签延伸了我们在扩展分配集合(步骤2.10)中最终将向后跟踪的链。如果找不到零,进行到步骤2.7。
步骤2.6    当我们完成了行扫描时,进行到步骤2.4。
步骤2.7    检验所有加标签的行并找出不在一个加标签的列中的最小元素。该值一定非零,因为如果它为零,则它所在的列已在步骤2.5中加上标签。如果不存在加标签的行或者我们找到的最小值为无穷大,则矩阵是不能实行的。
步骤2.8    从各加标签的行中减去这一最小值并将它加在各加标签的列上。这将在包含该最小值的各列中引入一个新的零,但不会扰乱我们在扩大分配集合时可能需要的任何零。
步骤2.9    检验各未加标签的列寻找加标签的行中的零。由于减/加的最小值只从加标签的行中导出,因此必定有一个零;由于它们不能构成扩大的路径的一部分,所以对未加标签的行中的零不感兴趣。如果该列没有分配,我们能利用这一零作为一条分配链的一端,因此进行到步骤2.10。否则象在步骤2.5中那样在列与行上加标签,并进行到步骤2.4。
步骤2.10    通过分配这一元素并跟随列标签与行分配回溯直到到达加标签的第一行而扩大分配表。由于迹线是向后跟踪的,分配用列标签标识的各元素而不分配同一行中任何前面分配的元素。最后的结果是增加一个分配。
步骤2.11    如果答案尚不完整,则去掉所有行与列标签并返回到步骤2.3。
运行实例
1、无迭代
下列矩阵在步骤2.2的第一次迭代上便产生一个完整的解。完全没有进入迭代循环的主体。解用“*”号标记。
行位置(ROW_POS)
列最小值(COL_MIN)
选择  3     2     1     4
标签
 0           0     1
 选择  标签  减 原始矩阵 调整后的矩阵
  3214  2304  15    10    2*    915    3*    12    80*    17    0     28     4     14    5*  13     8    0*     612    0*     9     40*    17     0     14     0    10    0*
2、一次迭代这一矩阵在步骤2.2中分配四行中的三行。部分解用“*”号示出。
行位置(ROW_POS)
列最小值(COL_MIN)
选择   3     1           4
标签
  1     0     7     0
 选择  标签    减 原始矩阵 调整后的矩阵
  214    12601  17    12    19    1616     6    16    91*     9    16    08     18    17    1*     4     0*   0     49     0    3     30*    9    9     06    17    9     0*
我们现在用一个大数(本例中为99)在第一未分配行(即行2)上加标签,并进入主循环。在扫描各加标签的行时,将其标签变成负数来表示已扫描过该行。加标签过程也在行1与列2上加标签。
在检验元素(2,1)时,我们为列1设定col-min。在检验元素(2,2)(一个零)时,我们在列2上加标签,并且由于元素(1,2)是初始选择的,而我们在行1上加标签。检验元素(2,3)与(2,4)引导到设定‘row-pos(3)’、‘row-pos(4)’、‘col-min(3)及‘col-min(4)’。
现在扫描行1,因为前面的迭代已导致它被加上标签。
行位置(ROW_POS)   2           2     2
列最小值(COL_MIN)   9           3     3
选择   3     1           4
际签         2
  1     0     7     0
 选择  标签   减 原始矩阵 调整后的矩阵
  214   -2-99   12601  17    12*   19    1616     6    16    91*     9    16    08     18    17    1*     4     0*   0     49     0    3     30*    9    9     06    17    9     0*
扫描行1我们更新列1的列最小值与行位置。列2已加过标签因此不加处理。列3为一个零,该列既不加标签也不选择。这是一个多余的零(即不是当前分配的),因此我们通过进行到步骤2.10便能更新该链。
行位置(ROW_POS) 1    2    2
列最小值(COL_MIN) 4    3    3
选择   3     2     1     4
际签         2
  1     0     7     0
 选择  标签  减 原始矩阵 调整后的矩阵
  3214   -2-99  12601  17    12    19*   1616    6*    16    91*     9    16    08     18    17    1*   4     0    0*     49    0*     3     30*     9     9     06    17     9    0*
现在我们有了一个完整的解。
3、两次迭代,多种解。
这一矩阵有三种最小解。它还采用主循环的两次迭代。步骤2.2之后,它便变成如下形式。
行位置(ROW_POS)
列最小值(COL_MIN)
选择     4     1
标签
    1     0     2     1
 选择  标签    减 原始矩阵 调整后的矩阵
  21    4332     8    4*     7     75     3     8     76     3     8     53*     2     4     3  3    0*    1     21    0     3     32    0     3     10*   0     0     0
*解
如上所述,我们现在通过记录信息的主循环。我们从在行2上加标签开始,行2为第一未分配的行。扫描结果也导致给行1加标签。不扫描行1与4。
行位置(ROW_POS)   2           1     1
列最小值(COL_MIN)   1           1     2
选择   4     1
标签         2
  1     0     2     1
 选择  标签   减 原始矩阵 调整后的矩阵
  32   -2-99   4332   8     4*    7     75     3     8     76     3     8     53*     2     4     3     3     0*    1     21     0     3     32     0     3     10*    0     0     0
由于我们未曾发现多余的零,我们在步骤2.7上从循环出口。加标签的行与未加标签的列的最小元素为元素(1,3)与(2,1),它们具有值1。从加标签的行1与2减去这一值,并加在加标签的列2上得出:
行位置(ROW_POS) 2    1    1
列最小值(COL_MIN) 1    1    2
选择 4    1
标签       2
  1    -1     2      1
 选择  标签   减 原始矩阵 调整后的矩阵
  21   -2-99   5432   8     4*    7      75     3     8      76     3     8      53*     2     4      3   2     0*    0     10     0     2     22     1     3     10*     1     0     0
我们在(1,3)与(2,1)上有新的零,而丢失了(3,2)与(4,2)上的零。步骤2.9将‘col-min(1)’与‘col-min(3)’更新成0,在列1与3及行4上加标签并返回3,多余列中的一个零。步骤2.10将分配更新成:
行位置(ROW_POS)    2     1     1
列最小值(COL_MIN)    0     0     2
选择    4     2     1
标签    2     2           1
   1    -1     2     1
 选择  标签   减 原始矩阵 调整后的矩阵
  321   -2-994    5432    8     4     7*    75     3*    8     76     3     8     53*     2     4     3   2     0     0*   10     0*    2    22     1     3    10*    1     0    0
现在我们返回到循环的顶部,复位范围数据与标签,标记行3作为第一未分配行并更新范围数据。此时我们不标记任何事物并且不终止在一个多余的零上,行3中没有,因此我们必须调用步骤2.8,在(3,4)上引入一个新的零。
行位置(ROW_POS)   3     3     3     3
列最小值(COL_MIN)   2     1     3     1
选择   4     2     1
标签
  1    -1     2     1
 选择  标签   减 原始矩阵 调整后的矩阵
  321 -99    5442   8     4     7*    75     3*    8     76     3     8     53*    2     4     3   3    0     0*    10    0*    2     21    0     2     00*   1     0     0
由于我们在元素(3,4)中有了一个额外的零,步骤2.9返回列4。步骤2.1 0分配(3,4)而完成分配。
行位置(ROW_POS)  3    3     3     3
列最小值(COL_MIN)  1    0     2     0
选择  4    2     1     3
标签  4
 1   -1     2     1
 选择  标签   减 原始矩阵 调整后的矩阵
  32   54  8    4     7*    75    3*    8     7     2    0     0*   10    0*    2    2
41 -991 4     6     3    8    5*2     3*    2    4    3 1     0    2     0*0*    1    0     0
本发明的较佳实施例的一个特征为利用‘虚’技术人员。因为‘匈牙利’算法要求必须利用数目相同的技术人员与作业的方阵。然而如果只估计正确数目的作业来匹配实际的技术人员,则出现不了最佳解。假定有N位技术人员,则将分配N个最高优先级的作业。然而,可能存在一个作业(j(N+X))其优先级刚落在最高的‘N’个外面,把它包含进来而代替在最高的‘N’个范围内但接近底部的一个作业(例如j(N-Z))会提供较低的成本解。
为了克服这一问题,将比技术人员的数目多的作业放在矩阵中。为了使矩阵再度成为方的而包含进‘虚’技术人员。在一个实际实施例中,作业可能是技术人员的若干倍,以保证总能找到最低成本解。
赋予分配给虚技术人员的作业的成本值是根据作业的优先级选择的。例如,必须在短时间内分配的作业对于一个虚技术人员分配一个非常高的成本分值,使得任何有能力做这一作业的可利用的实际技术人员将具有较低的成本分值而分配到这一作业。类似地,分配给非常低的优先级的作业一个零成本分值,这表示只有在没有其它作业能分配给一位技术人员时才将他分配给该作业。中间值分配给落在这两个极端之间的情况。主要是,将一个虚技术人员分配给一个作业的成本分值为延迟该作业的成本,包含没有实际技术人员将成为可利用来按时做它所计算的风险。
所谓非常高的成本分值应当小于作业对技术人员的不相容分配中所使用的基本上无穷大值,因为一个无穷大值会导致矩阵不可解的情况(因为也没有实际技术人员能够做它)。在这一情况中,该作业将作为失败的并从系统中去掉,这可防止将这一作业给予提前完成其前一作业的一位适当的实际技术人员。
在某些情况中,尤其是在一天快结束时,可能没有足够的作业来填充矩阵。在这些情况中能够调整算法使之以不同大小的矩阵工作,但插入虚作业而使数目再次上升更为简单。分配一个虚作业给一位技术人员的成本值是到什么时候认为派送该技术人员去做一个实际作业是成本上高效的所包含的空闲时间(即以旅行时间为单位)的值。分配一个虚作业给一个虚技术人员的成本值为零。
下面要描述的方法的其余部分确定用在方法中的初始值及用于指令技术人员关于他们所分配的作业的步骤。
图3示出构成计算机X的主程序的各种例程的概要。用于单个例程的参照数字时对应于更详细地展示单个例程的单个图号。
当一位技术人员报到时,例程4执行若干初步检验来识别某些特殊情况。如果这些检验未识别这种特殊情况,程序以例程5继续来更新数据库中该技术人员的详情,及检验在这些条件仍然有效的情况下程序的最近一次运行中该技术人员是否已经分配了一个作业。
如果较早的运行中所使用的假设不再有效,例如如果该技术人员意想不到地早地报到,或在较早的运行中未分配作业给该技术人员,则补正成本矩阵中对应于该技术人员的行,(例程5),然后进行分配作业给技术人员,(例程6),以通知技术人员他的下一作业及再一次更新其详情结束。
如果一位技术人员以完成其当前作业的修正估计报到,便进行例程11来更新该技术人员的详情,供在分配例程6的下一次更新运行中使用。
当请求一个新的作业时,类似的过程是必需的。在例程7中整理作业的参数。如果该作业是要分配给一个特定的技术人员的,则由一个专用例程(下面要讨论)来处理该技术人员与作业,否则更新作业参数(例程8)并执行分配例程6。
在周期性的时间间隔上,也进行技术人员与作业分配过程的更新。用于确定成本矩阵的初始值的,有两个分别用在每天的第一次运行及用于以后的运行中的稍为不同的初始例程10、11。在两种情况中,随后都运行分配例程6。
可采用一个附加例程12作为分配例程6的一部分来临时分配给各技术人员第二作业。这是一种在技术人员由于通信困难而不能报告第一作业的完成时的安全措施。
以下的图4至15b更详细地示出参照图3的上述例程。这些例程是互相链接的,而这些图中的数字4至15b标识展示程序的继续的图。
在图4中,示出了例程4的流程图。这一例程包括每当一位技术人员诸如在值班开始时进入联机报告或报告作业的进度或完成时进行的初始步骤。
在步骤40中进行初始接触,对此作出响应,可采用三条路径之一。如果技术人员是在值班开始时报告,则作为下面要参照图10描述的一天开始过程的一部分已将一个作业分配给他了。这一作业是在步骤42中分配给技术人员的然后跳转到步骤65,在其中指令该技术人员,并在步骤66中更新系统中技术人员的详情。
如果一个作业不能利用该技术人员,而是在报告其当前作业的进度(诸如需要为一个备件访问存贮点),使用这一信息来更新该技术人员的估计完成时间(步骤41),这一时间是用在更新例程11的下一次运行中的。
如果技术人员是在报告当前分配的作业的完成,则进行步骤44来判定该技术人员是否能立即利用在另一作业上。存在着四种可能结果。
—如果日时间在该技术人员的下班时间的一个预定的阈值极限以内,则不分配其它作业(步骤49)。
—如果该技术人员需要从一个存贮点收集设备,便进行步骤45,判定该技术人员是否已在存贮点或只是想到那里去。如果是后者,便将该技术人员的估计作业完成时间重新设定为当前时间加以从他的当前位置到存贮点的旅行的计算时间再加上允许他在存贮点上的时间(步骤46)。这实际上生成一个该技术人员可以被利用来旅行到一个新的作业的新的“完成时间”。如果该技术人员已经在存贮点上便将作业完成时间设定为现在(步骤47)。在这两种情况中都将技术人员的位置更新到存贮点的位置上。然后程序在例程5中继续更新技术人员的参数。
—如果技术人员在下一作业开始前想要就餐休息,则将作业完成时间设定为当前时间加上允许技术人员就餐休息的持续时间(步骤48)。如果不出现这些特殊情况,该技术人员便简单地等待其下一作业并且过程直接进入图5。在所有上述情况中,程序都进行到例程5中去更新技术人员的参数。
图5示出当技术人员报告一个作业完成时更新系统上的技术人员的参数的例程5的流程图。
如果在使用下面要描述的预分配过程9,第一步骤为检验(步骤51)该技术人员是否已分配了一个作业。如果是,使跳转到步骤43并送出这一作业作为对技术人员的指令。否则,如果该技术人员正在或者想要访问一个存贮点(上述步骤45),则必须确定从存贮点到各作业的旅行时间(步骤52),由于旅行时间的任何计算都必须从存贮点进行(如步骤46中导出的)而不是从前一作业位置。然后为该技术人员能够做的各作业计算作业失败的成本(步骤53)。对于系统中的任何虚作业将这一成本设置成无穷大以避免一位联机技术人员得到一个虚作业(步骤54)。
图6中示出作为所有例程5、8、10及11的公共继续的作业分配例程6。
如果工作趋向于群集在已知地点上,则首先执行一个“播种”过程(图15a)是理想的。如果在同一地点有若干作业,如果将每一个作业分配给一个不同的技术人员的话,那么如果一位技术人员能执行它们中的若干个时便会导致不必要的旅行。再者,如果能将同一地点的两个或更多作业分配给一位技术人员,他也许能比串行更高效地在两个作业上并行工作。从而希望在可能时将作业组合成群。然而将所有这些群重新定义为单个的“超级作业”是不现实的,由于执行所有的作业所需的不同技能或者完成它们所需的时间可能对于能够执行它们的技术人员的数目太受限制了。
这一问题能通过执行图15a与15b中所示的过程而得到缓解。在这一过程中,在当前矩阵中包含若干高优先级作业,将它们当作“种子”。将它们与其它作业关联,这些其他作业可具有相同或不同的优先级,并且也能出现在矩阵中。当将一个作业分配给一位技术人员时,只将那些与他相容的关联作业一起分配给他。如果它们当前在矩阵中,则同时将它们去掉。以这一方法,便能以灵活的方式达到将作业组合成群。
图15a中示出选择“种子”作业的过程。这是分配例程6中的一个初始步骤。图15b中示出指令一位技术人员去执行一群作业的过程,这构成分配例程6的后面部分。
图15a中,在矩阵中填充“种子作业”。它们是在将来的预定时间内具有仍然能达到的约定时间的作业。它们是在若干阶段中选择的,以便给一位技术人员能够留在原地不动的每一种机会,同时给予种子作业良好的地理与技能类型分布以支持多技能及减少旅行。在这一方法中应避免少数地点上的许多重要作业支配矩阵的情况-潜在地强迫过多的旅行。
以下述次序选择它们进入成本分值矩阵:
a)在各技术人员的当前位置上与其技能相容的最高优先级作业(允许分配给他们一个使他们能留在原地的种子作业)(步骤151)。
b)无人地点上的高优先级作业(步骤152)。
c)任何地点上带有尚未被种子作业覆盖的技能类型的其余高优先级作业(步骤153)。
d)任何地点上带有尚未被种子作业覆盖的技能类型的重要的非紧急作业(步骤154)。
e)任何地点上带有尚未被种子作业覆盖的技能类型的低重要性工作(需要一天结束或低工作条件的)。(步骤155)
在识别出足够的种子作业来填充矩阵时,这一种子作业标识过程便立即停止。跳过所有剩余的阶段。
种子作业以实时优先级次序出现在矩阵中。
通过选择这一次序来为成本分值矩阵选择作业,便保证了:
a)如果在一位技术人员的现在位置上有另一作业要完成,便考虑它(即使它是低优先级的)
b)考虑带高优先级作业的所有地点
c)全部覆盖同一地点上但需要不同技能的高优先级作业。
比较技术人员(包含虚的)与作业的数目,如果没有足够的作业,便用“虚”作业补足(步骤156)。赋予将虚作业分配给技术人员以一个高的但不是无穷大的成本以鼓励尽可能分配实际作业。然而,为了避免真正指令一位技术人员去执行一个虚作业,对于系统中的任何虚作业,将一个无穷大成本分值分配给当前正在等待作业的技术人员(步骤54)。这保证了最低成本组合不会是将一个虚作业分配给该技术人员的组合。
接着,在步骤61中为各作业与技术人员组合计算技术人员的“最早回家时间”,然后进行计算这是否在该技术人员的值班结束的阈值极限之内。如果是,且作业为一类别“B”作业(即如下面步骤82中所确定的可以明天完成的)则进行附加的“一天结束”准备工作62以保证该技术人员分配了该作业的无穷大成本。下一阶段是参照图2更详细地描述的确定具有最低成本分值的技术人员与作业的组合的优化例程2。同时可以进行将第二作业预分配给技术人员的例程12(见图12)。如果一位技术人员是联机的,便指令他去进行优化分配例程(步骤65)中分配给他的作业。辅助上面参照图15a描述的“播种”的一个“捆扎”过程可构成这一过程的一部分。
首先,用算法2选择的作业进入一“捆”中(步骤157)。第二,选择并优先化与所选择的作业位于同一地点且具有与该技术人员相容的技能要求的所有作业(存贮池中的或矩阵中的)(步骤158)。
将捆中的作业的总计持续时间(即在第一次迭代时,只是种子作业)与一个最大捆持续时间(为避免一位技术人员失去联系时间太长同时考虑这一负责钟点的结束而选择的)进行比较(步骤159)。如果超过了这一最大值,便从捆中再一次去掉最后进入的作业(步骤160)(除非只存在种子作业)。按照步骤158中所确定的优先级次序为各作业重复这一过程(步骤161)直到没有作业剩下(步骤162)或者(步骤163)超过了为避免过多的不成功迭代而选择的一个参数(例如,在步骤160中拒绝了预定数目的作业或者在被拒绝的第一个(种子)作业与第二个要考虑的作业的优先级之间的大的差异)。为止。
然后发送这捆作业作为对该技术人员的指令(步骤65)。将分配给技术人员的一个或多个作业从等待分配的作业表中去掉(步骤66),并更新技术人员的本身详情(位置、估计作业完成时间)(步骤67)。
图7为在系统上增加新的作业请求时进行的例程7的流程图。手动地或响应故障监视系统所生成的报警将作业输入到系统(步骤70),根据手动输入的或按照关于要修理的设备的重要性等的存储的数据所确定的标准确定其类型与目标时间(步骤71)、其可变性(步骤72)及其重要性(步骤73)。某些难于分配的作业可给予提高的加权值以保证比不这样做时更早地考虑它们。这些考虑中将包含非常长的作业必须在一天中较早分配以保证有足够时间来完成,或者必须在一定时间以前执行的作业(诸如为了安全起见必须在白天时间内执行的)。在这些值的基础上确定作业的优先级(步骤74),并将其与当前正在分配的最低优先级作业的优先级进行比较(步骤75)。如果它的优先级比当前分配的作业的优先级低,更将它送入未分配的作业的存贮池中(步骤78),否则检验它来判定它是否具有确定的约定时间(步骤76),及如果是,约定时间是否在阈值极限内(步骤77)。如果不在阈值极限内,便将它送入存贮池中(步骤78)。如果它在阈值内,便检验该作业是否要由一位特定的个人执行;在这一情况中使用例程9。如果该作业能由所有技术人员或他们的一个子集执行,便接着执行例程8。
图8示出当一个新作业取代矩阵中的最低优先级作业时负责更新分配的例程8的流程图。第一步(步骤81)判定是否通过一天结束的触发点。如果已经通过,则将作业表征为类别A(必须今天完成的必要与可能时要加班加点)或类别B(可以明天完成)(步骤82),随即进行下面描述(图13)的一天结束例程13。如果技术人员不能在他的一天结束时完成时,不将类别B作业分配给他。继续分配类别A作业,必要时加班,直到分配完为止。如果一天结束触发点尚未通过,则该例程为新的作业(步骤84)计算与时间相关的成本函数(步骤84),然后过程继续分配作业如图6中所示。然而省略步骤65,由于没有技术人员联机等待作业。
图9示出当要将作业分配给一位指定的技术人员时将所使用的例程。有可能简单地对除指定的一位以外的所有技术人员都赋予这种作业无穷大的成本分值。然而,在本变型中,这些作业与技术人员是分开对待的。这便允许在矩阵中包含进去更多的非专用于某一技术人员的作业。第一步骤(步骤91)为判定该技术人员是否是当前在分配矩阵中的一员。如果是,便从分配矩阵中去掉他并分配给他新的作业(步骤92)。如果他不在矩阵中,下面例程判定(步骤93)该技术人员是否已分配了这种作业。如果尚未,这意味着他当前从事的作业预测要占用比矩阵覆盖的当前时间长的时间。将这一情况向系统控制器发出警报(步骤94)由于该作业需要危急管理。危急管理过程取决于作业的性质,但可包含将作业返回到存贮池中供分配给另一技术人员,作业注销,报告作业失败或指令技术人员挂起其当前作业而去进行预分配的作业。
如果到目前尚未进行较早的预分配,便将专门要分配给他的作业中的最高优先级作业分配给该技术人员(步骤95),而将所有其它这种作业返回到存贮池中(步骤96)。如果系统中存在一个,便将次最高优先级的专用作业作为他的第二作业分配(步骤97)给通过上述路径之一(步骤92;或步骤93、95、96)将一个专用于他的作业分配给他的技术人员。然后跳转到步骤66去更新该技术人员的详情,如上面参照图6描述的。
一天开始例程(例程10)示出在图10中。这包括整理排定值班技术人员的信息及等待关注的作业的信息。它们可以是来自前一天未完成的作业或昨夜请求的新作业。
制备两张表。在步骤101、102、106、107中制备一张可利用的技术人员表(图10左侧),而在步骤103、104、105、106、108中制备一张需要技术人员的作业表(图10右侧)。
在步骤101中编制一张可利用的技术人员表,并在步骤102中用他们的一天开始时间进行排序。
在步骤103中计算存贮池中各作业的优先级值并按它们的优先级值的次序排列作业(步骤104)。
在步骤105中评估带约定时间的作业。如果约定时间晚于一个临界值t2(“全局性一天开始时间”)便将其返回到存贮池中供以后分配。
如果高优先级作业失败,便在步骤115中识别这一事件而进入图14中所示的“中断”例程。
然后在步骤106中评估技术人员专用的所有作业。对于具有技术人员专用作业的各技术人员,将这一作业分配给该技术人员并将他从步骤102中制备的表中去掉。如果一位技术人员具有一个以上这种作业,便将带有最高优先级的两个分配给他。第二个将是临时的,如下面参照图12更详细地描述的。任何较低优先级的其它这种作业返回给存贮池。
现在制备成本分值算法所需的矩阵。在步骤107中制备“n”个技术人员的一张有序表。这是来自步骤102中所制备的并在步骤106中所修正的表中的顶上“n”位技术人员。值“n”应是接近某一时间上系统中可能有的技术人员的最大数目的值。由于需要虚技术人员来平衡作业的数目,除了在一天开始时之外,不太可能有过多的技术人员来配合矩阵。
类似地制备一张来自步骤104中所制备的表及由步骤105与106修正的顶上的“m”个最高优先级作业的表(步骤108)。从这一点上,该例程与下面要描述的周期性更新例程11相同。
图11中所示的周期性更新例程每几分钟进行一次。这是为每当作出作业请求时减少所需要的处理量而进行的,因为当前保持的信息只是过期几分钟而在任何特定的运行中只需要改变成本分值矩阵中的少量参数。这些修订将受到在作业完成时间的估计中那些已经超过了它们的最早估计完成时间的作业的支配。如上面所讨论的,这些估计时间中包含由“预测时间带”表示的可变性。如果“现在时间”通过了这一“预测时间带”的起点,在时间带的较早增量时间段中完成的概率显然降低到零,其结果为完成落在其余部分中任何给定的增量中的概率增加(由于它们较少而总概率永远为100%)。同时存在着作业落在整个预测时间带外的递增概率,它在“现在时间”到达“预测时间带”的末尾时上升到100%。
更新例程11中的许多步骤与一天开始例程10中的相同。与参照图10所描述的相同方式优先化与排序作业(步骤103、104、105)。
由于更新可能出现在一天的任何时间上技术人员参数中必须考虑进去两个附加因子,因此这些步骤稍有不同。在步骤111中,估计各技术人员他是否已经就餐休息过。如果已经休息过,例程直接进入下面描述的步骤114。如果否,例程便估计他的当前作业的估计完成时间是否晚于就餐休息的最早时间。如果否,例程又直接进入步骤114,但如果是,便相应地更新最早与最晚作业完成时间以包含进就餐休息(步骤113)。然后在步骤114中将所有技术人员用与上面步骤102相似的方式按他们的平均估计完成时间的次序排列。(注意从上次运行以来步骤41(图4)与113两者可能已修正过他们的时间)。
然后与对上述一天开始例程10一样进行步骤103、104、105、106、107、108。
随后执行上面参照图8描述的一天结束步骤81。如果通过了触发点便进入一天结束例程13。否则跳转到步骤53,在其中用这两张表来制备成本分值矩阵,如上面参照例程5描述的。过程然后跳到步骤53去更新成本值,由于没有技术人员联机,因此并不象例程5(步骤54)中那样分配无穷大成本值或虚作业,而进入主分配例程(图6)。一天开始例程10遵照类似的过程但在进入主分配例程(图6)之前不通过“一天结束”测试81。
虽然为了保持最大的灵活性,最好只在完成了前一作业时才通知各技术人员需要他的下一作业,但为了操作原因,希望技术人员能得到要进行的第二作业的细节。这是一种临时分配,由于到完成第一作业时情况可能变化;例如一个更紧急的作业可能需要分配给他。可将这一第二作业的细节通信给技术人员的终端H1,该终端只在试图报告其第一作业的完成时不能与控制中心接触时才显示它们。
然而,如果技术人员在完成第一作业时不能报到,他便不能得知当前的最佳作业。在这些情况中,他将进人(可能不是最优的)第二作业,并在完成该作业时再试图报告完成。
现参照图12描述分配第二作业的例程12。它构成图6中所示的主分配例程6的一部分。
在步骤120中,检验工作存贮池来识别专门分配给该技术人员的任何作业。如果有这种作业,便按优先级次序排列它们(步骤121)并选择最高优先级的这种作业。这是作为该技术人员的第二作业分配的(步骤122)并继续进行分配例程(图6)。
如果在步骤120中未识别出这种预分配的作业,则搜索优先化的作业表(步骤123至1212)。
首先测试最高优先级作业(步骤123)。进行这些测试来检验该作业是否具有约定时间(步骤124),它是否已作为第二作业分配过(步骤125),或者它是否需要该技术人员不具备的技能(步骤126)。如果符合这些条件中任何一项,它不适合作为该技术人员的一个临时第二作业,然后过程检验这是否是表中的最后作业(步骤1212),如果否,进行到下一作业(步骤127)并再次启动过程。
计算技术人员当前作业与预期作业之间的旅行时间(步骤128)并与一个阈值比较(步骤129)。如果它小于阈值则作为第二作业分配该作业(步骤122)而分配例程6继续进行(图6)。如果旅行时间大于这一阈值,则执行进一步测试(步骤210)来判定旅行时间是否小于任何以前测试过的作业的时间。
如果是,暂时存储该作业(步骤1211)并且在两种情况中过程都检验这是否是最后的作业(步骤1212),如果否,选择下一个作业(步骤127)。
如果子例程找不到满足步骤124、125、126与129的测试的作业,则在测试优先级表中的最后一个作业的步骤1212的最后一次迭代上将是肯定的。然后子例程跟随步骤1213,它测试作为步骤131的结果是否已存储了任何作业,如果是,便分配它作为该技术人员的第二作业(步骤1214)。如果步骤1211未存储作业,由于没有作业符合步骤124、125与126的测试,则不分配第二作业(步骤1215)。在两种情况中过程都随即返回到主分配例程6(图6)。
现在描述一天结束例程13(图13)。
在接近一位技术人员的工作日(或部分工作日)的结束时,一种特定分配的可行性不但取决于目标承诺时间是否能达到还取决于技术人员在其工作日结束时(如果允许加班则为工作日结束加上加班时间)能否完成作业及返回到结束(一天结束)地点。类似地,成本中包含不只是到达作业的旅行时间还包含从本天最后的作业到结束(一天结束)地点的旅行时间,技术人员的最后作业结束与其工作日结束之间的任何松弛时间或“无所事事时间”,以及如果作业超过了技术人员的工作日的结束时产生的任何加班。可以通过引人表示下述各项的附加项而在接近技术人员工作日结束时分配的作业的成本分值计算中加入这些附加成本:
—从最后作业到技术人员的结束(一天结束)地点的旅行时间
—完成作业与工作日时间结束之间的空闲时间,如果有的话
—如果作业超过技术人员的工作日结束时产生的加班,如果有的话
所需的计算如下:
对于每一次分配技术人员给作业(不论作业承诺类型或技术人员是联机还是脱机)计算估计的最晚回家时间,即技术人员完成所分配的作业后返回到其结束(一天结束)地点的估计最晚时间(步骤130)。
如果技术人员的估计最晚回家时间比其工作日结束时间早得多,不需要对前面计算的成本分值进行调整(步骤131)。然而如果技术人员的估计最晚回家时间接近或晚于其工作日结束时间则需要附加的计算(步骤132)。
其中包含首先计算估计的最早回家时间,即技术人员能够在完成分配的作业之后返回到其结束(一天结束)地点的最早时间。
然后计算技术人员在完成分配的作业之后不能在其工作日结束时(如果允许加班则为加班日结束时)到达其结束(一天结束)地点的概率。
如果技术人员不能在其加班日结束时到达其结束(一天结束)地点的概率较高,这一分配很可能是不能行的。这时应分配给对应的成本分值一个无穷大值(步骤133)。
然而,如果概率是一个中等值,则需要进一步的计算来确定要包含进成本分值中的附加项的值:
从最后的作业到技术人员的工作日结束地点的旅行时间;(步骤134)。预期空闲时间:(步骤135)。
如果技术人员有可能在其工作日结束时以前完成分配的作业并到达其结束(一天结束)地点,他会遇到空闲时间或“无所事事”时间。这一时间段是非生产性的,并将与花在旅行上的时间同样地不利。
预期的加班:(步骤136)。
如果技术人员有可能在其工作日结束之后完成分配的作业并返回到其结束(一天结束)地点,他将遇到加班。加班工资比正常工作钟点高,从而遇到任何加班所受惩罚比旅行时间更高。在步骤137中利用这些因素(包含它们出现的概率)来修正成本分值矩阵中所采用的成本分值(图6)。
现在描述图14中所示的“中断”例程14。这一例程识别能够号唤来中断他们的当前任务以便救助较高优先级任务不使其失败的从事低优先级工作的技术人员。如果技术人员的当前作业(或捆)是长的并在分配给他当前作业时该较高优先级作业尚未进入系统,便会产生这种可能性。该例程需要可利用来寻呼技术人员的装置而不是等待他们报到。
当识别出一个高优先级作业即将失败(诸如取决于失败的概率及失败的成本的成本分值超过一个阈值)便首先检验是否已预先将它分配给某一个人(步骤140)。如果是,跳转到步骤143(下面要描述)。否则,在同地一点上搜索具有必要技能的任何技术人员(步骤141)。如果有一位,便跳转到到143。如果有一位以上,则跳转到步骤144(下面要描述)。如果没有,搜索当前不在从事相同或更高优先级工作与具有所需技能且在短到足以及时赶到作业地点以防止失败的旅行距离内的技术人员(步骤142)。如果存在一位或多位这样的技术人员,分别跳转到步骤143或144。如果没有这样的技术人员可以利用,将作业识别成不可能。(然而将它保持在系统中,万一一位技术人员意外地早地可以利用来进行它)。
在步骤143中,寻呼该技术人员。然后指令他并更新作业与技术人员细节(图6,步骤65、66、67、68)。被中断的作业重新作为一个新的作业输入并将其预分配给正在它上面工作的技术人员。
在步骤144中,通过排除带有等于或高于危急中的作业的优先级的作业的技术人员继续进行选择。在其余人员中,根据诸如旅行距离、技能性能及时估计的完成当前作业的时间等标准选择一位技术人员(步骤145),而例程以步骤143继续进行。
图18示出图1中所示的资源分配系统的功能方框图。数据流用箭头表示。其中示出一个输入/输出设备180用于在通信链路上发送与接收去往与来自手机H1、H2等的数据。从技术人员接收的数据用来更新包含技术人员的参数的存储器181。关于技术人员的数据也可用终端182输入。作业参数是通过终端182输入的,以及自动地从网络N中生成的故障报警馈入。作业参数存储在存储器183中。
利用存储在存储器181与183中的参数,计算装置184确定一位技术人员将要完成其当前作业的时间,并且也将其作为另一个参数存储。类似地,计算装置185利用存储在存储器183中的数据来为各作业确定一个成本函数。
然后优先化装置186从存储器181中选择具有最近的任务完成时间的技术人员,而优先化装置187则从存储器183中选择最接近它们目标时间的作业,并将作业与技术人员传送给计算装置188,后者计算将各作业分配给各技术人员的预计成本。可以设置预分配装置189来识别要分配给特定技术人员的作业。将其输出馈送给一个调整装置1810供在作业与技术人员不相容时将作业分配给该技术人员的成本调整到无穷大。除预分配装置189识别出的特定分配以外的因子也由调整装置1810从存储器181与183中读了。将在调整装置1810中导出的这些无穷大值馈送给计算装置188。然后在分配装置1811中评估计算装置188与调整装置1810中确定的成本来确定作业与技术人员的优化组合。通过设备180将这一优化组合通信给技术人员并且分配装置1811还发送更新信息给存储器181与183。

Claims (40)

1、一种分配多个资源给多个作业的方法,利用计算机来执行下述步骤:
—确定各资源预测成为可以利用的时间;
—确定需要执行各作业的时间;
—赋予各作业一个作为将执行该作业的时间的函数计算的一个与时间相关的成本函数;
—取决于预测各资源可利用的时间及该时间上各作业的成本函数值,为作业与资源的各种可能组合确定总的预计成本;
—确定产生最小的总预计成本的组合。
2、采用按照权利要求1的方法的资源分配方法,其中当一个资源成为可利用时便执行权利要求1的步骤,将可利用的资源分配给在具有最小成本的组合中与之关联的作业。
3、权利要求2中所要求的资源分配方法,其中可将新的作业加在多个作业上,当发生这种增加时执行权利要求1的步骤。
4、权利要求2或3中所要求的方法,其中如果在或接近其预测时间上一个第二资源成为可利用的并且自从上次执行分配确定以来未发生其它变化,便将前面确定的最低成本组合中分配给第二资源的作业分配给它。
5、前面的权利要求中任何一项中所要求的方法,其中不相容的资源与作业的组合赋予基本上无穷大成本值。
6、按照权利要求5的方法,其中可将一个资源分配给一个特定作业,使得该作业与其它资源的组合作为不相容对待。
7、按照权利要求2至6中任何一项的方法,其中当将一个第一作业分配给一个资源时,同时将与第一作业密切相关且与该资源相容的其它作业分配给该资源。
8、按照任何前面的权利要求的方法,其中作业是在要执行它们的时间的基础上优先化的,而资源则是在预测首先成为可利用的基础上优先化的,而成本估计则是为具有最高优先级的预定数目的作业与/或预定数目的资源进行的。
9、按照权利要求8的方法,其中资源的预定数目少于作业的预定数目,不分配给资源的作业的成本值包含在成本估计中。
10、按照任何前面的权利要求的方法,其中如果一个第一作业的成本值超过一个阈值,便指令一个资源中断它当前从事的第二作业而代之以执行第一作业。
11、分配多个资源给多个作业的装置,包括:
—用于存储关于资源的参数的装置;
—用于存储关于作业的参数的装置;
—用于从参数中确定各资源预测成为可利用的时间的装置;
—用于从参数中确定需要执行各作业的时间的装置;
—用于赋予各作业一个作为将执行该作业的时间的函数计算的成本函数的装置;
—用于根据各资源预测为可利用的时间及该时间上各作业的成本函数值,为作业与资源的各种可能组合确定预计成本的装置;以及
—用于确定产生最小总预计成本的组合的装置。
12、按照权利要求11的装置,还包括用于将新作业加在多个作业上的装置。
13、按权利要求11或12的装置,还包括用于识别作业与资源的不相容组合的装置及用于赋予无穷大成本值给这种组合的装置。
14、按照权利要求13的装置,包括用于有选择地分配一个特定资源给一个给定作业的装置,其中将这一作业与其它资源的组合识别为不相容的。
15、按照权利要求11至14中任何一项的装置,还包括用于优先化作业与/或资源的装置,及用于选择在其上执行成本估计的最高优先级的作业与资源的装置。
16、一种用于分配多个作业给多个资源的计算机装置,所述计算机装置包括一个中央处理单元、一个存储器、一个输入设备及一个输出设备,所述存储器包含一个控制计算机的程序,该程序配置成:
—存储关于资源的参数;
—存储关于作业的参数;
—从参数中确定各资源预测成为可利用的时间;
—从参数中确定需要执行各作业的时间;
—赋予各作业一个作为将执行该作业的时间的函数计算的成本函数;
—根据各资源预测可利用的时间及该时间上各作业的成本函数值,为作业与资源的各种可能组合确定预计成本;以及
—确定产生最小总预计成本的组合。
17、按照权利要求16的装置,还配置成增加新作业到多个作业上。
18、按照权利要求16或17的装置,配置成识别作业与资源的不相容组合及赋予这种组合无穷大成本值。
19、按照权利要求18的装置,还配置成有选择地分配一个特定资源给一个给定的作业,其中将这一作业与其它资源组合识别为不相容的。
20、按照权利要求16至19中任何一项的装置,还配置成优先化作业与/或资源,及选择在其上执行成本估计的最高优先级的作业与资源。
21、一种包括按照权利要求11至20中任何一项的分配装置的资源分配系统,结合多个通信终端供资源使用,及一个通信网供在这些终端与分配装置之间通信。
22、按照权利要求21的资源分配系统,该分配装置还包括用于分配一个临时第二作业给各资源的装置,该终端包括用于存储所述第二作业细节的装置、用于试图将作业完成报告给分配装置的装置、以及用于只在这一试图失败时显示所存储的第二作业的细节的装置。
23、权利要求21或22中所要求的系统,其中的终端是便携式的。
24、权利要求21、22或23中所要求的系统,其中的通信网为一无线电网。
25、权利要求21、22或23中所要求的系统,其中的终端可连接到一个固定的电信网上。
26、权利要求21至25中任何一项中所要求的系统,其中的终端配置成接收来自分配装置的指令。
27、权利要求26中所要求的系统,其中的终端包括存储装置来存储所述指令。
28、权利要求21至27中任何一项中所要求的系统,其中的终端配置成发送信息给控制装置。
29、权利要求21至28中任何一项中所要求的系统,其中的终端配置成允许分配装置寻呼资源。
30、一种分配多个资源给多个作业的方法,通过利用计算机来赋予一个预计成本给资源与作业的各种可能组合及计算最低成本组合,从而当多于资源的作业用于计算时,未分配的作业是分配给虚资源的,这种分配的成本值确定为未完成作业的成本的函数。
31、一种分配多个资源给多个作业的方法,通过利用计算机来赋予一个预计成本给资源与作业的各种可能组合及计算最低成本组合,其特征在于在计算最低成本组合时,分配给一个第一作业一个资源,同时将与第一作业紧密相关的任何作业也分配给该资源。
32、按照权利要求31的方法,其中选择作业供成本组合计算,使得优先选择具有不同特征的作业而不是具有类似特征的作业。
33、按照权利要求31或32的方法,其中具有不同优先级的一组紧密相关的作业中,选择最高优先级作业供组合计算。
34、一种分配多个资源给多个作业的方法,通过利用计算机来赋予一个预计成本给资源与作业的各种可能组合及计算最低成本组合,其特征在于赋予作业优先级值及目标时间,及在于监视高优先级作业使得当一个高优先级作业接近其目标时间时,指令在较低优先级作业上工作的资源中断该较低优先级作业而执行高优先级作业。
35、按照权利要求11至29中任何一项的装置,结合要在其上执行作业的一个网络,所述网络包含用于检测网络中的故障的装置,及用于向存储关于作业的参数的所述装置提供为纠正这样检测到的故障而执行的作业的参数的装置。
36、分配多个资源给多个作业的装置,包括:
—用于存储关于资源的参数的装置;
—用于存储关于作业的参数的装置;
—用于从参数中确定各资源预测成为可利用的时间的装置;
—用于从参数中确定需要执行各作业的时间的装置;
—用于赋予各作业一个作为将执行该作业的时间的函数计算的成本函数的装置;
—用于根据各资源预测可利用的时间及在该时间上的各作业的成本函数值,为作业与资源的各种可能组合,确定预计成本的装置;
—用于确定产生最小总预计成本的组合的装置;
结合要在其上执行作业的一个网络,所述网络包括用于检测网络中的故障的装置,及用于向存储关于作业的参数的所述装置提供为校正这样检测到的故障而执行的作业的参数的装置。
37、按照权利要求35或36的装置,配置成使得提供的参数中包含完全或部分地在网络中备用容量的可利用性基础上作出的要执行的作业的优先级的估计。
38、按照权利要求37的装置,配置成使得如果没有备用容量而使业务中断时,分配给该作业最高优先级。
39、基本上参照附图描述的一种分配多个资源给多个作业的方法。
40、基本上参照附图描述的一种分配多个资源给多个作业的装置。
CN95192287A 1994-03-25 1995-03-17 资源分配的方法和系统 Expired - Lifetime CN1097798C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP94302163.4 1994-03-25
EP94302163 1994-03-25
GB9416596A GB9416596D0 (en) 1994-08-17 1994-08-17 Resource allocation system
GB9416596.6 1994-08-17

Publications (2)

Publication Number Publication Date
CN1144569A true CN1144569A (zh) 1997-03-05
CN1097798C CN1097798C (zh) 2003-01-01

Family

ID=26137003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95192287A Expired - Lifetime CN1097798C (zh) 1994-03-25 1995-03-17 资源分配的方法和系统

Country Status (10)

Country Link
EP (1) EP0752136B1 (zh)
JP (1) JPH09511080A (zh)
KR (1) KR970702531A (zh)
CN (1) CN1097798C (zh)
AU (1) AU682585B2 (zh)
CA (1) CA2183586C (zh)
DE (1) DE69512040T2 (zh)
ES (1) ES2138725T3 (zh)
NZ (1) NZ282011A (zh)
WO (1) WO1995026535A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428169C (zh) * 2005-11-10 2008-10-22 国际商业机器公司 用于供给资源的方法、装置和系统
CN107690037A (zh) * 2016-08-23 2018-02-13 平安科技(深圳)有限公司 名单分配方法和装置
CN108288139A (zh) * 2018-01-29 2018-07-17 北京小度信息科技有限公司 资源分配方法及装置
CN115328654A (zh) * 2022-08-15 2022-11-11 中国建设银行股份有限公司 一种资源分配方法、装置、电子设备及存储介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790677A (en) 1995-06-29 1998-08-04 Microsoft Corporation System and method for secure electronic commerce transactions
KR100216348B1 (ko) * 1995-12-23 1999-08-16 윤종용 교환시스템에서 호처리 자원 관리 방법 및 장치
GB9606194D0 (en) * 1996-03-23 1996-05-29 Int Computers Ltd Appointment booking and scheduling system
US6049774A (en) * 1996-07-08 2000-04-11 At&T Corp. Machine, method and medium for dynamic optimization for resource allocation
DE69703938T3 (de) 1996-11-22 2007-05-16 (at)Road Ltd., Ipswich Ressourcenzuordnung
US6567783B1 (en) 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
WO2000005669A1 (en) * 1998-07-22 2000-02-03 I2 Technologies, Inc. Computer-implemented value management tool for an asset intensive manufacturer
KR20000055430A (ko) * 1999-02-05 2000-09-05 서평원 교환기 입출력계의 동적 시간 할당 방법
GB2352538A (en) * 1999-07-28 2001-01-31 Int Computers Ltd Computer system for creating appointment itineraries
US6950801B2 (en) * 1999-07-28 2005-09-27 Ppg Industries Ohio, Inc. Method and apparatus for coordinating services
KR20010037077A (ko) * 1999-10-13 2001-05-07 서평원 컴퓨터 시스템에서의 프로세스 운영 최적화 방법
US6810383B1 (en) * 2000-01-21 2004-10-26 Xactware, Inc. Automated task management and evaluation
JP2001282941A (ja) * 2000-03-31 2001-10-12 Fujitsu Fip Corp コンサルティングサービス提供システム,サーバシステムおよびコンサルティングサービス提供方法並びにコンサルティングサービス提供プログラムを記録した記録媒体
WO2002065363A1 (fr) * 2001-02-15 2002-08-22 Ntt Docomo, Inc. Procede et dispositif de repartition des couts
US7386850B2 (en) * 2001-06-01 2008-06-10 Avaya Technology Corp. Arrangement for scheduling tasks based on probability of availability of resources at a future point in time
US7308415B2 (en) 2001-12-04 2007-12-11 International Business Machines Corporation Dynamic resource allocation using projected future benefits
US7386468B2 (en) 2002-01-08 2008-06-10 International Business Machines Corporation System and method for resource reduction receipt log and audit trail
US7383217B2 (en) 2002-01-08 2008-06-03 International Business Machines Corporation System and method for resource reduction financial impact analysis
US7225141B2 (en) * 2002-01-08 2007-05-29 International Business Machines Corporation System and method for automated resource reduction analysis
JP2004295717A (ja) * 2003-03-28 2004-10-21 Hitachi Ltd 保守員派遣システム
EP2990973A1 (en) 2014-08-27 2016-03-02 F. Hoffmann-La Roche AG Method for validating a resource for a lab task schedule of a laboratory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866628A (en) * 1987-12-18 1989-09-12 International Business Machines Corp. Automated production dispatch system with feedback control
US5077661A (en) * 1989-05-03 1991-12-31 Hewlett-Packard Company Assignment-dependent resource allocation method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100428169C (zh) * 2005-11-10 2008-10-22 国际商业机器公司 用于供给资源的方法、装置和系统
CN107690037A (zh) * 2016-08-23 2018-02-13 平安科技(深圳)有限公司 名单分配方法和装置
CN108288139A (zh) * 2018-01-29 2018-07-17 北京小度信息科技有限公司 资源分配方法及装置
CN115328654A (zh) * 2022-08-15 2022-11-11 中国建设银行股份有限公司 一种资源分配方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CA2183586C (en) 2000-02-22
DE69512040T2 (de) 2000-04-06
DE69512040D1 (de) 1999-10-14
CA2183586A1 (en) 1995-10-05
WO1995026535A1 (en) 1995-10-05
AU682585B2 (en) 1997-10-09
EP0752136B1 (en) 1999-09-08
EP0752136A1 (en) 1997-01-08
NZ282011A (en) 1997-02-24
JPH09511080A (ja) 1997-11-04
KR970702531A (ko) 1997-05-13
ES2138725T3 (es) 2000-01-16
AU1899495A (en) 1995-10-17
CN1097798C (zh) 2003-01-01

Similar Documents

Publication Publication Date Title
CN1097798C (zh) 资源分配的方法和系统
CN1143208C (zh) 用于消息转换的装置和方法
CN1300693C (zh) 用于调节系统资源的使用的装置及其方法
CN1280716C (zh) 计算机处理方法、分布式计算方法和网络计算方法
CN100351723C (zh) 用于自动化制造环境的代理人反应式调度
CN1842811A (zh) 客户服务支持系统
US7302450B2 (en) Workload scheduler with resource optimization factoring
CN1164130C (zh) 基于技能的动态呼叫路由选择
CN1292529A (zh) 管理计算环境的分区组的方法,系统和程序产品
CN1264078A (zh) 执行多个操作系统的计算机
CN1783123A (zh) 基于资源需求和业务影响的过程执行管理
CN1674025A (zh) 计划操作管理支持系统,以及计划操作管理支持程序
CN1790413A (zh) 用于管理数据移植的方法和系统
US20070192160A1 (en) Plan solver
CN1391671A (zh) 计算环境中的工作负载管理
CN1136873A (zh) 通信网络管理
CN1636363A (zh) 实时处理
CN1384943A (zh) 远距离订货设计系统及电梯远距离订货方法
CN1838077A (zh) 可调度性确定方法和实时系统
CN1488097A (zh) 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法
CN1258418A (zh) 模拟智能网络的模拟设备
CN1628273A (zh) 在自动化制造环境中主动软件代理的特性化
CN1795434A (zh) 程序执行控制设备,程序执行控制方法,控制程序和记录介质
CN1223025A (zh) 实时估价控制系统及与之相关的方法
CN1630288A (zh) 第三方请求式服务的动态迟约束方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: A.P. SOLUTIONS LTD.

Free format text: FORMER OWNER: BRITISH TELECOMM

Effective date: 20040319

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20040319

Address after: Suffolk

Patentee after: A.P. Solutions Ltd

Address before: London, England

Patentee before: British Telecommunications Public Limited Company

C56 Change in the name or address of the patentee

Owner name: RIVADOUCE LTD.

Free format text: FORMER NAME OR ADDRESS: A.P. SOLUTIONS LTD.

CP03 Change of name, title or address

Address after: Suffolk

Patentee after: Viduss Ltd.

Address before: Suffolk

Patentee before: A.P. Solutions Ltd

C56 Change in the name or address of the patentee

Owner name: @ CO., LTD.

Free format text: FORMER NAME OR ADDRESS: RIVADOUCE LTD.

CP03 Change of name, title or address

Address after: Suffolk

Patentee after: Road Company Limited

Address before: Suffolk

Patentee before: Viduss Ltd.

C56 Change in the name or address of the patentee

Owner name: TRIMBLE MRM LTD.

Free format text: FORMER NAME: @ LU CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: Suffolk, UK

Patentee after: Tianbao MRM Co., Ltd.

Address before: Suffolk, UK

Patentee before: Road Company Limited

ASS Succession or assignment of patent right

Owner name: TRIMBLE NAVIGATION LTD.

Free format text: FORMER OWNER: TRIMBLE MRM LTD.

Effective date: 20120724

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120724

Address after: American California

Patentee after: Trimble Navigation Ltd.

Address before: Suffolk, UK

Patentee before: Tianbao MRM Co., Ltd.

C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20150317

Granted publication date: 20030101