Ipopt says solution is infeasible although summary reveals it isn't

3,868 views
Skip to first unread message

Thomas Frei

unread,
Jun 25, 2015, 5:43:42 AM6/25/15
to pyomo...@googlegroups.com
Hi

I am using IPOPT to solve a large NLP for several datasets. Unfortunately IPOPT has problems of finding a feasible solution, although there should be plenty. For some particular datasets IPOPT says that the problem is infeasible, but when I look at the --summary output all constraints and boundaries are okay. What do I do wrong? You can find the solver output below (although quite large sorry ;) ) 


pyomo --solver=ipopt --solver-options="max_iter=300000 linear_solver=MA27 acceptable_tol=1e-2" Gas_Model_v6.py IR_Modeldata_Free_1h.dat --summary
WARNING: converting to the 'pyomo solve' subcommand
[    0.00] Setting up Pyomo environment
[    0.00] Applying Pyomo preprocessing actions
[    0.05] Creating model
[    0.15] Applying solver
[   23.48] Processing results
    Number of solutions: 1
    Solution Information
      Gap: <undefined>
      Status: infeasible
      Function Value: -1.62635623764e-28
    Solver results file: results.yml
WARNING - Loading a SolverResults object with a warning status

==========================================================
Solution Summary
==========================================================

Model Gas network

  Variables:
    m_left_p : Massflow at left node in passive pipeline arc a [10^3 kg/h]
        Size=12, Index=m_left_p_index, Domain=Reals
        Key          : Lower : Value          : Upper : Initial : Fixed : Stale
        ('G01_0', 1) :  None :  510.638300426 :  None :       1 : False : False
        ('G02_0', 1) :  None :  456.298217529 :  None :       1 : False : False
        ('G03_0', 1) :  None :   1112.8861456 :  None :       1 : False : False
        ('G04_0', 1) :  None :  1037.60098164 :  None :       1 : False : False
        ('G05_0', 1) :  None : -657.619281978 :  None :       1 : False : False
        ('G06_0', 1) :  None :  602.400364118 :  None :       1 : False : False
        ('G07_0', 1) :  None :  628.601715563 :  None :       1 : False : False
        ('G08_0', 1) :  None : -2165.52685757 :  None :       1 : False : False
        ('G09_0', 1) :  None : -3721.19132971 :  None :       1 : False : False
        ('G10_0', 1) :  None :  1268.63805044 :  None :       1 : False : False
        ('G11_0', 1) :  None :  315.332378696 :  None :       1 : False : False
        ('G12_0', 1) :  None :  749.614536064 :  None :       1 : False : False
    m_right_p : Massflow at right node in passive pipeline arc a [10^3 kg/h]
        Size=12, Index=m_right_p_index, Domain=Reals
        Key          : Lower : Value          : Upper : Initial : Fixed : Stale
        ('G01_0', 1) :  None :  484.559540848 :  None :       1 : False : False
        ('G02_0', 1) :  None :  407.350482319 :  None :       1 : False : False
        ('G03_0', 1) :  None :  386.131219666 :  None :       1 : False : False
        ('G04_0', 1) :  None :  49.6223923404 :  None :       1 : False : False
        ('G05_0', 1) :  None : -905.108143846 :  None :       1 : False : False
        ('G06_0', 1) :  None :  6.92477617021 :  None :       1 : False : False
        ('G07_0', 1) :  None :  29.6627131915 :  None :       1 : False : False
        ('G08_0', 1) :  None : -2368.95596353 :  None :       1 : False : False
        ('G09_0', 1) :  None : -4845.60178089 :  None :       1 : False : False
        ('G10_0', 1) :  None :  1168.16338795 :  None :       1 : False : False
        ('G11_0', 1) :  None :   77.819346383 :  None :       1 : False : False
        ('G12_0', 1) :  None :  707.620004706 :  None :       1 : False : False
    lp : Line packing [10^3 kg]
        Size=12, Index=lp_index, Domain=Reals
        Key          : Lower         : Value         : Upper         : Initial : Fixed : Stale
        ('G01_0', 1) : 1025.06993836 : 1051.04359358 : 3416.89979455 :    None : False : False
        ('G02_0', 1) : 319.895541553 : 368.806396123 : 1066.31847184 :    None : False : False
        ('G03_0', 1) :   679.7780258 : 1406.39231251 : 2265.92675267 :    None : False : False
        ('G04_0', 1) : 676.816030045 : 1664.62815653 : 2256.05343348 :    None : False : False
        ('G05_0', 1) : 888.598726536 : 1135.97399101 : 2961.99575512 :    None : False : False
        ('G06_0', 1) : 787.890870862 :   1383.228136 : 2626.30290287 :    None : False : False
        ('G07_0', 1) : 2100.05499038 : 2698.72412034 : 7000.18330127 :    None : False : False
        ('G08_0', 1) : 3669.91274059 :  3872.9545511 : 12233.0424686 :    None : False : False
        ('G09_0', 1) : 909.332696822 : 2033.53979402 : 3031.10898941 :    None : False : False
        ('G10_0', 1) : 3723.22866419 : 3823.32099457 :  12410.762214 :    None : False : False
        ('G11_0', 1) : 3760.25361112 : 3997.36690675 : 12534.1787037 :    None : False : False
        ('G12_0', 1) : 4140.87006566 : 4182.44635238 : 13802.9002189 :    None : False : False
    lp_loss : Line packing loss [10^3 kg/h]
        Size=12, Index=lp_loss_index, Domain=NonNegativeReals
        Key          : Lower : Value           : Upper : Initial : Fixed : Stale
        ('G01_0', 1) :     0 :  0.105104359358 :  None :    None : False : False
        ('G02_0', 1) :     0 : 0.0368806396123 :  None :    None : False : False
        ('G03_0', 1) :     0 :  0.140639231251 :  None :    None : False : False
        ('G04_0', 1) :     0 :  0.166462815653 :  None :    None : False : False
        ('G05_0', 1) :     0 :  0.113597399101 :  None :    None : False : False
        ('G06_0', 1) :     0 :    0.1383228136 :  None :    None : False : False
        ('G07_0', 1) :     0 :  0.269872412034 :  None :    None : False : False
        ('G08_0', 1) :     0 :   0.38729545511 :  None :    None : False : False
        ('G09_0', 1) :     0 :  0.203353979402 :  None :    None : False : False
        ('G10_0', 1) :     0 :  0.382332099457 :  None :    None : False : False
        ('G11_0', 1) :     0 :  0.399736690675 :  None :    None : False : False
        ('G12_0', 1) :     0 :  0.418244635238 :  None :    None : False : False
    c_loss : Costs of line loss [Euro/h]
        Size=12, Index=c_loss_index, Domain=Reals
        Key          : Lower : Value             : Upper : Initial : Fixed : Stale
        ('G01_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G02_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G03_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G04_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G05_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G06_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G07_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G08_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G09_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G10_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G11_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
        ('G12_0', 1) :  None : -1.3552968647e-29 :  None :    None : False : False
    m_a_right : Massflow at right node of active arc [10^3 kg/h]
        Size=6, Index=m_a_right_index, Domain=Reals
        Key           : Lower : Value              : Upper : Initial : Fixed : Stale
        ('CS01_0', 1) :  None :     -484.559540848 :  None :       1 : False : False
        ('CS01_1', 1) :  None :      456.298217529 :  None :       1 : False : False
        ('CS02_0', 1) :  None :     -407.350482319 :  None :       1 : False : False
        ('CS02_1', 1) :  None : -1.98484584935e-14 :  None :       1 : False : False
        ('CS02_2', 1) :  None :       1112.8861456 :  None :       1 : False : False
        ('CS03_0', 1) :  None :      4845.60178089 :  None :       1 : False : False
    m_a_left : Massflow at left node of active arc [10^3 kg/h]
        Size=6, Index=m_a_left_index, Domain=Reals
        Key           : Lower : Value              : Upper : Initial : Fixed : Stale
        ('CS01_0', 1) :  None :     -483.623315623 :  None :       1 : False : False
        ('CS01_1', 1) :  None :      457.136767538 :  None :       1 : False : False
        ('CS02_0', 1) :  None :     -406.785958548 :  None :       1 : False : False
        ('CS02_1', 1) :  None : -4.99134066586e-12 :  None :       1 : False : False
        ('CS02_2', 1) :  None :      1113.40004666 :  None :       1 : False : False
        ('CS03_0', 1) :  None :      4846.34291508 :  None :       1 : False : False
    PW : Gas turbine Power consumption [W]
        Size=6, Index=PW_index, Domain=NonNegativeReals
        Key           : Lower : Value             : Upper    : Initial : Fixed : Stale
        ('CS01_0', 1) :     0 :     9778352.34415 : 20000000 :    None : False : False
        ('CS01_1', 1) :     0 :     8758188.98546 : 20000000 :    None : False : False
        ('CS02_0', 1) :     0 :     5896137.16458 : 20000000 :    None : False : False
        ('CS02_1', 1) :     0 : 3.00171269815e-07 : 20000000 :    None : False : False
        ('CS02_2', 1) :     0 :      5367411.0082 : 20000000 :    None : False : False
        ('CS03_0', 1) :     0 :     7740734.95151 : 10000000 :    None : False : False
    rc_cs : Gas turbine running costs [Euro/h]
        Size=6, Index=rc_cs_index, Domain=NonNegativeReals
        Key           : Lower : Value             : Upper : Initial : Fixed : Stale
        ('CS01_0', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
        ('CS01_1', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
        ('CS02_0', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
        ('CS02_1', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
        ('CS02_2', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
        ('CS03_0', 1) :     0 : 1.25591045122e-15 :  None :    None : False : False
    m_fuel : Gas turbine fuel consumption [10^3 kg/h]
        Size=6, Index=m_fuel_index, Domain=NonNegativeReals
        Key           : Lower : Value             : Upper : Initial : Fixed : Stale
        ('CS01_0', 1) :     0 :     0.93622522444 :  None :    None : False : False
        ('CS01_1', 1) :     0 :    0.838550009246 :  None :    None : False : False
        ('CS02_0', 1) :     0 :    0.564523771077 :  None :    None : False : False
        ('CS02_1', 1) :     0 : 2.84967244904e-14 :  None :    None : False : False
        ('CS02_2', 1) :     0 :    0.513901053976 :  None :    None : False : False
        ('CS03_0', 1) :     0 :    0.741134197485 :  None :    None : False : False
    p_ss : Storage Pressure
        Size=1, Index=p_ss_index, Domain=PositiveReals
        Key           : Lower : Value         : Upper : Initial : Fixed : Stale
        ('SS01_0', 1) :     0 : 3.51789105703 :  None :     3.1 : False : False
    m_ss : Storage Site contained mass [10^6 kg]
        Size=1, Index=m_ss_index, Domain=NonNegativeReals
        Key           : Lower         : Value         : Upper         : Initial : Fixed : Stale
        ('SS01_0', 1) : 5567.16704337 : 8160.28631454 : 18557.2234779 :    None : False : False
    m_flow_ss : Gas Storage In-/Outflow [kg/h]
        Size=1, Index=m_flow_ss_index, Domain=Reals
        Key           : Lower : Value          : Upper : Initial : Fixed : Stale
        ('SS01_0', 1) :  None : -4892015.73976 :  None :    None : False : False
    PW_SS : Power consumption for storage filling compressor[W]
        Size=1, Index=PW_SS_index, Domain=Reals
        Key           : Lower    : Value         : Upper   : Initial : Fixed : Stale
        ('SS01_0', 1) : -8000000 : 308537.316509 : 8000000 :    None : False : False
    p : Pressure at node points [MPa]
        Size=18, Index=p_index, Domain=PositiveReals
        Key          : Lower : Value          : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  0.01 :  0.52486373542 :     8 :       8 : False : False
        ('N02_0', 1) :  0.01 : 0.526527335282 :     8 :       7 : False : False
        ('N02_1', 1) :  0.01 : 0.287467965813 :     8 :       6 : False : False
        ('N02_2', 1) :  0.01 : 0.872147464442 :     8 :       6 : False : False
        ('N03_0', 1) :  0.01 :  1.00965195531 :     8 :       6 : False : False
        ('N03_1', 1) :  0.01 :   0.6600144019 :     8 :       4 : False : False
        ('N03_2', 1) :  0.01 : 0.120513074636 :     8 :       4 : False : False
        ('N03_3', 1) :  0.01 :  1.15283772591 :     8 :       8 : False : False
        ('N04_0', 1) :  0.01 : 0.661128182556 :     8 :       5 : False : False
        ('N05_0', 1) :  0.01 : 0.153076160472 :     8 :       6 : False : False
        ('N06_0', 1) :  0.01 : 0.648947173052 :     8 :       5 : False : False
        ('N07_0', 1) :  0.01 : 0.941184139841 :     8 :       6 : False : False
        ('N08_0', 1) :  0.01 : 0.635456905076 :     8 :       7 : False : False
        ('N09_0', 1) :  0.01 :   1.9479376766 :     8 :       5 : False : False
        ('N10_0', 1) :  0.01 :  3.51822121936 :     8 :       5 : False : False
        ('N10_1', 1) :  0.01 :  3.67791969878 :     8 :       6 : False : False
        ('N11_0', 1) :  0.01 :  1.35814778797 :     8 :       4 : False : False
        ('N12_0', 1) :  0.01 :  1.21154975046 :     8 :       3 : False : False
    mass_p_right : Size=18, Index=mass_p_right_index, Domain=Reals
        Key          : Lower : Value              : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  None :  5.50970443566e-25 :  None :    None : False : False
        ('N02_0', 1) :  None :  4.24696128968e-25 :  None :    None : False : False
        ('N02_1', 1) :  None :      484.559540848 :  None :    None : False : False
        ('N02_2', 1) :  None :  3.43936409461e-25 :  None :    None : False : False
        ('N03_0', 1) :  None :      707.620004706 :  None :    None : False : False
        ('N03_1', 1) :  None :      407.350482319 :  None :    None : False : False
        ('N03_2', 1) :  None :  3.96969090476e-15 :  None :    None : False : False
        ('N03_3', 1) :  None :  7.18586764748e-26 :  None :    None : False : False
        ('N04_0', 1) :  None :      6.92477617021 :  None :    None : False : False
        ('N05_0', 1) :  None :      49.6223923404 :  None :    None : False : False
        ('N06_0', 1) :  None :      29.6627131915 :  None :    None : False : False
        ('N07_0', 1) :  None :     -905.108143846 :  None :    None : False : False
        ('N08_0', 1) :  None :      386.131219666 :  None :    None : False : False
        ('N09_0', 1) :  None :     -2368.95596353 :  None :    None : False : False
        ('N10_0', 1) :  None : -2.61789905375e-26 :  None :    None : False : False
        ('N10_1', 1) :  None :     -4845.60178089 :  None :    None : False : False
        ('N11_0', 1) :  None :      1168.16338795 :  None :    None : False : False
        ('N12_0', 1) :  None :       77.819346383 :  None :    None : False : False
    mass_p_left : Size=18, Index=mass_p_left_index, Domain=Reals
        Key          : Lower : Value              : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  None :      510.638300426 :  None :    None : False : False
        ('N02_0', 1) :  None : -4.24696708288e-25 :  None :    None : False : False
        ('N02_1', 1) :  None : -4.95950905913e-25 :  None :    None : False : False
        ('N02_2', 1) :  None :      456.298217529 :  None :    None : False : False
        ('N03_0', 1) :  None : -2.13692280961e-25 :  None :    None : False : False
        ('N03_1', 1) :  None : -2.73406807795e-25 :  None :    None : False : False
        ('N03_2', 1) :  None : -3.96969090476e-15 :  None :    None : False : False
        ('N03_3', 1) :  None :       1112.8861456 :  None :    None : False : False
        ('N04_0', 1) :  None : -2.43177103305e-26 :  None :    None : False : False
        ('N05_0', 1) :  None : -7.20843672241e-27 :  None :    None : False : False
        ('N06_0', 1) :  None : -2.64533204979e-26 :  None :    None : False : False
        ('N07_0', 1) :  None :     -934.524777889 :  None :    None : False : False
        ('N08_0', 1) :  None :      379.981699666 :  None :    None : False : False
        ('N09_0', 1) :  None :     -2452.55327927 :  None :    None : False : False
        ('N10_0', 1) :  None :  2.61791877527e-26 :  None :    None : False : False
        ('N10_1', 1) :  None :  1.75940474359e-26 :  None :    None : False : False
        ('N11_0', 1) :  None :      1064.94691476 :  None :    None : False : False
        ('N12_0', 1) :  None : -5.89138062542e-26 :  None :    None : False : False
    mass_a_right : Size=18, Index=mass_a_right_index, Domain=Reals
        Key          : Lower : Value              : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  None :  5.50970443566e-25 :  None :    None : False : False
        ('N02_0', 1) :  None :  4.24696128968e-25 :  None :    None : False : False
        ('N02_1', 1) :  None :     -484.559540848 :  None :    None : False : False
        ('N02_2', 1) :  None :      456.298217529 :  None :    None : False : False
        ('N03_0', 1) :  None :   2.1366509107e-25 :  None :    None : False : False
        ('N03_1', 1) :  None :     -407.350482319 :  None :    None : False : False
        ('N03_2', 1) :  None : -1.58787675887e-14 :  None :    None : False : False
        ('N03_3', 1) :  None :       1112.8861456 :  None :    None : False : False
        ('N04_0', 1) :  None :  2.42664307854e-26 :  None :    None : False : False
        ('N05_0', 1) :  None :  7.12080845968e-27 :  None :    None : False : False
        ('N06_0', 1) :  None :  2.60758628278e-26 :  None :    None : False : False
        ('N07_0', 1) :  None :  6.46685509758e-26 :  None :    None : False : False
        ('N08_0', 1) :  None :  1.46957607396e-26 :  None :    None : False : False
        ('N09_0', 1) :  None :  8.00730606746e-26 :  None :    None : False : False
        ('N10_0', 1) :  None : -2.61789905375e-26 :  None :    None : False : False
        ('N10_1', 1) :  None :      4845.60178089 :  None :    None : False : False
        ('N11_0', 1) :  None :   1.6712187979e-25 :  None :    None : False : False
        ('N12_0', 1) :  None :  5.87756991307e-26 :  None :    None : False : False
    mass_a_left : Size=18, Index=mass_a_left_index, Domain=Reals
        Key          : Lower : Value              : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  None : -5.50937016465e-25 :  None :    None : False : False
        ('N02_0', 1) :  None :     -26.4865480851 :  None :    None : False : False
        ('N02_1', 1) :  None : -4.95950905913e-25 :  None :    None : False : False
        ('N02_2', 1) :  None : -3.43936409461e-25 :  None :    None : False : False
        ('N03_0', 1) :  None :       706.61408811 :  None :    None : False : False
        ('N03_1', 1) :  None : -2.73406807795e-25 :  None :    None : False : False
        ('N03_2', 1) :  None : -3.96969090476e-15 :  None :    None : False : False
        ('N03_3', 1) :  None : -7.18586764748e-26 :  None :    None : False : False
        ('N04_0', 1) :  None : -2.43177103305e-26 :  None :    None : False : False
        ('N05_0', 1) :  None : -7.20843672241e-27 :  None :    None : False : False
        ('N06_0', 1) :  None : -2.64533204979e-26 :  None :    None : False : False
        ('N07_0', 1) :  None : -6.46571798787e-26 :  None :    None : False : False
        ('N08_0', 1) :  None : -1.47125639657e-26 :  None :    None : False : False
        ('N09_0', 1) :  None : -8.00628054828e-26 :  None :    None : False : False
        ('N10_0', 1) :  None :      4846.34291508 :  None :    None : False : False
        ('N10_1', 1) :  None :  1.75940474359e-26 :  None :    None : False : False
        ('N11_0', 1) :  None :   -1.670949119e-25 :  None :    None : False : False
        ('N12_0', 1) :  None : -5.89138062542e-26 :  None :    None : False : False
    flow_ss : Size=18, Index=flow_ss_index, Domain=Reals
        Key          : Lower : Value              : Upper : Initial : Fixed : Stale
        ('N01_0', 1) :  None :  -7.2540173646e-28 :  None :       0 : False : False
        ('N02_0', 1) :  None : -6.37160232652e-28 :  None :       0 : False : False
        ('N02_1', 1) :  None : -9.43987118444e-28 :  None :       0 : False : False
        ('N02_2', 1) :  None : -8.12836137946e-28 :  None :       0 : False : False
        ('N03_0', 1) :  None :  1.14831526201e-28 :  None :       0 : False : False
        ('N03_1', 1) :  None :  -1.8560632686e-29 :  None :       0 : False : False
        ('N03_2', 1) :  None : -3.96968837763e-18 :  None :       0 : False : False
        ('N03_3', 1) :  None :  1.83380656913e-28 :  None :       0 : False : False
        ('N04_0', 1) :  None :  7.02600402724e-30 :  None :       0 : False : False
        ('N05_0', 1) :  None : -1.86729079278e-28 :  None :       0 : False : False
        ('N06_0', 1) :  None :  1.47419156468e-28 :  None :       0 : False : False
        ('N07_0', 1) :  None : -2.98012590079e-29 :  None :       0 : False : False
        ('N08_0', 1) :  None : -1.44250092463e-28 :  None :       0 : False : False
        ('N09_0', 1) :  None : -1.34246294694e-28 :  None :       0 : False : False
        ('N10_0', 1) :  None :     -4892015.73976 :  None :       0 : False : False
        ('N10_1', 1) :  None :  3.50228148247e-29 :  None :       0 : False : False
        ('N11_0', 1) :  None :  1.06468017776e-28 :  None :       0 : False : False
        ('N12_0', 1) :  None :  1.50156420169e-28 :  None :       0 : False : False

  Objectives:
    sc : Size=1, Index=None, Active=True
        Key  : Active : Value
        None :   True : -1.62635623764e-28

  Constraints:
    predef_flow_dir : Size=10
        Key          : Lower : Body           : Upper
        ('G01_0', 1) :   0.0 :  510.638300426 :  None
        ('G02_0', 1) :   0.0 :  456.298217529 :  None
        ('G03_0', 1) :   0.0 :   1112.8861456 :  None
        ('G04_0', 1) :   0.0 :  1037.60098164 :  None
        ('G05_0', 1) :  None : -657.619281978 :   0.0
        ('G06_0', 1) :   0.0 :  602.400364118 :  None
        ('G07_0', 1) :   0.0 :  628.601715563 :  None
        ('G08_0', 1) :  None : -2165.52685757 :   0.0
        ('G10_0', 1) :   0.0 :  1268.63805044 :  None
        ('G11_0', 1) :   0.0 :  315.332378696 :  None
    predef_flow_dir2 : Size=10
        Key          : Lower : Body           : Upper
        ('G01_0', 1) :   0.0 :  484.559540848 :  None
        ('G02_0', 1) :   0.0 :  407.350482319 :  None
        ('G03_0', 1) :   0.0 :  386.131219666 :  None
        ('G04_0', 1) :   0.0 :  49.6223923404 :  None
        ('G05_0', 1) :  None : -905.108143846 :   0.0
        ('G06_0', 1) :   0.0 :  6.92477617021 :  None
        ('G07_0', 1) :   0.0 :  29.6627131915 :  None
        ('G08_0', 1) :  None : -2368.95596353 :   0.0
        ('G10_0', 1) :   0.0 :  1168.16338795 :  None
        ('G11_0', 1) :   0.0 :   77.819346383 :  None
    panh_con : Size=12
        Key          : Lower : Body               : Upper
        ('G01_0', 1) :   0.0 : -1.13686837722e-13 :   0.0
        ('G02_0', 1) :   0.0 :  2.27373675443e-13 :   0.0
        ('G03_0', 1) :   0.0 :  4.54747350886e-13 :   0.0
        ('G04_0', 1) :   0.0 : -1.13686837722e-13 :   0.0
        ('G05_0', 1) :   0.0 :                0.0 :   0.0
        ('G06_0', 1) :   0.0 :                0.0 :   0.0
        ('G07_0', 1) :   0.0 :                0.0 :   0.0
        ('G08_0', 1) :   0.0 :                0.0 :   0.0
        ('G09_0', 1) :   0.0 :                0.0 :   0.0
        ('G10_0', 1) :   0.0 : -4.54747350886e-13 :   0.0
        ('G11_0', 1) :   0.0 :  4.54747350886e-13 :   0.0
        ('G12_0', 1) :   0.0 :  4.54747350886e-13 :   0.0
    line_loss : Size=12
        Key          : Lower : Body               : Upper
        ('G01_0', 1) :   0.0 :  1.38777878078e-17 :   0.0
        ('G02_0', 1) :   0.0 :                0.0 :   0.0
        ('G03_0', 1) :   0.0 :                0.0 :   0.0
        ('G04_0', 1) :   0.0 : -2.77555756156e-17 :   0.0
        ('G05_0', 1) :   0.0 :  1.38777878078e-17 :   0.0
        ('G06_0', 1) :   0.0 :                0.0 :   0.0
        ('G07_0', 1) :   0.0 :                0.0 :   0.0
        ('G08_0', 1) :   0.0 : -5.55111512313e-17 :   0.0
        ('G09_0', 1) :   0.0 :                0.0 :   0.0
        ('G10_0', 1) :   0.0 :                0.0 :   0.0
        ('G11_0', 1) :   0.0 :                0.0 :   0.0
        ('G12_0', 1) :   0.0 : -5.55111512313e-17 :   0.0
    cost_loss : Size=12
        Key          : Lower : Body              : Upper
        ('G01_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G02_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G03_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G04_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G05_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G06_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G07_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G08_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G09_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G10_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G11_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
        ('G12_0', 1) :   0.0 : -1.3552968647e-29 :   0.0
    dir_con : Size=12
        Key          : Lower : Body           : Upper
        ('G01_0', 1) :   0.0 :  1.05381951521 :  None
        ('G02_0', 1) :   0.0 :  1.12016123052 :  None
        ('G03_0', 1) :   0.0 :  2.88214495209 :  None
        ('G04_0', 1) :   0.0 :  20.9099346627 :  None
        ('G05_0', 1) :   0.0 : 0.726564318804 :  None
        ('G06_0', 1) :   0.0 :  86.9920340111 :  None
        ('G07_0', 1) :   0.0 :  21.1916459396 :  None
        ('G08_0', 1) :   0.0 : 0.914127105319 :  None
        ('G09_0', 1) :   0.0 : 0.767952361333 :  None
        ('G10_0', 1) :   0.0 :  1.08601079568 :  None
        ('G11_0', 1) :   0.0 :  4.05210777721 :  None
        ('G12_0', 1) :   0.0 :  1.05934616189 :  None
    lp_acc : Size=12
        Key          : Lower : Body               : Upper
        ('G01_0', 1) :   0.0 :                0.0 :   0.0
        ('G02_0', 1) :   0.0 :                0.0 :   0.0
        ('G03_0', 1) :   0.0 :                0.0 :   0.0
        ('G04_0', 1) :   0.0 : -1.13686837722e-13 :   0.0
        ('G05_0', 1) :   0.0 : -1.13686837722e-13 :   0.0
        ('G06_0', 1) :   0.0 :                0.0 :   0.0
        ('G07_0', 1) :   0.0 :                0.0 :   0.0
        ('G08_0', 1) :   0.0 :  4.54747350886e-13 :   0.0
        ('G09_0', 1) :   0.0 : -1.13686837722e-13 :   0.0
        ('G10_0', 1) :   0.0 :                0.0 :   0.0
        ('G11_0', 1) :   0.0 :                0.0 :   0.0
        ('G12_0', 1) :   0.0 :  9.09494701773e-13 :   0.0
    predef_c_dir : Size=5
        Key           : Lower : Body               : Upper
        ('CS01_0', 1) :  None :     -483.623315623 :   0.0
        ('CS01_1', 1) :   0.0 :      457.136767538 :  None
        ('CS02_0', 1) :  None :     -406.785958548 :   0.0
        ('CS02_1', 1) :  None : -4.99134066586e-12 :   0.0
        ('CS02_2', 1) :   0.0 :      1113.40004666 :  None
    predef_c_dir2 : Size=5
        Key           : Lower : Body               : Upper
        ('CS01_0', 1) :  None :     -484.559540848 :   0.0
        ('CS01_1', 1) :   0.0 :      456.298217529 :  None
        ('CS02_0', 1) :  None :     -407.350482319 :   0.0
        ('CS02_1', 1) :  None : -1.98484584935e-14 :   0.0
        ('CS02_2', 1) :   0.0 :       1112.8861456 :  None
    a_sign : Size=6
        Key           : Lower : Body           : Upper
        ('CS01_0', 1) :   0.0 : 0.998067884036 :  None
        ('CS01_1', 1) :   0.0 :  1.00183772361 :  None
        ('CS02_0', 1) :   0.0 : 0.998614157107 :  None
        ('CS02_1', 1) :   0.0 :  251.472459058 :  None
        ('CS02_2', 1) :   0.0 :  1.00046177325 :  None
        ('CS03_0', 1) :   0.0 :  1.00015294988 :  None
    a_balance : Size=6
        Key           : Lower : Body               : Upper
        ('CS01_0', 1) :   0.0 : -2.28705943073e-14 :   0.0
        ('CS01_1', 1) :   0.0 :  2.22044604925e-14 :   0.0
        ('CS02_0', 1) :   0.0 : -1.46549439251e-14 :   0.0
        ('CS02_1', 1) :   0.0 : -4.99998893186e-12 :   0.0
        ('CS02_2', 1) :   0.0 : -7.66053886991e-15 :   0.0
        ('CS03_0', 1) :   0.0 :  1.55209178843e-13 :   0.0
    arc_active : Size=6
        Key           : Lower : Body               : Upper
        ('CS01_0', 1) :   0.0 :  1.86264514923e-09 :   0.0
        ('CS01_1', 1) :   0.0 :  9.31322574615e-09 :   0.0
        ('CS02_0', 1) :   0.0 :  9.31322574615e-09 :   0.0
        ('CS02_1', 1) :   0.0 :  7.72896921224e-13 :   0.0
        ('CS02_2', 1) :   0.0 :  7.45058059692e-09 :   0.0
        ('CS03_0', 1) :   0.0 : -7.91624188423e-08 :   0.0
    GT_CS : Size=6
        Key           : Lower : Body               : Upper
        ('CS01_0', 1) :   0.0 :                0.0 :   0.0
        ('CS01_1', 1) :   0.0 :                0.0 :   0.0
        ('CS02_0', 1) :   0.0 : -9.31322574615e-10 :   0.0
        ('CS02_1', 1) :   0.0 :  2.53881402679e-09 :   0.0
        ('CS02_2', 1) :   0.0 :                0.0 :   0.0
        ('CS03_0', 1) :   0.0 :  9.31322574615e-10 :   0.0
    costs_comp : Size=6
        Key           : Lower : Body              : Upper
        ('CS01_0', 1) :   0.0 : 1.25591045122e-15 :   0.0
        ('CS01_1', 1) :   0.0 : 1.25591045122e-15 :   0.0
        ('CS02_0', 1) :   0.0 : 1.25591045122e-15 :   0.0
        ('CS02_1', 1) :   0.0 : 1.25591045122e-15 :   0.0
        ('CS02_2', 1) :   0.0 : 1.25591045122e-15 :   0.0
        ('CS03_0', 1) :   0.0 : 1.25591045122e-15 :   0.0
    p_ss_con : Size=1
        Key           : Lower : Body             : Upper
        ('SS01_0', 1) :   0.0 : 4.4408920985e-16 :   0.0
    m_ss_acc : Size=1
        Key           : Lower : Body : Upper
        ('SS01_0', 1) :   0.0 :  0.0 :   0.0
    SS_entry_con : Size=1
        Key           : Lower : Body               : Upper
        ('SS01_0', 1) :   0.0 : -7.57281668484e-08 :   0.0
    m_n_right_p : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 :  5.50970443566e-25 :   0.0
        ('N02_0', 1) :   0.0 :  4.24696128968e-25 :   0.0
        ('N02_1', 1) :   0.0 :                0.0 :   0.0
        ('N02_2', 1) :   0.0 :  3.43936409461e-25 :   0.0
        ('N03_0', 1) :   0.0 :                0.0 :   0.0
        ('N03_1', 1) :   0.0 :                0.0 :   0.0
        ('N03_2', 1) :   0.0 :  3.96969090476e-15 :   0.0
        ('N03_3', 1) :   0.0 :  7.18586764748e-26 :   0.0
        ('N04_0', 1) :   0.0 :                0.0 :   0.0
        ('N05_0', 1) :   0.0 :                0.0 :   0.0
        ('N06_0', 1) :   0.0 :                0.0 :   0.0
        ('N07_0', 1) :   0.0 :                0.0 :   0.0
        ('N08_0', 1) :   0.0 :                0.0 :   0.0
        ('N09_0', 1) :   0.0 :                0.0 :   0.0
        ('N10_0', 1) :   0.0 : -2.61789905375e-26 :   0.0
        ('N10_1', 1) :   0.0 :                0.0 :   0.0
        ('N11_0', 1) :   0.0 :                0.0 :   0.0
        ('N12_0', 1) :   0.0 :                0.0 :   0.0
    m_n_left_p : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 :                0.0 :   0.0
        ('N02_0', 1) :   0.0 : -4.24696708288e-25 :   0.0
        ('N02_1', 1) :   0.0 : -4.95950905913e-25 :   0.0
        ('N02_2', 1) :   0.0 :                0.0 :   0.0
        ('N03_0', 1) :   0.0 : -2.13692280961e-25 :   0.0
        ('N03_1', 1) :   0.0 : -2.73406807795e-25 :   0.0
        ('N03_2', 1) :   0.0 : -3.96969090476e-15 :   0.0
        ('N03_3', 1) :   0.0 :                0.0 :   0.0
        ('N04_0', 1) :   0.0 : -2.43177103305e-26 :   0.0
        ('N05_0', 1) :   0.0 : -7.20843672241e-27 :   0.0
        ('N06_0', 1) :   0.0 : -2.64533204979e-26 :   0.0
        ('N07_0', 1) :   0.0 :                0.0 :   0.0
        ('N08_0', 1) :   0.0 :                0.0 :   0.0
        ('N09_0', 1) :   0.0 : -2.27373675443e-13 :   0.0
        ('N10_0', 1) :   0.0 :  2.61791877527e-26 :   0.0
        ('N10_1', 1) :   0.0 :  1.75940474359e-26 :   0.0
        ('N11_0', 1) :   0.0 :  1.13686837722e-13 :   0.0
        ('N12_0', 1) :   0.0 : -5.89138062542e-26 :   0.0
    m_c_left : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 : -5.50937016465e-25 :   0.0
        ('N02_0', 1) :   0.0 :                0.0 :   0.0
        ('N02_1', 1) :   0.0 : -4.95950905913e-25 :   0.0
        ('N02_2', 1) :   0.0 : -3.43936409461e-25 :   0.0
        ('N03_0', 1) :   0.0 : -5.68434188608e-14 :   0.0
        ('N03_1', 1) :   0.0 : -2.73406807795e-25 :   0.0
        ('N03_2', 1) :   0.0 : -3.96969090476e-15 :   0.0
        ('N03_3', 1) :   0.0 : -7.18586764748e-26 :   0.0
        ('N04_0', 1) :   0.0 : -2.43177103305e-26 :   0.0
        ('N05_0', 1) :   0.0 : -7.20843672241e-27 :   0.0
        ('N06_0', 1) :   0.0 : -2.64533204979e-26 :   0.0
        ('N07_0', 1) :   0.0 : -6.46571798787e-26 :   0.0
        ('N08_0', 1) :   0.0 : -1.47125639657e-26 :   0.0
        ('N09_0', 1) :   0.0 : -8.00628054828e-26 :   0.0
        ('N10_0', 1) :   0.0 :                0.0 :   0.0
        ('N10_1', 1) :   0.0 :  1.75940474359e-26 :   0.0
        ('N11_0', 1) :   0.0 :   -1.670949119e-25 :   0.0
        ('N12_0', 1) :   0.0 : -5.89138062542e-26 :   0.0
    m_c_right : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 :  5.50970443566e-25 :   0.0
        ('N02_0', 1) :   0.0 :  4.24696128968e-25 :   0.0
        ('N02_1', 1) :   0.0 :                0.0 :   0.0
        ('N02_2', 1) :   0.0 :                0.0 :   0.0
        ('N03_0', 1) :   0.0 :   2.1366509107e-25 :   0.0
        ('N03_1', 1) :   0.0 :                0.0 :   0.0
        ('N03_2', 1) :   0.0 :  3.96969090476e-15 :   0.0
        ('N03_3', 1) :   0.0 :                0.0 :   0.0
        ('N04_0', 1) :   0.0 :  2.42664307854e-26 :   0.0
        ('N05_0', 1) :   0.0 :  7.12080845968e-27 :   0.0
        ('N06_0', 1) :   0.0 :  2.60758628278e-26 :   0.0
        ('N07_0', 1) :   0.0 :  6.46685509758e-26 :   0.0
        ('N08_0', 1) :   0.0 :  1.46957607396e-26 :   0.0
        ('N09_0', 1) :   0.0 :  8.00730606746e-26 :   0.0
        ('N10_0', 1) :   0.0 : -2.61789905375e-26 :   0.0
        ('N10_1', 1) :   0.0 :                0.0 :   0.0
        ('N11_0', 1) :   0.0 :   1.6712187979e-25 :   0.0
        ('N12_0', 1) :   0.0 :  5.87756991307e-26 :   0.0
    m_c_ss : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 :  -7.2540173646e-28 :   0.0
        ('N02_0', 1) :   0.0 : -6.37160232652e-28 :   0.0
        ('N02_1', 1) :   0.0 : -9.43987118444e-28 :   0.0
        ('N02_2', 1) :   0.0 : -8.12836137946e-28 :   0.0
        ('N03_0', 1) :   0.0 :  1.14831526201e-28 :   0.0
        ('N03_1', 1) :   0.0 :  -1.8560632686e-29 :   0.0
        ('N03_2', 1) :   0.0 : -3.96968837763e-18 :   0.0
        ('N03_3', 1) :   0.0 :  1.83380656913e-28 :   0.0
        ('N04_0', 1) :   0.0 :  7.02600402724e-30 :   0.0
        ('N05_0', 1) :   0.0 : -1.86729079278e-28 :   0.0
        ('N06_0', 1) :   0.0 :  1.47419156468e-28 :   0.0
        ('N07_0', 1) :   0.0 : -2.98012590079e-29 :   0.0
        ('N08_0', 1) :   0.0 : -1.44250092463e-28 :   0.0
        ('N09_0', 1) :   0.0 : -1.34246294694e-28 :   0.0
        ('N10_0', 1) :   0.0 :                0.0 :   0.0
        ('N10_1', 1) :   0.0 :  3.50228148247e-29 :   0.0
        ('N11_0', 1) :   0.0 :  1.06468017776e-28 :   0.0
        ('N12_0', 1) :   0.0 :  1.50156420169e-28 :   0.0
    n_massbal : Size=18
        Key          : Lower : Body               : Upper
        ('N01_0', 1) :   0.0 :                0.0 :   0.0
        ('N02_0', 1) :   0.0 :                0.0 :   0.0
        ('N02_1', 1) :   0.0 :    4.959518499e-25 :   0.0
        ('N02_2', 1) :   0.0 :  3.43937222297e-25 :   0.0
        ('N03_0', 1) :   0.0 : -1.33226762955e-15 :   0.0
        ('N03_1', 1) :   0.0 :  2.73406826355e-25 :   0.0
        ('N03_2', 1) :   0.0 : -3.96969090476e-15 :   0.0
        ('N03_3', 1) :   0.0 :  7.18584930941e-26 :   0.0
        ('N04_0', 1) :   0.0 :                0.0 :   0.0
        ('N05_0', 1) :   0.0 :                0.0 :   0.0
        ('N06_0', 1) :   0.0 :                0.0 :   0.0
        ('N07_0', 1) :   0.0 : -4.97379915032e-14 :   0.0
        ('N08_0', 1) :   0.0 :  -4.4408920985e-15 :   0.0
        ('N09_0', 1) :   0.0 :  2.13162820728e-13 :   0.0
        ('N10_0', 1) :   0.0 : -3.76587649953e-13 :   0.0
        ('N10_1', 1) :   0.0 : -1.75940824588e-26 :   0.0
        ('N11_0', 1) :   0.0 : -5.68434188608e-14 :   0.0
        ('N12_0', 1) :   0.0 :                0.0 :   0.0

[   23.53] Applying Pyomo postprocessing actions
[   23.53] Pyomo Finished

jose santiago rodriguez

unread,
Jun 25, 2015, 10:46:32 AM6/25/15
to pyomo...@googlegroups.com
Hi,

Could you pass the option  --stream-solver to pyomo and post the output? that would give more info to analyze your results

Thanks,
Santiago

...

Thomas Frei

unread,
Jun 25, 2015, 11:02:24 AM6/25/15
to pyomo...@googlegroups.com
It's a bit too big to copy everything. Here the last part: 

11828r-1.6263562e-28 3.31e-07 8.05e-01  -8.6 2.48e+02    -  9.99e-01 9.77e-04h 11
11829r-1.6263562e-28 1.40e-07 2.34e-04  -8.6 1.73e-01 -10.2 1.00e+00 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
11830r-1.6263562e-28 1.40e-07 8.03e-01  -8.6 2.49e+02    -  9.99e-01 1.95e-03h 10
11831r-1.6263562e-28 2.36e-07 2.08e-03  -8.6 5.18e-01 -10.7 1.00e+00 1.00e+00H  1
11832r-1.6263562e-28 2.36e-07 7.99e-01  -8.6 2.49e+02    -  9.99e-01 1.95e-03h 10
11833r-1.6263562e-28 7.82e-08 1.87e-02  -8.6 1.55e+00 -11.2 1.00e+00 1.00e+00h  1

Number of Iterations....: 11833

                                   (scaled)                 (unscaled)
Objective...............:  -1.6263562376377891e-28   -1.6263562376377891e-28
Dual infeasibility......:   1.0000000000000000e+00    1.0000000000000000e+00
Constraint violation....:   5.5814855742635717e-08    7.8231096267700195e-08
Complementarity.........:   2.5214336359969869e-09    2.5214336359969869e-09
Overall NLP error.......:   1.0000000000000000e+00    1.0000000000000000e+00


Number of objective function evaluations             = 32499
Number of objective gradient evaluations             = 759
Number of equality constraint evaluations            = 32734
Number of inequality constraint evaluations          = 32657
Number of equality constraint Jacobian evaluations   = 12053
Number of inequality constraint Jacobian evaluations = 12053
Number of Lagrangian Hessian evaluations             = 11834
Total CPU secs in IPOPT (w/o function evaluations)   =     21.682
Total CPU secs in NLP function evaluations           =      0.946

EXIT: Converged to a point of local infeasibility. Problem may be infeasible.

Ipopt 3.12.0: Converged to a locally infeasible point. Problem may be infeasible.
[   23.63] Processing results
    Number of solutions: 1
    Solution Information
      Gap: <undefined>
      Status: infeasible
      Function Value: -1.62635623764e-28
    Solver results file: results.yml
WARNING - Loading a SolverResults object with a warning status
[   23.65] Applying Pyomo postprocessing actions
[   23.65] Pyomo Finished

Siirola, John D

unread,
Jun 25, 2015, 11:49:38 AM6/25/15
to pyomo...@googlegroups.com

How are you initializing the solver?  As a general rule, NLP algorithms are very sensitive to their initial starting point.  If you do not specify one, I am pretty sure ipopt uses “0”.  My first recommendation is to pass in a reasonable initial point using the “initialize=” option.

 

Looking at your summary, there are several constraints that are just outside ipopt’s default tolerances: SS_entry_con and arc_active['CS03_0', 1] both have constraint violations > 1e-8.  Looking at ipopt’s summary, it is (indirectly) telling you that:

 

Constraint violation....:   5.5814855742635717e-08    7.8231096267700195e-08

 

You may have a logical bug in your balancing equations, inconsistent data (due to roundoff error), or an overdetermined system (in roughly increasing probability).

 

John

--
You received this message because you are subscribed to the Google Groups "Pyomo Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyomo-forum...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Thomas Frei

unread,
Jun 25, 2015, 12:10:40 PM6/25/15
to pyomo...@googlegroups.com
Hi John

Thank you for your answer. I have two questions: 

  1. What do you mean with initializing the solver? Initializing the different variables? At the moment the ones I initialized are done manually so that the constraints are roughly fulfilled. I guess I will have to make this in a different way. 
  2. How do you adjust this tolerance? It seems that acceptable_tol is not doing what I expected..
You may also be right with the overdetermined system, although I have checked that many times already...I will have another look :)

 

...

Siirola, John D

unread,
Jun 25, 2015, 12:23:13 PM6/25/15
to pyomo...@googlegroups.com

1.       Yes – that is exactly what I meant.  You are only initializing a few of the variables, though – my recommendation is to provide initial guesses for everything (if possible).  Also note that most of the initial values you guess are nowhere near the point ipopt is ending up at.

2.       I don’t know : you will have to look that up in the ipopt documentation.  That is an option that I would never touch.  This really feels like a modeling issue: if ipopt could numerically satisfy the constraints it would.

--

jose santiago rodriguez

unread,
Jun 25, 2015, 12:24:02 PM6/25/15
to pyomo...@googlegroups.com
Your problem is going into regularization phase and i think is getting a point that satisfies the first optimality conditions but it does not necessarily mean it is a local minimum for your problem. I would try first with a different initial guess, then check if all your constraints make sense and there is not a bug somewhere. If that does not work may be check if your equations are properly scaled (conditioning)

Santiago 
...

Thomas Frei

unread,
Jun 25, 2015, 2:36:08 PM6/25/15
to pyomo...@googlegroups.com
Okay, thank you two for your answers! I have some ideas now, what else to try

Thomas Frei

unread,
Jun 26, 2015, 5:28:46 AM6/26/15
to pyomo...@googlegroups.com
Hi Santiago

Short question: I now initialized some of the variables in a different way and get a solver output of: Scaling factors are invalid: setting them all to 1. Do you know what that means? The units should all be correct, what can raise such an error?

Carl Laird

unread,
Jun 26, 2015, 8:09:59 AM6/26/15
to pyomo...@googlegroups.com
Thomas,

I could be wrong, but I think this happens when IPOPT computes scaling and the scaling factors are way too large. This likely means that the problem is very poorly scaled to begin with.

As well, I noticed on a previous email that the problem was taking 11,000 iterations or so. This is way higher than I have ever seen. Anything over a couple of hundred usually has me suspicious that the model has some scaling problems.

Regards,

Carl D. Laird
Associate Professor, School of Chemical Engineering, Purdue University
Ph: 765.494.0085



Thomas Frei

unread,
Jun 26, 2015, 9:23:43 AM6/26/15
to pyomo...@googlegroups.com
Hi Carl

Thank you for your help! I now presolved the model with a very simplified version of the model, loaded the results into my complicated model for a "good" starting point and tried to solve it like that, but unfortunately, this didn't make the deal. 

So it might be that scaling is the problem, since I also often get the "slacks too small adjusting variable bounds" message. Sorry if this is a stupid question, but what is generally considered as good scaling? That the variables don't get too small (if yes, what if a variable can be zero and the solver returns a value of 10^-25) ? Or that the equations are all evaluated in a certain region? 

...

Michael Bynum

unread,
Jun 26, 2015, 9:37:08 AM6/26/15
to pyomo...@googlegroups.com
Thomas,

Bad scaling occurs when there are both small variables and large variables. For example, many problems involve both compositions (e.g., mole fractions of natural gas: ~0.82 for methane, ~0.08 ethane, etc.) and large flow rates (e.g., 5,000,000 cubic feet per day). When a solver tries to take a step towards the solution, it is difficult to find a step that both improves the large variables and does not way overshoot the smaller variables. In this case, it would be easy to use different units for the flow rate (e.g., 5.0 MCFD).

Thanks,
Michael

--

Michael Bynum

unread,
Jun 26, 2015, 9:39:35 AM6/26/15
to pyomo...@googlegroups.com
P.s. Not a stupid question at all. I had issues with scaling myself not long ago.

Michael

jose santiago rodriguez

unread,
Jun 26, 2015, 9:39:53 AM6/26/15
to pyomo...@googlegroups.com
Hi Tomas,

Many physical models contain variables with values that differ in orders of magnitude. For example, I am working on a model that has pressures (in m approx 10^1) and flows (in m^3/s approx 10^-4) as variables. This difference in the magnitude of the values deteriorate the performance of the  solving algorithm and in some cases it can make the algorithm fail to converge. In my example, changing the units of the flows to L/s makes the scaling of the model better since all variables are around the same order.  To do that i use a scaling factor in every equation where the flows variables appear, i mean something like

y = f(x) --> y = f(s*x)

I do that, I solve the problem, and then i convert the solution of the flows back to m^3/s. There are different way to scale the problem but this one in my opinion is the simplest one. 

Hope that helps,
Santiago 

Thomas Frei

unread,
Jun 26, 2015, 9:57:46 AM6/26/15
to pyomo...@googlegroups.com
Okay, thank you very much for your answers! I will look into this again. It's true I have a lot of variables with very small and large values.. I thought I had fixed that already, but probably it wasn't enough.

Thomas Frei

unread,
Jul 1, 2015, 11:54:13 AM7/1/15
to pyomo...@googlegroups.com
Hi

I have a small follow up question. You were all right, it was scaling... I now got it working, but unfortunately only, if I include a high slack variable. Is there a more intelligent way to do scaling? Because for my problem it is very difficult to find a good scaling and as soon as I change one variable a little, I have to rescale others again and again...

jose santiago rodriguez

unread,
Jul 1, 2015, 3:25:19 PM7/1/15
to pyomo...@googlegroups.com
Thomas,

Yes there are other approaches to scale your problem. However the fact that small changes may cause the problem to be infeasible suggests that your problem might be singular. Can you share your model? If you want you can send it to my email address and i could have a look. May be i can give you better suggestions once i see the model. 
Reply all
Reply to author
Forward
0 new messages