Next Article in Journal
Applying Fuzzy AHP and TOPSIS Method to Identify Key Organizational Capabilities
Previous Article in Journal
Selecting the Low-Carbon Tourism Destination: Based on Pythagorean Fuzzy Taxonomy Method
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Efficient Breadth-First Reduct Search

by
Veera Boonjing
1 and
Pisit Chanvarasuth
2,*
1
Department of Computer Engineering, Faculty of Engineering, King Mongkut’s Institute of Technology Ladkrabang, Ladkrabang, Bangkok 10520, Thailand
2
School of Management Technology, Sirindhorn International Institute of Technology, Thammasat University, Pathum Thani, Bangkok 10200, Thailand
*
Author to whom correspondence should be addressed.
Mathematics 2020, 8(5), 833; https://doi.org/10.3390/math8050833
Submission received: 14 April 2020 / Revised: 12 May 2020 / Accepted: 18 May 2020 / Published: 21 May 2020
(This article belongs to the Section Mathematics and Computer Science)

Abstract

:
This paper formulates the problem of determining all reducts of an information system as a graph search problem. The search space is represented in the form of a rooted graph. The proposed algorithm uses a breadth-first search strategy to search for all reducts starting from the graph root. It expands nodes in breadth-first order and uses a pruning rule to decrease the search space. It is mathematically shown that the proposed algorithm is both time and space efficient.

1. Introduction

In machine learning, feature selection is a process that selects relevant features used as the input in learning models. Its intention is to obtain optimal features so that the model can be used to accurately predict the output. Such optimal features are known as reducts in rough set theory. A reduct of an information system with conditional attributes and a decision attribute is defined as a minimal subset of a set of conditional attributes, in which its degree of dependency on the decision attribute is the same as the set of conditional attributes; (see [1] for a formal definition). A reduct could be any nonempty subset of the conditional attributes with the degree of dependency. Hence, the number of possible reducts is exponential with respect to the number of conditional attributes. With the aim of computational efficiency, a number of algorithms are proposed as a solution to finding a single reduct or multiple reducts without exhaustively investigating all of these possibilities. Therefore, many heuristic algorithms [2,3,4,5,6] and metaheuristic algorithms [7,8,9,10,11,12,13,14] have been proposed, as discussed in [15]. This class of algorithms is known as approximate algorithms. They give a single reduct or multiple reducts but not an exhausted list of reducts as the exact algorithms do. As the results of approximate algorithms requiring a parameter setting, they may produce different reducts in different runs. Moreover, they could create reducts that are not optimal. The exact algorithms are necessary if we are interested in computing the best reduct, with a given criterion, out of all reducts. However, finding all reducts involves generating and examining all possible reducts. In the literature, this can be done based on a discernibility matrix [16] and a power set tree [17,18]. Therefore, these exact algorithms have a time complexity exponential with respect to the number of conditional attributes.
In this work, we propose an exact algorithm to find all reducts without generating and examining all possible reducts. A simple representation of the possible reducts called a solution rooted graph is proposed. The rooted graph is formed by possible subsets of conditional attributes and their connections. Its root node is an n-subset attribute. The node is connected to its (n − 1)-subset nodes. Each (n − 1)-subset node is connected to its (n − 2)-subset nodes. This continues until reaching a 0-subset node. Hence, each node of the rooted graph except for a 0-subset node is a possible reduct. Furthermore, there are n node types based on their cardinalities in the search space: n-subset, (n − 1)-subset, (n − 2)-subset, …, and 1-subset. The proposed algorithm searches on the solution rooted graph with the breadth-first search. This work adopts the breadth-first search because it is complete, i.e., it assures finding all reducts. This algorithm still involves generating and examining all possible reducts from n-subset type to 1-subset type, type by type. We know that any node with a degree of dependency less than the graph root is not a reduct and its subsets are not reducts according to “the monotonic property of dependency”. Then, all of these subsets can be eliminated from consideration without losing any optimal reducts. The proposed algorithm is equipped with this rule of elimination as the pruning rule, which is the basis of its efficiency.
This paper is organized as follows. Section 2 briefly gives a sufficient background on reducts in terms of the degree of dependency. Section 3 describes the new efficient breadth-first reduct search algorithm. Analysis of the algorithm is given in Section 4. We conclude the paper in Section 5. An illustrative example is shown in Appendix A.

