用于任务分配系统中的行为配对的技术的制作方法

文档序号:19418572发布日期:2019-12-14 01:11阅读:161来源:国知局
用于任务分配系统中的行为配对的技术的制作方法

相关申请的交叉引用

本国际专利申请要求于2017年12月11日提交的美国专利申请no.15/837,911的优先权,其全部内容如同在本文中完全阐述一样通过引用并入本文。

本公开总体上涉及一种行为配对,更具体地,涉及一种用于任务分配系统中的行为配对的技术。



背景技术:

典型的任务分配系统在算法上将到达任务分配中心处的任务分配给可用于处理这些任务的代理。有时,任务分配系统可以使代理可用并等待分配给任务。在其他时间处,任务分配中心可以让任务在一个或多个队列中等待代理变得可用于分配。

在一些典型的任务分配中心中,根据到达时间将任务分配给有序的代理,并且基于在这些代理变得可用时的时间代理接收有序的任务。此策略可以称为“先进先出”、“fifo”、或“轮询”策略。例如,在“l2”环境中,多个任务在队列中等待分配给代理。当代理变得可用时,将选择队列的头处的任务来分配给代理。

某些任务分配系统将某些类型的任务优先于其他类型的任务之前。例如,一些任务可以是高优先级任务,而其他任务是低优先级任务。在fifo策略下,将在低优先级任务之前分配高优先级任务。在某些情况下,某些低优先级任务可能具有高平均等待时间,而高优先级任务反而被处理。此外,可能能够更有效地处理低优先级任务的代理可能反而最终被分配给高优先级任务,从而导致任务分配系统中的次优化总体性能。

鉴于上述,可以理解的是,可能需要一种有效地优化bp策略在任务分配系统的l2环境中的应用的系统。



技术实现要素:

公开了用于任务分配系统中的行为配对的技术。在一个特定实施例中,所述技术可以被实现为一种用于任务分配系统中的行为配对的方法,所述方法包括:由通信地耦合到所述任务分配系统并被配置为在所述任务分配系统中操作的至少一个计算机处理器确定多个任务中的每一个的优先级;由所述至少一个计算机处理器确定可用于分配给所述多个任务中的任一个的代理;以及由所述至少一个计算机处理器使用任务分配策略来将所述多个任务中的第一任务分配给所述代理,其中,所述第一任务具有比所述多个任务中的第二任务低的优先级。

根据该特定实施例的其他方面,所述第一多个任务可以包括来自任务的队列前面的一定数量的任务。

根据该特定实施例的其他方面,任务的所述数量大于1且小于10。

根据该特定实施例的其他方面,所述方法可进一步包括:由所述至少一个计算机处理器确定所述任务分配策略的选择的最优程度;以及由所述至少一个计算机处理器基于所述选择的最优程度来确定任务的所述数量。

根据该特定实施例的其他方面,任务的所述数量与任务的所述队列的大小成比例。

根据该特定实施例的其他方面,任务的所述数量与不同优先级的任务的相对数量成比例。

根据该特定实施例的其他方面,所述方法可进一步包括由所述至少一个计算机处理器确定所述多个任务中的所述第一任务已经超过相关服务级别协议。

根据该特定实施例的其他方面,所述服务级别协议可以是所述第一任务的估计等待时间的函数。

根据该特定实施例的其他方面,所述第一多个任务可以包括来自任务的队列前面的一定数量的任务,并且其中,所述服务级别协议可以是任务的所述数量的函数。

根据该特定实施例的其他方面,所述多个任务中的至少一个可以是虚拟任务。

根据该特定实施例的其他方面,所述任务分配策略可以是行为配对策略。

在另一特定实施例中,所述技术可以被实现为用于任务分配系统中的行为配对的系统,所述任务分配系统包括至少一个计算机处理器,所述至少一个计算机处理器通信地耦合到所述任务分配系统并被配置为在所述任务分配系统中操作,其中,所述至少一个计算机处理器进一步被配置为执行上述方法中的步骤。

