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.analyze_problem. 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.