System for solving diagnosis and hitting set problems
First Claim
1. A method for calculating a minimal Hitting Set from a collection of sets, comprising using a computer system to analyze a system having a collection of sets to derive the minimal Hitting Set from the collection of sets, the computer system being configured to perform acts of:
- receiving information regarding the collection of sets from the system;
creating an incidence matrix of the collection of sets;
creating nodes from the incidence matrix such that each node is a node in a search tree and has a label that includes a sub-matrix of the incidence matrix, and two disjoint subsets of the columns of the incidence matrix;
calculating an upper bound and calculating a lower bound for each label, where the upper bound and lower bound define a range of solutions for the minimal Hitting Set; and
determining whether each label has any child nodes or is a leaf node without any child nodes;
if the label does not have any child nodes, then stop and designate the label as a leaf node;
if the label does have a child node, splitting the label to create two new labels;
repeating acts of calculating and determining until all labels have been designated as leaf nodes, with information gathered from leaf nodes determining a solution of the Hitting Set, thereby allowing a user to identify the Hitting Set.
2 Assignments
0 Petitions
Accused Products
Abstract
The diagnosis problem arises when a system'"'"'s actual behavior contradicts the expected behavior, thereby exhibiting symptoms (a collection of conflict sets). System diagnosis is then the task of identifying faulty components that are responsible for anomalous behavior. To solve the diagnosis problem, the present invention describes a method for finding the minimal set of faulty components (minimal diagnosis set) that explain the conflict sets. The method includes acts of creating a matrix of the collection of conflict sets, and then creating nodes from the matrix such that each node is a node in a search tree. A determination is made as to whether each node is a leaf node or has any children nodes. If any given node has children nodes, then the node is split until all nodes are leaf nodes. Information gathered from the leaf nodes is used to determine the minimal diagnosis set.
9 Citations
20 Claims
-
1. A method for calculating a minimal Hitting Set from a collection of sets, comprising using a computer system to analyze a system having a collection of sets to derive the minimal Hitting Set from the collection of sets, the computer system being configured to perform acts of:
-
receiving information regarding the collection of sets from the system;
creating an incidence matrix of the collection of sets;
creating nodes from the incidence matrix such that each node is a node in a search tree and has a label that includes a sub-matrix of the incidence matrix, and two disjoint subsets of the columns of the incidence matrix;
calculating an upper bound and calculating a lower bound for each label, where the upper bound and lower bound define a range of solutions for the minimal Hitting Set; and
determining whether each label has any child nodes or is a leaf node without any child nodes;
if the label does not have any child nodes, then stop and designate the label as a leaf node;
if the label does have a child node, splitting the label to create two new labels;
repeating acts of calculating and determining until all labels have been designated as leaf nodes, with information gathered from leaf nodes determining a solution of the Hitting Set, thereby allowing a user to identify the Hitting Set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product for calculating a minimal Hitting Set from a collection of sets, the computer program product comprising computer-readable instruction means stored on a computer-readable medium for causing a computer to:
-
receive information regarding the collection of sets from the system;
create an incidence matrix of the collection of sets;
create nodes from the incidence matrix such that each node is a node in a search tree and has a label that includes a sub-matrix of the incidence matrix, and two disjoint subsets of the columns of the incidence matrix;
calculate an upper bound and calculating a lower bound for each label, where the upper bound and lower bound define a range of solutions for the minimal Hitting Set; and
determine whether each label has any child nodes or is a leaf node without any child nodes;
if the label does not have any child nodes, then stop and designate the label as a leaf node;
if the label does have a child node, splitting the label to create two new labels;
repeat operations of calculating and determining until all labels have been designated as leaf nodes, with information gathered from leaf nodes determining a solution of the Hitting Set, thereby allowing a user to identify the Hitting Set. - View Dependent Claims (12, 13)
-
-
14. A computer program product for calculating a minimal Hitting Set as set forth in claim 14, wherein when calculating an upper bound, the computer program product is further configured to cause a computer to perform operations of calculating a value for the upper bound of λ
- =(M, Tin, Tout) and a calculating an upper bound set, by performing the following operations;
initializing the value of the upper bound as U=size of Tin and initializing the upper bound set as the set Tin, where the size of Tin is the number of elements in Tin;
choosing a column a1 of M with a maximum weight, where the column with the maximum weight is the column of M with the largest number of 1'"'"'s;
increasing the value of U by 1 and adding the column a1 to the upper bound set;
constructing the matrix M1 from M by deleting the column a1 and all rows of M that correspond with non-zero components of the column a1, where if the matrix M1 is empty then the current value of U is the upper bound and a solution for the Hitting Set is the upper bound set;
otherwiserepeating the operations of choosing through repeating on the matrix M1.
- =(M, Tin, Tout) and a calculating an upper bound set, by performing the following operations;
-
15. A computer program product for calculating a minimal Hitting Set as set forth in claim 15, wherein when calculating a lower bound, a value for the lower bound of λ
- =(M, Tin, Tout) is equal to the size of Tin plus k/L, where k is the number of rows of the matrix M and L is the maximum weight of the columns of M.
-
16. A computer program product for calculating a minimal Hitting Set as set forth in claim 16, wherein when determining whether each label has any child nodes or is a leaf node without any child nodes, the computer program product is configured to cause a computer to determine a label to be a leaf node if any of the following are true:
-
if Tin∪
Tout={1, 2, . . . , n}, where ∪
denotes the union of two sets;
if the value for the lower bound of λ
≧
the current value for the upper bound;
if the columns of Tin form a solution such that if the columns in Tin are added together to form a resulting vector, then the resulting vector has no zero component;
orif M contains an all-zero row.
-
-
17. A computer program product for calculating a minimal Hitting Set as set forth in claim 17, wherein when splitting the label to create two new labels, the computer program product is further configured to cause a computer to perform an operation of splitting label λ
- =(M, Tin, Tout) into label λ
0 and label λ
1;
where label λ
0 is defined as;
λ
0=(Remove—
0[M,j],Tin,Tout∪
{{umlaut over (j)}}),where j denotes a column of M with a maximum weight and {umlaut over (j)} is the corresponding column in the original matrix, and where Remove—
0[M,j] denotes a sub-matrix of M obtained by deleting the jth column of M; and
where label λ
1 is defined as;
λ
1=(Remove—
1[M,j],Tin∪
{{umlaut over (j)}},Tout),where j denotes a column of M with a maximum weight and {umlaut over (j)} is the corresponding column in the original matrix, and Remove—
1[M,j] denotes a sub-matrix of M obtained by deleting the jth column of M and deleting all rows of M that correspond with non-zero components of that column.
- =(M, Tin, Tout) into label λ
-
19. A computer program product for calculating a minimal Hitting Set as set forth in claim 19, further comprising instruction means for causing a computer to perform an operation of applying a Branch-and-Bound technique to the incidence matrix A to find an optimal solution for the problem, comprising operations of:
-
initializing a label λ
0 as λ
0=Rules[{A, { }, { }}], where Rules* denotes applying and repeating the operations of claim 19 until all of the operations of claim 19 are exhausted;
initializing a set of labels as {λ
0};
initializing a value of the upper bound U as the upper bound of λ
0;
initializing a solution set as the upper bound set of λ
0;
choosing a label λ
from the set of labels;
deleting λ
from the set of labels;
computing U1 as the upper bound of λ and
its corresponding upper bound set;
if U1<
U, then changing the value of U to U1 and the value of the solution set to the upper bound set;
if the label λ
is not a leaf, then splitting λ
to labels λ
0 and λ
1 and adding the new labels λ
and λ
1 to the set of labels;
if the set of labels is not empty, repeating the operations of choosing a label λ
through the operation of repeating the operations;
if the set of labels is empty, then the outputting is the solution set and stopping. - View Dependent Claims (18)
-
-
20. A computer program system for calculating a minimal diagnosis set from a collection of conflict sets, the computer system being configured to perform operations of:
-
creating an incidence matrix of the collection of sets;
creating nodes from the incidence matrix such that each node is a node in a search tree and has a label that includes a sub-matrix of the incidence matrix, and two disjoint subsets of the columns of the incidence matrix;
calculating an upper bound and calculating a lower bound for each label, where the upper bound and lower bound define a range of solutions for the minimal Hitting Set; and
determining whether each label has any child nodes or is a leaf node without any child nodes;
if the label does not have any child nodes, then stop and designate the label as a leaf node;
if the label does have a child node, splitting the label to create two new labels;
repeating acts of calculating and determining until all labels have been designated as leaf nodes, with information gathered from leaf nodes determining a solution of the Hitting Set, thereby allowing a user to identify the Hitting Set.
-
Specification