Opta Consulting

Opta Consulting






Contact Us







Matrix Explorer – A Diagnostic Tool for Xpress-Mosel Models


Matrix Explorer is a package (add-on) for Xpress-Mosel ™FICO.


When finding bugs in a model, or in data, or simply trying to explain why a solution is the way it is, you often need to explore the generated matrix and solution together.  To know the contribution of a variable to a constraint, you need to see both the activity of the variable and the coefficient of the variable.  For example, to understand why a production resource is at 100% of capacity, you need to know about the operations which use the resource – both how many tonnes they are planned to produce, and how fast they each run.


Although that information can be extracted via Mosel-IVE, it is time-consuming and cumbersome; to assemble the information into a useful form requires paper and a calculator at the least.


But the requirement doesn't end there – now you can see which operation is consuming all the capacity, you will want to see immediately where the product is being used, by following the material balance constraint for that material.  That might lead into another operation, or storage, or shipment to a customer; you will want to follow the supply chain to its end – or its beginning.


And that's just Primal information.  If you have equally convenient access to Dual information then you can quickly answer questions about the effects that binding constraints have on the activities of the variables.  If an operation runs below maximum, despite unsatisfied demand for the product, the Dual constraint for the variable will tell you whether it is capacity, or availability of feed material, or maybe the ability to transport the product once made, that is the problem.


Matrix Explorer not only supports this functionality and more, and is easily mapped onto your specific model, it is also entirely free.  And the source code is freely available too, as an example of a relatively sophisticated XAD implementation.  The only restriction on its use is that you should leave all copyright notices unaltered.


Here are some screenshots from the demonstration model included with the release.  Find a variable by identifying its dimensions in turn from the list boxes:


Finding a Variable


Once an individual variable is identified, its intersections are shown:


An Exploded Variable


Follow one of the variable's intersecting constraints to see all its intersections:


An Exploded Constraint


Set options or read the help message:




You will need version 3.4 or later of Xpress-Mosel, including a licence for XAD, in order to use Matrix Explorer.


The release consists of a zip file containing the package MatrixExplorer.bim file (which should be placed in the dso folder under your Xpress installation folder), the original MatrixExplorer.mos source file, and a simple example model MXDemo.mos.  Click here to download.


© Opta Consulting Ltd 2005-19 All Rights Reserved. This website does not use cookies.