Available time pushing method and device and storage medium

By receiving request information and obtaining estimated available time and reachability information, dynamic time planning is performed, which solves the problem of low time planning efficiency in multiple locations and time periods, and achieves more accurate time planning and optimization.

CN120782408APending Publication Date: 2025-10-14TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410390507.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-04-01
Publication Date
2025-10-14

AI Technical Summary

Technical Problem

Existing time planning methods are inefficient when involving multiple locations or multiple time periods, resulting in unreasonable time allocation and suboptimal itinerary arrangements.

Method used

A method for pushing available time is provided. By receiving request information, the estimated available time of the target object in each unit time period and the reachability information between each two candidate locations are obtained. Time dynamic planning is performed by comprehensively considering the spatiotemporal relationship to calculate the total available time of the target.

Benefits of technology

It improves the processing efficiency and rationality of time planning, can provide target objects with more accurate and optimized time planning solutions, and improves the target objects' satisfaction with time planning.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120782408A_ABST
    Figure CN120782408A_ABST
Patent Text Reader

Abstract

The invention discloses an available time pushing method and device and a storage medium, and the method comprises the steps: firstly receiving request information used for requesting to push target available total time, and then obtaining the predicted available time of a target object for carrying out a target action at each candidate place in each unit time period according to the request information, obtaining reachable information between every two candidate places; according to all the predicted available time and all the reachable information, the total available time of the target is obtained through calculation, dynamic time planning is carried out by comprehensively considering the space-time relation between time and places, and the sum of the available time of the target object for carrying out target actions in multiple unit time periods can be calculated more accurately and comprehensively. According to the method, the processing efficiency of time planning and the reasonability of time planning are effectively improved, so that a more accurate time planning scheme with a better optimization effect can be pushed to the target object, and the satisfaction degree of the target object for time planning is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data processing, and particularly relates to a push method and device of available time and a storage medium. BACKGROUND

[0002] The current time planning method focuses on simple time period allocation or activity planning based on a single place, and usually schedules a day and arranges activities manually, which is not only low in processing efficiency, but also often faces problems such as unreasonable time allocation and suboptimal travel arrangement when the activity planning involves multiple places or multiple time periods due to a large amount of data and complex space-time relationship. SUMMARY

[0003] The following is a summary of the subject matter described in detail herein. This summary is not intended to limit the scope of the claims.

[0004] The embodiments of the present application provide a push method and device of available time and a storage medium, which can automatically calculate and provide the total available time, and improve the processing efficiency of time planning.

[0005] In one aspect, the embodiments of the present application provide a push method of available time, comprising the following steps:

[0006] receiving request information for requesting to push a target total available time, wherein the target total available time is a total available time of a target object for performing a target action in a plurality of unit time periods;

[0007] According to the request information, obtaining the estimated available time of the target object for performing the target action in each candidate place in each unit time period, and the reachable information between each two candidate places;

[0008] According to all the estimated available time and all the reachable information, the target total available time is calculated;

[0009] pushing the target total available time to the target object.

[0010] In another aspect, the embodiments of the present application also provide a push device of available time, comprising:

[0011] a request receiving unit configured to receive request information for requesting to push a target total available time, wherein the target total available time is a total available time of a target object for performing a target action in a plurality of unit time periods;

[0012] an information obtaining unit, configured to obtain, according to the request information, expected available time of the target object for performing the target action at each candidate location in each unit time period, and reachable information between any two candidate locations;

[0013] a time calculating unit, configured to calculate the target total available time according to all the expected available time and all the reachable information;

[0014] a time pushing unit, configured to push the target total available time to the target object.

[0015] Optionally, the time calculating unit is further configured to:

[0016] calculate an available time dynamic programming table according to all the expected available time and all the reachable information, wherein the available time dynamic programming table records a maximum total available time of the target object for performing the target action in a plurality of unit time periods;

[0017] determine the maximum total available time in the available time dynamic programming table as the target total available time.

[0018] Optionally, the time calculating unit is further configured to:

[0019] traverse all the unit time periods, and in each unit time period, calculate an available time dynamic programming element value corresponding to each candidate location according to the expected available time corresponding to each candidate location and the reachable information between any two candidate locations;

[0020] construct an available time dynamic programming table according to all the available time dynamic programming element values, wherein the available time dynamic programming element value of a first one in the available time dynamic programming table is the maximum total available time.

[0021] Optionally, the time calculating unit is further configured to:

[0022] traverse all the candidate locations as starting locations, and for each starting location, calculate a plurality of candidate dynamic programming element values corresponding to the starting location according to a positional relationship between the starting location and each candidate location, the reachable information, and the expected available time corresponding to each candidate location, wherein the candidate dynamic programming element values correspond to the candidate locations one by one;

[0023] determine a target dynamic programming element value corresponding to each starting location according to the plurality of candidate dynamic programming element values corresponding to each starting location;

[0024] According to the target dynamic programming element value corresponding to each of the starting locations, obtain an available time dynamic programming element value corresponding to each of the candidate locations.

[0025] Optionally, the time calculation unit is further configured to:

[0026] According to the position relationship between the starting location and each of the candidate locations and the reachability information, determine reachability between the starting location and each of the candidate locations.

[0027] According to the reachability and the estimated available time corresponding to each of the candidate locations, calculate a plurality of candidate dynamic programming element values corresponding to the starting location.

[0028] Optionally, the time calculation unit is further configured to:

[0029] For each of the candidate locations, if the position relationship between the current candidate location and the starting location is the same location, or the reachability information between the current candidate location and the starting location is a first preset value, determine that the reachability between the starting location and the current candidate location is reachable.

[0030] Optionally, the time calculation unit is further configured to:

[0031] For each of the candidate locations, if the position relationship between the current candidate location and the starting location is different locations, and the reachability information between the current candidate location and the starting location is a second preset value, determine that the reachability between the starting location and the current candidate location is unreachable.

[0032] Optionally, the time calculation unit is further configured to:

[0033] For each of the candidate locations, when the reachability is reachable, according to the estimated available time of the current candidate location in the current unit time period and the estimated available time of the current candidate location in the next unit time period, calculate a candidate element value corresponding to the current candidate location.

[0034] According to the candidate element values corresponding to a plurality of the candidate locations, obtain a plurality of candidate dynamic programming element values corresponding to the starting location.

[0035] Optionally, the time calculation unit is further configured to:

[0036] For each of the starting locations, among a plurality of the candidate dynamic programming element values corresponding to the current starting location, determine the one with the largest value as a target dynamic programming element value corresponding to the current starting location.

[0037] Optionally, the information obtaining unit is further configured to:

[0038] determine a plurality of reachable information request tasks according to the request information, the reachable information request tasks being used to obtain the reachable information;

[0039] concurrently execute the plurality of reachable information request tasks by using a coroutine pool, to obtain the reachable information between each two candidate locations.

[0040] Optionally, the information obtaining unit is further configured to:

[0041] lock the plurality of reachable information request tasks respectively;

[0042] add the locked plurality of reachable information request tasks to the coroutine pool for concurrent execution, and unlock the locked plurality of reachable information request tasks after the execution is completed.

[0043] In another aspect, an embodiment of the present application further provides an electronic device, comprising:

[0044] at least one processor;

[0045] at least one memory configured to store at least one program;

[0046] when the at least one program is executed by the at least one processor, the available time pushing method as described above is implemented.

[0047] In another aspect, an embodiment of the present application further provides a computer readable storage medium, wherein a processor executable computer program is stored, and the processor executable computer program is used to implement the available time pushing method as described above when executed by a processor.

[0048] In another aspect, an embodiment of the present application further provides a computer program product, comprising a computer program or computer instructions, the computer program or the computer instructions are stored in a computer readable storage medium, and a processor of an electronic device reads the computer program or the computer instructions from the computer readable storage medium, and the processor executes the computer program or the computer instructions, so that the electronic device executes the available time pushing method as described above.

[0049] The embodiments of the present application at least have the following beneficial effects: first, receiving request information for requesting a total available time of a target, then according to the request information, obtaining an estimated available time of the target object for performing a target action at each candidate location in each unit time period, and reachability information between each two candidate locations; according to all the estimated available times and all the reachability information, a total available time of the target is calculated, the time dynamic planning is performed by comprehensively considering the space-time relationship between time and location, the total available time of the target object for performing the target action in multiple unit time periods can be more accurately and comprehensively calculated, the processing efficiency of the time planning is effectively improved, and the rationality of the time planning is improved, so that a more accurate and better optimized time planning scheme can be pushed to the target object, and the satisfaction of the target object to the time planning is improved.

[0050] Other features and advantages of the present application will be set forth in the following description, and in part will become apparent from the description, or can be learned by practice of the present application. The objects and other advantages of the present application will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings. BRIEF DESCRIPTION OF DRAWINGS

[0051] The accompanying drawings, which are included to provide a further understanding of the present application and constitute a part of this application, illustrate embodiments of the present application and together with the written description serve to explain the technical solutions of the present application, but do not constitute a limitation on the technical solutions of the present application.

[0052] Figure 1 is a schematic diagram of an implementation environment provided by an embodiment of the present application;

[0053] Figure 2 is a schematic diagram of another implementation environment provided by an embodiment of the present application;

[0054] Figure 3 is a flowchart of a method for pushing available time provided by an embodiment of the present application;

[0055] Figure 4 is a schematic diagram of a schedule and flight situation provided by an embodiment of the present application;

[0056] Figure 5 is a schematic diagram of a schedule and flight situation provided by another embodiment of the present application;

[0057] Figure 6 is a schematic diagram of a holiday management page provided by an embodiment of the present application;

[0058] Figure 7 is a schematic diagram of a business trip reimbursement page provided by an embodiment of the present application;

[0059] Figure 8is a schematic diagram of a target dynamic programming element value calculation process provided in an embodiment of the present application;

[0060] Figure 9 is a flowchart of a process of pushing a target total available time provided in an embodiment of the present application;

[0061] Figure 10 is a flowchart of a process of calculating a target total available time provided in an embodiment of the present application;

[0062] Figure 11 is a flowchart of a process of calculating a target total available time based on dynamic programming provided in an embodiment of the present application;

[0063] Figure 12 is a schematic diagram of a first-stage traversal process provided in an embodiment of the present application;

[0064] Figure 13 is a schematic diagram of a first-stage traversal process provided in another embodiment of the present application;

[0065] Figure 14 is a schematic diagram of a second-stage traversal process provided in an embodiment of the present application;

[0066] Figure 15 is a schematic diagram of a second-stage traversal process provided in another embodiment of the present application;

[0067] Figure 16 is a schematic diagram of a second-stage traversal process provided in another embodiment of the present application;

[0068] Figure 17 is a schematic diagram of a third-stage traversal process provided in an embodiment of the present application;

[0069] Figure 18 is a schematic diagram of a third-stage traversal process provided in another embodiment of the present application;

[0070] Figure 19 is a schematic diagram of a third-stage traversal process provided in another embodiment of the present application;

[0071] Figure 20 is a detailed flowchart of an available time pushing method provided in a specific example;

[0072] Figure 21 is a structural schematic diagram of an available time pushing apparatus provided in an embodiment of the present application

[0073] Figure 22 is a schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0074] The application will be further described below in conjunction with the accompanying drawings and specific embodiments. The described embodiments should not be regarded as limiting the application, and all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of protection of the application.

[0075] In the following description, "some embodiments" are related to a subset of all possible embodiments, but it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.

[0076] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the application belongs. The terms used herein are only for the purpose of describing the embodiments of the application and are not intended to limit the application.

[0077] Before the embodiments of the application are further described in detail, the terms and phrases involved in the embodiments of the application are explained, and the terms and phrases involved in the embodiments of the application are applicable to the following explanations.

[0078] 1) Coroutine pool, used to control the number of coroutines, manage the life cycle of coroutines, and schedule the execution of coroutines. The coroutine pool is used to manage the creation, reuse and recycling of multiple coroutines, which helps to avoid excessive resource consumption caused by creating a large number of coroutines, and can also be used to control the degree of concurrency and optimize performance, and can efficiently switch between coroutines instead of relying on thread scheduling of the operating system. Since coroutines can perform fast context switching in user mode, they are usually used in I / O intensive applications, such as network IO, file IO, etc.

[0079] 2) Distributed lock, a synchronization method used to control the access order of shared resources and avoid conflicts in a distributed system through a Chubby server, which is a synchronization mechanism to ensure that only one node (which can be a server, process or thread) can execute a critical section of code at the same time. Distributed locks can provide mutual exclusion control for access to shared resources between nodes in a distributed environment, allowing access to resources to be controlled across different machine processes.

[0080] Current time planning methods focus on simple time period allocation or activity planning based on a single location, and usually schedule activities and events manually, which not only has low processing efficiency, but also when the activity planning involves multiple locations or multiple time periods, due to the large amount of data and complex space-time relationship, manual planning of schedules and activities often faces problems such as unreasonable time allocation and suboptimal travel arrangement.

