({{, (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[rdist] 
gives the structural importances for all components in the (RefLink[ReliabilityDistribution, paclet:ref/ReliabilityDistribution]) rdist.}, {, (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[fdist] 
gives the structural importances for all components in the (RefLink[FailureDistribution, paclet:ref/FailureDistribution]) fdist.}, {, (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[bexpr,{(Subscript[x, 1]),(Subscript[x, 2]),…}]
gives the structural importance for the components (Subscript[x, 1]), (Subscript[x, 2]), … in the Boolean expression bexpr.}})

OpenersNotesSection(Spacer1)Details

(RefLink[StructuralImportance, paclet:ref/StructuralImportance]) is also known as Birnbaum's structural importance.

The structural importance for component i is the fraction of the system states in which component i is working, where a failure of component i will result in a failure of the system.

For (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[fdist] and (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[rdist], the results are returned in the component order given in the distribution list in rdist or fdist.

For (RefLink[StructuralImportance, paclet:ref/StructuralImportance])[bexpr,{(Subscript[x, 1]),(Subscript[x, 2]),…}], the results are returned in the order {(Subscript[x, 1]),(Subscript[x, 2]),…}.

(RefLink[StructuralImportance, paclet:ref/StructuralImportance])[bexpr,…] is defined when (RefLink[UnateQ, paclet:ref/UnateQ])[bexpr] is (RefLink[True, paclet:ref/True]).

OpenersPrimaryExamplesSection(Spacer1)Examples  (31)

OpenersExampleSection0(Spacer1)Basic Examples  (4)

Two components connected in series:

ℛ=ReliabilityDistribution[x∧y,{{x,ExponentialDistribution[1]},{y,ExponentialDistribution[2]}}];

The result is given in the same order as the distribution list in (RefLink[ReliabilityDistribution, paclet:ref/ReliabilityDistribution]):

{(Subscript[si, x]),(Subscript[si, y])}=StructuralImportance[ℛ]

Two components connected in parallel:

ℛ=ReliabilityDistribution[x∨y,{{x,ExponentialDistribution[(Subscript[λ, 1])]},{y,ExponentialDistribution[(Subscript[λ, 2])]}}];

StructuralImportance[ℛ]

Use the structure function directly, without lifetime distributions:

StructuralImportance[x∨(y∧z),{x,y,z}]

PieChart[%,ChartLabels->{x,y,z}]

Use fault tree-based modeling to define the system:

ℱ=FailureDistribution[x∧y,{{x,WeibullDistribution[2,3]},{y,WeibullDistribution[4,5]}}];

StructuralImportance[ℱ]

OpenersExampleSection1(Spacer1)Scope  (18)

OpenersExampleSubsection0(Spacer1)Boolean Expression Models  (5)

Both components in a parallel structure have the same structural importance:

StructuralImportance[x∨y,{x,y}]

Structural importance for a serial structure:

StructuralImportance[x∧y,{x,y}]

Structural importance for components in a 2-out-of-3 network:

StructuralImportance[BooleanCountingFunction[{2,3},{x,y,z}],{x,y,z}]

Importance for a mixed system:

StructuralImportance[x∧(y∨z),{x,y,z}]

Importance for a mixed system:

StructuralImportance[x∨(y∧z),{x,y,z}]

OpenersExampleSubsection1(Spacer1)ReliabilityDistribution Models  (7)

Two components connected in parallel:

ℛ=ReliabilityDistribution[x∨y,{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]}}];

Both components are equally important:

StructuralImportance[ℛ]

Two components connected in series:

ℛ=ReliabilityDistribution[x∧y,{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]}}];

Importance is the same:

StructuralImportance[ℛ]

A system where two out of three components need to work:

ℛ=ReliabilityDistribution[BooleanCountingFunction[{2,3},{x,y,z}],{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]},{z,ExponentialDistribution[λ]}}];

Components are equally important:

StructuralImportance[ℛ]

A simple mixed system:

d=ExponentialDistribution[1];

ℛ=ReliabilityDistribution[x∧(y∨z),{{x,d},{y,d},{z,d}}];

Component x is more important:

StructuralImportance[ℛ]

A system with a series connection in parallel with a component:

d=ExponentialDistribution[1];

ℛ=ReliabilityDistribution[x∨(y∧z),{{x,d},{y,d},{z,d}}];

The single component x is more important:

StructuralImportance[ℛ]

One component in parallel with two others, with different distributions:

dists={{x,ExponentialDistribution[1]},{y,ExponentialDistribution[2]},{z,ExponentialDistribution[1]}};

ℛ=ReliabilityDistribution[x∧(y∨z),dists];

Find the importance measures at one specific point in time as exact results:

StructuralImportance[ℛ]

As machine-precision results:

StructuralImportance[ℛ]//N

Model the system in steps to get the importance measure for a subsystem:

ℛsub=ReliabilityDistribution[x∨y,{{x,ExponentialDistribution[1]},{y,ExponentialDistribution[1]}}];

ℛ=ReliabilityDistribution[z∧r,{{z,ExponentialDistribution[1]},{r,ℛsub}}];

StructuralImportance[ℛ]

OpenersExampleSubsection2(Spacer1)FailureDistribution Models  (6)

Any of two basic events lead to the top event:

ℱ=FailureDistribution[x∨y,{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]}}];

Both events have the same importance:

StructuralImportance[ℱ]

Only both basic events together lead to the top event:

ℱ=FailureDistribution[x∧y,{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]}}];

Serial events are equally important:

StructuralImportance[ℱ]

A voting gate, with identical distributions on the basic events:

ℱ=FailureDistribution[BooleanCountingFunction[{2,3},{x,y,z}],{{x,ExponentialDistribution[λ]},{y,ExponentialDistribution[λ]},{z,ExponentialDistribution[λ]}}];

The events have the same structural importance:

StructuralImportance[ℱ]

A simple system with both (RefLink[And, paclet:ref/And]) and (RefLink[Or, paclet:ref/Or]) gates:

d=ExponentialDistribution[1];

ℱ=FailureDistribution[x∧(y∨z),{{x,d},{y,d},{z,d}}];

The basic event x is most important:

StructuralImportance[ℱ]

A simple system with both (RefLink[And, paclet:ref/And]) and (RefLink[Or, paclet:ref/Or]) gates:

d=ExponentialDistribution[1];

ℱ=FailureDistribution[x∨(y∧z),{{x,d},{y,d},{z,d}}];

Compute the importance:

StructuralImportance[ℱ]

Model the system in steps to get importance measure for a subsystem:

ℱsub=FailureDistribution[x∨y,{{x,ExponentialDistribution[1]},{y,ExponentialDistribution[1]}}];

ℱ=ReliabilityDistribution[z∧f,{{z,ExponentialDistribution[1]},{f,ℱsub}}];

StructuralImportance[ℱ]

OpenersExampleSection3(Spacer1)Applications  (4)

Two points in a city are connected through a network of water pipes (Subscript[x, i]). Find the pipes most critical to maintain the supply of water:

sys=((Subscript[x, 1])∧(Subscript[x, 2]))∨((Subscript[x, 1])∧(Subscript[x, 5])∧(Subscript[x, 6]))∨((Subscript[x, 3])∧(Subscript[x, 6]))∨((Subscript[x, 4])∧(Subscript[x, 6]))∨((Subscript[x, 3])∧(Subscript[x, 5])∧(Subscript[x, 2]))∨((Subscript[x, 4])∧(Subscript[x, 5])∧(Subscript[x, 2]));

si=StructuralImportance[sys,Table[(Subscript[x, i]),{i,6}]]

Pipe (Subscript[x, 6]) is most important:

PieChart[si//N,ChartLabels->Table[(Subscript[x, i]),{i,6}]]

Analyze what component is most likely to have caused a failure at the launch of an aircraft. The hangar door can be opened electronically or manually:

hangarDoor=power∨manual;

Two fuel pumps require power to run:

fuelTransferA2=power∧pumpA2;

fuelTransferB2=power∧pumpB2;

Two more pumps run on reliable batteries, giving the following fuel transfer structure:

fuelTransfer=(pumpA1∧(pumpB1∨fuelTransferB2))∨(fuelTransferA2∧(pumpB1∨fuelTransferB2));

Also needed is deicing of the aircraft and a fuel storage tank:

launch=fuelStorage∧fuelTransfer∧hangarDoor∧deicing;

Compute the importance:

vars={deicing,fuelStorage,manual,power,pumpA1,pumpB1,pumpA2,pumpB2};

si=StructuralImportance[launch,vars]//N;

Deicing and fuel storage have the highest structural importance:

PieChart[Table[Labeled[si[[i]],vars[[i]],"RadialCallout"],{i,Length[si]}],ImagePadding->30]

(RefLink[StructuralImportance, paclet:ref/StructuralImportance]) is also called the Banzhaf power index and measures the probability of changing the outcome of a voting procedure. Consider a county board with the following districts and votes:

countylist={{hempstead1,9},{hempstead2,9},{northHempstead,7},{oysterBay,3},{glenCove,1},{longBeach,1}};

Find all combinations of district votes that will give a majority:

majorityComb=Select[Subsets[countylist],Total[#[[All,2]]]≥16&][[All,All,1]];

The Boolean expression for a decision achieving a majority:

majorityBexpr=Or@@Apply[And,majorityComb,{1}];

None of the Oyster Bay, Glen Cove, and Long Beach districts can change the outcome of a vote alone:

StructuralImportance[majorityBexpr,countylist[[All,1]]]

Compute the Banzhaf power index of the states in the 1804 US presidential election:

pick[_,votes_,needed_]/;needed>Total[votes]:=False;
pick[{},{},_]:={{}};
pick[_,_,_?NonPositive]:={{}};
pick[states_,votes_,needed_]:=Cases[Flatten[Table[Append[#,states[[i]]]&/@pick[states[[i+1;;]],votes[[i+1;;]],needed-votes[[i]]],{i,1,Length[states]}],1],Except[False]]

states1804={CT,DE,GA,KY,MD,MA,NH,NJ,NY,NC,OH,PA,RI,SC,TN,VT,VA};

votes1804={9,3,6,8,11,19,7,8,19,14,3,20,4,10,5,6,24};

bexpr=Or@@(And@@@pick[states1804,votes1804,89]);

power=StructuralImportance[bexpr,states1804];

Compare with the population in the respective states:

population={255376,67632,198565,295137,357139,442512,196092,224907,736969,509045,119482,685410,72244,373385,168018,179823,835592};

Population on the inner pie, power index on the ring:

labeler[_,{1,_},___]:=None
labeler[_,{2,c_},___]:=Placed[states1804[[c]],"RadialCallout"]

PieChart[{population,power},SectorSpacing->0.1,LabelingFunction->labeler]

As a plot of population and power index:

ListPlot[Tooltip[{#[[1]],#[[2]]},#[[3]]]&/@Transpose@{population,power,states1804},AxesLabel->{"Pop.","Power"}]

Compare the power index with the dates they joined the union:

dates={{1788,1,9},{1787,12,7},{1788,1,2},{1792,6,1},{1788,4,28},{1788,2,6},{1788,6,21},{1787,12,18},{1788,7,26},{1789,11,21},{1803,3,1},{1787,12,12},{1790,5,29},{1788,5,23},{1796,6,1},{1791,3,4},{1788,6,25}};

DateListPlot[Tooltip[#[[;;2]],#[[3]]]&/@Transpose[{dates,Divide@@@Transpose[{power,population}],states1804}]]

OpenersExampleSection4(Spacer1)Properties & Relations  (4)

Structural importance is independent of the lifetime distributions:

bexpr=x∨y∧(z∨v);

ℛ=ReliabilityDistribution[bexpr,{{x,ExponentialDistribution[λ]},{y,WeibullDistribution[α,β]},{z,LogNormalDistribution[μ,σ]},{v,ErlangDistribution[k,λ]}}];

The result does not contain any of the distribution parameters:

StructuralImportance[ℛ]

It is equivalent to the specification without the distributions:

StructuralImportance[bexpr,{x,y,z,v}]

Structural importance is (RefLink[BirnbaumImportance, paclet:ref/BirnbaumImportance]) where components have probability 1/2:

bexpr=x∨(y∧z);

ℬ=BernoulliDistribution[1/2];

ℛ=ReliabilityDistribution[bexpr,{{x,ℬ},{y,ℬ},{z,ℬ}}];

BirnbaumImportance[ℛ,t]//Refine[#,t<1]&

StructuralImportance[bexpr,{x,y,z}]

Irrelevant components do not influence the importance of other components:

bexpr=(x∧y)∨(x∨z)

bexprSimple=Simplify[bexpr]

StructuralImportance[bexpr,{x,y,z}]==StructuralImportance[bexprSimple,{x,y,z}]

Irrelevant components have importance 0:

StructuralImportance[bexprSimple,{x,y,z}]

Structural importance for bexpr in (RefLink[ReliabilityDistribution, paclet:ref/ReliabilityDistribution]) is equal to bexpr in (RefLink[FailureDistribution, paclet:ref/FailureDistribution]):

bexpr=(Subscript[x, 1])∨((Subscript[x, 2])∧(Subscript[x, 3]))∨((Subscript[x, 4])∧(Subscript[x, 5]));
dists=Table[{(Subscript[x, i]),ExponentialDistribution[1]},{i,5}];

StructuralImportance[ReliabilityDistribution[bexpr,dists]]

StructuralImportance[FailureDistribution[bexpr,dists]]

OpenersExampleSection5(Spacer1)Neat Examples  (1)

Show all the importance measures for a regular system structure:

bexpr=Or@@And@@@MapIndexed[#1[[;;First[#2]]]&,Array[(Subscript[x, #1,#2])&,{5,5}]];

ℛ=ReliabilityDistribution[bexpr,Flatten[MapIndexed[#1[[;;First[#2]]]&,Array[{(Subscript[x, #1,#2]),ExponentialDistribution[1]}&,{5,5}]],1]];

PieChart[{StructuralImportance[ℛ],BarlowProschanImportance[ℛ],BirnbaumImportance[ℛ,1],CriticalityFailureImportance[ℛ,1],CriticalitySuccessImportance[ℛ,1],ImprovementImportance[ℛ,1],RiskAchievementImportance[ℛ,1],RiskReductionImportance[ℛ,1],FussellVeselyImportance[ℛ,1]}]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[ReliabilityDistribution, paclet:ref/ReliabilityDistribution])  ▪  (RefLink[FailureDistribution, paclet:ref/FailureDistribution])  ▪  (RefLink[BirnbaumImportance, paclet:ref/BirnbaumImportance])  ▪  (RefLink[BarlowProschanImportance, paclet:ref/BarlowProschanImportance])  ▪  (RefLink[RiskReductionImportance, paclet:ref/RiskReductionImportance])  ▪  (RefLink[RiskAchievementImportance, paclet:ref/RiskAchievementImportance])  ▪  (RefLink[CriticalityFailureImportance, paclet:ref/CriticalityFailureImportance])  ▪  (RefLink[CriticalitySuccessImportance, paclet:ref/CriticalitySuccessImportance])  ▪  (RefLink[FussellVeselyImportance, paclet:ref/FussellVeselyImportance])  ▪  (RefLink[ImprovementImportance, paclet:ref/ImprovementImportance])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Reliability, paclet:guide/Reliability])}, {▪(RefLinkPlain[System Model Analytics & Design, paclet:guide/SystemModelAnalyticsDesign])}})}})