SECQUOIA / gdplib

An open library of Generalized Disjunctive Programming (GDP) models
BSD 3-Clause "New" or "Revised" License
9 stars 7 forks source link

methanol.py result is infeasible #42

Open parkyr opened 5 months ago

parkyr commented 5 months ago
MILP discrete problem is now infeasible. GDPopt has explored or cut off all feasible discrete configurations.
GDPopt exiting--problem is infeasible.

Solved in 9 iterations and 4.77268 seconds
Optimal objective value inf
Relative optimality gap nan%

Problem: 
- Name: unknown
  Lower bound: inf
  Upper bound: inf
  Number of objectives: 1
  Number of constraints: 429
  Number of variables: 285
  Number of binary variables: 8
  Number of integer variables: 0
  Number of continuous variables: 277
  Number of nonzeros: None
  Sense: 1
  Number of disjunctions: 4
Solver: 
- Name: GDPopt (22, 5, 13) - LOA
  Status: ok
  User time: 4.772652326999999
  Wallclock time: 4.772652326999999
  Termination condition: infeasible
  Iterations: 9
  Timing: integer cut generation: 0.0015824459999969065
main_timer_start_time: 23.405043971
mip: 1.4077680720000032
nlp: 1.0189015869999913
total: 4.772652326999999

activated:
    binary_variables: 8
    constraints: 429
    continuous_variables: 277
    disjunctions: 4
    disjuncts: 8
    integer_variables: 0
    nonlinear_constraints: 55
    variables: 285
overall:
    binary_variables: 8
    constraints: 429
    continuous_variables: 279
    disjunctions: 4
    disjuncts: 8
    integer_variables: 0
    nonlinear_constraints: 55
    variables: 287
warning:
    unassociated_disjuncts: 0

the result shows infeasible. tried running in both master and methanol branches, same result.

parkyr commented 5 months ago

debugging session log with @bernalde

changed code with

  res = opt.solve(m, algorithm='LOA', mip_solver='gams', nlp_solver='gams', tee=True, nlp_solver_args={'tee': True, 'solver': 'baron'})

The output:

Starting GDPopt version 22.5.13 using LOA algorithm
iterlim: None
time_limit: None
tee: true
logger: <Logger pyomo.contrib.gdpopt (DEBUG)>
integer_tolerance: 1.0e-05
constraint_tolerance: 1.0e-06
variable_tolerance: 1.0e-08
subproblem_initialization_method: <function restore_vars_to_original_values at 0x7fd9cc06f100>
call_before_subproblem_solve: <class 'type'>
call_after_subproblem_solve: <class 'type'>
call_after_subproblem_feasible: <class 'type'>
force_subproblem_nlp: false
subproblem_presolve: true
tighten_nlp_var_bounds: false
round_discrete_vars: true
max_fbbt_iterations: 3
init_strategy: None
init_algorithm: set_covering
custom_init_disjuncts: []
max_slack: 1000.0
OA_penalty_factor: 1000.0
set_cover_iterlim: 8
discrete_problem_transformation: gdp.bigm
call_before_discrete_problem_solve: <class 'type'>
call_after_discrete_problem_solve: <class 'type'>
call_before_master_solve: <class 'type'>
call_after_master_solve: <class 'type'>
mip_presolve: true
calc_disjunctive_bounds: false
obbt_disjunctive_bounds: false
mip_solver: gams
mip_solver_args:
nlp_solver: gams
nlp_solver_args:
  solver: baron
  tee: true
minlp_solver: baron
minlp_solver_args:
local_minlp_solver: bonmin
local_minlp_solver_args:
small_dual_tolerance: 1.0e-08
bound_tolerance: 1.0e-06

If you use this software, you may cite the following:
            - Implementation:
            Chen, Q; Johnson, ES; Bernal, DE; Valentin, R; Kale, S;
            Bates, J; Siirola, JD; Grossmann, IE.
            Pyomo.GDP: an ecosystem for logic based modeling and optimization
            development.
            Optimization and Engineering, 2021.

- LOA algorithm:
        Türkay, M; Grossmann, IE.
        Logic-based MINLP algorithms for the optimal synthesis of process
        networks. Comp. and Chem. Eng. 1996, 20(8), 959–978.
        DOI: 10.1016/0098-1354(95)00219-7.
Original model has 429 constraints (55 nonlinear) and 4 disjunctions, with 285 variables, of which 8 are binary, 0 are integer, and 277 are continuous.
---Starting GDPopt initialization---
Starting set covering initialization.
=============================================================================================
Iteration | Subproblem Type | Lower Bound | Upper Bound |   Gap    | Time(s)

