Hybrid Particle Swarm Optimization Algorithm for Process Planning
Abstract
:1. Introduction
2. Literature Review
3. Description of Flexible Process Route
4. Mathematical Model
4.1. Problem Assumptions and Related Symbol Definitions
- (1)
- Each machine can only process one operation of the product at a time;
- (2)
- The product can only be processed on one machine at a time;
- (3)
- Each machine or equipment can be used at the initial moment;
- (4)
- The processing time of each operation is a fixed constant value;
- (5)
- The preparation time of each operation on the machine is included in the processing time, and has no relations to the operation sequence;
- (6)
- After an operation of the product is completed on the machine, it is immediately transferred to the machine of the next operation for processing, and the transportation time of the product between different machines is a certain constant value.
4.2. Mixed Integer Programming Model for Process Planning
5. Algorithm Design
5.1. Encoding and Decoding Methods
5.2. Hybrid Particle Swarm Optimization Algorithm for Process Planning
- Step 1:
- According to the problem, generate the initial population Initial_Pop according to a certain method, so that each particle Indi(i) is a feasible solution, the number of initialization iterations gen = 0, and the population size is N, where i = 1, 2, …, N;
- Step 2:
- Calculate the fitness fit(i) of each particle in the population according to the objective function of the problem;
- Step 3:
- Update the individual extreme value Pbest(i) and the group extreme value Gbest according to the fitness value of the particles;
- Step 4:
- Determine whether the algorithm termination condition is satisfied, if so, output the calculation result; otherwise, execute the next step and increase the number of iterations, gen = gen + 1;
- Step 5:
- Random crossover. Cross the particle Indi(i) with other random particles Indi(r), and calculate the fitness value RC_fit(i) of the offspring RC_Indi(i) which is generated by the crossover operation. If a particle with better fitness is obtained, that is, RC_fit(i) is better than fit(i), set Indi(i) = RC_Indi(i), and execute the next step after updating the current particle; otherwise, execute the next step directly;
- Step 6:
- Optimal crossover. Cross the particle Indi(i) with the group extreme particle Indi(Gbest), and calculate the fitness value GC_fit(i) of the offspring GC_Indi(i) which is generated by crossover operation. If a particle with better fitness is obtained, that is, GC_fit(i) is better than fit(i), set Indi(i) = GC_Indi(i), and execute the next step after updating the current particle; otherwise, execute the next step directly;
- Step 7:
- Mutation operation, the offspring generated by the mutation operation of particle Indi(i) is M_Indi(i), if a particle with better fitness is obtained, that is, M_fit(i) is better than fit(i), so that Indi(i) = M_Indi (i), jump to Step 3 after updating the current particle; otherwise, jump directly to Step 3.
5.3. Algorithm Details
5.3.1. Particle Swarm Initialization
- Step 1:
- Generate a digital sequence from 1 to n as the original code of the operation layer of the particle (chromosome), where n is the total number of optional operations for the product;
- Step 2:
- According to the process information table, select the available processing machines randomly for each operation to form the machine sequence as the original code of the machine layer;
- Step 3:
- According to the optional process of the product’s manufacturing features, randomly select one operation combination that satisfies the product completion condition (or adopt the tree diagram traversal method to randomly generate the operation combination that satisfies completion condition of the product according to the AND/OR diagram), and generate 0–1 digital sequence as the original code of the logic layer;
- Step 4:
- Combine the above three layers of codes to form a 3 × n coding matrix;
- Step 5:
- Generate a random sequence, and sort the above coding matrix according to the random sequence in units of columns;
- Step 6:
- Use the constraint adjustment method in the literature [5] to adjust the operation sequence that does not satisfy the constraint conditions of the product’s manufacturing feature sequence to make it a feasible solution;
- Step 7:
- If the size of the particle swarm is N, repeat the above step N times to obtain the initial particle swarm.
Generate Initial Population | |
1 | Input: N, ON, {OS}, {JM}, {COO} |
2 | Output: Initial POP |
3 | Set Initial POP = {Φ} |
4 | For n = 1 to N do |
5 | LO = [Φ], LM = [Φ], LL = [Φ], M(j) = [Φ] |
6 | LO = ones*(1 to ON) |
7 | For j = 1 to ON do |
8 | M(j) = rand(JM(j)) |
9 | End For |
10 | LM = [LM, M(j)] |
11 | Index_L = rand (OS(i)) |
12 | LL = zeros(1,ON) |
13 | LL (Index_L)= = 1 |
14 | Temp_Indi (n) = [LO;LM;LO] |
15 | Index_Total(n) = randperm(TN) |
16 | Indi(n) = Temp_Indi (n)(Index_Total(n)) |
17 | if Indi(n)→{COO}→illegal solution |
18 | run Constraint Adjustment function |
19 | Indi(n)→{COO}→feasible solution |
20 | End if |
21 | Initial POP = {Initial POP; Indi(n)} |
22 | End For |
5.3.2. Crossover Operators
- Step 1:
- Select two parent individuals, extract the operation layer, and record it as P1 and P2;
- Step 2:
- Mark the gene whose logical layer code is 1 in P1 or P2 (gray in the figure);
- Step 3:
- Select two intersection points randomly, record them as pos1 and pos2 from left to right;
- Step 4:
- Copy the genes on the left side of pos1 and the right side of pos2 in P1 to the offspring individual O1;
- Step 5:
- Mark the same genes in P2 which are copied from P1 to O1;
- Step 6:
- Insert the genes in P2 that are different from those in O1 into the vacancy of O1 in order;
- Step 7:
- According to the mark in Step 2, adjust the logic layer of O1, make the selection of operations for O1 the same as P1 or P2, to get the offspring O1 after crossover.
- Step 1:
- Select two parent individuals, extract the operation layer and the machine layer, and record them as P1 and P2;
- Step 2:
- Copy P1 as O1;
- Step 3:
- Select several operations in P1 randomly to conduct the crossover for machine layer (gray in the figure), and mark the same genes in P2 which are selected previously in P1;
- Step 4:
- Replace the machine layer code of the selected operations in O1 with the machine layer code of the same operation in P2, to get the offspring O1.
- Step 1:
- Select two parent individuals, extract the operation layer and logic layer, and record them as P1 and P2;
- Step 2:
- Copy P1 as O1;
- Step 3:
- Select one or more flexible operation segments of manufacturing features to be crossed. In the example, the first operation segment (7, 8, 9) belonging to a feature and the third operation segment (13, 14) belonging to another feature are selected;
- Step 4:
- Extract operation genes which are selected for crossover in Step3 from P2, and reorder them to make the sequence of these operations consistent with the sequence in P1;
- Step 5:
- Use the logic layer code after reorder which are extracted from P2 in Step 4 to replace the corresponding logic layer code in O1, to obtain the offspring O1 after crossover.
5.3.3. Mutation Operators
- Step 1:
- Select one parent individual, extract the operation layer, and record it as P;
- Step 2:
- Copy P as O;
- Step 3:
- Within the length range of O, select two mutation positions pos1 and pos2 randomly;
- Step 4:
- Exchange the positions of genes in pos1 and pos2 of O;
- Step 5:
- Check that whether the operation sequence after mutation satisfies the constraint requirements of manufacturing feature. If the constraint conditions are met, the offspring O after the mutation is obtained; otherwise, convert it into a feasible solution by using the constraint adjustment method to obtain the offspring O after the mutation.
- Step 1:
- Select one parent individual, extract the machine layer, and record it as P;
- Step 2:
- Copy P as O;
- Step 3:
- Within the length range of O, randomly select a mutation position pos whose logic layer code is not 0, and record the machine number as k before mutation;
- Step 4:
- Read the optional machine set M(j) of operation j which is on the position selected in Step 3;
- Step 5:
- If there are multiple candidate machines in M(j), select other machine randomly in M(j) whose serial number are not equal to k to replace the one in position pos of offspring O, and obtain the offspring O after mutation; Otherwise, go to Step 3 to reselect the position for mutation.
- Step 1:
- Select a parent individual, extract the operation layer and logic layer, and record it as P;
- Step 2:
- Copy P as O;
- Step 3:
- Randomly select an operation segment corresponding to one manufacturing feature, which has the flexible process, for logic layer mutation. In the example, the operation segment (11,12) belonging a feature is selected, and read the corresponding logic code (0,1);
- Step 4:
- Randomly select other optional process of the manufacturing feature to generate a new logic code, in the example (1,0);
- Step 5:
- Use the new logic code generated by Step 4 to replace the original logic code in O to obtain the offspring O after mutation.
6. Case Study
6.1. Case 1
6.2. Case 2
7. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
- Jin, L.; Zhang, C. Process Planning Optimization with Energy Consumption Reduction from a Novel Perspective: Mathematical Modeling and a Dynamic Programming-like Heuristic Algorithm. IEEE Access. 2019, 7, 7381–7396. [Google Scholar] [CrossRef]
- Li, X.; Gao, L.; Wen, X. Application of an Efficient Modified Particle Swarm Optimization Algorithm for Process Planning. Int. J. Adv. Manuf. Technol. 2013, 67, 1355–1369. [Google Scholar] [CrossRef]
- Yusof, Y.; Latif, K. Survey on Computer-aided Process Planning. Int. J. Adv. Manuf. Technol. 2014, 75, 77–89. [Google Scholar] [CrossRef] [Green Version]
- Al-Wswasi, M.; Ivanov, A.; Makatsoris, H. A survey on Smart Automated Computer-aided Process Planning (ACAPP) Techniques. Int. J. Adv. Manuf. Technol. 2018, 97, 809–832. [Google Scholar] [CrossRef] [Green Version]
- Li, W.D.; Ong, S.K.; Nee, A.Y.C. Hybrid Genetic Algorithm and Simulated Annealing Approach for the Optimization of Process Plans for Prismatic Parts. Int. J. Prod. Res. 2002, 40, 1899–1922. [Google Scholar] [CrossRef]
- Singh, D.K.J.; Jebaraj, C. Feature-based Design for Process Planning of Machining Processes with Optimization Using Genetic Algorithms. Int. J. Prod. Res. 2005, 43, 3855–3887. [Google Scholar] [CrossRef]
- Su, Y.; Chu, X.; Chen, D.; Sun, X. A genetic algorithm for operation sequencing in CAPP using edge selection based encoding strategy. J. Intell. Manuf. 2015, 29, 313–332. [Google Scholar] [CrossRef]
- Delolme, L.; Antomarchi, A.-L.; Durieux, S.; Duc, E. Decision-making for multi-criteria optimization of process planning. Mech. Ind. 2019, 20, 806. [Google Scholar] [CrossRef]
- Guo, Y.W.; Mileham, A.R.; Owen, G.W.; Li, W.D. Operation sequencing optimization using a particle swarm optimization approach. Proc. Inst. Mech. Eng. Part B J. Eng. Manuf. 2006, 220, 1945–1958. [Google Scholar] [CrossRef]
- Wang, J.; Kang, W.; Zhao, J.; Chu, K. A simulation approach to the process planning problem using a modified particle swarm optimization. Adv. Prod. Eng. Manag. 2016, 11, 77–92. [Google Scholar] [CrossRef]
- Miljković, Z.; Petrović, M. Application of Modified Multi-Objective Particle Swarm Optimisation Algorithm for Flexible Process Planning Problem. Int. J. Comput. Integr. Manuf. 2016, 30, 271–291. [Google Scholar] [CrossRef]
- Wu, W.; Zeng, J.; Huang, Z. A Hybrid Optimization Approach for Setup Planning with Tolerance Constraints. MATEC Web Conf. 2018, 249, 1–5. [Google Scholar] [CrossRef] [Green Version]
- Ma, G.H.; Zhang, Y.F.; Nee, A.Y.C. A Simulated Annealing-Based Optimization Algorithm for Process Planning. Int. J. Prod. Res. 2000, 38, 2671–2687. [Google Scholar] [CrossRef]
- Li, W.D.; Ong, S.K.; Nee, A.Y.C. Optimization of Process Plans Using a Constraint-Based Tabu Search Approach. Int. J. Prod. Res. 2004, 42, 1955–1985. [Google Scholar] [CrossRef]
- Lian, K.; Zhang, C.; Shao, X.; Zeng, Y. A multi-dimensional tabu search algorithm for the optimization of process planning. Sci. China Ser. E Technol. Sci. 2011, 54, 3211–3219. [Google Scholar] [CrossRef]
- Liu, X.J.; Yi, H.; Ni, Z.H. Application of Ant Colony Optimization Algorithm in Process Planning Optimization. J. Intell. Manuf. 2013, 24, 1–13. [Google Scholar] [CrossRef]
- Hu, Q.; Qiao, L.; Peng, G. An ant colony approach to operation sequencing optimization in process planning. Proc. Inst. Mech. Eng. Part B J. Eng. Manuf. 2016, 231, 470–489. [Google Scholar] [CrossRef]
- Chan, F.T.S.; Swarnkar, R.; Tiwari, M.K. Fuzzy Goal-Programming Model with an Artificial Immune System (AIS) Approach for a Machine Tool Selection and Operation Allocation Problem in a Flexible Manufacturing System. Int. J. Prod. Res. 2005, 43, 4147–4163. [Google Scholar] [CrossRef]
- Gao, B.; Hu, X.; Peng, Z.; Song, Y. Application of intelligent water drop algorithm in process planning optimization. Int. J. Adv. Manuf. Technol. 2020, 106, 5199–5211. [Google Scholar] [CrossRef]
- Li, X.Y.; Shao, X.Y.; Gao, L. Optimization of Flexible Process Planning by Genetic Programming. Int. J. Adv. Manuf. Technol. 2008, 38, 143–153. [Google Scholar] [CrossRef]
- Marinakis, Y.; Migdalas, A.; Sifaleras, A. A hybrid particle swarm optimization–variable neighborhood search algorithm for constrained shortest path problems. Eur. J. Oper. Res. 2017, 261, 819–834. [Google Scholar] [CrossRef]
- Cagnina, L.C.; Esquivel, S.C.; Gallard, R. Particle swarm optimization for sequencing problems: A Case Study. In Proceedings of the Congress on Evolutionary Computation, Portland, OR, USA, 19–23 June 2004; pp. 536–541. [Google Scholar]
- Kim, Y.K.; Park, K.; Ko, J. A Symbiotic Evolutionary Algorithm for the Integration of Process Planning and Job Shop Scheduling. Comput. Oper. Res. 2003, 30, 1151–1171. [Google Scholar] [CrossRef]
- Li, X. Research on the Solution Methods of Integrated Process Planning and Scheduling. Ph.D. Thesis, Huazhong University of Science and Technology, Wuhan, China, 2009. [Google Scholar]
Feature | Optional Operation | Optional Machine | Process Time | Sequence Constraints |
---|---|---|---|---|
F1 | O1 | M2, M3, M4 | 18, 17, 15 | Before ALL |
F2 | O2 | M2, M4, M5 | 10, 12, 14 | Before F3 |
F3 | O3 | M1, M2, M3, M4 | 12, 15, 18, 20 | Before F10, F11 |
F4 | O4 | M3, M4, M5 | 17, 16, 19 | Before F10, F11 |
F5 | O5 | M2, M4, M6 | 18, 20, 22 | Before F10, F11 |
F6 | O6 | M1, M2, M4 | 20, 22, 18 | Before F10, F11 |
F7 | O7 | M3, M4, M5, M6 | 14, 16, 14, 18 | Before F8, F9 |
O8→O9 | M2, M3, M5→M4, M5, M6 | 11, 10, 9→10, 12, 8 | ||
F8 | O10 | M1, M2, M3, M6 | 25, 28, 20 | |
F9 | O11 | M2, M4, M5 | 15, 17, 19 | |
O12 | M1, M2, M3, M6 | 20, 22, 25, 18 | ||
F10 | O13 | M2, M3, M5 | 18, 15, 20 | |
O14 | M3, M4, M6 | 18, 20, 15 | ||
F11 | O15 | M1, M2, M4, M6 | 5, 5, 6, 4 |
Parameter | Description |
---|---|
A huge positive number; | |
Total number of operations; | |
Total number of processing machines; | |
Total number of operation combinations; | |
Alternative process combination number; | |
Total operation quantity in the operation combination; | |
Operation number; | |
Machine number; | |
The operation in optional operation combination; | |
Process on machine ; | |
Start time of ; | |
Completion time of the product; | |
Completion time of ; | |
Processing time of ; | |
Transportation time of the product form machine to machine ; | |
If the operation combination is selected; Otherwise; | |
If is processed on machine ; Otherwise; | |
If operation is before operation ; Otherwise; | |
If the machine of the next operation of is , ; Otherwise |
Feature | Optional Operation | Optional Machine | Process Time | Sequence Constraints |
---|---|---|---|---|
F1 | O1 | M3, M8 | 8, 13 | Before F2, F3 |
F2 | O2→O3 | M5, M6, M8→M2 | 16, 12, 13→21 | Before F3 |
O4→O5 | M1, M5, M10→M9 | 13, 16, 18→17 | ||
F3 | O6 | M5, M8 | 46, 47 | |
F4 | O7 | M3, M7, M13 | 44, 48, 49 | Before F5, F6, F7 |
F5 | O8 | M5, M6, M13 | 17, 14, 10 | Before F6, F7 |
O9 | M5, M15 | 16, 13 | ||
F6 | O10 | M3, M11, M15 | 28, 27, 30 | Before F7 |
F7 | O11 | M10, M13 | 48, 50 | |
F8 | O12 | M5, M13, M15 | 31, 32, 36 | Before F9, F10, F11 |
F9 | O13 | M3, M6, M9 | 30, 28, 26 | Before F10, F11 |
O14→O15 | M2→M1, M14 | 11→16, 18 | ||
F10 | O16 | M4, M15 | 18, 19 | Before F11 |
F11 | O17 | M3, M10, M14 | 36, 32, |
Machine | M1 | M2 | M3 | M4 | M5 | M6 | M7 | M8 | M9 | M10 | M11 | M12 | M13 | M14 | M15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
M1 | 0 | 5 | 7 | 9 | 10 | 11 | 7 | 6 | 14 | 13 | 12 | 10 | 5 | 6 | 9 |
M2 | 5 | 0 | 3 | 4 | 5 | 7 | 2 | 7 | 6 | 4 | 7 | 12 | 10 | 7 | 8 |
M3 | 7 | 3 | 0 | 6 | 5 | 4 | 3 | 7 | 2 | 4 | 3 | 5 | 6 | 8 | 9 |
M4 | 9 | 4 | 6 | 0 | 4 | 4 | 6 | 7 | 4 | 10 | 12 | 13 | 14 | 15 | 16 |
M5 | 10 | 5 | 5 | 4 | 0 | 10 | 12 | 7 | 8 | 9 | 10 | 12 | 11 | 10 | 8 |
M6 | 11 | 7 | 4 | 4 | 10 | 0 | 4 | 4 | 5 | 5 | 6 | 7 | 6 | 7 | 8 |
M7 | 7 | 2 | 3 | 6 | 12 | 4 | 0 | 5 | 6 | 6 | 6 | 7 | 7 | 7 | 8 |
M8 | 6 | 7 | 7 | 7 | 7 | 4 | 5 | 0 | 4 | 2 | 3 | 4 | 2 | 4 | 3 |
M9 | 14 | 6 | 2 | 4 | 8 | 5 | 6 | 4 | 0 | 5 | 7 | 4 | 7 | 6 | 8 |
M10 | 13 | 4 | 4 | 10 | 9 | 5 | 6 | 2 | 5 | 0 | 8 | 10 | 12 | 14 | 7 |
M11 | 12 | 7 | 3 | 12 | 10 | 6 | 6 | 3 | 7 | 8 | 0 | 7 | 10 | 14 | 10 |
M12 | 10 | 12 | 5 | 13 | 12 | 7 | 7 | 4 | 4 | 10 | 7 | 0 | 10 | 12 | 10 |
M13 | 5 | 10 | 6 | 14 | 11 | 6 | 7 | 2 | 7 | 12 | 10 | 10 | 0 | 8 | 8 |
M14 | 6 | 7 | 8 | 15 | 10 | 7 | 7 | 4 | 6 | 14 | 14 | 12 | 8 | 0 | 9 |
M15 | 9 | 8 | 9 | 16 | 8 | 8 | 8 | 3 | 8 | 7 | 10 | 10 | 8 | 9 | 0 |
Algorithm | Simple SA | Simple GA | Modified PSO | Hybrid PSO | Improve Rate |
---|---|---|---|---|---|
Optimal result | 377 | 377 | 377 | 356 | 5.6% |
Average result | 378.1 | 380.2 | 377 | 358.5 | 4.9% |
Product Number | Optimal Result | Improved Rate | Computing Time (s) | |||
S-SA | S-GA | M-PSO | H-PSO | |||
1 | 303 | 303 | 303 | 292 | 3.63% | 11.57 |
2 | 359 | 359 | 359 | 351 | 2.23% | 17.66 |
3 | 502 | 502 | 498 | 489 | 1.81% | 18.76 |
4 | 314 | 314 | 314 | 349 | –11.15% | 17.74 |
5 | 314 | 314 | 314 | 282 | 10.19% | 18.65 |
6 | 409 | 409 | 408 | 391 | 4.17% | 19.14 |
7 | 304 | 304 | 304 | 304 | 0.00% | 17.72 |
8 | 358 | 358 | 358 | 353 | 1.40% | 18.69 |
9 | 393 | 392 | 391 | 390 | 0.26% | 19.23 |
10 | 264 | 264 | 264 | 264 | 0.00% | 14.64 |
11 | 271 | 271 | 271 | 266 | 1.85% | 12.75 |
12 | 442 | 442 | 442 | 432 | 2.26% | 19.15 |
13 | 216 | 216 | 216 | 215 | 0.46% | 18.19 |
14 | 269 | 269 | 269 | 244 | 9.29% | 16.12 |
15 | 358 | 357 | 357 | 354 | 0.84% | 16.83 |
16 | 248 | 248 | 248 | 244 | 1.61% | 17.98 |
17 | 314 | 314 | 314 | 300 | 4.46% | 18.62 |
18 | 361 | 361 | 360 | 356 | 1.11% | 18.44 |
Product Number | Average Result | Improved Rate | Computing Time (s) | |||
S-SA | S-GA | M-PSO | H-PSO | |||
1 | 303 | 303 | 303 | 292 | 3.63% | 10.87 |
2 | 361.2 | 360.7 | 359 | 352.4 | 1.84% | 18.06 |
3 | 504.9 | 503.6 | 500.3 | 492.2 | 1.62% | 17.58 |
4 | 315.7 | 314.8 | 314 | 349.4 | −11.27% | 18.69 |
5 | 315.8 | 315.1 | 314 | 282 | 10.19% | 20.28 |
6 | 411.3 | 410.3 | 408.8 | 392.3 | 4.04% | 18.32 |
7 | 304.5 | 304.2 | 304 | 304 | 0.00% | 17.21 |
8 | 358 | 358 | 358 | 353 | 1.40% | 17.75 |
9 | 395.7 | 394.1 | 391.9 | 390.3 | 0.41% | 21.43 |
10 | 264 | 264 | 264 | 264 | 0.00% | 12.22 |
11 | 271.3 | 271.1 | 271 | 266 | 1.85% | 13.67 |
12 | 442.8 | 443.1 | 442 | 433.5 | 1.92% | 18.94 |
13 | 216.1 | 216.2 | 216 | 215 | 0.46% | 19.34 |
14 | 270.5 | 269.6 | 269 | 244 | 9.29% | 15.08 |
15 | 361.3 | 359.2 | 357 | 354.7 | 0.64% | 17.97 |
16 | 248 | 248 | 248 | 244 | 1.61% | 16.50 |
17 | 315.1 | 314.8 | 314.6 | 302.6 | 3.81% | 19.25 |
18 | 363.5 | 363.7 | 361.3 | 358.2 | 0.86% | 20.62 |
Product Number | Optimal Process Route Scheme |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Zhang, X.; Guo, P.; Zhang, H.; Yao, J. Hybrid Particle Swarm Optimization Algorithm for Process Planning. Mathematics 2020, 8, 1745. https://doi.org/10.3390/math8101745
Zhang X, Guo P, Zhang H, Yao J. Hybrid Particle Swarm Optimization Algorithm for Process Planning. Mathematics. 2020; 8(10):1745. https://doi.org/10.3390/math8101745
Chicago/Turabian StyleZhang, Xu, Pan Guo, Hua Zhang, and Jin Yao. 2020. "Hybrid Particle Swarm Optimization Algorithm for Process Planning" Mathematics 8, no. 10: 1745. https://doi.org/10.3390/math8101745
APA StyleZhang, X., Guo, P., Zhang, H., & Yao, J. (2020). Hybrid Particle Swarm Optimization Algorithm for Process Planning. Mathematics, 8(10), 1745. https://doi.org/10.3390/math8101745