| Literature DB >> 35626526 |
Fei Luo1, Cheng Chen1, Joel Fuentes2, Yong Li1, Weichao Ding1.
Abstract
As a non-deterministic polynomial hard (NP-hard) problem, the shortest common supersequence (SCS) problem is normally solved by heuristic or metaheuristic algorithms. One type of metaheuristic algorithms that has relatively good performance for solving SCS problems is the chemical reaction optimization (CRO) algorithm. Several CRO-based proposals exist; however, they face such problems as unstable molecular population quality, uneven distribution, and local optimum (premature) solutions. To overcome these problems, we propose a new approach for the search mechanism of CRO-based algorithms. It combines the opposition-based learning (OBL) mechanism with the previously studied improved chemical reaction optimization (IMCRO) algorithm. This upgraded version is dubbed OBLIMCRO. In its initialization phase, the opposite population is constructed from a random population based on OBL; then, the initial population is generated by selecting molecules with the lowest potential energy from the random and opposite populations. In the iterative phase, reaction operators create new molecules, where the final population update is performed. Experiments show that the average running time of OBLIMCRO is more than 50% less than the average running time of CRO_SCS and its baseline algorithm, IMCRO, for the desoxyribonucleic acid (DNA) and protein datasets.Entities:
Keywords: NP-hard; chemical reaction optimization; heuristic algorithm; opposition-based learning; shortest common supersequence
Year: 2022 PMID: 35626526 PMCID: PMC9141143 DOI: 10.3390/e24050641
Source DB: PubMed Journal: Entropy (Basel) ISSN: 1099-4300 Impact factor: 2.738
Figure 1Framework of OBLIMCRO.
Figure 2Initialization based on OBL.
Figure 3Population generation.
Figure 4Solution representation.
Average SCS Length in random datasets.
|
|
| L | |||||
|---|---|---|---|---|---|---|---|
| ACO | DR | IBS | CRO_SCS | IMCRO | OBLIMCRO | ||
| 5 | 10 | 22.5 | 21.2 | 19.9 | 20.2 | 19.7 |
|
| 10 | 10 | 26.7 | 25.1 | 25.2 | 25.3 | 24.9 |
|
| 50 | 10 | 31.5 | 31.1 | 30.0 | 29.3 | 28.6 |
|
| 100 | 10 | 33.0 | 32.5 | 32.0 | 32.1 | 31.5 |
|
| 5 | 100 | 207.4 | 198.2 | 184.0 | 181.6 | 180.5 |
|
| 10 | 100 | 233.7 | 226.2 | 210.0 | 209.4 | 208.3 |
|
| 50 | 100 | 263.7 | 262.0 | 252.0 | 244.4 | 243.8 |
|
| 100 | 100 | 270.1 | 269.2 | 261.1 | 252.1 | 251.0 |
|
| 500 | 100 | 277.2 | 277.8 | 273.6 | 267.6 | 266.7 |
|
| 1000 | 100 | 281.7 | 278.5 | 276.8 | 270.1 | 269.7 |
|
| 5000 | 100 | 282.9 | 282.9 | 281.5 | 271.9 | 270.6 |
|
| 100 | 1000 | 2535.6 | 2531.6 | 2466.7 | 2443.2 | 2442.1 |
|
| 500 | 1000 | 2565.6 | 2578.8 | 2540.2 | 2532.1 | 2530.5 |
|
| 1000 | 1000 | 2570.8 | 2581.4 | 2555.5 | 2535.6 | 2533.9 |
|
| 5000 | 1000 | 2590.6 | 2586.9 | 2571.6 | 2562.9 | 2561.8 |
|
Average execution time in random datasets.
|
|
| T/s | |||||
|---|---|---|---|---|---|---|---|
| ACO | DR | IBS | CRO_SCS | IMCRO | OBLIMCRO | ||
| 5 | 10 | 0.8 | 0.018 | 0.03 | 0.008 | 0.008 |
|
| 10 | 10 | 1.00 | 0.033 | 0.03 | 0.03 | 0.03 |
|
| 50 | 10 | 2.3 | 0.1 | 0.07 | 0.08 | 0.065 |
|
| 100 | 10 | 3.5 | 0.15 | 0.12 | 0.08 | 0.055 |
|
| 5 | 100 | 5.9 | 0.6 | 0.14 | 0.02 | 0.013 |
|
| 10 | 100 | 8.6 | 1.18 | 0.22 | 0.14 | 0.12 |
|
| 50 | 100 | 16.3 | 4.07 | 0.46 | 0.37 | 0.26 |
|
| 100 | 100 | 23.5 | 7.28 | 0.91 | 0.65 | 0.52 |
|
| 500 | 100 | 65.5 | 27.3 | 3.06 | 1.69 | 0.92 |
|
| 1000 | 100 | 127.9 | 69.2 | 6.45 | 2.66 | 1.95 |
|
| 5000 | 100 | 706.6 | 339.4 | 41.65 | 5.01 | 5.01 |
|
| 100 | 1000 | 207.7 | 420.6 | 6.33 | 5.75 | 5.5 |
|
| 500 | 1000 | 651.1 | 1205.3 | 37.93 | 15.85 | 14.12 |
|
| 1000 | 1000 | 1296.5 | 2116.8 | 61.67 | 39.9 | 22.01 |
|
| 5000 | 1000 | 3101.6 | 3761.4 | 487.16 | 480.02 | 480.01 |
|
Average SCS Length in real datasets.
| Name |
|
| L | |||||
|---|---|---|---|---|---|---|---|---|
| ACO | DR | IBS | CRO_SCS | IMCRO | OBLIMCRO | |||
| DNA-1 | 100 | 500 | 1346.9 | 1332.6 | 1280.7 | 1271.4 | 1271.0 |
|
| DNA-2 | 500 | 500 | 1520.0 | 1404.6 | 1352.7 | 1351.8 | 1350.8 |
|
| DNA-3 | 100 | 1000 | 2712.2 | 2670.1 | 2542.9 | 2442.5 | 2440.8 |
|
| DNA-4 | 500 | 1000 | 3092.1 | 2782.7 | 2664.4 | 2532.4 | 2530.3 |
|
| DNA-5 | 100 | 100 | 297.8 | 285.4 | 272.3 | 252.1 | 251.5 |
|
| DNA-6 | 500 | 100 | 405.2 | 291.5 | 288.3 | 267.2 | 266.3 |
|
| PROT-1 | 100 | 500 | 6908.2 | 4851.4 | 4349.7 | 4312.4 | 4311.6 |
|
| PROT-2 | 500 | 500 | 8910.4 | 5545.2 | 5229.3 | 5041.1 | 5040.8 |
|
| PROT-3 | 1000 | 500 | 11086 | 5748.7 | 5395.6 |
| 5301.9 | 5302.1 |
| PROT-4 | 100 | 100 | 1303.5 | 1005.6 |
| 920.9 | 921.2 | 921.8 |
| PROT-5 | 500 | 100 | 1776.2 | 1205.1 |
| 1126.0 | 1125.9 | 1126.7 |
Average execution time in real datasets.
| Name |
|
| T/s | |||||
|---|---|---|---|---|---|---|---|---|
| ACO | DR | IBS | CRO_SCS | IMCRO | OBLIMCRO | |||
| DNA-1 | 100 | 500 | 151.3 | 349.4 | 3.00 | 1.91 | 1.91 |
|
| DNA-2 | 500 | 500 | 613.1 | 540.6 | 17.14 | 8.35 | 7.83 |
|
| DNA-3 | 100 | 1000 | 334.4 | 483.6 | 10.31 | 5.85 | 5.48 |
|
| DNA-4 | 500 | 1000 | 1514.1 | 1156.5 | 42.4 | 15.7 | 15.46 |
|
| DNA-5 | 100 | 100 | 41.97 | 7.87 | 0.92 | 0.56 | 0.49 |
|
| DNA-6 | 500 | 100 | 92.0 | 37.55 | 2.95 | 0.81 | 0.73 |
|
| PROT-1 | 100 | 500 | 560.3 | 1125.3 | 92.4 | 31.98 | 21.18 |
|
| PROT-2 | 500 | 500 | 1450.2 | 1905.4 | 307.8 | 52.29 | 50.50 |
|
| PROT-3 | 1000 | 500 | 3205.4 | 4002.7 | 1905.6 | 116.12 | 110.76 |
|
| PROT-4 | 100 | 100 | 16.4 | 31.2 | 13.5 | 1.66 | 1.54 |
|
| PROT-5 | 500 | 100 | 123.5 | 95.7 | 65.3 | 4.63 | 4.53 |
|
Iterations in random datasets.
|
|
| Threshold |
| IMCRO | OBLIMCRO |
|---|---|---|---|---|---|
| 5 | 10 | 10 | 13 | 11 |
|
| 10 | 10 | 25 | 27 | 26 |
|
| 50 | 10 | 3 | 5 | 4 |
|
| 100 | 10 | 1 | 3 | 2 |
|
| 5 | 100 | 40 | 41 | 41 |
|
| 10 | 100 | 40 | 41 | 41 |
|
| 50 | 100 | 10 | 11 | 11 |
|
| 100 | 100 | 7 | 10 | 8 |
|
| 500 | 100 | 1 | 2 | 2 |
|
| 1000 | 100 | 1 | 2 | 2 |
|
| 5000 | 100 | 1 | 3 | 2 |
|
| 100 | 1000 | 55 | 57 | 56 |
|
| 500 | 1000 | 10 | 11 | 11 |
|
| 1000 | 1000 | 4 | 6 | 5 |
|
| 5000 | 1000 | 1 | 2 | 1 |
|
Iterations in real datasets.
| Name |
|
| Threshold |
| IMCRO | OBLIMCRO |
|---|---|---|---|---|---|---|
| DNA-1 | 100 | 500 | 20 | 205 | 201 |
|
| DNA-2 | 500 | 500 | 6 | 61 | 61 |
|
| DNA-3 | 100 | 1000 | 30 | 301 | 301 |
|
| DNA-4 | 500 | 1000 | 16 | 161 | 161 |
|
| DNA-5 | 100 | 100 | 3 | 6 | 4 |
|
| DNA-6 | 500 | 100 | 41 | 45 | 41 |
|
| PROT-1 | 100 | 500 | 40 | 402 | 401 |
|
| PROT-2 | 500 | 500 | 8 | 82 | 81 |
|
| PROT-3 | 1000 | 500 | 4 | 43 | 41 |
|
| PROT-4 | 100 | 100 | 5 | 52 | 51 |
|
| PROT-5 | 500 | 100 | 2 | 21 | 21 |
|