| Literature DB >> 36093485 |
Zhaocai Wang1, Xian Wu1, Tunhua Wu2.
Abstract
The quota traveling salesman problem (QTSP) is a variant of the traveling salesman problem (TSP), which is a classical optimization problem. In the QTSP, the salesman visits some of the n cities to meet a given sales quota Q while having minimized travel costs. In this paper, we develop a DNA algorithm based on Adleman-Lipton model to solve the quota traveling salesman problem. Its time complexity is O(n 2+Q), which is a significant improvement over previous algorithms with exponential complexity. A coding scheme of element information is pointed out, and a reasonable biological algorithm is raised by using limited conditions, whose feasibility is verified by simulation experiments. The innovation of this study is to propose a polynomial time complexity algorithm to solve the QTSP. This advantage will become more obvious as the problem scale increases compared with the algorithm of exponential computational complexity. The proposed DNA algorithm also has the significant advantages of having a large storage capacity and consuming less energy during the operation. With the maturity of DNA manipulation technology, DNA computing, as one of the parallel biological computing methods, has the potential to solve more complex NP-hard problems.Entities:
Mesh:
Year: 2022 PMID: 36093485 PMCID: PMC9451995 DOI: 10.1155/2022/1450756
Source DB: PubMed Journal: Comput Intell Neurosci
Figure 1DNA double helix structure.
Figure 2The distance between vertices and the quota of vertices, respectively.
Figure 3Flowchart for computing the QTSP.
Notations and symbols.
| Symbol | Description |
|---|---|
|
| Vertex set |
|
| Edge set |
|
| Quota of the |
|
| The distance between |
|
| DNA string of the |
|
| DNA string representing weight |
|
| Number of vertices |
|
| Number of edges |
|
| The |
|
| Minimum quota for problems |
| # | Start and end flags of DNA strands |
|
| DNA string representing vertex |
An example of the QTSP instance naming.
| The PCTSP intance |
| Suffix | The QTSP instance |
|---|---|---|---|
| problem_20_100_100_1000.pctsp | 0.2 | 2 | problem_20_100_100_1000_2.qtsp |
| 0.5 | 5 | problem_20_100_100_1000_5.qtsp | |
| 0.8 | 8 | problem_20_100_100_1000_8.qtsp |
Results of the QTSP instances.
| Id | Name |
|
|
|
| Time (s) |
|---|---|---|---|---|---|---|
| 1 | problem_20_100_100_1000_2.qtsp | 20 | 154 | 181 | 294 | 0.1018 |
| 2 | problem_20_100_100_10000_2.qtsp | 20 | 187 | 215 | 2400 | 0.5031 |
| 3 | problem_20_100_1000_1000_2.qtsp | 20 | 179 | 215 | 330 | 0.101 |
| 4 | problem_20_100_1000_10000_2.qtsp | 20 | 168 | 199 | 4387 | 0.344 |
| 5 | problem_20_100_10000_1000_2.qtsp | 20 | 181 | 315 | 288 | 0.1029 |
| 6 | problem_20_100_10000_10000_2.qtsp | 20 | 138 | 140 | 3973 | 0.6124 |
| 7 | problem_40_100_100_1000_2.qtsp | 40 | 338 | 395 | 196 | 1.130 |
| 8 | problem_40_100_100_10000_2.qtsp | 40 | 328 | 420 | 1835 | 0.5252 |
| 9 | problem_40_100_1000_1000_2.qtsp | 40 | 312 | 341 | 222 | 1.413 |
| 10 | problem_40_100_1000_10000_2.qtsp | 40 | 376 | 391 | 1861 | 1.209 |
| 11 | problem_40_100_10000_1000_2.qtsp | 40 | 356 | 359 | 222 | 1.509 |
| 12 | problem_40_100_10000_10000_2.qtsp | 40 | 407 | 413 | 1751 | 0.7927 |
| 13 | problem_60_100_100_1000_2.qtsp | 60 | 540 | 583 | 161 | 1.996 |
| 14 | problem_60_100_100_10000_2.qtsp | 60 | 516 | 519 | 1689 | 7.119 |
| 15 | problem_60_100_1000_1000_2.qtsp | 60 | 576 | 612 | 115 | 1.279 |
| 16 | problem_60_100_1000_10000_2.qtsp | 60 | 523 | 596 | 2212 | 18.01 |
| 17 | problem_60_100_10000_1000_2.qtsp | 60 | 478 | 495 | 183 | 7.687 |
| 18 | problem_60_100_10000_10000_2.qtsp | 60 | 556 | 650 | 1722 | 5.864 |
| 19 | problem_80_100_100_1000_2.qtsp | 80 | 697 | 730 | 185 | 265.2 |
| 20 | problem_80_100_100_10000_2.qtsp | 80 | 779 | 787 | 1763 | 109.7 |
| 21 | problem_80_100_1000_1000_2.qtsp | 80 | 739 | 766 | 132 | 8.856 |
| 22 | problem_80_100_1000_10000_2.qtsp | 80 | 775 | 789 | 1046 | 1.573 |
| 23 | problem_80_100_10000_1000_2.qtsp | 80 | 688 | 688 | 204 | 204.5 |
| 24 | problem_80_100_10000_10000_2.qtsp | 80 | 776 | 788 | 1802 | 28.49 |
| 25 | problem_100_100_1000_1000_2.qtsp | 100 | 1021 | 1047 | 91 | 3.367 |
| 26 | problem_100_100_1000_10000_2.qtsp | 100 | 960 | 1057 | 944 | 7.195 |
| 27 | problem_100_100_10000_1000_2.qtsp | 100 | 961 | 1031 | 113 | 169.2 |
| 28 | problem_100_100_10000_10000_2.qtsp | 100 | 837 | 837 | 1261 | 21.30 |
| 29 | problem_20_100_100_1000_5.qtsp | 20 | 386 | 405 | 651 | 0.7524 |
| 30 | problem_20_100_100_10000_5.qtsp | 20 | 469 | 482 | 3867 | 0.176 |
| 31 | problem_20_100_1000_1000_5.qtsp | 20 | 449 | 477 | 571 | 0.361 |
| 32 | problem_20_100_1000_10000_5.qtsp | 20 | 422 | 445 | 8319 | 0.7272 |
| 33 | problem_20_100_10000_1000_5.qtsp | 20 | 452 | 464 | 419 | 0.1934 |
| 34 | problem_20_100_10000_10000_5.qtsp | 20 | 347 | 351 | 6374 | 0.2405 |
| 35 | problem_40_100_100_1000_5.qtsp | 40 | 846 | 855 | 358 | 1.897 |
| 36 | problem_40_100_100_10000_5.qtsp | 40 | 821 | 898 | 3447 | 5.922 |
| 37 | problem_40_100_1000_1000_5.qtsp | 40 | 780 | 832 | 444 | 5.036 |
| 38 | problem_40_100_1000_10000_5.qtsp | 40 | 940 | 940 | 3384 | 2.254 |
| 39 | problem_40_100_10000_1000_5.qtsp | 40 | 892 | 897 | 426 | 14.48 |
| 40 | problem_40_100_10000_10000_5.qtsp | 40 | 1019 | 1059 | 3475 | 1.677 |
| 41 | problem_60_100_100_1000_5.qtsp | 60 | 1351 | 1368 | 419 | 14.16 |
| 42 | problem_60_100_100_10000_5.qtsp | 60 | 1291 | 1300 | 4407 | 25.11 |
| 43 | problem_60_100_1000_1000_5.qtsp | 60 | 1440 | 1461 | 385 | 2.656 |
| 44 | problem_60_100_1000_10000_5.qtsp | 60 | 1308 | 1323 | 4536 | 2.678 |
| 45 | problem_60_100_10000_1000_5.qtsp | 60 | 1196 | 1200 | 385 | 2.407 |
| 46 | problem_60_100_10000_10000_5.qtsp | 60 | 1390 | 1392 | 3623 | 12.80 |
| 47 | problem_20_100_100_1000_8.qtsp | 20 | 617 | 619 | 1097 | 0.3255 |
| 48 | problem_20_100_100_10000_8.qtsp | 20 | 750 | 762 | 7565 | 0.2571 |
| 49 | problem_20_100_1000_1000_8.qtsp | 20 | 719 | 743 | 1045 | 0.311 |
| 50 | problem_20_100_1000_10000_8.qtsp | 20 | 675 | 691 | 14319 | 0.3447 |
| 51 | problem_20_100_10000_1000_8.qtsp | 20 | 724 | 728 | 774 | 0.2847 |
| 52 | problem_20_100_10000_10000_8.qtsp | 20 | 555 | 559 | 10480 | 0.516 |
| 53 | problem_40_100_100_1000_8.qtsp | 40 | 1354 | 1355 | 752 | 0.4747 |
| 54 | problem_40_100_100_10000_8.qtsp | 40 | 1314 | 1319 | 8439 | 12.23 |
| 55 | problem_40_100_1000_1000_8.qtsp | 40 | 1248 | 1251 | 782 | 8.271 |
| 56 | problem_40_100_1000_10000_8.qtsp | 40 | 1504 | 1507 | 6658 | 2.253 |
| 57 | problem_40_100_10000_1000_8.qtsp | 40 | 1427 | 1449 | 700 | 5.133 |
| 58 | problem_40_100_10000_10000_8.qtsp | 40 | 1630 | 1630 | 7850 | 2.513 |
| 59 | problem_60_100_100_1000_8.qtsp | 60 | 2161 | 2169 | 825 | 13.56 |
| 60 | problem_60_100_100_10000_8.qtsp | 60 | 2066 | 2074 | 8316 | 19.71 |
| 61 | problem_60_100_1000_1000_8.qtsp | 60 | 2304 | 2311 | 805 | 3.216 |
| 62 | problem_60_100_1000_10000_8.qtsp | 60 | 2093 | 2094 | 10206 | 72.78 |
| 63 | problem_60_100_10000_1000_8.qtsp | 60 | 1913 | 1927 | 810 | 3.029 |
| 64 | problem_60_100_10000_10000_8.qtsp | 60 | 2224 | 2228 | 8580 | 17.29 |
Routes of the QTSP instances.
| Id | Route |
|---|---|
| 1 | [0, 11, 8, 6, 15, 0] |
| 2 | [0, 13, 3, 16, 6, 12, 15, 0] |
| 3 | [0, 11, 2, 7, 8, 0] |
| 4 | [0, 14, 5, 15, 0] |
| 5 | [0, 8, 10, 19, 16, 0] |
| 6 | [0, 13, 15, 8, 16, 0] |
| 7 | [0, 12, 18, 5, 27, 20, 13, 17, 37, 0] |
| 8 | [0, 5, 12, 13, 39, 18, 32, 22, 0] |
| 9 | [0, 39, 36, 6, 25, 30, 27, 5, 0] |
| 10 | [0, 16, 36, 27, 19, 37, 3, 38, 31, 0] |
| 11 | [0, 6, 7, 37, 10, 30, 21, 0] |
| 12 | [0, 20, 13, 32, 21, 28, 25, 23, 17, 0] |
| 13 | [0, 45, 49, 59, 36, 51, 44, 54, 23, 18, 3, 0] |
| 14 | [0, 34, 3, 16, 8, 33, 55, 28, 39, 50, 0] |
| 15 | [0, 56, 50, 6, 19, 13, 7, 14, 10, 46, 43, 39, 36, 34, 41, 12, 55, 0] |
| 16 | [0, 30, 33, 39, 59, 43, 46, 15, 20, 42, 0] |
| 17 | [0, 14, 38, 25, 7, 57, 26, 31, 20, 21, 24, 46, 0] |
| 18 | [0, 32, 19, 4, 18, 57, 22, 34, 9, 59, 33, 0] |
| 19 | [0, 42, 70, 32, 13, 72, 19, 63, 78, 66, 58, 55, 41, 68, 0] |
| 20 | [0, 27, 56, 73, 55, 46, 77, 17, 67, 32, 9, 72, 11, 15, 60, 33, 0] |
| 21 | [0, 67, 72, 5, 55, 8, 17, 57, 70, 64, 63, 33, 52, 42, 38, 7, 51, 0] |
| 22 | [0, 44, 25, 28, 66, 29, 11, 52, 16, 75, 62, 46, 13, 51, 0] |
| 23 | [0, 59, 48, 34, 23, 40, 20, 41, 7, 50, 6, 5, 14, 78, 28, 47, 0] |
| 24 | [0, 10, 35, 15, 20, 79, 67, 26, 56, 60, 77, 70, 63, 30, 41, 0] |
| 25 | [0, 69, 70, 4, 32, 84, 93, 28, 41, 43, 31, 78, 91, 88, 2, 89, 17, 0] |
| 26 | [0, 17, 81, 55, 95, 99, 29, 71, 68, 94, 66, 22, 51, 16, 46, 2, 58, 79, 52, 30, 76, 75, 0] |
| 27 | [0, 69, 8, 11, 56, 49, 37, 25, 66, 89, 29, 44, 47, 53, 34, 59, 33, 96, 0] |
| 28 | [0, 42, 39, 21, 70, 33, 90, 78, 49, 51, 45, 97, 67, 17, 14, 91, 36, 60, 18, 3, 0] |
| 29 | [0, 15, 10, 9, 3, 14, 4, 11, 0] |
| 30 | [0, 15, 12, 6, 16, 3, 13, 17, 11, 18, 0] |
| 31 | [0, 11, 6, 14, 18, 7, 8, 17, 2, 12, 13, 0] |
| 32 | [0, 4, 7, 16, 19, 11, 14, 5, 15, 0] |
| 33 | [0, 4, 11, 1, 6, 3, 8, 10, 19, 16, 0] |
| 34 | [0, 13, 15, 11, 6, 18, 9, 4, 8, 16, 0] |
| 35 | [0, 12, 18, 5, 27, 20, 4, 10, 33, 1, 13, 35, 26, 22, 36, 31, 11, 29, 24, 37, 0] |
| 36 | [0, 22, 32, 6, 27, 38, 23, 16, 35, 1, 34, 3, 18, 37, 28, 10, 11, 12, 5, 0] |
| 37 | [0, 39, 36, 6, 25, 30, 17, 26, 37, 20, 38, 14, 13, 8, 23, 0] |
| 38 | [0, 16, 36, 21, 35, 38, 14, 34, 3, 37, 19, 7, 11, 24, 26, 15, 17, 31, 0] |
| 39 | [0, 21, 1, 17, 9, 8, 26, 7, 37, 10, 30, 3, 2, 31, 6, 0] |
| 40 | [0, 20, 13, 32, 39, 33, 14, 29, 4, 11, 38, 26, 3, 28, 25, 23, 17, 0] |
| 41 | [0, 45, 49, 59, 36, 56, 22, 18, 23, 54, 44, 51, 25, 14, 19, 34, 6, 42, 27, 50, 33, 37, 3, 0] |
| 42 | [0, 34, 1, 18, 5, 53, 58, 23, 10, 57, 14, 22, 48, 44, 52, 40, 30, 8, 33, 55, 28, 39, 50, 0] |
| 43 | [0, 55, 12, 30, 31, 48, 35, 20, 25, 42, 47, 43, 39, 36, 34, 41, 22, 23, 53, 57, 14, 7, 13, 19, 1, 17, 27, 50, 56, 0] |
| 44 | [0, 42, 20, 15, 3, 38, 37, 45, 52, 7, 22, 44, 17, 14, 55, 23, 40, 46, 43, 59, 39, 33, 30, 0] |
| 45 | [0, 46, 24, 21, 30, 48, 23, 54, 1, 39, 49, 7, 25, 47, 55, 11, 10, 33, 3, 53, 37, 35, 8, 20, 31, 26, 18, 0] |
| 46 | [0, 33, 59, 9, 34, 22, 57, 3, 11, 7, 20, 14, 24, 1, 41, 21, 50, 54, 56, 46, 53, 18, 4, 19, 32, 0] |
| 47 | [0, 11, 8, 9, 3, 14, 5, 17, 19, 7, 12, 16, 10, 15, 0] |
| 48 | [0, 13, 3, 16, 6, 1, 7, 9, 17, 11, 2, 18, 14, 15, 0] |
| 49 | [0, 13, 12, 2, 17, 8, 7, 18, 15, 9, 6, 16, 5, 4, 3, 11, 0] |
| 50 | [0, 4, 7, 12, 14, 11, 19, 16, 1, 3, 10, 13, 9, 2, 5, 15, 0] |
| 51 | [0, 8, 10, 19, 16, 12, 2, 11, 1, 6, 7, 15, 18, 4, 0] |
| 52 | [0, 16, 8, 4, 9, 18, 6, 11, 15, 13, 14, 5, 7, 12, 0] |
| 53 | [0, 37, 24, 29, 32, 6, 33, 10, 4, 20, 27, 9, 23, 11, 31, 34, 5, 38, 17, 13, 35, 26, 22, 36, 2, 30, 15, 18, 12, 0] |
| 54 | [0, 5, 2, 14, 4, 36, 25, 29, 32, 6, 27, 38, 23, 16, 35, 1, 34, 3, 18, 39, 37, 28, 10, 11, 12, 31, 9, 7, 33, 22, 0] |
| 55 | [0, 23, 25, 27, 30, 17, 26, 37, 24, 9, 1, 29, 4, 16, 22, 20, 38, 14, 13, 8, 2, 19, 33, 35, 21, 6, 36, 39, 0] |
| 56 | [0, 31, 18, 7, 19, 37, 3, 34, 30, 4, 29, 20, 1, 39, 26, 24, 11, 15, 17, 9, 22, 35, 21, 36, 16, 0] |
| 57 | [0, 18, 26, 7, 37, 10, 32, 20, 6, 31, 2, 3, 30, 39, 16, 33, 12, 1, 14, 38, 17, 9, 8, 27, 25, 29, 34, 21, 0] |
| 58 | [0, 20, 13, 27, 34, 19, 36, 6, 18, 10, 31, 37, 22, 2, 3, 26, 38, 11, 4, 29, 14, 33, 39, 32, 21, 28, 25, 23, 17, 0] |
| 59 | [0, 41, 8, 5, 53, 58, 24, 35, 11, 48, 38, 1, 39, 28, 33, 20, 37, 26, 55, 43, 10, 56, 22, 18, 23, 54, 44, 3, 50, 27, 42, 6, 34, 19, 14, 25, 51, 36, 59, 49, 45, 0] |
| 60 | [0, 34, 3, 26, 23, 58, 53, 5, 18, 1, 9, 16, 8, 30, 40, 52, 44, 41, 46, 49, 21, 59, 32, 56, 43, 48, 22, 14, 57, 10, 12, 20, 25, 27, 36, 51, 33, 55, 28, 39, 50, 0] |
| 61 | [0, 56, 50, 27, 13, 19, 1, 17, 24, 7, 14, 10, 46, 11, 32, 33, 30, 12, 55, 28, 54, 16, 43, 47, 42, 25, 20, 35, 48, 31, 41, 22, 5, 39, 36, 34, 8, 4, 59, 57, 53, 23, 26, 29, 58, 0] |
| 62 | [0, 42, 20, 15, 6, 51, 53, 44, 22, 7, 52, 45, 37, 38, 3, 10, 27, 48, 11, 2, 47, 36, 35, 16, 13, 8, 26, 25, 18, 49, 23, 50, 12, 17, 14, 55, 31, 40, 46, 43, 59, 39, 33, 30, 0] |
| 63 | [0, 46, 24, 21, 30, 29, 39, 49, 55, 47, 25, 7, 57, 38, 17, 32, 2, 58, 45, 27, 37, 53, 8, 35, 23, 42, 10, 33, 3, 16, 9, 12, 20, 31, 26, 18, 0] |
| 64 | [0, 32, 57, 3, 11, 7, 26, 45, 22, 34, 9, 38, 48, 8, 30, 28, 49, 16, 54, 50, 21, 41, 52, 25, 27, 37, 12, 2, 46, 53, 18, 4, 19, 58, 20, 14, 24, 1, 0] |
Sequences chosen to represent A, B, #, ψ, X and (i ∈ {1,2,…, 6}) for the QTSP in Figure 2.
| Bit | 3′ − 5′ DNA sequence | Bit | 3′ − 5′ DNA sequence |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| # |
|
|
|
|
|
|
|
|
Sequences chosen to represent the elements AB(i ∈ {1,2,…, 6}) for the QTSP in Figure 2.
| Bit | 3′ − 5′ DNA sequence | Bit | 3′ − 5′ DNA sequence |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Routes and DNA strands satisfying quota through different vertices in Figure 2.
| Routing | DNA strands |
|---|---|
|
| 3′ − |
|
| |
|
| 3′ − |
|
| |
|
| 3′ − |
|
| |
|
| 3′ − |
|
| 3′ − |
|
| |
|
| 3′ − |
|
| |
|
| 3′ − |
|
| 3′ − |
|
|
DNA sequences chosen to represent the solutions to the QTSP in Figure 2.
| Routing | DNA strands |
|---|---|
|
| 3′ − |
|
| |
|
| 3′ - |
Recent developments in DNA computing and their applications.
| Scholars | Issues studied | Model name | Characteristics | Experimental results |
|---|---|---|---|---|
| Wu et al. [ | Family traveling salesperson problem | Adleman-lipton model |
| Simulation of experimental benchmark examples, such as bruma14, ulysses16, ulysses22, eil51 and Berlin52 to demonstrate the feasibility of the algorithm |
|
| ||||
| Roy et al. [ | A robust image encryption framework | DNA computing and chaos theory | DNA computing helps to effectively encode the actual pixel values on which DNA operations can be applied | The proposed approach is tested on different types of images and the obtained results are very promising. On average, the proposed approach achieves approximately 96.95% of NPCR and 31.56% of UACI that is quite satisfactory |
|
| ||||
| Mondal et al. [ | Artificial neural networks and the implementation of DNA logic gates | Short DNA strands to develop artificial neural networks | Short sequences of DNA molecules can be used to encode input and output signals and to build the basic structure of a neuron. And using the secondary structure of DNA molecules to illustrate design strategies for logic gates | Qian et al. [ |
|
| ||||
| Chang et al. [ | Independent set problem | Bio-molecular solutions on IBM quantum computers | They propose a bio-molecular algorithm with | A maximum independent set problem with three vertices and two edges is solved using the DNA computing algorithm and quantum circuits and correct results are obtained |
|
| ||||
| Tian et al. [ | Job shop scheduling problem | Adleman-lipton model | The DNA algorithm is proved to have an | Experiment with 58 benchmark instances show that the proposed DNA algorithm outperforms other comparative heuristics |