Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments, and all other embodiments obtained by those skilled in the art without making any inventive effort based on the embodiments of the present invention are within the scope of protection of the present invention.
As shown in fig. 1, an embodiment of the present invention provides a resource allocation method, which may include the following steps:
step 101: determining a plurality of objects and a plurality of resources corresponding to the objects; wherein, the current object and any resource corresponding to the current object form the current allocation combination.
In the embodiment of the invention, one object can be allocated to obtain one resource, and one resource can be allocated to different objects. The object may be a user, a single item, etc., and the resource may be a coupon, virtual currency, etc. The coupons can be classified into discount coupons, vouchers, etc. Hereinafter, a description will be given of an example in which the object is a single item and the resource is a coupon.
For example, in one transaction, the items purchased by the user include A, B, C, and the coupons present in the user account include: α, β, γ, where α may be applied at A, B, β may be applied at C, and γ may be applied at A, B, C. In this case, the determined number of objects includes a single item A, B, C, where a corresponds to coupons α and γ, B corresponds to coupons α and γ, and C corresponds to coupons β and γ. The allocation combination includes: (A, alpha), (A, gamma), (B, alpha), (B, gamma), (C, beta), (C, gamma).
Step 102: and determining whether the current allocation combination meets a conflict condition, and determining that the current allocation combination is a target allocation combination when the current allocation combination meets the conflict condition, wherein the target allocation combination comprises a target object and any resource corresponding to the target object.
By screening, a target allocation combination participating in the allocation calculation of step 103 can be determined, and since the screening process can make part of the allocation combination not participate in the allocation calculation of step 103, the calculation amount thereof is reduced compared with the prior art.
In an actual application scene, the allocation combinations can be screened through different conflict conditions, the conflict conditions are different, and the obtained target allocation combinations are different.
The embodiment of the invention at least provides the following two conflict conditions, and distribution combinations are screened from different angles respectively. Of course, in the practical application scenario, different kinds of conflict conditions can be combined to screen the allocation combination, so as to further reduce the calculated amount of the resource allocation process and improve the resource utilization rate.
Q1: the allocation combinations are filtered from the perspective of whether the object is a conflicting object, which in turn has the following two cases:
q11: the conflict object is allocated to obtain at least two resources.
In this case, determining whether the current allocation combination satisfies the conflict condition includes:
it is determined whether there are other allocation combinations, wherein the objects in the other allocation combinations are the same as the current object in the current allocation combination, and the resources in the other allocation combinations are different from the resources in the current allocation combination.
When an object corresponds to at least two kinds of resources, the corresponding resources need to be determined through further calculation, and when the object corresponds to only one kind of resources, the resources can be regarded as the corresponding allocated resources.
Along the above example, if the resources corresponding to the single product a include two types of α and γ, the single product a is a conflicting single product. Assuming that there is also a single item D in the transaction, and that α is also available on D, α is the allocated resource for single item D.
Q12: the resources corresponding to the conflict objects are matched to other objects.
In this case, determining whether the current allocation combination satisfies the conflict condition includes:
it is determined whether there are other allocation combinations, wherein the objects in the other allocation combinations are different from the current object in the current allocation combination, and the resources in the other allocation combinations are the same as the resources in the current allocation combination.
When the resource corresponding to the conflict object is matched with other objects, further calculation is needed because the allocation resource amount of the resource on the conflict object cannot be determined.
And if the single product A and the single product B correspond to the resource alpha, the single product A and the single product B are conflicting single products.
In addition, the two cases of Q11 and Q12 can be combined, and the distribution combination can be screened. In this case, determining whether the current allocation combination satisfies the conflict condition includes:
it is determined whether there are other allocation combinations, wherein the objects in the other allocation combinations are the same as the current object in the current allocation combination, the resources in the other allocation combinations are different from the resources in the current allocation combination, or the objects in the other allocation combinations are different from the current object in the current allocation combination, the resources in the other allocation combinations are the same as the resources in the current allocation combination.
The method further comprises the steps of: when the current allocation combination does not meet the conflict condition, determining that the resources in the current allocation combination are allocated resources of a current object in the current allocation combination; determining the full-scale resource quantity of the resources in the current allocation combination allocated to the current object in the current allocation combination; the full-scale resource amount of the resource allocated to the current object in the current allocation combination is the allocation resource amount of the current object in the current allocation combination.
The specific procedure of "determining the full-scale resource amount of the resource allocation to the current object in the current allocation combination" will be described in detail in Q2.
Q2: the filtering is performed from the point of view of whether the resource is allocated at full value, i.e. the amount of resource allocated to the object has reached the maximum amount of resource that the resource can allocate to the object.
Since Q2 depends on the actual amount of resources allocated to any corresponding object, the actual amount of resources allocated to any corresponding object will be described first, and then the filtering process will be described.
After determining the objects and the resources to which the objects correspond, before determining whether the current allocation combination satisfies the conflict condition, the method further includes:
An actual amount of resources allocated to the corresponding arbitrary object by the current resource is determined.
The determining the actual resource amount of the current resource allocated to any corresponding object specifically comprises the following steps:
determining the full-scale resource quantity of the current resource allocated to any corresponding object; adding the full-scale resource quantity of the current resource allocated to each corresponding object to obtain the available resource quantity of the current resource; and determining the actual resource quantity of the current resource allocated to any corresponding object according to the available resource quantity of the current resource.
Along the above example, assuming that α is a coupon, α is α1 assigned to a, α is α2 assigned to B, and the amount of available resources for α is (α1+α2). The amount of full-scale resources allocated to a corresponding arbitrary object may be determined by the resources, or may be determined by the resources and/or the corresponding object. For example, α1=a unit price is a discount on α. Assuming α is a coupon, α1=coupon face value.
Determining, according to the available resource amount of the current resource, an actual resource amount allocated to the corresponding arbitrary object by the current resource, including:
determining whether the available resource amount of the current resource is larger than the preset maximum allocation resource amount of the current resource, if so, determining the actual resource amount allocated to any corresponding object by the current resource according to the maximum allocation resource amount of the current resource; otherwise, determining the actual resource quantity allocated to any corresponding object by the current resource according to the available resource quantity of the current resource.
The actual resource amount of the current resource allocated to any corresponding object can be determined according to the maximum allocation resource amount (or the available resource amount) of the object and the current resource; the actual amount of resources allocated to any corresponding object by the current resource may also be determined according to the preset proportion and the maximum amount of resources allocated to the current resource (or the amount of resources available to the current resource).
In the above example, when the coupon α is a 5-fold coupon, the maximum allocated resource amount is 12 yuan, the unit price of the product a is 10 yuan, and the unit price of the product B is 20 yuan, the available resource amount of α is (5+10=15). The amount of available resources for α is greater than the maximum allocated resource amount. Therefore, the actual amount of resources allocated to individual item a by α and the actual amount of resources allocated to individual item B by α are determined based on the maximum allocated amount of resources by α.
The actual amount of resources currently allocated to any corresponding object and the full amount of resources currently allocated to any corresponding object are actually considered from a local perspective (i.e., any item purchased in a transaction), while the available amount of resources currently and the maximum amount of resources currently allocated are actually considered from a global perspective (i.e., all items purchased in a transaction). The utilization rate of resources can be improved from the two aspects of local and global.
Determining whether the current allocation combination satisfies a conflict condition includes:
it is determined whether an actual amount of resources allocated to a current object in the current allocation combination satisfies a collision condition.
Determining whether the actual resource quantity of the resources in the current allocation combination allocated to the current object in the current allocation combination meets a conflict condition according to the relation between the full resource quantity of the resources in the current allocation combination allocated to the current object in the current allocation combination and the actual resource quantity of the resources in the current allocation combination allocated to the current object in the current allocation combination, wherein the method specifically comprises the following two cases:
q21: it is determined whether the amount of full resources allocated to the current object in the current allocation combination by the resources in the current allocation combination is different from the actual amount of resources allocated to the current object in the current allocation combination by the resources in the current allocation combination.
Q22: determining whether the actual amount of resources in the current allocation combination allocated to the current object in the current allocation combination is the same as the full-scale amount of resources in the current allocation combination allocated to the current object in the current allocation combination, and the actual amount of resources in the current allocation combination allocated to the current object in the current allocation combination is greater than the actual amount of resources in any potential allocation combination allocated to the objects in the potential allocation combination;
The objects in the potential allocation combination are the same as the current objects in the current allocation combination, and the actual amount of resources allocated to the objects in the potential allocation combination by the resources in the potential allocation combination is the same as the full amount of resources allocated to the objects in the potential allocation combination by the resources in the potential allocation combination.
For example, for the combinations (a, α) and (a, γ), the α allocated to the same amount of full resources as α allocated to a, the γ allocated to the same amount of full resources as γ allocated to a, and α allocated to a more than γ allocated to a, the combination (a, α) is set as the target allocation combination, and it is necessary to participate in the allocation calculation in step 103.
Step 103: and determining the allocation resources and the allocation resource quantity of the target object according to the plurality of target allocation combinations.
Step 103 specifically includes: determining a plurality of allocation schemes according to a plurality of target allocation combinations; determining a full-scale resource amount of the resource allocation in the target allocation combination to the target object in the target allocation combination; determining the total amount of the allocated resources of any allocation scheme according to the full-scale resource amount of the resources allocated to the target object in the target allocation combination; determining the allocation resources of the target object according to the total amount of the allocation resources of each allocation scheme; and determining the allocation resource quantity of the target object according to the allocation resource of the target object.
The target allocation combination is assumed to be determined to include: (a, α), (a, γ), (B, α), (B, γ), then the allocation scheme comprises:
distribution scheme 1: (a, α), (B, α);
distribution scheme 2: (a, α), (B, γ);
distribution scheme 3: (a, γ), (B, α);
distribution scheme 4: (A, gamma), (B, gamma).
The calculation of the full-term resource amount of the resource allocation to the target object in the target allocation combination is the same as the calculation of the full-term resource amount of the resource allocation to the current object in the current allocation combination, and is not repeated here.
And adding the full-amount resource quantity corresponding to each target allocation combination in the current allocation scheme to obtain the total allocation resource quantity of the current allocation scheme.
According to the total amount of the allocated resources of each allocation scheme, the allocation resources of the target object are determined, and the method specifically comprises the following steps: determining the allocation scheme with the maximum total amount of the corresponding allocation resources as a target allocation scheme; and taking the resources in the target allocation combination in the target allocation scheme as the allocation resources of the target object in the target allocation combination.
According to the allocation resources of the target object, determining the allocation resource quantity of the target object specifically comprises the following steps: adding the full-scale resource amounts allocated to each target object by the allocated resources; if the sum of the full-rate resource amounts allocated to each target object by the allocation resources is larger than the preset maximum allocation resource amount of the allocation resources, determining the allocation resource amount of the target object according to the maximum allocation resource amount of the allocation resources, and if the sum of the full-rate resource amounts allocated to each target object by the allocation resources is smaller than or equal to the preset maximum allocation resource amount of the allocation resources, determining the allocation resource amount of the target object according to the sum of the full-rate resource amounts allocated to each target object by the allocation resources.
If the sum of the full-scale resource amounts allocated to each target object by the allocation resources is smaller than or equal to the preset maximum allocation resource amount of the allocation resources, the allocation resource amount of the target object is equal to the full-scale resource amount allocated to the target object by the allocation resources of the target object.
Assume that the allocation scheme 1 described above is a target allocation scheme: (a, α), (B, α); a, B is a single product, and alpha is a 5-fold coupon; then the allocated resource for individual item a is α and the allocated resource for individual item B is α. The maximum allocation resource amount of alpha is 10 yuan, the unit price of A is 20 yuan, the unit price of B is 30 yuan, the full-rate resource amount of alpha allocated to A is 10, the full-rate resource amount of alpha allocated to B is 15, and the sum of the two is more than 10, and then the resource allocation is carried out according to the maximum allocation resource amount of alpha. For example, the amount of allocated resources for individual product a is 4 yuan, and the amount of allocated resources for individual product B is 6 yuan, according to the ratio of unit price.
The method screens the allocation combination through conflict conditions, and allocates resources for a plurality of target allocation combinations obtained by screening. According to the method, the number of allocation combinations participating in allocation calculation is reduced through a screening process without traversing each resource in the process of determining the allocation resources corresponding to each object, so that the calculation workload can be reduced, and the resource allocation efficiency is improved.
As shown in fig. 2, an embodiment of the present invention provides a coupon distribution method, including:
step 201: determining a plurality of coupons corresponding to the single products; any coupon corresponding to the current single item forms the current distribution combination.
Step 202: and determining whether the current allocation combination meets a conflict condition, and determining that the current allocation combination is a target allocation combination when the current allocation combination meets the conflict condition, wherein the target allocation combination comprises a target single product and any coupon corresponding to the target single product.
Step 203: and determining the distribution coupon and the distribution preferential amount of the target single product according to the plurality of target distribution combinations.
Coupons belong to one of the resources and singlets belong to one of the objects, and the description of the resources and the objects applies equally to embodiments of the invention.
According to the method, coupons are distributed to the single sheets without traversing the single sheets and the coupons, and the distribution combinations are screened through conflict conditions, so that the calculated amount of the distributed coupons is reduced, and the resource utilization rate is improved.
The following will describe in detail a resource allocation method using an object as a single item and a resource as a coupon, the method comprising the steps of:
S1: determining a plurality of coupons corresponding to the single products; any coupon corresponding to the current single item forms the current distribution combination.
S2: a full-coupon amount assigned to the corresponding individual item is determined.
S3: and adding the full-amount discount amount distributed to each corresponding single item by the current coupon to obtain the available discount amount of the current coupon.
S4: and determining whether the available discount amount of the current coupon is larger than the preset maximum allocation discount amount of the current coupon, if so, executing S5, otherwise, executing S6.
S5: and determining the actual preferential amount of any corresponding single product allocated to the current coupon according to the maximum allocated preferential amount of the current coupon, and executing S7.
S6: and determining the actual preferential amount of any corresponding single product allocated to the current coupon according to the available preferential amount of the current coupon.
S7: determining whether other distribution combinations exist, wherein the single item in the other distribution combinations is the same as the current single item in the current distribution combination, the coupon in the other distribution combinations is different from the coupon in the current distribution combination, or the single item in the other distribution combinations is different from the current single item in the current distribution combination, the coupon in the other distribution combinations is the same as the coupon in the current distribution combination, if yes, executing S8, otherwise, executing S16.
If execution of S16 means that the coupons in the current allocation combination can only be allocated to the individual items in the current allocation combination, the individual items in the current allocation combination can only use the coupons in the current allocation combination.
S8: determining whether the actual coupon amount allocated to the current individual item in the current allocation combination is different from the full-amount coupon amount allocated to the current individual item in the current allocation combination, if so, executing S9, otherwise, executing S15.
S9: and determining the current distribution combination as a target distribution combination, wherein the target distribution combination comprises a target single product and any coupon corresponding to the target single product.
S10: a number of allocation schemes are determined based on the number of target allocation combinations.
S11: a full-coupon amount is determined for the targeted individual items in the targeted distribution combination.
S12: and determining the total amount of the distributed coupons of any distribution scheme according to the full-amount of the coupons distributed to the target single products in the target distribution combination.
S13: and determining the distribution coupon of the target single product according to the total amount of the distribution coupons of each distribution scheme.
S14: and determining the distribution preferential amount of the target single product according to the distribution coupon of the target single product, and ending the current flow.
S15: determining whether the actual coupon in the current distribution combination is distributed to the current single item in the current distribution combination and the full-quantity coupon in the current distribution combination is the same as the full-quantity coupon of the current single item in the current distribution combination, wherein the actual coupon in the current distribution combination is distributed to the current single item in the current distribution combination and is larger than the actual coupon in any potential distribution combination, if yes, executing S9, otherwise, ending the current flow; wherein the items in the potential allocation combination are the same as the current items in the current allocation combination, and the actual coupon amounts allocated to the items in the potential allocation combination by the coupons in the potential allocation combination are the same as the full coupon amounts allocated to the items in the potential allocation combination by the coupons in the potential allocation combination.
In S15, terminating the current flow means that the allocation scheme of the current allocation combination is abandoned.
S16: and determining the coupons in the current distribution combination as distribution coupons of the current single products in the current distribution combination.
S17: and determining the full-quantity coupon in the current distribution combination to be distributed to the full-quantity coupon of the current single product in the current distribution combination, wherein the full-quantity coupon distributed to the current single product in the current distribution combination is the distributed coupon of the current single product in the current distribution combination, and ending the current flow.
In the practical application scenario, in order to avoid exceeding the preferential limit and making the ticket unusable, S17 may further include: determining whether the full-quantity coupon in the current distribution combination is smaller than the maximum distribution coupon of the current distribution combination, if yes, the full-quantity coupon of the current distribution combination is the distribution coupon of the current single product in the current distribution combination, otherwise, the maximum distribution coupon of the current distribution combination is the distribution coupon of the current single product in the current distribution combination.
In an actual application scenario, the execution sequence of each step may be adjusted according to actual requirements, for example, S7 is executed before S2.
As shown in fig. 3, an embodiment of the present invention provides a resource allocation apparatus, including:
A determining unit 301, configured to determine a plurality of objects and a plurality of resources corresponding to the objects; wherein, the current object and any resource corresponding to the current object form the current allocation combination;
a processing unit 302, configured to determine whether the current allocation combination meets a collision condition, and if yes, determine that the current allocation combination is a target allocation combination, where the target allocation combination includes a target object and any resource corresponding to the target object;
an allocation unit 303, configured to determine allocation resources and allocation resource amounts of the target objects according to the plurality of target allocation combinations.
In one embodiment of the present invention, the determining unit 301 is further configured to determine an actual resource amount allocated to the corresponding arbitrary object by the current resource;
a processing unit 302 is configured to determine whether an actual amount of resources allocated to the current object in the current allocation combination by the resources in the current allocation combination satisfies a collision condition.
In one embodiment of the present invention, the determining unit 302 is configured to determine a full resource amount allocated to the corresponding arbitrary object by the current resource; adding the full-scale resource quantity of the current resource allocated to each corresponding object to obtain the available resource quantity of the current resource; and determining the actual resource quantity of the current resource allocated to any corresponding object according to the available resource quantity of the current resource.
In one embodiment of the present invention, the determining unit 302 is configured to determine whether an available resource amount of the current resource is greater than a preset maximum allocated resource amount of the current resource, and if so, determine an actual resource amount allocated to the corresponding arbitrary object by the current resource according to the maximum allocated resource amount of the current resource; otherwise, determining the actual resource quantity allocated to any corresponding object by the current resource according to the available resource quantity of the current resource.
In one embodiment of the present invention, the processing unit 302 is configured to determine whether an actual amount of resources allocated to the current object in the current allocation combination by the resources in the current allocation combination is different from a full amount of resources allocated to the current object in the current allocation combination by the resources in the current allocation combination.
In one embodiment of the present invention, the processing unit 302 is configured to determine whether an actual amount of resources in the current allocation combination allocated to the current object in the current allocation combination is the same as a full-scale amount of resources in the current allocation combination allocated to the current object in the current allocation combination, and the actual amount of resources in the current allocation combination allocated to the current object in the current allocation combination is greater than an actual amount of resources in any one of the potential allocation combinations allocated to the object in the potential allocation combination;
The objects in the potential allocation combination are the same as the current objects in the current allocation combination, and the actual amount of resources allocated to the objects in the potential allocation combination by the resources in the potential allocation combination is the same as the full amount of resources allocated to the objects in the potential allocation combination by the resources in the potential allocation combination.
In one embodiment of the present invention, the processing unit 302 is configured to determine whether there is another allocation combination, where the object in the other allocation combination is the same as the current object in the current allocation combination, and the resource in the other allocation combination is different from the resource in the current allocation combination.
In one embodiment of the present invention, the processing unit 302 is configured to determine whether there is another allocation combination, where the object in the other allocation combination is different from the current object in the current allocation combination, and the resource in the other allocation combination is the same as the resource in the current allocation combination.
In one embodiment of the present invention, the processing unit 302 is further configured to determine that the resource in the current allocation combination is an allocated resource of the current object in the current allocation combination when the current allocation combination does not satisfy the collision condition; determining the full-scale resource quantity of the resources in the current allocation combination allocated to the current object in the current allocation combination; the full-scale resource amount of the resource allocated to the current object in the current allocation combination is the allocation resource amount of the current object in the current allocation combination.
In one embodiment of the invention, the allocation unit 303 is configured to determine a number of allocation schemes according to a number of target allocation combinations; determining a full-scale resource amount of the resource allocation in the target allocation combination to the target object in the target allocation combination; determining the total amount of the allocated resources of any allocation scheme according to the full-scale resource amount of the resources allocated to the target object in the target allocation combination; determining the allocation resources of the target object according to the total amount of the allocation resources of each allocation scheme; and determining the allocation resource quantity of the target object according to the allocation resource of the target object.
As shown in fig. 4, an embodiment of the present invention provides a coupon dispensing apparatus, including:
a determining unit 401, configured to determine a plurality of single items and a plurality of coupons corresponding to the single items; any coupon corresponding to the current single item forms a current distribution combination;
a processing unit 402, configured to determine whether the current allocation combination meets a conflict condition, and if yes, determine that the current allocation combination is a target allocation combination, where the target allocation combination includes a target single item and any coupon corresponding to the target single item;
and the distribution unit 403 is used for determining the distribution coupon and the distribution discount amount of the target single product according to the plurality of target distribution combinations.
In the 90 s of the 20 th century, improvements to one technology could clearly be distinguished as improvements in hardware (e.g., improvements to circuit structures such as diodes, transistors, switches, etc.) or software (improvements to the process flow). However, with the development of technology, many improvements of the current method flows can be regarded as direct improvements of hardware circuit structures. Designers almost always obtain corresponding hardware circuit structures by programming improved method flows into hardware circuits. Therefore, an improvement of a method flow cannot be said to be realized by a hardware entity module. For example, a programmable logic device (Programmable Logic Device, PLD) (e.g., field programmable gate array (Field Programmable Gate Array, FPGA)) is an integrated circuit whose logic function is determined by the programming of the device by a user. A designer programs to "integrate" a digital system onto a PLD without requiring the chip manufacturer to design and fabricate application-specific integrated circuit chips. Moreover, nowadays, instead of manually manufacturing integrated circuit chips, such programming is mostly implemented by using "logic compiler" software, which is similar to the software compiler used in program development and writing, and the original code before the compiling is also written in a specific programming language, which is called hardware description language (Hardware Description Language, HDL), but not just one of the hdds, but a plurality of kinds, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), lava, lola, myHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog are currently most commonly used. It will also be apparent to those skilled in the art that a hardware circuit implementing the logic method flow can be readily obtained by merely slightly programming the method flow into an integrated circuit using several of the hardware description languages described above.
The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (e.g., software or firmware) executable by the (micro) processor, logic gates, switches, application specific integrated circuits (Application Specific Integrated Circuit, ASIC), programmable logic controllers, and embedded microcontrollers, examples of which include, but are not limited to, the following microcontrollers: ARC 625D, atmel AT91SAM, microchip PIC18F26K20, and Silicone Labs C8051F320, the memory controller may also be implemented as part of the control logic of the memory. Those skilled in the art will also appreciate that, in addition to implementing the controller in a pure computer readable program code, it is well possible to implement the same functionality by logically programming the method steps such that the controller is in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. Such a controller may thus be regarded as a kind of hardware component, and means for performing various functions included therein may also be regarded as structures within the hardware component. Or even means for achieving the various functions may be regarded as either software modules implementing the methods or structures within hardware components.
The system, apparatus, module or unit set forth in the above embodiments may be implemented in particular by a computer chip or entity, or by a product having a certain function. One typical implementation is a computer. In particular, the computer may be, for example, a personal computer, a laptop computer, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
For convenience of description, the above devices are described as being functionally divided into various units, respectively. Of course, the functions of each element may be implemented in the same piece or pieces of software and/or hardware when implementing the present application.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or block diagrams, and combinations of flows and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In one typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include volatile memory in a computer-readable medium, random Access Memory (RAM) and/or nonvolatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
Computer readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device. Computer-readable media, as defined herein, does not include transitory computer-readable media (transmission media), such as modulated data signals and carrier waves.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises an element.
The application may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The application may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
In this specification, each embodiment is described in a progressive manner, and identical and similar parts of each embodiment are all referred to each other, and each embodiment mainly describes differences from other embodiments. In particular, for system embodiments, since they are substantially similar to method embodiments, the description is relatively simple, as relevant to see a section of the description of method embodiments.
The foregoing is merely exemplary of the present application and is not intended to limit the present application. Various modifications and variations of the present application will be apparent to those skilled in the art. Any modification, equivalent replacement, improvement, etc. which come within the spirit and principles of the application are to be included in the scope of the claims of the present application.