Issues with PATHSolver

While writing and debugging this model I found an issue that I think should be reported. The issue is that when using subexpressions in a PATHSolver MCP model, the solver fails to find a solution even when the same model without subexpressions solves fine. This issue also appears in MPSGE models, which use subexpressions by default.

using NLP_to_MPSGE_Example
using JuMP, MPSGE, DataFrames

Initialize the data

data = ModelData()
ModelData(25.0, 25.0, 100.0, 100.0, 75.0, 75.0, 1.0, 1.0, 1.0, 1.0)

Initialize the models

nlp = NLP_model(data)
mcp = MCP_model(data)
mcp_sub = MCP_model(data; subexpressions = true)
mpsge = MPSGE_model(data)
$Parameters:
PWE
TD
sigma
BBAR
TM
TE
PWM
omega

$Sectors:
X  --  Activity Sector
Q  --  Goods Sector

$Commodities:
PQ  --  Consumer Price Index
PDD  --  Domestic Good Price
PFX  --  Nominal Exchange Rate
PX  --  Producer Price Index

$Consumers:
Y  --  Representative Agent

$Production: Q
:t = 0
  O:PQ    Q:100.0

:s = sigma
  I:PFX    Q:25 PWM    P:1.0 / PWM    A:Y    T:TM
  I:PDD    Q:75.0    A:Y    T:TD

$Production: X
:t = omega
  O:PFX    Q:25 PWE    P:1.0 / PWE    A:Y    T:-TE
  O:PDD    Q:75.0

:s = 0
  I:PX    Q:100.0


$Demand: Y
    D: PQ    Q: 100.0
    E: PX    Q: 100.0
    E: PFX    Q: BBAR

Notice that we have two versions of the MCP model, one with subexpressions and one without. This is going to demonstrate an issue with the PATHSolver when subexpressions are used.

Demonstration of the Issue

To demonstrate the issue, we will set a counterfactual scenario with a fairly large shock to the parameters, then attempt to solve all four models. This is the smallest shock I could find that causes the issue to appear.

params = ModelParameters(
    elas_substitution = .2,
    elas_transformation = 15,
    balance_of_payments = 10,
    price_world_export = 1.2,
    price_world_import = 1.1,
    tax_domestic = .5,
    subsidy_export = .2,
    tax_import = .1
    );


set_parameter_values(nlp, params)
set_parameter_values(mcp, params)
set_parameter_values(mcp_sub, params)
set_parameter_values(mpsge, params)

The NLP model solves fine.

optimize!(nlp)
This is Ipopt version 3.14.19, running with linear solver MUMPS 5.8.1.

Number of nonzeros in equality constraint Jacobian...:       48
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:       32

Total number of variables............................:       14
                     variables with only lower bounds:       12
                variables with lower and upper bounds:        0
                     variables with only upper bounds:        0
Total number of equality constraints.................:       14
Total number of inequality constraints...............:        0
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  1.0000000e+02 3.42e+01 1.00e+00  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  1.1080262e+02 1.74e+00 8.94e-01  -1.0 3.16e+01    -  8.38e-01 1.00e+00f  1
   2  1.1013233e+02 1.05e-01 3.46e-01  -1.0 1.89e+00    -  9.74e-01 1.00e+00h  1
   3  1.1009540e+02 2.24e-04 3.54e-03  -1.7 3.69e-02    -  1.00e+00 1.00e+00h  1
   4  1.1009540e+02 1.19e-09 3.01e-14  -3.8 4.12e-06    -  1.00e+00 1.00e+00h  1

Number of Iterations....: 4

                                   (scaled)                 (unscaled)
Objective...............:  -1.1009539658140858e+02    1.1009539658140858e+02
Dual infeasibility......:   3.0113395365171019e-14    3.0113395365171019e-14
Constraint violation....:   3.1753965383056021e-10    1.1907737018646003e-09
Variable bound violation:   0.0000000000000000e+00    0.0000000000000000e+00
Complementarity.........:   0.0000000000000000e+00    0.0000000000000000e+00
Overall NLP error.......:   3.1753965383056021e-10    1.1907737018646003e-09


Number of objective function evaluations             = 5
Number of objective gradient evaluations             = 5
Number of equality constraint evaluations            = 5
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 5
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 4
Total seconds in IPOPT                               = 0.001

EXIT: Optimal Solution Found.

As does the MCP model without subexpressions.

optimize!(mcp)
Path 5.0.03 (Fri Jun 26 09:54:13 2020)
Written by Todd Munson, Steven Dirkse, Youngdae Kim, and Michael Ferris

Preprocessed size   : 6

Crash Log
major  func  diff  size  residual    step       prox   (label)
    0     0             1.4870e+02             0.0e+00 (mc_PD)
    1     2     0     6 1.4244e+02  8.0e-01    0.0e+00 (income_balanc)
pn_search terminated: no basis change.

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
    0     0     3     2 1.4244e+02           I 0.0e+00 1.2e+02 (income_balanc)
    1     1     4     3 2.0601e+02  1.0e+00 SM 0.0e+00 2.0e+02 (mc_PD)
    2     2     5     4 -nan  1.0e+00 SD 0.0e+00 1.7e+01 (mc_PD)
    3     2     6     5 1.8629e+00  1.0e+00 RD -nan 1.9e+00 (zp_)
    4     1     7     6 1.0899e+00  1.0e+00 SD 1.9e-01 1.1e+00 (zp_)
    5     1     8     7 1.0264e+00  1.0e+00 SD 7.5e-02 1.0e+00 (zp_)
    6     1     9     8 1.0095e+00  1.0e+00 SD 3.0e-02 1.0e+00 (zp_)
    7     1    10     9 1.0037e+00  1.0e+00 SD 1.2e-02 1.0e+00 (zp_)
    8     1    11    10 1.0014e+00  1.0e+00 SD 4.8e-03 1.0e+00 (zp_)
    9     1    12    11 1.0006e+00  1.0e+00 SD 1.9e-03 1.0e+00 (zp_)
   10     1    14    12 2.4692e+01  8.0e-01 SW 0.0e+00 2.0e+01 (income_balanc)
   11     2    15    13 -nan  1.0e+00 SD 0.0e+00 5.9e+00 (zp_)
   12     1    16    14 2.0000e+00  1.0e+00 SD -nan 2.0e+00 (zp_)
   13     1    17    15 1.0990e+00  1.0e+00 SD 2.0e-01 1.1e+00 (zp_)
   14     1    18    16 1.0285e+00  1.0e+00 SD 8.0e-02 1.0e+00 (zp_)
   15     1    19    17 1.0103e+00  1.0e+00 SD 3.2e-02 1.0e+00 (zp_)
   16     1    20    18 1.0039e+00  1.0e+00 SD 1.3e-02 1.0e+00 (zp_)
   17     1    21    19 1.0016e+00  1.0e+00 SD 5.1e-03 1.0e+00 (zp_)
   18     1    22    20 1.0006e+00  1.0e+00 SD 2.0e-03 1.0e+00 (zp_)
   19     1    24    21 1.8833e+02  8.0e-01 SW 0.0e+00 1.9e+02 (mc_PD)
   20     2    25    22 -nan  1.0e+00 SD 0.0e+00 6.9e+01 (mc_PD)
   21     2    26    23 1.5585e+00  1.0e+00 RD -nan 1.6e+00 (zp_)
   22     1    27    24 1.0707e+00  1.0e+00 SD 1.6e-01 1.1e+00 (zp_)
   23     1    28    25 1.0217e+00  1.0e+00 SD 6.2e-02 1.0e+00 (zp_)
   24     1    29    26 1.0079e+00  1.0e+00 SD 2.5e-02 1.0e+00 (zp_)
   25     1    30    27 1.0031e+00  1.0e+00 SD 1.0e-02 1.0e+00 (zp_)
   26     1    31    28 1.0012e+00  1.0e+00 SD 4.0e-03 1.0e+00 (zp_)
   27     1    32    29 1.0005e+00  1.0e+00 SD 1.6e-03 1.0e+00 (zp_)
   28     1    34    30 7.1713e+01  8.0e-01 SW 0.0e+00 6.6e+01 (mc_PD)
   29     1    35    31 1.1612e+01  1.0e+00 SO 0.0e+00 1.1e+01 (mc_PF)
   30     1    36    32 9.8109e-01  1.0e+00 SO 0.0e+00 9.1e-01 (mc_PD)
   31     1    37    33 1.0770e-02  1.0e+00 SO 0.0e+00 7.9e-03 (mc_PF)
   32     1    38    34 1.3049e-06  1.0e+00 SO 0.0e+00 9.6e-07 (mc_PF)
   33     1    39    35 1.9342e-13  1.0e+00 SO 0.0e+00 1.8e-13 (mc_PD)

Major Iterations. . . . 33
Minor Iterations. . . . 38
Restarts. . . . . . . . 0
Crash Iterations. . . . 1
Gradient Steps. . . . . 0
Function Evaluations. . 39
Gradient Evaluations. . 35
Basis Time. . . . . . . 0.000073
Total Time. . . . . . . 0.006574
Residual. . . . . . . . 1.934192e-13
Postsolved residual: 1.9342e-13

However, the MCP model with subexpressions fails to solve.

optimize!(mcp_sub)
Path 5.0.03 (Fri Jun 26 09:54:13 2020)
Written by Todd Munson, Steven Dirkse, Youngdae Kim, and Michael Ferris

Preprocessed size   : 10

Crash Log
major  func  diff  size  residual    step       prox   (label)
    0     0             9.6385e+01             0.0e+00 (income_balanc)