2. Basic Concepts

This section gives the background on reducts in terms of the degree of dependency. More details on reducts and rough sets can be found in [1].
Definition 1.
Any 4-tuple IS = <U, A = C ∪ D, V, f>; C ∩ D = Φ is called an information system; where U is a finite set of objects; A is a finite set of attributes; C is a finite set of conditional attributes; D is a finite set of decision attributes; V = ∪p ∈ AVp, where Vp is a domain of the attribute p, and f: U × A → V is a function called an information function f(xi, q) for every q ∈ A and xi ∈ U. An information system is denoted by IS = (U, A).
Example 1.
Let us consider the simple information system shown in Table 1. We adopt this table to illustrate the basic concepts in the following examples.
From Table 1, let P be C1. We have
U = {x1, x2, x3, x4, x5, x6, x7, x8, x9, x10},
A = {C1, C2, C3, C4, C5, D},
VP = {1, 2, 3},
f(x4, C1) = {2},
and f(x10, D) = {1}.
Definition 2.
Let R be any nonempty subset of A. An R-indiscernibility relation, denoted by IND(R), is defined as IND(R) = {(xi, xj): (xi, xj) ∈ U × U, a ∈ R, f (xi, a) = f (xj, a)}.
Note that if (xi, xj) ∈ IND(R), then objects xi and xj are called indiscernible with respect to R. The relation IND(R) is an equivalence relation. Therefore, it forms a partition U/IND(R); the equivalence classes of the R-indiscernibility relation.
Example 2.
Let R be {C1, C2, C3, C4, C5}. We have
IND(R) = {(x2, x3)},
IND({C1}) = {(x1, x8), (x1, x10), (x8, x10), (x4, x5), (x4, x7), (x5, x7), (x2, x3), (x2, x6), (x2, x9), (x3, x6), (x3, x9), (x6, x9)},
U/IND(R) = {{x2, x3}, {x1}, {x4}, {x5}, {x6}, {x7}, {x8}, {x9}, {x10}},
and U/IND({C1}) = {{x1, x8, x10}, {x4, x5, x7}, {x2, x3, x6, x9}}.
Definition 3.
Let R be any nonempty subset of A and X be any nonempty subset of U. The R-lower approximation of X, denoted by RX, is defined as ∪ {Y ∈ U/IND(R): Y ⊆ X}. The R-lower approximation of X contains all objects with the known values of R that belong to X. The P-lower approximation of X contains all objects that with the knowledge of attributes P can be classified as belonging to concept X.
Example 3.
Let R be {C1, C2, C3, C4, C5}. We have
U/IND (D) = {{x1, x2, x5}, {x3, x4, x8, x10}, {x6, x7, x9}},
X1 = {x1, x2, x5}, X2 = {x3, x4, x8, x10}, X3 = {x6, x7, x9},
U/IND(R) = {{x2, x3}, {x1}, {x4}, {x5}, {x6}, {x7}, {x8}, {x9}, {x10}},
RX1= {x1} ∪ {x5} = {x1, x5},
RX2 = {x4} ∪ {x8} ∪ {x10} = {x4, x8, x10},
and RX3 = {x6} ∪ {x7} ∪ {x9} = {x6, x7, x9}.
Definition 4.
Let R be any nonempty subset of A and X be any nonempty subset of U. Then, the positive region of the partition U/IND (D) with respect to R, denoted by POSR (D), is defined as X U / I N D   ( D ) RX.
Example 4.
From Example 3, we have
POSR(D) = RX1RX2RX3 = {x1, x4, x5, x6, x7, x8, x9, x10}.
Theorem 1
([19]).Let IS = (U, A = C∪ D). If B ⊆ C, then we have: POSB (D) ⊆ POSC (D).
Proof. 
For each x ∈ POSB(D), there is y ∈ U/IND(D) such that [x]IND(B) ⊆ y where [x]IND(B) is the equivalence class of x with regard to equivalence relation IND(B). Since B ⊆ C, we have [x] IND(C) ⊆ [x] IND (B). Thus, [x] IND(C) ⊆ y, then x ∈ POSC (D). Therefore, POSB (D) ⊆ POSC (D). □
Definition 5.
Let R be any nonempty subset of C. D depends on R in a degree k (0 ≤ k ≤ 1) where
k = γR (D) = |POSR (D)|/|U|.
Example 5.
From Example 4, we have k = γR (D) = |POSR(D)|/|U| = |{x1, x4, x5, x6, x7, x8, x9, x10}|/|U| = 8/10 = 0.8. Then, D depends on R with degree 0.8.
Example 6.
Let R be {C1, C2}. We have
U/IND(D) = {{x1, x2, x5}, {x3, x4, x8, x10}, { x6, x7, x9}},
X1 = {x1, x2, x5}, X2 = {x3, x4, x8, x10}, X3 = {x6, x7, x9},
U/IND(R) = {{x2, x3, x9}, {x1}, {x4}, {x5, x7}, {x6}, {x8, x10}},
RX1 = {x1} = {x1},
RX2 = {x4} ∪ {x8, x10} = {x4, x8, x10},
RX3= {x6} = {x6},
POSR(D) = RX1RX2RX3 = {x1, x4, x6, x8, x10},
and k = γR(D) = |{x1, x4, x6, x8, x10}|/|U| = 5/10 = 0.5.
Definition 6.
Let C’ be any nonempty subset of C. C’ is a D-reduct (reduct with respect to D) of C, if C’ is a minimal subset of C such that γC(D) = γC’(D).
Example 7.
Let R be {C1, C2, C3}. We have
U/IND(D) = {{x1, x2, x5}, {x3, x4, x8, x10}, {x6, x7, x9}},
X1 = {x1, x2, x5}, X2 = {x3, x4, x8, x10}, X3 = {x6, x7, x9},
U/IND(R) = {{x2, x3}, {x1}, {x4}, {x5}, {x6}, {x7}, {x8}, {x9}, {x10}},
RX1 = {x1} ∪ {x5} = {x1, x5},
RX2 = {x4} ∪ {x8} ∪ {x10} = {x4, x8, x10},
and RX3 = {x6} ∪ {x7} ∪ {x9}= {x6, x7, x9},
POSR(D) = RX1RX2RX3 = {x1, x4, x5, x6, x7, x8, x9, x10},
and k = γR(D) = |{x1, x4, x5, x6, x7, x8, x9, x10}|/|U| = 8/10 = 0.8.
Since each nonempty subset R’ ∈ {{C1},{ C2},{ C3},{ C1, C2},{ C1, C3},{ C2, C3}} of R gives γR’(D) < γR(D), then R = {C1, C2, C3} is a D-reduct of C.
Therefore, we find a reduct by obtaining a minimal subset of conditional attribute (C) so that the decision attributes (D) depend on it in the same degree as depending on C. A brute force approach to the problem is to check all subsets of C, with a minimal condition, satisfying the dependency of D on C (γC(D)). Each minimal subset obtained (reduct) requires checking all of its 2n − 2 subsets—excluding itself and an empty set; where n is its cardinality.

3. Efficient Breadth-First Reduct Search Algorithm

Let C = {C1, C2, C3, …, Cn} be a conditional attribute of an information system IS(C, D). There are n + 1 types of subsets of C: n-subset, (n − 1)-subset, (n − 2)-subset, …, 1-subset, and 0-subset. Reducts could be any types of these subsets except for the 0-subset. The breadth-first reduct search algorithm orderly investigates the following 2n − 1 subsets, type by type: n-subset, (n − 1)-subset, (n − 2)-subset, …, and 1-subset. Thereafter, these subsets are referred to as reduct candidates. For each subset C’ in reduct candidates, if γC’(D) = γC(D), then C’ is a new element of the reduct set, and all of its supersets in the reduct set, if they exist, are eliminated. If γC’(D) < γC(D), all subsets of C’ are not reduct candidates. Each nonreduct C’ reduces 2|c’| − 2 elements of the reduct candidates, according to Theorem 1. A reduct set is obtained once all reduct candidates are investigated.
The algorithm implements the idea above by using three data structures: Candidate Queue (the first-come first-served structure), Reduct_Set, and NonReduct_Set to maintain the reduct candidates, reducts, and nonreducts, respectively. Initially, it calculates k = γC(D), adds C to Candidate Queue, and sets both Reduct_Set and NonReduct_Set to an empty set. It loops to update the data of Candidate Queue, Reduct_Set, and NonReduct_Set if Candidate Queue is not empty. For each loop, it gets an element C’ from Candidate Queue and calculates γC’(D). If γC’(D) = k, then it adds C’ to Reduct_Set using the updateReduct_Set(C’) procedure. It also generates all (|C’| − 1)-subsets and insert them into Candidate Queue using the updateCandidate Queue(C’) procedure. If γC’(D) < k, it inserts C’ and all its subsets into NonReduct_Set using the updateNonReduct_Set(C’) procedure. The algorithm (in detail) is as shown in Figure 1.
There are three major procedures in our algorithm: updateReduct_Set(C’), updateCandidate Queue(C’), and updateNonReduct_Set(C’).
updateReduct_Set(C’)
Each element in Reduct_Set is not a reduct if we can find any of its subsets that are also reducts. Therefore, we have to test whether each reduct in Reduct_Set is a superset of a new reduct. If it is a superset, we eliminate it from Reduct_Set before putting the new reduct into it, to gain the reduct minimal condition. For example, let Reduct_Set be {{C1, C2, C3, C4, C5}}, let C’ be {C1, C2, C3}, and γC’(D) = γC(D); therefore, a new reduct is C’. However, there is a reduct {C1, C2, C3, C4, C5} in Reduct_Set that is a superset of C’. We, therefore, remove {C1, C2, C3, C4, C5} from the Reduct_Set and insert C’ into it. This gives the new Reduct_Set = {{C1, C2, C3}}. The procedure (in detail) is as shown in Figure 2.
updateCandidate_Queue(C’)
The procedure generates all (|C’| − 1)-subsets from C’ and tests whether each is a reduct candidate. A reduct candidate is not a subset of any NonReduct_Set element. Such a candidate is appended into Candidate Queue. For example, let C’ be {C1, C2, C3, C4}, then a set of 3-subsets of C’ is {{C1, C2, C3}, {C1, C2, C4}, {C2, C3, C4}, {C1, C3, C4}}. If NonReduct_Set contains an element {C2, C3, C4, C5}, then {C2, C3, C4} is not a reduct candidate since it is a subset of {C2, C3, C4, C5}. Therefore, {C1, C2, C3}, {C1, C2, C4}, and {C1, C3, C4} are appended into Candidate Queue. The details of the procedure are shown in Figure 3.
updateNonReduct_Set(C’)
The property of the positive region as shown in Theorem 1 allows us to reduce the search space, i.e., the number of reduct candidates. We know that if C’ ⊆ C, then we have POSC’(D) ⊆ POSC(D). This infers that γC’(D) ≤ γC(D). In addition, if γC(D) = k (the degree of dependency of D on C in the original data), then C’ and its subsets are not reducts. All of the subsets can be eliminated from the candidates. For example, let C be a conditional attribute {C1, C2, C3, C4, C5} with γC(D) = 0.8 and let C’ be {C1, C2, C4} with γC’(D) = 0.6. Then, C’ and its subsets cannot be reducts according to Theorem 1. We, therefore, do not need to explore these subsets. We then remove all subsets of C’ from Candidate Queue. The proposed algorithm stores these candidates in NonReduct_Set using the procedure updateNonReduct_Set(C’). The procedure (in detail) is as shown in Figure 4.

4. Analysis of Algorithm

Let C = {C1, C2, C3, …, Cn} be a conditional attribute of an IS(C, D). Additionally, let Lk be a set of k-subsets. We know that |Lk| = ( n k ) and k = 0 n ( n k ) = 2n. The algorithm searches for reducts from each Lk level by level starting with k = n, k = n − 1, and so on, until k = 1. Therefore, the size of its search space is k = 1 n ( n k ) = 2n − 1. For the best case, C is the only element of Reduct_Set and each element of Ln-1 does not satisfy a reduct property. It tests C and all elements of Ln−1. The number of tests is 1 + ( n n 1 ) = 1 + n. For the best-case scenario, the time complexity is O(n).
For the worst-case scenario, the algorithm gives a 1-subset reduct as an element of Reduct_Set. If all generated subsets satisfy a reduct property, the number of test is k = 1 n ( n k ) = ( n 1 ) + ( n 2 ) + … + ( n n 2 ) + ( n n 1 ) + ( n n ) . Therefore, the worst-case time complexity is O( ( n 1 ) + ( n 2 ) + … + ( n n 2 ) + ( n n 1 ) + ( n n ) ) = O( ( n m ) ), where m = ⌊med⌋ and med is the median of n, n − 1, n − 2, …, 1, 0. Since ( n m ) = n (n − 1)(n − 2)…(n − m − 1)/m!, then the worst-case time complexity is O(nm). However, the algorithm applies a property of the positive region to reduce the search space once it finds a nonreduct subset. Each such l-subset could eliminate 2l−1 candidate elements in Lk where k = l − 1, l − 2, …, 1. These nonreduct subsets are stored in NonReduct_Set. Any subset that is a subset of an element of NonReduct_Set is not included as an element of Candidate Queue.
In general, the space complexity of the breadth-first search algorithm is that all candidates remain in Candidate Queue. Therefore, it depends on the size of the largest Candidate Queue. For the best case, the space complexity is O(n). We observe that |Lm| is the largest among all subset levels; where m = ⌊med⌋ and med is the median of n, n − 1, n − 2, …, 1, 0. Since the algorithm generates and tests level by level, its worst-case space complexity is determined by O( ( n m ) ) = O(nm).

5. Conclusions

This paper presents a simple and efficient solution to the problem of finding all reducts in an information system. The problem is formulated as a search problem where the search space is a rooted graph. The rooted graph is a connected graph of possible reducts and their connections. Its root is a set of all conditional attributes. Each of its k-subset nodes is connected by (k − 1)-subset nodes where k is a non-negative integer not larger than the cardinality of the graph root. The proposed algorithm searches this graph using a breadth-first search strategy, starting from the graph root. It expands nodes in breadth-first order. With the monotonic property of the positive region (Theorem 1) as the pruning rule, it can prune all nonreduct nodes in the search space early. An illustrative example is given to demonstrate the algorithm. The algorithm’s efficiency is confirmed by the results of the algorithm analysis. Let n be the cardinality of conditional attributes, and m be the floor of the median of n, n − 1, n − 2, …, 1, 0; it is shown that both the time and space complexity of the algorithm are O (n) and O (nm) for the best case and the worst case, respectively.

Author Contributions

Conceptualization, V.B. and P.C.;methodology, V.B.; software, V.B.; validation, V.B. and P.C.; formal analysis, V.B.; investigation, V.B.;resources, P.C.; data curation, V.B.; writing—original draft preparation, V.B.; writing—review and editing, P.C.;visualization, V.B.; supervision, V.B.; project administration, P.C. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Illustrative Example

Let us consider an input to the algorithm as an information system IS (C.D) from Table 1 where {C1, C2, C3, C4, C5}.
Input: An information system IS(C.D)
Step 1:
    Calculate k = γC(D). We get k = 0.8.
Step 2:
Candidate_Queue = <C>
Reduct_Set= {}
NonReduct_Set = {}
Step 3: 
    Iteration 1: Candidate_Queue is not empty.
	Loop
	   Get an element of Candidate_Queue and assign it to C’.
		Then we have Candidate_Queue = <> and C’ = C.
	   Calculate γC’(D) = 0.8.
	   We have γC’(D) = k. Then
	   Reduct_Set= {{C1, C2, C3, C4, C5}},
	   Candidate_Queue = <{C1, C2, C3, C4}, {C1, C2, C3, C5}, {C1, C2, C4, C5}, {C1, C3, C4, C5},
	   {C2, C3, C4, C5}>, and NonReduct_Set = {}.
	End Loop
    Iteration 2: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have
		  Candidate_Queue = <{C1, C2, C3, C5}, {C1, C2, C4, C5}, {C1, C3, C4, C5},
		    {C2, C3, C4, C5}>
		  and C’ = {C1, C2, C3, C4},.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C2, C3, C4}}, Candidate_Queue
	    = <{C1, C2, C3, C5}, {C1, C2, C4, C5}, {C1, C3, C4, C5}, {C2, C3, C4, C5}, {C1, C2, C3},
		  {C1, C2, C4}, {C2, C3, C4}, {C1, C3, C4}>,
	    and NonReduct_Set = {}.
	End Loop
    Iteration 3: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have
	    Candidate_Queue = <{C1, C2, C4, C5}, {C1, C3, C4, C5}, {C2, C3, C4, C5}, {C1, C2, C3},
		  {C1, C2, C4}, {C2, C3, C4}, {C1, C3, C4}> 
	    and C’ = {C1, C2, C3, C5}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set = {{C1, C2, C3, C4}, {C1, C2, C3, C5}},
	    Candidate_Queue = <{C1, C2, C4, C5}, {C1, C3, C4, C5}, {C2, C3, C4, C5}, {C1, C2, C3},
	    {C1, C2, C4}, {C2, C3, C4}, {C1, C3, C4}, {C1, C2, C5}, {C2, C3, C5}, {C1, C3, C5} >,
	   and NonReduct_Set = {}.
	End Loop
    Iteration 4: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have
	    Candidate_Queue = <{C1, C3, C4, C5}, {C2, C3, C4, C5}, {C1, C2, C3}, {C1, C2, C4},
		  {C2, C3, C4}, {C1, C3, C4}, {C1, C2, C5}, {C2, C3, C5}, {C1, C3, C5} >
	    and C’ = {C1, C2, C4, C5}.
	    Calculate γC’(D) = 0.6.
	    We have γC’(D) < k. Then Reduct_Set= {{C1, C2, C3, C4}, {C1, C2, C3, C5}},
	    Candidate_Queue = <{C1, C3, C4, C5}, {C2, C3, C4, C5}, {C1, C2, C3}, {C2, C3, C4},
		{C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5} >,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 5: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
		Then we have
	    Candidate_Queue = <{C2, C3, C4, C5}, {C1, C2, C3}, {C2, C3, C4}, {C1, C3, C4},
		  {C2, C3, C5}, {C1, C3, C5} >,
	    and C’ = {C1, C3, C4, C5}. Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C2, C3, C4}, {C1, C2, C3, C5},
	    {C1, C3, C4, C5}}, Candidate_Queue = < {C2, C3, C4, C5}, {C1, C2, C3}, {C2, C3, C4},
	    {C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5}, {C3, C4, C5}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 6: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have
	    Candidate_Queue = <{C1, C2, C3}, {C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5},
		  {C3, C4, C5}>
	    and C’ = {C2, C3, C4, C5}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then
	    Reduct_Set= {{C1, C2, C3, C4}, {C1, C2, C3, C5}, {C1, C3, C4, C5}, {C2, C3, C4, C5}},
	    Candidate_Queue = < {C1, C2, C3}, {C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5},
	    {C3, C4, C5}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 7: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = < {C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5},
		  {C1, C3, C5}, {C3, C4, C5}>
	    and C’ = {C1, C2, C3 }.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C3, C4, C5},{C2, C3, C4, C5},
		{C1, C2, C3 }},
	    Candidate_Queue = < {C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5}, { C3, C4, C5},
	    {C1, C3 }, { C2, C3 }>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 8: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = <{C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5},
		  {C3, C4, C5},{C1, C3}, {C2, C3 }>,
	    and C’ = {C2, C3, C4}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C3, C4, C5}, {C1, C2, C3}, {C2, C3, C4}},
	    Candidate_Queue = < {C1, C3, C4}, {C2, C3, C5}, {C1, C3, C5}, {C3, C4, C5}, {C1, C3},
		  {C2, C3}, {C3, C4 }>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 9: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = <{C2, C3, C5}, {C1, C3, C5}, {C3, C4, C5}, {C1, C3 },
		  {C2, C3}, {C3, C4}>,
	    and C’ = {C1, C3, C4}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C2, C3},{C2, C3, C4}, {C1, C3, C4}},
	    Candidate_Queue
	    = <{C2, C3, C5}, {C1, C3, C5},{C3, C4, C5}, {C1, C3}, {C2, C3},{C3, C4}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 10: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = <{C1, C3, C5}, {C3, C4, C5}, {C1, C3}, {C2, C3},
		  {C3, C4}>,
	    and C’ = {C2, C3, C5}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then Reduct_Set= {{C1, C2, C3}, {C2, C3, C4}, {C1, C3, C4},
	    {C2, C3, C5}},
	    Candidate_Queue = <{C1, C3, C5}, {C3, C4, C5}, {C1, C3 }, {C2, C3}, {C3, C4}, {C3, C5}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}}.
	End Loop
    Iteration 11: Candidate_Queue is not empty
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = <{C3, C4, C5}, {C1, C3}, {C2, C3},{C3, C4}, {C3, C5}>,
	    and C’ = {C1, C3, C5}.
	    Calculate γC’(D) = 0.4.
	    We have γC’(D) < k. Then
	    Reduct_Set= {{C1, C2, C3}, {C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5}},
	    Candidate_Queue = <{C3, C4, C5}, {C2, C3},{C3, C4}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}, {C1, C3, C5}}.
	End Loop
    Iteration 12: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = <{C2, C3},{C3, C4}>
	    and C’ = {C3, C4, C5}.
	    Calculate γC’(D) = 0.6.
	    We have γC’(D) < k. Then
	    Reduct_Set= {{C1, C2, C3},{C2, C3, C4}, {C1, C3, C4}, {C2, C3, C5}},
	    Candidate_Queue = < {C2, C3}>,
	    and NonReduct_Set = {{C1, C2, C4, C5}, {C1, C3, C5}, { C3, C4, C5}}.
	End Loop
    Iteration 13: Candidate_Queue is not empty.
	Loop
	    Get an element of Candidate_Queue and assign it to C’.
	    Then we have Candidate_Queue = < >
	    and C’ = {C2, C3}.
	    Calculate γC’(D) = 0.8.
	    We have γC’(D) = k. Then, Reduct_Set = {{C1, C3, C4}, {C2, C3}},
	    Candidate_Queue = < >,
	    and NonReduct_Set = {{C1, C2, C4, C5}, {C1, C3, C5}, { C3, C4, C5}}.
	End Loop
