Simultaneous testing of multicharacteristic components

Simultaneous testing of multicharacteristic components

Operations Research Letters 40 (2012) 411–415 Contents lists available at SciVerse ScienceDirect Operations Research Letters journal homepage: www.e...

202KB Sizes 0 Downloads 53 Views

Operations Research Letters 40 (2012) 411–415

Contents lists available at SciVerse ScienceDirect

Operations Research Letters journal homepage: www.elsevier.com/locate/orl

Simultaneous testing of multicharacteristic components Steven M. Shechter ∗ , Woonghee Tim Huh, Anyu Slofstra Operations and Logistics Division, Sauder School of Business, University of British Columbia, Canada

article

info

Article history: Received 11 March 2012 Received in revised form 1 May 2012 Accepted 11 May 2012 Available online 4 June 2012 Keywords: Inspection policies Test sequencing Multicharacteristic components

abstract We consider optimal testing policies for multiple components, each with multiple characteristics. The problem ends when all components have failed a test or one component passes every test. Previous literature demonstrated the optimality of simple ratio rules for sequencing when testing components and their characteristics one-at-a-time. We consider the possibility of testing components simultaneously, while still testing their characteristics one-at-a-time. We show that the ratio rule is no longer necessarily optimal and construct a heuristic with a performance guarantee. © 2012 Elsevier B.V. All rights reserved.

1. Problem description and background Consider multiple components, each of which has a set of characteristics that must be inspected one-at-a-time to determine the component’s eligibility for use in a downstream process. A component is usable if (and only if) all of its characteristics pass inspection. As soon as a component passes all of its tests, the entire testing process can terminate, as only one component is required to be used downstream. On the other hand, if all components have a characteristic that fails a test, it is known upon the last of these failures that no component can be used. We seek to minimize the expected time until a decision can be made in this setting. While we use traditional reliability language throughout (e.g., ‘‘component’’, ‘‘characteristic’’), the motivation for this problem comes from health care. In living donor donation, a potential donor must pass several health exams before being allowed to donate her organ to a patient (e.g., a sibling with kidney disease). If any of the tests fail, the donation will not be allowed out of concern for the donor’s health. Often, more than one donor comes forward to start the testing process. Since the intended recipient requires just one donor to pass all of the tests, testing for all potential donors can terminate as soon as one passes. On the other hand, if all donors have failed a test, then it is decided the patient will not receive a living donation. Decision makers would like to know the outcome of this process as soon as possible. The reliability literature discusses several variants of these types of problems, in which characteristics are tested one-ata-time, each has some independent probability pj of passing



Corresponding author. E-mail address: [email protected] (S.M. Shechter).

0167-6377/$ – see front matter © 2012 Elsevier B.V. All rights reserved. doi:10.1016/j.orl.2012.05.008

inspection, and takes some amount of time (or cost) tj to complete (for a review of this literature, see [6]). The typical goal is to minimize the expected time until a decision is made regarding whether a component passes inspection or not. When there is a single component with N characteristics, the decision occurs upon the first characteristic failure or when all of them pass. Several authors discuss and prove the optimality of an intuitive ratio rule policy for this case: sequence the characteristics in nondecreasing t order of 1−jp [2–5]. In other words, characteristics that either have j

a short test time or high probability of failing will tend to be sequenced earlier. Ben–Dov [1] considers sequential testing policies for multiple components, with each component i having Ni characteristics, and characteristic j passing with probability pij and taking time tij . He refers to this as a ‘‘parallel-series’’ system, in which only one component is required to pass for the system to continue operating, but each component requires all of its characteristics to pass to be usable. In addition to the testing of the characteristics, it is assumed that components can also only be tested one-at-atime. For example, this is relevant to situations in which there is a single inspector available for performing all tests. Ben-Dov proves the optimality of a nested ratio rule, which works as follows. First, for each component, sequence its characteristics t according to the ratio rule described above (nondecreasing 1−ijp ij

for each fixed component i). Then, supposing each component’s characteristics in the order {1, 2, . . . , Ni }, let Ti ≡  are sequenced 

ti1 +

Ni

j =2

j−1

k=1

pik tij and Pi ≡

Ni

j =1

pij . In other words, Ti is