pn_search terminated: no progress.

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
    0     0    13     1 9.6385e+01           I 0.0e+00 9.6e+01 (income_balanc)
    1     1    14     2 1.0296e+03  1.0e+00 SD 0.0e+00 7.8e+02 (income_balanc)
    2     1    19     3 4.2355e+02  3.3e-01 SW 0.0e+00 4.2e+02 (income_balanc)
    3     3    20     4 3.4417e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
    4     5    21     5 3.4417e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
    5     3    22     6 3.4417e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
    6     7    23     7 3.4417e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
    7     3    24     8 3.4417e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
    8    14    38     9 9.5364e+01  1.5e-06 RG 0.0e+00 9.5e+01 (income_balanc)
    9     1    39    10 8.2198e+02  1.0e+00 SD 0.0e+00 6.0e+02 (income_balanc)
   10     1    43    11 4.0193e+02  5.1e-01 SW 0.0e+00 4.0e+02 (income_balanc)
   11     3    44    12 3.4254e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
   12     8    45    13 3.4254e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
   13     3    46    14 3.4254e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
   14     8    47    15 3.4254e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
   15     3    48    16 3.4254e+02  1.0e+00 RO 0.0e+00 3.4e+02 (income_balanc)
   16    14    61    17 6.5888e+01  5.4e-05 RG 0.0e+00 6.6e+01 (income_balanc)
   17     1    68    18 2.9651e+02  1.3e-01 SB 0.0e+00 3.0e+02 (income_balanc)
   18     3    69    19 7.8257e+01  1.0e+00 RO 0.0e+00 7.8e+01 (income_balanc)
   19     6    70    20 7.8257e+01  1.0e+00 RO 0.0e+00 7.8e+01 (income_balanc)
   20     3    71    21 7.8257e+01  1.0e+00 RO 0.0e+00 7.8e+01 (income_balanc)
   21     6    72    22 7.8257e+01  1.0e+00 RO 0.0e+00 7.8e+01 (income_balanc)
   22     3    73    23 7.8257e+01  1.0e+00 RO 0.0e+00 7.8e+01 (income_balanc)
   23    13    87    24 6.1905e+01  1.5e-06 RG 0.0e+00 6.2e+01 (income_balanc)
   24     1    95    25 1.2322e+01  5.5e-02 SB 0.0e+00 1.2e+01 (income_balanc)
   25     1   104    26 1.0090e+02  2.3e-02 SB 0.0e+00 1.0e+02 (income_balanc)
   26     1   133    27 1.0515e+01  4.3e-08 SG 0.0e+00 1.0e+01 (income_balanc)
   27     1   162    28 9.0557e+00  4.3e-08 SG 0.0e+00 8.7e+00 (income_balanc)

Restart Log
proximal_perturbation 0
crash_method none
crash_perturb yes
nms_initial_reference_factor 2
lemke_start_type slack
proximal_perturbation 1.0000e-01

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
   27     0   192    29 9.6385e+01           R 1.0e-01 9.6e+01 (income_balanc)
   28     1   193    30 1.0839e+03  1.0e+00 SD 4.0e-02 8.0e+02 (income_balanc)
   29     1   202    31 1.2462e+02  2.3e-02 SW 4.0e-02 1.2e+02 (income_balanc)
   30     1   203    32 1.1294e+03  1.0e+00 SD 1.6e-02 8.2e+02 (mc_PF)
   31     1   213    33 1.3594e+02  9.2e-03 SW 4.0e-02 1.4e+02 (income_balanc)
   32     1   214    34 1.1773e+03  1.0e+00 SD 1.6e-02 8.9e+02 (mc_PF)
   33     1   226    35 1.3625e+02  2.6e-04 SW 4.0e-02 1.4e+02 (income_balanc)
   34     1   227    36 1.1787e+03  1.0e+00 SD 1.6e-02 8.9e+02 (mc_PF)
   35     1   240    37 1.3630e+02  4.4e-05 SW 4.0e-02 1.4e+02 (income_balanc)
   36     1   241    38 1.1789e+03  1.0e+00 SD 1.6e-02 8.9e+02 (mc_PF)
   37     1   255    39 1.3630e+02  1.2e-06 SW 4.0e-02 1.4e+02 (income_balanc)
   38     1   256    40 1.1789e+03  1.0e+00 SD 1.6e-02 8.9e+02 (mc_PF)