Step 4:
    Return Reduct_Set = {{C1, C3, C4}, {C2, C3}}.
		
The algorithm obtains a result in 13 iterations. That is to say, only 13 subsets, of 25 − 1 = 31 subsets, are explored to get all reducts. Therefore, it is a feasible solution to the problem of finding all reducts of an information system.

References

  1. Pawlak, Z. Rough Sets: Theoretical Aspects of Reasoning about Data; Kluwer: Dordrecht, The Netherlands, 1991. [Google Scholar]
  2. Hu, X.H.; Cercone, N. Learning in relational databases: A rough set approach. Int. J. Comput. Intell. 1995, 11, 323–338. [Google Scholar] [CrossRef]
  3. Miao, D.Q.; Hu, G.R. A heuristic algorithm for reduction of knowledge. J. Comput. Res. Dev. 1999, 36, 681–684. [Google Scholar]
  4. Qian, Y.H.; Liang, J.Y.; Pedrycz, W.; Dang, C.Y. Positive approximation: An accelarator for attribute reduction in rough set thoery. Artifical Intell. 2010, 174, 595–618. [Google Scholar] [CrossRef] [Green Version]
  5. Dai, J.H.; Hu, H.; Zheng, G.J.; Hu, Q.H.; Han, H.F.; Shi, H. Attribute reduction in interval-valued information systems based on information entropies. Front. Inf. Technol. Electron. Eng. 2016, 17, 919–928. [Google Scholar] [CrossRef]
  6. Benouini, R.; Batioua, I.; Ezghari, S.; Zenkouar, K.; Zahi, A. Fast feature selection algorithm for neighborhood rough set model based on Bucket and Trie structures. Granul. Comput. 2019, 1–9. [Google Scholar] [CrossRef]
  7. Chebrolu, S.; Sanjeevi, S.G. Attribute reduction on real-valued data in rough set theory using hybrid artificial bee colony: Extended FTSBPSD algorithm. Soft Comput. 2017, 21, 7543–7569. [Google Scholar] [CrossRef]
  8. Chebrolu, S.; Sanjeevi, S.G. Attribute reduction in decision-theoretic rough set models using genetic algorithm. In Proceedings of the International Conference on Swarm, Evolutionary, and Memetic Computing (LNCS 7076), Visakhapatnam, India, 19–21 December 2011; pp. 307–314. [Google Scholar]
  9. Chebrolu, S.; Sanjeevi, S.G. Attribute reduction on continuous data in rough set theory using ant colony optimization metaheuristic. In Proceedings of the Third International Symposiumon Women in Computing and Informatics, Kochi, India, 10–13 August 2015; pp. 17–24. [Google Scholar]
  10. Chebrolu, S.; Sanjeevi, S.G. Attribute reduction in decision-theoretic rough set model using particle swarm optimization with the threshold parameters determined using LMS training rule. Procedia Comput. Sci. 2015, 57, 527–536. [Google Scholar] [CrossRef] [Green Version]
  11. Chen, Y.M.; Miao, D.Q.; Wang, R.Z. A rough set approach to feature selection based on ant colony optimization. Pattern Recognit. Lett. 2010, 31, 226–233. [Google Scholar] [CrossRef]
  12. Min, F.; Zhang, Z.H.; Dong, J. Ant colony optimization with partial-complete searching for attribute reduction. J. Comput. Sci. 2018, 25, 170–182. [Google Scholar] [CrossRef]
  13. Jia, X.Y.; Liao, W.H.; Tang, Z.M.; Shang, L. Minimum cost attribute reduction in decision-theoretic rough set models. Inf. Sci. 2013, 219, 151–167. [Google Scholar] [CrossRef]
  14. Cheng, Y.; Zheng, Z.R.; Wang, J.; Yang, L.; Wan, S.H. Attribute reduction based on genetic algorithm for the coevolution of meteorological data in the industrial internet of things. Wirel. Commun. Mob. Comput. 2019, 2019, 3525347. [Google Scholar] [CrossRef]
  15. Zhang, N.; Gao, X.Y.; Yu, T.Y. Heuristic Approaches to Attribute Reduction for Generalized Decision Preservation. Appl. Sci. 2019, 9, 2841. [Google Scholar] [CrossRef] [Green Version]
  16. Starzyk, J.; Nelson, D.E.; Sturtz, K. Reduct generation in information systems. Bull. Int. Rough Set Soc. 1998, 3, 19–22. [Google Scholar]
  17. Chen, Y.; Miao, D.; Wang, R.; Wu, K. A rough set approach to feature selection based on power set tree. Knowl. Based Syst. 2011, 24, 275–281. [Google Scholar] [CrossRef]
  18. Rezvan, M.T.; Hamadani, A.Z.; Hejazi, S.R. An exact feature selection algorithm based on rough set theory. Complexity 2015, 20, 50–62. [Google Scholar] [CrossRef]
  19. Li, H.; Zhou, X.; Zhao, J.; Liu, D. Attribute Reduction in Decision-Theoretic Rough Set Model: A Further Investigation. In Proceedings of the Rough Sets and Knowledge Technology—6th International Conference, RSKT 2011, Banff, AB, Canada, 9–12 October 2011; pp. 466–475. [Google Scholar]