[0081] In order to be able to automatically calculate and provide the available time total, improve the processing efficiency of time planning, the embodiment of the application provides an available time pushing method, an available time pushing device, an electronic device, a computer readable storage medium and a computer program product, first, request information for requesting to push a target available total time is received, then according to the request information, the expected available time of a target object in each unit time period at each candidate location for a target action is obtained, and the reachable information between each two candidate locations is obtained; the target available total time is calculated according to all the expected available time and all the reachable information, that is, the technical scheme provided by the embodiment of the application can more accurately and comprehensively calculate the available time total of the target object in the target action in multiple unit time periods by comprehensively considering the space-time relationship between time and location for time dynamic planning, effectively improving the processing efficiency of time planning and the rationality of time planning, so as to push a more accurate and better optimized time planning scheme for the target object, which helps to improve the satisfaction of the target object to the time planning.

[0082] Figure 1 is a schematic diagram of an implementation environment provided by the embodiment of the application. Referring to Figure 1 , the implementation environment includes a first user terminal 101 and a first server 102. The first user terminal 101 and the first server 102 are directly or indirectly connected through wired or wireless communication, wherein the first user terminal 101 and the first server 102 can be nodes in a blockchain, and the embodiment does not make specific limitation here.

[0083] The first user terminal 101 can include but is not limited to a smart phone, a computer, a smart voice interactive device, a smart home appliance, a vehicle-mounted terminal, an aircraft and the like. Optionally, the first user terminal 101 can be installed with an activity planning client, when the activity planning client is in a running state, the activity planning client can generate and send request information for requesting to push a target available total time to the first server 102, wherein the target available total time is the available time total of a target object in a target action in multiple unit time periods, for example, the target available total time can be employee vacation time, book lending time, scenic spot viewing time and the like, which are not limited here. In addition, the business running client can be a game client, an office client, a social media client or a vehicle-mounted client, which are not limited here.

[0084] The first server 102 can be a stand-alone physical server, a server cluster or a distributed system composed of multiple physical servers, a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platforms.

[0085] In an embodiment, the first server 102 can receive request information for requesting to push the total available time of the target; then, according to the request information, obtain the predicted available time of the target object for performing the target action at each candidate location in each unit time period and the reachable information between each two candidate locations from the data stored in the server in advance; then, according to all the predicted available time and all the reachable information, calculate the total available time of the target; and then push the total available time of the target to the target object.

[0086] Referring to Figure 1 In an application scenario, it is assumed that the first user terminal 101 is a smart phone, and the first user terminal 101 is installed with an activity planning client. When the user sends request information to the first server 102 through the activity planning client in the first user terminal 101, the first server 102 receives the request information for requesting to push the total available time of the target, and then obtains the predicted available time of the target object for performing the target action at each candidate location in each unit time period and the reachable information between each two candidate locations according to the request information; according to all the predicted available time and all the reachable information, the total available time of the target is calculated and pushed to the first user terminal 101 for display. By comprehensively considering the space-time relationship between time and location for time dynamic planning, the total available time of the target object for performing the target action in multiple unit time periods can be more accurately and comprehensively calculated, the processing efficiency of time planning is effectively improved, and the rationality of time planning is improved, so that a more accurate and optimized time planning scheme can be pushed to the target object, which helps to improve the satisfaction of the target object to the time planning.

[0087] Figure 2 is a schematic diagram of another implementation environment provided by the embodiments of the present application. Referring to Figure 2The implementation environment includes a second user terminal 201, a second server 202, and a resource database 203. The second user terminal 201 and the second server 202 are directly or indirectly connected through wired or wireless communication. The resource database 203 can be separately arranged, integrated on the second server 202, or integrated on other devices. The second user terminal 201, the second server 202, and the resource database 203 can all be nodes in a blockchain, and the present embodiment does not make specific limitations on this.

[0088] The second user terminal 201 can include, but is not limited to, a smartphone, a computer, a smart voice interaction device, a smart home appliance, a vehicle-mounted terminal, an aircraft, and the like. Optionally, the second user terminal 201 can be installed with an activity planning client. When the activity planning client is in a running state, the activity planning client can generate and send request information for requesting to push a target total available time to the first server 102. The target total available time is the total available time of a target object for performing a target action in a plurality of unit time periods. For example, the target total available time can be employee vacation time, book borrowing time, scenic spot viewing time, and the like, which are not specifically limited here. In addition, the business running client can be a game client, an office client, a social media client, or a vehicle-mounted client, which are not specifically limited here.

[0089] The second server 202 can be a standalone physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN networks, and basic cloud computing services such as big data and artificial intelligence platforms. Among them, the resource database 203 can save various data computing resources. The resource database 203 can provide various data computing resources to the second server 202 in response to the calling of the second server 202.

[0090] In an embodiment, the second server 202 can receive request information for requesting to push a target total available time. Then, according to the request information, the second server 202 can obtain the predicted available time of a target object for performing a target action at each candidate location in each unit time period, and the reachable information between each two candidate locations. Then, according to all the predicted available time and all the reachable information, the second server 202 can calculate the target total available time. Finally, the second server 202 can push the target total available time to the target object.

[0091] Reference Figure 2As shown, in another application scenario, it is assumed that the second user terminal 201 is a computer, and the second user terminal 201 is installed with an activity planning client. When the user sends a request information to the second server 202 through the activity planning client in the second user terminal 201, the second server 202 receives the request information for requesting to push the target total available time, and then sends a data calling request to the resource database 203 according to the request information. The resource database 203 returns the expected available time of the target object for performing the target action at each candidate location in each unit time period and the reachable information between each two candidate locations to the second server 202 based on the data calling request sent by the second server 202. After the second server 202 receives all the expected available time and all the reachable information, the target total available time can be calculated according to all the expected available time and all the reachable information, and the target total available time is pushed to the second user terminal 201 for display. By comprehensively considering the space-time relationship between time and location for dynamic planning of time, the total available time of the target object for performing the target action in multiple unit time periods can be more accurately and comprehensively calculated, the processing efficiency of time planning is effectively improved, and the rationality of time planning is improved, so that a more accurate and optimized time planning scheme can be pushed to the target object, which helps to improve the satisfaction of the target object to the time planning.

[0092] It should be noted that in each specific embodiment of the present application, when relevant processing needs to be performed according to the attribute information or attribute information set of the target object (for example, a user, etc.) and the data related to the characteristics of the target object, the permission or consent of the target object will be obtained first, and the collection, use and processing of the data will comply with relevant laws, regulations and standards. In addition, when the attribute information of the target object is required by the embodiments of the present application, the separate permission or separate consent of the target object will be obtained through a pop-up window or a jump to a confirmation page, and after the separate permission or separate consent of the target object is obtained, the necessary related data of the target object for enabling the embodiments of the present application to normally operate will be obtained.

[0093] Figure 3 FIG. 1 is a flowchart of a total available time pushing method provided by the embodiments of the present application. The total available time pushing method can be executed by a server, can be executed by a user terminal, or can be executed by a user terminal and a server together. In the embodiments of the present application, the total available time pushing method is executed by the server as an example. Figure 3 The total available time pushing method includes but is not limited to steps 310 to 340.

[0094] Step 310: receiving request information for requesting to push the target total available time.

[0095] Step 320: According to the request information, obtain the predicted available time of the target object performing the target action at each candidate location in each unit time period, and the reachable information between each two candidate locations.

[0096] Step 330: Calculate the target total available time according to all the predicted available time and all the reachable information.

[0097] Step 340: Push the target total available time to the target object.

[0098] In an embodiment, the target total available time can be the total available time of the target object performing the target action in multiple unit time periods, the target object can be an entity or object to be considered for the total available time, the target object can be a person, an organization, or other things capable of performing a specific action; the target action can be a specific activity or operation required to be performed by the target object; the unit time period can be a time range for measuring the executability of the target object for the target action, the available time of the target object can be measured and evaluated in each unit time period, thus the total available time can be obtained by counting the available time in each unit time period.

[0099] In an embodiment, the request information can provide the required request elements for calculating the target total available time, for example, the request information can include the identity information of the target object, the time range composed of at least one unit time period, the action description of the target action, etc., the user can generate the corresponding request information based on each request element through the workflow management system, the time management application or other types of resource scheduling software installed in the terminal, so that the server can calculate the target total available time through the request elements carried in the request information and push it to the target object. Among them, the request elements carried in the request information are different, and the semantics represented by the target total available time obtained by the corresponding request acquisition is also different, for example, the target object can be an employee, a vehicle, a company, etc., the corresponding target action to be performed can be business travel and leave, rental, scenic spot tour, etc., and the time range to be considered can be one day, one week or one month, the specific unit time period can be each hour in a day, each day in a week, each week in a month, and the corresponding target total available time can be understood as the total length of the employee's business travel and leave in the month, the length of the vehicle rental in the week, or the tour length of each scenic spot in the company team building one-day tour.

[0100] In an embodiment, the candidate locations can refer to physical locations or geographical areas where the target object can perform the target action, and the candidate locations can include different meeting locations, business trip areas, stores or other places related to performing the target action. Based on the request elements carried in the request information, the expected available time of the target object for performing the target action in each candidate location in each unit time period and the reachable information between each two candidate locations can be obtained.

[0101] In an embodiment, the expected available time can refer to the length of time that the target object is expected to be able to use for performing the target action in the unit time period, and the expected available time can be affected by the location where the target object performs the target action, i.e., affected by the candidate locations, such as traffic conditions, facility conditions, environmental conditions, etc. Specifically, the time required to arrive at and leave the candidate location, the time that can need to be waited for when performing the target action in the candidate location (such as the time for queuing and waiting), and the time occupied by other activities that can need to be performed in the same unit time all affect the expected available time of the target object for performing the target action in the candidate location, and thus the disposable time of the target object for performing the same target action in different candidate locations can not be the same. Since it takes time to transfer from one candidate location to another candidate location, if the traffic time from the initial location to the target location is long, the expected available time corresponding to the target location needs to be reduced and adjusted, and thus the disposable time of the target object for performing the same target action when transferring from different candidate locations to the same candidate location can also not be the same, i.e., when the candidate locations of the target object in the previous unit time period are different, the disposable time of the target object for performing the same target action in the same candidate location in the same unit time period can also not be the same.

[0102] In an embodiment, the predicted available time can be obtained by a model prediction. Specifically, based on the request information, historical data such as the actual available time of the target object performing the target action at a historical time, the start time and end time of the actual available time, the candidate location of performing the target action, the historical reachable information between the candidate locations, etc. can be obtained. At the same time, based on the request information, real-time reachable information between the current candidate locations can also be obtained. Then, all the obtained historical data and real-time reachable information are data cleaned and feature extracted to obtain historical duration features, historical time features, historical reachable features and real-time reachable features respectively. Then, all the above features are spliced to form a first prediction data set composed of a first prediction data group containing multi-dimensional features, and the spliced first prediction data is input into a pre-trained regression model for feature mapping. The regression model can include an input layer, a hidden layer and an output layer. The input layer can perform feature scaling on the input first prediction data, such as through Z-score standardization, minimum-maximum standardization or other standardization processing methods, so that each feature has the same scale, thereby eliminating the model bias that may be caused by the difference in numerical range, helping the regression model to more effectively learn the relationship between features during the training process and improving the prediction performance of the model. The hidden layer can include a plurality of neurons. Each neuron can receive data transmitted after processing by the input layer and calculate output according to the corresponding weight and bias. An activation function such as a Rectified Linear Unit (ReLU) function, a Sigmoid function, a Hyperbolic Tangent (tanh) function, etc. can be applied to the output of the neurons in the hidden layer. Then, the output layer can also include neurons. The neurons in the output layer predict the predicted available time of the target object performing the target action at each candidate location in each unit time period, such as (A, 2, c2, 5), where A represents the target object as person A, 2 represents the unit time period in the second week, c2 represents the candidate location as city 2, and 5 represents the predicted available time of performing the target action as 5 days.

[0103] In an embodiment, the server can pre-store relevant geographic information, for example, the pre-stored geographic information can include multiple location positions such as conference room addresses, customer addresses, vehicle return store addresses, etc., and the server can also store reachable information between the location positions. Through the identity information of the target object carried in the request information, the time range to be investigated, and the action description of the target action, multiple candidate locations can be initially determined from the multiple location positions, for example, the target object is a company business staff, through the action description of the target action, it can be determined that the target object needs to visit customers on business trips, through the identity information of the target object, it can be determined that the target object has business customers, through the selected unit time period, it can be determined that the visitable customers within the corresponding unit time period are idle and within the distance range, therefore, the target action, the target object and the selected unit time period multiple request elements can filter out multiple customer addresses that the company business staff can visit from the server pre-stored multiple location positions, and the multiple customer addresses are divided by city as candidate locations for calculating the total available time; after determining the candidate locations, the length of the unit time period can be subtracted from the visitable length of each customer within the corresponding unit time period to obtain the rest length, that is, the estimated available time of the target object within the corresponding unit time period in the customer city, and the corresponding reachable information is obtained based on each candidate location.

[0104] In an embodiment, the reachable information can represent the connection state of the route between two candidate locations, which can be used to represent the possibility of moving from one candidate location to another candidate location under the required traffic conditions. The reachable information can be obtained from network open source data through the Internet, for example, the data information related to travel between two candidate locations can be obtained through map applications, public transportation websites, travel planning websites, shared travel services, etc., including the travel distance, travel time, travel cost, connection state between two candidate locations in a specific unit time period (such as when choosing public transportation, it is necessary to determine whether a public transportation tool is arranged within the corresponding unit time period to determine the connection state between two candidate locations within the corresponding unit time period), etc. Therefore, through the reachable information, the order of the selected candidate locations can be determined, that is, the candidate location that can perform the target action within the next unit time period can be determined, which is helpful to determine the target total available time of the target object.