Restart Log
proximal_perturbation 0
crash_method none
crash_perturb no
nms_initial_reference_factor 10
nms_memory_size 2
nms_mstep_frequency 1
lemke_search_type slack

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
   38     0   258    41 9.6385e+01           R 0.0e+00 9.6e+01 (income_balanc)
   39     1   265    42 2.5876e+02  1.3e-01 SB 0.0e+00 2.6e+02 (income_balanc)
   40     1   274    43 3.0000e+02  2.3e-02 SB 0.0e+00 3.0e+02 (income_balanc)
   41     6   302    44 9.5364e+01  1.5e-06 RG 0.0e+00 9.5e+01 (income_balanc)
   42     1   329    45 6.5888e+01  5.4e-05 SG 0.0e+00 6.6e+01 (income_balanc)
   43     1   337    46 7.4087e+00  5.5e-02 SB 0.0e+00 7.0e+00 (income_balanc)
   44     1   346    47 5.8673e+01  2.3e-02 SB 0.0e+00 5.9e+01 (income_balanc)
   45     1   375    48 6.7729e+00  4.3e-08 SG 0.0e+00 6.3e+00 (income_balanc)
   46     1   385    49 3.9713e+00  9.2e-03 SB 0.0e+00 3.1e+00 (income_balanc)
   47     1   396    50 4.2725e+00  1.5e-03 SB 0.0e+00 3.5e+00 (income_balanc)
   48     1   410    51 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   49     1   424    52 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   50     1   438    53 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   51     1   452    54 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   52     1   466    55 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   53     1   480    56 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   54     1   494    57 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   55     1   508    58 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   56     1   522    59 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   57     1   536    60 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   58     1   550    61 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   59     1   564    62 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   60     1   578    63 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   61     1   592    64 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   62     1   606    65 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   63     1   620    66 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   64     1   634    67 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   65     1   648    68 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   66     1   662    69 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   67     1   676    70 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   68     1   690    71 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   69     1   704    72 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   70     1   718    73 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   71     1   732    74 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   72     1   746    75 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   73     1   760    76 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   74     1   774    77 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   75     1   788    78 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   76     1   802    79 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   77     1   816    80 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   78     1   830    81 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   79     1   844    82 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   80     1   858    83 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   81     1   872    84 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   82     1   886    85 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   83     1   900    86 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   84     1   914    87 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   85     1   928    88 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   86     1   942    89 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   87     1   956    90 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   88     1   970    91 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   89     1   984    92 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   90     1   998    93 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   91     1  1012    94 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   92     1  1026    95 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   93     1  1040    96 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   94     1  1054    97 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   95     1  1068    98 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   96     1  1082    99 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   97     1  1096   100 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   98     1  1110   101 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
   99     1  1124   102 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  100     1  1138   103 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  101     1  1152   104 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  102     1  1166   105 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  103     1  1180   106 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  104     1  1194   107 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  105     1  1208   108 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  106     1  1222   109 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  107     1  1236   110 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  108     1  1250   111 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  109     1  1264   112 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  110     1  1278   113 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  111     1  1292   114 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  112     1  1306   115 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  113     1  1320   116 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  114     1  1334   117 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  115     1  1348   118 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  116     1  1362   119 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  117     1  1376   120 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  118     1  1390   121 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  119     1  1404   122 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  120     1  1418   123 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  121     1  1432   124 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  122     1  1446   125 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  123     1  1460   126 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  124     1  1474   127 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  125     1  1488   128 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  126     1  1502   129 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  127     1  1516   130 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  128     1  1530   131 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  129     1  1544   132 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  130     1  1558   133 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  131     1  1572   134 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  132     1  1586   135 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  133     1  1600   136 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  134     1  1614   137 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  135     1  1628   138 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  136     1  1642   139 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  137     1  1656   140 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  138     1  1670   141 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  139     1  1684   142 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  140     1  1698   143 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  141     1  1712   144 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  142     1  1726   145 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  143     1  1740   146 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)

Restart Log
proximal_perturbation 0
crash_method pnewton
crash_nbchange_limit 10
nms_initial_reference_factor 2
crash_searchtype arc
nms_searchtype arc
gradient_searchtype arc
lemke_search_type slack

Crash Log
major  func  diff  size  residual    step       prox   (label)
    0     0             9.6385e+01             0.0e+00 (income_balanc)
pn_search terminated: no progress.

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
  143     0  1767   148 9.6385e+01           R 0.0e+00 9.6e+01 (income_balanc)
  144     1  1776   149 1.2606e+02  2.3e-02 SB 0.0e+00 1.3e+02 (income_balanc)
  145     1  1787   150 1.2809e+02  1.5e-03 SB 0.0e+00 1.3e+02 (income_balanc)
  146     1  1815   151 9.5364e+01  1.5e-06 SG 0.0e+00 9.5e+01 (income_balanc)
  147     1  1842   152 6.5888e+01  5.4e-05 SG 0.0e+00 6.6e+01 (income_balanc)
  148     1  1850   153 7.4087e+00  5.5e-02 SB 0.0e+00 7.0e+00 (income_balanc)
  149     1  1859   154 5.8673e+01  2.3e-02 SB 0.0e+00 5.9e+01 (income_balanc)
  150     1  1888   155 6.7729e+00  4.3e-08 SG 0.0e+00 6.3e+00 (income_balanc)
  151     1  1898   156 3.9713e+00  9.2e-03 SB 0.0e+00 3.1e+00 (income_balanc)
  152     1  1909   157 4.2725e+00  1.5e-03 SB 0.0e+00 3.5e+00 (income_balanc)
  153     1  1923   158 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  154     1  1937   159 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  155     1  1951   160 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  156     1  1965   161 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  157     1  1979   162 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  158     1  1993   163 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  159     1  2007   164 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  160     1  2021   165 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  161     1  2035   166 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  162     1  2049   167 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  163     1  2063   168 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  164     1  2077   169 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  165     1  2091   170 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  166     1  2105   171 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  167     1  2119   172 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  168     1  2133   173 4.2725e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  169     1  2147   174 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  170     1  2161   175 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  171     1  2175   176 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  172     1  2189   177 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  173     1  2203   178 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  174     1  2217   179 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  175     1  2231   180 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  176     1  2245   181 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  177     1  2259   182 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  178     1  2273   183 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  179     1  2287   184 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  180     1  2301   185 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  181     1  2315   186 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  182     1  2329   187 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  183     1  2343   188 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  184     1  2357   189 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  185     1  2371   190 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  186     1  2385   191 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  187     1  2399   192 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  188     1  2413   193 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  189     1  2427   194 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  190     1  2441   195 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  191     1  2455   196 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  192     1  2469   197 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  193     1  2483   198 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  194     1  2497   199 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  195     1  2511   200 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  196     1  2525   201 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  197     1  2539   202 4.2724e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  198     1  2553   203 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  199     1  2567   204 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  200     1  2581   205 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  201     1  2595   206 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  202     1  2609   207 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  203     1  2623   208 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  204     1  2637   209 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  205     1  2651   210 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  206     1  2665   211 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  207     1  2679   212 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  208     1  2693   213 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  209     1  2707   214 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  210     1  2721   215 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  211     1  2735   216 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  212     1  2749   217 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  213     1  2763   218 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  214     1  2777   219 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  215     1  2791   220 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  216     1  2805   221 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  217     1  2819   222 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  218     1  2833   223 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  219     1  2847   224 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  220     1  2861   225 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  221     1  2875   226 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  222     1  2889   227 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  223     1  2903   228 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  224     1  2917   229 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  225     1  2931   230 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  226     1  2945   231 4.2723e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  227     1  2959   232 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  228     1  2973   233 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  229     1  2987   234 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  230     1  3001   235 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  231     1  3015   236 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  232     1  3029   237 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  233     1  3043   238 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  234     1  3057   239 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  235     1  3071   240 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  236     1  3085   241 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  237     1  3099   242 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  238     1  3113   243 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  239     1  3127   244 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  240     1  3141   245 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  241     1  3155   246 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  242     1  3169   247 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  243     1  3183   248 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  244     1  3197   249 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  245     1  3211   250 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  246     1  3225   251 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  247     1  3239   252 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)
  248     1  3253   253 4.2722e+00  1.2e-06 SB 0.0e+00 3.5e+00 (income_balanc)

