A driver-passenger dispatch optimization method based on multi-objective genetic algorithm

By optimizing driver-passenger dispatching through a multi-objective genetic algorithm, the multi-objective optimization problem of drivers, passengers, and platforms in shared travel is solved, and the interests of all three parties are taken into account while improving the algorithm effect.

CN114066008BActive Publication Date: 2025-09-16SHANGHAI SAIKE MOBILITY TECH SERVICE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202111193350.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-13
Publication Date
2025-09-16
Estimated Expiration
2041-10-13

AI Technical Summary

Technical Problem

In the field of shared travel, existing technologies for multi-objective optimization problems involving drivers, passengers, and platforms are unable to adapt to the real-time changing weights of massive data, resulting in poor algorithm performance.

Method used

A multi-objective genetic algorithm is used to iteratively optimize driver-passenger dispatching through fitness calculation, selection, crossover and mutation, ultimately achieving a balance between the interests of all three parties.

Benefits of technology

It increases the income of drivers and platforms, meets the needs of passengers for quick taxi hailing, reduces the difficulty and cost of manual weight allocation, and achieves better multi-objective optimization results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114066008B_ABST
    Figure CN114066008B_ABST
Patent Text Reader

Abstract

The present invention belongs to the field of supply and demand dispatching for online car-hailing, taxi, and ride-sharing services. It specifically discloses a driver-passenger dispatching optimization method based on a multi-objective genetic algorithm, including S1, optimization problem modeling; S2, generating an initial population; S3, initializing the number of iterations, t=0; copying w solutions 1 into 2w solutions; S4, multi-objective calculation of shared fitness for the 2w solutions, using the NSGA algorithm for the multi-objective genetic algorithm; S5, selecting and calculating the selection probability; S6, crossover; S7, mutation; S8, increasing the number of iterations; S9, selecting the solution with the largest shared fitness among S1…Sw as the optimal solution. The present invention solves the multi-objective optimization problem of driver-passenger dispatching in shared travel, while simultaneously achieving the optimal solution for the interests of drivers, passengers, and the platform.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of driver-passenger matching supply and demand dispatching for online car-hailing, taxis, ride-sharing, etc., and specifically to a driver-passenger dispatching optimization method based on a multi-objective genetic algorithm. Background Art

[0002] Matching driver and passenger orders in the ride-sharing sector has always been a key issue, requiring passengers to book rides quickly, drivers to earn high incomes, and the platform to profit. This is a typical multi-objective optimization problem, and the industry currently primarily approaches multi-objective optimization by manually assigning weights to multiple objectives. However, these methods employ fixed weights, which cannot adapt to the real-time weighting changes of massive amounts of data. Furthermore, the inability to pre-assign appropriate weights leads to poor algorithmic performance. Summary of the Invention

[0003] The purpose of the present invention is to provide a driver-passenger dispatch optimization method based on a multi-objective genetic algorithm to solve the problems raised in the above background technology.

[0004] To achieve the above-mentioned object, the present invention provides the following technical solution: a driver-passenger dispatch optimization method based on a multi-objective genetic algorithm, comprising the following specific steps:

[0005] S1. Optimization problem modeling;

[0006] S2, generate the initial population;

[0007] S3, initialize the number of iterations, t = 0; copy w solutions 1 into 2w solutions;

[0008] S4, calculate the shared fitness of 2w solutions with multiple objectives, and use NSGA algorithm for multi-objective genetic algorithm;

[0009] S5. Select and calculate the selection probability;

[0010] S6, cross;

[0011] S7, mutation;

[0012] S8, increase the number of iterations t = t + 1; if Go to S4; otherwise go to S8;

[0013] S9. Take the one with the largest shared fitness among S1…Sw as the optimal solution.

[0014] Preferably, step S1 is specifically as follows:

[0015] S1-1. Define three optimization objectives: (1) Passenger: Pickup time; (2) Driver: Maximum income; (3) Platform: Minimum subsidy;

[0016] S1-2. Set n passengers to values ​​from p1…pn, where f(pi) is the pick-up time for passenger i, 1≤i≤n;

[0017] The m drivers are assigned values ​​from d1…dm, g(dj) is the expected profit of the driver for accepting orders, 1≤j≤m, the c orders completed are from o1…oc, and the platform subsidy is the discount amount such as coupons used for the order, denoted as h(ok), 1≤k≤c;

[0018] S1-3, optimized objective function L = Max(-∑f(oi) / c), Max(∑g(oj)), Max(-∑h(ok));

[0019] For passengers and drivers who have not completed an order, f(p) = 0, g(d) = 0; find the set S that satisfies the objective function, and the elements of S are defined as pairs of drivers and passengers, such as (pi, dj) means that passenger i and driver j have completed an order, where pi and dj only appear once in S.

[0020] Preferably, step S2 is specifically as follows: there are w initial solutions in the group, and a heuristic search is used. For each initial solution, d1…dn are first shuffled using a shuffling algorithm, and then the nearest passengers are searched one by one for the shuffled d, with the rule being the nearest 3 kilometers. For the passenger p that is not selected this time, a matching pair (p, d) is generated and put into the set Sk, where 1≤k≤w. S1…Sk is the initial group.

[0021] Preferably, step S4 is specifically as follows:

[0022] S4-1, marking non-dominant individuals;

[0023] S4-2, specify the virtual fitness value;

[0024] S4-3, calculate shared fitness;

[0025] Among them, in the NSGA algorithm, the Euclidean distance calculation method between individuals Si and Sj in the non-dominated layer is: abstract individual S into three-dimensional features: -∑f(oi) / c, ∑g(oj), -∑h(ok), normalize these three features, and then calculate the Euclidean distance between individuals Si and Sj.

[0026] Preferably, step S5 is specifically as follows: 2w solutions are selected w times according to the fitness probability, and w solution parameters are selected to keep the population stable at w parents; the fitness of all individuals is the selection probability of the individual, that is, the selection probability of individual Sk each time, which is ps(Sk)=e(Sk) / ∑e(Sk), 1≤k≤2w.

[0027] Preferably, step S6 is specifically as follows:

[0028] S6-1. Randomly select two individuals from the parent generation w times, perform a crossover operation on each pair of individuals, and generate w pairs of offspring individuals;

[0029] S6-2. Define the crossover operation of (Skp, Skd) (1≤kp≤w, 1≤kd≤w, i≠j) as follows:

[0030] Randomly select an element (pkp, dkp) in Skp;

[0031] If an element (pkd, dkp) containing dkp is found in Skd, the element (pkp, dkp) in Skp is replaced by (pkd, dkp), and the element (pkd, dkp) in Skd is replaced by (pkp, dkp);

[0032] If no element containing dkp is found in Skd, no crossover operation is performed;

[0033] If pkd already exists in Skp, there is a replacement conflict. After the replacement is completed, the conflict is resolved by finding the driver d corresponding to pkd and repeatedly replacing the driver by d in Skp (pkd, d) and Skd until there is no conflict.

[0034] If pkp already exists in Skd, there is a replacement conflict at this time. The conflict is resolved after the replacement is completed. The conflict resolution method is: find the driver d corresponding to pkp, and repeat the driver-by-driver replacement operation on Skd's (pkp, d) and Skp until there is no conflict.

[0035] Preferably, step S7 is specifically as follows:

[0036] S7-1. Perform w*β mutation operations on w pairs of offspring individuals, where β is the mutation factor, and perform mutation operations on w*β offspring individuals;

[0037] S7-2. Define the specific process of mutation operation of Sk (1≤k≤w):

[0038] Randomly select an element (p, d) in Sk, find the neighbor set of p except d, and randomly select a neighbor within 3 kilometers.

[0039] (p, d) is replaced by (p, neigh);

