1 of 19

Management of�Blood Component Preparation

Speaker: Chun-Cheng Lin

National Taiwan University

Co-authors: Chang-Sung Yu, Yin-Yih Chang

2 of 19

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

2

3 of 19

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 of different methods (processes) or equipment

different use, efficiency and quality

3

4 of 19

A Process of Separating Blood Components

  • 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).

4

Packed Red Blood Cells

Platelet-Rich Plasma

Washed Red Blood Cells

Fresh Frozen Plasma

Platelet Concentrate

Fresh Plasma

Frozen Plasma

Cryoprecipitate

soft-spin centrifugation

hard-spin centrifugation

washing

Whole Blood

freezing

thawing; centrifugation; freezing

5 of 19

Blood Component Preparation Problem

  • Blood Component tree
    • vertex vi = a blood component

with value ai and demand limit di

    • the amount xi of vi is derived from

the amount of its parent

according to a given ratio ri;

  • 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

5

r2

r3

x1

a1

d1

x2

a2

d2

x3

a3

d3

x4

a4

d4

x5

a5

d5

x6

a6

d6

x7

a7

d7

x8

a8

d8

x9

a9

d9

r8

r9

r4

r6

r5

r7

6 of 19

A linear programming approach

  • The BCPP problem can be solved by linear programming.

6

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.

r2

r3

x1

a1

d1

x2

a2

d2

x3

a3

d3

x4

a4

d4

x5

a5

d5

x6

a6

d6

x7

a7

d7

x8

a8

d8

x9

a9

d9

r8

r9

r4

r6

r5

r7

7 of 19

Example

7

0.8

0.2

x1

3

10

x2

4

4

x3

8

5

x4

2

12

x5

1

7

x6

3

8

x7

1

9

x8

2

13

x9

6

6

0.7

0.3

0.2

0.5

0.3

1

Q = 100

8 of 19

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.

8

Klee and Minty (1972)

the worst-case complexity of the simplex algorithm is exponential

Karmarkar (1984)

the first algorithm performing well both in theory and in practice

Khachiyan (1979,1980)

the first polynomial-time algorithm

Dantzig (1947)

the well-known simplex algorithm

Reference

result

9 of 19

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.7×2 + 0.3×6 ) = 3.2

9

0.8

0.2

x1

3

10

x2

4

4

x3

8

5

x4

2

12

x5

1

7

x6

3

8

x7

1

9

x8

2

13

x9

6

6

0.7

0.3

0.2

0.5

0.3

1

10 of 19

Our linear time algorithm (1/4)

  • 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.

10

0.8

0.2

100

3

10

0

4

4

0

8

5

0

2

12

0

1

7

0

3

8

0

1

9

0

2

13

0

6

6

0.7

0.3

0.2

0.5

0.3

1

0.8

0.2

10+0

3

10

4+0

4

4

5+0

8

5

12+1.6

2

12

7+13.4

1

7

8+0

3

8

9+4

1

9

13+5.2

2

13

6+1.8

6

6

0.7

0.3

0.2

0.5

0.3

1

x1

x2

x3

x7

x4

x5

x6

x8

x9

11 of 19

Our linear time algorithm (2/4)

  • 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 = yjrj yiM for each vjChild(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)

11

y1m

10

0

8

0

4

2

1.6

0

13.4

11

6

2

4

0

5.2

1

1.8

0

0.8

0.2

10+0

3

10

4+0

4

4

5+0

8

5

12+1.6

2

12

7+13.4

1

7

8+0

3

8

9+4

1

9

13+5.2

2

13

6+1.8

6

6

0.7

0.3

0.2

0.5

0.3

1

y1M

y2m

y2M

y3m

y3M

y7m

y7M

y6m

y6M

y4m

y4M

y8m

y8M

y9m

y9M

12 of 19

Our linear time algorithm (3/4)

  • 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.

12

v4, v5, v7, v8, v9 are leaves, and hence, marked.

ϕ (v6) = max(3, 0.7×2+0.3×6) = 3.2 > 3 = a6

v6 is unmarked.

ϕ (v3) = max(8, 1×1) = 8 = a3

v3 is marked.

ϕ (v2) = max(4, 0.2×2+0.3×1+0.5×3.2) = 4 = a2

v2 is marked.

ϕ (v1) = max(3, 0.8×4+0.2×8) = 4.8 > 3 = a1

v1 is unmarked.

y1m

10

0

8

0

4

2

1.6

0

13.4

11

6

2

4

0

5.2

1

1.8

0

0.8

0.2

10+0

3

10

4+0

4

4

5+0

8

5

12+1.6

2

12

7+13.4

1

7

8+0

3

8

9+4

1

9

13+5.2

2

13

6+1.8

6

6

0.7

0.3

0.2

0.5

0.3

1

y1M

y2m

y2M

y3m

y3M

y7m

y7M

y6m

y6M

y4m

y4M

y8m

y8M

y9M

y9M

13 of 19

Our linear time algorithm (4/4)

  • Step 4: Let U = V. ∀ viU 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, ykmykm + rk yjm, and then output xj = dj + 0 (i.e., yjm = 0);
    • UU \ V(Tvi)

13

0.3

0.8

0.2

10+0

3

10

4+0

4

4

5+0

8

5

12+1.6

2

12

7+13.4

1

7

8+0

3

8

9+4

1

9

13+5.2

2

13

6+1.8

6

6

0.7

0.3

0.2

0.5

1

0.8

0.2

10+0

3

10

4+8

4

4

5+4

8

5

12+0

2

12

7+11

1

7

8+0

3

8

9+0

1

9

13+2.4

2

13

6+0.6

6

6

0.7

0.3

0.2

0.5

0.3

1

y1m

10

0

8

0

4

2

1.6

0

13.4

11

6

2

4

0

5.2

1

1.8

0

y1M

y2m

y2M

y3m

y3M

y7m

y7M

y6m

y6m

y4m

y4M

y8m

y8M

y9m

y9M

0

2.4

0.6

14 of 19

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.

14

on the band

above the band

below the band

R2

R3

R1

Output of Step 1 of our algorithm

Output of our algorithm

15 of 19

Comparison of solutions

15

on the band

above the band

below the band

R2

R3

R1

band

R11

R12

R13

R2

R3

R1

Any feasible solution

Output of Step 1 of our algorithm

Output of our algorithm

16 of 19

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.

16

17 of 19

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, ∀ viV \ {v1}.

  • Corollary. The BCPP’ can be solved in O(n) time.

17

18 of 19

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.

18

19 of 19

Thank you for your attention!

19