6 disjuncts need to be covered.
Solved set covering MIP
Fixed the following Disjuncts to 'True': cheap_feed_disjunct, single_stage_feed_compressor_disjunct, expensive_reactor, single_stage_recycle_compressor_disjunct
Fixed the following Boolean variables: 
Solving nonlinear subproblem for fixed binaries and logical realizations.
--- Job model.gms Start 06/26/24 16:58:05 45.7.0 64fbf3ce LEX-LEG x86 64bit/Linux
--- Applying:
    /home/yirangpark/gams45.7_linux_x64_64_sfx/gmsprmun.txt
--- GAMS Parameters defined
    Input /tmp/tmpzni3v1o3/model.gms
    Output /tmp/tmpzni3v1o3/output.lst
    ScrDir /tmp/tmpzni3v1o3/225a/
    SysDir /home/yirangpark/gams45.7_linux_x64_64_sfx/
    CurDir /tmp/tmpzni3v1o3/
    LogOption 3
Licensee: Prof. Ignacio E. Grossmann                     G240103|0002AS-GEN
          Carnegie Mellon University, Dept. of Chemical Engineering  DCE375
          /home/yirangpark/gams45.7_linux_x64_64_sfx/gamslice.txt
          License Admin: Ignacio E. Grossmann,                             
          Evaluation license: Not for commercial or production use
          The evaluation period of the license will expire on Nov 28, 2024
Processor information: 1 socket(s), 6 core(s), and 12 thread(s) available
GAMS 45.7.0   Copyright (C) 1987-2024 GAMS Development. All rights reserved
--- Starting compilation
--- model.gms(1197) 2 Mb
--- Starting execution: elapsed 0:00:00.002
--- model.gms(785) 3 Mb
--- Generating NLP model GAMS_MODEL
--- model.gms(786) 5 Mb
--- Reset Solvelink = 2
---   175 rows  183 columns  498 non-zeroes
---   279 nl-code  101 nl-non-zeroes
--- Range statistics (absolute non-zero finite values)
--- RHS       [min, max] : [ 1.000E-02, 3.627E+03] - Zero values observed as well
--- Bound     [min, max] : [ 1.000E-03, 8.000E+01] - Zero values observed as well
--- Matrix    [min, max] : [ 1.000E-03, 3.343E+05] - Zero values observed as well
--- model.gms(786) 3 Mb
--- Executing BARON (Solvelink=2): elapsed 0:00:00.004

GAMS/BARON       45.7.0 64fbf3ce Jan 18, 2024          LEG x86 64bit/Linux    

===========================================================================
 BARON version 23.6.22. Built: LNX-64 Thu Jun 22 20:08:45 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as: 

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC, ILOG CPLEX                             
 For NLP: MINOS, SNOPT, External NLP, IPOPT, FILTERSQP
===========================================================================
 Doing local search
 Preprocessing found feasible solution with value 1288.46
 Solving bounding LP
 Starting multi-start local search
 Preprocessing found feasible solution with value 1288.46
 Done with local search