在另一特定实施例中,所述技术可以被实现为用于任务分配系统中的行为配对的制品,所述任务分配系统包括非暂时性处理器可读介质以及在介质上存储的指令;其中,所述指令被配置为能够通过至少一个计算机处理器从所述介质读取,所述至少一个计算机处理器通信地耦合到所述任务分配系统并被配置为在所述任务分配系统中操作,并且从而使所述至少一个计算机处理器操作,以便执行上述方法中的步骤。

现在将参照如附图所示的本发明的特定实施例更详细地描述本发明。虽然下面参考特定实施例描述了本公开,但是应当理解的是,本公开不限于此。访问这里的教导的本领域的普通技术人员将认识到附加的实现方式、修改和实施例,以及其他使用领域,其在这里描述的本公开的范围内,并且相对于其,本公开可以具有显著的效用。

附图说明

为了便于更全面地理解本公开,现在参考附图,其中相似的元件用相似的数字表示。这些附图不应当被解释为限制本公开,而是旨在仅是说明性的。

图1示出了根据本公开的实施例的任务分配系统的框图。

图2示出了根据本公开的实施例的任务分配方法的流程图。

具体实施方式

典型的任务分配系统在算法上将到达任务分配中心处的任务分配给可用于处理这些任务的代理。有时,任务分配系统可以使代理可用并等待分配给任务。在其他时间处,任务分配中心可以让任务在一个或多个队列中等待代理变得可用于分配。

在一些典型的任务分配中心中,根据到达时间将任务分配给有序的代理,并且基于在这些代理变得可用时的时间代理接收有序的任务。此策略可以称为“先进先出”、“fifo”、或“轮询”策略。例如,在“l2”环境中,多个任务在队列中等待分配给代理。当代理变得可用时,将选择队列的头处的任务来分配给代理。

某些任务分配系统将某些类型的任务优先于其他类型的任务之前。例如,一些任务可以是高优先级任务,而其他任务是低优先级任务。在fifo策略下,将在低优先级任务之前分配高优先级任务。在某些情况下,某些低优先级任务可能具有高平均等待时间,而高优先级任务反而被处理。此外,可能能够更有效地处理低优先级任务的代理可能反而最终被分配给高优先级任务,从而导致任务分配系统中的次优化总体性能。

鉴于以上所述,可以理解的是,可能需要一种有效地优化bp策略在任务分配系统的l2环境中的应用的系统。

图1示出了根据本公开的实施例的任务分配系统100的框图。本文中的描述描述了用于在可以包括一个或多个模块的任务分配系统中对配对策略进行基准测试(benchmarking)的系统和方法的网络元件、计算机、和/或组件。如这里所使用的,术语“模块”可以被理解为指的是计算软件、固件、硬件、和/或其各种组合。然而,模块不被解释为不是在硬件、固件上实现的或在非暂时性处理器可读可记录存储介质上记录的软件(即,模块本身不是软件)。注意的是,模块是示例性的。模块可以被组合、集成、分离、和/或复制,以支持各种应用。此外,替代在该特定模块处执行的功能或除了在该特定模块处执行的功能之外,本文中描述为正在特定模块处执行的功能可以在一个或多个其他模块处和/或由一个或多个其他设备来执行。此外,模块可以跨多个设备和/或彼此本地或远程的其他组件来实现。附加地,模块可以从一个设备移除并添加到另一个设备,和/或可以被包括在两个设备中。

如图1所示,任务分配系统100可以包括任务分配模块110。任务分配系统100可以包括交换机或其他类型的路由硬件和软件,用于帮助在各种代理之间分配任务,包括排队或交换组件或其他基于因特网、基于云或基于网络的硬件或软件解决方案。

任务分配模块110可以接收传入任务。在图1的示例中,任务分配系统100在给定周期上接收m个任务即任务130a-130m。m个任务中的每一个可以被分配给任务分配系统100的代理,用于服务或其他类型的任务处理。在图1的示例中,在给定周期期间n个代理(代理120a-120n)可用。m和n可以是大于或等于1的任意大的有限整数。在诸如联系人中心的现实世界任务分配系统中,可能有数十个、数百个等的代理登录到联系人中心,以在轮班期间与联系人交互,并且联系人中心可以在轮班期间接收数十个、数百个、数千个等的联系人(例如,呼叫)。

