! Optimal redundancy in a series/parallel system;
! A System consists of a set of stages/subsystems.
The System fails if and only if one or more stages/subsystem fails.
A stage consists of a set of components.
A subsystem fails if and only if every component fails;
! Keywords: Reliability, Series-parallel, Redundancy;
SETS:
 stage: p, c, n, psnof;
ENDSETS
DATA: ! The stages in the series system; stage = suba1 suba2 suba3; ! The cost of each component at each stage; c = 150 220 100; ! The probability of failure by a single component at each stage; p = .01 .02 .005; !The budget limit; budget = 800; ENDDATA ! For extremely small or large numbers is is numerically better to work with logarithms; ! Maximize the log of probability of no failure; MAX = lognofail; pnofail = @exp(lognofail); ! Actual Prob(No systems failure); @FOR( stage(i): ! Prob( at least one component works) = 1 - Prob( all fail); psnof(i) = 1 - p(i)^n(i); ! We need at least one component in each stage; n(i) >= 1; ! And it must be an integer; @GIN(n(i)); ); ! Prob( all stages successful) = psnof(1)*psnof(2)*..., so log(Prob( all stages successful)) = @log(psnof(1))+@log(psnof(2))+ ...; ! log of no system failure...; @FREE( lognofail); lognofail = @SUM(stage(i): @LOG(psnof(i))); ! And we must be within budget; @SUM(stage(i): c(i)*n(i)) <= budget;