[0105] In an embodiment, after obtaining the predicted available time corresponding to each candidate location in each unit time period and the reachable information between two candidate locations, the predicted available time corresponding to each different unit time period can be selected from the plurality of predicted available times for accumulation to obtain the target total available time in the entire time range to be investigated (i.e. at least one unit time determined in the request information). Specifically, in the process of accumulating the predicted available time, the reachable information between the adjacent unit time periods needs to be considered, i.e. the target total available time needs to be adjusted according to the reachable information. For example, if it is impossible to reach from one candidate location to another candidate location, i.e. the two candidate locations are not reachable, the accumulation calculation of the predicted available time corresponding to the next candidate location which is not reachable can be ignored, and the predicted available time corresponding to the next candidate location which is reachable is selected for accumulation calculation to obtain the target total available time.

[0106] In an embodiment, based on the work arrangement information of the user and the reachable information, i.e. the predicted available time of the target object performing the target action in each unit time period in each candidate location and the reachable information between two candidate locations, data modeling can be performed to obtain a two-dimensional array days and a two-dimensional array flights, where array days[i][j] represents the number of days predicted to be able to take a vacation in the jth week of the ith city, and array flights represents the connectivity between city i and city j. The calculation requirement of the target total available time is established. Due to the flight time period, the check-in time of taking the plane is ignored, so the transfer time between candidate locations is not considered. The city with a numerical index of "0" in the array flights is taken as the starting city, and it is the starting time of a unit time period (i.e. Monday of a week). At the same time, the location transfer cost is considered, and the upper limit of the number of times of reimbursing the plane fee per week is once, i.e. the candidate location is transferred only once in a unit time period.

[0107] Specifically, taking the employee A applying for business travel to obtain the maximum vacation days as an example, referring to Figure 4 , Figure 4 the schedule and flight situation diagram provided by an embodiment of the present application. As shown in Figure 4 , the business trip period of employee A is three weeks, and the cities that can be traveled are city 0, city 1 and city 2, where city 0 is the city where employee A is currently located. With Figure 4The chart corresponding to the schedule is matched, and the array days of the employee A can be expressed as [[1, 3, 1], [6, 0, 3], [3, 3, 3]], that is, the employee A has 1 day of vacation in the first week in the city 0, 3 days of vacation in the second week, and 1 day of vacation in the third week; the employee A has 6 days of vacation in the first week in the city 1, 0 days of vacation in the second week, and 3 days of vacation in the third week; the employee A has 3 days of vacation in the first week in the city 2, 3 days of vacation in the second week, and 3 days of vacation in the third week. With Figure 4 The chart corresponding to the schedule is matched, and the array days of the employee A can be expressed as [[1, 3, 1], [6, 0, 3], [3, 3, 3]], that is, the employee A has 1 day of vacation in the first week in the city 0, 3 days of vacation in the second week, and 1 day of vacation in the third week; the employee A has 6 days of vacation in the first week in the city 1, 0 days of vacation in the second week, and 3 days of vacation in the third week; the employee A has 3 days of vacation in the first week in the city 2, 3 days of vacation in the second week, and 3 days of vacation in the third week. With

[0108] Specifically, taking the employee B applying for business trip leave to obtain the maximum number of days as an example, referring to Figure 5 , Figure 5 The schedule and flight situation provided by another embodiment of the application are shown in the schematic diagram. As shown in Figure 5 , the employee B has a three-week business trip period, and the cities that can be visited are the city 3, the city 4, and the city 5, wherein the city 0 is the city where the employee B is currently located. With Figure 5 The chart corresponding to the schedule is matched, and the array days of the employee A can be expressed as [[1, 3, 1], [6, 0, 3], [3, 3, 3]], that is, the employee A has 1 day of vacation in the first week in the city 0, 3 days of vacation in the second week, and 1 day of vacation in the third week; the employee A has 6 days of vacation in the first week in the city 1, 0 days of vacation in the second week, and 3 days of vacation in the third week; the employee A has 3 days of vacation in the first week in the city 2, 3 days of vacation in the second week, and 3 days of vacation in the third week. With Figure 5The chart corresponding to the airline schedule matches, and the array of flights for employee B can be represented as [[0, 0, 0], [0, 0, 0], [0, 0, 0]], that is, it can be represented that there is no reachability between city 3, city 4 and city 5, therefore, employee B cannot take a flight from city 3 to other cities, that is, the transfer of the candidate location is impossible, and employee B can only take a three-week business trip in city 3, since employee B can take a leave of 1 day in the first week, 1 day in the second week and 1 day in the third week in city 3, therefore, employee B can obtain a maximum leave of 3 days in the three-week business trip.

[0109] In an embodiment, after obtaining the target total available time corresponding to the target object, the server can push the target total available time to the target object, for example, through a mobile application notification, a short message, an email, etc., and at the same time, the specific time planning arrangement of the target total available time can also be pushed, such as the estimated available time for performing the target action at each candidate location in each unit time period. In addition, the server can also push the request information to the terminal that sends the request information, and after receiving the target total available time, the terminal can display the target total available time on the user interface, or provide more comprehensive services for the user in combination with other information, for example, a travel planning platform can push the calculated target total available time to the user, so that the user can plan and book a trip. It should be noted that the pushing mechanism can be customized and optimized according to specific business needs and technical architecture.

[0110] In an embodiment, since the work requirements of sales personnel and project personnel require business trips between multiple cities, and the leave time of sales personnel and project personnel is not fixed like the leave time of ordinary employees, which can be adjusted according to the project situation, sales personnel and project personnel usually take leave when they are on business trips in cities, but due to the particularity of the work of these employees, it is difficult to calculate the leave time when they are on business trips between multiple cities, and it is difficult to quickly understand the maximum available leave time of the employees in the scenario of business trips between multiple cities. Therefore, through the available time pushing method provided in the embodiments of the present application, the maximum available leave time of the employees during the period of business trips between multiple cities can be automatically calculated. Specifically, a leave management page provided by a leave management application can be displayed in the terminal, the user can set the leave type through the leave management page, understand the leave rules and manage the available leave balance, and at the same time, the user can send request information to the server to obtain the target total available time of the maximum available leave time through the leave management page.

[0111] Reference Figure 6 , Figure 6A schematic diagram of the vacation management page provided in an embodiment of the present application. After logging into a user account, a vacation management page 601 corresponding to the user account can be displayed on the terminal. The vacation type and vacation balance corresponding to the user account can be displayed in the vacation management page 601. Specifically, vacation types can include annual leave, personal leave, sick leave, adjustment leave, marriage leave, etc., as well as vacation balances of corresponding types. At the same time, the authority to perform the target action (applicable scope of employees for vacation adjustment), the length of the unit time period (leave unit), and an operation control 603 for initiating a request for obtaining the target total available time for performing the target action will be displayed in the same row of information display bar 602 of the corresponding vacation type. The estimated available time corresponding to performing different target actions can have different unit time periods, such as Figure 6 As shown, the unit time period corresponding to the application for annual leave is one day, and the unit time period corresponding to the application for personal leave is one hour. When the operation control 603 is triggered, the terminal can generate corresponding request information and send it to the server, wherein the request information includes the holiday type (i.e., target action) and user account (i.e., target object) corresponding to the triggered operation control 603, so that the server can obtain the maximum adjustable leave time (i.e., target total available time) for the user account to adjust the holiday of the corresponding holiday type based on the request information and push the maximum adjustable leave time to the terminal corresponding to the user account that is logged in or the terminal that initiates the request information, and then the maximum adjustable leave time corresponding to the user account can be displayed on the corresponding terminal, without the user having to calculate it by themselves, thereby improving the efficiency of time planning management.

[0112] In an embodiment, when an employee travels in multiple cities, in addition to making a leave application, the employee also needs to calculate the travel expense (such as transportation expenses, accommodation expenses, and catering expenses) for traveling between the multiple cities. However, as the types of executable target actions increase, the number of candidate locations increases, and the number of unit time periods increases, not only does the amount of calculation of the total available time of the target greatly increase, but the difficulty of calculating the execution cost corresponding to the total available time of the target also greatly increases. Therefore, by using the available time pushing method provided in the embodiments of the present application, after the server obtains the total available time of the target, the specific travel plan can also be determined based on the total available time of the target, that is, the order between the candidate locations, the time of arriving at and leaving the candidate locations, the way of shuttling between the candidate locations, and then the execution cost corresponding to the total available time of the target is calculated, and the total available time of the target and the corresponding execution cost are pushed to the target object, so as to facilitate planning and arrangement. In addition, after the terminal obtains the total available time of the target, the total available time of the target can be used for downstream task calculation, for example, the execution cost corresponding to the total available time of the target is calculated. Specifically, when calculating the travel expense of the employee, the project period of the trip, the available leave time in the specified trip time period can be determined by using the total available time of the target, and the order between the candidate locations can also be determined by using the total available time of the target, and then the flight cost between the cities is determined. Therefore, the total available time of the target can be used as an external data source and associated with the calculation model for calculating the travel expense, so as to obtain the execution cost corresponding to the total available time of the target.

[0113] The calculation model can be an algorithm model integrating a plurality of expense calculation rules and logic. For example, when calculating the travel expense of the employee, the project period of the trip, the available leave time in the specified trip time period, and the order between the candidate locations are determined according to the total available time of the target, and then these information and the total available time of the target are imported into the calculation model. At this time, the calculation model can obtain the flight cost of the employee traveling between the candidate locations from the network open source data on the Internet according to the order between the candidate locations and the project period of the trip, and then the accommodation expenses and the catering expenses of the employee in the candidate locations can be calculated according to the available leave time in the specified trip time period, the candidate locations, the employee level, and the pre-set standard accommodation and catering expenses. Then, the obtained flight cost, the calculated accommodation expenses, and the calculated catering expenses are summed up to obtain the travel expense of the employee, that is, the execution cost corresponding to the total available time of the target.

[0114] In addition, the calculation model can also be a pre-trained machine learning model, such as a regression model, etc. Specifically, historical travel expense reimbursement data can be collected, where the historical travel expense reimbursement data includes relevant historical information of employee business trips. After data cleaning is performed on the historical travel expense reimbursement data, the historical travel expense reimbursement data is converted into a data format available to the calculation model. Then, relevant feature data is extracted from the historical travel expense reimbursement data, such as extracting business trip cities (which can further extract city categories, city economic levels, etc.), business trip times (which can further extract seasons, holidays, etc.), transportation fees (which can further extract airplane flight fees, train fees, taxi fees, etc.), accommodation fees (which can further extract hotel star ratings, hotel location, etc. that affect accommodation fees), dining expenses, employee levels, etc. that affect travel expense reimbursement costs. Then, the above feature data is spliced to form second prediction data, and the second prediction data is input into the calculation model to predict the execution cost corresponding to the target available total time. The calculation model can include an input layer, a hidden layer, and an output layer. The input layer can be composed of multiple input nodes, each of which corresponds to receiving a feature data, such as business trip cities, business trip times, transportation fees, accommodation fees, etc. in the second prediction data, which are respectively input into corresponding individual input nodes. The input layer can perform feature encoding on the received second prediction data to facilitate subsequent calculation. After the feature encoding is completed, the input layer transmits the encoded data to the hidden layer. The hidden layer can include multiple neurons. The neurons of the hidden layer are connected to the multiple input nodes of the input layer in correspondence. Each connection is configured with a corresponding weight, which is used to adjust the influence degree of the input node on the neuron output. For each neuron of the hidden layer, the encoded data output by each input node in the input layer can be multiplied by the corresponding weight to obtain multiple weighted values. Then, all the obtained weighted values are added to obtain a weighted sum, and the weighted sum is transmitted to an activation function arranged in the hidden layer. The activation function can perform data conversion on the weighted sum. The data processed by the activation function is transmitted to the output layer. The neurons of the output layer can perform weighted summation on the output of the hidden layer again, and calculate the predicted travel expense reimbursement cost through the linear activation function configured in the output layer, i.e., obtain the execution cost corresponding to the target available total time.

[0115] In an embodiment, after receiving the target available total time pushed by the server, the terminal initiating the request information can display a travel expense reimbursement page in the terminal, so that the user can learn the execution cost of the target available total time through the travel expense reimbursement page, and then modify or propose the reimbursement application. Referring to Figure 7 , Figure 7A schematic diagram of a travel expense reimbursement page 701 provided by an embodiment of the present application is shown. In the travel expense reimbursement page 701, there are text display boxes 702 corresponding to different matter information such as reimbursement type, occurrence time, expense amount, etc., and an attachment upload control for uploading reimbursement attachments. By triggering different text display boxes 702, different secondary reimbursement menu bars 703 can be further displayed in the travel expense reimbursement page 701. The secondary reimbursement menu bar 703 can display attribute data corresponding to the matter information, including reimbursement application name, reimbursement application icon style, reimbursement application type grouping, currently selected matter information, remark of the selected matter information, reimbursement data source of the selected matter information, reimbursement data composition of the selected matter information, and importance and operation guide of the selected matter information. The matter information is associated with the target total available time, and the matter information can be determined by the target total available time. Specifically, the reimbursement type can be understood as the type of the target action to be performed by the target object, such as the need for compensatory rest after the employee goes on a business trip, and the reimbursement type can be business trip reimbursement. The occurrence time can be understood as the time corresponding to the target action performed by the target object, such as the start time corresponding to the target total available time after the target total available time is imported. The expense amount can be understood as the expenditure required for the target object to perform the target action, such as Figure 7 As shown, by triggering the text display box 702 corresponding to the expense type in the travel expense reimbursement page 701, the secondary reimbursement menu bar 703 corresponding to the expense type can be further displayed in the travel expense reimbursement page 701. The secondary reimbursement menu bar 703 displays operation controls corresponding to multiple matter information, such as the first operation control 704 corresponding to the reimbursement data source of the expense type, which can be a single selection control. By the first operation control 704, the reimbursement data source of the expense type can be selected as manual addition or as associated external data. The second operation control 705 corresponding to the reimbursement data composition of the expense type can display specific data composition options, such as airplane ticket, train ticket, taxi fare, accommodation fee, catering fee, gift fee, activity fee, communication fee, subsidy, and other data composition options. It should be noted that after selecting the manual addition option in the first operation control 704, the user can manually add and edit each data composition option through the second operation control 705. After selecting the associated external data option in the first operation control 704, the user can input the target total available time through the external association control in the secondary reimbursement menu bar 703, and then the determined data composition options can be directly displayed in the second operation control 705 without manual addition by the user.