===========================================================================
  Iteration    Open nodes         Time (s)    Lower bound      Upper bound
          1             1             1.77     -3676.42          1288.46       
       4888          1295            31.75     -2199.80          1288.46       
      10088          2603            61.76     -1849.71          1288.46       
      12837          3299            91.76     -1744.46          1288.46       
      16513          4203           121.76     -1643.37          1288.46       
      20648          5079           151.76     -1542.12          1288.46       
      24164          5748           181.76     -1473.50          1288.46       
      28265+         6468           211.77     -1397.05          1288.46       
      29232          6630           241.77     -1373.17          1288.46       
      30284+         6780           271.81     -1348.24          1288.46       
      30437+         6718           301.82     -1343.55          1288.46       
      30633+         6607           331.83     -1339.88          1288.46       
      30753+         6540           361.83     -1338.21          1288.46       
      30891+         6461           391.84     -1335.30          1288.46       
      31109+         6336           421.85     -1329.97          1288.46       
      31183+         6295           451.87     -1329.25          1288.46       
      31307+         6225           481.90     -1325.63          1288.46       
      31379+         6187           511.92     -1324.55          1288.46       
      31405+         6176           541.93     -1324.29          1288.46       
      32677          6315           571.94     -1303.13          1288.46       
      34546+         6499           601.94     -1272.64          1288.46       
      37090          6849           631.94     -1228.22          1288.46       
      40332+         7243           661.94     -1173.54          1288.46       
      42143          7496           691.94     -1147.72          1288.46       
      44383+         7628           721.94     -1116.41          1288.46       
      44432+         7602           751.96     -1115.65          1288.46       
      47336          8012           781.96     -1074.16          1288.46       
      51947          8588           811.96     -1014.05          1288.46       
      55878+         8999           841.97     -965.412          1288.46       
      56099+         8874           871.97     -962.158          1288.46       
      56242+         8793           901.98     -961.279          1288.46       
      56278+         8774           931.99     -961.065          1288.46       
      56461+         8671           962.00     -959.254          1288.46       
      56652+         8561           992.01     -958.226          1288.46       
      56804+         8477          1022.02     -956.275          1288.46       
      56883+         8435          1052.02     -955.271          1288.46       
      58479          8586          1082.02     -937.115          1288.46       
      58745+         8457          1112.03     -933.757          1288.46       
      58873+         8389          1142.05     -933.097          1288.46       
      59076+         8272          1172.06     -930.857          1288.46       
      59130          8244          1202.07     -930.281          1288.46       
      59394+         8090          1232.12     -928.250          1288.46       
      59595+         7976          1262.13     -926.477          1288.46       
      59822+         7851          1292.15     -925.164          1288.46       
      59971+         7766          1322.15     -924.209          1288.46       
      60195+         7635          1352.16     -920.285          1288.46       
      60250+         7605          1382.16     -919.849          1288.46       
      61437          7744          1412.16     -905.703          1288.46       
      62904+         7771          1442.17     -890.512          1288.46       
      63040+         7695          1472.18     -887.589          1288.46       
      64725+         7862          1502.18     -871.998          1288.46       
      66988          8048          1532.18     -849.723          1288.46       
      68741+         8148          1562.19     -834.461          1288.46       
      68793+         8118          1592.20     -834.173          1288.46       
      68974+         8015          1622.21     -832.181          1288.46       
      69231+         7869          1652.21     -828.530          1288.46       
      69544+         7695          1682.21     -823.541          1288.46       
      69838+         7528          1712.22     -820.128          1288.46       
      69984+         7449          1742.22     -818.875          1288.46       
      70048+         7415          1772.23     -817.955          1288.46       
      70279+         7286          1802.23     -814.728          1288.46       
      70351+         7249          1832.24     -813.981          1288.46       
      70531+         7146          1862.25     -812.496          1288.46       
      70770+         7010          1892.25     -809.995          1288.46       
      70939+         6916          1922.25     -807.637          1288.46       
      70990+         6917          1952.27     -807.224          1288.46       
      72715+         7006          1982.28     -789.786          1288.46       
      72945+         6873          2012.28     -786.339          1288.46       
      73124+         6771          2042.29     -784.925          1288.46       
      73288+         6675          2072.30     -782.660          1288.46       
      73486+         6563          2102.30     -779.195          1288.46       
      73652+         6466          2132.32     -777.412          1288.46       
      73779+         6393          2162.34     -774.888          1288.46       
      74035+         6246          2192.35     -771.293          1288.46       
      74275+         6107          2222.36     -769.137          1288.46       
      74529+         5962          2252.36     -765.850          1288.46       
      74860+         5776          2282.38     -761.247          1288.46       
      75046+         5669          2312.38     -758.953          1288.46       
      75253+         5549          2342.39     -755.613          1288.46       
      75424+         5454          2372.40     -753.623          1288.46       
      75620+         5336          2402.40     -750.853          1288.46       
      75936          5203          2432.40     -746.427          1288.46       
      79918+         5516          2462.41     -687.328          1288.46       
      80277+         5307          2492.42     -680.234          1288.46       
      80574+         5140          2522.43     -675.215          1288.46       
      80729+         5048          2552.43     -671.505          1288.46       
      81061+         4861          2582.43     -666.343          1288.46       
      81353+         4697          2612.43     -661.405          1288.46       
      81563+         4581          2642.44     -656.967          1288.46       
      81778+         4453          2672.45     -653.202          1288.46       
      82020+         4315          2702.46     -649.135          1288.46       
      82065+         4296          2732.47     -648.252          1288.46       
      84230+         4296          2762.48     -604.985          1288.46       
      84511+         4141          2792.49     -600.185          1288.46       
      84543+         4130          2822.50     -600.145          1288.46       
      84768          4053          2852.50     -596.298          1288.46       
      85889+         4014          2882.51     -575.230          1288.46       
      85959+         3978          2912.51     -573.874          1288.46       
      87567          4033          2942.51     -538.993          1288.46       
      90452          4104          2972.52     -481.635          1288.46       
      90780+         3917          3002.53     -474.534          1288.46       
      91046+         3765          3032.53     -470.093          1288.46       
      91345+         3588          3062.54     -464.559          1288.46       
      91756+         3346          3092.55     -454.043          1288.46       
      91849+         3306          3122.56     -452.103          1288.46       
      93777+         3323          3152.56     -406.890          1288.46       
      94049+         3165          3182.57     -400.931          1288.46       
      95675          3226          3212.57     -360.520          1288.46       
      97541          3115          3242.57     -317.739          1288.46       
      97680+         3081          3272.58     -314.564          1288.46       
      97916+         2956          3302.59     -309.945          1288.46       
      98124          2893          3332.59     -306.597          1288.46       
      99424          2820          3362.59     -272.447          1288.46       
     100129          2824          3392.59     -256.408          1288.46       
     103298+         2832          3422.61     -175.660          1288.46       
     103630+         2642          3452.61     -166.601          1288.46       
     103700+         2616          3482.62     -164.823          1288.46       
     106276+         2657          3512.62     -96.6821          1288.46       
     106514+         2578          3542.62     -93.3741          1288.46       
     108395+         2591          3562.29     -51.3803          1288.46       
     111081+         2532          3592.29      12.8972          1288.46       
     111664+         2205          3622.29      26.4764          1288.46       
     112251          1865          3652.29      39.6716          1288.46       
     113457+         1171          3682.29      82.1774          1288.46       
     115078          1053          3712.29      159.237          1288.46       
     117375+          857          3742.30      299.523          1288.46       
     118177+          406          3772.30      357.406          1288.46       
     123075           340          3802.30      798.087          1288.46       
     125745             0          3830.01      1288.33          1288.46       

 Calculating duals

                         *** Normal completion ***            

 Wall clock time:                  3886.91
 Total CPU time used:              3830.01

 Total no. of BaR iterations:  125745
 Best solution found at node:      33
 Max. no. of nodes in memory:    9013

 All done
