×

Exact algorithms for the product configuration problem. (English) Zbl 07745353

Summary: A software product line (SPL) is a software engineering reusability approach used to create different applications from a shared set of common software features. The product configuration problem (PCP) consists in finding the product, among all the products allowed by the SPL, that best fits the customer’s preferences and requirements. PCP is a generalization of the tree knapsack problem (TKP) with additional AND, XOR, and OR constraints. Therefore, this problem is also NP-hard. Previous work in the literature could solve only instances with up to 500 features. In this paper, we propose a pseudo-polynomial time dynamic programming algorithm that solves PCP in \(O(nH)\), where \(n\) is the number of features and \(H\) is the customer’s budget. We also propose an integer linear programming formulation for PCP, which is solved by the CPLEX’s branch-and-bound algorithm. Computational experiments, performed on realistic instances from the literature, showed that the proposed algorithms were able to find optimal solutions for all the instances with up to 10,000 features.
{© 2022 The Authors. International Transactions in Operational Research © 2022 International Federation of Operational Research Societies.}

MSC:

90-XX Operations research, mathematical programming

Software:

CPLEX; FeatureIDE
Full Text: DOI

References:

[1] Asadi, M., Soltani, S., Gasevic, D., Hatala, M., Bagheri, E., 2014. Toward automated feature model configuration with optimizing non‐functional requirements. Information and Software Technology56, 9, 1144-1165.
[2] Batory, D., 2005. Feature models, grammars & propositional formulas. 9th International Software Product Lines Conference (SPLC), Vol. 1, pp. 7-20.
[3] Benavides, D., Trinidad, P., Ruiz‐Cortés, A., 2005. Automated reasoning on feature models. 17th Conference on Advanced Information Systems Engineering (CAiSE), Vol. 1, pp. 491-503.
[4] Cho, G., Shaw, D.X., 1997. A depth‐first dynamic programming algorithm for the tree knapsack problem. INFORMS Journal on Computing9, 4, 431-438. · Zbl 0901.90171
[5] Clements, P., Northrop, L., 2001. Software Product Lines: Practices and Patterns. Addison‐Wesley, Boston, MA.
[6] Cormen, T., Leiserson, C.E., Rivest, E.L., Stein, C., 2009. Introduction to Algorithms. Massachusetts Institute of Technology, Cambridge, MA. · Zbl 1187.68679
[7] Czarnecki, K., Wasowsky, A., 2007. Feature diagrams and logics: there and back again. 11th International Software Product Lines Conference (SPLC), Vol. 1, pp. 23-24.
[8] Guo, J., White, J., Wang, G., Li, J., Wang, Y., 2011. A genetic algorithm for optimized feature selection with resource constraints in software product lines. Journal System and Software84, 12, 2208-2221.
[9] Johnson, D.S., Niemi, K., 1983. On knapsacks, partitions, and a new dynamic programming technique for trees. Mathematics of Operations Research8, 1, 1-14. · Zbl 0506.90035
[10] Mendonca, M., Wąsowski, A., Czarnecki, K., 2009. Sat‐based analysis of feature models is easy. Proceedings of the 13th International Software Product Line Conference, Carnegie Mellon University, pp. 231-240.
[11] Morabito, R., Arenales, M., 1994. An and/or‐graph approach to the container loading problem. International Transactions in Operational Research1, 1, 59-73. · Zbl 0854.90121
[12] Noronha, T.F., Ribeiro, C.C., Santos, A.C., 2010. Solving diameter‐constrained minimum spanning tree problems by constraint programming. International Transactions in Operational Research17, 5, 653-665. · Zbl 1220.90152
[13] Olaechea, R., Stewart, S., Czarnecki, K., Rayside, D., 2012. Modelling and multi‐objective optimization of quality attributes in variability‐rich software. Proceedings of the Fourth International Workshop on Nonfunctional System Properties in Domain Specific Modeling Languages, New York, pp. 1-6.
[14] Pereira, J.A., Constantino, K., Figueiredo, E., 2015. A systematic literature review of software product line management tools. In International Conference on Software Reuse, Springer, Berlin, pp. 73-89.
[15] Pereira, J.A., Maciel, L., Noronha, T.F., Figueiredo, E., 2017. Heuristic and exact algorithms for product configuration in software product lines. International Transactions in Operational Research24, 6, 1285-1306. · Zbl 1386.90122
[16] Pohl, K., Bockle, G., derLinden, F.J.V., 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Secaucus, NJ. · Zbl 1075.68575
[17] Rayside, D., Estler, H.C., Jackson, D., 2009. A guided improvement algorithm for exact, general purpose, many‐objective combinatorial optimization. Technical Report, MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA.
[18] Ribeiro, C.C., Riveaux, J.A., 2019. An exact algorithm for the maximum quasi‐clique problem. International Transactions in Operational Research26, 6, 2199-2229. · Zbl 07766392
[19] Romero, G., Durán, G., Marenco, J., Weintraub, A., 2013. An approach for efficient ship routing. International Transactions in Operational Research20, 6, 767-794. · Zbl 1277.90018
[20] Shaw, D.X., Cho, G., 1994. A Branch‐and‐Bound Procedure for the Tree Knapsack Problem. Purdue University, West Lafayette, IN.
[21] Thüm, T., Kästner, C., Benduhn, F., Meinicke, J., Saake, G., Leich, T., 2014. Feature IDE: an extensible framework for feature‐oriented software development. Science of Computer Programming79, 70-85.
[22] Wang, L., Peng, L., Wang, S., Liu, S., 2020. Advanced backtracking search optimization algorithm for a new joint replenishment problem under trade credit with grouping constraint. Applied Soft Computing86, 105953.
[23] White, J., Dougherty, B., Schmidt, D.C., 2009. Selecting highly optimal architectural feature sets with filtered cartesian flattening. Journal of Systems and Software82, 8, 1268-1284.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.