CN110663051B - 解决车辆调度中的跨车辆依赖性的计算机化系统和方法 - Google Patents

解决车辆调度中的跨车辆依赖性的计算机化系统和方法 Download PDF

Info

Publication number
CN110663051B
CN110663051B CN201880034634.5A CN201880034634A CN110663051B CN 110663051 B CN110663051 B CN 110663051B CN 201880034634 A CN201880034634 A CN 201880034634A CN 110663051 B CN110663051 B CN 110663051B
Authority
CN
China
Prior art keywords
task
resource
candidate
tasks
schedule
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.)
Active
Application number
CN201880034634.5A
Other languages
English (en)
Other versions
CN110663051A (zh
Inventor
C·P·万特维斯坦德
S·米兹纳
M·邹布辰科
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN110663051A publication Critical patent/CN110663051A/zh
Application granted granted Critical
Publication of CN110663051B publication Critical patent/CN110663051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063116Schedule adjustment for a person or group
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063118Staff planning in a project environment
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06314Calendaring for a resource
    • 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
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Abstract

描述了与计算和指派要在候选时间使用资源执行的任务相关联的系统、方法和其他实施例。在一个实施例中,一种方法包括访问调度数据结构并分析用于该资源所依赖的、要使用一个或多个其他资源来执行的任务以及要使用该资源来执行的、其他资源所依赖的任务的数据记录。基于在各种任务之间确定的依赖性来计算用于使用资源执行任务的候选时间,并且使用用于任务的候选时间来生成候选调度。如果确定候选调度比现有调度具有更高的执行得分,则基于该候选调度来修改和重新生成调度数据结构。

Description

解决车辆调度中的跨车辆依赖性的计算机化系统和方法
背景技术
计算设备用于实现各种服务和产品。计算设备可以提供调度服务,诸如对要使用车辆执行的任务的调度。调度的任务可以被存储在分布式网络环境(例如,云服务)的数据库或其他存储结构内,或者在本地计算机的数据库或其他存储结构内。用户可以与计算设备交互以对调度的任务执行操作。例如,计算设备可以用于添加新任务、移除现有任务或修改现有任务。
由调度服务管理的各种任务可以被调度为使用各种车辆来执行,使得一些任务可以被调度为使用第一车辆来执行,并且其他任务可以被调度为使用第二车辆来执行。被调度为使用第一车辆来执行的第一任务与被调度为使用第二车辆来执行的第二任务之间可能存在依赖性,这可能会使修改现有调度的尝试复杂化。
为了提高车辆的效率、成功完成任务的速度、增加相关的利润和/或移动由车辆递送的库存,期望高效地识别和指派用于新任务的时间。
不幸的是,典型的现有技术限于识别某些时间,而不是可以利用的其他时间。因此,生成调度受到时间指派的选择有限的限制。
发明内容
在一个实施例中,公开了一种计算系统,该计算系统包括:被连接到存储器的处理器;以及调度模块,调度模块被存储在非暂时性计算机可读介质上,并被配置有指令,该指令在由处理器执行时使处理器执行以下操作:响应于接收到修改包括多个任务的调度数据结构的请求,确定该请求涉及调度要使用来自多个资源的第一资源执行的第一任务;和/或经由网络通信从数据库访问调度数据结构,其中,调度数据结构包括用于以下各项的数据记录:(i)要使用一个或多个其他资源执行的、第一资源所依赖的第一组任务,以及(ii)要使用第一资源执行的、其他资源所依赖的第二组任务;和/或分析数据记录以确定要使用一个或多个其他资源执行的第一组任务与要使用第一资源执行的第二组任务之间的依赖性;和/或基于该依赖性,计算用于使用第一资源执行第一任务的候选时间;和/或使用用于针对第一资源的第一任务的候选时间,为包括第一资源的多个资源生成候选调度;和/或评估候选调度以计算候选调度执行得分;和/或响应于确定候选调度执行得分大于现有调度的现有调度执行得分,基于候选调度来修改和重新生成调度数据结构,以指派要在候选时间使用第一资源执行第一任务。
在计算系统的另一实施例中,指令在由处理器执行时使处理器迭代地:基于一个或多个依赖性,计算用于使用来自多个资源的第二资源执行第二任务的第二候选时间;和/或使用用于针对第二资源的第二任务的第二候选时间,为包括第二资源的多个资源生成第二候选调度;和/或评估第二候选调度以计算第二候选调度执行得分;和/或响应于确定第二候选调度执行得分不大于第二现有调度的第二现有调度执行得分,基于一个或多个依赖性,计算用于使用来自多个资源的第二资源执行第二任务的第三候选时间;和/或响应于确定第二候选调度执行得分大于第二现有调度的第二现有调度执行得分,基于第二候选调度修改并重新生成调度数据结构,以指派要在第二候选时间使用第二资源执行第二任务。
在来自计算系统的组件的任何组合的另一实施例中,评估候选调度以计算候选调度执行得分的指令还包括指令,该指令在由处理器执行时使处理器:分析候选调度以确定候选调度中第一组任务和第二组任务之间的多个依赖性的冲突;并基于多个依赖性的冲突生成候选调度执行得分。
在来自计算系统的组件的任何组合的另一实施例中,依赖性的冲突包括以下至少一项:(i)与要使用第一资源执行的第二任务具有在要使用第二资源执行的第三任务之前的时间相对应的冲突,其中依赖性包括要使用第一资源执行的第二任务对要使用第二资源执行的第三任务的依赖性;或(ii)与要使用第二资源执行的第四任务具有在要使用第一资源执行的第五任务之前的时间相对应的冲突,其中依赖性包括要使用第二资源执行的第四任务对要使用第一资源执行的第五任务的依赖性。
在来自计算系统的组件的任何组合的另一实施例中,用于计算用于使用第一资源执行第一任务的候选时间的依赖性包括以下至少一项:(i)要使用第一资源执行的第一任务对要使用第二资源执行的第二任务的依赖性;或(ii)要使用第二资源执行的第三任务对要使用第一资源执行的第一任务的依赖性;和/或基于依赖性来计算用于使用第一资源来执行第一任务的候选时间的指令还包括指令,该指令在由处理器执行时使处理器执行以下至少一项:基于要使用第一资源执行的第一任务对要使用第二资源执行的第二任务的依赖性,计算在第二任务的时间之后的候选时间;或基于要使用第二资源执行的第三任务对要使用第一资源执行的第一任务的依赖性,计算在第三任务的时间之前的候选时间。
在来自计算系统的组件的任何组合的另一个实施例中,用于计算用于使用第一资源执行第一任务的候选时间的依赖性包括以下至少一项:(i)针对第一资源的第二任务对针对第二资源的第三任务的依赖性;或(ii)针对第二资源的第四任务对针对第一资源的第五任务的依赖性;和/或其中指令在由处理器执行时使处理器执行以下至少一项:基于针对第一资源的第二任务对针对第二资源的第三任务的依赖性,计算在第三任务的时间之后的、用于针对第一资源的第二任务的第二候选时间;或者,基于针对第二资源的第四任务对针对第一资源的第五任务的依赖性,计算在第四任务的时间之前的、用于针对第一资源的第五任务的第三候选时间;和/或其中用于为多个资源生成候选调度的指令还包括指令,该指令在由处理器执行时使处理器执行以下至少一项:在候选调度中使用用于针对第一资源的第二任务的第二候选时间;或在候选调度中使用用于针对第一资源的第五任务的第三候选时间。
在来自计算系统的组件的任何组合的另一个实施例中,第一资源是第一车辆,要使用一个或多个其他车辆执行第一组任务,并且将由第一车辆执行第二组任务;和/或其中确定候选调度执行得分大于现有调度的现有调度执行得分的指令还包括指令,该指令在由处理器执行时使处理器执行以下操作:确定候选调度解决了现有调度中的冲突,该冲突由一个或多个其他车辆中的至少一个和第一车辆之间的依赖性引起。
在另一个实施例中,公开了一种由包括处理器的计算设备执行的计算机实现的方法。该计算机实现的方法包括以下功能的一个或多个组合:至少由处理器接收修改包括多个任务的调度数据结构的请求;和/或至少由处理器经由网络通信从数据库访问调度数据结构,其中调度数据结构包括用于以下各项的数据记录:(i)要使用一个或多个其他资源执行的、第一资源所依赖的第一组任务,和/或(ii)要使用第一资源执行的、其他资源所依赖的第二组任务;和/或至少由处理器分析数据记录以确定要使用一个或多个其他资源执行的第一组任务与要使用第一资源执行的第二组任务之间的依赖性;和/或基于该依赖性,至少由处理器计算用于使用第一资源执行第一任务的候选时间;和/或至少由处理器使用用于针对第一资源的第一任务的候选时间,为包括第一资源的多个资源生成候选调度;和/或至少由处理器评估候选调度以计算候选调度执行得分;和/或响应于确定候选调度执行得分大于现有调度的现有调度执行得分,至少由处理器基于候选调度来修改和重新生成调度数据结构,以指派要在候选时间使用第一资源执行第一任务。
在另一个实施例中,该方法可以包括如作为计算系统的部分被描述的功能的任何组合。
在另一个实施例中,公开了一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括存储的指令(例如,作为一个或多个程序或算法),该指令在由计算设备的处理器执行时执行所公开的方法的功能的任何组合。
附图说明
结合在说明书中并构成说明书的一部分的附图示出了本公开的各种系统、方法和其他实施例。将理解的是,图中所示的元件边界(例如,框、框的组或其他形状)代表了边界的一个实施例。在一些实施例中,一个元件可以被实现为多个元件,或者多个元件可以被实现为一个元件。在一些实施例中,被示为另一元件的内部组件的元件可以被实现为外部组件,反之亦然。此外,元件可能未按比例绘制。
图1示出了与指派要在候选时间使用资源执行任务相关联的系统的实施例。
图2示出了与指派要在候选时间使用资源执行任务相关联的方法的实施例。
图3示出了调度数据结构的实施例。
图4示出了实体计算机和图形用户界面的实施例。
图5示出了具有调度指令的调度实现器的实施例。
图6示出了具有监控器界面的调度实现器的实施例。
图7示出了非暂时性计算机可读介质的实施例。
图8示出了配置有所公开的示例系统和/或方法的计算系统的实施例。
具体实施方式
本文中描述了计算机化的调度系统和方法,该调度系统和方法提供了对要使用诸如车辆、装卸区、工作人员/团队等之类的(一个或多个)资源执行的(一个或多个)任务(诸如,递送)的调度。在一个实施例中,电子调度是被配置有多个时隙的数据结构。电子调度可以包括被调度以在不同时隙中的不同时间执行的不同任务。但是,一个或多个任务可能与另一任务具有依赖性关系。例如,第一车辆的第一递送可以依赖于第二车辆的另一递送。因此,可能需要在第二车辆执行/完成另一递送之后执行第一递送。这些类型的依赖性影响和/或限制如何在电子调度中调度任务。
当用户尝试经由调度系统调度新任务时,用户可以提供有关新任务的输入,诸如用于执行新任务的资源、新任务与另一个任务之间的依赖性关系以及需要完成新任务的截止日期。系统尝试识别任务未被指派给资源的时间(电子调度中的时隙),并在显示屏上呈现新任务的时间。但是,如果需要在即将到来的截止日期之前紧急完成新任务,则在新任务的截止日期之前,电子调度中的资源可能没有空闲的时间。可替代地,如果新任务依赖于另一个(例如,现有)任务,并且需要在(所需)阈值时间段内(例如,在完成其他任务的3小时内)执行,则在另一个任务的阈值时间段内可能没有空闲时间(无空闲时隙)。
因此,为了在另一任务的截止日期之前或在阈值时间段内完成新任务,可能需要在电子调度中移动一个或多个现有任务。不幸的是,典型的调度可以涉及与复杂依赖性有联系的大量任务,这些任务通常可能难以筛选、评估和修改。因此,用户自身无法轻易或准确地将现有任务移动到不同的时隙以根据依赖性使时间可用于新任务而不会引起时间冲突。在一个实施例中,本调度系统被配置为生成用于任务的调度以解决该问题。
参考图1,示出了与指派要在候选时间使用资源执行任务相关联的计算机化系统100的一个实施例。系统100包括可以被配置为在计算机上执行的控制器105。可以基于从实体计算机115(诸如基于车辆的递送服务的计算机,该计算机正在请求调度要使用资源来执行的任务)接收到任务请求110来启动控制器105。例如,任务可以是将第一包裹递送到装卸区,并且从装卸区拾取第二包裹的约定。控制器105可以通过网络连接接收任务请求110。
调度数据检索器120被配置为分析任务请求110并识别在其内的识别任务和相关联的参数的数据。控制器105利用调度数据检索器120来生成要为任务请求110考虑的用于现有任务记录的标准125。标准125可以指定依赖于该任务的其他任务,诸如从装卸区拾取第一包裹的第二约定,以及该任务所依赖的其他任务,诸如将第二包裹递送到装卸区的第三约定。在一些示例中,标准125还可以指定关于要用于执行任务的(一个或多个)资源的信息,诸如要递送第一包裹并拾取第二包裹的第一车辆以及装卸区。
标准125可以指定需要在其内调度任务的时间范围。例如,时间范围可以基于任务请求110来确定,并且可以指定可以在其上或之后可以调度任务的开始时间点以及在其上或之前可以调度任务的结束时间点。可替代地,时间范围可以指定在其上或之前可以调度任务的结束时间点,而不指定开始时间点。例如,标准125可以根据基于车辆的递送服务的客户对于在3天内递送第一包裹(到第一接收者)并且递送第二包裹(到第二接收者)的需求来指定“3天内”为时间范围。
标准125还可以指定阈值优先级(级别)。标准125还可以指定中等优先级作为阈值优先级。例如,任务可以具有中等优先级,并且基于车辆的递送服务可能不希望在调度任务时修改具有相似或更高优先级的任务,而可能替代地只希望考虑修改具有更低优先级的任务。在另一个示例中,客户对基于车辆的递送服务的价值可以是中等价值,并且基于车辆的递送服务可能不希望修改与具有与基于车辆的递送服务相似的价值或比基于车辆的递送服务更高的价值的客户相关联的任务,而可能替代地只希望考虑修改与具有比基于车辆的递送服务的更低的价值的客户相关联的任务。
在另一个示例中,(新)任务的优先级可以指示要被分配以调度任务的资源(例如,处理器、存储器等)的级别。例如,任务的优先级越高,在调度任务时要考虑的调度数据结构130的时隙和任务的数量越多,并且因此在调度任务时分配越多的资源(例如,处理器、存储器等)以识别时间(调度数据结构130中的时隙)和任务。
在一些示例中,要使用两个资源执行的任务在调度数据结构130中被表示为两个任务。在示例中,要使用车辆和装卸区执行的任务被表示为车辆任务和装卸区任务。在其他示例中,要使用两个资源执行的任务在调度数据结构130中被表示为单个任务。
标准125用于分析调度数据结构130,以识别用于多种资源(车辆、装卸区等)的任务记录135。任务记录135可以包括用于调度数据结构130中的第一组任务的记录,该第一组任务是资源(和/或任务)所依赖的并且要使用其他资源(不同于执行该任务的资源)执行。例如,第二车辆将第二包裹递送到装卸区的第三约定可以在调度数据结构130中被识别,以被包括在任务记录135中,因为第一车辆的任务的执行(特别是从装卸区拾取第二包裹)依赖于第二车辆在第一车辆到达装卸区之前将第二包裹递送到装卸区。任务记录135还可以包括用于调度数据结构130中的第二组任务的记录,第二组任务是其他资源所依赖的并且要使用(即,用于执行任务的)资源来执行。例如,第三车辆从装卸区拾取第一包裹的第二约定可以在调度数据结构130中被识别,以被包括在任务记录135中,因为由第三车辆拾取第一包裹依赖于第一车辆在第三车辆到达装卸区之前执行任务(特别是将第一包裹递送到装卸区)。
控制器105利用调度数据分析器140来分析任务记录135,以确定第一组任务和第二组任务之间的依赖性。任务记录135可以各自被考虑以识别可以执行任务的(一个或多个)时间。例如,可以确定第二车辆将第二包裹递送到装卸区的第三约定被调度为5月3日下午2点,而可以确定第三车辆从装卸区拾取第一包裹的约定被调度为5月3日下午5点。
可以确定,如果任务被调度在5月3日下午12点,则第一车辆将无法按照任务的需求拾取第二包裹而不将离开装卸区延迟超过阈值的一段时间或而不第二次返回装卸区。还可以确定,如果任务被调度在5月3日下午6点,则第三车辆将无法按照第二约定的需求拾取第一包裹,而不将离开装卸区延迟超过阈值的一段时间或而不第二次返回装卸区。还可以确定,如果任务被调度在5月3日下午4点,则第三车辆将能够按照第二约定的需求无延迟地拾取第一包裹,并且第一车辆将能够根据任务的需求无延迟地拾取第二包裹。因此,可以将5月3日下午4点计算为用于使用资源(第一车辆)执行任务的候选时间。在一个实施例中,基于确定要在该任务所依赖的任务的执行的第一阈值时间段(3小时)内和/或在依赖该任务的任务的执行的第二阈值时间段(2小时)内执行任务来计算候选时间。
控制器105利用调度数据分析器140为任务记录135中识别的多个资源生成候选调度。候选调度包括要使用资源执行的任务的候选时间。候选调度还可以包括用于要使用一些资源执行的一些任务(递送、拾取等)的更新的时间,以及用于要使用其他资源执行的其他任务(递送、拾取等)的现有时间。在一些示例中,候选调度包括在给定任务和/或任务序列的某些指派的情况下与任务相关联的计算出的定时。
控制器105利用调度数据分析器140来评估候选调度以计算候选调度执行得分。例如,候选调度执行得分可以基于由于预测将由候选调度的实现导致的资源和/或任务之间的依赖性而引起的重复行程的数量、延迟的数量、和/或任务之间的冲突的数量。在另一个示例中,候选调度执行得分可以基于候选调度中的依赖任务之间可用的时间灵活性(误差空间)(例如,第二车辆在下午2点将第二包裹递送到装卸区与在下午4点的任务之间有2小时的时间灵活性)。
控制器105利用调度数据分析器140将候选调度执行得分与(用于多个资源的)现有调度的现有调度执行得分进行比较。当控制器105接收到任务请求110时,可能已经跨多个资源实现了现有调度。响应于确定候选调度执行得分大于现有调度执行得分,基于候选调度修改和重新生成调度数据结构130,以指派要在候选时间(5月3日下午4点)使用资源(第一车辆)执行任务。
相反,如果确定候选调度执行得分不大于现有调度执行得分,则保留现有调度,丢弃候选调度,并生成和评估(具有用于使用资源执行任务的新候选时间的)新的候选调度。在一些示例中,只有在候选调度执行得分比现有调度执行得分大于阈值裕度时,才基于候选调度修改和重新生成调度数据结构130。
在一些示例中,作为候选时间的计算和/或候选调度的生成的部分,基于(先前计算的)前导任务的完成时间(重复)重新计算多个任务中的每个任务的建议开始时间和建议完成时间。可以使用算法来执行重新计算,该算法作为候选时间的计算、候选调度的生成和/或候选调度执行得分与现有调度执行得分的比较(的一个或多个迭代)的部分,循环进行一个或多个(例如,所有)任务以基于前导任务来重新计算每个任务的建议完成时间。该算法继续循环进行任务,直到一个或多个任务的时间不再改变为止。
控制器105生成调度指令145,该调度指令145包括与候选调度相对应的重新生成的调度数据结构130的一部分,以提供给调度实现器150,并且从而控制调度实现器150。调度指令145因此可以提供给调度实现器150以指示第一车辆在5月3日下午4点(候选时间)将第一包裹递送到装卸区,并从装卸区拾取第二包裹,指示第二车辆在5月3日下午2点将第二包裹递送到装卸区,并指示第三车辆在5月3日下午5点从装卸区拾取第一包裹。
可以理解的是,与具有较低优先级的任务相比,具有较高优先级的任务可以与更大的不能移动到替代时隙的概率相关联。即,在示例中,尽管具有高于阈值优先级的优先级的任务可能移动到替代时隙,但是具有低于阈值优先级的优先级的另一任务更可能移动到替代时隙。因此,首先考虑该另一任务更为高效。使用这种启发式方法,可以使用更少的处理能力、更少的存储器使用量、更少的数据库访问等来识别适当的时隙。
在一个实施例中,系统100是计算/数据处理系统,该计算/数据处理系统包括用于企业组织的应用程序或分布式应用程序的集合。应用程序和系统100可以被配置为与基于云的联网系统、软件即服务(SaaS)架构或其他类型的网络化计算解决方案一起操作或被实现为基于云的联网系统、软件即服务(SaaS)架构或其他类型的网络化计算解决方案。在一个实施例中,系统100是集中式服务器侧应用程序,该应用程序至少提供这里所公开的功能并且由许多用户经由通过计算机网络与系统100(用作服务器)通信的计算设备/终端访问。
图2示出了与指派要在候选时间使用第一资源执行第一任务相关联的计算机实现的方法200的一个实施例。在一个实施例中,方法200由控制器105利用计算机805(图8所示)的各种计算资源来执行,这些计算资源诸如用于执行指令的处理器810、用于存储在其中生成控制指令的数据结构的存储器815和/或盘830、和/或用于通过网络将数据结构发送到远程计算机的网络硬件。可以基于各种触发器来触发方法200,这些触发器诸如从实体计算机115接收到任务请求110等。
在205处,接收任务请求110,并且响应于任务请求110的接收,确定任务请求110涉及调度要使用资源(第一工作人员)执行的任务(挖洞)。在一些示例中,任务请求110由(托管控制器105的)服务器从实体计算机115接收。
图4示出了可以用于生成任务请求110的实体计算机115上的图形用户界面405的一个实施例。图形用户界面405被控制为显示第一图形对象410、第二图形对象415、第三图形对象420、第四图形对象425和第五图形对象430。第一图形对象410被配置为接收选择第一任务的一般信息(诸如位置)的用户输入。第二图形对象415被配置为接收选择第一任务的依赖性信息(诸如第一任务依赖于另一任务的指示)的用户输入。第三图形对象420被配置为接收选择关于要执行第一任务(挖洞)的第一资源(第一工作人员)的资源信息的用户输入。第四图形对象425被配置为接收选择要在其内执行第一任务的时间范围(1个月、1个季度、1年等)的用户输入。
返回图2,在210处,经由网络通信从数据库访问调度数据结构130。调度数据结构130的一个实施例在图3中示出,并且包括多个任务305和多个资源310、指派的时隙315、与多个任务305中的一个或多个任务相关联的所依赖的任务320和依赖任务325的指示。可以访问(下载)调度数据结构130中与标准125相对应的任务记录135,而不与标准125相对应的其他任务记录则不可以被访问。
被访问的任务记录135包括第一资源(第一工作人员)所依赖的、要使用一个或多个其他资源(其他人员)来执行的第一组任务。例如,图3指示要使用第一资源(第一工作人员)执行第一任务(挖洞),并且指示第一任务依赖于要使用第二资源(第二工作人员)执行的第二任务(标记用于被挖的洞的位置)。因此,第二任务在被访问的任务记录135的第一组任务中。
被访问的任务记录135还包括要使用第一资源来执行的其他资源所依赖的第二组任务。例如,图3指示第一任务(挖洞)被要使用第三资源(第三工作人员)来执行的第三任务(将导线铺设到洞中)所依赖。因此,第三任务在被访问的任务记录135的第二组任务中。
返回图2,在215处,分析任务记录135以确定要使用一个或多个其他资源来执行的第一组任务与要使用第一资源来执行的第二组任务之间的依赖性。例如,可以确定第一任务(挖洞)、第二任务(标记用于被挖的洞的位置)、第三任务(将导线铺设到洞中)和其他相关联的任务之间的依赖性,诸如第二任务对要由第四资源(第四工作人员)执行的第四任务(将用于标记的设备递送到该位置)的执行的依赖性。
在220处,基于依赖性来计算用于使用第一资源执行第一任务的候选时间。例如,基于第二任务(标记用于被挖的洞的位置)、第三任务(将导线铺设到洞中)和第四任务(将用于标记的设备递送到该位置)的时间和依赖性,确定第一任务(挖洞)的候选时间为2016年11月1日下午4点。例如,用于使用第一资源执行第一任务的候选时间可以被确定为第一任务所依赖的一个或多个任务被执行之后的时间,以及依赖于第一任务的一个或多个任务被执行之前的时间。在一个实施例中,基于以下确定来计算候选时间:确定第一任务将在第一任务所依赖的任务的执行的第一阈值时间段内和/或在依赖第一任务的任务的执行的第二阈值时间段内被执行。
在225处,使用用于针对第一资源的第一任务的候选时间来生成用于包括第一资源的多个资源的候选调度。例如,候选调度可以将2016年11月1日下午4点的候选时间指派给第一任务(挖洞),可以保持第二任务、第三任务和第四任务的现有时间,并且可以将更新的时间指派给被调度为由多个资源执行的一个或多个其他任务。
在230处,评估候选调度以计算候选调度执行得分。在一些示例中,候选调度执行得分基于候选调度中第一组任务和第二组任务之间的依赖性中所识别(或估计)的多个冲突。在依赖另一个任务的任务被调度为在该另一个任务之前执行的情况下识别冲突。例如,如果第五任务具有在要使用第六资源来执行的第六任务之前的时间,则为要使用第一资源来执行的第五任务确定冲突,其中,依赖性包括第五任务对第六任务的依赖性。在另一示例中,如果第七任务具有在要使用第一资源执行的第八任务之前的时间,则为要使用第六资源来执行的第七任务确定冲突,其中,依赖性包括第七任务对第八任务的依赖性。
返回图4,第五图形对象430被配置为显示关于基于经由图形对象410、415、420和/或425接收的用户输入而生成的候选调度的信息。第五图形对象430包括被配置为显示关于候选调度的信息的第六图形对象435、被配置为显示为候选调度计算的候选调度执行得分的第七图形对象440、以及被配置为显示为候选调度计算的候选调度执行得分与为现有调度计算的现有调度执行得分的比较的第八图形对象445。
返回图2,在235处,响应于确定候选调度执行得分大于现有调度的现有调度执行得分,调度数据结构130基于候选调度被修改并被重新生成以指派要在候选时间使用第一资源执行第一任务。例如,在调度数据结构130中,使用第一资源的第一任务的执行被指派给候选时间的候选时隙。在调度数据结构130中将第一任务指派给候选时隙使得在候选时间由第一资源执行第一任务。在一些示例中,调度数据结构130(或调度数据结构130的被修改的部分)被包括在被提供给调度实现器150的调度指令145中。
在一些示例中,针对各种资源或任务迭代地重复图2的动作中的一个或多个动作,以测试对调度的修改,合并被确定为(通过减少冲突)改进调度的修改,并丢弃被确定为未改进调度的修改。
例如,基于在要使用多种资源执行的任务之间识别出的一个或多个依赖性,来计算用于使用第二资源执行第二任务的第二候选时间(与第二任务的现有第二时间不同)。例如,可以将用于使用第二资源执行第二任务的第二候选时间确定为执行第二任务所依赖的一个或多个任务之后的时间,以及执行依赖于第二任务的一个或多个任务之前的时间。
使用用于针对第二资源的第二任务的第二候选时间,生成包括第二资源的多个资源的第二候选调度。例如,第二候选调度可以保持第一任务的候选时间以及第三任务和第四任务的现有时间,并且可以将更新的时间指派给被调度为由多种资源执行的一个或多个其他任务。
评估第二候选调度以计算第二候选调度执行得分。在一些示例中,第二候选调度执行得分基于在第二候选调度中的使用多个资源来执行的任务之间的依赖性中识别(或估计)的多个冲突。
响应于确定第二候选调度执行得分不大于第二现有调度的第二现有调度执行得分,基于一个或多个依赖性来计算用于使用第二资源执行第二任务的第三候选时间。例如,第二候选时间和第二候选调度被确定为未改进调度,并因此被丢弃,并且计算用于使用第二资源来执行第二任务的第三候选时间。
响应于确定第二候选调度执行得分大于第二现有调度的第二现有调度执行得分,基于第二候选调度修改并重新生成调度数据结构,以将要使用第二资源执行的第二任务指派在第二候选时间。例如,第二候选时间和第二候选调度被确定为改进调度,并因此被实现。例如,在调度数据结构130中,使用第二资源的第二任务的执行被指派给第二候选时间的第二候选时隙。
调度实现器150使用调度数据结构130来使第一任务在候选时间由第一资源执行,并且使一个或多个其他任务被调度为在其他时间执行。在一些示例中,根据调度指令145,调度实现器150可以向用于执行任务的资源的操作者提供物理/打印指令,而在其他示例中,调度实现器150可以向被配置为控制资源的一台或多台机器(诸如工作人员的计算机或他们的车辆)提供数字指令。
调度指令145的一个实施例在图5中被示为由宣传显示实现器150接收的数据结构。调度指令145包括用以指派要在候选时间使用第一资源执行第一任务的第一指令510、用以从第二时间取消指派要使用第二资源执行的第二任务的第二指令515,以及用以指派要在(基于依赖性为第二任务计算的)第二候选时间使用第二资源执行第二任务的第三指令520。
可以理解,在一些示例中,调度实现器150监控一个或多个资源的状态,以及候选调度的实现,如图6所示。调度实现器150包括监控器界面605,监控器界面605显示显示要使用第一资源执行的第一任务的状态的第一指示符610以及显示要使用第二资源执行的第二任务的状态的第二指示符615。例如,第一指示符610可以指示第一资源(第一工作人员)已经根据调度指令145将第一任务并入其调度中的候选时间,而第二指示符可以指示第二资源(第二工作人员)尚未将第二任务并入其调度中的第二候选时间,并因此不符合调度指令145。在一些示例中,基于指示与资源相关联的用户印象的用户反馈生成监控器界面605,而在其他示例中,基于对资源的相应调度的自动分析来生成监视器界面605。
在一个实施例中,用于执行这里公开的技术中的至少一些技术的算法收集调度中涉及的一个或多个资源,清除与调度相对应的事件表,处理在第一循环中收集的一个或多个资源,为被指派给一个或多个资源中的第一资源的第一任务计算时间,将关于第一任务的信息添加到事件表,在如果第二资源依赖于第一任务中的至少一个,则考虑添加到事件表的第一任务的同时,为被指派给一个或多个资源中的第二资源的第二任务计算时间,将关于第二任务的信息添加到事件表。该算法迭代地重复(例如,每秒数百次)该过程以逐渐生成具有正确的(非冲突的)依赖性和任务的调度。可以理解,事件表可以是散列表,该散列表包含用于一个或多个任务的估计时间以及满足多个任务之间的依赖性所需的事件。
图7是涉及示例非暂时性计算机可读介质705的场景700的图示。在一个实施例中,这里所描述的组件中的一个或多个组件被配置为被存储在非暂时性计算机可读介质705中的程序模块,诸如控制器105。程序模块被配置有存储的指令,诸如处理器可执行指令710,该指令在至少由处理器(诸如处理器715)执行时使计算设备执行如这里所述的(一个或多个)对应的功能。例如,被存储在非暂时性计算机可读介质705中的控制器105的功能可以作为处理器可执行指令710由处理器715执行,以执行图2的方法200的实施例740。
非暂时性机器可读介质705包括处理器可执行指令710,该处理器可执行指令710在由处理器715执行时使得执行本文中的至少一些条款。非暂时性机器可读介质705包括存储器半导体(例如,利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或同步动态随机存取存储器(SDRAM)技术的半导体)、硬盘驱动器盘片、闪存设备或磁盘或光盘(诸如光盘(CD)、数字通用盘(DVD)或软盘)。示例非暂时性机器可读介质705存储计算机可读数据720,当计算机可读数据720被设备735的读取器730(例如,硬盘驱动器的读取头或在固态存储设备上调用的读取操作)读取725时,表达处理器可执行指令710。在一些实施例中,处理器可执行指令710在被执行时引起操作的执行,例如诸如图2的示例方法200中的至少一些操作的执行。在一些实施例中,处理器可执行指令710被配置为引起系统的实现,例如诸如图1的示例系统100中的至少一些的实现。
图8示出了用本文描述的示例系统和方法中的一个或多个和/或等同物配置和/或编程的示例计算设备的场景800。示例计算设备可以是计算机805,计算机805包括通过总线825被可操作地连接的处理器810、存储器815和输入/输出端口820。在一个示例中,计算机805可以包括被配置为促进图1和图2所示的系统100和/或方法200的控制器105的逻辑。在不同示例中,控制器105的逻辑可以以硬件、具有存储的指令的非暂时性计算机可读介质705、固件和/或其组合来实现。尽管控制器105的逻辑被示为附接到总线825的硬件组件,但是应当理解,在其他实施例中,控制器105的逻辑可以在处理器810中实现、存储在存储器815中或存储在盘830中。
在一个实施例中,计算机805或控制器105的逻辑是用于执行所描述的动作的装置(例如,结构:硬件、非暂时性计算机可读介质、固件)。在一些实施例中,计算设备可以是在云计算系统中操作的服务器、在软件即服务(SaaS)架构中配置的服务器、智能电话、笔记本电脑、平板计算设备等等。
该装置可以被实现为例如专用集成电路(ASIC),该ASIC被编程为实现用于分配的基于规则的源排序。该装置还可以被实现为存储的计算机可执行指令,该存储的计算机可执行指令作为数据845呈现给计算机805,该数据845被临时存储在存储器815中,然后由处理器810执行。
控制器105的逻辑还可以提供用于执行用于分配的基于规则的源排序的装置(例如,硬件、存储可执行指令的非暂时性计算机可读介质705、固件)。
一般性地描述计算机805的示例配置而言,处理器810可以是包括双微处理器和其他多处理器架构的各种各样的处理器。存储器815可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括例如只读存储器(ROM)、可编程只读存储器(PROM)等。易失性存储器可以包括例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
盘830可以经由例如输入/输出(I/O)接口(例如卡、设备)835和输入/输出端口820被可操作地连接到计算机805。盘830可以是例如磁盘驱动器、固态盘驱动器、软盘驱动器、带驱动器、Zip驱动器、闪存卡、记忆棒等。此外,盘830可以是CD-ROM驱动器、CD-R驱动器、CD-RW驱动器、DVD ROM等。存储器815可以例如存储过程840和/或数据845。盘830和/或存储器815可以存储控制和分配计算机805的资源的操作系统。
计算机805可以经由输入输出(I/O)接口835和输入/输出端口820与输入/输出(I/O)设备交互。输入/输出设备可以是例如键盘、麦克风、指向和选择设备、相机、视频卡、显示器、盘830、网络设备850等。输入/输出端口820可以包括例如串行端口、并行端口和USB端口。I/O控制器855可将I/O接口835连接到总线825。
计算机805可以在网络环境中操作,并且因此可以经由I/O接口835和/或I/O端口820被连接到网络设备850。通过网络设备850,计算机805可以与网络交互。通过网络,计算机805可以被逻辑地连接到远程计算机。计算机805可以与之交互的网络包括但不限于局域网(LAN)、新区域网(WAN)和其他网络。
在另一个实施例中,可以用计算机可执行指令来实现所描述的方法和/或其等同物。因此,在一个实施例中,非暂时性计算机可读/存储介质被配置有算法/可执行应用程序的存储的计算机可执行指令,该计算机可执行指令当由(一个或多个)机器执行时,使得(一个或多个)机器(和/或相关组件)执行该方法。示例机器包括但不限于处理器、计算机、在云计算系统中操作的服务器、在软件即服务(SaaS)架构中配置的服务器、智能电话等。在一个实施例中,用被配置为执行公开的方法中的任何方法的一种或多种可执行算法来实现计算设备。
在一个或多个实施例中,所公开的方法或它们的等同物通过以下任一种来执行:被配置为执行该方法的计算机硬件;或被体现在被存储在非暂时性计算机可读介质中的模块中的计算机指令,其中该指令被配置为可执行算法,该可执行算法被配置为当至少由计算设备的处理器执行时执行该方法。
尽管为了简化说明的目的,图中示出的方法被示出和描述为一系列算法块,但是应当理解,这些方法不受块的顺序的限制。一些块可以以不同的顺序发生和/或与来自所示出和描述的其他块同时发生。此外,少于全部示出的块可以用于实现示例方法。块可以被组合或分离为多个动作/组件。此外,附加的和/或可替代的方法可以采用未在块中示出的附加动作。
以下包括这里采用的所选术语的定义。定义包括落入术语范围内并且可以用于实现的组件的各种示例和/或形式。这些示例不旨在是限制性的。术语的单数形式和复数形式都可以在定义之内。
对“一个实施例”、“实施例”、“一个示例”、“示例”等的引用指示如此描述的(一个或多个)实施例或(一个或多个)示例可以包括特定的特征、结构、特性、属性、要素或限制,但不是每个实施例或示例都必须包括该特定特征、结构、特性、属性、要素或限制。此外,重复使用短语“在一个实施例中”不一定指同一实施例,尽管它可能指同一实施例。
如这里所使用的,“数据结构”是被存储在存储器、存储设备或其他计算机化系统中的计算系统中的数据的组织。数据结构可以是例如数据字段、数据文件、数据阵列、数据记录、数据库、数据表、图、树、链表等中的任何一种。数据结构可以由许多其他数据结构形成并包含许多其他数据结构(例如,数据库包括许多数据记录)。根据其他实施例,数据结构的其他示例也是可能的。
如这里所用,“计算机可读介质”或“计算机存储介质”是指存储指令和/或数据的非暂时性介质,所述指令和/或数据被配置为在被执行时执行所公开的功能中的一个或多个。在一些实施例中,数据可以用作指令。计算机可读介质可以采取包括但不限于非易失性介质和易失性介质的形式。非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存储器、动态存储器等。计算机可读介质的常见形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其他磁性介质、专用集成电路(ASIC)、可编程逻辑器件、光盘(CD)、其他光学介质、随机存取存储器(RAM)、只读存储器(ROM)、存储芯片或卡、记忆棒、固态存储设备(SSD)、闪存驱动器以及计算机、处理器或其他电子设备可以与其一起工作的其他介质。如果被选择用于在一个实施例中实现,则每种类型的介质可以包括被配置为执行所公开和/或要求保护的功能中的一项或多项的算法的存储指令。
如这里所用,“逻辑”表示用计算机或电气硬件实现的组件、具有可执行应用程序或程序模块的存储指令的非暂时性介质和/或它们的组合,以执行这里所公开的任何功能或动作,和/或使来自另一逻辑、方法和/或系统的功能或动作如这里所公开的那样被执行。等效逻辑可以包括固件、用算法编程的微处理器、离散逻辑(例如ASIC)、至少一个电路、模拟电路、数字电路、编程逻辑器件、包含算法指令的存储器设备等等,它们中的任何一个都可以被配置为执行所公开的功能中的一个或多个。在一个实施例中,逻辑可以包括被配置为执行所公开的功能中的一个或多个功能的一个或多个门、门的组合或其他电路组件。在描述多个逻辑的情况下,可以将多个逻辑合并到一个逻辑中。类似地,在描述单个逻辑的情况下,可以在多个逻辑之间分布该单个逻辑。在一个实施例中,这些逻辑中的一个或多个逻辑是与执行所公开和/或所要求保护的功能相关联的对应结构。可以基于期望的系统条件或规格来选择要实现的逻辑类型。例如,如果考虑更大的速度,则将选择硬件来实现功能。如果考虑降低成本,则将选择存储的指令/可执行应用程序来实现功能。
“可操作的连接”或实体通过其“被可操作地连接”的连接是其中可以发送和/或接收信号、物理通信和/或逻辑通信的连接。可操作的连接可以包括物理接口、电接口和/或数据接口。可操作的连接可以包括足以允许可操作的控制的接口和/或连接的不同组合。例如,两个实体可以被可操作地连接以直接地或者通过一个或多个中间实体(例如,处理器、操作系统、逻辑、非暂时性计算机可读介质)彼此传送信号。逻辑和/或物理通信通道可用于创建可操作的连接。
如这里所用,“用户”包括但不限于一个或多个人、计算机或其他设备或这些的组合。
尽管已经相当详细地示出和描述了所公开的实施例,但是不旨在将所附权利要求的范围约束或以任何方式限制到这样的细节。当然,出于描述主题的各个方面的目的,不可能描述组件或方法的每种可设想的组合。因此,本公开不限于所示出和描述的具体细节或说明性示例。因此,本公开旨在包含落入所附权利要求的范围内的变更、修改和变化。
就在具体实施方式或权利要求中采用术语“包括(includes或including)”而言,其旨在如该术语在权利要求中用作过渡词时将被解释的那样以与术语“包含”相似的方式是包容性的。
就在具体实施方式或权利要求中使用术语“或”(例如,A或B)而言,其旨在表示“A或B或A和B两者”。当申请人旨在表示“仅A或B而不是A和B两者”时,则将使用短语“仅A或B而不是A和B两者”。因此,这里术语“或”的使用是包容性的,而不是排他性的使用。

Claims (15)

1.一种计算系统,包括:
被连接到存储器的处理器;以及
调度模块,被存储在非暂时性计算机可读介质上,并且被配置有指令,所述指令在由所述处理器执行时使所述处理器:
响应于接收到修改包括多个任务的调度数据结构以使所述调度数据结构包括包含用于多个任务的估计时间的散列表的请求,确定所述请求涉及调度要使用来自多个资源中的第一资源执行的第一任务;
经由网络通信从数据库访问所述调度数据结构,其中
所述调度数据结构包括用于以下各项的数据记录:
(i)第一资源所依赖的、要使用一个或多个其他资源执行的第一组任务,
(ii)要使用所述第一资源执行的、一个或多个其他资源所依赖的第二组任务;
(iii)为所述第一组任务和所述第二组任务分配的候选时隙,以及
(iv)所述第一组任务和所述第二组任务之间的依赖性;
分析所述数据记录以确定要使用所述一个或多个其他资源执行的所述第一组任务与要使用所述第一资源执行的所述第二组任务之间的所述依赖性;
基于所述依赖性,分配用于使用所述第一资源执行所述第一任务的候选时隙;
使用用于使用所述第一资源的所述第一任务的所述分配的候选时隙,为包括所述第一资源的所述多个资源生成候选调度;
评估所述候选调度以至少基于在所述候选调度中的所述第一组任务和所述第二组任务之间的依赖性中识别的多个冲突来计算候选调度执行得分;以及
至少基于所述候选调度执行得分和所述任务与所述资源之间的所述依赖性,迭代地重新计算用于执行所述任务的候选时隙,直到确定非冲突的依赖性,包括:
基于先前计算的任务的完成时间和所述散列表中的估计时间来计算所述多个任务中的每个任务的建议开始时间和建议完成时间,以生成修改的候选调度,
直到所述多个任务中的至少一个任务的开始和完成时间不再改变并且所述多个任务中的每一个任务之间没有冲突存在;和
响应于确定所述多个任务中的至少一个任务的建议开始时间和建议完成时间何时不再改变并且所述多个任务中的每一个任务之间没有冲突存在,重新生成调度数据结构,其中重新生成的调度数据结构包括最终候选调度;以及
使所述第一资源执行所述第一任务。
2.如权利要求1所述的计算系统,
其中,评估所述候选调度以计算所述候选调度执行得分的所述指令还包括当由所述处理器执行时使所述处理器执行以下操作的指令:
分析所述候选调度,以确定所述候选调度中的所述第一组任务和所述第二组任务之间的依赖性中的所述多个冲突;以及
基于依赖性中的所述多个冲突来生成所述候选调度执行得分。
3.如权利要求2所述的计算系统,其中,依赖性中的所述冲突包括以下至少之一:
(i)与要使用所述第一资源执行的第二任务具有在要使用第二资源执行的第三任务之前的时隙相对应的冲突,其中所述依赖性包括要使用所述第一资源执行的所述第二任务对要使用所述第二资源执行的所述第三任务的依赖性;或者
(ii)与要使用所述第二资源执行的第四任务具有在要使用所述第一资源执行的第五任务之前的时隙相对应的冲突,其中所述依赖性包括要使用所述第二资源执行的所述第四任务对要使用所述第一资源执行的所述第五任务的依赖性。
4.如权利要求1或2所述的计算系统,
其中,用于计算使用所述第一资源执行所述第一任务的所述候选时隙的所述依赖性包括以下至少之一:
(i)要使用所述第一资源执行的所述第一任务对要使用第二资源执行的第二任务的依赖性;或者
(ii)要使用所述第二资源执行的第三任务对要使用所述第一资源执行的所述第一任务的依赖性;以及
其中,用于基于所述依赖性来计算使用所述第一资源执行所述第一任务的所述候选时隙的所述指令还包括当由所述处理器执行时使所述处理器至少执行以下中的至少一项的指令:
基于要使用所述第一资源执行的所述第一任务对要使用所述第二资源执行的所述第二任务的所述依赖性,计算在所述第二任务的时隙之后的所述候选时隙;或者
基于要使用所述第二资源执行的所述第三任务对要使用所述第一资源执行的所述第一任务的所述依赖性,计算在所述第三任务的时隙之前的所述候选时隙。
5.如权利要求1或2所述的计算系统,
其中,用于计算用于使用所述第一资源执行所述第一任务的候选时隙的所述依赖性包括以下至少之一:
(i)针对所述第一资源的第二任务对针对第二资源的第三任务的依赖性;或者
(ii)针对所述第二资源的第四任务对针对所述第一资源的第五任务的依赖性;
其中所述指令在由所述处理器执行时使所述处理器执行以下中的至少一项:
基于针对所述第一资源的所述第二任务对针对所述第二资源的所述第三任务的依赖性,计算在所述第三任务的时隙之后的用于针对所述第一资源的所述第二任务的第二候选时隙;或者
基于针对所述第二资源的所述第四任务对针对所述第一资源的所述第五任务的依赖性,计算在所述第四任务的时隙之前的用于针对所述第一资源的所述第五任务的第三候选时隙;以及
其中用于为所述多个资源生成所述候选调度的指令还包括当由所述处理器执行时使所述处理器执行以下中的至少一项的指令:
在所述候选调度中使用用于针对所述第一资源的所述第二任务的所述第二候选时隙;或者
在所述候选调度中使用用于针对所述第一资源的所述第五任务的所述第三候选时隙。
6.如权利要求1-3中的任一项所述的计算系统,
其中,所述第一资源是第一车辆,所述第一组任务要使用一个或多个其他车辆执行,并且所述第二组任务将由所述第一车辆执行;
其中确定所述候选调度执行得分大于现有调度的所述现有调度执行得分的所述指令还包括当由所述处理器执行时使所述处理器执行以下操作的指令:
确定所述候选调度解决了所述现有调度中的冲突,所述冲突由所述一个或多个其他车辆中的至少一个车辆和所述第一车辆之间的依赖性引起。
7.一种由包括处理器的计算设备执行的计算机实现的方法,所述计算机实现的方法包括:
响应于至少由所述处理器接收修改包括多个任务的调度数据结构以使所述调度数据结构包括包含用于所述多个任务的估计时间的散列表的请求,确定所述请求涉及调度要使用来自多个资源中的第一资源执行的第一任务;
至少由所述处理器通过网络通信从数据库访问所述调度数据结构,其中所述调度数据结构包括用于以下各项的数据记录:
(i)所述第一资源所依赖的、要使用一个或多个其他资源执行的第一组任务,
(ii)要使用所述第一资源执行的、一个或多个其他资源所依赖的第二组任务;
(iii)为所述第一组任务和第二组任务分配的候选时隙,以及
(iv)所述第一组任务和所述第二组任务之间的依赖性;
至少由所述处理器分析所述数据记录以确定要使用所述一个或多个其他资源执行的所述第一组任务与要使用所述第一资源执行的所述第二组任务之间的所述依赖性;
至少由所述处理器基于所述依赖性分配用于使用所述第一资源执行第一任务的候选时隙;
至少由所述处理器使用用于针对所述第一资源的所述第一任务的所述分配的候选时隙,为包括所述第一资源的所述多个资源生成候选调度;
至少由所述处理器评估所述候选调度以至少基于所述候选调度中的所述第一组任务和所述第二组任务之间的依赖性中识别的多个冲突来计算候选调度执行得分;以及
至少基于所述候选调度执行得分和所述任务和所述资源之间的所述依赖性,迭代地重新计算用于执行所述任务的候选时隙,直到确定非冲突的依赖性,包括:
基于先前计算的任务的完成时间和所述散列表中的估计时间来计算所述多个任务中的每个任务的建议开始时间和建议完成时间,以生成修改的候选调度,直到所述多个任务中的至少一个任务的开始时间和完成时间不再改变并且所述多个任务中的每一个任务之间没有冲突存在;和
响应于确定所述多个任务中的至少一个任务的建议开始时间和建议完成时间何时不再改变并且所述多个任务中的每一个任务之间没有冲突存在,重新生成调度数据结构,其中重新生成的调度数据结构包括最终候选调度;以及
使所述第一资源执行所述第一任务。
8.如权利要求7所述的计算机实现的方法,
其中,所述评估所述候选调度以计算所述候选调度执行得分还包括:
分析所述候选调度,以确定所述候选调度中所述第一组任务和所述第二组任务之间的依赖性中的所述多个冲突;以及
基于依赖性的所述多个冲突生成所述候选调度执行得分。
9.如权利要求7或8中的任一项所述的计算机实现的方法,其中,依赖性中的所述冲突包括以下至少之一:
(i)与要使用所述第一资源执行的第二任务具有在要使用第二资源执行的第三任务之前的时隙相对应的冲突,其中,所述依赖性包括要使用所述第一资源执行的所述第二任务对要使用所述第二资源执行的所述第三任务的依赖性;或者
(ii)与要使用所述第二资源执行的第四任务具有在要使用所述第一资源执行的第五任务之前的时隙相对应的冲突,其中,所述依赖性包括要使用所述第二资源执行的所述第四任务对要使用所述第一资源执行的所述第五任务的依赖性。
10.如权利要求7或8所述的计算机实现的方法,
其中,用于计算用于使用所述第一资源执行所述第一任务的所述候选时隙的所述依赖性包括以下至少之一:
(i)要使用所述第一资源执行的所述第一任务对要使用第二资源执行的第二任务的依赖性;或者
(ii)要使用所述第二资源执行的第三任务对要使用所述第一资源执行的所述第一任务的依赖性;以及
其中,基于所述依赖性,计算用于使用所述第一资源执行所述第一任务的所述候选时隙还包括以下至少之一:
基于要使用所述第一资源执行的所述第一任务对要使用所述第二资源执行的所述第二任务的依赖性,计算在所述第二任务的时隙之后的所述候选时隙;或者
基于要使用所述第二资源执行的所述第三任务对要使用所述第一资源执行的所述第一任务的依赖性,计算在所述第三任务的时隙之前的所述候选时隙。
11.如权利要求7或8所述的计算机实现的方法,
其中,用于计算用于使用所述第一资源执行所述第一任务的所述候选时隙的所述依赖性包括以下至少之一:
(i)针对所述第一资源的第二任务对针对第二资源的第三任务的依赖性;或者
(ii)针对所述第二资源的第四任务对针对所述第一资源的第五任务的依赖性。
12.如权利要求11所述的计算机实现的方法,
其中所述计算机实现的方法还包括以下至少之一:
基于针对所述第一资源的所述第二任务对针对所述第二资源的所述第三任务的所述依赖性,计算在所述第三任务的时隙之后的用于针对所述第一资源的所述第二任务的第二候选时隙;或者
基于针对所述第二资源的所述第四任务对针对所述第一资源的所述第五任务的所述依赖性,计算在所述第四任务的时隙之前的用于针对所述第一资源的所述第五任务的第三候选时隙。
13.如权利要求12所述的计算机实现的方法,
其中,所述生成针对所述多个资源的所述候选调度还包括以下至少之一:
在所述候选调度中使用用于针对所述第一资源的所述第二任务的所述第二候选时隙;或者
在所述候选调度中使用用于针对所述第一资源的所述第五任务的所述第三候选时隙。
14.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质具有存储在其上的指令,所述指令在由处理器执行时使所述处理器执行如权利要求7-13中任一项所述的方法。
15.一种包括用于执行如权利要求7-13中任一项所述的方法的部件的装置。
CN201880034634.5A 2017-05-26 2018-05-24 解决车辆调度中的跨车辆依赖性的计算机化系统和方法 Active CN110663051B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/606,084 2017-05-26
US15/606,084 US11132631B2 (en) 2017-05-26 2017-05-26 Computerized system and method for resolving cross-vehicle dependencies for vehicle scheduling
PCT/US2018/034338 WO2018217992A1 (en) 2017-05-26 2018-05-24 Computerized system and method for resolving cross-vehicle dependencies for vehicle scheduling

Publications (2)

Publication Number Publication Date
CN110663051A CN110663051A (zh) 2020-01-07
CN110663051B true CN110663051B (zh) 2023-11-24

Family

ID=62705681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880034634.5A Active CN110663051B (zh) 2017-05-26 2018-05-24 解决车辆调度中的跨车辆依赖性的计算机化系统和方法

Country Status (4)

Country Link
US (1) US11132631B2 (zh)
JP (1) JP7319196B2 (zh)
CN (1) CN110663051B (zh)
WO (1) WO2018217992A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340413A (zh) * 2020-02-10 2020-06-26 拉扎斯网络科技(上海)有限公司 配送任务的分配方法、装置、服务器和存储介质
US20230342687A1 (en) * 2022-04-20 2023-10-26 Verizon Patent And Licensing Inc. Systems and methods for utilizing vehicle data to identify events associated with scheduled jobs

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
CN101101649A (zh) * 2006-03-09 2008-01-09 英图特有限公司 管理工作流处理中的数据的方法和系统
CN101663685A (zh) * 2007-03-01 2010-03-03 埃森哲环球服务有限公司 具有违规反馈的资源调度
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN102077172A (zh) * 2008-07-02 2011-05-25 Nxp股份有限公司 使用运行时间任务调度的多处理器电路
WO2013005467A1 (ja) * 2011-07-07 2013-01-10 村田機械株式会社 搬送車システムと搬送車の走行スケジュールの生成方法
US8543438B1 (en) * 2012-02-03 2013-09-24 Joel E. Fleiss Labor resource utilization method and apparatus
CN104346220A (zh) * 2013-07-31 2015-02-11 中国科学院计算技术研究所 一种任务调度方法与系统
CN104732325A (zh) * 2013-12-20 2015-06-24 达索系统美国公司 用于自动调度的计算机方法和装置
US9268604B1 (en) * 2012-12-11 2016-02-23 The Boeing Company Automated allocation of vehicle systems for different specified vehicle testing tasks
CN106020941A (zh) * 2015-03-24 2016-10-12 国际商业机器公司 选择资源分配策略和解决资源冲突
CN106503836A (zh) * 2016-10-09 2017-03-15 电子科技大学 一种多目标优化的纯电动汽车物流配送优化调度方法
WO2017065913A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660904B2 (en) * 2004-05-11 2010-02-09 Microsoft Corporation Providing keys to share data within an instant messaging session
US8140592B2 (en) * 2004-08-19 2012-03-20 The United States Postal Service Delivery operations information system with route adjustment feature and methods of use
GB0513045D0 (en) * 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
US20080215409A1 (en) * 2007-01-03 2008-09-04 Victorware, Llc Iterative resource scheduling
JP5382844B2 (ja) * 2008-02-21 2014-01-08 株式会社日立ソリューションズ 輸送スケジュール作成システム
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
US8875143B2 (en) 2009-12-31 2014-10-28 Bmc Software, Inc. Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment
US8751497B2 (en) * 2011-10-07 2014-06-10 Clear Channel Management Services, Inc. Multi-shot scheduling system
US20160026935A1 (en) 2014-07-24 2016-01-28 International Business Machines Corporation Multiple individual travel scheduling
US9933177B2 (en) * 2014-11-04 2018-04-03 Google Llc Enhanced automated environmental control system scheduling using a preference function
US10726366B2 (en) 2015-04-14 2020-07-28 International Business Machines Corporation Scheduling and simulation system
US10796285B2 (en) * 2016-04-14 2020-10-06 Microsoft Technology Licensing, Llc Rescheduling events to defragment a calendar data structure
GB201621627D0 (en) * 2016-12-19 2017-02-01 Palantir Technologies Inc Task allocation

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
CN101101649A (zh) * 2006-03-09 2008-01-09 英图特有限公司 管理工作流处理中的数据的方法和系统
CN101663685A (zh) * 2007-03-01 2010-03-03 埃森哲环球服务有限公司 具有违规反馈的资源调度
CN101743534A (zh) * 2007-07-16 2010-06-16 微软公司 通过增长和收缩资源分配来进行调度
CN102077172A (zh) * 2008-07-02 2011-05-25 Nxp股份有限公司 使用运行时间任务调度的多处理器电路
WO2013005467A1 (ja) * 2011-07-07 2013-01-10 村田機械株式会社 搬送車システムと搬送車の走行スケジュールの生成方法
US8543438B1 (en) * 2012-02-03 2013-09-24 Joel E. Fleiss Labor resource utilization method and apparatus
US9268604B1 (en) * 2012-12-11 2016-02-23 The Boeing Company Automated allocation of vehicle systems for different specified vehicle testing tasks
CN104346220A (zh) * 2013-07-31 2015-02-11 中国科学院计算技术研究所 一种任务调度方法与系统
CN104732325A (zh) * 2013-12-20 2015-06-24 达索系统美国公司 用于自动调度的计算机方法和装置
CN106020941A (zh) * 2015-03-24 2016-10-12 国际商业机器公司 选择资源分配策略和解决资源冲突
WO2017065913A1 (en) * 2015-10-16 2017-04-20 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts
CN106503836A (zh) * 2016-10-09 2017-03-15 电子科技大学 一种多目标优化的纯电动汽车物流配送优化调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
旅游信息系统中的防冲突任务调度模型仿真;杨宏波;计算机仿真;第32卷(第06期);447-451 *

Also Published As

Publication number Publication date
WO2018217992A1 (en) 2018-11-29
JP2020522063A (ja) 2020-07-27
JP7319196B2 (ja) 2023-08-01
CN110663051A (zh) 2020-01-07
US11132631B2 (en) 2021-09-28
US20180341893A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
US9715408B2 (en) Data-aware workload scheduling and execution in heterogeneous environments
JP6447120B2 (ja) ジョブスケジューリング方法、データアナライザ、データ解析装置、コンピュータシステム及びコンピュータ可読媒体
US20190332523A1 (en) Data-Driven Scheduling of Automated Software Program Test Suites
US10754704B2 (en) Cluster load balancing based on assessment of future loading
JP2019521413A (ja) メモリ使用量判断技術
US8869159B2 (en) Scheduling MapReduce jobs in the presence of priority classes
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
CN111352736A (zh) 大数据资源的调度方法、装置、服务器及存储介质
US8869148B2 (en) Concurrency identification for processing of multistage workflows
US11966775B2 (en) Cloud native adaptive job scheduler framework for dynamic workloads
CN110663051B (zh) 解决车辆调度中的跨车辆依赖性的计算机化系统和方法
US20120174110A1 (en) Amortizing costs of shared scans
US20170147398A1 (en) Estimating job start times on workload management systems
CN113227978B (zh) 计算机处理管线中的自动异常检测
US10613896B2 (en) Prioritizing I/O operations
US9965260B2 (en) Software product release automation framework
CN112346952A (zh) 用于测试用例的回归测试的方法、设备和电子设备
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US10852908B2 (en) Method and system for controlling a display screen based upon a prediction of compliance of a service request with a service level agreement (SLA)
CN112685158A (zh) 一种任务调度方法、装置、电子设备及存储介质
WO2016186631A1 (en) Price, completion time, and resource allocation determination for cloud services
US10304018B2 (en) Method and system for controlling a display screen with graphical objects for scheduling
US20230315517A1 (en) Central randomized scheduler for hypothesis-based workloads
US20230195743A1 (en) Balancing time-constrained data transformation workflows
US20230036476A1 (en) System and apparatus for faas business goals optimization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant