Matrix Modelling: Exploiting Common Patterns in Constraint Programming Pierre Flener 1 , Alan M. Frisch 2 , Brahim Hnich 3 , Zeynep Kızıltan 3 , Ian Miguel 2 , and Toby Walsh 4 1 Department of Information Technology, Uppsala University, Uppsala, Sweden 2 Department of Computer Science, University of York, York, England 3 Department of Information Science, Uppsala University, Uppsala, Sweden 4 Cork Constraint Computation Centre, University College Cork, Cork, Ireland Abstract. Constraint programs with one or more matrices of decision variables are commonly and naturally used to model real-world prob- lems. We call these matrix models and claim that they can be studied beneficially as a class. In support of this claim we present results in three areas: the systematization of formulating matrix models, the elimination of row and column symmetries from matrix models, and the efficient implementation of constraints for channelling between matrices. 1 Introduction Though many companies have problems of vital commercial importance that could be solved with a constraint programming toolkit they do not do so be- cause of a lack of expertise in modeling problems as constraint programs. We believe that we can bring the proven power of constraint programming to a wider user base, and thereby help improve industrial competitiveness, by systematising some of this expertise and embedding it in constraint toolkits. A constraint programming expert is able to recognize patterns that com- monly arise in problems and match them to patterns of problem formulation. The expert knows a range of patterns (or idioms) of solution techniques and knows how to match these to a variety of problem formulation patterns. To tackle the modelling bottleneck, we need to identify, formalise, and document these patterns of formulation and solution. We need to understand the prop- erties of these patterns and to formulate heuristics on how to choose between alternative formulations and alternative solution techniques. We envision a world in which formulation patterns are supported in much the same way that data structures are currently supported. Like data structures, formulation patterns would be published in journals and cataloged in textbooks along with analyses of their properties. Like textbooks on data structures, text- books on formulation patterns would offer heuristic guidance on how to choose between alternative patterns. As with data structure implementations, libraries of implementations of formulation patterns would be available along with heuris- tic guidance on how to choose between alternative implementations. In much the