For each array element
{ \\ start for each element in array element
Get attribute name, Get attribute value, Get breakable flag , Get Item Class
If attribute name and value are not blank
{ \\ start if attribute name and value are not blank.
For each still possible decision
{ \\ start for each decision whose eliminate flag is not set
Get the items at the decisions head location
If (number of items at head > 0)
{ \\ start if items > 0
For each item in head location
{ \\ start for each item in location
Get the attribute value
If (the attribute was found and the attribute values match)
{ \\ start if attribute found and value matched)
Set eliminate flag to false
if Rule type[P3] == Group
if Group count[P7] is >= rule [P6]
set eliminate flag to true
end if
Else if Rule type[P3] == Percentage
Calculate the percentage released =
Attribute Count[P10] / Total count [P11]* 100
If (Percent Release is >= Upper Rel %[P8] or
Percent Release is <= Lower Rel[P9] %)
Set the eliminate flag.
End if
Else \\ if rule type is spacing
If (spacing count[P7] < rule [P6])
Set eliminate flag to true
End if
}//endif attribute found and match
}//end for next item at location
}\\end if item > 0
}\\end for each possible decision
if(breakability flag [P12]is set)
{ \\ start if breakability flag set
if (all decisions are eliminated)
{
Roll back decisions eliminated by this pass of array element (rule type)
( i.e. do not eliminate decisions whose eliminate flag is set on this pass)
}
else \\ if all decisions are not eliminated and breakability flag is set
{
Eliminate decisions whose eliminate flag is set in this pass
}
}\\ end if breakability flag set
else \\ if breakability flag is not set for this pass
{
Eliminate decisions whose eliminate flag is set in this pass
}
}//endiif attribute value and name are blank
}//end for – next array element
Eliminate Decision based On rule pseudo code. |