Method for determining number of agents and management device
By generating a call list and combining it with a simulator, the number of agents is optimized using a binary search method and candidate weight factors. This solves the problem of low accuracy in agent number prediction in existing technologies and achieves accurate resource allocation in multimedia service scenarios.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-26
- Publication Date
- 2026-04-02
AI Technical Summary
Existing Erlang C and Erlang A&C formulas have low accuracy in predicting the number of seats, especially in multimedia service scenarios, where they cannot accurately handle multiple multimedia services.
A simulator-based simulation method is adopted. By generating a call list and combining it with prediction parameter information, the method of determining the number of agents is optimized using a binary search method and a set of candidate weight factors, so as to ensure that the service level reaches the preset level and improve the accuracy.
It improves the accuracy of seat number prediction, enabling reasonable allocation of seat resources in multimedia business scenarios, meeting preset service levels while reducing the number of seats.
Smart Images

Figure CN2025124197_02042026_PF_FP_ABST
Abstract
Description
Method and device for determining number of agents
[0001] The present application claims priority to the Chinese patent application No. 202411375887.2, filed on September 29, 2024, and entitled "Method and device for determining number of agents", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] Embodiments of the present application relate to the technical field of scheduling management, and in particular to a method and device for determining number of agents. BACKGROUND
[0003] An artificial intelligence contact center (AICC) uses artificial intelligence technology to optimize the workflow and customer interaction system of a contact center. It integrates all-channel video interaction and full-process intelligent features to improve customer service quality and work efficiency, thereby reconstructing the value of a call center.
[0004] As the number of AICC delivery projects increases both at home and abroad, more and more operators have raised demands for workforce management (WFM), and require the WFM network element to support voice services and multimedia services, such as supporting email and instant messaging services. The main function of the WFM network element is to predict and schedule, which can predict future traffic and the number of agents according to historical traffic data.
[0005] Therefore, how to improve the accuracy of agent number prediction is a research hotspot. SUMMARY
[0006] Embodiments of the present application provide a method and device for determining number of agents, which can improve the accuracy of agent number prediction.
[0007] In a first aspect, an embodiment of the present application provides a method for determining a number of agents. The method can be applied to a management device, and can be executed by the management device or a device matched with the management device, such as a processor or a chip. The method can include: sorting simulation processing information corresponding to a first number of agents based on a first time granularity to generate a first traffic list, wherein the simulation processing information includes a start processing time and a service duration of simulated processing traffic of a skill group, and the first traffic list includes sub-traffic information corresponding to each time period, and the sub-traffic information includes the start processing time and the service duration, and a time interval of each time period is the first granularity; determining a reference number of agents corresponding to each time period that can reach a preset service level according to first prediction parameter information including the first traffic list and an initial number of agents corresponding to each time period, wherein the initial number of agents corresponding to each time period is a maximum sub-traffic volume in each time period; further reducing the number of agents according to a number interval corresponding to the reference number of agents corresponding to each time period to determine an iteration number of agents corresponding to each time period; further reducing the number of agents according to a candidate weight factor set and the iteration number of agents corresponding to each time period to determine a to-be-output number of agents corresponding to each time period, wherein a service level corresponding to the to-be-output number of agents reaches the preset service level, and a difference between the service level corresponding to the to-be-output number of agents and the preset service level is less than a threshold; and determining a second number of agents based on the to-be-output number of agents corresponding to each time period, and the second number of agents is a sum of the to-be-output number of agents corresponding to each time period.
[0008] It can be seen that after the first traffic list including a plurality of time periods is generated, the reference number of agents corresponding to each time period is determined, the iteration number of agents corresponding to each time period is determined in combination with a number interval corresponding to each reference number of agents, the to-be-output number of agents corresponding to each time period is determined based on a candidate weight factor set, and the to-be-output number of agents corresponding to each time period satisfies a certain condition, so that the second number of agents is determined based on a sum of the to-be-output number of agents corresponding to each time period, and the accuracy of the second number of agents is high.
[0009] In a possible implementation, the first prediction parameter information further includes the preset service level, operation information of the skill group, a multimedia concurrency number, agent skill information, and a routing strategy. Thus, in the process of determining the reference number of agents corresponding to each time period, these prediction parameter information can be considered, so that the service level corresponding to the second number of agents can reach the preset service level, and the second number of agents is more suitable for an actual scenario of agents.
[0010] In a possible implementation, the method further includes: sorting the traffic data in the historical period based on the second time granularity to generate a second traffic list; the second traffic list includes the arrival time and service duration of the traffic; determining the first number of agents and the simulation processing information corresponding to the first number of agents according to the second prediction parameter information and the initial number of agents; the second prediction parameter information includes the second traffic list, the initial number of agents is the maximum traffic volume in the second traffic list, and the service level corresponding to the first number of agents reaches the preset service level. That is, for the traffic data in the historical period, a number of agents (i.e., the first number of agents) is predicted according to the second prediction parameter information and the initial number of agents, so as to determine the second number of agents based on the first number of agents, so that the accuracy of the second number of agents is higher than that of the first number of agents. Optionally, the second number of agents can be less than the first number of agents, so that the preset service level is reached with the least number of agents, that is, the least number of agents required to meet the preset service level is predicted.
[0011] In a possible implementation, the second prediction parameter information further includes the preset service level, the operation information of the skill group, the multimedia concurrency number, the agent skill information, and the routing strategy. Thus, in the process of determining the first number of agents, these prediction parameter information can be considered, so that the service level corresponding to the first number of agents can reach the preset service level.
[0012] In a possible implementation, the maximum concurrency number of traffic of one agent is less than or equal to the agent concurrency number, so as to avoid exceeding the processing capability range of the agent; and the maximum multimedia concurrency number of one agent is less than or equal to the multimedia concurrency number, so as to avoid exceeding the capability range of the agent for processing multimedia traffic.
[0013] In a possible implementation, the determining of the first number of agents and the simulation processing information corresponding to the first number of agents according to the second prediction parameter information and the initial number of agents can include: inputting the second prediction parameter information and the initial number of agents into a second simulator to perform simulation; inputting the second prediction parameter information and a candidate number into the second simulator to perform simulation; the candidate number is a number determined based on the initial number of agents and the bisection method; determining the first number of agents from the candidate number and the simulation processing information corresponding to the first number of agents based on the simulation result output by each simulation of the second simulator. The first number of agents is determined through multiple simulation of the second simulator.
[0014] In a possible implementation, the simulation result output by one simulation of the second simulator includes the service level and the simulation processing information corresponding to the candidate number in the one simulation. That is, the service level and the simulation processing information are output by each simulation of the second simulator, so as to screen the number of agents reaching the preset service level according to the service level of each simulation.
[0015] In a possible implementation, the determining of the reference number of agents corresponding to each time period based on the first prediction parameter information and the initial number of agents corresponding to each time period can include: inputting the first prediction parameter information and the initial number of agents corresponding to each time period into a first simulator respectively, and performing simulation; inputting the first prediction parameter information and a candidate number of agents corresponding to each time period into the first simulator respectively, and performing simulation; the candidate number of agents corresponding to one time period is a number determined based on the initial number of agents corresponding to the time period and a bisection method; and determining the reference number of agents corresponding to each time period from the candidate number of agents corresponding to each time period respectively based on simulation results output by each simulation of the first simulator. That is, one time period corresponds to one first simulator, and multiple first simulators perform simulation in parallel to determine the reference number of agents reaching the preset service level.
[0016] In a possible implementation, for the first simulator corresponding to the first time period, the simulation result output by one simulation includes a service level and a number of abandoned calls under the candidate number of agents corresponding to the simulation under the first time period; and the first time period is any time period of the time periods. The number of abandoned calls can be used to calculate the service level and a target function value.
[0017] In a possible implementation, the method further includes: determining a target function value corresponding to the reference number of agents of each time period based on a first weight factor. The target function value can be used to measure the accuracy of the reference number of agents, and the smaller the target function value is, the higher the accuracy of the reference number of agents is. The target function value can also be used to measure the accuracy of the number of agents obtained each time in the prediction process. If a target function value corresponding to a number of agents A is smaller than a target function value corresponding to a number of agents B, the accuracy of the number of agents A is higher than that of the number of agents B.
[0018] In a possible implementation, the determining of the iterative number of agents corresponding to each time period according to the number interval corresponding to the reference number of agents of each time period can include: determining a target function value corresponding to each number in the number interval corresponding to the reference number of agents of the first time period; determining a minimum target function value from the target function values corresponding to the numbers, and determining a number corresponding to the minimum target function value as the iterative number of agents corresponding to the first time period; and the first time period is any time period of the time periods. Thus, the iterative number of agents with higher accuracy is determined by adjusting the reference number of agents.
[0019] In a possible implementation, the determining of the iterative number of agents corresponding to each time period according to the number interval corresponding to the reference number of agents corresponding to each time period can include: selecting a first sample number from the number interval corresponding to the reference number of agents corresponding to a first time period; determining a first candidate number corresponding to the first time period based on the first prediction parameter information and the first sample number, the service level corresponding to the first candidate number reaching the preset service level; selecting a second sample number from the number interval corresponding to the first candidate number; determining a second candidate number corresponding to the first time period based on the first prediction parameter information and the second sample number, the service level corresponding to the second candidate number reaching the preset service level; and determining the iterative number of agents corresponding to the first time period based on a target function value corresponding to the first candidate number and a target function value corresponding to the second candidate number, the first time period being any one of the time periods. Thus, the iterative number of agents with higher accuracy is determined by adjusting the reference number of agents.
[0020] In a possible implementation, the determining of the to-be-output number of agents corresponding to each time period according to the iterative number of agents corresponding to each time period and the candidate weight factor set can include: determining a first iterative selectable number corresponding to a first time period according to the iterative number of agents corresponding to the first time period and a first candidate weight factor in the candidate weight factor set; determining a second iterative selectable number corresponding to the first time period according to the iterative number of agents corresponding to the first time period and a second candidate weight factor in the candidate weight factor set; and determining the to-be-output number of agents corresponding to the first time period based on the first iterative selectable number and the second iterative selectable number, the first time period being any one of the time periods. In the calculation of the target function value, the weight factor is involved, and in the determination of the iterative number of agents, the target function value is involved. By changing the weight factor in the calculation of the target function value, the to-be-output number of agents with higher accuracy is determined.
[0021] In a possible implementation, the method further includes: outputting, to the client, a second number of agents, the second number of agents being used by the client to perform scheduling management. Thus, the client can perform scheduling management based on the second number of agents, so that scheduling management can be performed based on the minimum number of agents, and the preset service level can be reached under the number of agents.
[0022] In a second aspect, an embodiment of the present application provides a management device, which includes corresponding modules, units, or means for implementing the method of the first aspect, and the modules, units, or means can be implemented by hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above functions.
[0023] In a third aspect, an embodiment of the present application provides another management apparatus, which comprises a processor and an interface module. The interface module is configured to receive a signal from another device outside the management apparatus and transmit the signal to the processor or send a signal from the processor to another device outside the management apparatus. The processor is configured to enable the management apparatus to implement the method according to any possible implementation of the first aspect.
[0024] In a fourth aspect, an embodiment of the present application provides a chip, which stores instructions. When the chip is executed on a management apparatus, the instructions enable the management apparatus to implement the method according to the first aspect.
[0025] In a fifth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program or instructions. When the computer program or instructions are executed on a management apparatus, the computer program or instructions enable the management apparatus to implement the method according to the first aspect.
[0026] In a sixth aspect, an embodiment of the present application provides a computer program product comprising instructions, which comprises computer program codes. When the computer program codes are executed on a management apparatus, the computer program codes enable the management apparatus to implement the method according to the first aspect. BRIEF DESCRIPTION OF DRAWINGS
[0027] FIG. 1 is a schematic diagram of a network architecture to which an embodiment of the present application is applied;
[0028] FIG. 2 is an example diagram of an internal structure of a WFM network element according to an embodiment of the present application;
[0029] FIG. 3 is a flow diagram of a method for determining the number of agents according to an embodiment of the present application;
[0030] FIG. 4 is a flow diagram of a method for simulating in sequence according to an embodiment of the present application;
[0031] FIG. 5 is a flow diagram of a method for allocating agents according to an embodiment of the present application;
[0032] FIG. 6 is an example diagram of multimedia traffic allocated to agents according to an embodiment of the present application;
[0033] FIG. 7 is an example diagram of considering a pause time according to an embodiment of the present application;
[0034] FIG. 8 is an example diagram of dividing sub-traffic based on a first time granularity according to an embodiment of the present application;
[0035] FIG. 9 is a flow diagram of another method for determining the number of agents according to an embodiment of the present application;
[0036] FIG. 10 is a structural diagram of a management apparatus according to an embodiment of the present application;
[0037] FIG. 11 is a structural schematic diagram of another management apparatus provided by an embodiment of the present application. DETAILED DESCRIPTION
[0038] In the present application, the terms "first", "second", and the like are used to distinguish between the same or similar items or components having substantially the same function and role. Those skilled in the art can understand that the terms "first", "second", and the like do not limit the number and execution order, and the terms "first", "second", and the like do not necessarily mean different. The term "and / or" describes the association between the associated objects, which means that there can be three relationships, for example, A and / or B can mean that A exists alone, A and B exist together, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after it.
[0039] Currently, a WFM network element predicts the number of agents based on an Erlang C formula or an Erlang A&C formula, but both of the two methods have the problem of low prediction accuracy.
[0040] The Erlang C formula can include formula 1.1 and formula 1.2. Service Level = 1 - (P w *e-((N-A)*(Target Time / AHT))) Formula 1.2
[0041] In formula 1.1 and formula 1.2, A represents the traffic intensity, N represents the original number of agents, P w represents the probability that the customer has to wait, AHT represents the average handling time, Target Time represents the target response time, and Service Level represents the service level.
[0042] Based on the Erlang C formula, the process of predicting the number of agents can include:
[0043] 1. Calculate the probability that the customer has to wait according to the traffic intensity and the original number of agents N1;
[0044] 2. Calculate the service level under the probability that the customer has to wait according to the probability;
[0045] 3. If the service level under the probability is less than the preset service level, then N2=N1+1 is taken as the N value and substituted into formula 1.1 and formula 1.2 to calculate the service level again. If the service level is still less than the preset service level, then N3=N2+1 is taken as the N value and substituted into formula 1.1 and formula 1.2 to calculate the service level, and so on until the service level reaches the preset service level.
[0046] 4, assuming that the value of n is based on N i The calculated service level reaches the preset service level, and the value of Ni is taken as the number of agents required to meet the preset service level. Wherein, i is an integer greater than or equal to 3.
[0047] The precondition of the process is that the traffic follows a Poisson distribution to arrive, the service time of the agent is exponentially distributed, the traffic is not abandoned during waiting for the agent to process, and one agent processes one traffic in a specified time period. Based on the precondition, the number of agents is overestimated because the traffic is not abandoned, and one agent cannot process multiple multimedia services at the same time in a multimedia service scenario because one agent processes one traffic in a time period. Multimedia services include instant messaging services, email services, etc.
[0048] The above Erlang A&C formula can include formula 2.1, formula 2.2 and formula 2.3. P(Ab, w) = P(Ab|w>0) * P(w>0) formula 2.3
[0049] In formula 2.1 and formula 2.2, A represents traffic intensity, λ represents traffic arrival rate, μ represents service rate, n represents the number of agents, θ represents individual abandonment rate, P(Ab) represents the probability of abandonment, P(Ab|w>0) represents the probability of abandonment when the waiting time is greater than 0, P(w>0) represents the probability that the waiting time is greater than 0, and P(Ab, w) represents the abandonment probability considering P(Ab|w>0) and P(w>0). w P(Ab, w) = P(Ab|w>0) * P(w>0) formula 2.3
[0050] Based on the Erlang A&C formula, the process of predicting the number of agents can include:
[0051] 1. Calculate the probability that the customer has to wait according to the traffic intensity, traffic arrival rate, service rate, individual abandonment rate, and initial number of agents n1.
[0052] 2. Calculate the service level under the probability that the customer has to wait according to the probability and formula 1.2.
[0053] 3. If the service level under the probability is less than the preset service level, then n2 = n1 + 1 is taken as the value of n, which is substituted into formula 2.1 and formula 1.2 to calculate the service level again. If the service level is still less than the preset service level, then n3 = n2 + 1 is taken as the value of n, which is substituted into formula 2.1 and formula 1.2 to calculate the service level, and so on until the service level reaches the preset service level.
[0054] 4, assuming that the value of n is based on N iIf the calculated service level reaches the preset service level, then calculate the abandonment probability P(Ab, w) corresponding to this service level according to Formulas 2.2 and 2.3; if this abandonment probability is greater than the target abandonment probability, then n i+1 =n i Substituting +1 as the value of n into formulas 2.2 and 2.3, the abandonment probability P(Ab, w) is calculated again; if this abandonment probability is still greater than the preset service level, then n is increased. i+2 =n i+1 +1 is substituted into formulas 2.2 and 2.3 as the value of n, and the abandonment probability P(Ab, w) is calculated. The abandonment probability is calculated continuously until the abandonment probability reaches the target abandonment probability; where i is an integer greater than or equal to 3.
[0055] 5. Assuming based on n j If the calculated probability of abandonment reaches the target probability of abandonment, then n j The value of is the number of seats required to meet the preset service level and the target abandonment probability. Here, j is an integer greater than i.
[0056] The prerequisites for this process are: call arrival follows a Poisson distribution; agent service time follows an exponential distribution; customers have average patience while waiting in the queue, and the probability of a customer leaving the queue is calculated based on average patience; and one agent handles one call within a specified time period. Based on these prerequisites, prediction accuracy is low because it relies on average patience, which may not reflect actual conditions. Furthermore, since one agent handles one call within a time period, in multimedia service scenarios, one agent cannot handle multiple multimedia services or multiple calls simultaneously.
[0057] Therefore, embodiments of this application provide a method and management device for determining the number of seats, which can improve the accuracy of seat number prediction.
[0058] Before introducing the method for determining the number of seats provided in the embodiments of this application, the network architecture of the embodiments of this application will be introduced first.
[0059] Please refer to Figure 1, which is a schematic diagram of the network architecture applied in an embodiment of this application. The network architecture shown in Figure 1 may include AICC 101, computer telephony integration (CTI) network element 102, WFM network element 103, database 104, and client 105.
[0060] Wherein, the AICC 101 is a workbench of an agent, mainly responsible for processing calls of various media types, and completing call control, relying on the capabilities provided by the system, to complete customer consultation, complaint, suggestion and other businesses. The calls of various media types can be understood as traffics of various media types, such as traffics of call types, traffics of mail types, and traffics of instant communication types.
[0061] The CTI network element 102 is a network element combining the functions of telephone communication and computer information processing, mainly completing queuing of calls, session control, routing and generating a bill. The routing refers to which type of agent to process the call, for example, for the traffics of call types, it can be processed by the agent supporting the call; for the traffics of mail types, it can be processed by the agent supporting the mail.
[0062] The WFM network element 103 can make a prediction based on the historical traffic data generated by the CTI network element 102 and the agent skill information of the AICC, and make a schedule according to the predicted result. The historical traffic data can be data aggregated in 15-minute granularity, including the number of calls accessed in 15-minute granularity, the number of answered calls, the number of mutual losses, the talk time, the hold time and the post-call arrangement event acw, etc. The agent skill information of the AICC can include: the number of skill groups, the number of agents in each skill group, the skill information supported by each agent (such as only supporting the traffics of call types, supporting the traffics of call types and mail types, etc.), and the agent concurrency of each agent. The agent concurrency of an agent refers to the maximum number of traffics that an agent can handle at the same time, for example, an agent can handle up to 4 traffics at the same time. When making a prediction, the 15-minute aggregated data is first predicted, and then the predicted 15-minute aggregated data is discretely simulated to generate a traffic list, which can include the arrival time and processing duration of each call. The arrival time refers to the time when the traffic is received, and the processing duration refers to the duration of the agent processing the traffic, that is, the duration from the agent processing the traffic to the end of the traffic.
[0063] The database 104 is used to store historical traffic data and basic configuration data. The historical traffic data can be generated by the CTI network element 102 and can be used by the WFM network element 103 for prediction.
[0064] The client 105 refers to a client operated by a scheduler. The scheduler can set the operation time of a skill group, the preset service level, the multimedia concurrency number and the like through the client. The multimedia concurrency number refers to the number of traffics of the same multimedia type that can be simultaneously processed by an agent. For example, for instant messaging, the multimedia concurrency number is 2, which means that 2 instant messaging traffics can be simultaneously processed. For email, the multimedia concurrency number is 3, which means that 3 email traffics can be simultaneously processed. For a call, an agent can only process one call at a time. The preset service level refers to the service level set by the scheduler, which can also be referred to as the target service level. For example, for a call, the preset service level can be expressed as 20s-80%, where 20s refers to the tolerance time of the call, i.e., the time that a client is willing to wait before the call is processed, and 80% refers to the connection rate, i.e., 80% of the traffics can be processed within 20s. For another example, for a multimedia, the preset service level can be expressed as 85% within 4 hours, where 4 hours refers to the tolerance time, and 85% refers to 85% of the traffics that can be processed within 4 hours.
[0065] In the embodiment of the present application, the client 105 inputs the operation time, the preset service level, the multimedia concurrency number and the like received by the client 105 into the WFM network element 103. The WFM network element 103 obtains the agent skill information from the AICC 101 and obtains the routing strategy from the CTI network element 102. The WFM network element 103 further obtains the historical traffic data from the CTI network element 102 or from the database 104. Then, the WFM network element 103 can predict the number of agents required in a prediction period based on the operation time, the preset service level, the multimedia concurrency number, the agent skill information, the routing strategy and the historical traffic data, and outputs the predicted number of agents to the client 105, so that the scheduler of the client 105 arranges the agents of the AICC 101 based on the predicted number of agents. For example, the WFM network element 103 can predict the number of agents required in the next week based on the historical traffic data in the past three weeks.
[0066] In the embodiment of the present application, the WFM network element 103 is added to the network architecture of the AICC to realize agent number prediction, e.g., to predict the number of agents in a prediction period. The agent number prediction can also be referred to as manpower prediction.
[0067] For example, the internal structure of the WFM network element 103 can be seen from FIG. 2. The WFM network element 103 shown in FIG. 2 can include a preprocessing module 1031, a simulator module 1032 and an optimization solving module 1033.
[0068] The preprocessing module 1031 is configured to process the historical traffic data based on the time granularity to generate a traffic list (e.g., referred to as a second traffic list), which includes the arrival time and service duration of each traffic. The preprocessing module 1031 is further configured to input the traffic list, the preset service level, the operation time, and the like into the simulator module 1032 to obtain a simulation result output by the simulator module 1032. The preprocessing module 1031 is further configured to determine a number of agents and a start processing time and a service duration of each traffic based on the simulation result output by the simulator module 1032. The preprocessing module 1031 is further configured to generate another traffic list (e.g., referred to as a first traffic list) based on the time granularity, the start processing time, and the service duration of each traffic, and input the first traffic list into the optimization solving module 1033.
[0069] The optimization solving module 1033 is configured to input the first traffic list, the preset service level, and the like into the simulator module 1032, so that the simulator module 1032 performs parallel simulation based on each time period in the first traffic list, thereby the optimization solving module 1033 can determine a number of agents based on the simulation result output by the simulator module 1032 and the candidate weight factor set, and output the number of agents as a predicted number of agents, for example, to the client 105.
[0070] It can be understood that the simulators in the simulator module 1032 can be divided into two types of simulators, one type of simulators is configured to perform simulation based on the information input by the preprocessing module 1031, and the other type of simulators is configured to perform simulation based on the information input by the optimization solving module 1033. The simulation process can include parallel simulation of multiple simulators, and one simulator corresponds to one time period in the first traffic list.
[0071] The WFM network element 103 can further include an interface module (not shown in FIG. 2), which is configured to obtain information from other network elements, for example, obtain the operation time, the preset service level, the number of multimedia concurrents, and the like from the client 105, obtain the agent skill information from the AICC 101, and the like. The interface module is further configured to receive the predicted number of agents from the optimization solving module 1033, and output the predicted number of agents to the client 105.
[0072] The embodiment of the present application can be applied to a scenario of predicting traffic based on call type, a scenario of predicting traffic based on multimedia type, and a scenario of predicting traffic based on call type and multimedia type. That is, the traffic in the embodiment of the present application can be call traffic or multimedia traffic, and the historical traffic data can include multiple call traffics and / or multiple multimedia traffics. The multimedia traffic can be, for example, mail traffic, instant messaging traffic, and the like.
[0073] The embodiment of the present application can also be applied to a scenario of multimedia concurrency, and can realize prediction of the number of agents in the scenario of multimedia concurrency.
[0074] The method for determining the number of agents provided by the embodiment of the present application is described in detail below.
[0075] Referring to FIG. 3, it is a flowchart of a method for determining the number of agents provided by the embodiment of the present application. The method can include but is not limited to the following steps:
[0076] 301, the interface module transmits second prediction parameter information to the preprocessing module. Correspondingly, the preprocessing module receives the second prediction parameter information from the interface module.
[0077] The second prediction parameter information can be understood as parameter information required for simulation and emulation by the second emulator. The emulator module includes the second emulator, and the second emulator is configured to simulate and emulate the information input by the preprocessing module.
[0078] In an implementation manner, the second prediction parameter information can include historical traffic data in a historical period. The historical traffic data in the historical period can be, for example, historical traffic data in a day, historical traffic data in a week, historical traffic data in a month, and the like. The specific time period of the historical period can be input by the client, for example, from last Monday to last Sunday. The interface module can obtain the historical traffic data in the corresponding time period from the CTI network element or the database based on the historical period input by the client. The historical traffic data can be data aggregated at a granularity of 15 minutes, including the number of calls accessed at a granularity of 15 minutes, the number of calls answered, the number of calls lost, the talk time of calls, the hold time, the post-call arrangement event acw, and the like. The preprocessing module can discretely process the historical traffic data based on a second time granularity to generate a second traffic list. That is, the preprocessing module can sort the historical traffic data based on the second time granularity to generate the second traffic list. The unit of the second time granularity can be hour (h) or minute (min), and the second time granularity can be, for example, 1 h, 30 min, 15 min, and the like. The specific value can be set by the client or by default by the system.
[0079] For example, the second time granularity is 15 minutes, the historical traffic data in the historical period is processed based on 15 minutes, and part of the second traffic list generated can be seen in Table 1 shown below.
[0080] Table 1
[0081] In Table 1, the time period represents a time period divided based on 15 minutes for the time period, time period 0 represents the first minute to the 15th minute in the historical period, time period 1 represents the 16th minute to the 30th minute in the historical period, and so on. There is one traffic in the time period 0, that is, traffic 1, the arrival time and service duration of traffic 1 are represented as <3, 5>, 3 in <3, 5> represents that the arrival time of traffic 1 is the 3rd minute, and 5 in <3, 5> represents that the service duration of traffic 1 is 5 minutes. There are two traffics in the time period 1, that is, traffic 2 and traffic 3, the arrival time and service duration of traffic 2 are represented as <16, 4>, 16 in <16, 4> represents that the arrival time of traffic 2 is the 16th minute, and 4 in <16, 4> represents that the service duration of traffic 2 is 4 minutes; the arrival time and service duration of traffic 3 are represented as <16, 5>, 16 in <16, 5> represents that the arrival time of traffic 3 is the 16th minute, and 5 in <16, 5> represents that the service duration of traffic 3 is 5 minutes.
[0082] Optionally, Table 1 can also include the skill group corresponding to the traffic, for example, traffic 1 to traffic 4 correspond to skill group 1, which represents that skill group 1 processes traffic 1 to traffic 4.
[0083] In another implementation mode, the second prediction reference information can include the second traffic list. That is, after the interface module obtains the historical traffic data in the historical period from the CTI network element or the database, the historical traffic data is discretely processed based on the second time granularity to generate the second traffic list.
[0084] From the above two implementation modes, it can be seen that the second traffic list can be generated by the interface module or by the preprocessing module. Optionally, the second traffic list can also be generated by other modules and transmitted to the preprocessing module.
[0085] The second prediction parameter information also includes a preset service level. The interface module obtains the preset service level from the client. For example, for the call type, the preset service level can be represented as 20s-80%, 20 seconds (s) representing the tolerance duration of the call, and 80% representing the connection rate, that is, 80% of the traffic can be processed within 20s. For example, for the multimedia type, the preset service level can be represented as processing 85% within 4 hours, 4 hours being the tolerance duration, and 85% representing that 85% of the traffic can be processed within 4 hours.
[0086] The second prediction parameter information can further comprise an operation time. The interface module obtains the operation time from the client. The operation time refers to the operation time of the skill group, i.e. the working time. For example, the operation time of the skill group can refer to Table 2 as shown below. In Table 2, Enable refers to on duty, i.e. working.
[0087] Table 2
[0088] For different skill groups, the operation time can be all different or completely the same.
[0089] The second prediction parameter information can further comprise a multimedia concurrency number. The interface module obtains the multimedia concurrency number from the client. The multimedia concurrency number refers to the maximum number of the same media type traffic that can be processed by an agent at the same time, for example, for the call type, the multimedia concurrency number is 2, which means that the maximum number of call type traffic that can be processed at the same time is 2; for the mail type, the multimedia concurrency number is 3, which means that the maximum number of mail type traffic that can be processed at the same time is 3.
[0090] The second prediction parameter information can further comprise agent skill information. The interface module obtains the agent skill information from the AICC. The agent skill information can comprise: the number of agents in the skill group, the skill information supported by each agent (for example, only supporting call type traffic, supporting call type and mail type traffic, etc.), and the maximum concurrency number of traffic of each agent. Among them, the maximum concurrency number of traffic of an agent refers to the maximum number of traffic that can be processed by an agent at the same time, for example, a maximum of 4 traffic can be processed by an agent at the same time. The skill group can be divided into call skill group, mail skill group, and instant messaging skill group based on the traffic type. For a skill group, it can be divided into at least one skill queue, for example, for the mail skill group, based on the language type, it can be divided into Chinese skill queue, English skill queue, French skill queue, etc. For example, for the call skill group, based on the dialect type, it can be divided into Mandarin skill queue, Cantonese skill queue, Sichuanese skill queue, etc.
[0091] The second prediction parameter information can further comprise a routing strategy. The interface module obtains the routing strategy from the CTI network element. The routing strategy refers to which type of agent to handle the traffic, for example, for the call type traffic, it can be handled by the agent supporting the call; for the mail type traffic, it can be handled by the agent supporting the mail.
[0092] 302, the preprocessing module determines the initial number of agents.
[0093] The initial number of seats can be the maximum traffic volume in all time periods in the historical period, and the all time periods refer to the time periods included in the second traffic list. For example, the historical period is one week, and the second time granularity is 15 minutes. Then the second traffic list includes 7*24*60 / 15=672 time periods. Assuming that the maximum traffic volume in the 672 time periods is 100, then the initial number of seats is 100. The maximum traffic volume in all time periods refers to selecting the maximum traffic volume from the traffic volume corresponding to each time period. For example, the all time periods are 3 time periods, the first time period includes 100 traffics, the second time period includes 90 traffics, and the third time period includes 80 traffics. Then the maximum traffic volume in all time periods is 100.
[0094] 303, the preprocessing module transmits the second prediction parameter information and the initial number of seats of the skill group to the second simulator.
[0095] That is, the preprocessing module inputs the second prediction parameter information and the initial number of seats of the skill group to the second simulator.
[0096] 304, the second simulator performs multiple simulation simulations based on the second prediction parameter information and the initial number of seats of the skill group.
[0097] 305, the second simulator returns the simulation result to the preprocessing module.
[0098] For the first simulation simulation, the input of the second simulator is the second prediction parameter information and the initial number of seats, and the output of the second simulator is the first simulation result. The first simulation result includes the service level corresponding to the initial number of seats, the simulation processing information of the first simulation simulation, and the simulation processing information includes the start processing time and the service time of the traffic in the simulation processing historical period of the skill group. After obtaining the first simulation result, the preprocessing module selects a candidate number of seats from the first candidate number range [0, the initial number of seats of the skill group] as the number of seats input for the second simulation simulation. It can be understood that the upper limit of the first candidate number range is the initial number of seats, and the lower limit of the first candidate number range is 0.
[0099] For the second simulation simulation, the input of the second simulator is the second prediction parameter information and the first candidate number (which is an integer), and the output of the second simulator is the second simulation result. The first candidate number is a number selected from the first candidate number range, and the first candidate number= is rounded up. For example, the first candidate number range is [0, 100], and the first candidate number is 50. The second simulation result includes the service level corresponding to the first candidate number, and the simulation processing information of the second simulation. After obtaining the second simulation result, the preprocessing module selects a candidate number of agents from the second candidate number range [0, the first candidate number] or [the first candidate number, the initial number of agents] as the number of agents input for the third simulation. It can be understood that for the second candidate number range [0, the first candidate number], the upper limit of the second candidate number range is the first candidate number, and the lower limit of the second candidate number range is 0; for the second candidate number range [the first candidate number, the initial number of agents], the upper limit of the second candidate number range is the initial number of agents, and the lower limit of the second candidate number range is the first candidate number.
[0100] Optionally, the preprocessing module can determine the second candidate number range to be [0, the first candidate number] or [the first candidate number, the initial number of agents of the skill group] based on the size relationship between the service level corresponding to the initial number of agents and the service level corresponding to the first candidate number. For example, if the service level corresponding to the initial number of agents is greater than the service level corresponding to the first candidate number, the second candidate number range is [0, the first candidate number]; if the service level corresponding to the initial number of agents is less than the service level corresponding to the first candidate number, the second candidate number range is [the first candidate number, the initial number of agents of the skill group].
[0101] For the third simulation, the input of the second simulator is the second prediction parameter information and the second candidate number, and the output of the second simulator is the third simulation result. The second candidate number is a number selected from the second candidate number range, and the second candidate number = or For example, the second candidate number range is [0, 50], and the second candidate number is 25; the second candidate number range is [50, 100], and the second candidate number is 75. The third simulation result includes the service level corresponding to the second candidate number, and the simulation processing information of the third simulation. After obtaining the third simulation result, the preprocessing module selects a candidate number of agents from the third candidate number range [0, the second candidate number] or [the second candidate number, the first candidate number] as the number of agents input for the fourth simulation. It can be understood that for the third candidate number range [0, the second candidate number], the upper limit of the third candidate number range is the second candidate number, and the lower limit of the third candidate number range is 0; for the third candidate number range [the second candidate number, the first candidate number], the upper limit of the third candidate number range is the first candidate number, and the lower limit of the third candidate number range is the second candidate number.
[0102] The second simulator inputs the second predicted parameter and the candidate number, and outputs simulation results, until the upper limit and the lower limit of the candidate number range are the same. It can be understood that the candidate number range and the candidate number are determined by bisection in the process of multiple simulation simulations. Bisection is a search algorithm for finding a specific element in an ordered array, which can save computational complexity compared to sequential traversal algorithm.
[0103] In each simulation simulation, the second simulator can divide the traffic in the historical period into unfinished traffic, delayed processing traffic and new traffic according to the processing state. The unfinished traffic means that the traffic has been processed, but the processing has not been completed, the agent is still serving the traffic or the traffic still needs the agent to continue to serve. The delayed processing traffic means that the traffic has not been processed and has not been allocated to the agent. The new traffic means that the traffic has just arrived and has not been processed and delayed.
[0104] In each simulation simulation, the second simulator simulates all traffic in the order of unfinished traffic, delayed processing traffic and new traffic in each time period in the second traffic list and the order of traffic arrival. The specific process can be seen from Figure 4.
[0105] In Figure 4, for the unfinished traffic of the last time period, the unfinished traffic list of the last time period is obtained, and it is judged whether the unfinished traffic list is empty. If the unfinished traffic list is not empty, a new traffic is generated, that is, the first unfinished traffic in the unfinished traffic list is taken as the new traffic, and an agent is allocated to the new traffic. The flow chart of allocating the agent can be seen from Figure 5. Whether the traffic is allocated means whether the agent is allocated to the new traffic. If the agent is allocated, the start processing time is recorded and it is further judged whether the traffic is ended, that is, whether the agent processing the traffic is ended. If the agent is not allocated, the number of abandoned traffic is increased by 1, and it is further judged whether the unfinished traffic list is empty. The start processing time is the time when the agent starts to process the traffic, or the start time when the agent serves the traffic. The start processing time can also be described as the real start time. For the agent allocated to the unfinished traffic, the start processing time of the traffic can be the start time of the current time period. After recording the start processing time, if the traffic is ended, the service duration can be recorded and it is further judged whether the unfinished traffic list is empty. After the agent is allocated, if the traffic is ended, it is further judged whether the unfinished traffic list is empty. If the traffic is not ended, the traffic is added to the unfinished traffic list, and it is further judged whether the unfinished traffic list is empty. In the case that the unfinished traffic list is empty, it is indicated that there is no unfinished traffic in the last time period, and the unfinished traffic list is updated, that is, the unfinished traffic list is updated to be empty.
[0106] In the case that the unfinished traffic list of the last time period is empty, the unassigned traffic list of the last time period (i.e. the traffic list of which the agents are not assigned) is obtained, and it is determined whether the delay processing traffic list of the last time period is empty. In the case that the delay processing traffic list is not empty, a new traffic is generated, i.e. the first unfinished traffic in the unfinished traffic list is taken as the new traffic, and an agent is assigned to the new traffic. The flowchart of assigning the agent can be seen in Fig. 5. Whether the traffic is assigned indicates whether the agent is assigned to the new traffic. If the agent is assigned, the start processing time is recorded, i.e. the time when the agent starts processing the traffic is recorded. Optionally, the service duration can also be recorded. After the start processing time is recorded, it is determined whether the traffic is ended. If the traffic is ended, it is further determined whether the delay processing traffic list is empty. If the traffic is not ended, the traffic is added to the unfinished traffic list, and it is determined again whether the unfinished traffic list is empty. If the agent is not assigned, it is determined whether to continue the delay. If the delay is not continued, the call loss traffic quantity is increased by 1. If the delay is continued, the traffic is added to the delay processing traffic list, and it is determined again whether the delay processing traffic list is empty. The continued delay indicates that the traffic is continued to be waited for. In the case that the delay processing traffic list is empty, it is indicated that there is no delay processing traffic in the last time period, and the unfinished traffic list is updated.
[0107] In the case that the delay processing traffic list is empty, the new traffic list in the current time period is obtained, and it is determined whether the new list is empty. If the new traffic list is not empty, an agent is assigned to the new traffic. The flowchart of assigning the agent can be seen in Fig. 5. Whether the traffic is assigned indicates whether the agent is assigned to the new traffic. If the agent is assigned, the start processing time is recorded. Optionally, the service duration can also be recorded. After the start processing time is recorded, it is determined whether the traffic is ended. If the traffic is ended, it is further determined whether the new list is empty. If the traffic is not ended, the traffic is added to the unfinished traffic list, and it is determined again whether the unfinished traffic list is empty. If the agent is not assigned, it is determined whether the traffic is a multimedia traffic. If the traffic is not a multimedia traffic, the call loss traffic quantity is increased by 1. If the traffic is a multimedia traffic, it is determined whether to continue the delay. If the delay is not continued, the call loss traffic quantity is increased by 1. If the delay is continued, the traffic is added to the delay processing traffic list, and it is determined again whether the delay processing traffic list is empty. In the case that the new traffic list is empty, it is indicated that the traffic in the current time period has been respectively assigned to the agents, and the simulation of the current time period is ended.
[0108] For assigning the agent, the second simulator simulates the real traffic assignment according to the operation time and the agent state, and assigns the traffic to the agent for processing, so as to obtain the start processing time of the traffic. The specific flowchart can be seen in Fig. 5.
[0109] In Fig. 5, the skill group list in which the skill queue ID is located is obtained, i.e. the skill group list of the AICC is obtained. The skill group list includes at least one skill group. Each skill group includes at least one skill queue. One skill queue includes multiple agents.
[0110] For the new traffic and the delay processing traffic in Fig. 4, it is determined whether the new traffic or the delay processing traffic is multimedia traffic. Optionally, while determining whether it is multimedia traffic, it is also determined whether the new traffic or the delay processing traffic needs to consider the closet time (or non-business time), i.e. whether the new traffic or the delay processing traffic reaches the non-business time, so that the traffic is processed only in the business time. The non-business time can also be the break time of the agent. In the case of determining that it is multimedia traffic, or determining that it is multimedia traffic and considering the closet time, the skill group in the business time is filtered, i.e. the skill group in the working state is filtered. After the skill group in the business time is filtered, it is determined whether the idle rate of the filtered skill group is greater than 0. In the case of determining that it is not multimedia traffic, it is determined whether the idle rate of the skill group in the skill group list is greater than 0.
[0111] For the unfinished traffic in Fig. 4, it is determined whether the unfinished traffic is multimedia traffic. Optionally, while determining whether it is multimedia traffic, it is also determined whether the unfinished traffic needs to consider the closet time, so that the traffic is processed only in the business time. In the case of determining that it is not multimedia traffic, it is determined whether the idle rate of the skill group in the skill group list is greater than 0.
[0112] For the multimedia traffic, in the case of the idle rate of the skill group being greater than 0, it is determined whether there is an idle agent in the skill group. In the determination of the idle agent, the agent concurrency and the multimedia type concurrency are considered. The agent concurrency refers to that the agent can handle multiple traffics in parallel, and the agent concurrency number is used to represent the preset maximum number of traffics that can be handled by one agent at the same time. The multimedia type concurrency refers to that the agent can handle the traffics of the same multimedia type in parallel, and the multimedia concurrency number is used to represent the preset maximum number of traffics of the same multimedia type that can be handled by one agent at the same time. For example, the skill group 1 is a skill group with the idle rate greater than 0, the agent a in the skill queue A of the skill group 1 has the agent concurrency number of 4, and the multimedia concurrency number of the mail is 2 and the multimedia concurrency number of the instant messaging is 2. If at a certain moment, the agent a is handling 2 mail traffics and 1 instant messaging traffic, then the agent a can handle 1 instant messaging traffic or other multimedia traffic except the mail traffic and the instant messaging traffic.
[0113] That is, for the multimedia traffic, the maximum concurrency number of the traffic of the agent cannot exceed the agent concurrency number, and the maximum concurrency number of the traffic of each multimedia type cannot exceed the corresponding multimedia concurrency number.
[0114] For the call traffic, if the idle rate of the skill group is greater than 0, it is determined whether there is a free agent in the skill group. In the determination of the free agent, the agent concurrency and the multimedia type concurrency can be considered, which can be referred to the description of the multimedia traffic above.
[0115] If the free agent is found, the agent state is updated, for example, the agent state is updated from the idle state to the non-idle state, or the agent state is updated from the state of having two processing spaces to the state of having one processing space.
[0116] If the idle rate of the skill group is equal to 0, that is, there is no idle skill group, it is determined whether the tolerance duration in the preset service level is greater than 0. If the tolerance duration is equal to 0, the distribution fails. If the tolerance duration is greater than 0, a list of distributable skill groups is obtained. The list of distributable skill groups can be understood as a list of skill groups that support processing the current traffic. After the list of distributable skill groups is obtained, the list of agents is obtained by traversing the list of distributable skill groups, that is, the list of agents in each distributable skill group is obtained. The earliest agent is determined by traversing the list of agents. The earliest idle time slot is selected as the start processing time of the current traffic by traversing the list of agents, and the agent corresponding to the earliest idle time slot is taken as the earliest agent. The earliest agent can be understood as the agent that can process the current traffic earliest.
[0117] After the earliest agent is determined, the current traffic is distributed to the earliest agent, so that the earliest agent processes the current traffic in the earliest idle time. The agent state of the earliest agent can be updated when the earliest agent processes the current traffic. If the earliest agent is not determined, the distribution fails.
[0118] An example is shown in FIG. 6. In FIG. 6, it is assumed that the agent concurrency is 4, the email corresponding multimedia concurrency is 2, the instant messaging application 1 corresponding multimedia concurrency is 2, and the instant messaging application 2 corresponding multimedia concurrency is 3. In 0-15 min, the arrival order of traffics 1-11 and the service time length can be seen from the left graph of FIG. 6, and the length of each rectangular box represents the service time length. For example, traffics 1 and 2 arrive at 0 min, and the service time length of traffic 1 is longer than that of traffic 2. The processing order in the simulation process simulated by the second simulator can be seen from the right graph of FIG. 6. In consideration of the agent concurrency and the multimedia concurrency, the agent concurrency is 4, i.e., there are four parallel time slots. Since traffics 1-3 arrive at the same time, the second simulator processes traffics 1-3 in parallel. Then, traffic 4 arrives, and traffic 4 is processed in parallel in the process of processing traffics 1-3. Then, traffic 5 arrives, and traffic 5 is processed after traffic 2 is processed. Then, traffic 6 arrives, and traffic 6 is processed after traffic 1 is processed. Then, traffic 7 arrives, and traffic 7 is processed after traffic 3 is processed. Then, traffics 8 and 9 arrive at the same time, and traffic 8 is processed after traffic 5 is processed, and the earliest idle time slot is found in the patience time length, and traffic 9 is processed after traffic 4 is processed. That is, although traffics 8 and 9 arrive at the same time, the start processing time of traffics 8 and 9 is different due to the limitation of the agent concurrency. Then, traffic 10 arrives, and traffic 10 is processed after traffic 6 is processed. Then, traffic 11 arrives, and traffic 11 is processed after traffic 7 is processed.
[0119] In consideration of the email corresponding multimedia concurrency, there are two parallel time slots. Traffics 1 and 2 arrive at the same time, and traffics 1 and 2 are processed in parallel. Then, traffic 7 arrives, and traffic 7 is processed after traffic 1 is processed. Then, traffic 10 arrives, and traffic 10 is processed after traffic 2 is processed.
[0120] In consideration of the instant messaging application 2 corresponding multimedia concurrency, there are three parallel time slots. Traffic 5 arrives first, and traffic 5 is processed first. In the process of processing traffic 5, traffic 6 arrives, and traffic 6 is processed in another time slot. After traffic 5 and traffic 6 are processed, traffic 11 arrives, and traffic 11 is processed in the remaining time slot.
[0121] In the case of considering the multimedia concurrency of the instant messaging application 1, there are two time slots in parallel, the traffic 3 arrives first, and the traffic 3 is processed first; in the process of processing the traffic 3, the traffic 4 arrives, and the traffic 4 is processed in another time slot; after the traffic 3 is processed and the traffic 4 is in the process of being processed, the traffic 8 and the traffic 9 arrive, the traffic 8 is processed after the traffic 3, and the traffic 9 is processed after waiting for the end of the processing of the traffic 4.
[0122] In FIG. 6, because the agent concurrency and the multimedia concurrency are considered, the traffic 9 cannot be processed immediately when it arrives, and the earliest time at which the traffic 9 can be processed is searched for in the patience time to determine the start processing time of the traffic 9. That is, the agent concurrency and the multimedia concurrency can cause the arrival time of the traffic to be inconsistent with the start processing time. In addition, the closetime can also cause the arrival time of the traffic to be inconsistent with the start processing time, for example, several example diagrams shown in FIG. 7 can be referred to. In FIG. 7, the closetime represents the period of time in which the skill group or the agent suspends service, the arrival time of the traffic represents the time at which the traffic is received, the start time represents the time at which the skill group or the agent starts service, the open time represents the period of time in which the skill group or the agent serves, the patience time represents the patience time in the preset service level, the real start time of the traffic represents the time at which the agent starts processing the traffic, the service time of the traffic represents the period of time in which the agent processes the traffic, and the last response time represents the time at which the agent can finally respond to the traffic. The time periods in FIG. 7 are time periods in the second traffic list.
[0123] In FIG. 7(1), the new traffic arrives in the closetime, and the closetime is counted in the patience time. The arrival time of the traffic is in the time period 5, the start time of service is in the time period 7, and in the time period 7, if no agent is allocated to the traffic, if the difference between the end time of the time period 7 and the arrival time is less than the patience time, the traffic can be added to the delayed processing traffic list, and the processing is delayed for one time period, that is, the processing is continued in the time period 8; otherwise, the difference between the end time of the time period 7 and the arrival time is greater than or equal to the patience time, and the traffic is recorded as a call loss traffic. That is, for the new traffic that arrives in the closetime and the closetime is counted in the patience time, if no agent is allocated to the traffic in the current time period, if the difference between the end time of the current time period and the arrival time is less than the patience time, the new traffic is added to the delayed processing traffic list, and the processing is delayed for one time period; otherwise, the new traffic is recorded as a call loss traffic, and the number of call loss traffics is incremented by 1.
[0124] In time period 8, the agent is allocated for the traffic, and the time for the agent to handle the traffic, i.e. the start handling time, is recorded. The traffic is not completed in time period 8, and continues to be handled in time period 9 to time period 11. That is, after the agent is allocated for the traffic, if the remaining service duration = (the service duration of the traffic - (the end time of the current time period - the start handling time)) is greater than 0, indicating that the agent does not complete the handling in the current time period, the traffic is added to the uncompleted traffic list, and the remaining service duration of the traffic is updated.
[0125] In (1) of FIG. 7, since the pause time is counted in the patience duration, the last response time = the arrival time + the patience duration.
[0126] In (2) of FIG. 7, it is shown that for the uncompleted traffic, the pause time and the patience duration are not considered. It is assumed that the handling of the traffic is not completed in time period 10, and the handling continues in time period 11 for one time period. The time difference between the service end time of the traffic and the end time of time period 10 represents the remaining service duration.
[0127] In (3) of FIG. 7, it is shown that the delayed handling traffic arrives in the pause time, and the pause time is not counted in the patience duration. The arrival time of the traffic is in time period 5, the service start time is in time period 7, and in time period 7 and time period 8, the agent is not allocated for the traffic, the traffic is delayed, the remaining patience duration = (the patience duration - (the start time of time period 9 - the service start time)), and the arrival time of the traffic is updated to the start time of time period 9. In (3) of FIG. 7, since the pause time is not counted in the patience duration, the last response time = the service start time + the patience duration.
[0128] In (4) of FIG. 7, it is shown that the delayed handling traffic arrives in the pause time, and the pause time is counted in the patience duration. The arrival time of the traffic is in time period 5, the service start time is in time period 7, and in time period 7 and time period 8, the agent is not allocated for the traffic, the traffic is delayed, the remaining patience duration = (the patience duration - (the start time of time period 9 - the service start time)), and the arrival time of the traffic is updated to the start time of time period 9. In (4) of FIG. 7, since the pause time is counted in the patience duration, the last response time = the arrival time (the arrival time in time period 5) + the patience duration.
[0129] 306, the preprocessing module determines the first number of agents and the simulation handling information corresponding to the first number of agents according to the simulation result.
[0130] The preprocessing module selects a candidate number from a plurality of candidate numbers (including the first candidate number and the second candidate number) according to the simulation result output by the second simulator each time the simulation is simulated, the candidate number corresponding to a service level reaching a target processing rate, the target processing rate being 100%, that is, each traffic is allocated and each traffic is processed by an agent. Embodiments of the present application refer to the candidate number corresponding to the service level reaching the target processing rate as the first agent number. Wherein, the target processing rate is 100% to determine the maximum number of the first agent number, so that in the subsequent optimization solving process, the final agent number can be determined based on the first agent number and the preset service level. It can be understood that steps 301 to 306 are an initial solving process, and steps 307 to 316 are an optimization solving process.
[0131] According to each simulation simulation of the second simulator, the number of processed traffic and the number of call loss traffic of each simulation simulation can be counted, and then the service level of each simulation simulation can be calculated according to the total number of traffic and the number of call loss traffic. In the case of terminating the simulation of the second simulator, the first agent number is determined based on the simulation result of each simulation.
[0132] Optionally, the preprocessing module transmits the first agent number and the simulation processing information corresponding to the first agent number to the interface module.
[0133] 307, the preprocessing module generates a first traffic list.
[0134] The preprocessing module generates a first traffic list based on the simulation processing information corresponding to the first agent number and the first time granularity. Wherein, the first traffic list includes sub-traffic information corresponding to each time period in N time periods, the sub-traffic information includes a start processing time and a service duration, N time periods are time periods obtained by dividing a historical period according to the first time granularity, and N is a positive integer greater than 1. It can be understood that for the traffic with a service duration greater than the first time granularity, it can be divided into a plurality of sub-traffic. The first time granularity and the second time granularity can be the same or can be different, for example, the first time granularity and the second time granularity are both 15 min, and for example, the first time granularity is 15 min and the second time granularity is 10 min.
[0135] For example, referring to FIG. 8, an example diagram of sub-traffic based on a first time granularity is shown. In FIG. 8, the start processing time of the traffic 14 is in the time period 8, and the end processing time of the traffic 14 is in the time period 11 in the simulation processing information corresponding to the first number of agents, the first time granularity is 15 min, and the traffic 14 is divided into four sub-traffic (sub-traffic 1, sub-traffic 2, sub-traffic 3, and sub-traffic 4). The start processing time of the sub-traffic 1 is the same as the start processing time of the traffic 14, and the end processing time of the sub-traffic 1 is the end time of the time period 8; the start processing time of the sub-traffic 2 is the start time of the time period 9, the end processing time of the sub-traffic 2 is the end time of the time period 9, and the service duration is 15 min; the start processing time of the sub-traffic 3 is the start time of the time period 10, the end processing time of the sub-traffic 3 is the end time of the time period 10, and the service duration is 15 min; the start processing time of the sub-traffic 4 is the start time of the time period 11, and the end processing time of the sub-traffic 4 is the end processing time of the traffic 14.
[0136] For example, the first time granularity is 15 min, and based on the simulation processing information corresponding to 15 min and the first number of agents, part of the content of the first traffic list can be seen in Table 3.
[0137] Table 3
[0138] In Table 3, the sub-traffic 1, the sub-traffic 2, and the sub-traffic 3 can be three sub-traffic of a traffic. There is one sub-traffic, i.e., the sub-traffic 1, in the time period 0, the start processing time of the sub-traffic 1 is represented as <3, 10>, and the service duration of the sub-traffic 1 is represented as <3, 10>. In <3, 10>, 3 represents the start processing time of the sub-traffic 1 is the third minute, and 10 represents the service duration of the sub-traffic 1 is 10 min.
[0139] Optionally, the preprocessing module transmits the first traffic list to the interface module.
[0140] 308, the interface module transmits the first prediction parameter information to the optimization solving module. Correspondingly, the optimization solving module receives the first prediction parameter information from the interface module.
[0141] The first prediction parameter information can be understood as parameter information required for the first simulator to perform simulation. The simulator module includes a plurality of first simulators, and the first simulators are used to simulate the information input by the optimization solving module. The number of the first simulators can be N, i.e., the same as the number of the time periods in the first traffic list.
[0142] The first prediction parameter information can include a first traffic list. The first prediction parameter information can further include a preset service level. The first prediction parameter information can further include an operating time. The first prediction parameter information can further include a multimedia concurrency number. The first prediction parameter information can further include agent skill information. The first prediction parameter information can further include a routing strategy.
[0143] 309, the optimization solving module determines the initial agent number corresponding to each time period.
[0144] For a time period in the first traffic list, the initial agent number corresponding to the time period is the maximum traffic volume in the time period.
[0145] 310, the optimization solving module transmits the first prediction parameter information and the initial agent number corresponding to each time period to the N first simulators respectively.
[0146] The optimization solving module transmits the first prediction parameter information and the initial agent number corresponding to each time period to the N first simulators respectively. For example, for time period 1, the first prediction parameter information and the initial agent number corresponding to time period 1 are transmitted to a first simulator; for time period 2, the first prediction parameter information and the initial agent number corresponding to time period 2 are transmitted to a first simulator; for time period 3, the first prediction parameter information and the initial agent number corresponding to time period 3 are transmitted to a first simulator, and so on.
[0147] 311, the N first simulators perform multiple simulation simulations based on the first prediction parameter information and the initial agent number corresponding to each time period.
[0148] 312, the N first simulators return the simulation results to the optimization solving module. Each first simulator returns the simulation results to the optimization solving module respectively.
[0149] For the first simulator corresponding to time period 1, multiple simulation simulations are performed based on the first prediction parameter and the initial agent number corresponding to time period 1. For the first simulator corresponding to time period 2, multiple simulation simulations are performed based on the first prediction parameter and the initial agent number corresponding to time period 2, and so on. The first simulators corresponding to each time period perform simulation simulations in parallel, and the termination conditions are similar to those of the second simulator, that is, the upper bound of the candidate number range is the same as the upper bound. The number of times each first simulator performs simulation simulations can be different. The process of the first simulators corresponding to each time period performing simulation simulations is similar to that of the second simulator performing simulation simulations, which can refer to the processes shown in FIG. 4 and FIG. 5. The difference is that, for the first simulator, there is no need to consider the pause time.
[0150] The simulation result of one simulation of the first simulator includes the service level corresponding to the candidate number and the number of call abandon traffics in the time period corresponding to the first simulator.
[0151] 313, the optimization solving module determines the reference number of agents corresponding to each time period based on the simulation results returned by each first simulator.
[0152] The optimization solving module determines the reference number of agents corresponding to each time period based on the simulation results output by each simulation of each first simulator, and the service level under the reference number of agents corresponding to each time period reaches the preset service level.
[0153] For the first simulator corresponding to time period 1, the simulation result output by each simulation includes the service level corresponding to the candidate number in the time period, and the priority solving module selects a candidate number from the plurality of candidate numbers, and the service level corresponding to the candidate number reaches the preset service level. The candidate number is referred to as the reference number of agents corresponding to time period 1. Similarly, the reference number of agents corresponding to each time period is determined.
[0154] Optionally, the optimization solving module can also determine the target function value corresponding to each reference number of agents. When determining the reference number of agents corresponding to each time period, the number of call abandon traffics corresponding to each reference number of agents is also determined. For a reference number of agents, the target function value corresponding to each reference number of agents is determined based on the reference number of agents, the reference weight factor and the number of call abandon traffics. For example, the target function value = the number of call abandon traffics + the first weight factor * the reference number of agents. The reference weight factor is a tuning parameter selected by the optimization solving module and used to calculate the target function value.
[0155] 314, the optimization solving module determines the iterative number of agents corresponding to each time period based on the number interval corresponding to each reference number of agents.
[0156] For example, the reference number of agents corresponding to time period 1 is 100, and the number interval corresponding to the reference number of agents is [100-parameter, 100+parameter]. For example, the parameter is 10, and the number interval corresponding to the reference number of agents is [90, 110].
[0157] In one implementation, for the reference number of agents corresponding to a time period, the optimization solving module inputs each number in the number interval corresponding to the reference number of agents and the first prediction parameter information into the first simulator respectively to obtain the target function value corresponding to each number. From the target function values corresponding to each number, the minimum target function value is selected, and the number corresponding to the minimum target function value is taken as the iterative number of agents corresponding to the time period. This is repeated to determine the iterative number of agents corresponding to each time period.
[0158] For example, for a reference number of agents corresponding to a time period, the optimization solving module first samples a number (the sampled number can be referred to as a sample number) from the number interval corresponding to the reference number of agents, inputs the sample number and the first prediction parameter information into the first simulator, and the first simulator performs multiple simulation simulations until the termination condition. Sampling and re-simulation can be achieved by using the racos algorithm. Based on the simulation results of the multiple simulation simulations, the optimization solving module determines the number of agents reaching the service level, and refers to it as the candidate number corresponding to the sample number. This is repeated to obtain multiple candidate numbers corresponding to the sample numbers. Based on the target function values under the multiple candidate numbers corresponding to the sample numbers, the sample numbers are classified, and a new round of sampling and simulation are performed based on the classification results to obtain new candidate numbers. This process is iterated until the upper limit of iteration is reached. In the case where the upper limit of iteration is reached, the candidate number corresponding to the latest target function value is taken as the iteration agent number corresponding to the time period according to the target function value obtained in the last iteration. This is repeated to determine the iteration agent number corresponding to each time period.
[0159] 315, the optimization solving module determines the to-be-output agent number corresponding to each time period based on the iteration agent number corresponding to each time period and the candidate weight factor set.
[0160] The service level corresponding to the to-be-output agent number corresponding to each time period reaches the preset service level, and the difference between the service level corresponding to the to-be-output agent number corresponding to each time period and the preset service level is less than a threshold value, for example, the threshold value is 1%. That is, the service level corresponding to the to-be-output agent number corresponding to each time period is slightly greater than the preset service level. The number of candidate weight factors included in the candidate weight factor set and the value of the candidate weight factor are set by the optimization solving module autonomously or predefined by the system.
[0161] In step 313, the target function value is calculated using the reference weight factor, and in step 315, the optimization solving module first modifies the reference weight factor to a candidate weight factor in the candidate weight factor set, then calculates the target function value based on the candidate weight factor, and executes step 314; then the candidate weight factor is modified, the target function value is calculated based on the modified candidate weight factor, and step 314 is executed. This iteration of modifying the candidate weight factor and executing step 314 is used to determine the to-be-output agent number corresponding to each time period. The termination condition of this process is that the service level is slightly greater than the preset service level, or the number of iterations is greater than the upper limit, or all candidate weight factors in the candidate weight factor set have been used.
[0162] 316, the optimization solving module transmits the to-be-output agent number corresponding to each time period to the interface module.
[0163] The optimization solving module transmits the to-be-outputted number of agents corresponding to each time period to the interface module after determining the to-be-outputted number of agents corresponding to each time period. The interface module aggregates the to-be-outputted number of agents corresponding to each time period to obtain a second number of agents, and outputs the second number of agents to the client.
[0164] In the embodiment shown in FIG. 3, the accuracy of the number of agents predicted can be improved through multiple simulation simulations of the second simulator and parallel simulation simulations of the plurality of first simulators. In the simulation simulation process, the number of concurrent agents and the number of concurrent multimedia are considered, so that the predicted number of agents is more suitable for the multimedia service scenario.
[0165] FIG. 3 illustrates the method for determining the number of agents provided by the embodiment of the present application from the perspective of the interaction of the internal modules of the WFM network element. FIG. 9 illustrates the method for determining the number of agents provided by the embodiment of the present application from the perspective of the execution of the WFM network element.
[0166] FIG. 9 is a flowchart of another method for determining the number of agents provided by the embodiment of the present application. The method can include but is not limited to the following steps:
[0167] 901. The WFM network element generates a first traffic list according to the simulation processing information corresponding to the first time granularity and the first number of agents.
[0168] The simulation processing information includes the start processing time and the service duration of the skill group simulation processing traffic. The start processing time and the service duration can be referred to the specific description thereof in FIG. 3, which will not be repeated here. The first traffic list includes sub-traffic information corresponding to each time period, and the sub-traffic information includes the start processing time and the service duration. The time interval of each time period is the first granularity. The first traffic list can be referred to the specific description thereof in FIG. 3, which will not be repeated here. The process of generating the first traffic list can be referred to the specific description of step 307 in FIG. 3, which will not be repeated here.
[0169] Before step 901, the following steps are further included:
[0170] 900a. The WFM network element generates a second traffic list according to the traffic data in the historical period and the second time granularity. The second traffic list includes the arrival time and the service duration of the traffic list.
[0171] 900b. The WFM network element determines the first number of agents and the simulation processing information corresponding to the first number of agents according to the second prediction parameter information and the initial number of agents. The second prediction parameter information includes the second traffic list, the initial number of agents is the maximum traffic volume in the second traffic list, and the service level corresponding to the first number of agents reaches the preset service level.
[0172] The second traffic list can refer to the specific description thereof in FIG. 3, and will not be described herein again. The WFM network element determines the first number of agents and the simulation processing information corresponding to the first number of agents according to the second prediction parameter information and the initial number of agents, which can be inputting the second prediction parameter information and the initial number of agents into the second simulator to perform simulation; inputting the second prediction parameter information and the candidate number into the second simulator to perform simulation; the candidate number is a number determined based on the initial number of agents and the bisection method; determining the first number of agents from the candidate numbers based on the simulation results output by each simulation of the second simulator, and determining the simulation processing information corresponding to the first number of agents. The process can refer to the specific description of steps 302 to 306 in FIG. 3, and will not be described herein again.
[0173] 902, the WFM network element determines the reference number of agents corresponding to each time period according to the first prediction parameter information and the initial number of agents corresponding to each time period.
[0174] Step 902 can include: inputting the first prediction parameter information and the initial number of agents corresponding to each time period into the first simulator respectively to perform simulation; inputting the first prediction parameter information and the candidate number corresponding to each time period into the first simulator respectively to perform simulation; the candidate number corresponding to one time period is a number determined based on the initial number of agents corresponding to the time period and the bisection method; determining the reference number of agents corresponding to each time period from the candidate numbers corresponding to each time period respectively based on the simulation results output by each simulation of the first simulator. The process can refer to the specific description of steps 309 to 313 in FIG. 3, and will not be described herein again.
[0175] 903, the WFM network element determines the iteration number of agents corresponding to each time period according to the number interval corresponding to the reference number of agents corresponding to each time period. The implementation process of step 903 can refer to the specific description of step 314 in FIG. 3, and will not be described herein again.
[0176] 904, the WFM network element determines the to-be-output number of agents corresponding to each time period according to the iteration number of agents corresponding to each time period and the candidate weight factor set. The implementation process of step 904 can refer to the specific description of step 315 in FIG. 3, and will not be described herein again.
[0177] 905, the WFM network element determines the second number of agents based on the to-be-output number of agents corresponding to each time period.
[0178] The WFM network element calculates the sum of the to-be-output number of agents corresponding to each time period, and refers to the sum as the second number of agents.
[0179] 906, the WFM network element outputs the second number of agents to the client.
[0180] The WFM network element outputs the second number of agents to the client, so that the client performs scheduling management based on the second number of agents.
[0181] In the embodiment shown in FIG. 9, after the WFM network element generates the first traffic list including a plurality of time periods, the WFM network element determines the reference number of agents corresponding to each time period, determines the iteration number of agents corresponding to each time period in combination with the number interval corresponding to each reference number of agents, finally determines the to-be-output number of agents corresponding to each time period based on the candidate weight factor set, and the to-be-output number of agents corresponding to each time period satisfies a certain condition, so as to determine the second number of agents based on the sum of the to-be-output number of agents corresponding to each time period, so that the accuracy of the second number of agents is relatively high.
[0182] The above mainly introduces the method provided in the application. Correspondingly, the application also provides a management device, which can be used to implement the functions of the WFM network element. The communication device can be a WFM network element, or can be a device containing a WFM network element, or can be a component in a WFM network element, such as a processor, a chip or a chip system, etc. The management device includes a module corresponding to each method / operation / step / action performed by the WFM network element in the above method embodiment, which can be a hardware circuit, or software, or a combination of hardware circuit and software.
[0183] The application embodiment can divide the management device into functional modules according to the above method embodiment, for example, each functional module can be divided according to each function, or two or more functions can be integrated into one processing module. The above integrated module can be realized in the form of hardware or in the form of software functional module. It should be noted that the division of modules in the application embodiment is illustrative, and is only a logical function division. When actually implemented, there can be another division mode.
[0184] Please refer to FIG. 10, which shows a structural schematic diagram of a management device 1000 according to an embodiment of the application. The management device 1000 can include a processing module 1001 and an interface module 1002. Specifically, the processing module 1001 is used to perform the processing functions of the WFM network element in the above method embodiment, such as the functions of the preprocessing module, the optimization solving module and the simulator module. The interface module 1002 is used to perform the information transmission functions of the WFM network element in the above method embodiment, such as outputting the number of agents to the client.
[0185] Wherein, all related contents of each step involved in the above method embodiment can be cited to the function description of the corresponding functional module, which will not be repeated here.
[0186] In a possible implementation, the interface module 1002 can include a receiving module and a sending module (not shown in FIG. 10). The sending module and the receiving module are respectively configured to implement the sending function and the receiving function of the management apparatus 1000.
[0187] In a possible implementation, the management apparatus 1000 can further include a storage module (not shown in FIG. 10), which stores programs or instructions. When the processing module 1001 executes the programs or instructions, the management apparatus 1000 can perform the functions of the WFM network element in the method shown in FIG. 3 or FIG. 8.
[0188] In some embodiments, the processing module 1001 involved in the management apparatus 1000 can be implemented by a processor or a processor-related circuit component, and can be a processor or a processing unit; and the interface module 1002 can be implemented by an interface-related circuit component.
[0189] For example, FIG. 11 is a structural schematic diagram of another management apparatus provided by the embodiments of the present application. The management apparatus can be the WFM network element in the method embodiments, or can be a chip (system) or other components or assemblies that can be arranged in the WFM network element. As shown in FIG. 11, the management apparatus 1100 can include a processor 1101, a bus 1102, a communication interface 1103 and a memory 1104. The processor 1101, the memory 1104 and the communication interface 1103 communicate through the bus 1102. It should be understood that the number of processors and memories in the management apparatus 1100 is not limited by the present application.
[0190] The bus 1102 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the convenience of representation, only one line is shown in FIG. 11, but it does not mean that there is only one bus or only one type of bus. The bus 1102 can include a path for transmitting information between various components (for example, the memory 1104, the processor 1101 and the communication interface 1103) of the management apparatus 1100.
[0191] The processor 1101 can include any one or more of a CPU, a graphics processing unit (GPU), a micro processor (MP), or a digital signal processor (DSP) and the like.
[0192] The memory 1104 can include volatile memory, such as random access memory (RAM), and non-volatile memory, such as read-only memory (ROM), flash memory, a hard disk drive (HDD), or a solid-state drive (SSD).
[0193] The communication interface 1103 uses a transceiving module such as, but not limited to, a network interface card, a transceiver, to enable communication between the management apparatus 1100 and other devices or communication networks.
[0194] The memory 1104 stores executable program code, and the processor 1101 executes the executable program code to respectively implement the functions of the WFM network element in the foregoing method embodiments. That is, the memory 1104 has instructions for executing the above method.
[0195] The embodiments of the present application also provide a computer program product containing instructions, which, when executed on a management apparatus, enable the management apparatus to perform the method of any of the above embodiments.
[0196] The embodiments of the present application also provide a computer readable storage medium. The computer readable storage medium stores computer programs or instructions, which, when executed on a management apparatus, enable the management apparatus to perform the method of any of the above embodiments.
[0197] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to the embodiments of the present application are generated. The computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions can be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (for example, coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (for example, infrared, wireless, microwave, etc.) mode. The computer readable storage medium can be any available medium that can be accessed by a computer or data storage device such as one or more servers, data centers, etc. integrated with one or more media. The available media can be magnetic media (for example, floppy disk, hard disk, magnetic tape), optical media (for example, DVD), or semiconductor media (for example, solid state disk (SSD)) and the like.
[0198] Those skilled in the art can appreciate that the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether the functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Skilled professionals can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0199] Those skilled in the art can clearly understand that, for the convenience and brevity of the description, the specific working processes of the above-described system, device and unit can refer to the corresponding processes in the foregoing method embodiments, which will not be described here.
[0200] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other manners. For example, the described device embodiments are merely schematic. The division of the units is merely logical function division. There can be other division manners in actual implementation. For example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections between different units, can be indirect couplings or communication connections through some interfaces, devices or units, and can be in electrical, mechanical or other forms.
[0201] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., can be located in one place, or can be distributed on a plurality of network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.
[0202] In addition, each functional unit in the various embodiments of the present application can be integrated into a processing unit, or each unit can exist physically, or two or more units can be integrated into one unit.
[0203] If the functions are implemented in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application can be embodied in the form of a software product in essence or in the part that contributes to the prior art, or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or an access network device, etc.) to execute all or part of the steps of the method described in the various embodiments of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a ROM, a random access memory RAM, a magnetic disk or an optical disk, and various media that can store program codes.
[0204] Although the present application is described herein in conjunction with various embodiments, other variations of the disclosed embodiments can be understood and implemented by those skilled in the art with reference to the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "one" does not exclude a plurality. A single processor or other unit can implement several functions listed in the claims. Some measures described in mutually different dependent claims can be combined and produce good results.
[0205] Although the present application has been described in connection with certain specific features and embodiments thereof, it is to be understood that it is provided as an exemplification of the application and is not intended to limit the scope of the application, which is defined in the claims. Various modifications and changes can be made thereto without departing from the spirit and scope of the application. Accordingly, it is intended that all such modifications and changes be included within the scope of the application as claimed. Obviously, many modifications and variations of the present application are possible in light of the above teachings. It is, therefore, to be understood that within the scope of the appended claims and their equivalents, the application can be practiced otherwise than as specifically described.
Claims
1. A method of determining the number of agents, characterized by, The method comprises: generating a first traffic list according to simulation processing information corresponding to a first time granularity and a first number of agents; wherein the simulation processing information comprises a start processing time and a service duration of simulated processing traffic of a skill group; the first traffic list comprises sub-traffic information corresponding to each time period, and the sub-traffic information comprises a start processing time and a service duration, and a time interval of the each time period is the first granularity; determining a reference number of agents corresponding to the each time period according to first prediction parameter information and an initial number of agents corresponding to the each time period; wherein the first prediction parameter information comprises the first traffic list, the initial number of agents corresponding to the each time period is a maximum sub-traffic volume in the each time period, and the reference number of agents corresponding to the each time period reaches the preset service level; determining an iterative number of agents corresponding to the each time period according to a number interval corresponding to the reference number of agents corresponding to the each time period; determining a to-be-output number of agents corresponding to the each time period according to the iterative number of agents corresponding to the each time period and a candidate weight factor set; wherein a service level corresponding to the to-be-output number of agents reaches the preset service level, and a difference between the service level corresponding to the to-be-output number of agents and the preset service level is less than a threshold value; determining a second number of agents based on the to-be-output number of agents corresponding to the each time period, and the second number of agents is a sum of the to-be-output number of agents corresponding to the each time period.
2. The method of claim 1, wherein, The first prediction parameter information further comprises the preset service level, operation information of the skill group, a multimedia concurrency number, agent skill information, and a routing strategy.
3. The method of claim 1, wherein, The method further comprises: generating a second traffic list according to traffic data in a historical period and a second time granularity; the second traffic list comprises an arrival time and a service duration of traffic; determining a first number of agents and simulation processing information corresponding to the first number of agents according to second prediction parameter information and an initial number of agents; wherein the second prediction parameter information comprises the second traffic list, the initial number of agents is a maximum traffic volume in the second traffic list, and a service level corresponding to the first number of agents reaches the preset service level.
4. The method of claim 3, wherein, The second prediction parameter information further comprises the preset service level, operation information of the skill group, a multimedia concurrency number, agent skill information, and a routing strategy.
5. The method of claim 2 or 3, wherein, A maximum concurrency number of traffic of one agent is less than or equal to an agent concurrency number, and a maximum concurrency number of multimedia of one agent is less than or equal to the multimedia concurrency number.
6. The method of claim 3, wherein, The determination of the first number of agents and the simulation processing information corresponding to the first number of agents according to the second prediction parameter information and the initial number of agents comprises: inputting the second prediction parameter information and the initial number of agents into a second simulator to perform simulation; inputting the second prediction parameter information and a candidate number into the second simulator to perform simulation; the candidate number is a number determined based on the initial number of agents and a bisection method. Determine a first number of agents from the candidate numbers based on simulation results output by each simulation of the second simulator, and determine simulation processing information corresponding to the first number of agents.
7. The method of claim 6, wherein, The simulation results output by one simulation of the second simulator include a service level and simulation processing information corresponding to the candidate number of the one simulation.
8. The method according to any one of claims 1 to 7, wherein The determining of the reference number of agents corresponding to each time period based on the first prediction parameter information and the initial number of agents corresponding to each time period comprises: Inputting the first prediction parameter information and the initial number of agents corresponding to each time period into a first simulator respectively for simulation; Inputting the first prediction parameter information and the candidate number corresponding to each time period into the first simulator respectively for simulation; the candidate number corresponding to one time period is a number determined based on the initial number of agents corresponding to the one time period and a bisection method; Determine the reference number of agents corresponding to each time period from the candidate number corresponding to each time period based on simulation results output by each simulation of the first simulator.
9. The method of claim 8, wherein, The simulation results output by one simulation of the first simulator corresponding to the first time period include a service level and a number of lost calls under the candidate number corresponding to the one simulation in the first time period; the first time period is any time period of the time periods.
10. The method of claim 8, wherein, The method further comprises: Determine a target function value of the reference number of agents corresponding to each time period based on a first weight factor.
11. The method of any one of claims 1-7, wherein, The determining of the iterative number of agents corresponding to each time period based on the number interval corresponding to the reference number of agents corresponding to each time period comprises: Determine a target function value corresponding to each number in the number interval corresponding to the reference number of agents corresponding to the first time period; Determine a minimum target function value from the target function values corresponding to the numbers, and determine the number corresponding to the minimum target function value as the iterative number of agents corresponding to the first time period; wherein the first time period is any time period of the time periods. The determining of the iterative number of agents corresponding to each time period based on the number interval corresponding to the reference number of agents corresponding to each time period comprises:
12. The method of any one of claims 1-7, wherein, Select a first sample number from the number interval corresponding to the reference number of agents corresponding to the first time period; Determine a first candidate number corresponding to the first time period based on the first prediction parameter information and the first sample number, wherein a service level corresponding to the first candidate number reaches the preset service level; Select a second sample number from the number interval corresponding to the first candidate number; Determine a second candidate number corresponding to the first time period based on the first prediction parameter information and the second sample number, wherein a service level corresponding to the second candidate number reaches the preset service level; Determine the iterative number of agents corresponding to the first time period based on a target function value corresponding to the first candidate number and a target function value corresponding to the second candidate number; Wherein the first time period is any time period of the time periods. 13. The method of any one of claims 1-7, wherein, The determining the to-be-output seat number corresponding to each time period according to the iteration seat number corresponding to each time period and the candidate weight factor set comprises: determining a first iteration selectable number corresponding to the first time period according to the iteration seat number corresponding to the first time period and a first candidate weight factor in the candidate weight factor set; determining a second iteration selectable number corresponding to the first time period according to the iteration seat number corresponding to the first time period and a second candidate weight factor in the candidate weight factor set; determining the to-be-output seat number corresponding to the first time period based on the first iteration selectable number and the second iteration selectable number; The first time period is any one of the time periods.
14. The method of any one of claims 1-13, wherein, The method further comprises: outputting the second seat number to a client, the second seat number being used by the client for shift management.
15. A management device, characterized by comprising: The management device comprises a processor and an interface module, the interface module being configured to receive information from other devices and transmit the information to the processor or send information from the processor to other devices, and the processor is configured to enable the management device to implement the method according to any one of claims 1 to 14 by means of a logic circuit or code instructions.
16. A computer readable storage medium characterized by: The storage medium stores a computer program or instructions, and when the computer program or instructions are executed by the management device, the method according to any one of claims 1 to 14 is implemented.
17. A computer program product comprising computer programs or instructions, characterized in that, The computer program or instructions are executed by the management device to implement the method according to any one of claims 1 to 14. The computer program or instructions are executed by the management device to implement the method according to any one of claims 1 to 14.