Abstract
The ability to verify critical software is a key issue in embedded and cyber physical systems typical of automotive, aeronautics or aerospace industries. Bounded model checking and constraint programming approaches search for counter-examples that exemplify a property violation. The search of such counter-examples is a long, tedious and costly task especially for programs performing floating point computations. Indeed, available search strategies are dedicated to finite domains and, to a lesser extent, to continuous domains. In this paper, we introduce new strategies dedicated to floating point constraints. They take advantage of the properties of floating point domains (e.g., domain density) and of floating point constraints (e.g., floating point arithmetic) to improve the search for floating point constraint problems. First experiments on a set of realistic benchmarks show that such dedicated strategies outperform standard search and splitting strategies.
Keywords
- Floating-point Constraints
- Splitting Strategies
- Variable Selection Heuristics
- Classical Bisection
- Simple Bisection
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This work was partially supported by ANR COVERIF (ANR-15-CE25-0002).
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
One must take care to annotate all literals with ‘f’ to force floating point constants and to decompose the expression into elementary arithmetic operations to prevent the compiler from evaluating at compile time.
References
Alefeld, G.E., Potra, F.A., Shen, Z.: On the existence theorems of Kantorovich, Moore and Miranda. In: Alefeld, G., Chen, X. (eds.) Topics in Numerical Analysis: With Special Emphasis on Nonlinear Problems, vol. 15, pp. 21–28. Springer, Vienna (2001). doi:10.1007/978-3-7091-6217-0_3
Belaid, M.S., Michel, C., Rueher, M.: Boosting local consistency algorithms over floating-point numbers. In: Milano, M. (ed.) CP 2012. LNCS, pp. 127–140. Springer, Heidelberg (2012). doi:10.1007/978-3-642-33558-7_12
Benz, F., Hildebrandt, A., Hack, S.: A dynamic program analysis to find floating-point accuracy problems. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2012, Beijing, China, 11–16 June 2012, pp. 453–462 (2012)
Boussemart, F., Hemery, F., Lecoutre, C., Sais, L.: Boosting systematic search by weighting constraints. In: ECAI 2004, pp. 146–150 (2004)
Collavizza, H., Michel, C., Rueher, M.: Searching critical values for floating-point programs. In: Wotawa, F., Nica, M., Kushik, N. (eds.) ICTSS 2016. LNCS, vol. 9976, pp. 209–217. Springer, Cham (2016). doi:10.1007/978-3-319-47443-4_13
Collavizza, H., Rueher, M., Van Hentenryck, P.: CPBPV: A constraint-programming framework for bounded program verification. Constraints 15(2), 238–264 (2010)
Collavizza, H., Le Vinh, N., Rueher, M., Devulder, S., Gueguen, T.: A dynamic constraint-based BMC strategy for generating counterexamples. In: 26th ACM Symposium On Applied Computing (2011)
Gay, S., Hartert, R., Lecoutre, C., Schaus, P.: Conflict ordering search for scheduling problems. In: Pesant, G. (ed.) CP 2015. LNCS, vol. 9255, pp. 140–148. Springer, Cham (2015). doi:10.1007/978-3-319-23219-5_10
Goldberg, D.: What every computer scientist should know about floating-point arithmetic. ACM Comput. Surv. 23(1), 5–48 (1991)
IEEE: IEEE standard for binary floating-point arithmetic. ANSI/IEEE Standard, 754 (2008)
Jussien, N., Lhomme, O.: Dynamic domain splitting for numeric CSPs. In: ECAI, pp. 224–228 (1998)
Kearfott, R.B.: Some tests of generalized bisection. ACM Trans. Math. Softw. 13(3), 197–220 (1987)
Lhomme, O.: Consistency techniques for numeric CSPs. In: Proceedings of 13th International Joint Conference on Artifical Intelligence, IJCAI 1993, vol. 1, pp. 232–238. Morgan Kaufmann Publishers Inc., San Francisco (1993)
Linderoth, J.T., Savelsbergh, M.W.P.: A computational study of search strategies for mixed integer programming. INFORMS J. Comput. 11(2), 173–187 (1999)
Michel, L., Van Hentenryck, P.: Activity-based search for black-box constraint programming solvers. In: Beldiceanu, N., Jussien, N., Pinson, É. (eds.) CPAIOR 2012. LNCS, vol. 7298, pp. 228–243. Springer, Heidelberg (2012). doi:10.1007/978-3-642-29828-8_15
Ponsini, O., Michel, C., Rueher, M.: Verifying floating-point programs with constraint programming and abstract interpretation techniques. Autom. Softw. Eng. 23(2), 191–217 (2016)
Refalo, P.: Impact-based search strategies for constraint programming. In: Wallace, M. (ed.) CP 2004. LNCS, vol. 3258, pp. 557–571. Springer, Heidelberg (2004). doi:10.1007/978-3-540-30201-8_41
Sterbenz, P.H.: Floating-Point Computation. Prentice-Hall Series in Automatic Computation. Prentice-Hall, Upper Saddle River (1973)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing AG
About this paper
Cite this paper
Zitoun, H., Michel, C., Rueher, M., Michel, L. (2017). Search Strategies for Floating Point Constraint Systems. In: Beck, J. (eds) Principles and Practice of Constraint Programming. CP 2017. Lecture Notes in Computer Science(), vol 10416. Springer, Cham. https://doi.org/10.1007/978-3-319-66158-2_45
Download citation
DOI: https://doi.org/10.1007/978-3-319-66158-2_45
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-66157-5
Online ISBN: 978-3-319-66158-2
eBook Packages: Computer ScienceComputer Science (R0)