Solver|Picture

 

 

The Solver|Picture command displays a model in matrix form. Viewing the model in matrix form can be helpful in a couple of instances. First and perhaps most importantly, is the use of nonzero pictures in debugging formulations. Most models have strong repetitive structure. Incorrectly entered sections of the model will stand out in a model’s matrix picture. Secondly, a nonzero picture can be helpful when you are attempting to identify special structure in your model. As an example, if your model displays strong block angular structure, then algorithms that decompose the model into smaller fragments might prove fruitful.

As an example, we loaded the DNRISK.LG4 model from LINGO’s sample model set. Issuing the Picture command, we see the following:

page162axp

Positive coefficients are represented with blue tiles, negatives with red, and variables that appear in a row nonlinearly show up as black tiles.

You can zoom in on a selected range in the matrix for closer viewing. To do this, place the cursor on the upper left corner of the range you wish to view, press and hold down the left mouse button. Next, drag the mouse to the lower right-hand corner of the desired range. Now, release the left mouse button and LINGO will zoom in on the selected range. As an example, here is a view of the matrix after zooming in on a 4x4 range:

page162bxp

Note, we have zoomed in far enough to be able see the actual coefficient values, row names, and variable names. Scroll bars have also appeared to allow scrolling through the matrix.

The matrix picture window supports a number of additional interactive features. To access these features, place the cursor over the matrix picture, and press and hold the right mouse button. This will bring up the following menu:

picpopup

A brief description of these features follows:

Unpermuted - Displays the matrix in its original form
Lower Triangular - Displays the matrix picture to lower triangular, or almost lower triangular form
Block Triangular - GP1 - The matrix is displayed in block triangular form using LINGO'S GP1 graph partitioning heuristic
Block Triangular - GP2 -  The matrix is displayed in block triangular form using LINGO'S GP1 graph partitioning heuristic
Block Triangular - Row Names - The matrix is displayed using a block structure specified by the user as part of the row names
Block Triangular - User Specified - The matrix is displayed using a block structure specified by the user via the @BLKROW function
Zoom In - Zooms the view in centered around the current cursor position
Zoom Out - Zooms the view out centered around the current cursor position
View All - Zooms all the way out to give a full view of the matrix
Row Names - Toggles the display of row names on and off
Var Names - Toggles the display of variable names on and off
Scroll Bars - Toggles scroll bars on and off
Print - Prints the matrix picture
Close - Closes the matrix picture window

The Lower Triangular option is an interesting feature.  The rows and columns are automatically permuted to place the matrix into mostly lower-triangular form.  If a matrix is mostly lower triangular, then, in general, the model should prove relatively easier to solve.  This is opposed to a model that contains a high degree of simultaneity that can't be permuted into lower triangular form.

Refer to the BNP Solver section above for more information on the various Block Triangular options (GP1, GP2, Row Names and User Specified).