210 likes | 319 Views
Management of Blood Component Preparation. Speaker: Chun-Cheng Lin National Taiwan University Co-authors: Chang-Sung Yu, Yin-Yih Chang. Outline. Introduction to the blood component preparation problem (BCPP) A linear time algorithm for the BCPP Some variants of the BCPP
E N D
Management ofBlood Component Preparation Speaker: Chun-Cheng Lin National Taiwan University Co-authors: Chang-Sung Yu, Yin-Yih Chang
Outline • Introduction to the blood component preparation problem (BCPP) • A linear time algorithm for the BCPP • Some variants of the BCPP • Conclusion and future work
Introduction • Transfusion therapy • to transfuse the specific blood components needed to replace particular deficits for some medical purposes. • Whole blood • contain all blood elements • a source for blood component production. • Blood component preparation • the indication for the use of unfractionated whole blood almost does not exist now • separating specific cell components from the whole blood • a lot ofdifferent methods (processes) or equipment different use, efficiency and quality
A Process of Separating Blood Components Whole Blood soft-spin centrifugation Packed Red Blood Cells Platelet-Rich Plasma hard-spin centrifugation washing Washed Red Blood Cells Fresh Plasma Platelet Concentrate freezing • Implied value (ai): Consider both the revenue contributed by patients or insurance and the costs induced by blood of collection, testing, preparation, preservation, storage, processing time, etc. • Demand limit (di). Fresh Frozen Plasma thawing; centrifugation; freezing Frozen Plasma Cryoprecipitate
a1 d1 x1 r2 r3 a2 d3 d2 a3 x2 x3 r4 r6 r7 r5 a4 a5 a6 d4 d5 d6 d7 a7 x4 x5 x6 x7 r8 r9 d8 a9 d9 a8 x9 x8 Blood Component Preparation Problem • Blood Component tree • vertex vi = a blood component with valueai and demand limitdi • the amountxi of vi is derived from the amount of its parent according to a given ratiori; • Initial assignment of { xi } • x1 = Q; other xi = 0 • The Blood Component Preparation Problem (BCPP) Given an initial volume Q of the whole blood and an n-vertex blood component tee T (where demand limit di ; implied value ai), determine the assignments of { xi } so that (1) the total value is maximized (2) while the demand limit of each component is satisfied
a1 d1 x1 r2 r3 a2 d3 d2 a3 x2 x3 r4 r6 r7 r5 a4 a5 a6 d4 d5 d6 d7 a7 x4 x5 x6 x7 r8 r9 d8 a9 d9 a8 x9 x8 A linear programming approach • The BCPP problem can be solved by linear programming. Comment: There exist a lot of software tools for the linear programming problem, users just need to describe the BCPP as a linear program and then use those tools to solve it without implement it.
3 10 x1 0.8 0.2 4 8 4 5 x2 x3 0.2 0.5 1 0.3 2 1 3 1 12 7 8 9 x4 x5 x6 x7 0.7 0.3 2 6 13 6 x8 x9 Example Q = 100
Motivations • Linear programming (LP) problem • 2 drawbacks to solve the BCPP by LP: • The worst-case algorithm for the LP problem may not be executed efficiently (its time complexity is nonlinear) • It may not be convenient for users to directly describe the constraints of the LP for a general derivatives tree.
10 3 x1 0.8 0.2 4 4 5 8 x2 x3 0.2 0.5 1 0.3 1 12 7 8 9 2 3 1 x4 x5 x6 x7 0.7 0.3 13 6 6 2 x9 x8 Main result • Main Theorem: There exists a linear time algorithm for the BCPP in the size of vertices. • Characteristic value (vi) of vi • Compute the following formula in the bottom-up fashion • e.g., • (v8) = 2; (v9) = 6 • (v6) = max( 3, 0.72 + 0.36 ) = 3.2
Step 1: vertex vi in top-down fashion of T, xi is assigned di, and then the remaining amount is forwarded to the next level; if not enough to satisfy any demand limit, then return false. for convenience, we express that xi = di + yi. 3 10 100 0.8 0.2 5 4 4 8 0 0 0.2 0.5 1 0.3 12 7 8 9 2 1 3 1 0 0 0 0 0.7 0.3 2 13 6 6 0 0 Our linear time algorithm (1/4) 3 10 10+0 0.8 0.2 5 4 4 8 x4 x2 4+0 5+0 x1 x5 0.2 0.5 1 x8 0.3 12 7 8 9 2 1 3 1 x9 x6 x3 x7 12+1.6 7+13.4 8+0 9+4 0.7 0.3 2 13 6 6 6+1.8 13+5.2
Step 2: vertex vi in bottom-up fashion of T, If vi is a leaf, then yiM = yi; o.w., yiM = minvjChild(vi){ yjM / rj }, yim = yj – rjyiM for each vj Child(vi). (In fact, yiM is the maximal possible amount of vi flowed from its descendents and yim is the amount of every descendent of vj of vi after yiM is achieved) 3 10 10+0 0.8 0.2 5 4 4 8 4+0 5+0 0.2 0.5 1 0.3 12 7 8 9 2 1 3 1 12+1.6 7+13.4 8+0 9+4 0.7 0.3 2 13 6 6 6+1.8 13+5.2 Our linear time algorithm (2/4) y1m 0 10 y1M y2m y3m 0 2 8 4 y2M y3M y4m y6m y7m 0 11 2 0 1.6 13.4 6 4 y4M y6M y7M y8m y9m 1 0 1.8 y8M 5.2 y9M
Step 3: Initially, all the leaves of T are marked. For each internal vertex vi in the bottom-up fashion of T, compute (vi). If (vi) = ai, then vertex vi is marked. 3 10 10+0 0.8 0.2 5 4 4 8 4+0 5+0 0.2 0.5 1 0.3 12 7 8 9 2 1 3 1 12+1.6 7+13.4 8+0 9+4 0.7 0.3 2 13 6 6 6+1.8 13+5.2 Our linear time algorithm (3/4) v4, v5, v7, v8, v9 are leaves, and hence, marked. (v6) = max(3, 0.72+0.36) = 3.2 > 3 = a6 v6 is unmarked. (v3) = max(8, 11) = 8 = a3 v3 is marked. (v2) = max(4, 0.22+0.31+0.53.2) = 4 = a2 v2 is marked. (v1) = max(3, 0.84+0.28) = 4.8 > 3 = a1 v1 is unmarked. y1m 0 10 y1M y2m y3m 0 2 8 4 y2M y3M y4m y6m y7m 0 11 2 0 1.6 13.4 6 4 y4M y6M y7M y8m y9M 1 0 1.8 y8M 5.2 y9M
Step 4: Let U = V. vi U in top-down fashion of T, if vi is unmarked then output xi = di + 0; otherwise, do the following: Output xi = di + yiM; vj in the top-down fashion of the subtree Tvi rooted at vi, if vj is marked, then output xj = dj + yjm; otherwise, for evry children vk of vj, ykm ykm + rkyjm, and then output xj = dj + 0 (i.e., yjm = 0); UU \ V(Tvi) 3 10 10+0 0.8 0.2 5 4 4 8 4+8 5+4 0.2 0.5 1 0.3 12 7 8 9 2 1 3 1 12+0 7+11 8+0 9+0 0.7 0.3 2 13 6 6 6+0.6 13+2.4 Our linear time algorithm (4/4) 3 10 0 y1m 10+0 10 y1M 0.8 0.2 4 4 8 5 y2m y3m 2 0 4+0 5+0 4 y2M y3M 8 0.2 0.5 1 0 0.3 y6m 1 12 7 8 9 2 3 1 y4m 11 2 0 y7m 0 9+4 y6m 12+1.6 7+13.4 8+0 y4M 4 1.6 13.4 6 y7M 0.3 0.7 0.6 2.4 2 13 6 6 y8m y9m 0 1 13+5.2 6+1.8 1.8 y8M 5.2 y9M
Observations of our outputs • Observation 1. • Observation 2. In the output of our algorithm, • For every vertex vi in R1, ai< (vi). • For every vertex vi in R2, ai= (vi). • Observation 3. Any feasible solution of the BCPP is reachable from the output of our algorithm. R1 above the band on the band R2 R3 below the band Output of Step 1 of our algorithm Output of our algorithm
Comparison of solutions R1 above the band on the band R2 R3 below the band Output of Step 1 of our algorithm Output of our algorithm R11 … R1 R12 … R13 band R2 R3 Any feasible solution
Blood Component Preparation Problem • Theorem. The BCPP can be solved in O(n) time. Proof. Skipped. • Extension: How to choose multiple standardized processes so that the total value is maximized? • The preparation and preservation of blood components are considered within a time frame. In practice, we may execute more than one process simultaneously within a certain time frame. • Fortunately, for the standardization of executing processes, the number of alternative processes is fixed constant. • The extended problem can be solved roughly in polynomial time.
Modified Blood Component Preparation Problem • The deriving operation may be nonreversible. require: the volume of the components at higher levels is more. • The Modified Blood Component Preparation Problem (BCPP’) Given the initial volume Q of the whole blood and an n-vertex blood component tree T (every vertex has its demand limit), determine the assignments of { xi } so that (1) the volume of the components at higher levels is remained as more as possible (2) while the demand limit of every component is satisfied. • Algorithm: Steps 1 and 2 are the same as those of the previous. Step 3: Output x1 = d1 + y1M ; xi = di + yim, vi V \ {v1}. • Corollary. The BCPP’ can be solved in O(n) time.
Conclusion and future work • We have defined a new problem called the blood component preparation problem (BCPP), and proposed not only a linear programming solution but also a linear time algorithm for the BCPP. • Some variants are also given in this work. • A line of future work includes: • to investigate the tractability of the `derivatives graph problem’ on some special cases of graphs; • to take more factors (e.g., time and inventory) into account in the BCPP; • to evaluate the effectiveness of the BCPP applied in practical environment; • to investigate the sensitivity analysis and the critical paths of the BCPP.