[0116] In an embodiment, the current car rental service can support tenants to pick up and return cars at different rental stores, in order to ensure that each rental store can timely meet the rental needs of tenants, it is necessary to reasonably arrange the vehicle resource scheduling, therefore, the target total available time can be understood as the maximum leasing time of the vehicle on the day, the person in charge of the rental store can generate request information for requesting the maximum leasing time of the vehicle through the vehicle resource scheduling software pre-installed in the terminal, wherein the target object can be understood as the selected vehicle, the candidate location can be understood as each rental store, and the target action can be understood as the car being rented, so that the server can obtain the vehicle leasing situation of the vehicle in each rental store in each unit time period and the reachable information between two rental stores based on the request information, determine and return the target total available time, and then facilitate the person in charge to arrange the specific vehicle on the day, for example, the server can obtain the leasing situation of the specified vehicle in each rental store based on the request information as follows: tenant A rents the vehicle in the current rental store A, the leasing time is 8 o'clock on the day, and it is expected to be returned to the rental store B at 12 o'clock on the day; tenant B needs to rent the same vehicle in rental store B at 18 o'clock on the day, and return it to rental store B at 22 o'clock on the day; tenant C needs to rent the same vehicle in rental store C at 14 o'clock on the day, and return it to rental store A at 17 o'clock on the day; tenant D needs to rent the same vehicle in rental store A at 13 o'clock on the day, and return it to rental store A at 15 o'clock on the day; and each rental store is reachable, therefore, the server can obtain that the maximum leasing time of the specified vehicle on the day is 11 hours, specifically, because between 12 o'clock on the day and 18 o'clock on the day, the 3-hour leasing time of tenant C is greater than the 2-hour leasing time of tenant D, therefore, the vehicle can be arranged to be dispatched to rental store A before 8 o'clock on the day for tenant A to lease for 4 hours, then the vehicle is dispatched from rental store B to rental store C from 12 o'clock on the day to 14 o'clock on the day for tenant C to lease for 3 hours, and then the vehicle is dispatched from rental store A to rental store B from 17 o'clock on the day to 18 o'clock on the day for tenant B to lease for 4 hours, so that the maximum leasing time of the specified vehicle on the day can be obtained.

[0117] In an embodiment, the target total available time can be understood as the maximum reading time in a library this week, the target object can be understood as a reader, the candidate location can be understood as a library, and the target action can be understood as borrowing a book in the library. Since the opening and closing times of various libraries are different, and in order to limit the number of people in the library, some libraries adopt reservation system and limit the reading time in the library. Therefore, the reader can generate request information for requesting to obtain the maximum reading time in the library this week through the application program for library entry time reservation management pre-installed in the terminal. The server can obtain the predicted available time of the reader reading books in various libraries this week based on the request information, and the reachable information between two libraries. For example, the server can determine the distance between two libraries. If the distance between the two libraries exceeds the preset distance, it can be considered that the time consumed for passing between the two libraries is too long, and it can be considered that the two libraries are not reachable. Then, based on all the predicted available times and all the reachable information, the maximum reading time of the reader in the library this week, i.e., the target total available time, can be calculated and returned to the terminal for display, so that the reader can quickly understand the information corresponding to the maximum reading time in the library this week, and apply for library reading reservation in time.

[0118] In an embodiment, in the process of calculating the target total available time based on all the predicted available times and all the reachable information, the candidate location in the current unit time period can be determined as the starting location first, and then all the destination locations reachable from the starting location can be determined according to the reachable information. Specifically, when the reachable information between the candidate location and the starting location is reachable, the candidate location can be taken as the destination location. Then, the corresponding predicted available time of all the destination locations is determined, and the maximum predicted available time is selected as the target available time. The destination location corresponding to the target available time is taken as the starting location in the next unit time period, so that all the target available times can be accumulated by repeating the above steps, i.e., the target total available time can be obtained.

[0119] In an embodiment, in the process of calculating the target total available time based on all the predicted available times and all the reachable information, the maximum available time total sum in the available time dynamic programming table can be calculated based on all the predicted available times and all the reachable information first, and then the maximum available time total sum in the available time dynamic programming table is determined as the target total available time.

[0120] In an embodiment, the available time dynamic programming table can represent the available time of the target object to perform the target action in each candidate location in each unit time period, the available time dynamic programming table can be constructed with each unit time period as each divided stage, and with the expected available time of the target object to perform the target action in the candidate location in the unit time period as the representation of the state, specifically, the rows of the available time dynamic programming table can represent the candidate locations, the columns can represent the unit time periods, the number of rows can be adjusted and set based on the number of candidate locations, the number of columns can be adjusted and set based on the number of unit time periods, and each element of the available time dynamic programming table can represent a state, i.e. the expected available time of the target object to perform the target action in the corresponding candidate location in the corresponding unit time period, since the state transition in the available time dynamic programming table involves the route and time of the target object moving from one candidate location to another candidate location, each element of the available time dynamic programming table also needs to judge and adjust the continuity in time and space of one state transition to another state based on the reachable information, to ensure that the maximum available time total recorded in the available time dynamic programming table can meet the continuity in time and space when one state transition to another state, and there is no time overlap or inaccessibility between the corresponding candidate locations in the adjacent two unit time periods. Therefore, by constructing the available time dynamic programming table, the maximum available time total of the target object to perform the target action in multiple unit time periods, i.e. the target total available time, can be quickly calculated, and the maximum available time of any specific time period and specific candidate location can also be quickly queried without the need for re-computation, improving the calculation efficiency.

[0121] In an embodiment, in the process of calculating the available time dynamic programming table according to all expected available times and all reachable information, all unit time periods can be traversed first, and in each unit time period, the available time dynamic programming element value corresponding to each candidate location can be calculated according to the expected available time corresponding to each candidate location and the reachable information between each two candidate locations; then, the available time dynamic programming table can be constructed according to all available time dynamic programming element values, wherein the available time dynamic programming element value can be represented as: the maximum available time length of the target object to perform the target action from the current candidate location as the starting location from the current unit time period to all subsequent unit time periods. The available time dynamic programming element value of the first one in the available time dynamic programming table is the maximum available time total. Therefore, after the available time dynamic programming table is constructed, the target total available time can be obtained through the available time dynamic programming element value of the first one in the available time dynamic programming table, so the accuracy of obtaining the target total available time can be improved.

[0122] In an embodiment, the selected unit time period, the candidate locations where the target action can be performed, and the reachability information between the candidate locations are determined by the request information. The predicted available time can represent the length of time that the target object is available for performing the target action at the corresponding candidate location in the corresponding unit time period, and the reachability information describes the reachability from the previous candidate location to the current candidate location, including the transfer time and whether it is reachable. For example, the reachability information can include the transfer time from the first candidate location to the second candidate location, and the reachability information can also include a Boolean value for indicating whether the first candidate location can reach the second candidate location within a certain time period, where the Boolean value with a value of 1 can indicate that the two candidate locations are reachable, and the Boolean value with a value of 0 can indicate that the two candidate locations are not reachable. For each unit time period, the available time dynamic programming element value corresponding to each candidate location needs to consider the process of transferring from the state of the previous unit time period to the state of the current time period. Without considering the transfer time between candidate locations, only whether the two candidate locations are reachable can be considered, i.e., the Boolean value for indicating whether the two candidate locations are reachable can be multiplied by the predicted available time of the unit time period at the candidate location to obtain the corresponding available time dynamic programming element value. If the two candidate locations are reachable, the available time dynamic programming element value of the unit time period at the candidate location is equal to the corresponding predicted available time. If the two candidate locations are not reachable, the available time dynamic programming element value of the unit time period at the candidate location is calculated to be zero. In the case of considering the transfer time between candidate locations, if the two candidate locations are reachable, the Boolean value for indicating whether the two candidate locations are reachable can be multiplied by the predicted available time of the unit time period at the candidate location to obtain a first product, and then the first product is subtracted by the transfer time between the two candidate locations to obtain the available time dynamic programming element value of the unit time period at the candidate location. If the two candidate locations are not reachable, the available time dynamic programming element value of the unit time period at the candidate location is calculated to be zero. Therefore, the rows of the available time dynamic programming table can represent the candidate locations, and the columns can represent the unit time periods. The number of rows and columns of the available time dynamic programming table can be adjusted based on the number of candidate locations and the number of unit time periods, to construct an initial dynamic programming table, and all available time dynamic programming element values are gradually filled into the initial dynamic programming table to obtain the available time dynamic programming table.

[0123] In an embodiment, in the process of filling all available time dynamic programming element values step by step to the initial dynamic programming table to generate the available time dynamic programming table, the available time dynamic programming element value with the largest value in the previous unit time period can be added to the predicted available time of each candidate location in the current unit time period respectively to obtain the available time dynamic programming element value of each candidate location in the current unit time period based on each unit time period. The available time dynamic programming element value with the largest value in the previous unit time period is specifically the maximum value of the corresponding available time dynamic programming element values of each candidate location which is reachable between the current candidate location in the previous unit time period. When calculating the available time dynamic programming element value of the first unit time period, the initial element value (such as the initial element value is zero) can be added to the predicted available time of each candidate location in the first unit time period respectively to obtain. When the available time dynamic programming element value of the last unit time period is calculated, the available time dynamic programming element value with the largest value in the last unit time period can be represented as the maximum available time sum, so the available time dynamic programming element value with the largest value in the last unit time period can be copied and filled to the first position in the available time dynamic programming table, and then when reading the element data in the available time dynamic programming table, the maximum available time sum can be read preferentially to highlight the maximum available time sum in the available time dynamic programming table, which helps to reduce the data reading amount.

[0124] In an embodiment, in the process of filling all available time dynamic programming element values step by step to the initial dynamic programming table to generate the available time dynamic programming table, based on each unit time period, the available time dynamic programming element value with the largest value in the next unit time period is added to the expected available time corresponding to each candidate location in the current unit time period respectively to obtain the available time dynamic programming element value corresponding to each candidate location in the current unit time period, wherein the available time dynamic programming element value with the largest value in the next unit time period is specifically the maximum value of the available time dynamic programming element values corresponding to each candidate location among the candidate locations reachable between the current candidate location in the next unit time period. When calculating the available time dynamic programming element value of the last unit time period, the initial element value (such as the initial element value is zero) can be added to the expected available time corresponding to each candidate location in the last unit time period respectively to obtain, which is equivalent to calculating the available time dynamic programming element values in each unit time period in reverse order of time. When the available time dynamic programming element value of the first unit time period is calculated, the available time dynamic programming element value with the largest value in the first unit time period can be represented as the maximum available time sum, so that the available time dynamic programming element value with the largest value in the first unit time period can be copied and filled to the first position in the available time dynamic programming table, and then when reading the element data in the available time dynamic programming table, the maximum available time sum can be read preferentially to highlight the maximum available time sum in the available time dynamic programming table, which helps to reduce the amount of data reading.

[0125] In an embodiment, the predicted available time of the target object performing the target action at the candidate location in a unit time period is not affected by the predicted available time in the previous unit time period, but needs to consider the reachable information between the candidate locations, thus, the available time dynamic programming table dp can be constructed based on two-dimensional dynamic programming, wherein the available time dynamic programming table dp fills elements in reverse order (in order of weeks), thus the element dp[i][k] in the available time dynamic programming table represents the maximum number of days (available time dynamic programming element value) that the i th city can take a vacation starting from the k th week, and the element days[i][j] in the predicted available time array days represents the number of days (predicted available time) that the i th city can take a vacation in the j th week; the element flights[i][j] in the reachable information array flights represents the connectivity of city i to city j. Specifically, when filling the element dp[i][k] in the available time dynamic programming table, when staying in the same city (denoted as the z th city) from the k th week to the (k+1) th week, the factors that need to be considered when updating the element dp[i][k] are the maximum vacation days starting from the (k+1) th week in the z th city, and the number of days that can take a vacation in the k th week in the z th city, i.e. days[z][k]+dp[z,k+1]. In addition, when filling the element dp[i][k] in the available time dynamic programming table, it is necessary to confirm the maximum vacation days from the z th city starting from the k th week, and moving to the j th city in the (k+1) th week, at this time, it is also necessary to confirm that the z th city is reachable to the j th city, i.e. flights[z][j] is 1. When transferring from the z th city to other cities in the k th week, any city connected to the z th city (i.e. satisfying flights[z][j]=1) can be selected. In order to maximize the vacation days that can be obtained from the z th city starting from the k th week, the city that can bring the most vacation days needs to be selected. Therefore, the factors to be considered here are: max(days[j][k]+dp[j,k+1]), wherein flights[z][j]=1 needs to be satisfied, and 0≤z,j≤n, n can represent the number of difference cities. Therefore, the maximum value can be selected from the two factors to update dp[i][k]. In order to fill the available time dynamic programming table dp, it is necessary to start from filling the last week and proceed in reverse, thus the value of the first element dp[0][0] in the available time dynamic programming table is the maximum vacation days result required.