the expected time until a decision is made regarding component i if it were the only component under consideration, and Pi is the probability it passes all of its tests. The second level of the ratio rule then states that it is optimal to test components

412

S.M. Shechter et al. / Operations Research Letters 40 (2012) 411–415

in their entirety one-at-a-time (i.e., complete all the tests of one component’s characteristics before proceeding to another T component) in nondecreasing order of Pi . This is also intuitive; i since only one usable component is needed, components with a shorter expected time until decision or a high probability of passing all of their characteristic tests will tend to be sequenced earlier. We also consider the testing of multiple characteristics across multiple components. The key difference between our framework and that of Ben-Dov, is that we consider simultaneous testing of components (while still assuming one-at-a-time testing of a component’s characteristics). Returning to the living donation context, transplant centers may have more than one potential donor start the testing workup process at the same time, but still wait for each particular donor’s test result to be known before starting her on the next test in the sequence. Therefore, the question still remains as to the optimal sequencing of each donor’s tests so as to minimize the overall expected time until a donation decision is made. More generally, our setup is also relevant to any setting in which each component may have a dedicated inspector for testing its characteristics. Therefore, we assume all components begin testing in parallel at the same time, and focus on how to sequence the testing of each component’s characteristics. Again, the problem ends once a decision is made; that is, as soon as one component has passed all of its tests or all components have failed a test (if there are any components still undergoing testing at the time another has passed all of its tests, we assume the testing of those components stops at that time). To our knowledge, we are the first to consider the simultaneous inspection of multicharacteristic components, which leads to seemingly counterintuitive results (discussed in Section 2) as well as an apparently difficult optimization problem. We use the ratio rule to construct another heuristic with a reasonable performance guarantee (Section 3), and compare both heuristics in computational experiments (Section 4). 2. The ratio rule need not be optimal As noted above, when components are considered individually, the expected time until deciding failure or pass of a single component i is minimized by sequencing its Ni characteristics in t the nondecreasing ratio order of 1−ijp . It would then seem intuitive ij

that sequencing each component’s characteristics this way would minimize the overall expected time to decision when testing components simultaneously. However, as we demonstrate below, this need not be the case. This also seems surprising given that a single inspector faced with multiple components would sequence the characteristics within a component in the nondecreasing ratio order as well (as discussed in the parallel-series system of [1]). Yet, if each component has its own inspector, it may be optimal for some of them to sequence their characteristics out of the ratio rule ordering. To illustrate, consider two components A and B. Component A has two characteristics, indexed by 1 and 2, while B only has one characteristic, indexed by 1. It is easy to verify that the only case in which the counterintuitive result may arise is when the following conditions hold: pB1 < 1, pA1 ̸= pA2 , tA1 + tA2 > tB1 , and min{tA1 , tA2 } ≤ tB1 . For example, consider the case that both of tA1 and tA2 are less than tB1 (but their sum is greater than tB1 ). Sequencing A’s tests as 1 then 2 yields an expected time until decision of: E [τ12 ] = pB1 tB1 + (1 − pA1 )(1 − pB1 )tB1

+ pA1 (1 − pB1 )(tA1 + tA2 ). The first part of this equation arises because if B’s characteristic passes (with probability pB1 ), then the time until decision will be

tB1 regardless of whether A’s first test passes or fails. The second term in the sum comes from the fact that the time until decision will again be tB1 if A’s first test fails and then B’s test fails. Finally, the third term indicates the time will be (tA1 + tA2 ) if A’s first test passes but B’s test fails, regardless of the outcome of A’s second test. Similarly, sequencing A’s characteristics as 2 then 1 yields: E [τ21 ] = pB1 tB1 + (1 − pA2 )(1 − pB1 )tB1