[0040] If neigh already exists, it is a replacement conflict. The conflict will be resolved after the replacement is completed. The method to resolve the conflict is: find the passenger pass corresponding to neigh in Sk, and the driver corresponding to the passenger pass is recorded as neigh(pass). For the data pair (pass, neigh(pass)), the operation of randomly selecting a driver who is not neigh(pass) to replace pass is repeated until there is no conflict.

[0041] Compared with the prior art, the present invention has the following beneficial effects:

[0042] The present invention provides a driver-passenger dispatch optimization method based on a multi-objective genetic algorithm to solve the multi-objective optimization problem of driver-passenger taxi matching. The method uses a multi-objective genetic algorithm, and through fitness calculation, selection, crossover, mutation, and multiple iterations, the algorithm can gradually converge to the optimal solution.

[0043] The advantage of this method is that it can take into account the interests of drivers, passengers, and platforms, and the goals of these three parties can be optimized together; it avoids the problem of manual pre-assignment of weights to these three parties and the inability to dynamically adjust the weights.

[0044] In summary, compared with single-objective optimization or manual allocation of multi-objective optimization weights, the present invention has a good optimization effect, reduces the difficulty and cost of manual dimensions, and increases the benefits of drivers and the platform while making it faster for passengers to get a taxi. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 It is a schematic diagram of the overall process of the present invention. DETAILED DESCRIPTION

[0046] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.

[0047] See also Figure 1 The present invention provides a technical solution: a driver-passenger dispatch optimization method based on a multi-objective genetic algorithm, comprising the following specific steps:

[0048] S1. Optimization problem modeling; details are as follows:

[0049] S1-1. Define three optimization objectives: (1) Passenger: Pickup time; (2) Driver: Maximum income; (3) Platform: Minimum subsidy;

[0050] S1-2. Set n passengers to values ​​from p1…pn, where f(pi) is the pick-up time for passenger i, 1≤i≤n;

[0051] The m drivers are assigned values ​​from d1…dm, g(dj) is the expected profit of the driver for accepting orders, 1≤j≤m, the c orders completed are from o1…oc, and the platform subsidy is the discount amount such as coupons used for the order, denoted as h(ok), 1≤k≤c;

[0052] S1-3, optimized objective function L = Max(-∑f(oi) / c), Max(∑g(oj)), Max(-∑h(ok));

[0053] For passengers and drivers who have not completed an order, f(p) = 0, g(d) = 0; find the set S that satisfies the objective function, and the elements of S are defined as pairs of drivers and passengers, such as (pi, dj) means that passenger i and driver j have completed an order, where pi and dj only appear once in S.

[0054] S2. Generate an initial cluster. Specifically, there are w initial solutions within the cluster. Using a heuristic search, each initial solution is first shuffled using the shuffling algorithm. Then, for each of the shuffled ds, the nearest passenger is searched one by one within the 3-kilometer radius. For each unselected passenger p, a matching pair (p, d) is generated and placed in the set Sk, where 1≤k≤w. S1…Sk is the initial cluster.

[0055] S3, initialize the number of iterations, t = 0; copy w solutions 1 into 2w solutions;

[0056] S4. Calculate the shared fitness of the 2w solutions for multiple objectives. The multi-objective genetic algorithm uses the NSGA algorithm. The details are as follows:

[0057] S4-1, marking non-dominant individuals;

[0058] S4-2, specify the virtual fitness value;

[0059] S4-3, calculate shared fitness;

[0060] Among them, in the NSGA algorithm, the Euclidean distance calculation method between individuals Si and Sj in the non-dominated layer is: abstract individual S into three-dimensional features: -∑f(oi) / c, ∑g(oj), -∑h(ok), normalize these three features, and then calculate the Euclidean distance between individuals Si and Sj.

[0061] S5. Select and calculate the selection probability; specifically: select 2w solutions w times according to the fitness probability, select w solution parameters, and keep the population stable at w parents; the fitness of all individuals is the selection probability of the individual, that is, the selection probability of individual Sk each time, which is ps(Sk)=e(Sk) / ∑e(Sk), 1≤k≤2w.

