Efficient Breadth-First Reduct Search
Abstract
:1. Introduction
2. Basic Concepts
3. Efficient Breadth-First Reduct Search Algorithm
4. Analysis of Algorithm
5. Conclusions
Author Contributions
Funding
Conflicts of Interest
Appendix A. Illustrative Example
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}}.
References
- Pawlak, Z. Rough Sets: Theoretical Aspects of Reasoning about Data; Kluwer: Dordrecht, The Netherlands, 1991. [Google Scholar]
- Hu, X.H.; Cercone, N. Learning in relational databases: A rough set approach. Int. J. Comput. Intell. 1995, 11, 323–338. [Google Scholar] [CrossRef]
- Miao, D.Q.; Hu, G.R. A heuristic algorithm for reduction of knowledge. J. Comput. Res. Dev. 1999, 36, 681–684. [Google Scholar]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- 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]
- Starzyk, J.; Nelson, D.E.; Sturtz, K. Reduct generation in information systems. Bull. Int. Rough Set Soc. 1998, 3, 19–22. [Google Scholar]
- 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]
- 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]
- 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]
C1 | C2 | C3 | C4 | C5 | D | |
---|---|---|---|---|---|---|
x1 | 1 | 2 | 1 | 3 | 1 | 2 |
x2 | 3 | 3 | 2 | 3 | 1 | 2 |
x3 | 3 | 3 | 2 | 3 | 1 | 1 |
x4 | 2 | 1 | 1 | 2 | 1 | 1 |
x5 | 2 | 2 | 1 | 1 | 1 | 2 |
x6 | 3 | 2 | 3 | 1 | 1 | 3 |
x7 | 2 | 2 | 3 | 1 | 1 | 3 |
x8 | 1 | 1 | 2 | 2 | 1 | 1 |
x9 | 3 | 3 | 3 | 1 | 1 | 3 |
x10 | 1 | 1 | 1 | 1 | 1 | 1 |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Boonjing, V.; Chanvarasuth, P. Efficient Breadth-First Reduct Search. Mathematics 2020, 8, 833. https://doi.org/10.3390/math8050833
Boonjing V, Chanvarasuth P. Efficient Breadth-First Reduct Search. Mathematics. 2020; 8(5):833. https://doi.org/10.3390/math8050833
Chicago/Turabian StyleBoonjing, Veera, and Pisit Chanvarasuth. 2020. "Efficient Breadth-First Reduct Search" Mathematics 8, no. 5: 833. https://doi.org/10.3390/math8050833
APA StyleBoonjing, V., & Chanvarasuth, P. (2020). Efficient Breadth-First Reduct Search. Mathematics, 8(5), 833. https://doi.org/10.3390/math8050833