===========================================================================

Solution      = 1288.45681146896  found at node 33
Best possible = 1288.32796612
Absolute gap  = 0.128845348961249  optca = 1E-9
Relative gap  = 9.99997421833283E-5  optcr = 0.0001

--- Reading solution for model GAMS_MODEL
--- Executing after solve: elapsed 1:04:47.006
--- model.gms(789) 3 Mb
--- model.gms(1197) 5 Mb
--- Putfile results /tmp/tmpzni3v1o3/results.dat
--- Putfile statresults /tmp/tmpzni3v1o3/resultsstat.dat
*** Status: Normal completion
--- Job model.gms Stop 06/26/24 18:02:52 elapsed 1:04:47.009
        0        subproblem          -inf    1288.45681       inf%   3830.84  *
Adding OA cuts.
Ignore_set None
Adding OA cut for single_stage_feed_compressor_disjunct.compressor_3.t_ratio_con with dual value -182.24888611059163
Cut expression: temps[6] - 5.22 - 3*(single_stage_feed_compressor_disjunct.compressor_3.p_ratio - 1.74) - 1.74*(temps[4] - 3) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[1]  <=  0
Ignore_set None
Adding OA cut for single_stage_feed_compressor_disjunct.compressor_3.electricity_requirement_con with dual value 175.255
Cut expression: - (single_stage_feed_compressor_disjunct.compressor_3.electricity_requirement - 0.530125367816657 - 0.9235169216102612*(flows[4] - 0.574028862289086) - 0.17670845593888576*(temps[4] - 3) - 0.7163856321846721*(single_stage_feed_compressor_disjunct.compressor_3.p_ratio - 1.74) - 3.3306690738754696e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[2]  <=  0
Ignore_set None
Adding OA cut for single_stage_feed_compressor_disjunct.compressor_3.p_ratio_con with dual value -653.2252237304127
Cut expression: 0.03642101099675059*(pressures[6] - 11.024949308404004) - (single_stage_feed_compressor_disjunct.compressor_3.p_ratio - 1.74) - 0.4015398*(pressures[4] - 1.0) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[3]  <=  0
Ignore_set None
Adding OA cut for mixer_recycle_feed_mixer.average_temp with dual value -317.4908059218978
Cut expression: 1.339373231246362*(temps[11] - 4.370689829425267) + 4.370689829425267*(flows[11] - 1.339373231246362) - 0.574028862289086*(temps[10] - 5.22) - 5.22*(flows[10] - 0.574028862289086) - 0.765344368957277*(temps[33] - 3.733684357483555) - 3.733684357483555*(flows[33] - 0.765344368957277) - 7.105427357601002e-15 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[4]  <=  0
Ignore_set None
Adding OA cut for cooler_7.heat_duty_con with dual value -2964.433295255815
Cut expression: cooler_7.heat_duty - 0.468100880731446*(flows[11] - 1.339373231246362) - 0.14344687306648535*(temps[11] - 4.370689829425267) + 0.468100880731446*(flows[12] - 1.339373231246362) + 0.14344687306648535*(temps[12] - 4.370689829425267) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[5]  <=  0
Ignore_set None
Adding OA cut for heater_8.heat_duty_con with dual value 2964.433295255815
Cut expression: - (heater_8.heat_duty - 0.4681008807314461*(flows[13] - 1.339373231246362) - 0.14344687306648535*(temps[13] - 4.370689829425268) + 0.468100880731446*(flows[12] - 1.339373231246362) + 0.14344687306648535*(temps[12] - 4.370689829425267) - 9.51239087498834e-17) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[6]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.p_sq_inv_con with dual value 7.222455348481836
Cut expression: - (121.54950725287793*(expensive_reactor.reactor_9.p_sq_inv - 0.008227100402139) + 0.18140672977746536*(expensive_reactor.reactor_9.pressure - 11.024949308404004) - 5.062616992290714e-14) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[7]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.t_inv_con with dual value -24.85739890490882
Cut expression: 0.191204588910134*(expensive_reactor.reactor_9.temp - 5.23) + 5.23*(expensive_reactor.reactor_9.t_inv - 0.191204588910134) + 8.881784197001252e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[8]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.conversion_consumption_con with dual value -4718.518225422897
Cut expression: expensive_reactor.reactor_9.consumption_rate - 0.219884259788177 - 0.708391494299803*(expensive_reactor.reactor_9.conversion - 0.310399350581584) - 0.310399350581584*(component_flows[15,H2] - 0.708391494299803) + 2.7755575615628914e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[9]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.energy_balance with dual value -9.071165883482793
Cut expression: -0.15*(expensive_reactor.reactor_9.consumption_rate - 0.219884259788177) - 152.97414402988437*(flows[15] - 1.339373231246362) - 46.87806309362267*(temps[15] - 4.370689829425268) + 183.05*(flows[17] - 1.119488971458186) + 39.18211400103651*(temps[17] - 5.23) + 1.463967835846347e-13 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[10]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.eq_conversion_con with dual value -2517.4707051629284
Cut expression: expensive_reactor.reactor_9.equilibrium_conversion - 0.412131066775208 + 0.3487174198148457*(expensive_reactor.reactor_9.p_sq_inv - 0.008227100402139) - 0.05164079804624866*(expensive_reactor.reactor_9.t_inv - 0.191204588910134) - 3.885780586188048e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[11]  <=  0
Ignore_set None
Adding OA cut for expensive_reactor.reactor_9.conversion_con with dual value -2495.6136934868737
Cut expression: 1.339373231246362*(expensive_reactor.reactor_9.conversion - 0.310399350581584) + 0.310399350581584*(flows[15] - 1.339373231246362) - 1.0087581710795626*(expensive_reactor.reactor_9.equilibrium_conversion - 0.412131066775208) - 0.4121123560537235*(component_flows[15,H2] - 0.708391494299803) - 0.4121123560537235*(component_flows[15,CO] - 0.240357701807378) - 0.4121123560537235*(component_flows[15,CH3OH] - 0.060054774601796) + 6.106226635438361e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[12]  <=  0
Ignore_set None
Adding OA cut for expansion_valve_11.ratio_con with dual value 49.42168384836002
Cut expression: - (1.698203736799734*(temps[19] - 4.469333969940723) + 0.1765195615013008*(pressures[18] - 9.922454377563604) - 1.4512121699348615*(temps[18] - 5.23) - 0.34880309983438934*(pressures[19] - 5.021478583693208)) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[13]  <=  0
Ignore_set None
Adding OA cut for cooler_12.heat_duty_con with dual value 700.0
Cut expression: - (cooler_12.heat_duty - 0.162500277830115 - 0.47866566818065137*(flows[19] - 1.119488971458186) - 0.1198972688431717*(temps[19] - 4.469333969940723) + 0.33350990338696107*(flows[20] - 1.119488971458186) + 0.1198972688431717*(temps[20] - 3.114004700158367) + 2.7755575615628914e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[14]  <=  0
Ignore_set None
Adding OA cut for flash_13.antoine_con[H2] with dual value 0.00266015938176
Cut expression: - (53.50240048351598*(flash_13.flash_t - 3.114004700158367) - 4.736258295240611*(flash_13.vapor_pressure[H2] - 65.07467515560805) - 1.4210854715202004e-13) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[15]  <=  0
Ignore_set None
Adding OA cut for flash_13.antoine_con[CO] with dual value -0.017332354441528
Cut expression: 163.3705845424064*(flash_13.flash_t - 3.114004700158367) - 7.1727379041493515*(flash_13.vapor_pressure[CO] - 45.24778046442876) - 2.2737367544323206e-13 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[16]  <=  0
Ignore_set None
Adding OA cut for flash_13.antoine_con[CH3OH] with dual value -0.605303024590355
Cut expression: 1049.0743351512874*(flash_13.flash_t - 3.114004700158367) - 789.6009308402836*(flash_13.vapor_pressure[CH3OH] - 0.437804030509383) - 9.094947017729282e-13 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[17]  <=  0
Ignore_set None
Adding OA cut for flash_13.antoine_con[CH4] with dual value -0.106096562344321
Cut expression: 281.84287898475463*(flash_13.flash_t - 3.114004700158367) - 9.783346874828014*(flash_13.vapor_pressure[CH4] - 32.56150212106599) + 2.2737367544323206e-13 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[18]  <=  0
Ignore_set None
Adding OA cut for flash_13.vle_con[CO] with dual value 53.22560861368646
Cut expression: - (64.86117190184949*(flash_13.vapor_recovery[H2] - 0.992487883964864) - 0.007431222822099182*(flash_13.vapor_pressure[H2] - 65.07467515560805) - 45.39672239796532*(flash_13.vapor_recovery[CO] - 0.989231634248123) + 0.010687472538840122*(flash_13.vapor_pressure[CO] - 45.24778046442876) + 1.4210854715202004e-14) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[19]  <=  0
Ignore_set None
Adding OA cut for flash_13.vle_con[CH3OH] with dual value -825.0645295979771
Cut expression: 30.8545320388272*(flash_13.vapor_recovery[H2] - 0.992487883964864) - 0.003535041010345741*(flash_13.vapor_pressure[H2] - 65.07467515560805) - 0.9233637065492672*(flash_13.vapor_recovery[CH3OH] - 0.470578595140366) + 0.5254443298348437*(flash_13.vapor_pressure[CH3OH] - 0.437804030509383) - 3.552713678800501e-15 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[20]  <=  0
Ignore_set None
Adding OA cut for flash_13.vle_con[CH4] with dual value 94.21374497579305
Cut expression: - (64.5901863476409*(flash_13.vapor_recovery[H2] - 0.992487883964864) - 0.007400175679782017*(flash_13.vapor_pressure[H2] - 65.07467515560805) - 32.80574484957192*(flash_13.vapor_recovery[CH4] - 0.985098691922427) + 0.014789367722218913*(flash_13.vapor_pressure[CH4] - 32.56150212106599) + 1.4210854715202004e-14) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[21]  <=  0
Ignore_set None
Adding OA cut for flash_13.vapor_recovery_con[H2] with dual value -32587.89255010161
Cut expression: component_flows[21,H2] - 0.484837511481972 - 0.488507234511627*(flash_13.vapor_recovery[H2] - 0.992487883964864) - 0.992487883964864*(component_flows[20,H2] - 0.488507234511627) - 2.220446049250313e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[22]  <=  0
Ignore_set None
Adding OA cut for flash_13.vapor_recovery_con[CO] with dual value -18527.45146342491
Cut expression: component_flows[21,CO] - 0.129011209335187 - 0.13041557191329*(flash_13.vapor_recovery[CO] - 0.989231634248123) - 0.989231634248123*(component_flows[20,CO] - 0.13041557191329) - 4.718447854656915e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[23]  <=  0
Ignore_set None
Adding OA cut for flash_13.vapor_recovery_con[CH3OH] with dual value 4481.461850444169
Cut expression: - (component_flows[21,CH3OH] - 0.079996904495884 - 0.169996904495884*(flash_13.vapor_recovery[CH3OH] - 0.470578595140366) - 0.470578595140366*(component_flows[20,CH3OH] - 0.169996904495884) - 6.938893903907228e-17) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[24]  <=  0
Ignore_set None
Adding OA cut for flash_13.vapor_recovery_con[CH4] with dual value -9349.78671027694
Cut expression: component_flows[21,CH4] - 0.325643346145142 - 0.330569260537385*(flash_13.vapor_recovery[CH4] - 0.985098691922427) - 0.985098691922427*(component_flows[20,CH4] - 0.330569260537385) + 5.551115123125783e-17 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[25]  <=  0
Ignore_set None
Adding OA cut for flash_13.total_p_con with dual value 493.5816981319057
Cut expression: - (0.1*(flash_13.flash_p - 5.021478583693208) + 5.021478583693208*(flows[22] - 0.1) - 0.003669723029655*(flash_13.vapor_pressure[H2] - 65.07467515560805) - 65.07467515560805*(component_flows[22,H2] - 0.003669723029655) - 0.001404362578102*(flash_13.vapor_pressure[CO] - 45.24778046442876) - 45.24778046442876*(component_flows[22,CO] - 0.001404362578102) - 0.09*(flash_13.vapor_pressure[CH3OH] - 0.437804030509383) - 0.437804030509383*(component_flows[22,CH3OH] - 0.09) - 0.004925914392243*(flash_13.vapor_pressure[CH4] - 32.56150212106599) - 32.56150212106599*(component_flows[22,CH4] - 0.004925914392243) - 5.10702591327572e-15) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[26]  <=  0
Ignore_set None
Adding OA cut for heater_14.heat_duty_con with dual value 8000.000000000001
Cut expression: - (heater_14.heat_duty - 0.009489009661304 - 0.42839999999999995*(flows[23] - 0.1) + 0.33350990338696107*(flows[22] - 0.1) + 0.010709999999999999*(temps[22] - 3.114004700158367) + 1.1102230246251565e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[27]  <=  0
Ignore_set None
Adding OA cut for splitter_purge_splitter.split_frac_con[H2] with dual value -3416.9694742950733
Cut expression: component_flows[26,H2] - 0.363974176926352 - 0.484837511481972*(splitter_purge_splitter.split_fraction - 0.75071373049048) - 0.75071373049048*(component_flows[21,H2] - 0.484837511481972) - 1.6653345369377348e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[28]  <=  0
Ignore_set None
Adding OA cut for splitter_purge_splitter.split_frac_con[CO] with dual value 2276.610598536916
Cut expression: - (component_flows[26,CO] - 0.096850486235107 - 0.129011209335187*(splitter_purge_splitter.split_fraction - 0.75071373049048) - 0.75071373049048*(component_flows[21,CO] - 0.129011209335187) + 5.273559366969494e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[29]  <=  0
Ignore_set None
Adding OA cut for splitter_purge_splitter.split_frac_con[CH3OH] with dual value -8041.214797767494
Cut expression: component_flows[26,CH3OH] - 0.060054774601796 - 0.079996904495884*(splitter_purge_splitter.split_fraction - 0.75071373049048) - 0.75071373049048*(component_flows[21,CH3OH] - 0.079996904495884) + 2.7755575615628914e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[30]  <=  0
Ignore_set None
Adding OA cut for splitter_purge_splitter.split_frac_con[CH4] with dual value 6160.847461437857
Cut expression: - (component_flows[26,CH4] - 0.244464931194022 - 0.325643346145142*(splitter_purge_splitter.split_fraction - 0.75071373049048) - 0.75071373049048*(component_flows[21,CH4] - 0.325643346145142) - 2.220446049250313e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[31]  <=  0
Ignore_set None
Adding OA cut for heater_15.heat_duty_con with dual value 8000.000000000001
Cut expression: - (heater_15.heat_duty - 0.024115805884994 - 0.42839999999999995*(flows[25] - 0.254144602500909) + 0.33350990338696107*(flows[24] - 0.254144602500909) + 0.02721888692784735*(temps[24] - 3.114004700158367) + 3.8510861166685117e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[32]  <=  0
Ignore_set None
Adding OA cut for single_stage_recycle_compressor_disjunct.compressor_16.t_ratio_con with dual value -242.98980050803118
Cut expression: temps[29] - 3.733684357483555 - 3.114004700158367*(single_stage_recycle_compressor_disjunct.compressor_16.p_ratio - 1.198997662814598) - 1.198997662814598*(temps[27] - 3.114004700158367) + 4.440892098500626e-16 - _gdpopt_cuts.GDPopt_OA_slacks.slacks[33]  <=  0
Ignore_set None
Adding OA cut for single_stage_recycle_compressor_disjunct.compressor_16.electricity_requirement_con with dual value 175.255
Cut expression: - (single_stage_recycle_compressor_disjunct.compressor_16.electricity_requirement - 0.197294970247241 - 0.2577858781610176*(flows[27] - 0.765344368957277) - 0.06335731292801447*(temps[27] - 3.114004700158367) - 0.9914436554516582*(single_stage_recycle_compressor_disjunct.compressor_16.p_ratio - 1.198997662814598) - 5.273559366969494e-16) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[34]  <=  0
Ignore_set None
Adding OA cut for single_stage_recycle_compressor_disjunct.compressor_16.p_ratio_con with dual value 401.67518927472724
Cut expression: - (0.03642101099675059*(pressures[29] - 11.024949308404004) - 1.4512121699348615*(single_stage_recycle_compressor_disjunct.compressor_16.p_ratio - 1.198997662814598) - 0.07996445535065386*(pressures[27] - 5.021478583693208)) - _gdpopt_cuts.GDPopt_OA_slacks.slacks[35]  <=  0
Added 35 OA cuts
Adding no-good cut: 1  <=  1 - cheap_feed_disjunct.binary_indicator_var + 1 - single_stage_feed_compressor_disjunct.binary_indicator_var + 1 - expensive_reactor.binary_indicator_var + 1 - single_stage_recycle_compressor_disjunct.binary_indicator_var + expensive_feed_disjunct.binary_indicator_var + two_stage_feed_compressor_disjunct.binary_indicator_var + cheap_reactor.binary_indicator_var + two_stage_recycle_compressor_disjunct.binary_indicator_var
3 disjuncts need to be covered.
Solved set covering MIP
Fixed the following Disjuncts to 'True': cheap_feed_disjunct, two_stage_feed_compressor_disjunct, cheap_reactor, two_stage_recycle_compressor_disjunct
Fixed the following Boolean variables: 
Solving nonlinear subproblem for fixed binaries and logical realizations.
--- Job model.gms Start 06/26/24 18:02:53 45.7.0 64fbf3ce LEX-LEG x86 64bit/Linux
--- Applying:
    /home/yirangpark/gams45.7_linux_x64_64_sfx/gmsprmun.txt
--- GAMS Parameters defined
    Input /tmp/tmp7jcm6_pb/model.gms
    Output /tmp/tmp7jcm6_pb/output.lst
    ScrDir /tmp/tmp7jcm6_pb/225a/
    SysDir /home/yirangpark/gams45.7_linux_x64_64_sfx/
    CurDir /tmp/tmp7jcm6_pb/
    LogOption 3
Licensee: Prof. Ignacio E. Grossmann                     G240103|0002AS-GEN
          Carnegie Mellon University, Dept. of Chemical Engineering  DCE375
          /home/yirangpark/gams45.7_linux_x64_64_sfx/gamslice.txt
          License Admin: Ignacio E. Grossmann,                             
          Evaluation license: Not for commercial or production use
          The evaluation period of the license will expire on Nov 28, 2024
Processor information: 1 socket(s), 6 core(s), and 12 thread(s) available
GAMS 45.7.0   Copyright (C) 1987-2024 GAMS Development. All rights reserved
--- Starting compilation
--- model.gms(1584) 2 Mb
--- Starting execution: elapsed 0:00:00.002
--- model.gms(1112) 3 Mb
--- Generating NLP model GAMS_MODEL
--- model.gms(1113) 5 Mb
--- Reset Solvelink = 2
---   207 rows  211 columns  586 non-zeroes
---   345 nl-code  125 nl-non-zeroes
--- Range statistics (absolute non-zero finite values)
--- RHS       [min, max] : [ 1.000E-02, 3.627E+03] - Zero values observed as well
--- Bound     [min, max] : [ 1.000E-03, 8.000E+01] - Zero values observed as well
--- Matrix    [min, max] : [ 1.404E-03, 8.000E+03] - Zero values observed as well
--- model.gms(1113) 3 Mb
--- Executing BARON (Solvelink=2): elapsed 0:00:00.004

GAMS/BARON       45.7.0 64fbf3ce Jan 18, 2024          LEG x86 64bit/Linux    

===========================================================================
 BARON version 23.6.22. Built: LNX-64 Thu Jun 22 20:08:45 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as: 

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC, ILOG CPLEX                             
 For NLP: MINOS, SNOPT, External NLP, IPOPT, FILTERSQP
===========================================================================
 Doing local search
 Preprocessing found feasible solution with value 242.054
 Solving bounding LP
 Starting multi-start local search
 Preprocessing found feasible solution with value 242.054
 Preprocessing found feasible solution with value 242.054
 Done with local search
===========================================================================
  Iteration    Open nodes         Time (s)    Lower bound      Upper bound
          1             1             2.19     -4468.63          242.054       
*      1922           631            12.85     -3825.84          242.052       
       6884          1842            42.84     -3393.01          242.052       
      10208          2570            72.85     -3215.99          242.052       
      10600+         2588            98.85     -3197.06          242.052       
      10613+         2581           102.68     -3195.87          242.052       
      10638+         2570           120.01     -3195.66          242.052       
      10638+         2570           123.57     -3195.66          242.052       
      10639+         2569           127.77     -3194.12          242.052       
      10652+         2564           157.76     -3193.92          242.052       
      13091          3047           187.76     -3093.04          242.052       
      17530+         3833           217.78     -2945.71          242.052       
      17652+         3768           247.78     -2938.66          242.052       
      17764+         3707           277.80     -2936.55          242.052       
      17895+         3639           307.81     -2932.59          242.052       
      18036+         3563           337.81     -2928.46          242.052       
      18153+         3497           367.81     -2923.23          242.052       
*     18191          3479           376.24     -2922.34          242.051       
      18279+         3432           406.24     -2919.51          242.051       
      18381+         3377           436.24     -2914.65          242.051       
      18469+         3329           466.25     -2913.38          242.051     
^CBARON: Cntrl-C Abort
---  The best solution found is:

Solution      = 242.050964343  found at node 18191
Best possible = -2886.74145951
Absolute gap  = 3128.792423853  optca = 1E-9
Relative gap  = NA  optcr = 0.0001

--- Reading solution for model GAMS_MODEL
--- Executing after solve: elapsed 15:51:06.606
--- model.gms(1116) 3 Mb
--- model.gms(1584) 5 Mb
--- Putfile results /tmp/tmp7jcm6_pb/results.dat
--- Putfile statresults /tmp/tmp7jcm6_pb/resultsstat.dat
*** Status: Normal completion
--- Job model.gms Stop 06/27/24 09:53:59 elapsed 15:51:06.607

Solved in 0 iterations and 4524.01274 seconds
Optimal objective value 1288.4568114690
Relative optimality gap inf%
bernalde commented 5 months ago

BARON is certainly converging to a better solution than any we have seen in IPOPT so far, we need to play with the NLP solvers and initialization in this case.