[0126] In an embodiment, in the process of calculating the available time dynamic programming element value corresponding to each candidate location according to the expected available time corresponding to each candidate location and the reachability information between each two candidate locations, all candidate locations can be traversed as starting locations first, for each starting location, a plurality of candidate dynamic programming element values corresponding to the starting location can be calculated according to the position relationship and the reachability information between the starting location and each candidate location and the expected available time corresponding to each candidate location, wherein the candidate dynamic programming element value corresponds to the candidate location in a one-to-one manner; then, a target dynamic programming element value corresponding to each starting location can be determined according to the plurality of candidate dynamic programming element values corresponding to each starting location; and then, the available time dynamic programming element value corresponding to each candidate location can be obtained according to the target dynamic programming element value corresponding to each starting location.

[0127] In an embodiment, for each starting location, the largest one in the plurality of candidate dynamic programming element values corresponding to the current starting location can be determined as the target dynamic programming element value corresponding to the current starting location.

[0128] In an embodiment, the position relationship can represent whether the current candidate location is a starting location, that is, whether the starting location and the current candidate location are the same location. Based on the calculation requirement of the target total available time, the position relationship between the starting location and each candidate location can be taken as a restriction condition, for example, in the calculation requirement of the target total available time, the target object is not allowed to perform the target action in the same candidate location in a plurality of consecutive unit time periods, therefore, when the starting location and the current candidate location are the same location, the calculation of the candidate dynamic programming element value of the same candidate location in two adjacent unit time periods can be ignored, which is equivalent to, for each starting location, a plurality of candidate dynamic programming element values corresponding to the starting location can be calculated according to the reachability information between the starting location and each candidate location except the starting location and the expected available time corresponding to each candidate location, specifically, the expected available time corresponding to the current candidate location and the cumulative element value corresponding to each candidate location except the starting location in the available time dynamic programming table can be added respectively to obtain the plurality of candidate dynamic programming element values corresponding to the starting location. The cumulative element value represents the maximum total available time displayed in the available time dynamic programming table based on the traversal order of the unit time period, up to the current unit time period.

[0129] In an embodiment, refer to Figure 8 , Figure 8 is a schematic diagram of the target dynamic programming element value calculation process provided in the embodiments of the present application. As Figure 8As shown, the candidate locations can include location A, location B and location C, based on the calculation requirement of the target total available time, the target object is allowed to perform the target action in the same candidate location in a plurality of consecutive unit time periods, therefore, for each starting location, according to the reachability information between the starting location and each candidate location, the expected available time corresponding to the starting location and the cumulative element value corresponding to the candidate location in the available time dynamic programming table, a plurality of candidate dynamic programming element values corresponding to the starting location are calculated, specifically, taking location A as the starting location, wherein location A is reachable with location B and location A is reachable with location C, therefore, the expected available time Tm of the starting point, i.e. location A, in the current unit time period, can be added to the cumulative element value Ta corresponding to location A in the available time dynamic programming table to obtain the first dynamic programming element value Ta'; at the same time, the expected available time Tm of the starting point, i.e. location A, in the current unit time period, can also be added to the cumulative element value Tb corresponding to location B in the available time dynamic programming table to obtain the second dynamic programming element value Tb'; in addition, the expected available time Tm of the starting point, i.e. location A, in the current unit time period, can also be added to the cumulative element value Tc corresponding to location C in the available time dynamic programming table to obtain the third dynamic programming element value Tc', so that three candidate dynamic programming element values corresponding to the starting location can be obtained, then, by comparing the sizes of the three candidate dynamic programming element values, the candidate dynamic programming element value with the largest value can be selected as the target dynamic programming element value corresponding to the starting location in the current time period, and the cumulative element value corresponding to the candidate location in the available time dynamic programming table can be updated according to the target dynamic programming element value.

[0130] In an embodiment, since each starting location is obtained by traversing each candidate location, after obtaining the target dynamic programming element value corresponding to each starting location, the target dynamic programming element value can be subjected to numerical conversion or correction (such as taking absolute value, unit conversion, proportional adjustment, etc.), to obtain the available time dynamic programming element value corresponding to each candidate location.

[0131] In an embodiment, in the process of calculating a plurality of candidate dynamic programming element values corresponding to the starting location according to the positional relationship and reachability information between the starting location and each candidate location, the reachability between the starting location and each candidate location can be determined according to the positional relationship and reachability information between the starting location and each candidate location; then, a plurality of candidate dynamic programming element values corresponding to the starting location are calculated according to the reachability and the expected available time corresponding to each candidate location.

[0132] In an embodiment, the reachability between the starting location and each candidate location is represented as whether the target object can reach the specified candidate location from the starting location and perform the target action within a given unit time period. When the reachability between the starting location and the candidate location is reachable, it means that the target object can reach the specified candidate location from the starting location and perform the target action within a specific unit time period. When the reachability between the starting location and the candidate location is unreachable, it means that the target object cannot reach the specified candidate location from the starting location and perform the target action within a specific unit time period. Therefore, the calculation step between the starting location and the candidate location with unreachable reachability can be ignored.

[0133] In an embodiment, for each candidate location, if the positional relationship between the current candidate location and the starting location is the same location, or the reachability information between the current candidate location and the starting location is the first preset value, it is determined that the reachability between the starting location and the current candidate location is reachable.

[0134] In an embodiment, for each candidate location, if the positional relationship between the current candidate location and the starting location is different locations, and the reachability information between the current candidate location and the starting location is the second preset value, it is determined that the reachability between the starting location and the current candidate location is unreachable.

[0135] In an embodiment, the first preset value and the second preset value represented by the reachability information between the current candidate location and the starting location can be a Boolean value used to represent whether the target object can reach the second candidate location from the first candidate location within a specific time period. When the Boolean value is displayed as 1, it means that the reachability between the two candidate locations is reachable. When the Boolean value is displayed as 0, it means that the reachability between the two candidate locations is unreachable. The first preset value can be understood as the value "1" in the Boolean value, and the second preset value can be understood as the value "0" in the Boolean value. It should be noted that when the calculation requirement of the total available time of the target object allows the target object to perform the target action in the same candidate location within a plurality of unit time periods, if the positional relationship between the current candidate location and the starting location is the same location, even if the reachability information between the starting location and the current candidate location is the second preset value (i.e., the value "0" in the Boolean value), the reachability between the starting location and the current candidate location is still reachable.

[0136] In an embodiment, the connection state between the current candidate location and the starting location, the travel distance between the current candidate location and the starting location, the travel time, the travel cost and the like location transfer information in a specific unit time period can be obtained based on the request information, and when the location transfer information corresponding to the specific unit time period meets a preset reachable condition, it can be determined that the reachable information between the current candidate location and the starting location in the specific unit time period is a first preset value; otherwise, it can be determined that the reachable information between the current candidate location and the starting location in the specific unit time period is a second preset value. Specifically, the preset reachable condition can be at least one of the following: the starting location has a public transportation tool that can transfer the target object from the starting location to the current candidate location in the specific unit time period, or the travel distance between the starting location and the current candidate location is less than a preset reachable distance, or the travel time between the starting location and the current candidate location is less than a preset reachable time, or the travel cost between the starting location and the current candidate location is less than a preset reachable cost.

[0137] In an embodiment, in the process of calculating the plurality of candidate dynamic programming element values corresponding to the starting location according to the reachability and the predicted available time corresponding to each candidate location, for each candidate location, when the reachability is reachable, the candidate element value corresponding to the current candidate location is calculated according to the predicted available time of the current candidate location in the current unit time period and the initial element value corresponding to the current candidate location in the available time dynamic programming table; and then the plurality of candidate dynamic programming element values corresponding to the starting location are obtained according to the candidate element values corresponding to the plurality of candidate locations. Specifically, the predicted available time of the current candidate location in the current unit time period and the initial element value corresponding to the current candidate location in the available time dynamic programming table can be added to obtain the candidate element value corresponding to the current candidate location, wherein the initial element value can represent the correction compensation time of the target object performing the target action in the candidate location, for example, the target object can immediately perform the target action without queuing and waiting in the candidate location, and the initial element value can be set based on each candidate location, or the initial element value can be set to zero. The plurality of candidate dynamic programming element values corresponding to the starting location can be obtained by adding the candidate element values corresponding to the plurality of candidate locations to the cumulative element value corresponding to the current unit time period in the available time dynamic programming table.

[0138] In an embodiment, in the process of calculating the plurality of candidate dynamic programming element values corresponding to the starting location according to the reachability and the predicted available time corresponding to each candidate location, for each candidate location, when the reachability is unreachable, the calculation of the candidate element value corresponding to the current candidate location can be ignored, and the candidate element values corresponding to the candidate locations with reachable reachability are calculated.

[0139] In an embodiment, in the process of obtaining the reachability information between each two candidate locations according to the request information, the following steps can be included:

[0140] determining a plurality of reachability information request tasks according to the request information, the reachability information request tasks being used for obtaining reachability information;

[0141] concurrently executing the plurality of reachability information request tasks by using a coroutine pool to obtain the reachability information between each two candidate locations.

[0142] In an embodiment, the candidate location pair for which the reachability information needs to be obtained, i.e., the start location-destination location, is analyzed through the request information, and any one candidate location is selected from a plurality of executable target action candidate locations as the start location, and any one candidate location is selected as the destination location. A reachability information request task is generated for each candidate location pair, and the reachability information request task is used to instruct the server to query and obtain the reachability information between the two candidate locations in the candidate location pair, for example, by calling a map service resource, querying a traffic database, or using other related data sources to obtain the reachability information.

[0143] In an embodiment, the coroutine pool is a mechanism that can concurrently execute a plurality of coroutines, and after the coroutine pool is created, the coroutine pool is used to schedule and execute the reachability information request task corresponding to each candidate location pair. Each reachability information request task can asynchronously initiate a query for reachability information, and through the concurrent execution of the coroutine pool, the efficiency of obtaining reachability information can be greatly improved, especially in the case of a large number of candidate locations. When each reachability information request task completes execution, the coroutine pool can return the corresponding reachability information, so that the reachability information between each two candidate locations can be obtained in time for subsequent calculation of the total available time of the target. When all reachability information request tasks are executed and the reachability information of all candidate location pairs is obtained, the coroutine pool can be closed to release resources.

[0144] In an embodiment, the process of concurrently executing a plurality of reachability information request tasks by using a coroutine pool can include the following steps:

[0145] locking the plurality of reachability information request tasks respectively;

[0146] adding the locked plurality of reachability information request tasks to the coroutine pool for concurrent execution, and unlocking the locked plurality of reachability information request tasks after completion of execution.

[0147] In an embodiment, since the server can be a distributed system, when multiple reachable information request tasks are executed concurrently by using the coroutine pool, it is necessary to ensure that the access sequences of multiple nodes to shared resources do not conflict, so as to avoid repeated execution of the reachable information request tasks. A distributed lock service function can be integrated in the server, and before initiating the reachable information request, the distributed lock service function is requested to obtain a distributed lock. Different types of distributed locks can be obtained based on the reachable information request task or the data source, such as a data reading lock, an access sequence lock, etc. If the reachable information request task is successfully locked, after detecting that the reachable information request task obtains the distributed lock, the locked reachable information request task can be added to the coroutine pool for execution; if the reachable information request task fails to be locked, it needs to be retried or abandoned. It should be noted that after the locked reachable information request task is executed concurrently by using the coroutine pool, the locked reachable information request task can be unlocked, so that other processes can obtain the distributed lock and execute the corresponding reachable information request task.

[0148] In an embodiment, referring to Figure 9 , Figure 9 A flowchart of total available time of a push target provided by an embodiment of the present application is provided. Taking the case that a company employee requests to obtain the maximum number of leave days through a leave application program as an example, the user can access the front-end part of the web application provided by the server through a browser, and initiates a request information to the node service Node through the web end, requests to enter the business trip leave and reimbursement application function, and obtains the maximum number of leave days of the user, wherein the request information can contain the user's identity information, the function type (business trip leave or reimbursement) of the request, etc.

[0149] After the node service Node receives the request information, the parameters carried in the request information can be verified to confirm the legality of the request source and avoid unauthorized user calls. Specifically, the node service Node can verify the legality of the user identity information, confirm whether the user account logged into the web application is a member authorized to take leave in the company by querying the database, and avoid external unauthorized user calls; at the same time, the function type parameter of the request can be verified to confirm whether the function type of the request is business trip leave or reimbursement application, and if it is other type, an error is returned to the web end; in addition, it can be verified whether the request information contains the applicant, the application date, etc. that is, whether the request information contains the necessary parameters such as the target object and the selected unit time period. Therefore, by verifying the request information by the node service Node, illegal or malicious request calls to the backend service can be avoided, and when the request information verification is passed, the parameters carried in the request information can be packaged to form a Req request package complying with the format specified by the front-end and back-end protocols, and the CGI interface of the server Svr is called to initiate a request to call the business trip leave and reimbursement application function.