[0062] S6, cross; details are as follows:

[0063] S6-1. Randomly select two individuals from the parent generation w times, perform a crossover operation on each pair of individuals, and generate w pairs of offspring individuals;

[0064] S6-2. Define the crossover operation of (Skp, Skd) (1≤kp≤w, 1≤kd≤w, i≠j) as follows:

[0065] Randomly select an element (pkp, dkp) in Skp;

[0066] If an element (pkd, dkp) containing dkp is found in Skd, the element (pkp, dkp) in Skp is replaced by (pkd, dkp), and the element (pkd, dkp) in Skd is replaced by (pkp, dkp);

[0067] If no element containing dkp is found in Skd, no crossover operation is performed;

[0068] If pkd already exists in Skp, there is a replacement conflict. After the replacement is completed, the conflict is resolved by finding the driver d corresponding to pkd and repeatedly replacing the driver by d in Skp (pkd, d) and Skd until there is no conflict.

[0069] If pkp already exists in Skd, there is a replacement conflict at this time. The conflict is resolved after the replacement is completed. The conflict resolution method is: find the driver d corresponding to pkp, and repeat the driver-by-driver replacement operation on Skd's (pkp, d) and Skp until there is no conflict.

[0070] S7, mutation; details are as follows:

[0071] S7-1. Perform w*β mutation operations on w pairs of offspring individuals, where β is the mutation factor, and perform mutation operations on w*β offspring individuals;

[0072] S7-2. Define the specific process of mutation operation of Sk (1≤k≤w):

[0073] Randomly select an element (p, d) in Sk, find the neighbor set of p except d, and randomly select a neighbor within 3 kilometers.

[0074] (p, d) is replaced by (p, neigh);

[0075] If neigh already exists, it is a replacement conflict. The conflict will be resolved after the replacement is completed. The method to resolve the conflict is: find the passenger pass corresponding to neigh in Sk, and the driver corresponding to the passenger pass is recorded as neigh(pass). For the data pair (pass, neigh(pass)), the operation of randomly selecting a driver who is not neigh(pass) to replace pass is repeated until there is no conflict.

[0076] S8, increase the number of iterations t = t + 1; if Go to S4; otherwise go to S8;

[0077] S9. Take the one with the largest shared fitness among S1…Sw as the optimal solution.

[0078] While embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions, and variations may be made to these embodiments without departing from the principles and spirit of the invention, and that the scope of the invention is defined by the appended claims and their equivalents.

Claims

1. A driver-passenger dispatch optimization method based on a multi-objective genetic algorithm, characterized in that: The specific steps include: S1. Optimization problem modeling; details are as follows: S1-1. Define three optimization objectives: (1) Passenger: Pickup time; (2) Driver: Maximum income; (3) Platform: Minimum subsidy; S1-2. Set n passengers to values ​​from p1…pn, where f(pi) is the pickup time 1min for passenger i; The m drivers are assigned values ​​from d1…dm, g(dj) is the expected profit of the driver for accepting orders, 1jm, and the c orders completed are assigned values ​​from o1…oc. The platform subsidy is the discount amount such as coupons used for the order, denoted as h(ok), 1kc; S1-3, optimized objective function L = Max(-∑f(oi) / c), Max(∑g(oj)), Max(-∑h(ok)); For passengers and drivers who have not yet completed an order, f(p) = 0 and g(d) = 0. A set S is found that satisfies this objective function. The elements of S are defined as pairs of drivers and passengers. For example, (pi, dj) indicates that passenger i and driver j have completed an order, where pi and dj appear only once in S. S2, generate the initial population; S3, initialize the number of iterations, t = 0; copy w solutions 1 into 2w solutions; S4, calculate the shared fitness of 2w solutions with multiple objectives, and use NSGA algorithm for multi-objective genetic algorithm; S5. Select and calculate the selection probability; S6, cross; S7, mutation; S8, increase the number of iterations t = t + 1; if Go to S4; otherwise go to S8; S9. Take the one with the largest shared fitness among S1…Sw as the optimal solution.

