| Literature DB >> 25815046 |
Micheal O Olusanya1, Martins A Arasomwan1, Aderemi O Adewumi1.
Abstract
This paper reports the performance of particle swarm optimization (PSO) for the assignment of blood to meet patients' blood transfusion requests for blood transfusion. While the drive for blood donation lingers, there is need for effective and efficient management of available blood in blood banking systems. Moreover, inherent danger of transfusing wrong blood types to patients, unnecessary importation of blood units from external sources, and wastage of blood products due to nonusage necessitate the development of mathematical models and techniques for effective handling of blood distribution among available blood types in order to minimize wastages and importation from external sources. This gives rise to the blood assignment problem (BAP) introduced recently in literature. We propose a queue and multiple knapsack models with PSO-based solution to address this challenge. Simulation is based on sets of randomly generated data that mimic real-world population distribution of blood types. Results obtained show the efficiency of the proposed algorithm for BAP with no blood units wasted and very low importation, where necessary, from outside the blood bank. The result therefore can serve as a benchmark and basis for decision support tools for real-life deployment.Entities:
Mesh:
Substances:
Year: 2015 PMID: 25815046 PMCID: PMC4359813 DOI: 10.1155/2015/713898
Source DB: PubMed Journal: Comput Math Methods Med ISSN: 1748-670X Impact factor: 2.238
Blood type compatibility with Rhesus factor.
| Receiver | Donor | |||||||
|---|---|---|---|---|---|---|---|---|
| A+ | A− | B+ | B− | C+ | C− | O+ | O− | |
| A+ | YES | NO | NO | NO | NO | NO | YES | YES |
| A− | NO | YES | NO | NO | NO | NO | NO | YES |
| B+ | NO | NO | YES | YES | NO | NO | YES | YES |
| B− | NO | NO | NO | YES | NO | NO | NO | YES |
| C+ | YES | YES | YES | YES | YES | YES | YES | YES |
| C− | NO | YES | NO | YES | NO | YES | NO | YES |
| O+ | NO | NO | NO | NO | NO | NO | YES | YES |
| O− | NO | NO | NO | NO | NO | NO | NO | YES |
Proportion of blood types in South Africa2.
| Blood type | A+ | A− | B+ | B− | C+ | C− | O+ | O− |
|
| ||||||||
| Proportion (%) | 32 | 5 | 12 | 2 | 3 | 1 | 39 | 7 |
2Source: South African National Blood Service—http://www.sanbs.org.za/index.php/donors/what-s-your-type.
Algorithm 1
Figure 1Exemplified particle representation in the proposed discrete PSO algorithm.
Values and proportions of the different blood types.
| Blood type | A+ | A− | B+ | B− | C+ | C− | O+ | O− |
|
| ||||||||
| Value | 4/27 = 0.15 | 2/27 = 0.07 | 4/27 = 0.15 | 2/27 = 0.07 | 8/27 = 0.3 | 4/27 = 0.15 | 2/27 = 0.07 | 1/27 = 0.04 |
| Proportion (%) | 32 | 5 | 12 | 2 | 3 | 1 | 39 | 7 |
Transformed particle used for computation in (2).
| 0.07 | 0.04 | 0.07 | 0.07 | 0.04 | 0.04 | 0.04 | 0.04 | 0.07 | 0.15 | 0.15 | 0.07 | 0.07 | 0.07 | 0.04 | 0.15 | 0.07 | 0.07 | 0.07 | 0.07 | 0.04 | 0.04 | 0.07 | 0.07 | 0.15 | 0.3 | 0.15 | 0.07 | 0.15 | 0.15 | 0.15 | 0.07 |
Figure 2Representing blood type compatibilities as knapsack problem.
Figure 3Representation of how blood units are stored in the blood bank.
Various values used for defining the different datasets used in the simulation.
| Dataset | Initial total volume of blood in bank | Running time (days) | Upper and lower bounds for requests (%) | Upper and lower bounds for donations (%) | Remark |
|---|---|---|---|---|---|
| 1 | 500 | 90 | [25,75] | [25,75] | These datasets were used to test the algorithm with different initial volume |
| 2 | 1000 | 90 | [25,75] | [25,75] | |
| 3 | 2000 | 90 | [25,75] | [25,75] | |
|
| |||||
| 4 | 1000 | 90 | [25,75] | [30,75] | These datasets were used to test the algorithm when the ratios of requests to donations are unequal |
| 5 | 1000 | 90 | [30,75] | [25,75] | |
|
| |||||
| 6 | 500 | 365 | [25,75] | [25,75] | These datasets were used to test the volume of blood units that will expire when the bank is run for a year |
| 7 | 1000 | 365 | [25,75] | [25,75] | |
Average volume of blood units during a runtime of 90 days with 500 blood units as initial volume (using dataset 1).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 114.06 | 17.36 | 109.57 | 19.47 | 41.63 | 8.31 | 21.02 | 4.96 |
| Requested | 66.79 | 11.87 | 54.43 | 8.41 | 19.87 | 3.31 | 5.08 | 1.77 |
| Supplied | 65.33 | 11.97 | 54.32 | 8.49 | 19.87 | 3.42 | 5.08 | 1.57 |
| Imported into bank | 0.42 | 1.03 | 0.00 | 0.01 | 0.00 | 0.01 | 0.00 | 0.00 |
Average volume of blood units during a runtime of 90 days with 1000 blood units as initial volume (using dataset 2).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 231.34 | 34.59 | 216.72 | 40.36 | 80.79 | 12.56 | 45.67 | 15.77 |
| Requested | 134.59 | 23.87 | 109.73 | 16.88 | 40.10 | 6.68 | 10.23 | 3.31 |
| Supplied | 131.66 | 24.19 | 109.47 | 17.09 | 39.96 | 6.81 | 10.23 | 2.97 |
| Imported into bank | 0.90 | 2.08 | 0.00 | 0.02 | 0.00 | 0.00 | 0.00 | 0.02 |
Average volume of blood units during a runtime of 90 days with 2000 blood units as initial volume (using dataset 3).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 460.20 | 69.17 | 430.09 | 80.11 | 159.83 | 26.31 | 90.77 | 30.54 |
| Requested | 267.53 | 47.46 | 218.10 | 33.68 | 79.71 | 13.24 | 20.42 | 6.54 |
| Supplied | 261.86 | 48.09 | 217.62 | 33.91 | 79.47 | 13.67 | 20.42 | 5.90 |
| Imported into bank | 1.69 | 4.01 | 0.00 | 0.06 | 0.00 | 0.00 | 0.00 | 0.00 |
Average volume of blood units during a runtime of 90 days with 1000 blood units as initial volume (using dataset 4).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 759.21 | 126.86 | 773.10 | 146.51 | 260.02 | 46.24 | 112.67 | 62.60 |
| Requested | 449.09 | 80.66 | 372.94 | 56.67 | 135.39 | 22.91 | 34.90 | 10.08 |
| Supplied | 439.63 | 82.37 | 372.94 | 56.63 | 135.39 | 23.17 | 34.90 | 9.59 |
| Imported into bank | 2.29 | 5.72 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
Average volume of blood units during a runtime of 90 days with 1000 blood units as initial volume (using dataset 5).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 108.80 | 15.39 | 82.01 | 14.78 | 41.89 | 6.63 | 29.31 | 6.51 |
| Requested | 64.07 | 11.33 | 51.89 | 8.11 | 18.93 | 3.12 | 4.79 | 1.69 |
| Supplied | 63.24 | 11.24 | 51.52 | 8.07 | 18.84 | 3.28 | 4.79 | 1.50 |
| Imported into bank | 0.33 | 0.91 | 0.02 | 0.17 | 0.00 | 0.01 | 0.00 | 0.00 |
Average volume of blood units during a runtime of 365 days with 500 blood units as initial volume (using dataset 6).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 116.71 | 16.04 | 88.33 | 14.69 | 54.68 | 6.43 | 28.35 | 10.55 |
| Requested | 66.05 | 11.79 | 53.84 | 8.37 | 20.01 | 3.36 | 5.07 | 1.72 |
| Supplied | 65.27 | 11.77 | 53.04 | 8.38 | 19.89 | 3.37 | 5.07 | 1.61 |
| Imported into bank | 0.41 | 1.03 | 0.00 | 0.30 | 0.00 | 0.05 | 0.00 | 0.01 |
Average volume of blood units during a runtime of 365 days with 1000 blood units as initial volume (using dataset 7).
| Average volume | O+ | O− | A+ | A− | B+ | B− | C+ | C− |
|---|---|---|---|---|---|---|---|---|
| Available in bank | 286.50 | 39.22 | 220.99 | 35.68 | 140.24 | 14.68 | 80.41 | 43.34 |
| Requested | 169.22 | 30.23 | 137.99 | 21.49 | 51.36 | 8.65 | 12.93 | 4.32 |
| Supplied | 166.98 | 30.05 | 135.69 | 21.36 | 51.05 | 8.58 | 12.93 | 4.09 |
| Imported into bank | 1.22 | 3.08 | 0.00 | 0.98 | 0.00 | 0.17 | 0.00 | 0.01 |
Figure 4Various curves showing the different blood levels in the blood bank over 90 days, using datasets from 1 to 5.
Figure 7Performance measurement of the algorithm using the different datasets.
Figure 5Importation rate of blood units using datasets 6 and 7.
Figure 6Importation rate of blood units using the different datasets.