Detailed Description
In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings used in the description of the embodiments will be briefly described below. It is obvious that the drawings in the following description are only examples or embodiments of the present description, and that for a person skilled in the art, the present description can also be applied to other similar scenarios on the basis of these drawings without inventive effort. Unless otherwise apparent from the context, or otherwise indicated, like reference numbers in the figures refer to the same structure or operation.
it should be understood that "system", "device", "unit" and/or "module" as used herein is a method for distinguishing different components, elements, parts, portions or assemblies at different levels. However, other words may be substituted by other expressions if they accomplish the same purpose.
As used in this specification and the appended claims, the terms "a," "an," "the," and/or "the" are not intended to be inclusive in the singular, but rather are intended to be inclusive in the plural, unless the context clearly dictates otherwise. In general, the terms "comprises" and "comprising" merely indicate that steps and elements are included which are explicitly identified, that the steps and elements do not form an exclusive list, and that a method or apparatus may include other steps or elements.
Flow charts are used in this description to illustrate operations performed by a system according to embodiments of the present description. It should be understood that the preceding or following operations are not necessarily performed in the exact order in which they are performed. Rather, the various steps may be processed in reverse order or simultaneously. Meanwhile, other operations may be added to the processes, or a certain step or several steps of operations may be removed from the processes.
The specification relates to a bus route determination method and system. The bus route determining method can determine a bus stop sequence according to a starting point and an end point of travel of a user, and can determine one or more bus routes with the least transfer times in the bus stop sequence. In some embodiments, the bus route determination method according to the present description may be applied to scenes such as travel navigation and travel route recommendation. For example, a user may enter a start point and an end point in a terminal application (e.g., an electronic map) that may recommend one or more bus routes to the user based on a bus route determination method. In some embodiments, the bus route determination method according to the present description may also be applied to analysis of bus simulation loads. For example, all bus routes with the least number of transfers can be found out based on the starting point and the end point of the user trip, and further the distribution scheme of the subsequent line flow is determined.
FIG. 1 is an exemplary flow chart of a bus route determination method according to some embodiments described herein. As shown in fig. 1, the bus route determination method 100 may include:
and 110, acquiring a bus stop sequence and a bus line corresponding to each bus stop in the bus stop sequence. In particular, this step 110 may be performed by the obtaining module 310.
a bus stop may be understood as a place where a passenger waits for a bus. Each bus stop may correspond to a fixed latitude and longitude information. In some embodiments, one bus station may correspond to one or more bus stations, and the bus routes corresponding to different bus stations of the same bus station may be the same, partially the same, or different. The bus route corresponding to the bus stop can be understood as the bus route of the bus stop. For example, bus stops may be set at two sides of a road at one bus stop, where the bus routes corresponding to one bus stop are a and B, and the bus routes corresponding to another bus stop are A, C and D. In some embodiments, the obtaining module 310 may obtain the bus route corresponding to each bus stop point according to a bus network diagram or any other reasonable manner.
in some embodiments, a bus stop sequence may be understood as a plurality of bus stops arranged in sequence. For example, a bus stop sequence may be a collection of multiple bus stops that are traversed along a route. In some embodiments, the obtaining module 310 may obtain a plurality of bus stops passing along a route from one bus stop to another bus stop based on the two bus stops, and form a bus sequence together with the two bus stops. In some embodiments, the obtaining module 310 may obtain the bus sequence in other manners as well. For example, the obtaining module 310 may obtain a starting point and an end point of a user trip; the acquisition module 310 may determine a chain of bus stops from a start point to a stop point based on the start point and the stop point; the acquisition module 310 may determine a bus site sequence from the chain of bus sites. For more details on acquiring a sequence of bus stops, reference may be made to fig. 2 and its associated description.
And 120, determining the weight of each bus line of each bus stop based on the bus stop sequence and the bus line corresponding to each bus stop. In particular, this step 120 may be performed by the weight determination module 320.
in some embodiments, weight determination module 320 may determine the weight of each transit line for each transit stop based on a markov chain. Specifically, the weight of each bus line at the current stop is only dependent on the weight of the bus line at the previous bus stop and the coincidence condition of the bus lines between the two stops.
In some embodiments, the weight determination module 320 may determine the weight of the bus line at the current bus stop based on the weight of the bus line at the previous bus stop and a state transition value between bus lines that is inversely related to the number of transfers. In some embodiments, the state transition value may be used to reflect whether a transfer is required between a bus line at the current bus stop and a bus line at a previous bus stop. Specifically, the state transition value between different bus routes (i.e., requiring transfer) may be 0, and the state transition value between the same bus routes (i.e., requiring no transfer) may be a positive number (e.g., 1, 2, etc.). When the corresponding bus routes on the two adjacent bus stops are known, the state transition value between any two bus routes on the two adjacent bus stops can be obtained.
in some embodiments, the weight of each bus route at the first bus stop of the sequence of bus stops may be a set initial value. In some embodiments, the probability of each bus route being selected for the first bus stop of the sequence of bus stops may be set to be the same, and thus the weight may be the same initial weight. For example, the initial weight may be a preset value (e.g., 1). In some embodiments, the weight of each bus route at each bus stop may be the maximum of: the weight of any different bus route of the previous bus stop, or the weight of the same bus route of the previous bus stop is added with an increment set based on a state transition value (positive number) or multiplied by a multiple set based on the positive number. In some embodiments, when the positive number is incremented, the positive number may be a positive number greater than zero (e.g., 0.5, 1, 2, etc.). When the positive number is a multiple, the positive number can be a positive number greater than 1 (e.g., 1.5, 2, etc.). For more details regarding determining the weight of each bus route at each bus stop, reference may be made to fig. 3-7 and the associated description.
and step 130, determining one or more bus routes with the least transfer times in the bus stop sequence according to the weight of the bus lines of the bus stops. Specifically, the step 130 may be performed by the bus route determination module 330.
In some embodiments, a bus route may be understood as a bus travel plan from a first bus stop to a last bus stop in a sequence of bus stops. In some embodiments, each bus stop of the sequence of bus stops may be reached by a bus transfer. Further, the bus stops of the bus stop sequence can all contain the same bus route (namely, transfer is not needed). In some alternative embodiments, there may be no common bus route between at least two adjacent bus stops of the sequence of bus stops, in which case the user needs to transfer between the two adjacent bus stops by other means (e.g., walking, riding, etc. from one bus stop to the next bus stop).
In some embodiments, the bus route determination module 330 may determine one or more bus routes with the least number of transfers in the bus stop sequence by a backtracking method. Specifically, the bus route determining module 330 may perform backtracking based on the bus route with the largest weight in the last bus stop of the bus stop sequence, so as to determine one or more bus routes with the smallest transfer times in the bus stop sequence.
in some embodiments, the bus route determination module 330 (e.g., the parent route determination unit 332) may determine the parent route associated with the bus route from the bus stops preceding the bus stop based on the bus route with the greatest weight at the last bus stop of the sequence of bus stops. The father line is any line which can enable the corresponding bus line of the next bus stop to obtain the weight in the previous bus stop. Specifically, the parent line determining unit 332 may determine the parent line in the previous bus stop according to the bus line with the largest weight in the last bus stop; and then sequentially determining the father line of the bus stop in the previous bus stop according to the father line of the bus stop in the next bus stop until determining the father line of the bus stop in the first bus stop of the bus stop sequence. In some embodiments, the most heavily weighted bus route at the last bus stop may include one or more bus routes. In some embodiments, the parent line in the previous bus stop corresponding to the bus line with the greatest weight in the last bus stop may include one or more lines. In some embodiments, the parent line in the previous bus stop corresponding to the parent line in the next bus stop may also include one or more lines.
in some embodiments, the bus route determination module 330 (e.g., the bus route determination unit 334) may combine the parent lines of the bus stops to obtain one or more bus routes with the least number of transfers in the sequence of bus stops. Specifically, the bus route determination unit 334 may select one of the parent routes in the previous bus stop based on the bus route with the largest weight in the last bus stop; and then selecting one father line in the previous bus stop according to the selected father line in the next bus stop in sequence until one father line in the first bus stop of the bus stop sequence is selected. On this basis, the bus route determination unit 334 may use the bus route with the highest weight in the last bus stop and one of the father routes selected from all other stops as one of the bus routes with the least number of transfers in the bus stop sequence. In a similar manner, the bus route determination unit 334 may determine other bus routes with the least number of transfers in the bus stop sequence to obtain a plurality of or even all bus routes with the least number of transfers.
it should be noted that the above description of the bus route determination method is for illustration and explanation only, and does not limit the application scope of the present application. It will be apparent to those skilled in the art that various modifications and variations can be made in the bus route determination method under the guidance of the present specification. However, such modifications and variations are intended to be within the scope of the present application. For example, when acquiring a bus stop sequence, if two bus stops P1 and P3 both include a bus route a, but another bus stop P2 between the two bus stops does not include a bus route a (i.e., the bus route a does not pass through the stop P2), the bus stop sequence may not include the bus stop P2.
FIG. 2 is an exemplary flow diagram of a method for bus stop sequence acquisition, according to some embodiments described herein. As shown in fig. 2, the bus stop sequence acquiring method 200 includes:
and step 210, acquiring a starting point and an end point of the user trip. In particular, this step 210 may be performed by the obtaining unit 312.
In some embodiments, the obtaining unit 312 may obtain a starting point and an end point of the user trip based on the user terminal. For example, the obtaining unit 312 may obtain a start point and/or an end point of a trip input in the user terminal by the user. For another example, the obtaining unit 312 may determine a starting point of the user trip based on the location of the user terminal. In some embodiments, the obtaining unit 312 may further obtain a starting point and an ending point of the historical user trip from the database.
based on the starting point and the ending point, a chain of bus stops from the starting point to the ending point is determined, step 220. In particular, this step 220 may be performed by the bus stop chain determination unit 314.
in some embodiments, a bus stop chain may be understood as a plurality of bus stops arranged in sequence from a bus stop at (or near) a starting point to a bus stop at (or near) an ending point.
in some embodiments, the bus stop chain determination unit 314 may determine a bus stop chain from a starting point to an ending point using the a-star algorithm. The a-star algorithm is an algorithm for obtaining the shortest path, and global information is introduced when each bus stop in the shortest path is checked, for example, the distance between the current bus stop and the end point is estimated and used as a measure for evaluating the possibility that the bus stop is located on the shortest path. In some embodiments, the global information may be road congestion, shortest time, least number of transfers, shortest walking time, etc. In one particular embodiment, the bus stop chain determination unit 314 may determine the shortest bus stop chain in use from the starting point to the ending point.
In some embodiments, the bus stop chain determination unit 314 may determine a chain of bus stops from a starting point to an end point based on a bus net graph. For example, the bus stop chain determination unit 314 may determine a shorter bus stop chain from the start point to the end point based on the bus net map. When determining the usage of the bus stop chain, the bus stop chain determining unit 314 may comprehensively consider any combination of one or more of the distance and/or time from the starting point to the first bus stop, the distance and/or time from the last bus stop to the end point, the distance and/or time between bus stops requiring transfer between different stations, and the like.
And step 230, determining a bus station sequence according to the bus station chain. In particular, this step 230 may be performed by the bus stop sequence determination unit 316.
In some embodiments, the bus stop sequence may be a complete chain of bus stops. In some embodiments, the bus stop sequence may also be part of a chain of bus stops. For example, the bus stop sequence determination unit 316 may divide the bus stop chain into two or more bus stop sequences.
in some embodiments, when there is no same bus route between two adjacent bus stops of the bus stop chain, the two adjacent bus stops need to be transferred by other methods (for example, from one bus stop to another bus stop by walking, riding, etc.). In this case, there must be a transfer (and a transfer from another station) between the two adjacent bus stops. The bus stop sequence determination unit 316 may divide the two adjacent bus stops into different bus stop sequences. By dividing the bus stop chain into two or more bus stop sequences according to whether different-station transfer exists, the calculation workload can be reduced and the calculation efficiency can be improved under the condition of ensuring the accuracy of the calculation result (namely determining the bus route with the least transfer times).
FIG. 3 is a block diagram of a bus route determination system in accordance with certain embodiments presented herein. As shown in fig. 3, the bus route determination system may include an acquisition module 310, a weight determination module 320, and a bus route determination module 330.
The acquisition module 310 may be used to acquire information/data in the bus route determination process. For example, the obtaining module 310 may obtain the bus stop sequence and the bus route corresponding to each bus stop in the bus stop sequence. In some embodiments, the acquisition module 310 may further include an acquisition unit 312, a bus site chain determination unit 314, and a bus site sequence determination unit 316.
the obtaining unit 312 may obtain a start point and an end point of the user trip. The acquisition unit 312 may acquire a start point and an end point of a user trip based on the user terminal.
The bus stop chain determination unit 314 may determine a bus stop chain from the start point to the end point based on the start point and the end point. For example, the bus stop chain determination unit 314 may determine the bus stop chain that is the shortest in time to use from the start point to the end point. For another example, the bus stop chain determination unit 314 may determine a bus stop chain from a starting point to an end point based on a bus net map.
The bus stop sequence determination unit 316 may determine a bus stop sequence according to the bus stop chain. For example, the bus stop sequence determination unit 316 may divide the bus stop chain into two or more bus stop sequences.
The weight determination module 320 may be used to determine the weight of each bus route at each bus stop. For example, the weight determination module 320 may determine the weight of each bus route at each bus stop based on the sequence of bus stops and the bus route corresponding to each bus stop. For another example, the weight determination module 320 may determine the weight of the bus route at the current bus stop based on the weight of the bus route at the previous bus stop and the state transition value between bus routes.
The bus route determination module 330 may be configured to determine a bus route with the least number of transfers in the bus stop sequence. For example, the bus route determining module 330 may determine one or more bus routes with the least number of transfers in the bus stop sequence according to the weight of the bus route at the bus stop. For example, the bus route determining module 330 may determine one or more bus routes with the least number of transfers in the bus stop sequence by a backtracking method. In some embodiments, the bus route determination module 330 may further include a parent line determination unit 332 and a bus route determination unit 334.
The parent line determination unit 332 may determine a parent line related to the bus line among the bus stops ahead of the bus stop based on the bus line with the largest weight in the last bus stop of the bus stop sequence. For example, the parent line determination unit 332 may determine the parent line in the previous bus stop according to the bus line with the largest weight in the last bus stop; and then sequentially determining the father line in the previous bus stop according to the father line in the next bus stop until determining the father line in the first bus stop of the bus stop sequence.
The bus route determination unit 334 may combine the parent lines of the bus stops to obtain one or more bus routes with the least number of transfers in the bus stop sequence.
It should be understood that the system and its modules shown in FIG. 3 may be implemented in a variety of ways. For example, in some embodiments, the system and its modules may be implemented in hardware, software, or a combination of software and hardware. Wherein the hardware portion may be implemented using dedicated logic; the software portions may be stored in a memory for execution by a suitable instruction execution system, such as a microprocessor or specially designed hardware. Those skilled in the art will appreciate that the methods and systems described above may be implemented using computer executable instructions and/or embodied in processor control code, such code being provided, for example, on a carrier medium such as a diskette, CD-or DVD-ROM, a programmable memory such as read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. The system and its modules in this specification may be implemented not only by hardware circuits such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc., but also by software executed by various types of processors, for example, or by a combination of the above hardware circuits and software (e.g., firmware).
It should be noted that the above description of the bus route determination system and its modules is for convenience of description only, and the description is not limited to the scope of the embodiments. It will be appreciated by those skilled in the art that, given the teachings of the present system, any combination of modules or sub-system configurations may be used to connect to other modules without departing from such teachings. For example, the acquiring module 310, the weight determining module 320 and the bus route determining module 330 disclosed in fig. 3 may be different modules in a system, or may be a module that implements the functions of two or more modules. For example, each module may share one memory module, and each module may have its own memory module. Such variations are within the scope of the present disclosure.
FIG. 4 is an example of a chain of bus stops between a user travel start and stop, according to some embodiments of the present description; FIG. 5 illustrates a specific example of determining a bus stop sequence from a chain of bus stops, according to some embodiments of the present description; FIG. 6 is an example of weight determination for each line on a bus stop according to some embodiments of the present description; fig. 7 is an example of bus route determination with a minimum number of transfers, according to some embodiments of the present description. The bus route determination method according to the embodiment of the present specification will be described in detail below with reference to fig. 4 to 7. It should be noted that the following examples are only for explaining the present application and do not constitute a limitation to the present application.
As shown in fig. 4, BO is the starting point of the user trip, and BD is the ending point of the user trip. P0-P8 are the bus stop chains determined by the bus stop chain determination unit 314 based on the start point BO and the end point BD. P0-P8 respectively represent bus stops, and letters below each bus stop represent bus lines corresponding to the bus stops. For example, the bus route corresponding to the bus stop P0 includes a route a and a route B. In this example, the bus lines corresponding to the bus stop P5 include a line C and a line F, the bus lines corresponding to the bus stop P6 include a line G and a line H, and there is no same bus line between two adjacent bus stops P5 and P6. Therefore, as shown in fig. 5, the bus stop sequence determination unit 316 may divide the P0-P8 bus stop chain into two bus stop sequences of P0-P5 and P6-P8. The specific steps of the bus route determination method will be described below by taking the bus stop sequence of P0-P5 as an example. It should be noted that the bus route determination method is also applicable to the case where the P0-P8 bus stop chain is used as the bus stop sequence.
As shown in fig. 6, for the bus stop sequence P0-P5, the weight determination module 320 can determine a state transition value between any two bus lines at two adjacent bus stops. Based on the state transition value between any two bus lines on two adjacent bus stops, the state transition matrix trans _ P can be determined. Assuming that the line names corresponding to the Pi stations are { r1, r2, r3}, and the line name corresponding to the next station Pj is { r1, r2, r4}, the transition matrix trans _ P between Pi and Pj is:
Pi\Pj
|
r1
|
r2
|
r4
|
r1
|
1
|
0
|
0
|
r2
|
0
|
1
|
0
|
r3
|
0
|
0
|
0 |
For example, a bus stop P0 corresponds to bus lines a and B, and a bus stop P1 corresponds to bus lines a and B, then it can be determined that: the state transition value of the bus line a at the bus stop P0 to the bus line a at the bus stop P1 is 1, the state transition value of the bus line a at the bus stop P0 to the bus line B at the bus stop P1 is 0, the state transition value of the bus line B at the bus stop P0 to the bus line a at the bus stop P1 is 0, and the state transition value of the bus line B at the bus stop P0 to the bus line B at the bus stop P1 is 1.
In this example, the weight determination module 320 may set the weight of each bus route of the first bus stop P0 to 1. The weight determination module 320 may further determine the weight of the bus route at the subsequent bus stop based on the weight of the bus route at the previous bus stop and the state transition value between bus routes. The weight calculation expression may be: v [ P ] [ r ] - [ max (V [ P-1] [ r0] + trans _ P [ r0] [ r ]), where P is the current bus station in the sequence of bus stations, P-1 is the previous bus station in the sequence of bus stations, r represents a certain line of the current station, r0 represents a certain line of the previous station, V [ P ] [ r ] represents the weight of the line r of the current station P, V [ P-1] [ r0] represents the weight of the line r0 of the previous bus station P-1, and trans _ P [ r0] [ r ] represents the state transition value between the line r0 of the previous station and the line r of the current station.
According to the weight calculation expression, the weight determination module 320 may sequentially calculate the weight of each bus route corresponding to P1-P5 according to the initial weight of the bus route of P0. For example, the weight calculation process of the bus route a at the bus stop P1 is as follows:
v [ P1] [ a ] ═ max (V [ P0] [ r0] + trans _ P [ r0] [ a ]) V [ P0] [ a ] + trans _ P [ a ] ═ 1+1 ═ 2. For another example, the weight calculation process of the bus route C at the bus stop P2 is as follows:
V [ P2] [ C ] ═ max (V [ P1] [ r0] + trans _ P [ r0] [ C ]) V [ P1] [ a ] + trans _ P [ a ] [ C ] ═ 2+0 ═ 2. By analogy, the weight determining module 320 may determine the weight of each bus route corresponding to each bus stop from P0 to P5, the calculation result is as shown in fig. 6, the number in fig. 6 indicates the weight of each bus route corresponding to each bus stop, and the parenthesis inside the back indicates the bus route in the previous bus stop, which is weighted by the bus route at the bus stop (i.e., the maximum value in the following: the weight of any different bus route at the previous bus stop, or the bus route in the same bus route at the previous bus stop is added with an increment set based on the positive number or multiplied by a multiple set based on the positive number).
The bus route determining module 330 may further determine one or more bus routes with the least number of transfers in the bus stop sequence P0-P5 according to the weight of each bus route corresponding to the bus stops P0-P5. In this example, the parent route determination unit 332 may determine that the parent route in the previous bus stop P4 corresponding thereto is C based on the bus route C with the largest weight in the last bus stop P5 of the bus stop sequence P0-P5. Further, the parent line determination unit 332 may determine, based on the parent line C in the bus stop P4, that the parent lines in the previous bus stop are A, B and C. Similarly, the parent line determination unit 332 may determine the parent line in the previous bus stop in turn from the parent line in the next bus stop until the parent line in the first bus stop P0 of the bus stop sequence is determined. The parent line situation of each bus stop determined by the parent line determination unit 332 is shown in fig. 7.
The bus route determining module 330 (e.g., the bus route determining unit 334) may further combine the parent lines of the bus stops to obtain one or more bus routes with the least number of transfers in the bus stop sequence P0-P5. As shown in fig. 7, the arrow indicates a backtracking direction, and a route formed by bus stops sequentially obtained along the arrow direction is a bus route with the least number of transfers. As shown in fig. 7, the bus routes with the least number of transfers in the bus stop sequence P0-P5 have 6 bus routes, which are respectively:
(1)A→A→A→A→C→C;
(2)B→B→B→B→C→C;
(3)A→A→A→C→C→C;
(4)B→B→B→C→C→C;
(5)A→A→C→C→C→C;
(6)B→B→C→C→C→C。
Taking a bus route (3) as an example, the bus route can represent: taking a bus route A from a bus stop P0 to a bus stop P3, changing the bus route C at P3, taking the bus route C until the last bus stop P5 in the sequence P0-P5; the number of times of transfer of the bus route is 1.
The beneficial effects that may be brought by the embodiments of the present description include, but are not limited to: (1) the shortest bus station chain in use time can be determined according to the starting point and the end point of the trip of the user; (2) the optimal path with the minimum transfer times in the bus station sequence can be determined; (3) all the optimal paths with the minimum transfer times in the bus station sequence can be conveniently determined. It is to be noted that different embodiments may produce different advantages, and in different embodiments, any one or combination of the above advantages may be produced, or any other advantages may be obtained.
Having thus described the basic concept, it will be apparent to those skilled in the art that the foregoing detailed disclosure is to be considered merely illustrative and not restrictive of the broad application. Various modifications, improvements and adaptations to the present description may occur to those skilled in the art, although not explicitly described herein. Such modifications, improvements and adaptations are proposed in the present specification and thus fall within the spirit and scope of the exemplary embodiments of the present specification.
also, the description uses specific words to describe embodiments of the description. Reference throughout this specification to "one embodiment," "an embodiment," and/or "some embodiments" means that a particular feature, structure, or characteristic described in connection with at least one embodiment of the specification is included. Therefore, it is emphasized and should be appreciated that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, some features, structures, or characteristics of one or more embodiments of the specification may be combined as appropriate.
Moreover, those skilled in the art will appreciate that aspects of the present description may be illustrated and described in terms of several patentable species or situations, including any new and useful combination of processes, machines, manufacture, or materials, or any new and useful improvement thereof. Accordingly, aspects of this description may be performed entirely by hardware, entirely by software (including firmware, resident software, micro-code, etc.), or by a combination of hardware and software. The above hardware or software may be referred to as "data block," module, "" engine, "" unit, "" component, "or" system. Furthermore, aspects of the present description may be represented as a computer product, including computer readable program code, embodied in one or more computer readable media.
The computer storage medium may comprise a propagated data signal with the computer program code embodied therewith, for example, on baseband or as part of a carrier wave. The propagated signal may take any of a variety of forms, including electromagnetic, optical, etc., or any suitable combination. A computer storage medium may be any computer-readable medium that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code located on a computer storage medium may be propagated over any suitable medium, including radio, cable, fiber optic cable, RF, or the like, or any combination of the preceding.
computer program code required for the operation of various portions of this specification may be written in any one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C + +, C #, VB.NET, Python, and the like, a conventional programming language such as C, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, a dynamic programming language such as Python, Ruby, and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any network format, such as a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet), or in a cloud computing environment, or as a service, such as a software as a service (SaaS).
Additionally, the order in which elements and sequences of the process are recited, the use of alphanumeric characters, or the use of other designations in this specification is not intended to limit the order of the processes and methods of the present application, unless otherwise specified in the claims. While certain presently contemplated useful embodiments have been discussed in the foregoing disclosure by way of various examples, it is to be understood that such detail is solely for that purpose and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover all modifications and equivalent arrangements that are within the spirit and scope of the embodiments herein. For example, although the system components described above may be implemented by hardware devices, they may also be implemented by software-only solutions, such as installing the described system on an existing server or mobile device.
similarly, it should be noted that in the foregoing description of embodiments of the specification, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the embodiments. This method of disclosure, however, is not intended to imply that more features than are expressly recited in a claim. Indeed, the embodiments may be characterized as having less than all of the features of a single embodiment disclosed above.