Figure 1. Efficient breadth-first reduct search algorithm.
Figure 1. Efficient breadth-first reduct search algorithm.
Mathematics 08 00833 g001
Figure 2. updateReduct_Set(C’) procedure.
Figure 2. updateReduct_Set(C’) procedure.
Mathematics 08 00833 g002
Figure 3. updateCandidate Queue(C’) procedure.
Figure 3. updateCandidate Queue(C’) procedure.
Mathematics 08 00833 g003
Figure 4. updateNonReduct_Set(C’) procedure.
Figure 4. updateNonReduct_Set(C’) procedure.
Mathematics 08 00833 g004
Table 1. Example dataset.
Table 1. Example dataset.
C1C2C3C4C5D
x1121312
x2332312
x3332311
x4211211
x5221112
x6323113
x7223113
x8112211
x9333113
x10111111

Share and Cite

MDPI and ACS Style

Boonjing, V.; Chanvarasuth, P. Efficient Breadth-First Reduct Search. Mathematics 2020, 8, 833. https://doi.org/10.3390/math8050833

AMA Style

Boonjing V, Chanvarasuth P. Efficient Breadth-First Reduct Search. Mathematics. 2020; 8(5):833. https://doi.org/10.3390/math8050833

Chicago/Turabian Style

Boonjing, Veera, and Pisit Chanvarasuth. 2020. "Efficient Breadth-First Reduct Search" Mathematics 8, no. 5: 833. https://doi.org/10.3390/math8050833

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop