Constraint design rewriting

Constraint networks are hyper-graphs whose nodes and hyper-edges respectively represent variables and relations between them. The problem to assign values to variables by satisfying all constraints is NP-complete. We propose an algebraic approach to the design and transformation of constraint networks, inspired by Architectural Design Rewriting (ADR). The main idea is to exploit ADR to equip constraint networks with some hierarchical structure and represent them as terms of a suitable algebra, when possible. Constraint network transformations such as constraint propagations are then specified with efficient rewrite rules exploiting the network's structure provided by terms. The approach can be understood as (i) an extension of ADR with constraints, and (ii) an application of ADR to the design of reconfigurable constraint networks.

[1]  Toby Walsh,et al.  Handbook of Constraint Programming (Foundations of Artificial Intelligence) , 2006 .

[2]  Emilio Tuosto,et al.  A design-by-contract approach to recover the architectural style from run-time misbehaviour , 2015, Sci. Comput. Program..

[3]  Roberto Bruni,et al.  An Algebra of Hierarchical Graphs and its Application to Structural Encoding , 2010, Sci. Ann. Comput. Sci..

[4]  Emilio Tuosto,et al.  Enforcing Architectural Styles in Presence of Unexpected Distributed Reconfigurations , 2012, ICE.

[5]  Roberto Bruni,et al.  Style-Based Architectural Reconfigurations , 2008, Bull. EATCS.

[6]  Antonio Bucchiarone,et al.  Graph-Based Design and Analysis of Dynamic Software Architectures , 2008, Concurrency, Graphs and Models.

[7]  Vijay A. Saraswat,et al.  Concurrent constraint programming , 1989, POPL '90.

[8]  Ugo Montanari,et al.  Networks of constraints: Fundamental properties and applications to picture processing , 1974, Inf. Sci..

[9]  Ivan Lanese,et al.  Synchronised Hyperedge Replacement as a Model for Service Oriented Computing , 2005, FMCO.

[10]  Toby Walsh,et al.  Handbook of Constraint Programming , 2006, Handbook of Constraint Programming.

[11]  Ugo Montanari,et al.  Soft constraints for KnowLang , 2012, C3S2E '12.

[12]  Annegret Habel,et al.  Hyperedge Replacement, Graph Grammars , 1997, Handbook of Graph Grammars.

[13]  Francesca Rossi,et al.  Perfect Relaxation in Constraint Logic Programming , 1991, ICLP.

[14]  Maria Grazia Buscemi,et al.  Programming Languages and Systems, 16th European Symposium on Programming, ESOP 2007, Held as Part of the Joint European Conferences on Theory and Practics of Software, ETAPS 2007, Braga, Portugal, March 24 - April 1, 2007, Proceedings , 2007, European Symposium on Programming.

[15]  Daniel Le Métayer Describing Software Architecture Styles Using Graph Grammars , 1998, IEEE Trans. Software Eng..

[16]  Roberto Bruni,et al.  Service Oriented Architectural Design , 2007, TGC.

[17]  Roberto Bruni,et al.  On Structured Model-Driven Transformations , 2011, Int. J. Softw. Informatics.

[18]  Roberto Bruni,et al.  A Formal Support to Business and Architectural Design for Service-Oriented Systems , 2011, Results of the SENSORIA Project.

[19]  Francesca Rossi,et al.  Constraint Relaxation may be Perfect , 1991, Artif. Intell..

[20]  Krzysztof R. Apt,et al.  The Essence of Constraint Propagation , 1998, Theor. Comput. Sci..

[21]  Francesca Rossi,et al.  An Abstract Machine for Concurrent Modular Systems: CHARM , 1994, Theor. Comput. Sci..

[22]  Hartmut Ehrig,et al.  Handbook of graph grammars and computing by graph transformation: vol. 3: concurrency, parallelism, and distribution , 1999 .

[23]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .