Using Formal Methods for Product and Production Development -- Industrial Applications for Boolean Satisfiability Solvers
Highly customized products and frequent changes in the production systems pose high demands on engineers. The amount of data and the complexity of the relations within the data are high. Thus, it is both error-prone and time consuming to analyze the data without software support. Software tools based on formal methods can help engineers analyze the data in order to avoid errors and deliver correct results faster. In this thesis formal methods have been applied both to solve product configuration problems and to support the development of control functions for production systems.
Software-based configurators might help engineers to create, verify, and maintain the large sets of the configuration constraints that govern which of the customizable parts and features of the product are combinable with each other. In this thesis it is investigated how configurators can be used during product development. An important problem for configurators used within product development is to generate sets of allowed partial configurations. The performance of different algorithms based on general-purpose constraint solvers, Boolean satisfiability solvers (SAT-solvers), and Binary Decision Diagrams (BDDs) has been evaluated on industrial data from the automotive industry. The results show that the tools based on BDDs have problems handling large instances, while SAT-solvers and general-purpose constraint solvers are both able to solve large problems. A SAT-solver based configurator, implemented as a part of this research, can efficiently compute partial configurations for industrial-sized problems.
In a production system process operations are used to describe sub-tasks and relations between them. These process operations must be coordinated in order to satisfy given specifications. Supervisory Control Theory (SCT) can be used to verify the coordination of operations and synthesize correct-by-construction control functions. This thesis presents a method for verification and synthesis of SCT-based control functions using SAT-solvers. A method for verification of SCT properties for systems modeled as Extended Finite Automata is also presented.
Tools for both product configuration and SCT verification and synthesis have been implemented as part of this research. They can be used to help engineers ensure correctness of products and production systems of high complexity.
Product and Production Development