+ pA2 (1 − pB1 )(tA1 + tA2 ). It is easy to verify that E [τ12 ] < E [τ21 ] if and only if pA1 < pA2 . Suppose this inequality holds. Then if applying the ratio rule to sequence A’s tests, one would (suboptimally) sequence them as 2 t < 1−tA1pA1 . For example, let pA1 = 0.6, then 1 if and only if 1−A2 pA2 pA2 = 0.7, pB1 = 0.5, tA1 = 8, tA2 = 5, and tB1 = 10. Then it is optimal to sequence A’s characteristics as 1 followed by 2 (since 10.9 = E [τ12 ] < E [τ21 ] = 11.05), while the ratio rule suggests t < 1−tA1pA1 = sequencing them as 2 followed by 1 (since 16 23 = 1−A2 pA2 20). Therefore, this example shows that the ratio rule may not be optimal. 3. A heuristic with a performance guarantee While the ratio rule is not optimal in general, we discuss a special case under which it is guaranteed to be optimal, and we use this result to construct another heuristic for which we can prove a reasonable worst case performance guarantee. Proposition 1. Suppose that the tests of each component i satisfy ti1 = ti2 = · · · = tiNi . Then, the expected time until decision is minimized by any sequence such that the tests of each component i t are in the order of nondecreasing pij values, i.e., nondecreasing 1−ijpij values. Proof. Without loss of generality, suppose we arbitrarily fix the sequence of all components except component 1. We will show that the expected time until decision decreases or stays the same by sequencing 1’s characteristics according to nondecreasing pij values, from which it will follow that every component should be sequenced in that way. We condition on the pass/fail outcomes of tests associated with components {2, . . . , M }. Let S be the time to decision of these components had component 1 not existed, i.e., the time when all of the components {2, . . . , M } fail, or the time when the first of them passes all of its tests. (Note that, based on our conditioning, S is a deterministic quantity.) Case (a): S corresponds to the case where all of {2, . . . , M } fail. N If j=i 1 t1j ≤ S, then the time to decision is given by

τ=

N i     t1j  

with probability

    S

with probability 1 −

j =1

N1 

p1j

j =1 N1 

p1j .

j =1

Above, the first case occurs when component 1 passes all tests, and the second case occurs when component 1 fails some test. Note that the above expression is independent of the sequencing decision for component 1’s characteristics. N Now, suppose j=i 1 t1j > S. Then, the cumulative distribution function, F (t ), of τ is 0 for t < S (in this case the time to decision must be at least S), and for t ≥ S, it is a step function with the jumps occurring at {t11 + · · · + t1j |j = 1, . . . , N1 }, satisfying P [τ > t ] = 1

if t < S ,

and P [τ > t11

+ · · · + t1j ] = p11 p12 · · · p1j if t11 + · · · + t1j ≥ S .

S.M. Shechter et al. / Operations Research Letters 40 (2012) 411–415

Thus, it can be shown that E [τ ] is minimized when component 1’s tests are scheduled according to nondecreasing pij values. To see this, let (1◦ , 2◦ , . . . , N1◦ ) be any ordering of tests for component 1, and let (1′ , 2′ , . . . , N1′ ) be the ordering of component 1 tests based on nondecreasing pij′ values. Let τ ◦ and τ ′ denote the time to decision associated with component 1 sequences (1◦ , . . . , N1◦ ) and (1′ , . . . , N1′ ), respectively. Then, for any t11′ + · · · + t1j′ ≥ S, P [τ ′ > t11′ + t12′ + · · · + t1j′ ]

= p11′ p12′ · · · p1j′ ≤ p11◦ p12◦ · · · p1j◦ = P [τ ◦ > t11◦ + t12◦ + · · · + t1j◦ ] = P [τ ◦ > t11′ + t12′ + · · · + t1j′ ],

if all tests that derived from the same test in (P ) are scheduled in a row, in which case the corresponding policy is obtained by replacing the row of tests with its original test in (P ). If tij values are rational, then let δ be a common denominator such that each δ · tij is integral. Then, for an original problem (P ), we define an auxiliary problem (P ′ ) with parameter δ by replacing testing of characteristic j of component i with δ · tij copies of a test, each with test duration δ and the probability of passing ρij , where pij = (ρij )δ·tij ,

i.e., ρij = (pij )1/(δ·tij ) .

(2)

(Note that (1) is a special case of (2) with δ = 1.) We define the ‘‘corresponding’’ schedules between (P ) and (P ′ ) as before.

