Abstract

In this paper, we document the results of a detailed implementation study of two different algorithms for checking real (linear) and integer feasibility in a conjunction of Unit Two Variable per Inequality (UTVPI) constraints. Recall that a UTVPI constraint is a linear relationship of the form: \(a\cdot x_{i}+b\cdot x_{j} \le c_{ij}\), where \(a,b \in \{-1,0,1\}\). A conjunction of UTVPI constraints is called a UTVPI constraint system (UCS). UTVPI constraints subsume difference constraints. Unlike difference constraints, the linear and integer feasibilities for UCSs do not coincide. UCSs find applications in a number of different domains such as abstract interpretation, packing, and covering. There exist several algorithms for UCS linear feasibility and integer feasibility with various running times. We will focus on the linear feasibility algorithms in [19] (\(LF_1\)) and [13] (\(LF_2\)). We also focus on the integer feasibility algorithms in [18] (\(IF_1\)) and [13] (\(IF_2\)). We compare our implementations to the Yices SMT solver [17] running linear real arithmetic (QF_LRA) and linear integer arithmetic (QF_LIA). Our experiments indicate that \(LF_1\) is moderately superior to \(LF_2\) in terms of time, and that \(IF_1\) is vastly superior to \(IF_2\) in terms of time. Additionally on small inputs the Yices Solver performs better than the implemented algorithms, however the implemented algorithms perform much better on larger inputs.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call