Major Iterations. . . . 248
Minor Iterations. . . . 347
Restarts. . . . . . . . 3
Crash Iterations. . . . 0
Gradient Steps. . . . . 12
Function Evaluations. . 3267
Gradient Evaluations. . 254
Basis Time. . . . . . . 0.000796
Total Time. . . . . . . 0.023295
Residual. . . . . . . . 3.971304e+00
Postsolved residual: 3.9713e+00

This MPSGE model uses subexpressions, so it also fails to solve.

solve!(mpsge)
Reading options file /tmp/jl_R1OlSS
 > cumulative_iteration_limit 10000
Read of options file complete.

Path 5.0.03 (Fri Jun 26 09:54:13 2020)
Written by Todd Munson, Steven Dirkse, Youngdae Kim, and Michael Ferris

Preprocessed size   : 10

Crash Log
major  func  diff  size  residual    step       prox   (label)
    0     0             1.4567e+00             0.0e+00 (m_c[PFX)
    1     4     0     9 1.2020e+00  4.1e-01    0.0e+00 (m_c[PDD)
pn_search terminated: no basis change.

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
    0     0     5     2 1.2020e+00           I 0.0e+00 9.4e-01 (m_c[PDD)
    1     8    16     3 3.8254e+00  1.5e-03 RB 0.0e+00 3.6e+00 (i_b[Y)
    2     3    17     4 1.1976e+00  1.0e+00 RO 0.0e+00 9.4e-01 (m_c[PDD)
    3     5    18     5 1.1976e+00  1.0e+00 RO 0.0e+00 9.4e-01 (m_c[PDD)
    4     2    19     6 1.1976e+00  1.0e+00 RO 0.0e+00 9.4e-01 (m_c[PDD)
    5     2    20     7 1.1976e+00  1.0e+00 RO 0.0e+00 9.4e-01 (m_c[PDD)
    6     8    31     8 1.1951e+00  1.9e-03 RG 0.0e+00 9.3e-01 (m_c[PDD)
    7     4    32     9 1.1951e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
    8     6    33    10 1.1890e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
    9     4    34    11 1.1890e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   10     4    35    12 1.1890e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   11     8    46    13 3.4537e+00  1.5e-03 RB 0.0e+00 3.2e+00 (i_b[Y)
   12     5    59    14 1.1868e+00  5.4e-05 RG 0.0e+00 9.3e-01 (m_c[PDD)
   13     6    60    15 1.1868e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   14     4    61    16 1.1868e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   15     4    62    17 1.1868e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   16     8    75    18 1.1903e+00  4.4e-05 RB 0.0e+00 9.3e-01 (m_c[PDD)
   17     5    76    19 1.1903e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   18     5    89    20 1.1865e+00  5.4e-05 RG 0.0e+00 9.3e-01 (m_c[PDD)
   19     4    90    21 1.1865e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   20     6    91    22 1.1865e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   21     8   105    23 1.1865e+00  1.2e-06 RB 0.0e+00 9.3e-01 (m_c[PDD)
   22     5   106    24 1.1865e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   23     5   107    25 1.1865e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   24     5   119    26 1.1860e+00  3.2e-04 RG 0.0e+00 9.3e-01 (m_c[PDD)
   25     2   120    27 1.1860e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   26     8   134    28 1.1860e+00  1.2e-06 RB 0.0e+00 9.3e-01 (m_c[PDD)
   27     4   135    29 1.1867e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   28     3   136    30 1.1867e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   29     4   137    31 1.1867e+00  1.0e+00 RD 0.0e+00 9.3e-01 (m_c[PDD)
   30     3   150    32 1.1856e+00  5.4e-05 RG 0.0e+00 9.3e-01 (m_c[PDD)
   31     8   164    33 1.1856e+00  1.2e-06 RB 0.0e+00 9.3e-01 (m_c[PDD)
   32     3   165    34 1.1856e+00  1.0e+00 RO 0.0e+00 9.3e-01 (m_c[PDD)
   33     4   166    35 1.1865e+00  1.0e+00 RD 0.0e+00 9.3e-01 (m_c[PDD)
   34     3   167    36 1.1865e+00  1.0e+00 RD 0.0e+00 9.3e-01 (m_c[PDD)
   35     3   168    37 1.1865e+00  1.0e+00 RD 0.0e+00 9.3e-01 (m_c[PDD)

Restart Log
proximal_perturbation 0
crash_method none
crash_perturb yes
nms_initial_reference_factor 2
lemke_start_type slack
proximal_perturbation 1.4567e-02

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
   35     0   181    38 1.4567e+00           R 1.5e-02 1.0e+00 (m_c[PFX)
   36     2   193    39 1.5117e+00  2.6e-04 SB 5.8e-03 1.0e+00 (m_c[PFX)
   37     1   205    40 1.6650e+00  2.6e-04 SB 2.3e-03 1.0e+00 (m_c[PFX)
   38     1   217    41 1.8924e+00  2.6e-04 SB 9.3e-04 1.2e+00 (i_b[Y)
   39     1   230    42 1.9361e+00  4.4e-05 SB 3.7e-04 1.3e+00 (i_b[Y)
   40     1   243    43 1.9810e+00  4.4e-05 SB 1.5e-04 1.3e+00 (i_b[Y)
   41     1   256    44 2.0272e+00  4.4e-05 SB 6.0e-05 1.4e+00 (i_b[Y)
   42     1   270    45 2.0286e+00  1.2e-06 SB 2.4e-05 1.4e+00 (i_b[Y)
   43     1   284    46 2.0299e+00  1.2e-06 SB 9.5e-06 1.4e+00 (i_b[Y)
   44     1   298    47 2.0312e+00  1.2e-06 SB 3.8e-06 1.4e+00 (i_b[Y)
   45     1   312    48 2.0325e+00  1.2e-06 SB 1.5e-06 1.4e+00 (i_b[Y)
   46     1   339    49 1.4334e+00  5.4e-05 SG 5.8e-03 1.0e+00 (m_c[PFX)
   47     2   354    50 1.4334e+00  3.5e-08 SB 2.3e-03 1.0e+00 (m_c[PFX)
   48     1   369    51 1.4334e+00  3.5e-08 SB 9.3e-04 1.0e+00 (m_c[PFX)
   49     1   384    52 1.4334e+00  3.5e-08 SB 3.7e-04 1.0e+00 (m_c[PFX)
   50     1   399    53 1.4334e+00  3.5e-08 SB 1.5e-04 1.0e+00 (m_c[PFX)
   51     1   414    54 1.4334e+00  3.5e-08 SB 6.0e-05 1.0e+00 (m_c[PFX)
   52     1   429    55 1.4334e+00  3.5e-08 SB 2.4e-05 1.0e+00 (m_c[PFX)
   53     1   444    56 1.4334e+00  3.5e-08 SB 9.5e-06 1.0e+00 (m_c[PFX)
   54     1   459    57 1.4334e+00  3.5e-08 SB 3.8e-06 1.0e+00 (m_c[PFX)
   55     1   474    58 1.4334e+00  3.5e-08 SB 1.5e-06 1.0e+00 (m_c[PFX)
   56     1   489    59 1.4334e+00  3.5e-08 SB 6.1e-07 1.0e+00 (m_c[PFX)
   57     1   504    60 1.4334e+00  3.5e-08 SB 2.4e-07 1.0e+00 (m_c[PFX)
   58     1   519    61 1.4334e+00  3.5e-08 SB 9.8e-08 1.0e+00 (m_c[PFX)
   59     1   534    62 1.4334e+00  3.5e-08 SB 3.9e-08 1.0e+00 (m_c[PFX)
   60     1   549    63 1.4334e+00  3.5e-08 SB 1.6e-08 1.0e+00 (m_c[PFX)
   61     1   564    64 1.4334e+00  3.5e-08 SB 6.3e-09 1.0e+00 (m_c[PFX)
   62     1   579    65 1.4334e+00  3.5e-08 SB 2.5e-09 1.0e+00 (m_c[PFX)
   63     1   594    66 1.4334e+00  3.5e-08 SB 1.0e-09 1.0e+00 (m_c[PFX)
   64     1   609    67 1.4334e+00  3.5e-08 SB 4.0e-10 1.0e+00 (m_c[PFX)
   65     1   624    68 1.4334e+00  3.5e-08 SB 1.6e-10 1.0e+00 (m_c[PFX)
   66     1   639    69 1.4334e+00  3.5e-08 SB 6.4e-11 1.0e+00 (m_c[PFX)
   67     1   654    70 1.4334e+00  3.5e-08 SB 2.6e-11 1.0e+00 (m_c[PFX)
   68     1   681    71 1.2656e+00  5.4e-05 SG 1.0e-09 1.0e+00 (m_c[PFX)
   69     1   709    72 1.1687e+00  1.5e-06 SG 4.0e-10 1.0e+00 (m_c[PFX)
   70     1   738    73 1.1666e+00  4.3e-08 SG 1.6e-10 1.0e+00 (m_c[PFX)
   71     1   767    74 1.1646e+00  4.3e-08 SG 6.4e-11 1.0e+00 (m_c[PFX)

Restart Log
proximal_perturbation 0
crash_method none
crash_perturb no
nms_initial_reference_factor 10
nms_memory_size 2
nms_mstep_frequency 1
lemke_search_type slack

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
   71     0   797    75 1.4567e+00           R 0.0e+00 1.0e+00 (m_c[PFX)
   72     2   808    76 2.7983e+00  1.5e-03 SB 0.0e+00 2.4e+00 (i_b[Y)
   73     1   820    77 3.1473e+00  2.6e-04 SB 0.0e+00 2.8e+00 (i_b[Y)
   74     1   847    78 1.4334e+00  5.4e-05 SG 0.0e+00 1.0e+00 (m_c[PFX)
   75     2   862    79 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   76     1   877    80 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   77     1   892    81 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   78     1   907    82 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   79     1   922    83 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   80     1   937    84 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   81     1   952    85 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   82     1   967    86 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   83     1   982    87 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   84     1   997    88 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   85     1  1012    89 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   86     1  1027    90 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   87     1  1042    91 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   88     1  1057    92 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   89     1  1072    93 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   90     1  1087    94 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   91     1  1102    95 1.4334e+00  3.5e-08 SB 0.0e+00 1.0e+00 (m_c[PFX)
   92     1  1129    96 1.2656e+00  5.4e-05 SG 0.0e+00 1.0e+00 (m_c[PFX)
   93     1  1157    97 1.1687e+00  1.5e-06 SG 0.0e+00 1.0e+00 (m_c[PFX)
   94     1  1186    98 1.1666e+00  4.3e-08 SG 0.0e+00 1.0e+00 (m_c[PFX)
   95     1  1215    99 1.1646e+00  4.3e-08 SG 0.0e+00 1.0e+00 (m_c[PFX)

Restart Log
proximal_perturbation 0
crash_method pnewton
crash_nbchange_limit 10
nms_initial_reference_factor 2
crash_searchtype arc
nms_searchtype arc
gradient_searchtype arc
lemke_search_type slack

Crash Log
major  func  diff  size  residual    step       prox   (label)
    0     0             1.4567e+00             0.0e+00 (m_c[PFX)
    1     4     0     9 1.2020e+00  4.1e-01    0.0e+00 (m_c[PDD)
    2     8     1     9 1.0783e+00  4.1e-01    0.0e+00 (m_c[PDD)
    3    20     1     8 1.0783e+00  5.4e-05    0.0e+00 (m_c[PDD)
    4    27     0     9 1.0670e+00  6.9e-02    0.0e+00 (m_c[PDD)
    5    36     0     9 1.0652e+00  1.2e-02    0.0e+00 (m_c[PDD)
    6    46     0     9 1.0649e+00  1.9e-03    0.0e+00 (m_c[PDD)
    7    56     0     9 1.0646e+00  1.9e-03    0.0e+00 (m_c[PDD)
    8    67     0     9 1.0646e+00  3.2e-04    0.0e+00 (m_c[PDD)
    9    78     0     9 1.0645e+00  3.2e-04    0.0e+00 (m_c[PDD)
   10    89     0     9 1.0645e+00  3.2e-04    0.0e+00 (m_c[PDD)
pn_search terminated: no basis change.

Major Iteration Log
major minor  func  grad  residual    step  type prox    inorm  (label)
   95     0  1334   110 1.0645e+00           R 0.0e+00 8.5e-01 (m_c[PDD)
   96     2  1335   111 1.0645e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
   97     5  1336   112 1.0645e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
   98     2  1337   113 1.0645e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
   99     5  1338   114 1.0645e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  100     2  1339   115 1.0645e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  101     8  1352   116 1.0644e+00  5.4e-05 RG 0.0e+00 8.5e-01 (m_c[PDD)
  102     4  1353   117 1.0644e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  103     6  1354   118 1.0642e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  104     4  1355   119 1.0642e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  105     4  1356   120 1.0642e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  106     8  1366   121 1.0630e+00  9.2e-03 RB 0.0e+00 8.5e-01 (m_c[PDD)
  107     4  1381   122 1.0629e+00  4.3e-08 RG 0.0e+00 8.5e-01 (m_c[PDD)
  108     3  1382   123 1.0629e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  109     4  1394   124 1.0629e+00  2.6e-04 RB 0.0e+00 8.5e-01 (m_c[PDD)
  110     3  1396   125 1.0629e+00  8.0e-01 RB 0.0e+00 8.5e-01 (m_c[PDD)
  111     8  1406   126 1.0622e+00  9.2e-03 RB 0.0e+00 8.5e-01 (m_c[PDD)
  112     4  1407   127 1.0622e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  113     3  1422   128 1.0619e+00  4.3e-08 RG 0.0e+00 8.5e-01 (m_c[PDD)
  114     3  1423   129 1.0619e+00  1.0e+00 RM 0.0e+00 8.5e-01 (m_c[PDD)
  115     3  1425   130 1.0619e+00  8.0e-01 RB 0.0e+00 8.5e-01 (m_c[PDD)
  116     8  1435   131 1.0616e+00  9.2e-03 RB 0.0e+00 8.4e-01 (m_c[PDD)
  117     4  1436   132 1.0616e+00  1.0e+00 RM 0.0e+00 8.4e-01 (m_c[PDD)
  118     3  1438   133 1.0616e+00  8.0e-01 RB 0.0e+00 8.4e-01 (m_c[PDD)
  119     4  1453   134 1.0612e+00  4.3e-08 RG 0.0e+00 8.4e-01 (m_c[PDD)
  120     3  1454   135 1.0612e+00  1.0e+00 RM 0.0e+00 8.4e-01 (m_c[PDD)
  121     8  1464   136 1.0611e+00  9.2e-03 RB 0.0e+00 8.4e-01 (m_c[PDD)
  122     4  1467   137 1.0611e+00  6.4e-01 RB 0.0e+00 8.4e-01 (m_c[PDD)
  123     3  1469   138 1.0611e+00  8.0e-01 RB 0.0e+00 8.4e-01 (m_c[PDD)
  124     4  1481   139 1.0611e+00  2.6e-04 RB 0.0e+00 8.4e-01 (m_c[PDD)
  125     3  1496   140 1.0607e+00  4.3e-08 RG 0.0e+00 8.4e-01 (m_c[PDD)
  126     8  1506   141 1.0609e+00  9.2e-03 RB 0.0e+00 8.4e-01 (m_c[PDD)

Major Iterations. . . . 126
Minor Iterations. . . . 385
Restarts. . . . . . . . 3
Crash Iterations. . . . 11
Gradient Steps. . . . . 24
Function Evaluations. . 1535
Gradient Evaluations. . 141
Basis Time. . . . . . . 0.000791
Total Time. . . . . . . 0.036288
Residual. . . . . . . . 1.060652e+00
Postsolved residual: 1.0607e+00


Solver Status: SLOW_PROGRESS
Model Status: UNKNOWN_RESULT_STATUS

The issue appears to be related to the use of subexpressions in PATHSolver. Both the NLP and MCP models without subexpressions solve fine, while both models with subexpressions fail to solve.

Temporary Solution

One way to solve this is to slowly approach the counterfactual by solving the model multiple times with smaller shocks. This is known as "parameter homotopy" or "path-following". Below is an example of how to do this.

The following is a function allowing us to set the value of elas_transformation without changing the other parameters.

transformation_shock(x) = ModelParameters(
    elas_substitution = .2,
    elas_transformation = x,
    balance_of_payments = 10,
    price_world_export = 1.2,
    price_world_import = 1.1,
    tax_domestic = .5,
    subsidy_export = .2,
    tax_import = .1
    )
transformation_shock (generic function with 1 method)

We are going to solve the model many times, so it's a good idea to set it to silent mode.

set_silent(mpsge)

Now we can loop over a range of values for elas_transformation, gradually increasing it to the target value.

for param in transformation_shock.(1:15)
    set_parameter_values(mpsge, param)
    solve!(mpsge)

    jm = jump_model(mpsge)
    set_start_value.(all_variables(jm), value.(all_variables(jm)))

    println("Omega=$(param.elas_transformation): Solved = $(is_solved_and_feasible(jm))")

end
Omega=1.0: Solved = true
Omega=2.0: Solved = true
Omega=3.0: Solved = true
Omega=4.0: Solved = true
Omega=5.0: Solved = true
Omega=6.0: Solved = true
Omega=7.0: Solved = true
Omega=8.0: Solved = true
Omega=9.0: Solved = true
Omega=10.0: Solved = true
Omega=11.0: Solved = true
Omega=12.0: Solved = true
Omega=13.0: Solved = true
Omega=14.0: Solved = true
Omega=15.0: Solved = true

A couple of notes. First, the all_variables function is defined in MPSGE, but it does not grab all the variables, just the ones that are explicitly defined. By using first extracting the JuMP model using jump_model, we can use all_variables from JuMP, which grabs all variables including subexpressions. I plan to add a keyword to all_variables in MPSGE to allow this behavior directly in the future.

Second, this approach may not always work. It depends on the model and the size of the shock. However, it is a useful technique to have in your toolbox when dealing with difficult-to-solve models.


This page was generated using Literate.jl.