where the first inequality follows the choice of (1′ , . . . , N1′ ), and the last equality follows by the assumption that each test duration is identical for component 1. This implies that τ ◦ stochastically dominates τ ′ . Thus, E [τ ′ ] ≤ E [τ ◦ ]. Case (b): S corresponds to the case where at least one of {2, . . . , M } succeeds. Ni If j=1 t1j ≥ S, then the time to decision τ is simply S, independent of the scheduling decision for component 1. Suppose Ni Ni j=1 t1j < S. Then, if component 1 passes all its tests, τ is j=1 t1j ; otherwise, component 1 fails at least one test, in which case τ = S. Therefore, τ is unaffected by the sequencing of component 1’s characteristics. While we do not know a priori the value S will take on and which case it will fall into, the above discussion demonstrates that by sequencing component 1’s tests according to the nondecreasing ratio rule, we are guaranteed to minimize the expected time to decision. The same arguments applied to every component completes the proof that all components’ characteristics should be sequenced by nondecreasing pij values.  Note that when the condition in the statement of Proposition 1 does not hold, it may be difficult to obtain the schedule for tests that minimizes the expected time to decision. Proposition 1 is applicable, in particular, when all tests take the same amount of time, i.e., tij = 1 for all i’s and j’s. We use this observation to develop a heuristic method for developing a reasonably good solution. To describe our heuristic, it is helpful to define an auxiliary problem, which we derive based on the original problem. (By the original problem, we refer to the problem of minimizing the expected time to decision with one inspector per component based on the original input parameters.) We denote the original problem by (P ). Suppose that all values of tij ’s are integers. We construct the auxiliary problem (P ′ ) by replacing the test associated with the characteristic j of component i in (P ) with tij copies of a test, each with the time of test duration being 1 and the probability of passing given by ρij , where pij = (ρij )tij ,

413

i.e., ρij = (pij )1/tij .

(1)

In other words, the auxiliary problem (P ) is constructed such that the probability of passing all tij unit time tests, each with probability of passing ρij , is the same as the probability of passing test j of component i in (P). Furthermore, because each test takes exactly 1 unit of time, the optimal schedule for (P ′ ) is to schedule tests for each component i based on the nondecreasing order of ρij values (by Proposition 1). Also, we can assume that, under the optimal schedule for (P ′ ), all tests that derived from the same test in (P ) are scheduled in a row. This observation is useful to show that there exists an optimal schedule of (P ′ ) that can be derived from a feasible schedule of (P ), which we formalize in the proof of Theorem 1. For each schedule in (P ), we can find a corresponding schedule in (P ′ ) by replacing test j of component i with a series of its derivative tests in (P ′ ). A schedule in (P ′ ) has a corresponding policy in (P ) ′

Lemma 1. Suppose that each tij is a rational number, and let (P ′ ) be an auxiliary problem of (P ) with parameter δ , where δ · tij is integral for each i and j. For a pair of schedules for (P ) and (P ′ ) that correspond to each other, let τ and τ ′ denote the time to decision, respectively. Then, 0 ≤ E [τ ] − E [τ ′ ] < max tij . i ,j

Proof. We first assume integer tij values and δ = 1. Consider the sample path of passes/fails such that a test in (P ) passes if and only if all of its derivative tests in (P ′ ) passes. Then, each component i fails in (P ) if and only if it fails in (P ′ ). Furthermore, since two schedules correspond to each other, it can be shown that the time of failure in (P ′ ) is no later than the time of failure in (P ), and the difference is at most maxk tij − 1. This implies 0 ≤ E [τ ] − E [τ ′ ] ≤ max tij − 1. i,j

(3)

In the case of rational tij values, let δ be a common denominator of all fractional numbers representing tij values such that (P ′ ) is an auxiliary problem of (P ) with parameter δ . Then, by following the above logic, we obtain an inequality similar to (3) except that the rightmost expression is replaced with maxi,j tij − 1/δ . Thus, we obtain both of the required inequalities.  This result motivates a heuristic for constructing a policy that performs well compared to the optimal policy: for each component i, we sequence tests based on the nondecreasing value of ρij . This requires additional explanation as we have introduced two definitions of ρij —see (1) and (2), and the latter depends on the choice of the parameter δ . However, this is not ambiguous since the ordering induced by ρij values does not depend on the choice of δ . (To see this, recall that (1) is a special case of (2), which can

1/δ

be expressed as ρij = (pij )1/tij . Since [·]1/δ is strictly increasing in its argument, the ordering induced by ρij is independent of the choice of δ .) We shall call this the ‘‘ρ heuristic’’. Theorem 1 below, based on Proposition 1 and Lemma 1, shows that the expected time to decision of this policy is within an additive constant (maxi,j tij ) of the optimal policy.