[0150] After receiving the calling request from the node service Node, the server Svr can further check the correctness and integrity of the parameters to ensure that the parameters in the request are correct, and can also judge the authority of the user initiating the request. Since business trip and leave application are related to the use of company funds, the server Svr can query the user's authority data to confirm whether the user has the authority to apply for business trip or leave. If the user does not have the corresponding authority, an error of no authority can be returned, and the error can be displayed on the web page. After the parameter checking and authority checking are passed, the server Svr end transmits the request parameters that have passed the security check to the business logic layer Logic for processing.

[0151] The business logic layer Logic can call the background processing WorkSvr to request to obtain the work arrangement information of the user, including the work city (i.e. the candidate location), the work period (i.e. the time range to be investigated), and the necessary work time (i.e. the time that affects the execution of the target action in a unit time period). The background processing WorkSvr can query the work city, work period and scheduling time information of the user from the database DataBase, and perform necessary security checks. During the query process, the state of the user needs to be judged to confirm that the user is in the employed state, so as to avoid querying the information of the user who has left the job and reduce the data processing amount. After obtaining the work information of the user, it is also necessary to check the rationality of the work city and the work period (for example, the work period of business post employees and non-business post employees is different), so as to avoid that the user obtains the abnormal maximum leave days by illegally modifying these parameters. After the obtained work arrangement information passes the security check, the work arrangement information can be returned to the business logic layer Logic.

[0152] After obtaining the work arrangement information of the user, the business logic layer Logic can call shared resources such as the flight query interface provided by the aviation company to obtain the flight information between the corresponding business trip cities. Since the amount of data required to be called and obtained is large, the server performance is limited and the query processing efficiency is inhibited, therefore the coroutine pool can be used for optimization, all possible business trip cities (all candidate locations) are constructed into candidate location pairs, and corresponding flight information request tasks (i.e. reachable information request tasks) are generated and added to the coroutine pool for concurrent execution. Before each flight information request task is added to the coroutine pool, the Chubby server can be used to lock each flight information request task to avoid repeated calling of multiple coroutines or different servers, and after the flight information request task is executed by the coroutine pool, the task is unlocked for use by other coroutines. Through the coroutine pool, the concurrent calling capability of the flight query interface can be effectively improved, and the processing efficiency of the target total available time can be improved.

[0153] After obtaining the required ticket information, the business logic layer Logic can perform data filtering on the ticket information, for example, only retaining ticket information from the working city to other cities, and excluding ticket information with abnormal prices (ticket data with a price of 0 or exceeding a preset amount), or excluding ticket information with a travel duration greater than a preset duration. Among them, if the ticket information contains a lower price (such as a round-trip ticket price), the ticket price can be used as the standard ticket price between the working city and the business city, thereby helping to obtain high-quality and more representative data sources to provide reliable data input for subsequent reimbursement applications. The filtered ticket information is packaged and transmitted to the algorithm service AlgorithmSvr end to request the calculation of the maximum vacation days for business trips. The data transmitted to the algorithm service AlgorithmSvr end also includes the user's work schedule information, i.e., the user's working city (starting location), business city (candidate location), user's business trip work period (i.e., corresponding unit time period), and user's estimated work time schedule in each city and each week (i.e., the duration in each unit time period in each candidate location where the target action cannot be performed). Through the user's estimated work time schedule in each city and each week, the estimated vacation days in each city and each week can be calculated, i.e., the estimated available time of the target object in each unit time period in each candidate location where the target action can be performed.

[0154] After obtaining the required request data, the algorithm service AlgorithmSvr end can determine that the user needs to travel between multiple cities, perform data modeling based on the request data, call the execution algorithm, calculate the maximum vacation days for the user in the current business trip work period based on all estimated vacation days and all filtered ticket information, and return to the business logic layer Logic. The business logic layer Logic can perform business verification on the returned maximum vacation days to determine whether the maximum vacation days meet the vacation day limit conditions (such as whether they meet the statutory annual vacation day limit or the user's remaining vacation quota limit), avoid generating unreasonable vacation day results, and return the maximum vacation day results that pass the business verification to the web end to push the maximum vacation days in the current business trip work period to the user in the terminal through the web end. The user can apply for vacation based on the pushed maximum vacation days, or adjust and modify the maximum vacation days and then apply for vacation based on the pushed maximum vacation days. The user's modification of the maximum vacation days also needs to meet the vacation day limit conditions, so that the user can quickly obtain the maximum vacation days that meet the vacation day limit conditions in the current business trip period.

[0155] After obtaining the data of work arrangement information, ticket price, i.e. the estimated available time and reachable information, through parameter verification, permission verification, coroutine concurrency, algorithm modeling and other data processing, the maximum number of vacation days that meets the vacation day condition is obtained, so that when the user applies for business trip vacation, intelligent vacation day suggestions can be quickly provided, which is convenient for user operation and management and reduces the unreasonable business trip vacation days applied by the user himself. At the same time, in the algorithm modeling, the data processing efficiency is optimized, and the processing performance and stability of the server are improved.

[0156] In an embodiment, referring to Figure 10 , Figure 10 A flowchart for calculating the target total available time is provided for the embodiments of the present application. Taking the maximum number of business trip vacation days in the current business trip period as an example, i.e. the maximum number of business trip vacation days in the current business trip period is the target total available time, the unit time period is the number of weeks in the current business trip period, and the candidate location is the city that needs to be on business trip. The reachable information is the flight information between cities. Therefore, the process of calculating the target total available time can include the following steps:

[0157] Step 1001, obtaining travel information.

[0158] In this step, obtaining travel information includes the number of weeks in the current business trip period (i.e. the number of unit time periods), the number of cities that need to be on business trip, the flight information between cities, and the estimated number of vacation days in each city in each week.

[0159] Step 1002, establishing and initializing the available time dynamic programming table.

[0160] In this step, the rows of the available time dynamic programming table can represent the number of cities of the business trip city, the columns can represent the number of weeks, the number of rows can be adjusted and set based on the number of candidate locations, and the number of columns can be adjusted and set based on the number of unit time periods, wherein the number of columns is the number of unit time periods plus one; and each element of the available time dynamic programming table can represent a state, i.e. the estimated available time of the target object in the corresponding unit time period in the corresponding candidate location, and the initial value of each element is zero.

[0161] Step 1003: Determine whether the week cycle value is greater than or equal to zero? If yes, set the starting city cycle value to zero and execute step 1004, otherwise execute step 1011.

[0162] In this step, the week cycle value is obtained by subtracting one from the number of weeks, i.e. the number of unit time periods. When the week cycle value is 0, it can be understood as the first week of the current business trip period. By decreasing the week cycle value, all weeks can be traversed to accurately calculate the target total available time.

[0163] Step 1004: Determine whether the start city cycle value is less than the city number? If yes, set the destination city cycle value to zero and execute step 1005, otherwise execute step 1010.

[0164] In this step, the start city cycle value is pre-set to zero, and the start city cycle value is decremented to ensure that all business trip cities are traversed, and the target total available time is calculated comprehensively and accurately.

[0165] Step 1005: Determine whether the destination city cycle value is less than the city number? If yes, execute step 1006, otherwise execute step 1009.

[0166] In this step, the destination city cycle value is pre-set to zero, and the destination city cycle value is decremented to ensure that all business trip cities are traversed, and the target total available time is calculated comprehensively and accurately.

[0167] Step 1006: Determine whether the destination city cycle value is equal to the start city cycle value, or whether there is a flight between the start city and the destination city? If yes, execute step 1007, otherwise execute step 1008.

[0168] In this step, if the destination city cycle value is equal to the start city cycle value, it means that the destination city is the current city where the employee is located, and there is no need to consider the candidate location transfer, so there is no need to consider the flight information. If the destination city cycle value is not equal to the start city cycle value, it means that the candidate location transfer is needed, and if there is a flight between the start city and the destination city, it means that the candidate location transfer can be performed, and the subsequent calculation of the available time dynamic planning element is performed, otherwise the calculation of the available time dynamic planning element in the subsequent steps is skipped.

[0169] Step 1007: Calculate the predicted available time of the destination city in the current week, and add each available time dynamic planning element in the next week to obtain a plurality of candidate time dynamic planning elements, and take the largest one as the available time dynamic planning element of the start city in the current week.

[0170] In this step, the available time dynamic planning element of the start city in the current week is filled into the pre-constructed available time dynamic planning table.

[0171] Step 1008: The destination city cycle value is incremented by 1, and the step 1006 is returned.

[0172] Step 1009: The start city cycle value is incremented by 1, and the step 1004 is returned.

[0173] Step 1010: The week cycle value is decremented by 1, and the step 1003 is returned.

[0174] Step 1011: End the calculation, and return the maximum value in the available time dynamic programming table as the target total available time.

[0175] In this step, since the elements in the available time dynamic programming table are filled in a reverse order (in the order of weeks), the first element value in the available time dynamic programming table is the maximum value obtained after accumulation in the available time dynamic programming table.

[0176] Step 1012: Push the target total available time to the target object.

[0177] Based on the above flow steps, refer to Figure 11 , Figure 11 The process diagram for calculating the target total available time based on dynamic programming provided by the embodiments of the present application. Take the schedule and flight conditions of employee A shown in Figure 4 as an example, calculate the maximum number of vacation days of employee A in this business trip period based on dynamic programming. Correspondingly, the schedule and flight conditions of employee A can be represented by an array: days = [[1, 3, 1], [6, 0, 3], [3, 3, 3]]; flights = [[0, 1, 1], [1, 0, 1], [1, 1, 0]]. First, construct the initial available time dynamic programming table, the number of rows of the available time dynamic programming table represents the total number of cities, that is, 3; the number of columns represents the number of weeks plus one, that is, 4, wherein the initial element values of the available time dynamic programming table are all zero.

[0178] When starting the traversal, the week cycle value week is defined as 2, that is, the number of weeks minus one; the starting city cycle value cur_city and the destination city cycle value dest_city are both defined as 0. The available time dynamic programming element value of the starting city in a specific week in the available time dynamic programming table is the maximum value in the multiple candidate time dynamic programming elements obtained by adding the predicted available time of the destination city in the current week to each available time dynamic programming element of the destination city in the next week, that is, dp[cur_city][week] = max(days[dest_city][week] + dp[dest_city][week+1]).

[0179] Based on the flow steps in Figure 10 , first start the first stage traversal, traverse the destination city, and the destination city cycle value dest_city increases from 0 to 2. At this time, the week cycle value week of the first stage traversal is 2, and the starting city cycle value cur_city is 0, which is equivalent to traversing the destination city with the starting city as city 0 in the third week. Therefore, the following calculation process can be obtained during the traversal of the destination city:

[0180] 1) dest_city = 0, at this time, dest_city and cur_city are both 0, no flight is needed, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[0][2] + dp[0][3] = 1 + 0 = 1.

[0181] 2) dest_city = 1, at this time, there is a flight between city 1 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[1][2] + dp[1][3] = 3 + 0 = 3.

[0182] 3) dest_city = 2, at this time, there is a flight between city 2 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[2][2] + dp[2][3] = 3 + 0 = 3.

[0183] Since the current week number is the last week of the current business trip period, the available time dynamic programming element in the next week number is the initial element value of the available time dynamic programming table, which is 0.

[0184] Therefore, by comparing the above candidate time dynamic programming elements, the maximum value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((1 + 0), (3 + 0), (3 + 0)) = 3, that is, dp[0][2] = 3, in other words, the maximum number of vacation days that can be obtained in city 0 from the third week is 3 days.

[0185] Next, after completing the traversal of the destination city in the third week with the starting city as city 0, the starting city loop value is incremented by 1, and the traversal of the destination city in the third week with the starting city as city 1 is started, accordingly, the destination city loop value dest_city is increased from 0 to 2, therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in Figure 12 . Figure 12 is a schematic diagram of the first stage traversal process provided by an embodiment of the present application. In combination with Figure 12 , the following calculation process can be obtained:

[0186] 4) dest_city = 0, at this time, there is a flight between city 1 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[0][2] + dp[0][3] = 1 + 0 = 1.

[0187] 5) dest_city = 1, at this time, both dest_city and cur_city are 1, no flight is needed, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[1][2] + dp[1][3] = 3 + 0 = 3.

[0188] 6) dest_city = 2, at this time, there is a flight between city 1 and city 2, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[2][2] + dp[2][3] = 3 + 0 = 3.

[0189] Since the current week is the last week of the current business trip period, the available time dynamic programming element of the current week in the next week is the initial element value of the available time dynamic programming table, which is 0.

[0190] Therefore, by comparing the above candidate time dynamic programming elements, the largest value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((1 + 0), (3 + 0), (3 + 0)) = 3, that is, dp[1][2] = 3, in other words, the maximum number of vacation days that can be obtained in city 1 from the third week is 3 days.

[0191] Then, after completing the traversal of the destination city in the third week with city 1 as the starting city, the starting city loop value is incremented by 1, and the traversal of the destination city in the third week with city 2 as the starting city is started, accordingly, the destination city loop value dest_city is increased from 0 to 2, therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in Figure 13 . Figure 13 The schematic diagram of the first stage traversal process provided by another embodiment of the present application can obtain the following calculation process:

[0192] 7) dest_city = 0, at this time, there is a flight between city 2 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[0][2] + dp[0][3] = 1 + 0 = 1.

[0193] 8) dest_city = 1, at this time, there is a flight between city 1 and city 2, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[1][2] + dp[1][3] = 3 + 0 = 3.

[0194] 9) dest_city = 2, at this moment, both dest_city and cur_city are 1, no flight is needed, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[2][2] + dp[2][3] = 3 + 0 = 3.

[0195] Since the current week number is the last week of the current business trip period, the available time dynamic programming element of the current week number in the next week number is the initial element value of the available time dynamic programming table, that is, 0.

[0196] Therefore, by comparing the above candidate time dynamic programming elements, the maximum value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((1 + 0), (3 + 0), (3 + 0)) = 3, that is, dp[2][2] = 3, in other words, the maximum number of vacation days that can be obtained in city 2 from the third week is 3 days. As shown in FIG. 6, at this moment, the traversal of the starting city and the destination city in the third week is completed, and the maximum number of vacation days that can be obtained in each starting city from the third week is obtained. Figure 13

[0197] After completing the traversal of the starting city and the destination city in the third week, that is, obtaining the available time dynamic programming element of the third week in each starting city, at this moment, since the starting city loop value cur_city is 3, which does not satisfy the condition that the starting city loop value is less than the total number of cities, the week loop value is decremented by 1, and the starting city loop value is set to 0, and the second-stage traversal is performed, that is, the traversal of the destination city is started in the second week with the starting city being city 0, and accordingly, the destination city loop value dest_city is increased from 0 to 2, therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in FIG. 7. Figure 14 Figure 14 The second-stage traversal process provided by the embodiment of the present application is shown in FIG. 8, and the calculation process can be as follows:

[0198] 10) dest_city = 0, at this moment, both dest_city and cur_city are 0, no flight is needed, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[0][1] + dp[0][2] = 3 + 3 = 6.

[0199] 11) dest_city = 1, at this moment, there is a flight between city 1 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[1][1] + dp[1][2] = 0 + 3 = 3.

[0200] ​​12) dest_city = 2, at this time, there is a flight between city 2 and city 0, therefore, the candidate time dynamic programming element dp'[cur_city][week] = days[2][1] + dp[2][2] = 1 + 3 = 4.

[0201] Therefore, by comparing the above candidate time dynamic programming elements, the largest numerical value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((3 + 3), (0 + 3), (1 + 3)) = 6, that is, dp[0][1] = 6, in other words, the maximum number of vacation days that can be obtained in city 0 from the second week is 6 days.

[0202] Next, after completing the traversal of the destination city in the second week with the starting city being city 0, the starting city loop value is incremented by 1, and the traversal of the destination city in the second week with the starting city being city 1 is started, and accordingly, the destination city loop value dest_city is increased from 0 to 2, therefore, the calculation in the traversal of the destination city can be as shown in Figure 15 Figure 15 is a schematic diagram of the second stage traversal process provided by another embodiment of the present application. According to the above corresponding calculation process, a plurality of candidate time dynamic programming elements can be obtained, and by comparing the plurality of candidate time dynamic programming elements, the largest numerical value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((0 + 3), (3 + 3), (3 + 3)) = 6, that is, dp[1][1] = 6, in other words, the maximum number of vacation days that can be obtained in city 1 from the second week is 6 days.

[0203] Then, after completing the traversal of the destination city in the second week with the starting city being city 1, the starting city loop value is incremented by 1, and the traversal of the destination city in the second week with the starting city being city 2 is started, and accordingly, the destination city loop value dest_city is increased from 0 to 2, therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in Figure 16 Figure 16 is a schematic diagram of the second stage traversal process provided by another embodiment of the present application. According to the above calculation process, a plurality of candidate time dynamic programming elements can be obtained, and by comparing the plurality of candidate time dynamic programming elements, the largest numerical value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((3 + 3), (0 + 3), (3 + 3)) = 6, that is, dp[2][1] = 6, in other words, the maximum number of vacation days that can be obtained in city 2 from the second week is 6 days. As Figure 16 ​​As shown, at this time, the traversal of the starting city and the destination city in the second week is completed, and the maximum number of vacation days that can be obtained in each starting city from the second week is obtained.

[0204] After the traversal of the starting city and the destination city in the second week is completed, that is, the available time dynamic programming element in the second week in each starting city is obtained, at this time, since the starting city cycle value cur_city is 3, the condition that the starting city cycle value is less than the total number of cities is not met, the week cycle value is decremented by 1, and the starting city cycle value is set to 0, and the traversal in the third stage is performed, that is, the traversal of the destination city in the first week with the starting city as city 0 is started, and accordingly, the destination city cycle value dest_city is increased from 0 to 2. Therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in the following table. Figure 17 Figure 17 The third stage traversal process provided by the embodiment of the present application is shown in the following table. According to the above corresponding calculation process, a plurality of candidate time dynamic programming elements can be obtained, and by comparing the plurality of candidate time dynamic programming elements, the largest value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((1+6), (6+6), (3+6)) = 12, that is, dp[0][0] = 12. In other words, the maximum number of vacation days that can be obtained in city 0 from the first week is 12 days.

[0205] Then, after the traversal of the destination city in the first week with the starting city as city 0 is completed, the starting city cycle value is incremented by 1, and the traversal of the destination city in the first week with the starting city as city 1 is started, and accordingly, the destination city cycle value dest_city is increased from 0 to 2. Therefore, based on the above calculation process, the calculation in the traversal of the destination city can be as shown in the following table. Figure 18 Figure 18 The third stage traversal process provided by another embodiment of the present application is shown in the following table. According to the above corresponding calculation process, a plurality of candidate time dynamic programming elements can be obtained, and by comparing the plurality of candidate time dynamic programming elements, the largest value is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((6+6), (1+6), (3+6)) = 12, that is, dp[1][0] = 12. In other words, the maximum number of vacation days that can be obtained in city 1 from the first week is 12 days.

[0206] ​​Then, after the traversal of the destination cities from the starting city of City 1 in the first week is completed, the starting city cycle value is incremented by 1, and the traversal of the destination cities from the starting city of City 2 in the first week is started, and the destination city cycle value dest_city is correspondingly increased from 0 to 2. Thus, based on the above calculation process, the calculation in the traversal of the destination cities can be as shown in Figure 19 Figure 19 The third phase traversal process provided by another embodiment of the present application is shown in the schematic diagram. According to the above calculation process, a plurality of candidate time dynamic programming elements can be obtained, and the largest value among the plurality of candidate time dynamic programming elements is selected as the available time dynamic programming element value, which is equivalent to dp[cur_city][week] = max((3+6), (1+6), (6+6)) = 12, i.e., dp[2][0] = 12. In other words, the maximum vacation days that can be obtained in City 2 from the first week is 12 days. As shown in Figure 19

[0207] Referring to Figure 20 Figure 20 The detailed flowchart of the available time pushing method provided by the specific example is shown in Figure 20 The available time pushing method can be executed by the server, can be executed by the user terminal, or can be executed by the user terminal and the server together. In the specific example, the method is executed by the server as an example for illustration. In

[0208] Step 2001: receiving request information for requesting to push the target available total time.

[0209] In this step, the target available total time is the total available time of the target object for performing the target action in a plurality of unit time periods.

[0210] Step 2002: according to the request information, obtaining the estimated available time of the target object for performing the target action in each candidate location in each unit time period, and the reachable information between each two candidate locations.

[0211] Step 2003: traversing all unit time periods, and in each unit time period, traversing all candidate locations as starting locations. For each starting location, according to the positional relationship and the reachable information between the starting location and each candidate location, determining the reachability between the starting location and each candidate location.

[0212] ​​​In this step, for each candidate location, if the location relationship between the current candidate location and the starting location is the same location, or the reachability information between the current candidate location and the starting location is the first preset value, it is determined that the reachability between the starting location and the current candidate location is reachable; if the location relationship between the current candidate location and the starting location is different locations, and the reachability information between the current candidate location and the starting location is the second preset value, it is determined that the reachability between the starting location and the current candidate location is unreachable.

[0213] Step 2004: According to the reachability and the predicted available time corresponding to each candidate location, a plurality of candidate dynamic programming element values corresponding to the starting location are calculated.

[0214] Step 2005: For each starting location, in the plurality of candidate dynamic programming element values corresponding to the current starting location, the largest one is determined as the target dynamic programming element value corresponding to the current starting location.

[0215] Step 2006: According to the target dynamic programming element value corresponding to each starting location, an available time dynamic programming element value corresponding to each candidate location is obtained.

[0216] Step 2007: According to all available time dynamic programming element values, an available time dynamic programming table is constructed.

[0217] In this step, the available time dynamic programming element value of the first available time dynamic programming table is the maximum available time total.

[0218] Step 2008: The maximum available time total in the available time dynamic programming table is determined as the target total available time.

[0219] Step 2009: The target total available time is pushed to the target object.

[0220] In this embodiment, by using the available time pushing method of steps 2001 to 2009, the request information for requesting to push the target total available time is received first, then the expected available time of the target object for performing the target action at each candidate location in each unit time period and the reachable information between each two candidate locations are obtained according to the request information; the target total available time is calculated according to all the expected available time and all the reachable information, that is, the technical solution provided in this embodiment can more accurately and comprehensively calculate the total available time of the target object for performing the target action in multiple unit time periods by comprehensively considering the space-time relationship between time and location for time dynamic planning, effectively improves the processing efficiency of time planning and the rationality of time planning, so as to push a more accurate and optimized time planning scheme for the target object, which helps to improve the satisfaction of the target object to the time planning.

[0221] The application scenarios of the embodiments of the present application are described below with some practical examples.

[0222] It should be noted that the available time pushing method provided in the embodiments of the present application can be applied to different application scenarios such as execution of a data processing task of requesting an employee to obtain the maximum number of business trip leave days, execution of a data processing task of requesting a reader to obtain the maximum reading time in the library, and execution of a data processing task of requesting an administrator to obtain the maximum vehicle rental time. The following describes the execution of the data processing task of requesting an employee to obtain the maximum number of business trip leave days, the execution of the data processing task of requesting a reader to obtain the maximum reading time in the library, and the execution of the data processing task of requesting an administrator to obtain the maximum vehicle rental time.

[0223] Scenario one

[0224] The available time pushing method provided in the embodiments of the present application can be applied to the execution scenario of the data processing task of requesting an employee to obtain the maximum number of business trip leave days. For example, when an employee uses a holiday management application installed on a user terminal to apply for business trip leave, the holiday management application generates request data such as the employee's identity information, work arrangement, business trip city, business trip period, and the like, and forms the request information by sending the request data to the server through the user terminal for data processing. After the server receives the request information, the server can obtain the expected leave time of the employee in each business trip city during the business trip period and the flight information between different business trip cities according to the request data in the request information, and calculate the maximum leave days of the employee during the business trip period based on all the expected leave time and all the flight information, and return to the user terminal to push the leave arrangement to the employee.

[0225] Scenario two

[0226] The available time pushing method provided by the embodiments of the present application can also be applied to the execution scene of a data processing task of requesting to obtain the maximum library entry reading time length by a reader. For example, when a reader makes a library entry reservation by using an application program of library entry time reservation management installed on a user terminal, the application program of library entry time reservation management generates request data such as reader information, surrounding library locations, reservation time range, and the like, and forms request information by sending the request data to a server through the user terminal for data processing. After the server receives the request information, the server can obtain the predicted reading time of each library entry reading of the reader within the reservation time range and the bus information between different libraries according to the request data in the request information, and calculate the maximum library entry reading time length of the reader within the reservation time range based on all the predicted reading time and all the bus information, and return to the user terminal to push the library reservation arrangement to the reader.

[0227] Scenario three

[0228] The available time pushing method provided by the embodiments of the present application can also be applied to the execution scene of a data processing task of requesting to obtain the maximum library entry reading time length by a reader. For example, when a reader makes a library entry reservation by using an application program of library entry time reservation management installed on a user terminal, the application program of library entry time reservation management generates request data such as reader information, surrounding library locations, reservation time range, and the like, and forms request information by sending the request data to a server through the user terminal for data processing. After the server receives the request information, the server can obtain the predicted reading time of each library entry reading of the reader within the reservation time range and the bus information between different libraries according to the request data in the request information, and calculate the maximum library entry reading time length of the reader within the reservation time range based on all the predicted reading time and all the bus information, and return to the user terminal to push the library reservation arrangement to the reader.

[0229] It can be understood that, although each step in each of the above flowcharts is displayed in sequence according to the arrow, these steps are not necessarily executed in the order indicated by the arrow. Unless otherwise specified in the embodiments, the execution of these steps has no strict order limitation, and these steps can be executed in other orders. Moreover, at least part of the steps in the above flowcharts can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily sequential, but can be executed in rotation or alternation with at least part of other steps or steps or stages in other steps.

[0230] With reference to Figure 21 The embodiment of the present application further discloses a time available pushing device, which is capable of implementing the time available pushing method in the foregoing embodiment, and comprises:

[0231] A request receiving unit 2110 is configured to receive request information for requesting to push a target total available time, wherein the target total available time is a total available time of the target object performing a target action in a plurality of unit time periods.

[0232] An information obtaining unit 2120 is configured to obtain, according to the request information, an expected available time of the target object performing the target action in each candidate location in each unit time period, and reachability information between each two candidate locations.

[0233] A time calculating unit 2130 is configured to calculate the target total available time according to all the expected available times and all the reachability information.

[0234] A time pushing unit 2140 is configured to push the target total available time to the target object.

[0235] In an embodiment, the time calculating unit 2130 is further configured to:

[0236] calculate a time available dynamic programming table according to all the expected available times and all the reachability information, wherein the time available dynamic programming table records a maximum total available time of the target object performing the target action in the plurality of unit time periods.

[0237] determine the maximum total available time in the time available dynamic programming table as the target total available time.

[0238] In an embodiment, the time calculating unit 2130 is further configured to:

[0239] traverse all the unit time periods, and calculate, in each unit time period, a time available dynamic programming element value corresponding to each candidate location according to the expected available time corresponding to each candidate location and the reachability information between each two candidate locations.

[0240] construct the time available dynamic programming table according to all the time available dynamic programming element values, wherein the time available dynamic programming element value of the first in the time available dynamic programming table is the maximum total available time.

[0241] In an embodiment, the time calculating unit 2130 is further configured to:

[0242] The all candidate locations are traversed as starting locations, for each starting location, a plurality of candidate dynamic programming element values corresponding to the starting location are calculated according to the position relationship and the reachability information between the starting location and each candidate location, and the estimated available time corresponding to each candidate location, wherein the candidate dynamic programming element value corresponds to the candidate location in one-to-one correspondence;

[0243] According to the plurality of candidate dynamic programming element values corresponding to each starting location, a target dynamic programming element value corresponding to each starting location is determined.

[0244] According to the target dynamic programming element value corresponding to each starting location, an available time dynamic programming element value corresponding to each candidate location is obtained.

[0245] In an embodiment, the time calculation unit 2130 is further configured to:

[0246] According to the position relationship and the reachability information between the starting location and each candidate location, the reachability between the starting location and each candidate location is determined.

[0247] According to the reachability and the estimated available time corresponding to each candidate location, the plurality of candidate dynamic programming element values corresponding to the starting location are calculated.

[0248] In an embodiment, the time calculation unit 2130 is further configured to:

[0249] For each candidate location, if the position relationship between the current candidate location and the starting location is the same location, or the reachability information between the current candidate location and the starting location is the first preset value, the reachability between the starting location and the current candidate location is determined to be reachable.

[0250] In an embodiment, the time calculation unit 2130 is further configured to:

[0251] For each candidate location, if the position relationship between the current candidate location and the starting location is different locations, and the reachability information between the current candidate location and the starting location is the second preset value, the reachability between the starting location and the current candidate location is determined to be unreachable.

[0252] In an embodiment, the time calculation unit 2130 is further configured to:

[0253] For each candidate location, when the reachability is reachable, a candidate element value corresponding to the current candidate location is calculated according to the estimated available time of the current candidate location in the current unit time period and the estimated available time of the current candidate location in the next unit time period.

[0254] According to the plurality of candidate element values corresponding to the plurality of candidate locations, the plurality of candidate dynamic programming element values corresponding to the starting location are obtained.

[0255] In an embodiment, the time calculation unit 2130 is further configured to:

[0256] For each starting point, among the multiple candidate dynamic programming element values corresponding to the current starting point, the one with the largest value is determined as the target dynamic programming element value corresponding to the current starting point.

[0257] In an embodiment, the information acquisition unit 2120 is further configured to:

[0258] determine, according to the request information, multiple reachable information request tasks, the reachable information request tasks being used to acquire reachable information;

[0259] concurrently execute, by using the coroutine pool, the multiple reachable information request tasks to obtain the reachable information between each two candidate points.

[0260] In an embodiment, the information acquisition unit 2120 is further configured to:

[0261] respectively lock the multiple reachable information request tasks;

[0262] add the multiple locked reachable information request tasks to the coroutine pool for concurrent execution, and after the execution is completed, unlock the multiple locked reachable information request tasks.

[0263] It should be noted that, since the available time pushing apparatus 2100 of the embodiment can implement the available time pushing method of the foregoing embodiments, the available time pushing apparatus 2100 of the embodiment and the available time pushing method of the foregoing embodiments have the same technical principles and the same beneficial effects. In order to avoid repetition of the content, details are not described herein.

[0264] With reference to Figure 22 , the embodiment of the present application further discloses an electronic device, which comprises:

[0265] at least one processor 2210;

[0266] at least one memory 2220 configured to store at least one program;

[0267] when the at least one program is executed by the at least one processor 2210, the available time pushing method as described above is implemented.

[0268] The embodiment of the present application further discloses a computer readable storage medium, wherein a processor executable computer program is stored, and the processor executable computer program is used to implement the available time pushing method as described above when executed by a processor.

[0269] The embodiment of the present application further discloses a computer program product, comprising a computer program or computer instructions, the computer program or computer instructions are stored in a computer readable storage medium, a processor of an electronic device reads the computer program or computer instructions from the computer readable storage medium, and the processor executes the computer program or computer instructions, so that the electronic device executes the available time pushing method as above.

[0270] The terms "first", "second", "third", "fourth" and the like in the description of the application and in the claims, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the use of the terms so termed is interchangeable under appropriate circumstances such that the embodiments of the application described herein are capable of accomplishing functionalities that are either the same or similar to other embodiments of the application described herein, without commencing the order described herein. Moreover, the terms "comprising", "having", "including", and the like, as well as any variations thereof, are intended to cover a non-exclusive inclusion such that a process, method, system, product, or apparatus that comprises a list of elements is not necessarily limited to those elements but can include other elements not expressly listed or inherent to such process, method, system, product, or apparatus.

[0271] It should be understood that, in the present application, "at least one" means one or more, and "multiple" means two or more. "And / or" is used to describe the relationship between the associated objects, which means that there can be three relationships, for example, "A and / or B" can represent three cases: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects. "At least one of the following" or similar expressions means any combination of these items, including single or multiple combinations. For example, at least one of a, b or c can mean a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0272] In several embodiments provided by the present application, it should be understood that the disclosed system, device and method can be implemented by other ways. For example, the device embodiments described above are only schematic, and the division of the units is only a logical function division, and there can be another division way 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 coupling or direct coupling or communication connection between the units or components shown or discussed can be indirect coupling or communication connection through some interfaces, devices or units, and can be electrical, mechanical or other forms.

[0273] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined target, and can be implemented entirely or partially by using software, hardware (such as a processing circuit or a memory) or a combination thereof. Similarly, one processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be a part of an integral module or unit that includes the functions of the module or unit.

[0274] 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., they can be located in one place, or they can be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0275] In addition, the functional units in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.

[0276] The integrated unit, if implemented in the form of a software functional unit and sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or the whole 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 number of instructions for causing a computer device (which can be a personal computer, a server or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0277] For the step numbers in the above method embodiments, only the order between the steps is not limited, and the execution order of each step in the embodiments can be adaptively adjusted according to the understanding of those skilled in the art.

Claims

1. A method for pushing available time, characterized in that: The following steps are involved: Receive a request for requesting to push a target total available time, wherein the target total available time is the sum of available time for the target object to perform a target action within multiple unit time periods; According to the request information, obtaining the estimated available time for the target object to perform the target action at each candidate location within each unit time period, and reachability information between each two candidate locations; Calculate the target total available time based on all the estimated available times and all the reachable information; The target available total time is pushed to the target object.

2. The method according to claim 1, characterized in that The calculating the target total available time according to all the estimated available times and all the reachable information includes: Calculating an available time dynamic planning table based on all the estimated available times and all the reachable information, wherein the available time dynamic planning table records the maximum total available time for the target object to perform the target action within the plurality of unit time periods; The maximum total available time in the available time dynamic planning table is determined as the target total available time.

3. The method according to claim 2, characterized in that The dynamic planning table of available time is calculated based on all the estimated available time and all the reachable information, including: Traversing all the unit time periods, and within each unit time period, calculating, based on the estimated available time corresponding to each candidate location and the reachability information between each two candidate locations, obtaining a dynamic programming element value of the available time corresponding to each candidate location; An available time dynamic planning table is constructed based on all the available time dynamic planning element values, wherein the first available time dynamic planning element value in the available time dynamic planning table is the maximum available time sum.

4. The method according to claim 3, characterized in that The calculating, based on the estimated available time corresponding to each candidate location and the reachability information between each two candidate locations, the available time dynamic planning element value corresponding to each candidate location includes: Traversing all the candidate locations as starting locations, and for each starting location, calculating a plurality of candidate dynamic programming element values ​​corresponding to the starting location based on a positional relationship between the starting location and each candidate location and the reachability information, as well as the estimated availability time corresponding to each candidate location, wherein the candidate dynamic programming element values ​​correspond one-to-one to the candidate locations; Determining a target dynamic programming element value corresponding to each starting location according to the plurality of candidate dynamic programming element values ​​corresponding to each starting location; According to the target dynamic programming element value corresponding to each starting location, the available time dynamic programming element value corresponding to each candidate location is obtained.

5. The method according to claim 4, characterized in that The calculating, based on the positional relationship between the starting location and each of the candidate locations and the reachability information, and the estimated available time corresponding to each of the candidate locations, a plurality of candidate dynamic programming element values ​​corresponding to the starting location includes: determining the reachability between the starting location and each of the candidate locations based on the positional relationship between the starting location and each of the candidate locations and the reachability information; A plurality of candidate dynamic programming element values ​​corresponding to the starting location are calculated based on the reachability and the estimated available time corresponding to each candidate location.

6. The method according to claim 5, characterized in that The determining, based on the positional relationship between the starting location and each of the candidate locations and the reachability information, of the reachability between the starting location and each of the candidate locations includes: For each candidate location, if the location relationship between the current candidate location and the starting location is the same location, or the reachability information between the current candidate location and the starting location is a first preset value, it is determined that the reachability between the starting location and the current candidate location is reachable.

7. The method according to claim 5, characterized in that The determining, based on the positional relationship between the starting location and each of the candidate locations and the reachability information, of the reachability between the starting location and each of the candidate locations includes: For each candidate location, if the location relationship between the current candidate location and the starting location is a different location, and the reachability information between the current candidate location and the starting location is a second preset value, it is determined that the reachability between the starting location and the current candidate location is unreachable.

8. The method according to claim 5, characterized in that The calculating, based on the reachability and the estimated available time corresponding to each candidate location, a plurality of candidate dynamic programming element values ​​corresponding to the starting location includes: For each candidate location, when the reachability is reachable, a candidate element value corresponding to the current candidate location is calculated based on the estimated available time of the current candidate location within the current unit time period and the initial element value corresponding to the current candidate location in the available time dynamic planning table; A plurality of candidate dynamic programming element values ​​corresponding to the starting location are obtained according to the candidate element values ​​corresponding to the plurality of candidate locations.

9. The method according to claim 4, characterized in that The determining, based on the plurality of candidate dynamic programming element values ​​corresponding to each starting location, a target dynamic programming element value corresponding to each starting location, includes: For each starting location, among the multiple candidate dynamic programming element values ​​corresponding to the current starting location, the one with the largest value is determined as the target dynamic programming element value corresponding to the current starting location.

10. The method according to claim 1, characterized in that Acquiring the reachability information between each two candidate locations according to the request information includes the following steps: determining a plurality of reachability information request tasks according to the request information, wherein the reachability information request tasks are used to obtain the reachability information; A coroutine pool is used to concurrently execute a plurality of the reachability information request tasks to obtain the reachability information between each two candidate locations.

11. The method according to claim 10, characterized in that The process of concurrently executing a plurality of reachable information request tasks using the coroutine pool includes the following steps: Locking the plurality of reachable information request tasks respectively; The locked multiple reachable information request tasks are added to the coroutine pool for concurrent execution, and after the execution is completed, the locked multiple reachable information request tasks are unlocked.

12. An available time push device, characterized in that: include: a request receiving unit, configured to receive a request message for requesting to push a target total available time, wherein the target total available time is the sum of available time for the target object to perform a target action within a plurality of unit time periods; an information acquisition unit, configured to acquire, according to the request information, an estimated available time for the target object to perform the target action at each candidate location within each unit time period, and reachability information between each two candidate locations; A time calculation unit, configured to calculate the target total available time based on all the estimated available times and all the reachable information; A time push unit is used to push the target total available time to the target object.

13. An electronic device, characterized in that: include: at least one processor; at least one memory for storing at least one program; When at least one of the programs is executed by at least one of the processors, the available time pushing method according to any one of claims 1 to 11 is implemented.

14. A computer-readable storage medium, characterized in that A computer program executable by a processor is stored therein, and when the computer program executable by the processor is executed by the processor, it is used to implement the available time pushing method according to any one of claims 1 to 11.

15. A computer program product comprising a computer program or computer instructions, characterized in that The computer program or the computer instructions are stored in a computer-readable storage medium, the processor of the electronic device reads the computer program or the computer instructions from the computer-readable storage medium, and the processor executes the computer program or the computer instructions, so that the electronic device executes the available time push method as described in any one of claims 1 to 11.