2. The driver-passenger dispatch optimization method based on a multi-objective genetic algorithm according to claim 1, characterized in that: Step S2 is as follows: there are w initial solutions in the cluster. A heuristic search is used. For each initial solution, d1…dn are shuffled using a shuffling algorithm. Then, for each shuffled d, the nearest passenger is searched one by one within the 3-kilometer radius. For the unselected passenger p, a matching pair (p, d) is generated and placed in the set Sk, where 1≤k≤w. S1…Sk is the initial cluster.

3. The driver-passenger dispatch optimization method based on a multi-objective genetic algorithm according to claim 1, characterized in that: Step S4 is specifically as follows: S4-1, marking non-dominant individuals; S4-2, specify the virtual fitness value; S4-3, calculate shared fitness; Among them, in the NSGA algorithm, the Euclidean distance calculation method between individuals Si and Sj in the non-dominated layer is: abstract individual S into three-dimensional features: -∑f(oi) / c, ∑g(oj), -∑h(ok), normalize these three features, and then calculate the Euclidean distance between individuals Si and Sj.

4. The driver-passenger dispatch optimization method based on a multi-objective genetic algorithm according to claim 1, characterized in that: Step S5 is specifically as follows: select w solutions from 2w solutions according to the fitness probability, select w solutions, and keep the population stable at w parents; the fitness of all individuals is the selection probability of the individual, that is, the selection probability of individual Sk each time, which is ps(Sk)=e(Sk) / ∑e(Sk), 1≤k≤2w.

5. The driver-passenger dispatch optimization method based on a multi-objective genetic algorithm according to claim 1, characterized in that: Step S6 is specifically as follows: S6-1. Randomly select two individuals from the parent generation w times, perform a crossover operation on each pair of individuals, and generate w pairs of offspring individuals; S6-2. Define the crossover operation of (Skp, Skd) (1≤kp≤w, 1≤kd≤w, i≠j) as follows: Randomly select an element (pkp, dkp) in Skp; If an element (pkd, dkp) containing dkp is found in Skd, the element (pkp, dkp) in Skp is replaced by (pkd, dkp), and the element (pkd, dkp) in Skd is replaced by (pkp, dkp); If no element containing dkp is found in Skd, no crossover operation is performed; If pkd already exists in Skp, there is a replacement conflict. After the replacement is completed, the conflict is resolved by finding the driver d corresponding to pkd and repeatedly replacing the driver by d in Skp (pkd, d) and Skd until there is no conflict. If pkp already exists in Skd, there is a replacement conflict at this time. The conflict is resolved after the replacement is completed. The conflict resolution method is: find the driver d corresponding to pkp, and repeat the driver-by-driver replacement operation on Skd's (pkp, d) and Skp until there is no conflict.

6. The driver-passenger dispatch optimization method based on a multi-objective genetic algorithm according to claim 1, characterized in that: Step S7 is specifically as follows: S7-1. Perform w*β mutation operations on w pairs of offspring individuals, where β is the mutation factor, and perform mutation operations on w*β offspring individuals; S7-2. Define the specific process of mutation operation of Sk (1≤k≤w): Randomly select an element (p, d) in Sk, find the neighbor set of p except d, and randomly select a neighbor within 3 kilometers. (p, d) is replaced by (p, neigh); If neigh already exists, it is a replacement conflict. The conflict will be resolved after the replacement is completed. The method to resolve the conflict is: find the passenger pass corresponding to neigh in Sk, and the driver corresponding to the passenger pass is recorded as neigh(pass). For the data pair (pass, neigh(pass)), the operation of randomly selecting a driver who is not neigh(pass) to replace pass is repeated until there is no conflict.