Theorem 1. Suppose that each tij is a rational number. Let E [τ ◦ ] denote the expected time to decision when tests in each component i are ordered according to nondecreasing ρij values, where ρij is defined as in (1). Let E [τ ∗ ] denote that minimum expected time to decision over all possible orderings of tests. Then, 0 ≤ E [τ ◦ ] − E [τ ∗ ] < max tij . i ,j

Proof. As before, let (P ) represent the original problem and (P ′ ) represent the auxiliary problem with parameter δ such that each ′ δ · tij is integral. Let τ ◦ denote the time to decision in (P ′ ) of the policy that corresponds to the policy in (P ) where the tests for each component are ordered according to nondecreasing ρij values. By Lemma 1, ′

0 ≤ E [τ ◦ ] − E [τ ◦ ] < max tij . i ,j

414

S.M. Shechter et al. / Operations Research Letters 40 (2012) 411–415 Table 1 Comparison of results for different combinations of components (C ) and tests-per-component (T ). For each combination, 100 random instances (for test duration and success probability) were evaluated. For the last two columns, for each instance, the expected time until decision of the heuristic and the optimal solution are compared through the percentage increase of the former over the latter. Then the mean of these percentages is calculated. C

T

Percent cases ρ (ratio) better

Percent cases ρ (ratio) is optimal

Percent cases min(ρ , ratio) is optimal

Mean percent of ρ (ratio) above optimal

Mean percent of min(ρ , ratio) above optimal

2

3 4 5

4 (20) 17 (34) 15 (44)

69 (84) 49 (66) 43 (78)

87 77 84

1.68 (0.34) 1.31 (0.80) 3.18 (0.55)

0.17 0.14 0.21

3

3 4 5

18 (19) 27 (25) 30 (49)

57 (60) 47 (46) 28 (39)

72 61 50

0.84 (0.66) 0.99 (0.70) 2.70 (1.26)

0.25 0.28 0.52

4

3 4 5

27 (14) 38 (33) 39 (49)

47 (46) 29 (38) –

58 49 –

0.69 (0.76) 1.38 (1.11) –

0.35 0.50 –

5

3 4 5

33 (15) 60 (29) 50 (42)

37 (33) 20 (19) –

45 34 –

0.71 (0.92) 1.21 (1.84) –

0.43 0.66 –

10

5 10 15

86 (14) 46 (54) 23 (77)

– – –

– – –

– – –

– – –

20

5 10 15

98 (2) 86 (14) 36 (64)

– – –

– – –

– – –

– – –

Table 2 Comparison of percentiles for the two heuristics and the minimum of the two, when compared against the optimal solution. For example, for 3 components and 3 tests, in 75 of the 100 random instances the ρ solution was within 0.32% of the optimal and the worst ρ solution was 12.68% above optimal. C

2

3 4 5

Percentile of ρ above optimal

T

3 4 5 3 4 5 3 4 3 4

25th

50th

75th

100th

25th

50th

75th

100th

25th

50th

75th

100th

0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01

0.00 0.00 0.03 0.00 0.00 0.56 0.00 0.23 0.11 0.31

0.38 0.75 2.26 0.32 0.87 3.46 0.66 1.16 0.67 1.60

56.57 33.91 37.10 12.68 29.85 50.80 12.50 35.66 12.13 15.72

0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.08

0.00 0.00 0.00 0.00 0.00 0.07 0.03 0.23 0.30 0.93

0.00 0.31 0.00 0.44 1.05 1.43 1.07 1.67 1.11 2.89

11.80 13.50 14.23 12.49 8.87 12.95 9.70 7.39 12.34 10.08

0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.10

0.00 0.00 0.00 0.01 0.13 0.49 0.30 0.68 0.57 0.94

5.92 2.10 3.68 5.16 3.29 5.63 4.59 7.39 4.45 4.33

By the definition of the auxiliary problem (P ′ ), the duration of its tests in (P ′ ) are the same. By Proposition 1, it is optimal to schedule tests in (P ′ ) in order of nondecreasing ρij values, and thus the policy ′

