1 Introduction
2 Problem statement
-
n – number of jobs in the OSP,
-
m – number of machines in the OSP,
-
i – machine index in relations,
-
j – job index in relations,
-
\(op_{j,i}\) – \(Job_{j}\) operation that must be run on \(Machine_{i}\),
-
\(d_{j,i}\) – \(op_{j,i}\) runtime; this parameter is an input for the scheduling problem,
-
\(t_{j,i}\) – start time of running \(op_{j,i}\) on \(Machine_{i}\),
-
\(f_{i}\) – \(Machine_{i}\) idle time; the default value of this parameter is 0 when starting the scheduling for all machines,
-
\(assigned_{j,i}\) – equal 1 if \(op_{j,i}\) is selected for execution and equals 0 if \(op_{j,i}\) is not selected for execution. The default value of this parameter is 0 when starting the scheduling for all \(op_{j,i}\).
3 The bat algorithm
-
all bats use echolocation to detect distances and know the difference between food and progressive barriers,
-
bats fly randomly at velocity \(v_{i}\), at position \(x_{i}\), with fixed frequency of \(frq_{i}\) and different wavelengths \(\lambda \) and loudness of \(A_{0}\) for hunting prey. Also, they can automatically set emitted waves and sent pulse rates (\(r\in \left[ 0, 1\right] \)) according to proximity to their hunts,
-
given that loudness may vary in many different ways, we assume that loudness varies from \(R_{0}\) (maximum value) to \(R_{min}\) (minimum value).
4 The proposed algorithm
4.1 Steps of the proposed algorithm
4.1.1 Creating a bat
Sequence number creation | |||||||||
---|---|---|---|---|---|---|---|---|---|
Machine | 1 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 |
Job | 1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 |
Numbers | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Job number | ||||
---|---|---|---|---|
Machine 1 | 1 | 3 | 4 | 2 |
Machine 2 | 3 | 2 | 4 | 1 |
Machine 3 | 1 | 2 | 3 | 4 |
Machine 4 | 4 | 1 | 2 | 3 |
4.1.2 Fitness function
4.1.3 ColReuse function
Solution | 1 | 2 | 3 | 4 | 5 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | 1 |
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | 5 | 1 | 2 | 3 | 4 | |
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | |
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | |
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | |
ColReuse | 5 | 4 | 3 | ||||||||||||
Fitness | 1220 | 948 | 713 |
4.1.4 Substitution function
Before substitution | After substitution | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Solution | 3 | 2 | 1 | 5 | 4 | 3 | 2 | 1 | 5 | 4 |
1 | 3 | 4 | 5 | 2 | 4 | 1 | 5 | 2 | 3 | |
1 | 2 | 5 | 4 | 3 | 2 | 4 | 3 | 1 | 5 | |
1 | 3 | 5 | 4 | 2 | 3 | 5 | 1 | 2 | 4 | |
5 | 4 | 2 | 3 | 1 | 5 | 4 | 2 | 3 | 1 | |
ColReuse | 3 | 2 |
4.1.5 Fold, FullReverse and join functions
Solution | After Fold | After FullReverse | After Join | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4 | 2 | 1 | 3 | 4 | 2 | 1 | 3 | 3 | 1 | 2 | 4 | 4 | 2 | 1 | 3 |
3 | 2 | 1 | 4 | 3 | 2 | 1 | 4 | 4 | 1 | 2 | 3 | 3 | 2 | 1 | 4 |
3 | 4 | 2 | 1 | 1 | 2 | 4 | 3 | 1 | 2 | 4 | 3 | 2 | 1 | 4 | 3 |
1 | 3 | 2 | 4 | 4 | 2 | 3 | 1 | 4 | 2 | 3 | 1 | 3 | 4 | 1 | 2 |
4.1.6 ShiftUp and ShiftDown functions
Solution | ShiftUp | ShiftDown | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | 3 | 5 | 4 | 4 | 1 | 3 | 5 | 2 | 2 | 3 | 1 | 5 | 4 |
4 | 3 | 1 | 5 | 2 | 5 | 3 | 1 | 4 | 2 | 4 | 1 | 3 | 5 | 2 |
5 | 4 | 1 | 3 | 2 | 3 | 4 | 1 | 5 | 2 | 5 | 4 | 1 | 3 | 2 |
3 | 5 | 4 | 2 | 1 | 2 | 5 | 4 | 3 | 1 | 3 | 5 | 1 | 2 | 4 |
2 | 4 | 1 | 3 | 5 | 2 | 4 | 1 | 3 | 5 | 2 | 1 | 4 | 3 | 5 |
4.1.7 SmallWalk and InactionDel functions
5 Simulation results
Data | Number of jobs | Number of machines | Display |
---|---|---|---|
Small-scale | 4 | 4 | \(4\times 4\) |
data | 5 | 5 | \(5\times 5\) |
Medium-scale | 7 | 7 | \(7\times 7\) |
data | 10 | 10 | \(10\times 10\) |
Large-scale | 15 | 15 | \(15\times 15\) |
data | 20 | 20 | \(20\times 20\) |
Pulse rate (r) | Loudness (A) | Number of generations | Number of bats |
---|---|---|---|
Start from 1 and gradually reaches to 0 | 0.95 | 2000–3000 | 40–200 |
Benchmarks | Optimal | SA | GA | HGA | HGA | GA | EGA_OS | ACS | CS | CSO | BA_OS |
---|---|---|---|---|---|---|---|---|---|---|---|
solution | [51] | [52] | [52] | [54] | [53] | [58] | [56] | [56] | [57] | ||
\(4\times 4-1\) | 193 | 193 | 193 | 213 | 193 | 193 | 193 | 193 | 193 | 193 | 193 |
\(4\times 4-2\) | 236 | 236 | 236 | 240 | 236 | 239 | 239 | 236 | 236 | 236 | 236 |
\(4\times 4-3\) | 271 | 271 | 271 | 293 | 271 | 271 | 271 | 271 | 271 | 271 | 271 |
\(4\times 4-4\) | 250 | 250 | 250 | 253 | 250 | 250 | 250 | 250 | 252 | 250 | 250 |
\(4\times 4-5\) | 295 | 295 | 295 | 303 | 295 | 295 | 295 | 295 | 295 | 295 | 295 |
\(4\times 4-6\) | 189 | 189 | 189 | 209 | 189 | 189 | 189 | 189 | 189 | 189 | 189 |
\(4\times 4-7\) | 201 | 201 | 201 | 203 | 201 | 201 | 201 | 201 | 201 | 201 | 201 |
\(4\times 4-8\) | 217 | 217 | 217 | 224 | 217 | 217 | 217 | 217 | 217 | 217 | 217 |
\(4\times 4-9\) | 261 | 261 | 261 | 281 | 261 | 261 | 261 | 261 | 261 | 261 | 261 |
\(4\times 4-10\) | 217 | 217 | 217 | 230 | 217 | 217 | 217 | 217 | 217 | 217 | 217 |
\(5\times 5-1\) | 300 | 300 | 301 | 323 | 300 | 301 | 300 | 301 | 301 | 300 | 300 |
\(5\times 5-2\) | 262 | 262 | 262 | 269 | 262 | 263 | 262 | 262 | 262 | 262 | 262 |
\(5\times 5-3\) | 323 | 323 | 331 | 353 | 323 | 335 | 323 | 331 | 335 | 323 | 323 |
\(5\times 5-4\) | 310 | 310 | N/A | N/A | 310 | 316 | 310 | 315 | 314 | 310 | 310 |
\(5\times 5-5\) | 326 | 326 | N/A | N/A | 326 | 330 | 326 | 331 | 329 | 326 | 326 |
\(5\times 5-6\) | 312 | 312 | 312 | 327 | 312 | 312 | 312 | 317 | 318 | 312 | 312 |
\(5\times 5-7\) | 303 | 303 | N/A | N/A | 303 | 308 | 303 | 308 | 305 | 303 | 303 |
\(5\times 5-8\) | 300 | 300 | N/A | N/A | 300 | 304 | 300 | 304 | 303 | 300 | 300 |
\(5\times 5-9\) | 353 | 353 | 353 | 373 | 353 | 358 | 353 | 358 | 358 | 353 | 353 |
\(5\times 5-10\) | 326 | 326 | 326 | 341 | 326 | 328 | 326 | 329 | 329 | 326 | 326 |
\(7\times 7-1\) | 435 | 435 | 438 | 447 | 435 | 436 | 435 | 435 | 436 | 435 | 435 |
\(7\times 7-2\) | 443 | 443 | 455 | 454 | 443 | 447 | 443 | 445 | 447 | 443 | 443 |
\(7\times 7-3\) | 468 | 468 | N/A | N/A | 468 | 472 | 468 | 479 | 472 | 468 | 468 |
\(7\times 7-4\) | 463 | 463 | N/A | N/A | 463 | 463 | 463 | 467 | 466 | 463 | 463 |
\(7\times 7-5\) | 416 | 416 | N/A | N/A | 416 | 417 | 416 | 419 | 416 | 416 | 416 |
\(7\times 7-6\) | 451 | 451 | N/A | N/A | 451 | 455 | 451 | 460 | 454 | 452 | 451 |
\(7\times 7-7\) | 422 | 422 | 443 | 450 | 422 | 426 | 422 | 435 | 425 | 422 | 422 |
\(7\times 7-8\) | 424 | 424 | N/A | N/A | 424 | 424 | 424 | 424 | 424 | 426 | 424 |
\(7\times 7-9\) | 458 | 458 | 465 | 467 | 458 | 458 | 458 | 458 | 458 | 458 | 458 |
\(7\times 7-10\) | 398 | 398 | 405 | 406 | 398 | 398 | 398 | 398 | 399 | 398 | 398 |
\(10\times 10-1\) | 637 | 637 | 667 | 655 | 637 | 637 | 637 | 638 | 639 | 645 | 637 |
\(10\times 10-2\) | 588 | 588 | N/A | N/A | 588 | 588 | 588 | 588 | 688 | 588 | 588 |
\(10\times 10-3\) | 598 | 598 | N/A | N/A | 598 | 598 | 598 | 599 | 600 | 599 | 598 |
\(10\times 10-4\) | 577 | 577 | 586 | 581 | 577 | 577 | 577 | 577 | 577 | 577 | 577 |
\(10\times 10-5\) | 640 | 640 | N/A | N/A | 640 | 640 | 640 | 640 | 640 | 640 | 640 |
\(10\times 10-6\) | 538 | 538 | 555 | 541 | 538 | 538 | 538 | 538 | 538 | 538 | 538 |
\(10\times 10-7\) | 616 | 616 | N/A | N/A | 616 | 616 | 616 | 616 | 616 | 616 | 616 |
\(10\times 10-8\) | 595 | 595 | N/A | N/A | 595 | 595 | 595 | 595 | 595 | 595 | 595 |
\(10\times 10-9\) | 595 | 595 | 627 | 598 | 595 | 595 | 595 | 595 | 595 | 595 | 595 |
\(10\times 10-10\) | 596 | 596 | 623 | 605 | 596 | 596 | 596 | 596 | 596 | 596 | 596 |
Benchmarks | Optimal | SA | GA | HGA | HGA | GA | Neural | EGA_OS | ACS | CS | CSO | BA_OS |
---|---|---|---|---|---|---|---|---|---|---|---|---|
solution | [51] | [52] | [52] | [54] | [53] | [55] | [58] | [56] | [56] | [57] | ||
\(15\times 15-1\) | 937 | 937 | 967 | 937 | 937 | 937 | 937 | 937 | 937 | 937 | 937 | 937 |
\(15\times 15-2\) | 918 | 918 | N/A | N/A | 918 | 918 | 918 | 918 | 918 | 918 | 920 | 918 |
\(15\times 15-3\) | 871 | 871 | 904 | 871 | 871 | 871 | 871 | 871 | 871 | 871 | 871 | 871 |
\(15\times 15-4\) | 934 | 934 | 969 | 934 | 934 | 934 | 934 | 934 | 934 | 934 | 934 | 934 |
\(15\times 15-5\) | 946 | 946 | N/A | N/A | 946 | 946 | 946 | 946 | 946 | 946 | 952 | 946 |
\(15\times 15-6\) | 933 | 933 | N/A | N/A | 933 | 933 | 933 | 933 | 933 | 933 | 933 | 933 |
\(15\times 15-7\) | 891 | 891 | N/A | N/A | 891 | 891 | 891 | 891 | 891 | 891 | 891 | 891 |
\(15\times 15-8\) | 893 | 893 | 928 | 893 | 893 | 893 | 893 | 893 | 893 | 893 | 893 | 893 |
\(15\times 15-9\) | 899 | 899 | N/A | N/A | 899 | 899 | 899 | 899 | 902 | 902 | 913 | 899 |
\(15\times 15-10\) | 902 | 902 | N/A | N/A | 902 | 902 | 902 | 902 | 902 | 902 | 902 | 902 |
\(20\times 20-1\) | 1155 | 1155 | 1230 | 1165 | 1155 | 1155 | 1155 | 1155 | 1155 | 1155 | 1166 | 1155 |
\(20\times 20-2\) | 1241 | 1241 | N/A | N/A | 1241 | 1241 | 1242 | 1241 | 1242 | 1243 | 1260 | 1241 |
\(20\times 20-3\) | 1257 | 1282 | 1292 | 1257 | 1257 | 1257 | 1257 | 1257 | 1257 | 1257 | 1257 | 1257 |
\(20\times 20-4\) | 1248 | 1274 | N/A | N/A | 1248 | 1248 | 1248 | 1248 | 1248 | 1248 | 1253 | 1248 |
\(20\times 20-5\) | 1256 | 1289 | 1315 | 1256 | 1256 | 1256 | 1256 | 1256 | 1256 | 1256 | 1256 | 1256 |
\(20\times 20-6\) | 1204 | 1204 | 1266 | 1207 | 1204 | 1204 | 1204 | 1204 | 1204 | 1204 | 1204 | 1204 |
\(20\times 20-7\) | 1294 | 1294 | N/A | N/A | 1294 | 1294 | 1294 | 1294 | 1295 | 1294 | 1310 | 1294 |
\(20\times 20-8\) | 1169 | 1169 | N/A | N/A | 1173 | 1171 | 1173 | 1170 | 1176 | 1175 | 1210 | 1170 |
\(20\times 20-9\) | 1289 | 1307 | 1339 | 1289 | 1289 | 1289 | 1289 | 1289 | 1289 | 1289 | 1289 | 1289 |
\(20\times 20-10\) | 1241 | N/A | 1307 | 1241 | 1241 | 1241 | 1241 | N/A | 1241 | 1241 | 1241 | 1241 |
5.1 Test problems
Problem | Optimum solution | DGA [37] | SAGA [37] | TSGA [37] | PGA [6] | BA_OS | |||||
---|---|---|---|---|---|---|---|---|---|---|---|
(\(n\times m\)) | Best | Average | Best | Average | Best | Average | Best | Average | Best | Average | |
\(3\times 2-1\) | 177 | 177 | 177 | 177 | 177 | 177 | 177 | 177 | 177 | 177 | 177 |
\(3\times 2-2\) | 109 | 109 | 109 | 109 | 109 | 109 | 109 | 109 | 109 | 109 | 109 |
\(3\times 2-3\) | 224 | 224 | 224 | 224 | 224 | 224 | 224 | 224 | 224 | 224 | 224 |
\(3\times 2-4\) | 241 | 241 | 241 | 241 | 241 | 241 | 241 | 241 | 241 | 241 | 241 |
\(3\times 3-1\) | 173 | 173 | 173 | 173 | 173 | 173 | 173 | 173 | 173 | 173 | 173 |
\(3\times 3-2\) | 193 | 193 | 193 | 193 | 193 | 193 | 193 | 193 | 193 | 193 | 193 |
\(3\times 3-3\) | 212 | 212 | 212 | 212 | 212 | 212 | 212 | 212 | 212 | 212 | 212 |
\(3\times 3-4\) | 255 | 255 | 255 | 255 | 255 | 255 | 255 | 255 | 255 | 255 | 255 |
\(4\times 2-1\) | 352 | 352 | 352 | 352 | 352 | 352 | 352 | 352 | 352 | 352 | 352 |
\(4\times 2-2\) | 393 | 393 | 393 | 393 | 393 | 393 | 393 | 393 | 393 | 393 | 393 |
\(4\times 2-3\) | 408 | 408 | 408 | 408 | 408 | 408 | 408 | 408 | 408 | 408 | 408 |
\(4\times 2-4\) | 556 | 556 | 556 | 556 | 556 | 556 | 556 | 556 | 556 | 556 | 556 |
\(4\times 3-1\) | – | 402 | 404.2 | 402 | 405.0 | 402 | 410.3 | 399 | 401 | 395 | 398 |
\(4\times 3-2\) | – | 487 | 487 | 489 | 492.2 | 487 | 493.1 | 483 | 484 | 479 | 481 |
\(4\times 3-3\) | – | 605 | 605.6 | 605 | 607.0 | 605 | 607.4 | 601 | 601 | 595 | 596 |
\(4\times 3-4\) | – | 388 | 388.6 | 388 | 389.2 | 388 | 388.8 | 382 | 382 | 375 | 375 |
Problem | DGA [37] | SAGA [37] | TSGA [37] | PGA [6] | BA_OS | |||||
---|---|---|---|---|---|---|---|---|---|---|
(\(n\times m\)) | Best | Average | Best | Average | Best | Average | Best | Average | Best | Average |
\(10\times 5-1\) | 3048 | 3058.4 | 3048 | 3098 | 3050 | 3138 | 3043 | 3045 | 3039 | 3042 |
\(10\times 5-2\) | 2926 | 2980.2 | 2932 | 3100.8 | 2932 | 3148.4 | 2911 | 2917 | 2902 | 2905 |
\(10\times 5-3\) | 3043 | 3061.7 | 3043 | 3084 | 3087 | 3114.8 | 3014 | 3019 | 3009 | 3011 |
\(10\times 5-4\) | 1965 | 1972.3 | 1968 | 1985.1 | 2000 | 2008.2 | 1922 | 1925 | 1910 | 1913 |
\(10\times 10-1\) | 3623 | 3650 | 3705 | 3760.8 | 3696 | 3812.6 | 3605 | 3612 | 3596 | 3600 |
\(10\times 10-2\) | 2457 | 2520.4 | 2516 | 2600.4 | 2532 | 2636.4 | 2419 | 2426 | 2409 | 2413 |
\(10\times 10-3\) | 1016 | 1056 | 1044 | 1092.7 | 1075 | 1121.5 | 1007 | 1014 | 1001 | 1007 |
\(10\times 10-4\) | 1455 | 1492.7 | 1455 | 1504.2 | 1457 | 1552 | 1418 | 1423 | 1410 | 1414 |
\(30\times 5-1\) | 4523 | 4537.4 | 4523 | 4602.7 | 4582 | 4652.8 | 4501 | 4509 | 4494 | 4500 |
\(30\times 5-2\) | 4587 | 4626.8 | 4590 | 5670.4 | 4601 | 4705 | 4532 | 4540 | 4527 | 4531 |
\(30\times 5-3\) | 3864 | 3880.5 | 3912 | 3958 | 3868 | 3984.3 | 3835 | 3842 | 3830 | 3836 |
\(30\times 5-4\) | 5137 | 5184.1 | 5137 | 5232.5 | 5193 | 5782.5 | 5117 | 5127 | 5108 | 5114 |
\(30\times 15-1\) | 6128 | 6188.8 | 6212 | 6280.6 | 6216 | 6312.8 | 6111 | 6134 | 6101 | 6116 |
\(30\times 15-2\) | 5042 | 5124 | 5120 | 5204.9 | 5120 | 5220.1 | 5013 | 5026 | 5006 | 5014 |
\(30\times 15-3\) | 4815 | 4846.2 | 4832 | 4920 | 4850 | 4950.8 | 4804 | 4832 | 4796 | 4802 |
\(30\times 15-4\) | 5284 | 5344.4 | 5291 | 5385 | 5291 | 5410.2 | 5233 | 5241 | 5222 | 5230 |
\(50\times 5-1\) | 6052 | 6140.8 | 6150 | 6318.2 | 6208 | 6338.4 | 6026 | 6076 | 6019 | 6038 |
\(50\times 5-2\) | 6615 | 6742.4 | 6692 | 6876.2 | 6680 | 6934.1 | 6603 | 6631 | 6546 | 6573 |
\(50\times 5-3\) | 5918 | 6035.1 | 6080 | 6290.2 | 6097 | 6298.2 | 5906 | 5945 | 5704 | 5741 |
\(50\times 5-4\) | 7422 | 7560.3 | 7510 | 7768.5 | 7590 | 7842 | 7409 | 7426 | 7217 | 7224 |
\(50\times 15-1\) | 6485 | 6604.2 | 6540 | 6876.5 | 6605 | 6950.5 | 6419 | 6453 | 6402 | 6427 |
\(50\times 15-2\) | 8905 | 9015.7 | 8995 | 9250.3 | 9142 | 9390.8 | 8876 | 8895 | 8852 | 8821 |
\(50\times 15-3\) | 6624 | 6843.5 | 6708 | 6870 | 6708 | 6940.3 | 6604 | 6638 | 6546 | 6555 |
\(50\times 15-4\) | 7350 | 7413.6 | 7395 | 7522.6 | 7395 | 7560.7 | 7315 | 7352 | 7289 | 7299 |