在一些实施例中,任务分配策略模块140可以通信地耦合到任务分配系统100和/或被配置为在任务分配系统100中操作。任务分配策略模块140可以实现用于将各个任务分配给各个代理(例如,将联系人与联系人中心代理配对)的一个或多个任务分配策略(或“配对策略”)。

可以由任务分配策略模块140设计和实现多种不同的任务分配策略。在一些实施例中,可以实现先进先出(“fifo”)策略,其中例如最长等待代理接收下一个可用任务(在l1环境中)或者将最长等待任务分配给下一个可用任务(在l2环境中)。其他fifo和类似fifo的策略可以在不依赖于专用于各个任务或各个代理的信息的情况下进行分配。

在其他实施例中,可以实现可以使用基于性能的路由(pbr)策略来优先化用于任务分配的较高性能代理。例如,在pbr下,可用代理中性能最高的代理接收下一个可用任务。其他pbr和类似pbr的策略可以使用关于特定代理的信息来进行分配,但不需要必然依赖于关于特定任务或代理的信息。

在其他实施例中,可以使用行为配对(bp)策略用于使用关于特定任务和特定代理两者的信息来最优地将任务分配给代理。可以使用各种bp策略,诸如对角模型bp策略或网络流bp策略。在例如美国专利no.9,300,802和美国专利申请no.15/582,223中针对联系人中心情境详细描述了这些任务分配策略和其他策略,在其通过引用并入于此。

在一些实施例中,历史分配模块150可以经由诸如任务分配模块110和/或任务分配策略模块140的其他模块通信地耦合到任务分配系统100和/或被配置为在任务分配系统100中操作。历史分配模块150可以负责各种功能,诸如监视、存储、检索、和/或输出关于已经进行的代理任务分配的信息。例如,历史分配模块150可以监视任务分配模块110以在给定周期中收集关于任务分配的信息。历史任务分配的每个记录可以包括诸如代理标识符、任务或任务类型标识符、结果信息或配对策略标识符(即,指示任务分配是使用bp配对策略还是诸如fifo或pbr配对策略的一些其他配对策略进行的标识符)的信息。

在一些实施例中并且对于一些情境,可以存储附加信息。例如,在联系人中心情境中,历史分配模块150还可以存储关于呼叫开始的时间、呼叫结束的时间、拨打的电话号码、以及呼叫者的电话号码的信息。又例如,在派遣中心(例如,“卡车滚动”)情境中,历史分配模块150还可以存储关于驾驶员(即,现场代理)离开派遣中心的时间、推荐的路线、采取的路线、估计的行进时间、实际行进时间、在客户站点处理客户任务所花费的时间的量等的信息。

在一些实施例中,历史分配模块150可以基于针对一段时间(例如,过去周、过去月、过去年等)的历史分配集合来生成配对模型或类似的计算机处理器生成模型,可以由任务分配策略模块140使用所述模型来向任务分配模块110做出任务分配推荐或指令。在其他实施例中,历史分配模块150可以将历史分配信息发送到另一模块,诸如任务分配策略模块140或基准测试模块160。

在一些实施例中,基准测试模块160可以经由诸如任务分配模块110和/或历史分配模块150等其他模块通信地耦合到任务分配系统100和/或被配置为在任务分配系统100中操作。基准测试模块160可以使用历史分配信息来基准测试两个或更多个配对策略(例如,fifo、pbr、bp等)的相对性能,所述历史分配信息可以从例如历史分配模块150接收。在一些实施例中,基准测试模块160可以执行其他功能,诸如建立用于在各种配对策略当中循环的基准测试调度、跟踪群组(例如,历史分配的基本组和测量组)等。用于由基准测试模块160针对各种任务分配策略和各种情境执行的基准测试和其他功能的技术在贯穿本公开的后续部分中描述。在例如美国专利no.9,712,676中针对联系人中心情境详细描述了基准测试,其通过引用并入在本文中。

在一些实施例中,基准测试模块160可以输出或以其他方式报告或使用相对性能测量。该相对性能测量可以用于评估任务分配策略的质量,以确定例如是否应当使用不同的任务分配策略(或不同的配对模型),或在被优化或被配置为使用一个任务分配策略而不是另一个任务分配策略时,该相对性能测量可以用于测量在任务分配系统100内实现的总体性能(或性能增益)。

在一些任务分配系统中,在等待分配给作为变得可用的代理时,能够在队列中建立相对大量的任务。对于这个高度简化的示例,九个任务在队列中等待。这些任务中的三个是高优先级任务:h1、h2、和h3;以及这些任务中的6个是低优先级任务:l1、l2、l3、l4、l5、l6。

在一些任务分配系统中,不同优先级的任务可以(在系统内,或至少在概念上)被组织在不同的优先级队列中:

高优先级队列:h1,h2,h3

低优先级队列:l1,l2,l3,l4,l5,l6

在该示例中,每个优先级队列根据针对每个任务(例如,联系人中心系统中的联系人或呼叫者)的到达时间按时间排序。h1是最长等待高优先级任务,h3是最短等待高优先级任务,l1是最长等待低优先级任务,l6是最短等待低优先级任务等。在一些实施例中,这些任务中的一个或多个可以是“虚拟任务”。例如,在呼叫中心情境中,呼叫者可以请求回叫和从联系人中心断开,但是呼叫者的位置和优先级被保持在队列中。

在其他任务分配系统中,可以(在系统内,或至少在概念上)在按时间顺序排序的队列中混合不同优先级的任务,除了较高优先级的任务可以在较低优先级的任务之前插入在队列中:

队列:h1,h2,h3,l1,l2,l3,l4,l5,l6

在该示例中,即使l1是所有九个任务中的最长等待任务,在时间上稍后到达的三个高优先级任务也已经被插入到l1之前的队列中。

即使当能够比更高优先级任务更有效地处理较低优先级任务的代理变得可用时,典型的fifo策略也可以通过在分配任何低优先级任务之前分配所有的高优先级任务来操作,使低优先级任务无限地在队列中等待。如果较高优先级的联系人继续到达任务分配系统处,则该缺点可能尤其有害。

在一些任务分配系统中,对应当期望任何一个任务等待分配多长时间施加限制的服务级别协议(sla)可能就位。sla的一些示例包括固定时间(例如,10秒、30秒、3分钟等);估计等待时间(ewt)加上某个固定时间(例如,1分钟45秒的ewt加上30秒);以及ewt的乘数(例如,ewt的150%,或1.2*ewt)。

在这些任务分配系统中,如果针对某个较低优先级任务超过sla(有时称为“熔断sla”),则fifo策略可以最终分配该任务。然而,低优先级任务可能最终仍在队列中等待比平均预期等待时间更长的时间,并且可能仍低效地进行代理分配。

在一些实施例中,更有效和有效的任务分配策略是bp策略。在bp策略下,当代理变得可用时,可以考虑多达所有九个任务用于分配。bp策略仍可以考虑每个任务的优先级级别,但是如果关于任务和可用代理的信息指示了这样的配对对于任务分配系统的性能和实现期望的目标任务利用或分配率是最优的,则可能最终优选在较高优先级任务之前分配较低优先级任务。

bp策略可以考虑优先级级别的程度是谱(spectrum)。在谱的一个极端上,bp策略可以考虑队列中的所有任务(或所有优先级队列中的所有任务),对每个任务的优先级给出相对很少的权重至不给出权重:

队列:t1,t2,t3,t4,t5,t6,t7,t8,t9

在这个示例中,bp策略可以能够进行有效的、最优的任务分配。然而,这种策略的一个可能结果是,由于首先分配较低优先级的任务,一些高优先级的任务可能最终等待比它们可能在fifo策略下等待的时间更长。

在谱的另一端附近,bp策略可以考虑最高优先级队列中的所有任务:

高优先级队列:h1,h2,h3

在这个示例中,bp策略仍能够进行比fifo策略更有效、最优的任务分配。在fifo策略下,不管哪个代理变得可用,任务将以队列顺序被分配:首先h1、然后h2、最后h3,而bp策略将考虑关于三个任务和代理的信息以选择更有效的配对,即使所分配的高优先级任务可能不是最长等待的高优先级任务。然而,该策略的一个可能的结果是低优先级任务可以最终等待与它们将处于fifo策略下的一样长,并且将错过将代理与低优先级任务有效配对的机会。

在一些实施例中,可以使用混合方法,该混合方法对任务优先级和等待时间给予尊重,同时还及时地处理较长等待的较低优先级任务中的至少一些。因为它考虑了优先队列中的前n个任务,所以这些实施例中的一些可以被称为“前n”或“头n”。

例如,如果n=6,则这样的bp策略将在以下队列中的前六个任务中进行选择:

队列:h1,h2,h3,l1,l2,l3,l4,l5,l6

在该示例中,当代理变得可用时,bp策略可以分配三个高优先级任务中的任一个或三个最长等待低优先级任务中的任一个。

在一些实施例中,n可以是预定值和/或固定值。在其他实施例中,可以为每个配对动态地确定n。例如,bp策略可以确定用于代表选择的最优量或程度(例如,3、6、10、20等)的n的大小。又例如,n可以是队列中等待的任务的数量的函数(例如,队列中任务的数量的四分之一、三分之一、二分之一等)。又例如,n可以是不同优先级级别的相对数量任务的函数。

又例如,如果bp策略遇到对其已经熔断sla的第i个呼叫,则对于i≤n,bp策略可以考虑多达i个呼叫。在该示例中,如果l1已经等待比sla期望的更长的时间,则bp策略可以考虑h1、h2、h3、和l1——忽略l2和l3,因为优选在配对l2或l3之前配对较长等待的l1。

在一些实施例中,bp策略可以基于跟踪各个任务已经被提出多少次用于选择(即,任务在前n任务中出现多少次)来使用sla:

1.h1(1),h2(1),h3(1),l1(1),l2(1),l3(1)=>选择h3

2.h1(2),h2(2),l1(2),l2(2),l3(2),l4(1)=>选择l2

3.h1(3),h2(3),l1(3),l3(3),l4(3),l5(1)=>选择h1

4.h2(4),l1(4),l3(4),l5(2),l6(1)

如果sla是基于任务是否已经在前6中出现超过三次,则现在通过第四分配具有熔断sla的三个任务:h2、l1和l3现在已经第四次出现。在这些实施例中,bp策略可以优选地配对在前6中出现仅三次或更少次的其他任务(即,l5和l6)之前的这些三个任务。

在一些实施例中,基于前n的sla可以是n的函数。例如,在sla被熔断之前,任务可以出现在前n直到1/2n、2n、5n等中。

这种类型的sla在真实世界场景中可能尤其有用,在真实世界场景中,较高优先级任务继续到达队列处并且以其他方式将在比通常期望或允许的前n的sla更多地已经出现在前n中的更长等待的较低优先级任务之前被分配。

在一些实施例中,各个任务或任务类型可以具有与其他任务或其他类型的任务不同的sla。不同的sla可以是基于上述技术的任何,诸如基于时间的sla或基于各个任务已经被包括在前n中或以其他方式被评估的次数的sla。例如,队列中的第一任务可以具有2n的sla,而队列中的第二任务可以具有3n的sla。确定各个任务具有哪个sla可以是基于关于该任务的信息、关于一个或多个可用代理的信息或两者。

在一些实施例中,针对任务的sla可以是动态的,随着等待时间的量的增加或任务在前n中以及被评估的次数的增加而改变。

图2示出了根据本公开的实施例的任务分配方法200。

任务分配方法200可以在框210处开始。在框210处,可以确定对于多个任务的大小的任务的数量。在一些实施例中,对于多个任务的大小的任务的数量可以等于任务的队列的大小。例如,在联系人中心情境中,如果20个联系人在队列中等待连接到代理,则多个任务将包括来自队列的所有20个联系人。在其他实施例中,任务的数量可以是从队列的前面或头部取得的固定或预定数量的任务。例如,如果任务的数量为10,则多个任务可以包括来自大小为20的队列的前十个任务(例如,联系人)。在其他实施例中,任务的数量可以根据上述技术中的任一个来动态地确定,诸如是队列大小的函数(例如,分数、百分比、比例),针对不同优先级级别的任务的相对数量的函数,针对行为配对策略的选择的程度的函数等。在一些实施例中,该任务数量可以被称为“n”,并且多个任务可以被称为“前n”多个任务。

任务分配方法200可以前进到框220。在框220处,可以为多个任务(例如,前n任务)中的每一个确定优先级。例如,多个任务的第一部分可以被指定为“高优先级”,并且多个任务的第二部分可以被指定为“低优先级”。在一些实施例中,可以存在任意大数量的不同优先级和用于优先级的标识符。在一些实施例中,任务分配系统可以为每个优先级保持任务的单独队列。在其他实施例中,任务分配系统可以保持首先按优先级排序的任务、并且在某些情况下其次可以按到达时间的顺序或另一按时间顺序排序的任务的单个队列。在这些实施例中,不管是以单个优先级队列还是以多个优先级队列保持任务,任务分配方法200可以考虑所有任务或前n个任务。

任务分配方法200可以前进到框230。在一些实施例中,可以针对多个任务中的至少一个任务确定是否已经超过sla。在一些实施例中,任务分配策略或任务分配系统将向已超过其sla的任务(例如,具有已超过或熔断sla的最长等待任务)分配代理。在各种实施例中,sla可以根据上述技术中的任一个来定义或以其它方式确定,诸如固定时间、ewt的函数,或给定任务在前n中已经可用于分配的次数的函数。在其他实施例中,可能不存在与任务分配策略相关的sla,并且任务分配方法200可以在不需要确定或检查任何超出的sla的情况下继续。

任务分配方法200可以前进到框240。在框240处,可以确定可用于分配给多个任务中的任一个的代理。例如,在l2环境中,代理变得可用于分配。在诸如l3环境的其他环境中,数个代理可以可用于分配。

任务分配方法200可以前进到框250。在框250处,可以使用任务分配策略将多个任务中的任务分配给代理。例如,如果任务分配策略是bp策略,则bp策略可以考虑关于多个任务中的每一个的信息和关于代理的信息,以确定预期哪个任务分配来优化任务分配系统的整体性能。在一些情况下,最优分配可以是最长等待、最高优先级的任务,如fifo或pbr策略的情况。然而,在其他情况下,最优分配可以是较长等待和/或较低优先级的任务。即使这些实例,针对即时配对的较低预期性能可以被预期以导致任务分配系统的较高总体性能,同时在一些实施例中,实现平衡的或以其他方式的针对性任务利用(例如,针对所有任务标准化或平衡化平均等待时间,或针对相同优先级内的所有任务平衡平均等待时间)。

在一些实施例中,如果存在超过sla,则任务分配策略或任务分配系统可以优先化分配具有超过sla的任务(诸如具有超过sla的最长等待和/或最高优先级任务)。

在一些实施例中,任务分配系统可以在多个任务分配策略之间循环(例如,在bp策略和fifo或pbr策略之间循环)。在这些实施例的一些中,任务分配系统可以对多个任务分配策略的相对性能进行基准测试。

在将任务分配给代理之后,可以结束任务分配方法200。

在这点上,应当注意的是,如上所述的根据本公开的tk可以在某种程度上涉及输入数据的处理和输出数据的生成。该输入数据处理和输出数据生成可以在硬件或软件中实现。例如,可以在行为配对模块或类似的或相关的电路中采用特定的电子组件,用于实现如上所述的根据本公开的与tk相关联的功能。可替选地,根据指令操作的一个或多个处理器可以实现如上文所描述的根据本发明的与tk相关联的功能。如果是这种情况,则这些指令可以被存储在一个或多个非暂时性处理器可读存储介质(例如,磁盘或其他存储介质)上或者经由在一个或多个载波中实现的一个或多个信号传输到一个或多个处理器也在本公开的范围内。

本公开不限于本文所述的具体实施例的范围。实际上,根据前面的描述和附图,除了这里描述的那些之外,本公开的其他各种实施例和修改对于本领域的普通技术人员将是显而易见的。因此,这些其他实施例和修改旨在落入本公开的范围内。此外,尽管本文中已针对用于至少一个特定目的的至少一个特定环境中的至少一个特定实施方案来描述本发明,但是所属领域的技术人员将认识到,本发明的有用性不限于此,且本发明可出于任何数量的目的而有利地实施于任何数量的环境中。因此,下面提出的权利要求应当根据这里描述的本公开的全部宽度和精神来解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1