that is associated with τ ◦ (described above) is optimal in (P ′ ). Then, we have ′

Percentile of min(ρ , ratio) above optimal

Percentile of ratio above optimal



E [τ ◦ ] ≤ E [τ ∗ ] ≤ E [τ ∗ ], ′

where τ ∗ denotes the time to decision in (P ′ ) of the policy that corresponds to the policy in (P ) that achieves E [τ ∗ ], and the second inequality follows again from Lemma 1. Thus, ′

E [τ ◦ ] − E [τ ∗ ] ≤ E [τ ◦ ] − E [τ ◦ ] < max tij . i ,j

This completes the proof since E [τ ◦ ] ≥ E [τ ∗ ] follows from the definition of E [τ ∗ ].  4. Numerical experiments We ran several combinations of number of components and tests-per-component to compare the ρ heuristic and the ratio rule (Tables 1 and 2). For each combination, we evaluated 100 random test instances, with each characteristic’s inspection taking a uniform discrete duration between 1 and 10 and having a probability of passing uniformly distributed between 0 and 1. For certain combinations, we could reasonably find the optimal

policy through exhaustive enumeration of all possible sequences (e.g., in the case of 4 components and 5 tests per component, we evaluated all (4!)5 = 7, 962, 624 possible test sequences per random instance). For combinations with larger possible test sequences, we just compared the heuristics against each other. It is difficult to draw any firm conclusions about when one heuristic will tend to outperform the other. The third column of Table 1 provides a head-to-head comparison of the two heuristics, and for some combinations (e.g., 10 components and 5 tests) the ρ heuristic wins a large percentage of the time, whereas for others (e.g., 10 components and 15 tests) the ratio rule wins more often. However, both heuristics appear to perform well when we can compare them to the optimal solution. The fourth column of Table 1 shows that a significant proportion of the time, each heuristic yields the optimal policy, and the sixth column shows that the average performance of each is close to optimal. Table 2 provides percentile information of each heuristic. The median performance (i.e., 50th percentile) of each heuristic is even better than the mean, and is often optimal (e.g., in the case of 3 components and 4 tests for each heuristic). Not surprisingly, the worst performance (i.e., 100th percentile) of each heuristic can perform poorly, and this is especially true for the ρ heuristic. Note that because one can quickly obtain the policies of both heuristics, one can easily implement the ‘‘min’’ heuristic; that is, whichever heuristic yields the lower expected time until decision for the parameters of the problem. As seen in columns 5 and 7

S.M. Shechter et al. / Operations Research Letters 40 (2012) 411–415

of Table 1 and the last set of columns of Table 2, the minimum of the two demonstrates excellent performance. For example, the worst average performance was only 0.66% above optimal (Table 1, 5 components and 4 tests), and the worst 100th percentile performance was 7.39% above optimal (Table 2, 4 components and 4 tests). Furthermore, with the exception of this last case, the 100th percentile of the min heuristic is much better than the minimum of the 100th percentile of each heuristic separately, suggesting the two heuristics in some sense help each other out. Therefore, our overall recommendation is to apply the min heuristic in this setting. Acknowledgments We thank Phillip Mah and Mike Lawrence for help in running the computational experiments. We also thank Chris Nguan,

415

Sharon Duncan, and Andrea O’Shaughnessy of the British Columbia Transplant Society for helpful discussions on living donation testing processes. The comments from the editors were helpful in tightening our exposition and argument. References [1] Y. Ben-Dov, Optimal testing procedures for special structures of coherent systems, Management Science 27 (12) (1981) 1410–1420. [2] H. Boothroyd, Least-cost testing sequence, Operations Research Quarterly 11 (3) (1960) 137–138. [3] R. Butterworth, Some reliability fault-testing models, Operations Research 20 (2) (1972) 335–343. [4] S.O. Duffuaa, A. Raouf, An optimal sequence in multicharacteristic inspection, Journal of Optimization Theory and Applications 67 (1) (1990) 79–85. [5] L.G. Mitten, An analytic solution to the least cost testing sequence problem, Journal of Industrial Engineering 11 (1960) 17. [6] T. Ünlüyurt, Sequential testing of complex systems: a review, Discrete Applied Mathematics 142 (2004) 189–205.