Smart Expansion Techniques for ASP-based Interactive Configuration
Lucia Balážová, Richard Comploi-Taupe, Susana Hahn, Nicolas Rühling, Gottfried Schenner
TL;DR
The paper tackles interactive ASP-based configuration for large industrial problems and proposes four smart expansion functions to accelerate completion of partial configurations by pruning the search space via cautious and brave reasoning. It integrates these functions into a multi-shot solving loop, extends OOASP-DDL with association specializations, and shifts from externals to assumptions to improve performance, accompanied by a clinguin-based UI prototype. Experimental results on a racks example show substantial runtime and memory improvements, though benefits depend on problem constraints and the order of function application. The work advances scalable, interactive configuration pipelines and provides practical tooling for industrial settings, with future plans to generalize constraints and enhance the UI.
Abstract
Product configuration is a successful application of Answer Set Programming (ASP). However, challenges are still open for interactive systems to effectively guide users through the configuration process. The aim of our work is to provide an ASP-based solver for interactive configuration that can deal with large-scale industrial configuration problems and that supports intuitive user interfaces via an API. In this paper, we focus on improving the performance of automatically completing a partial configuration. Our main contribution enhances the classical incremental approach for multi-shot solving by four different smart expansion functions. The core idea is to determine and add specific objects or associations to the partial configuration by exploiting cautious and brave consequences before checking for the existence of a complete configuration with the current objects in each iteration. This approach limits the number of costly unsatisfiability checks and reduces the search space, thereby improving solving performance. In addition, we present a user interface that uses our API and is implemented in ASP.
