This page gives a brief tour of MProbe version 3.0, complete with screen shots. For best viewing, you should maximize your browser since the screen shots are full size.

Note throughout that MProbe is specifically designed to operate on functions of many variables. This is especially true of the methods for estimating the shape (convex? concave? both? linear? etc.) of nonlinear functions having too many variables to simply plot and analyze by eye.

Before beginning with MProbe, let's first take a brief look at a simple AMPL model file: test6.txt . The syntax in this simple example is straightforward.

Slide
1 shows MProbe after start-up, and after AMPL has been started (by choosing
`File|Start AMPL`
from the menu. Three AMPL commands show in the AMPL window:` `

`include test6.txt`recalls the previously-prepared AMPL model file for*test6.txt*,`show`instructs AMPL to list the elements in the model,`include genmodel`tells AMPL to write a model file which MProbe can operate on.

Slide 2 shows the Statistics window which appears after the AMPL model is read by MProbe. The Statistics window can be recalled anytime from the menu.

Slide
3 shows the Variables Workshop window. The spreadsheet-like grid shows
information about the variables: their names, types, number of functions they
appear in, and original and temporary upper and lower bounds. You can select a
subset of variables to view in the grid by choosing a criterion from the `Show Only` list
(only the real-valued variables are shown in this example). You can sort the
variables by selecting columns on which to sort, and pressing the `Sort on selected column(s)`
button (the variables in this example are sorted according to the number of
functions they appear in). A set of actions, such as showing all the constraints
that contain a selected variable, is also available via the `Perform Action`
button. For example, you could find a useful ordering for the variables in a
MIP by viewing only the integer and binary variables, and then sorting them in
descending order according to the number of functions they appear in.

The example also shows the best point for the currently selected variable (i.e. sampled point having maximum or minimum value of the objective, as appropriate), as found during a complete analysis of the model.

As in all of the grid displays in MProbe, the column widths are resizable. You can also expand the window to see more of the display, or you can select the checkbox to freeze the variable identification so that it is always visible onscreen.

It is important to understand that MProbe derives a lot of information by sampling the variable space. It scatters random line segments of random length throughout the space defined by the temporary bounds on the variables. Comparing the function value at a point with a value interpolated from the two random line endpoints indicates whether the function is concave or convex at that point. This information can be collected in a histogram, as can other information gleaned from the sampling, such as data on function values, constraint effectiveness, etc.

Slide
4 shows the Constraints Workshop, which summarizes the information about
the constraints: name, type of relationship, algebraic shape, empirical shape
in the space defined by the temporary bounds, the effect the constraint has on
the constrained region, the estimated effectiveness (fraction of the variable
space removed by the constraint), and counts of the types of variables in the
constraint. There is a long list of ways to select constraints for viewing
using the `Show
Only` list and button. In the slide, only constraints whose
algebraic shape is nonlinear are shown (this is 8 of 12 of the constraints in
the model, as shown in the upper left).

Note that equality constraints such as *sinquadratic* do not have a
simple effectiveness; instead there is an estimation as to whether or not it is
possible to satisfy the equality at some point in the current variable space.
Note also that an *empirical shape* of *too many math errors* is
recorded if there are errors in evaluating a function (e.g. a divide by zero or
other problem). As for the Variables Workshop, the grid display can be sorted
on user-selected columns. In the slide, the constraints are sorted in
decreasing order of effectiveness. This can be useful in constraint logic
programs: the most effective constraints should be put first in the constraint
list to encourage the development of small search trees.

The slide also shows the list of actions that can be performed. The last two actions refer to "sampling enclosures". This is a new feature in version 3.0. Instead of sampling inside the multidimensional "box" formed by the variable bounds, you can sample inside any convex enclosure formed by inequalities in the model. The results of such an analysis are shown in slide 5. The constraints which form the enclosure are analyzed to estimate whether they are redundant or necessary. If an enclosure constraint is necessary, then the fraction of the total "surface" of the enclosure that the constraint comprises is also estimated.

Constraints that do not form the sampling enclosure are analyzed within the enclosure. This provides a much more accurate analysis of the relevant shape and effectiveness data. For example, a constraint estimated to have a "convex and concave" shape within the larger enclosure formed by the variable bounds, may well be found to have a convex or even linear shape when examined inside a tighter convex enclosure. Sampling enclosures are found by first sampling within the variable bounds, then using the empirical shape information to build up a tighter convex sampling enclosure. Information is also kept on the best values of the objective function encountered along the way.

Slide 6 shows that sampling within the convex enclosure provides a broad range of information not previously available.

When functions (constraints or objectives) are analyzed individually, then
detailed histograms of the shape analysis are returned. Slide 7
shows the shape histogram returned when the constraint *sinquadratic*
is analyzed. This constraint is convex, within the tolerances specified by the
user. It is not particulary deeply convex as shown by the average and maximum
values in the histogram. Histograms are also generated for the function values,
"slope" (change in function value between the line segment endpoints
divided by the line length), and the length of the test lines.

An interestying facility launched from the *Constraints Workshop* or*
*the *Objectives Workshop* is "Function Profiling". This is a
plot of the values of a function from some Point A in n-space to some other
Point B in n-space along a straight line connecting those two points. The *mynonlinear
*constraint is profiled in Slide
8 between two points in the 2-space that it occupies. It is certainly
nonlinear by inspection! Slide
9 shows that there are numerous ways to set up a profile plot, including
randomly, between user-specified points, or along the gradient direction. The
actual values of Points A and B, and the facilities to modify them, are on the
third tab, "Profile Points".

Function Profiling is useful when, for example, your solver is stuck at some Point A, but a better Point B is known to exist. The function profile between those two points in n-space might show an unexpected hill.

Slide
10 shows the *Objectives Workshop*. The *sinobj* objective
function is linear with a small superimposed sinusoid, but when sampled inside
the convex sampling enclosure, turns out to have a linear empirical shape! This
means that the "optimum effect" is "global optimum
possible". The best value of each objective found during sampling is also
shown. An action available via the list in the lower left will display the
point corresponding to the best value of the objective function.

Slide
11 shows the *Constrained Region Workshop* after an analysis within a
convex sampling enclosure. Three major analyses are performed: overall shape of
the constrained region (convex? nonconvex?), feasibility, and redundancy. The
numbers of constraints in various categories are shown, and the button next to
each constraint count will take you to the *Constraints Workshop* loaded
with the relevant constraints. Note that the "constrained region" is
not the same as the "feasible region". The feasible region, if one
exists, is a *subset* of the constrained region. It is important to know
about the larger constrained region, as this affects the behaviour of phase-1
procedures, for example.

Slide 12 shows the Trace File. This is a user-controlled text file record of the session that can be viewed, annotated, saved, printed, etc. Relevant information is written to the trace file either automatically, or via the Trace button on most windows.

And finally, Slide 13 shows that MProbe comes with a complete help system. A number of tutorials are included to get you up to speed quickly.

Back to the MProbe home page.

Latest revision: November 16, 2001.