# 14.1 Problem Analyzer¶

The problem analyzer prints a survey of the structure of the problem, with information about linear constraints and objective, quadratic constraints, conic constraints and variables.

In the initial stages of model formulation the problem analyzer may be used as a quick way of verifying that the model has been built or imported correctly. In later stages it can help revealing special structures within the model that may be used to tune the optimizer’s performance or to identify the causes of numerical difficulties.

The problem analyzer is run using Task.analyzeproblem. It prints its output to a log stream. The output is similar to the one below (this is the problem survey of the aflow30a problem from the MIPLIB 2003 collection).

                    Analyzing the problem

*** Structural report
Dimensions
Constraints   Variables     Matrix var.   Cones
479           842           0             0

Constraint and bound types
Free          Lower         Upper         Ranged        Fixed
Constraints:  0             0             421           0             58
Variables:  0             0             0             842           0

Integer constraint types
Binary        General
421           0

*** Data report
Nonzeros      Min           Max
|cj|:  421           1.1e+01       5.0e+02
|Aij|:  2091          1.0e+00       1.0e+02

# finite      Min           Max
|blci|:  58            1.0e+00       1.0e+01
|buci|:  479           0.0e+00       1.0e+01
|blxj|:  842           0.0e+00       0.0e+00
|buxj|:  842           1.0e+00       1.0e+02

*** Done analyzing the problem


The survey is divided into a structural and numerical report. The content should be self-explanatory.