Closed strahl21 closed 1 year ago
Hi @strahl21 . Since I don't have a Gurobi license, I cannot run your code.
However, there is a configuration called constraint_tolerance
in MindtPy, which denotes tolerance on constraint satisfaction.
In MindtPy, we will check trivial constraints before solving NLP subproblems. If you set constraint_tolerance
to 1e-5
or 1e-4
, MindtPy will automatically regard this constraint as satisfied.
Hi Zedong,
Thanks for the reply. Do you have access to cplex? I tried changing the tolerance to 1e-4 as you suggested, but it still gave the same result. Incidentally, I changed the number of threads to 1 and the problem went away, but any number of threads above 1 (2,3,4) and the problem returns. Attached is a text file of an instance that produces the error using cplex/baron.
-Will
On Mon, Jun 5, 2023 at 9:10 AM Zedong @.***> wrote:
Hi @strahl21 https://github.com/strahl21 . Since I don't have a Gurobi license, I cannot run your code. However, there is a configuration called constraint_tolerance in MindtPy, which denotes tolerance on constraint satisfaction. In MindtPy, we will check trivial constraints before solving NLP subproblems. If you set constraint_tolerance to 1e-5 or 1e-4, MindtPy will automatically regard this constraint as satisfied.
— Reply to this email directly, view it on GitHub https://github.com/Pyomo/pyomo/issues/2864#issuecomment-1576776489, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIOSMCMWUB7ZLI7B6Y66ZL3XJXLGHANCNFSM6AAAAAAYW6F4MM . You are receiving this because you were mentioned.Message ID: @.***>
#
#
#
#
from pyomo.environ import *
model = m = ConcreteModel()
m.x1 = Var(within=Reals, bounds=(0,10), initialize=0) m.x2 = Var(within=Reals, bounds=(0,10), initialize=0) m.x3 = Var(within=Reals, bounds=(0,10), initialize=0) m.x4 = Var(within=Reals, bounds=(0,10), initialize=0) m.x5 = Var(within=Reals, bounds=(0,None), initialize=0) m.x6 = Var(within=Reals, bounds=(0,None), initialize=0) m.x7 = Var(within=Reals, bounds=(0,None), initialize=0) m.x8 = Var(within=Reals, bounds=(0,None), initialize=0) m.x9 = Var(within=Reals, bounds=(0,None), initialize=0) m.x10 = Var(within=Reals, bounds=(0,None), initialize=0) m.x11 = Var(within=Reals, bounds=(0,None), initialize=0) m.x12 = Var(within=Reals, bounds=(0,None), initialize=0) m.x13 = Var(within=Reals, bounds=(0,None), initialize=0) m.x14 = Var(within=Reals, bounds=(0,None), initialize=0) m.x15 = Var(within=Reals, bounds=(0,None), initialize=0) m.x16 = Var(within=Reals, bounds=(0,None), initialize=0) m.x17 = Var(within=Reals, bounds=(0,None), initialize=0) m.x18 = Var(within=Reals, bounds=(0,None), initialize=0) m.x19 = Var(within=Reals, bounds=(0,None), initialize=0) m.x20 = Var(within=Reals, bounds=(0,None), initialize=0) m.x21 = Var(within=Reals, bounds=(0,None), initialize=0) m.x22 = Var(within=Reals, bounds=(0,None), initialize=0) m.x23 = Var(within=Reals, bounds=(0,None), initialize=0) m.x24 = Var(within=Reals, bounds=(0,None), initialize=0) m.x25 = Var(within=Reals, bounds=(0,None), initialize=0) m.x26 = Var(within=Reals, bounds=(0,None), initialize=0) m.x27 = Var(within=Reals, bounds=(0,None), initialize=0) m.x28 = Var(within=Reals, bounds=(0,None), initialize=0) m.x29 = Var(within=Reals, bounds=(0,None), initialize=0) m.x30 = Var(within=Reals, bounds=(0,None), initialize=0) m.x31 = Var(within=Reals, bounds=(0,None), initialize=0) m.x32 = Var(within=Reals, bounds=(0,None), initialize=0) m.x33 = Var(within=Reals, bounds=(0,None), initialize=0) m.x34 = Var(within=Reals, bounds=(0,None), initialize=0) m.x35 = Var(within=Reals, bounds=(0,None), initialize=0) m.x36 = Var(within=Reals, bounds=(0,None), initialize=0) m.x37 = Var(within=Reals, bounds=(0,None), initialize=0) m.x38 = Var(within=Reals, bounds=(0,None), initialize=0) m.x39 = Var(within=Reals, bounds=(0,None), initialize=0) m.x40 = Var(within=Reals, bounds=(0,None), initialize=0) m.x41 = Var(within=Reals, bounds=(0,None), initialize=0) m.x42 = Var(within=Reals, bounds=(0,None), initialize=0) m.x43 = Var(within=Reals, bounds=(0,None), initialize=0) m.x44 = Var(within=Reals, bounds=(0,None), initialize=0) m.x45 = Var(within=Reals, bounds=(0,7), initialize=0) m.x46 = Var(within=Reals, bounds=(0,7), initialize=0) m.x47 = Var(within=Reals, bounds=(0,7), initialize=0) m.x48 = Var(within=Reals, bounds=(0,7), initialize=0) m.x49 = Var(within=Reals, bounds=(0,None), initialize=0) m.x50 = Var(within=Reals, bounds=(0,None), initialize=0) m.x51 = Var(within=Reals, bounds=(0,None), initialize=0) m.x52 = Var(within=Reals, bounds=(0,None), initialize=0) m.x53 = Var(within=Reals, bounds=(0,None), initialize=0) m.x54 = Var(within=Reals, bounds=(0,None), initialize=0) m.x55 = Var(within=Reals, bounds=(0,None), initialize=0) m.x56 = Var(within=Reals, bounds=(0,None), initialize=0) m.x57 = Var(within=Reals, bounds=(0,None), initialize=0) m.x58 = Var(within=Reals, bounds=(0,None), initialize=0) m.x59 = Var(within=Reals, bounds=(0,None), initialize=0) m.x60 = Var(within=Reals, bounds=(0,None), initialize=0) m.x61 = Var(within=Reals, bounds=(0,None), initialize=0) m.x62 = Var(within=Reals, bounds=(0,None), initialize=0) m.x63 = Var(within=Reals, bounds=(0,None), initialize=0) m.x64 = Var(within=Reals, bounds=(0,None), initialize=0) m.x65 = Var(within=Reals, bounds=(0,None), initialize=0) m.x66 = Var(within=Reals, bounds=(0,None), initialize=0) m.x67 = Var(within=Reals, bounds=(0,None), initialize=0) m.x68 = Var(within=Reals, bounds=(0,None), initialize=0) m.x69 = Var(within=Reals, bounds=(0,None), initialize=0) m.x70 = Var(within=Reals, bounds=(0,None), initialize=0) m.x71 = Var(within=Reals, bounds=(0,None), initialize=0) m.x72 = Var(within=Reals, bounds=(0,None), initialize=0) m.x73 = Var(within=Reals, bounds=(0,None), initialize=0) m.x74 = Var(within=Reals, bounds=(0,None), initialize=0) m.x75 = Var(within=Reals, bounds=(0,None), initialize=0) m.x76 = Var(within=Reals, bounds=(0,None), initialize=0) m.x77 = Var(within=Reals, bounds=(0,None), initialize=0) m.x78 = Var(within=Reals, bounds=(0,None), initialize=0) m.x79 = Var(within=Reals, bounds=(0,None), initialize=0) m.x80 = Var(within=Reals, bounds=(0,None), initialize=0) m.x81 = Var(within=Reals, bounds=(0,None), initialize=0) m.x82 = Var(within=Reals, bounds=(0,None), initialize=0) m.x83 = Var(within=Reals, bounds=(0,None), initialize=0) m.x84 = Var(within=Reals, bounds=(0,None), initialize=0) m.x85 = Var(within=Reals, bounds=(0,None), initialize=0) m.x86 = Var(within=Reals, bounds=(0,None), initialize=0) m.x87 = Var(within=Reals, bounds=(0,None), initialize=0) m.x88 = Var(within=Reals, bounds=(0,None), initialize=0) m.x89 = Var(within=Reals, bounds=(0,None), initialize=0) m.x90 = Var(within=Reals, bounds=(0,None), initialize=0) m.x91 = Var(within=Reals, bounds=(0,None), initialize=0) m.x92 = Var(within=Reals, bounds=(0,None), initialize=0) m.x93 = Var(within=Reals, bounds=(0,None), initialize=0) m.x94 = Var(within=Reals, bounds=(0,None), initialize=0) m.x95 = Var(within=Reals, bounds=(0,None), initialize=0) m.x96 = Var(within=Reals, bounds=(0,None), initialize=0) m.x97 = Var(within=Reals, bounds=(0,None), initialize=0) m.x98 = Var(within=Reals, bounds=(0,None), initialize=0) m.x99 = Var(within=Reals, bounds=(0,None), initialize=0) m.x100 = Var(within=Reals, bounds=(0,None), initialize=0) m.x101 = Var(within=Reals, bounds=(0,None), initialize=0) m.x102 = Var(within=Reals, bounds=(0,None), initialize=0) m.x103 = Var(within=Reals, bounds=(0,None), initialize=0) m.x104 = Var(within=Reals, bounds=(0,None), initialize=0) m.x105 = Var(within=Reals, bounds=(0,None), initialize=0) m.x106 = Var(within=Reals, bounds=(0,None), initialize=0) m.x107 = Var(within=Reals, bounds=(0,None), initialize=0) m.x108 = Var(within=Reals, bounds=(0,None), initialize=0) m.x109 = Var(within=Reals, bounds=(0,None), initialize=0) m.x110 = Var(within=Reals, bounds=(0,None), initialize=0) m.x111 = Var(within=Reals, bounds=(0,None), initialize=0) m.x112 = Var(within=Reals, bounds=(0,None), initialize=0) m.x113 = Var(within=Reals, bounds=(0,7), initialize=0) m.x114 = Var(within=Reals, bounds=(0,7), initialize=0) m.x115 = Var(within=Reals, bounds=(0,7), initialize=0) m.x116 = Var(within=Reals, bounds=(0,7), initialize=0) m.x117 = Var(within=Reals, bounds=(0,5), initialize=0) m.x118 = Var(within=Reals, bounds=(0,5), initialize=0) m.x119 = Var(within=Reals, bounds=(0,5), initialize=0) m.x120 = Var(within=Reals, bounds=(0,5), initialize=0) m.x121 = Var(within=Reals, bounds=(0,None), initialize=0) m.x122 = Var(within=Reals, bounds=(0,None), initialize=0) m.x123 = Var(within=Reals, bounds=(0,None), initialize=0) m.x124 = Var(within=Reals, bounds=(0,None), initialize=0) m.x125 = Var(within=Reals, bounds=(0,None), initialize=0) m.x126 = Var(within=Reals, bounds=(0,None), initialize=0) m.x127 = Var(within=Reals, bounds=(0,None), initialize=0) m.x128 = Var(within=Reals, bounds=(0,None), initialize=0) m.x129 = Var(within=Reals, bounds=(0,None), initialize=0) m.x130 = Var(within=Reals, bounds=(0,None), initialize=0) m.x131 = Var(within=Reals, bounds=(0,None), initialize=0) m.x132 = Var(within=Reals, bounds=(0,None), initialize=0) m.x133 = Var(within=Reals, bounds=(0,None), initialize=0) m.x134 = Var(within=Reals, bounds=(0,None), initialize=0) m.x135 = Var(within=Reals, bounds=(0,None), initialize=0) m.x136 = Var(within=Reals, bounds=(0,None), initialize=0) m.x137 = Var(within=Reals, bounds=(0,None), initialize=0) m.x138 = Var(within=Reals, bounds=(0,None), initialize=0) m.x139 = Var(within=Reals, bounds=(0,None), initialize=0) m.x140 = Var(within=Reals, bounds=(0,None), initialize=0) m.x141 = Var(within=Reals, bounds=(0,None), initialize=0) m.x142 = Var(within=Reals, bounds=(0,None), initialize=0) m.x143 = Var(within=Reals, bounds=(0,None), initialize=0) m.x144 = Var(within=Reals, bounds=(0,None), initialize=0) m.x145 = Var(within=Reals, bounds=(0,None), initialize=0) m.x146 = Var(within=Reals, bounds=(0,None), initialize=0) m.x147 = Var(within=Reals, bounds=(0,None), initialize=0) m.x148 = Var(within=Reals, bounds=(0,None), initialize=0) m.x149 = Var(within=Reals, bounds=(0,None), initialize=0) m.x150 = Var(within=Reals, bounds=(0,None), initialize=0) m.x151 = Var(within=Reals, bounds=(0,None), initialize=0) m.x152 = Var(within=Reals, bounds=(0,None), initialize=0) m.x153 = Var(within=Reals, bounds=(0,None), initialize=0) m.x154 = Var(within=Reals, bounds=(0,None), initialize=0) m.x155 = Var(within=Reals, bounds=(0,None), initialize=0) m.x156 = Var(within=Reals, bounds=(0,None), initialize=0) m.x157 = Var(within=Reals, bounds=(0,None), initialize=0) m.x158 = Var(within=Reals, bounds=(0,None), initialize=0) m.x159 = Var(within=Reals, bounds=(0,None), initialize=0) m.x160 = Var(within=Reals, bounds=(0,None), initialize=0) m.x161 = Var(within=Reals, bounds=(0,None), initialize=0) m.x162 = Var(within=Reals, bounds=(0,None), initialize=0) m.x163 = Var(within=Reals, bounds=(0,None), initialize=0) m.x164 = Var(within=Reals, bounds=(0,None), initialize=0) m.x165 = Var(within=Reals, bounds=(0,None), initialize=0) m.x166 = Var(within=Reals, bounds=(0,None), initialize=0) m.x167 = Var(within=Reals, bounds=(0,None), initialize=0) m.x168 = Var(within=Reals, bounds=(0,None), initialize=0) m.x169 = Var(within=Reals, bounds=(0,None), initialize=0) m.x170 = Var(within=Reals, bounds=(0,None), initialize=0) m.x171 = Var(within=Reals, bounds=(0,None), initialize=0) m.x172 = Var(within=Reals, bounds=(0,None), initialize=0) m.x173 = Var(within=Reals, bounds=(0,None), initialize=0) m.x174 = Var(within=Reals, bounds=(0,None), initialize=0) m.x175 = Var(within=Reals, bounds=(0,None), initialize=0) m.x176 = Var(within=Reals, bounds=(0,None), initialize=0) m.x177 = Var(within=Reals, bounds=(0,None), initialize=0) m.x178 = Var(within=Reals, bounds=(0,None), initialize=0) m.x179 = Var(within=Reals, bounds=(0,None), initialize=0) m.x180 = Var(within=Reals, bounds=(0,None), initialize=0) m.x181 = Var(within=Reals, bounds=(0,None), initialize=0) m.x182 = Var(within=Reals, bounds=(0,None), initialize=0) m.x183 = Var(within=Reals, bounds=(0,None), initialize=0) m.x184 = Var(within=Reals, bounds=(0,None), initialize=0) m.x185 = Var(within=Reals, bounds=(0,None), initialize=0) m.x186 = Var(within=Reals, bounds=(0,None), initialize=0) m.x187 = Var(within=Reals, bounds=(0,None), initialize=0) m.x188 = Var(within=Reals, bounds=(0,None), initialize=0) m.x189 = Var(within=Reals, bounds=(0,None), initialize=0) m.x190 = Var(within=Reals, bounds=(0,None), initialize=0) m.x191 = Var(within=Reals, bounds=(0,None), initialize=0) m.x192 = Var(within=Reals, bounds=(0,None), initialize=0) m.x193 = Var(within=Reals, bounds=(0,None), initialize=0) m.x194 = Var(within=Reals, bounds=(0,None), initialize=0) m.x195 = Var(within=Reals, bounds=(0,None), initialize=0) m.x196 = Var(within=Reals, bounds=(0,None), initialize=0) m.x197 = Var(within=Reals, bounds=(0,None), initialize=0) m.x198 = Var(within=Reals, bounds=(0,None), initialize=0) m.x199 = Var(within=Reals, bounds=(0,None), initialize=0) m.x200 = Var(within=Reals, bounds=(0,None), initialize=0) m.x201 = Var(within=Reals, bounds=(0,None), initialize=0) m.x202 = Var(within=Reals, bounds=(0,None), initialize=0) m.x203 = Var(within=Reals, bounds=(0,None), initialize=0) m.x204 = Var(within=Reals, bounds=(0,None), initialize=0) m.x205 = Var(within=Reals, bounds=(0,None), initialize=0) m.x206 = Var(within=Reals, bounds=(0,None), initialize=0) m.x207 = Var(within=Reals, bounds=(0,None), initialize=0) m.x208 = Var(within=Reals, bounds=(0,None), initialize=0) m.x209 = Var(within=Reals, bounds=(0,None), initialize=0) m.x210 = Var(within=Reals, bounds=(0,None), initialize=0) m.x211 = Var(within=Reals, bounds=(0,None), initialize=0) m.x212 = Var(within=Reals, bounds=(0,None), initialize=0) m.x213 = Var(within=Reals, bounds=(0,None), initialize=0) m.x214 = Var(within=Reals, bounds=(0,None), initialize=0) m.x215 = Var(within=Reals, bounds=(0,None), initialize=0) m.x216 = Var(within=Reals, bounds=(0,None), initialize=0) m.x217 = Var(within=Reals, bounds=(0,None), initialize=0) m.x218 = Var(within=Reals, bounds=(0,None), initialize=0) m.x219 = Var(within=Reals, bounds=(0,None), initialize=0) m.x220 = Var(within=Reals, bounds=(0,None), initialize=0) m.x221 = Var(within=Reals, bounds=(0,None), initialize=0) m.x222 = Var(within=Reals, bounds=(0,None), initialize=0) m.x223 = Var(within=Reals, bounds=(0,None), initialize=0) m.x224 = Var(within=Reals, bounds=(0,None), initialize=0) m.x225 = Var(within=Reals, bounds=(0,7), initialize=0) m.x226 = Var(within=Reals, bounds=(0,7), initialize=0) m.x227 = Var(within=Reals, bounds=(0,7), initialize=0) m.x228 = Var(within=Reals, bounds=(0,7), initialize=0) m.x229 = Var(within=Reals, bounds=(0,None), initialize=0) m.x230 = Var(within=Reals, bounds=(0,None), initialize=0) m.x231 = Var(within=Reals, bounds=(0,None), initialize=0) m.x232 = Var(within=Reals, bounds=(0,None), initialize=0) m.x233 = Var(within=Reals, bounds=(0,None), initialize=0) m.x234 = Var(within=Reals, bounds=(0,None), initialize=0) m.x235 = Var(within=Reals, bounds=(0,None), initialize=0) m.x236 = Var(within=Reals, bounds=(0,None), initialize=0) m.x237 = Var(within=Reals, bounds=(0,None), initialize=0) m.x238 = Var(within=Reals, bounds=(0,None), initialize=0) m.x239 = Var(within=Reals, bounds=(0,None), initialize=0) m.x240 = Var(within=Reals, bounds=(0,None), initialize=0) m.x241 = Var(within=Reals, bounds=(0,None), initialize=0) m.x242 = Var(within=Reals, bounds=(0,None), initialize=0) m.x243 = Var(within=Reals, bounds=(0,None), initialize=0) m.x244 = Var(within=Reals, bounds=(0,None), initialize=0) m.x245 = Var(within=Reals, bounds=(0,None), initialize=0) m.x246 = Var(within=Reals, bounds=(0,None), initialize=0) m.x247 = Var(within=Reals, bounds=(0,None), initialize=0) m.x248 = Var(within=Reals, bounds=(0,None), initialize=0) m.x249 = Var(within=Reals, bounds=(0,None), initialize=0) m.x250 = Var(within=Reals, bounds=(0,None), initialize=0) m.x251 = Var(within=Reals, bounds=(0,None), initialize=0) m.x252 = Var(within=Reals, bounds=(0,None), initialize=0) m.x253 = Var(within=Reals, bounds=(0,None), initialize=0) m.x254 = Var(within=Reals, bounds=(0,None), initialize=0) m.x255 = Var(within=Reals, bounds=(0,None), initialize=0) m.x256 = Var(within=Reals, bounds=(0,None), initialize=0) m.x257 = Var(within=Reals, bounds=(0,None), initialize=0) m.x258 = Var(within=Reals, bounds=(0,None), initialize=0) m.x259 = Var(within=Reals, bounds=(0,None), initialize=0) m.x260 = Var(within=Reals, bounds=(0,None), initialize=0) m.x261 = Var(within=Reals, bounds=(0,None), initialize=0) m.x262 = Var(within=Reals, bounds=(0,None), initialize=0) m.x263 = Var(within=Reals, bounds=(0,None), initialize=0) m.x264 = Var(within=Reals, bounds=(0,None), initialize=0) m.x265 = Var(within=Reals, bounds=(0,None), initialize=0) m.x266 = Var(within=Reals, bounds=(0,None), initialize=0) m.x267 = Var(within=Reals, bounds=(0,None), initialize=0) m.x268 = Var(within=Reals, bounds=(0,None), initialize=0) m.x269 = Var(within=Reals, bounds=(0,None), initialize=0) m.x270 = Var(within=Reals, bounds=(0,None), initialize=0) m.x271 = Var(within=Reals, bounds=(0,None), initialize=0) m.x272 = Var(within=Reals, bounds=(0,None), initialize=0) m.x273 = Var(within=Reals, bounds=(0,None), initialize=0) m.x274 = Var(within=Reals, bounds=(0,None), initialize=0) m.x275 = Var(within=Reals, bounds=(0,None), initialize=0) m.x276 = Var(within=Reals, bounds=(0,None), initialize=0) m.x277 = Var(within=Reals, bounds=(0,None), initialize=0) m.x278 = Var(within=Reals, bounds=(0,None), initialize=0) m.x279 = Var(within=Reals, bounds=(0,None), initialize=0) m.x280 = Var(within=Reals, bounds=(0,None), initialize=0) m.x281 = Var(within=Reals, bounds=(0,None), initialize=0) m.x282 = Var(within=Reals, bounds=(0,None), initialize=0) m.x283 = Var(within=Reals, bounds=(0,None), initialize=0) m.x284 = Var(within=Reals, bounds=(0,None), initialize=0) m.x285 = Var(within=Reals, bounds=(0,None), initialize=0) m.x286 = Var(within=Reals, bounds=(0,None), initialize=0) m.x287 = Var(within=Reals, bounds=(0,None), initialize=0) m.x288 = Var(within=Reals, bounds=(0,None), initialize=0) m.x289 = Var(within=Reals, bounds=(0,None), initialize=0) m.x290 = Var(within=Reals, bounds=(0,None), initialize=0) m.x291 = Var(within=Reals, bounds=(0,None), initialize=0) m.x292 = Var(within=Reals, bounds=(0,None), initialize=0) m.x293 = Var(within=Reals, bounds=(0,7), initialize=0) m.x294 = Var(within=Reals, bounds=(0,7), initialize=0) m.x295 = Var(within=Reals, bounds=(0,7), initialize=0) m.x296 = Var(within=Reals, bounds=(0,7), initialize=0) m.x297 = Var(within=Reals, bounds=(0,5), initialize=0) m.x298 = Var(within=Reals, bounds=(0,5), initialize=0) m.x299 = Var(within=Reals, bounds=(0,5), initialize=0) m.x300 = Var(within=Reals, bounds=(0,5), initialize=0) m.x301 = Var(within=Reals, bounds=(0,None), initialize=0) m.x302 = Var(within=Reals, bounds=(0,None), initialize=0) m.x303 = Var(within=Reals, bounds=(0,None), initialize=0) m.x304 = Var(within=Reals, bounds=(0,None), initialize=0) m.x305 = Var(within=Reals, bounds=(0,None), initialize=0) m.x306 = Var(within=Reals, bounds=(0,None), initialize=0) m.x307 = Var(within=Reals, bounds=(0,None), initialize=0) m.x308 = Var(within=Reals, bounds=(0,None), initialize=0) m.x309 = Var(within=Reals, bounds=(0,None), initialize=0) m.x310 = Var(within=Reals, bounds=(0,None), initialize=0) m.x311 = Var(within=Reals, bounds=(0,None), initialize=0) m.x312 = Var(within=Reals, bounds=(0,None), initialize=0) m.x313 = Var(within=Reals, bounds=(0,None), initialize=0) m.x314 = Var(within=Reals, bounds=(0,None), initialize=0) m.x315 = Var(within=Reals, bounds=(0,None), initialize=0) m.x316 = Var(within=Reals, bounds=(0,None), initialize=0) m.x317 = Var(within=Reals, bounds=(0,None), initialize=0) m.x318 = Var(within=Reals, bounds=(0,None), initialize=0) m.x319 = Var(within=Reals, bounds=(0,None), initialize=0) m.x320 = Var(within=Reals, bounds=(0,None), initialize=0) m.x321 = Var(within=Reals, bounds=(0,None), initialize=0) m.x322 = Var(within=Reals, bounds=(0,None), initialize=0) m.x323 = Var(within=Reals, bounds=(0,None), initialize=0) m.x324 = Var(within=Reals, bounds=(0,None), initialize=0) m.x325 = Var(within=Reals, bounds=(0,None), initialize=0) m.x326 = Var(within=Reals, bounds=(0,None), initialize=0) m.x327 = Var(within=Reals, bounds=(0,None), initialize=0) m.x328 = Var(within=Reals, bounds=(0,None), initialize=0) m.x329 = Var(within=Reals, bounds=(0,None), initialize=0) m.x330 = Var(within=Reals, bounds=(0,None), initialize=0) m.x331 = Var(within=Reals, bounds=(0,None), initialize=0) m.x332 = Var(within=Reals, bounds=(0,None), initialize=0) m.x333 = Var(within=Reals, bounds=(0,None), initialize=0) m.x334 = Var(within=Reals, bounds=(0,None), initialize=0) m.x335 = Var(within=Reals, bounds=(0,None), initialize=0) m.x336 = Var(within=Reals, bounds=(0,None), initialize=0) m.x337 = Var(within=Reals, bounds=(0,None), initialize=0) m.x338 = Var(within=Reals, bounds=(0,None), initialize=0) m.x339 = Var(within=Reals, bounds=(0,None), initialize=0) m.x340 = Var(within=Reals, bounds=(0,None), initialize=0) m.x341 = Var(within=Reals, bounds=(0,None), initialize=0) m.x342 = Var(within=Reals, bounds=(0,None), initialize=0) m.x343 = Var(within=Reals, bounds=(0,None), initialize=0) m.x344 = Var(within=Reals, bounds=(0,None), initialize=0) m.x345 = Var(within=Reals, bounds=(0,None), initialize=0) m.x346 = Var(within=Reals, bounds=(0,None), initialize=0) m.x347 = Var(within=Reals, bounds=(0,None), initialize=0) m.x348 = Var(within=Reals, bounds=(0,None), initialize=0) m.x349 = Var(within=Reals, bounds=(0,None), initialize=0) m.x350 = Var(within=Reals, bounds=(0,None), initialize=0) m.x351 = Var(within=Reals, bounds=(0,None), initialize=0) m.x352 = Var(within=Reals, bounds=(0,None), initialize=0) m.x353 = Var(within=Reals, bounds=(0,None), initialize=0) m.x354 = Var(within=Reals, bounds=(0,None), initialize=0) m.x355 = Var(within=Reals, bounds=(0,None), initialize=0) m.x356 = Var(within=Reals, bounds=(0,None), initialize=0) m.x357 = Var(within=Reals, bounds=(0,None), initialize=0) m.x358 = Var(within=Reals, bounds=(0,None), initialize=0) m.x359 = Var(within=Reals, bounds=(0,None), initialize=0) m.x360 = Var(within=Reals, bounds=(0,None), initialize=0) m.x361 = Var(within=Reals, bounds=(0,None), initialize=0) m.x362 = Var(within=Reals, bounds=(0,None), initialize=0) m.x363 = Var(within=Reals, bounds=(0,None), initialize=0) m.x364 = Var(within=Reals, bounds=(0,None), initialize=0) m.x365 = Var(within=Reals, bounds=(0,None), initialize=0) m.x366 = Var(within=Reals, bounds=(0,None), initialize=0) m.x367 = Var(within=Reals, bounds=(0,None), initialize=0) m.x368 = Var(within=Reals, bounds=(0,None), initialize=0) m.x369 = Var(within=Reals, bounds=(0,None), initialize=0) m.x370 = Var(within=Reals, bounds=(0,None), initialize=0) m.x371 = Var(within=Reals, bounds=(0,None), initialize=0) m.x372 = Var(within=Reals, bounds=(0,None), initialize=0) m.x373 = Var(within=Reals, bounds=(0,None), initialize=0) m.x374 = Var(within=Reals, bounds=(0,None), initialize=0) m.x375 = Var(within=Reals, bounds=(0,None), initialize=0) m.x376 = Var(within=Reals, bounds=(0,None), initialize=0) m.x377 = Var(within=Reals, bounds=(0,None), initialize=0) m.x378 = Var(within=Reals, bounds=(0,None), initialize=0) m.x379 = Var(within=Reals, bounds=(0,None), initialize=0) m.x380 = Var(within=Reals, bounds=(0,None), initialize=0) m.x381 = Var(within=Reals, bounds=(0,None), initialize=0) m.x382 = Var(within=Reals, bounds=(0,None), initialize=0) m.x383 = Var(within=Reals, bounds=(0,None), initialize=0) m.x384 = Var(within=Reals, bounds=(0,None), initialize=0) m.x385 = Var(within=Reals, bounds=(0,None), initialize=0) m.x386 = Var(within=Reals, bounds=(0,None), initialize=0) m.x387 = Var(within=Reals, bounds=(0,None), initialize=0) m.x388 = Var(within=Reals, bounds=(0,None), initialize=0) m.x389 = Var(within=Reals, bounds=(0,None), initialize=0) m.x390 = Var(within=Reals, bounds=(0,None), initialize=0) m.x391 = Var(within=Reals, bounds=(0,None), initialize=0) m.x392 = Var(within=Reals, bounds=(0,None), initialize=0) m.x393 = Var(within=Reals, bounds=(0,None), initialize=0) m.x394 = Var(within=Reals, bounds=(0,None), initialize=0) m.x395 = Var(within=Reals, bounds=(0,None), initialize=0) m.x396 = Var(within=Reals, bounds=(0,None), initialize=0) m.x397 = Var(within=Reals, bounds=(0,None), initialize=0) m.x398 = Var(within=Reals, bounds=(0,None), initialize=0) m.x399 = Var(within=Reals, bounds=(0,None), initialize=0) m.x400 = Var(within=Reals, bounds=(0,None), initialize=0) m.x401 = Var(within=Reals, bounds=(0,None), initialize=0) m.x402 = Var(within=Reals, bounds=(0,None), initialize=0) m.x403 = Var(within=Reals, bounds=(0,None), initialize=0) m.x404 = Var(within=Reals, bounds=(0,None), initialize=0) m.x405 = Var(within=Reals, bounds=(0,None), initialize=0) m.x406 = Var(within=Reals, bounds=(0,None), initialize=0) m.x407 = Var(within=Reals, bounds=(0,None), initialize=0) m.x408 = Var(within=Reals, bounds=(0,None), initialize=0) m.x409 = Var(within=Reals, bounds=(0,None), initialize=0) m.x410 = Var(within=Reals, bounds=(0,None), initialize=0) m.x411 = Var(within=Reals, bounds=(0,None), initialize=0) m.x412 = Var(within=Reals, bounds=(0,None), initialize=0) m.x413 = Var(within=Reals, bounds=(0,None), initialize=0) m.x414 = Var(within=Reals, bounds=(0,None), initialize=0) m.x415 = Var(within=Reals, bounds=(0,None), initialize=0) m.x416 = Var(within=Reals, bounds=(0,None), initialize=0) m.x417 = Var(within=Reals, bounds=(0,None), initialize=0) m.x418 = Var(within=Reals, bounds=(0,None), initialize=0) m.x419 = Var(within=Reals, bounds=(0,None), initialize=0) m.x420 = Var(within=Reals, bounds=(0,None), initialize=0) m.x421 = Var(within=Reals, bounds=(0,None), initialize=0) m.x422 = Var(within=Reals, bounds=(0,None), initialize=0) m.x423 = Var(within=Reals, bounds=(0,None), initialize=0) m.x424 = Var(within=Reals, bounds=(0,None), initialize=0) m.x425 = Var(within=Reals, bounds=(0,None), initialize=0) m.x426 = Var(within=Reals, bounds=(0,None), initialize=0) m.x427 = Var(within=Reals, bounds=(0,None), initialize=0) m.x428 = Var(within=Reals, bounds=(0,None), initialize=0) m.x429 = Var(within=Reals, bounds=(0,None), initialize=0) m.x430 = Var(within=Reals, bounds=(0,None), initialize=0) m.x431 = Var(within=Reals, bounds=(0,None), initialize=0) m.x432 = Var(within=Reals, bounds=(0,None), initialize=0) m.x433 = Var(within=Reals, bounds=(0,None), initialize=0) m.x434 = Var(within=Reals, bounds=(0,None), initialize=0) m.x435 = Var(within=Reals, bounds=(0,None), initialize=0) m.x436 = Var(within=Reals, bounds=(0,None), initialize=0) m.x437 = Var(within=Reals, bounds=(0,None), initialize=0) m.x438 = Var(within=Reals, bounds=(0,None), initialize=0) m.x439 = Var(within=Reals, bounds=(0,None), initialize=0) m.x440 = Var(within=Reals, bounds=(0,None), initialize=0) m.x441 = Var(within=Reals, bounds=(0,None), initialize=0) m.x442 = Var(within=Reals, bounds=(0,None), initialize=0) m.x443 = Var(within=Reals, bounds=(0,None), initialize=0) m.x444 = Var(within=Reals, bounds=(0,None), initialize=0) m.x445 = Var(within=Reals, bounds=(0,None), initialize=0) m.x446 = Var(within=Reals, bounds=(0,None), initialize=0) m.x447 = Var(within=Reals, bounds=(0,None), initialize=0) m.x448 = Var(within=Reals, bounds=(0,None), initialize=0) m.x449 = Var(within=Reals, bounds=(0,None), initialize=0) m.x450 = Var(within=Reals, bounds=(0,None), initialize=0) m.x451 = Var(within=Reals, bounds=(0,None), initialize=0) m.x452 = Var(within=Reals, bounds=(0,None), initialize=0) m.x453 = Var(within=Reals, bounds=(0,None), initialize=0) m.x454 = Var(within=Reals, bounds=(0,None), initialize=0) m.x455 = Var(within=Reals, bounds=(0,None), initialize=0) m.x456 = Var(within=Reals, bounds=(0,None), initialize=0) m.x457 = Var(within=Reals, bounds=(0,None), initialize=0) m.x458 = Var(within=Reals, bounds=(0,None), initialize=0) m.x459 = Var(within=Reals, bounds=(0,None), initialize=0) m.x460 = Var(within=Reals, bounds=(0,None), initialize=0) m.x461 = Var(within=Reals, bounds=(0,None), initialize=0) m.x462 = Var(within=Reals, bounds=(0,None), initialize=0) m.x463 = Var(within=Reals, bounds=(0,None), initialize=0) m.x464 = Var(within=Reals, bounds=(0,None), initialize=0) m.x465 = Var(within=Reals, bounds=(0,None), initialize=0) m.x466 = Var(within=Reals, bounds=(0,None), initialize=0) m.x467 = Var(within=Reals, bounds=(0,None), initialize=0) m.x468 = Var(within=Reals, bounds=(0,None), initialize=0) m.x469 = Var(within=Reals, bounds=(0,None), initialize=0) m.x470 = Var(within=Reals, bounds=(0,None), initialize=0) m.x471 = Var(within=Reals, bounds=(0,None), initialize=0) m.x472 = Var(within=Reals, bounds=(0,None), initialize=0) m.x473 = Var(within=Reals, bounds=(0,None), initialize=0) m.x474 = Var(within=Reals, bounds=(0,None), initialize=0) m.x475 = Var(within=Reals, bounds=(0,None), initialize=0) m.x476 = Var(within=Reals, bounds=(0,None), initialize=0) m.x477 = Var(within=Reals, bounds=(0,None), initialize=0) m.x478 = Var(within=Reals, bounds=(0,None), initialize=0) m.x479 = Var(within=Reals, bounds=(0,None), initialize=0) m.x480 = Var(within=Reals, bounds=(0,None), initialize=0) m.x481 = Var(within=Reals, bounds=(0,None), initialize=0) m.x482 = Var(within=Reals, bounds=(0,None), initialize=0) m.x483 = Var(within=Reals, bounds=(0,None), initialize=0) m.x484 = Var(within=Reals, bounds=(0,None), initialize=0) m.x485 = Var(within=Reals, bounds=(0,None), initialize=0) m.x486 = Var(within=Reals, bounds=(0,None), initialize=0) m.x487 = Var(within=Reals, bounds=(0,None), initialize=0) m.x488 = Var(within=Reals, bounds=(0,None), initialize=0) m.x489 = Var(within=Reals, bounds=(0,None), initialize=0) m.x490 = Var(within=Reals, bounds=(0,None), initialize=0) m.x491 = Var(within=Reals, bounds=(0,None), initialize=0) m.x492 = Var(within=Reals, bounds=(0,None), initialize=0) m.x493 = Var(within=Reals, bounds=(0,None), initialize=0) m.x494 = Var(within=Reals, bounds=(0,None), initialize=0) m.x495 = Var(within=Reals, bounds=(0,None), initialize=0) m.x496 = Var(within=Reals, bounds=(0,None), initialize=0) m.x497 = Var(within=Reals, bounds=(0,None), initialize=0) m.x498 = Var(within=Reals, bounds=(0,None), initialize=0) m.x499 = Var(within=Reals, bounds=(0,None), initialize=0) m.x500 = Var(within=Reals, bounds=(0,None), initialize=0) m.x501 = Var(within=Reals, bounds=(0,None), initialize=0) m.x502 = Var(within=Reals, bounds=(0,None), initialize=0) m.x503 = Var(within=Reals, bounds=(0,None), initialize=0) m.x504 = Var(within=Reals, bounds=(0,None), initialize=0) m.x505 = Var(within=Reals, bounds=(0,None), initialize=0) m.x506 = Var(within=Reals, bounds=(0,None), initialize=0) m.x507 = Var(within=Reals, bounds=(0,None), initialize=0) m.x508 = Var(within=Reals, bounds=(0,None), initialize=0) m.x509 = Var(within=Reals, bounds=(0,None), initialize=0) m.x510 = Var(within=Reals, bounds=(0,None), initialize=0) m.x511 = Var(within=Reals, bounds=(0,None), initialize=0) m.x512 = Var(within=Reals, bounds=(0,None), initialize=0) m.x513 = Var(within=Reals, bounds=(0,None), initialize=0) m.x514 = Var(within=Reals, bounds=(0,None), initialize=0) m.x515 = Var(within=Reals, bounds=(0,None), initialize=0) m.x516 = Var(within=Reals, bounds=(0,None), initialize=0) m.x517 = Var(within=Reals, bounds=(0,None), initialize=0) m.x518 = Var(within=Reals, bounds=(0,None), initialize=0) m.x519 = Var(within=Reals, bounds=(0,None), initialize=0) m.x520 = Var(within=Reals, bounds=(0,None), initialize=0) m.x521 = Var(within=Reals, bounds=(0,None), initialize=0) m.x522 = Var(within=Reals, bounds=(0,None), initialize=0) m.x523 = Var(within=Reals, bounds=(0,None), initialize=0) m.x524 = Var(within=Reals, bounds=(0,None), initialize=0) m.x525 = Var(within=Reals, bounds=(0,None), initialize=0) m.x526 = Var(within=Reals, bounds=(0,None), initialize=0) m.x527 = Var(within=Reals, bounds=(0,None), initialize=0) m.x528 = Var(within=Reals, bounds=(0,None), initialize=0) m.x529 = Var(within=Reals, bounds=(0,None), initialize=0) m.x530 = Var(within=Reals, bounds=(0,None), initialize=0) m.x531 = Var(within=Reals, bounds=(0,None), initialize=0) m.x532 = Var(within=Reals, bounds=(0,None), initialize=0) m.x533 = Var(within=Reals, bounds=(0,None), initialize=0) m.x534 = Var(within=Reals, bounds=(0,None), initialize=0) m.x535 = Var(within=Reals, bounds=(0,None), initialize=0) m.x536 = Var(within=Reals, bounds=(0,None), initialize=0) m.x537 = Var(within=Reals, bounds=(0,None), initialize=0) m.x538 = Var(within=Reals, bounds=(0,None), initialize=0) m.x539 = Var(within=Reals, bounds=(0,None), initialize=0) m.x540 = Var(within=Reals, bounds=(0,None), initialize=0) m.x541 = Var(within=Reals, bounds=(0,None), initialize=0) m.x542 = Var(within=Reals, bounds=(0,None), initialize=0) m.x543 = Var(within=Reals, bounds=(0,None), initialize=0) m.x544 = Var(within=Reals, bounds=(0,None), initialize=0) m.x545 = Var(within=Reals, bounds=(0,None), initialize=0) m.x546 = Var(within=Reals, bounds=(0,None), initialize=0) m.x547 = Var(within=Reals, bounds=(0,None), initialize=0) m.x548 = Var(within=Reals, bounds=(0,None), initialize=0) m.x549 = Var(within=Reals, bounds=(0,None), initialize=0) m.x550 = Var(within=Reals, bounds=(0,None), initialize=0) m.x551 = Var(within=Reals, bounds=(0,None), initialize=0) m.x552 = Var(within=Reals, bounds=(0,None), initialize=0) m.x553 = Var(within=Reals, bounds=(0,None), initialize=0) m.x554 = Var(within=Reals, bounds=(0,None), initialize=0) m.x555 = Var(within=Reals, bounds=(0,None), initialize=0) m.x556 = Var(within=Reals, bounds=(0,None), initialize=0) m.x557 = Var(within=Reals, bounds=(0,None), initialize=0) m.x558 = Var(within=Reals, bounds=(0,None), initialize=0) m.x559 = Var(within=Reals, bounds=(0,None), initialize=0) m.x560 = Var(within=Reals, bounds=(0,None), initialize=0) m.x561 = Var(within=Reals, bounds=(0,None), initialize=0) m.x562 = Var(within=Reals, bounds=(0,None), initialize=0) m.x563 = Var(within=Reals, bounds=(0,None), initialize=0) m.x564 = Var(within=Reals, bounds=(0,None), initialize=0) m.x565 = Var(within=Reals, bounds=(0,None), initialize=0) m.x566 = Var(within=Reals, bounds=(0,None), initialize=0) m.x567 = Var(within=Reals, bounds=(0,None), initialize=0) m.x568 = Var(within=Reals, bounds=(0,None), initialize=0) m.x569 = Var(within=Reals, bounds=(0,None), initialize=0) m.x570 = Var(within=Reals, bounds=(0,None), initialize=0) m.x571 = Var(within=Reals, bounds=(0,None), initialize=0) m.x572 = Var(within=Reals, bounds=(0,None), initialize=0) m.x573 = Var(within=Reals, bounds=(0,None), initialize=0) m.x574 = Var(within=Reals, bounds=(0,None), initialize=0) m.x575 = Var(within=Reals, bounds=(0,None), initialize=0) m.x576 = Var(within=Reals, bounds=(0,None), initialize=0) m.x577 = Var(within=Reals, bounds=(0,None), initialize=0) m.x578 = Var(within=Reals, bounds=(0,None), initialize=0) m.x579 = Var(within=Reals, bounds=(0,None), initialize=0) m.x580 = Var(within=Reals, bounds=(0,None), initialize=0) m.x581 = Var(within=Reals, bounds=(0,None), initialize=0) m.x582 = Var(within=Reals, bounds=(0,None), initialize=0) m.x583 = Var(within=Reals, bounds=(0,None), initialize=0) m.x584 = Var(within=Reals, bounds=(0,None), initialize=0) m.x585 = Var(within=Reals, bounds=(0,None), initialize=0) m.x586 = Var(within=Reals, bounds=(0,None), initialize=0) m.x587 = Var(within=Reals, bounds=(0,None), initialize=0) m.x588 = Var(within=Reals, bounds=(0,None), initialize=0) m.x589 = Var(within=Reals, bounds=(0,None), initialize=0) m.x590 = Var(within=Reals, bounds=(0,None), initialize=0) m.x591 = Var(within=Reals, bounds=(0,None), initialize=0) m.x592 = Var(within=Reals, bounds=(0,None), initialize=0) m.x593 = Var(within=Reals, bounds=(0,None), initialize=0) m.x594 = Var(within=Reals, bounds=(0,None), initialize=0) m.x595 = Var(within=Reals, bounds=(0,None), initialize=0) m.x596 = Var(within=Reals, bounds=(0,None), initialize=0) m.x597 = Var(within=Reals, bounds=(0,None), initialize=0) m.x598 = Var(within=Reals, bounds=(0,None), initialize=0) m.x599 = Var(within=Reals, bounds=(0,None), initialize=0) m.x600 = Var(within=Reals, bounds=(0,None), initialize=0) m.x601 = Var(within=Reals, bounds=(0,None), initialize=0) m.x602 = Var(within=Reals, bounds=(0,None), initialize=0) m.x603 = Var(within=Reals, bounds=(0,None), initialize=0) m.x604 = Var(within=Reals, bounds=(0,None), initialize=0) m.x605 = Var(within=Reals, bounds=(0,None), initialize=0) m.x606 = Var(within=Reals, bounds=(0,None), initialize=0) m.x607 = Var(within=Reals, bounds=(0,None), initialize=0) m.x608 = Var(within=Reals, bounds=(0,None), initialize=0) m.x609 = Var(within=Reals, bounds=(0,None), initialize=0) m.x610 = Var(within=Reals, bounds=(0,None), initialize=0) m.x611 = Var(within=Reals, bounds=(0,None), initialize=0) m.x612 = Var(within=Reals, bounds=(0,None), initialize=0) m.x613 = Var(within=Reals, bounds=(0,None), initialize=0) m.x614 = Var(within=Reals, bounds=(0,None), initialize=0) m.x615 = Var(within=Reals, bounds=(0,None), initialize=0) m.x616 = Var(within=Reals, bounds=(0,None), initialize=0) m.x617 = Var(within=Reals, bounds=(0,None), initialize=0) m.x618 = Var(within=Reals, bounds=(0,None), initialize=0) m.x619 = Var(within=Reals, bounds=(0,None), initialize=0) m.x620 = Var(within=Reals, bounds=(0,None), initialize=0) m.x621 = Var(within=Reals, bounds=(0,None), initialize=0) m.x622 = Var(within=Reals, bounds=(0,None), initialize=0) m.x623 = Var(within=Reals, bounds=(0,None), initialize=0) m.x624 = Var(within=Reals, bounds=(0,None), initialize=0) m.x625 = Var(within=Reals, bounds=(0,None), initialize=0) m.x626 = Var(within=Reals, bounds=(0,None), initialize=0) m.x627 = Var(within=Reals, bounds=(0,None), initialize=0) m.x628 = Var(within=Reals, bounds=(0,None), initialize=0) m.x629 = Var(within=Reals, bounds=(0,None), initialize=0) m.x630 = Var(within=Reals, bounds=(0,None), initialize=0) m.x631 = Var(within=Reals, bounds=(0,None), initialize=0) m.x632 = Var(within=Reals, bounds=(0,None), initialize=0) m.x633 = Var(within=Reals, bounds=(0,None), initialize=0) m.x634 = Var(within=Reals, bounds=(0,None), initialize=0) m.x635 = Var(within=Reals, bounds=(0,None), initialize=0) m.x636 = Var(within=Reals, bounds=(0,None), initialize=0) m.x637 = Var(within=Reals, bounds=(0,None), initialize=0) m.x638 = Var(within=Reals, bounds=(0,None), initialize=0) m.x639 = Var(within=Reals, bounds=(0,None), initialize=0) m.x640 = Var(within=Reals, bounds=(0,None), initialize=0) m.x641 = Var(within=Reals, bounds=(0,None), initialize=0) m.x642 = Var(within=Reals, bounds=(0,None), initialize=0) m.x643 = Var(within=Reals, bounds=(0,None), initialize=0) m.x644 = Var(within=Reals, bounds=(0,None), initialize=0) m.x645 = Var(within=Reals, bounds=(0,None), initialize=0) m.x646 = Var(within=Reals, bounds=(0,None), initialize=0) m.x647 = Var(within=Reals, bounds=(0,None), initialize=0) m.x648 = Var(within=Reals, bounds=(0,None), initialize=0) m.x649 = Var(within=Reals, bounds=(0,None), initialize=0) m.x650 = Var(within=Reals, bounds=(0,None), initialize=0) m.x651 = Var(within=Reals, bounds=(0,None), initialize=0) m.x652 = Var(within=Reals, bounds=(0,None), initialize=0) m.x653 = Var(within=Reals, bounds=(0,None), initialize=0) m.x654 = Var(within=Reals, bounds=(0,None), initialize=0) m.x655 = Var(within=Reals, bounds=(0,None), initialize=0) m.x656 = Var(within=Reals, bounds=(0,None), initialize=0) m.x657 = Var(within=Reals, bounds=(0,None), initialize=0) m.x658 = Var(within=Reals, bounds=(0,None), initialize=0) m.x659 = Var(within=Reals, bounds=(0,None), initialize=0) m.x660 = Var(within=Reals, bounds=(0,None), initialize=0) m.x661 = Var(within=Reals, bounds=(0,None), initialize=0) m.x662 = Var(within=Reals, bounds=(0,None), initialize=0) m.x663 = Var(within=Reals, bounds=(0,None), initialize=0) m.x664 = Var(within=Reals, bounds=(0,None), initialize=0) m.x665 = Var(within=Reals, bounds=(0,None), initialize=0) m.x666 = Var(within=Reals, bounds=(0,None), initialize=0) m.x667 = Var(within=Reals, bounds=(0,None), initialize=0) m.x668 = Var(within=Reals, bounds=(0,None), initialize=0) m.x669 = Var(within=Reals, bounds=(0,None), initialize=0) m.x670 = Var(within=Reals, bounds=(0,None), initialize=0) m.x671 = Var(within=Reals, bounds=(0,None), initialize=0) m.x672 = Var(within=Reals, bounds=(0,None), initialize=0) m.x673 = Var(within=Reals, bounds=(0,None), initialize=0) m.x674 = Var(within=Reals, bounds=(0,None), initialize=0) m.x675 = Var(within=Reals, bounds=(0,None), initialize=0) m.x676 = Var(within=Reals, bounds=(0,None), initialize=0) m.x677 = Var(within=Reals, bounds=(0,None), initialize=0) m.x678 = Var(within=Reals, bounds=(0,None), initialize=0) m.x679 = Var(within=Reals, bounds=(0,None), initialize=0) m.x680 = Var(within=Reals, bounds=(0,None), initialize=0) m.x681 = Var(within=Reals, bounds=(0,None), initialize=0) m.x682 = Var(within=Reals, bounds=(0,None), initialize=0) m.x683 = Var(within=Reals, bounds=(0,None), initialize=0) m.x684 = Var(within=Reals, bounds=(0,None), initialize=0) m.x685 = Var(within=Reals, bounds=(0,None), initialize=0) m.x686 = Var(within=Reals, bounds=(0,None), initialize=0) m.x687 = Var(within=Reals, bounds=(0,None), initialize=0) m.x688 = Var(within=Reals, bounds=(0,None), initialize=0) m.x689 = Var(within=Reals, bounds=(0,None), initialize=0) m.x690 = Var(within=Reals, bounds=(0,None), initialize=0) m.x691 = Var(within=Reals, bounds=(0,None), initialize=0) m.x692 = Var(within=Reals, bounds=(0,None), initialize=0) m.x693 = Var(within=Reals, bounds=(0,None), initialize=0) m.x694 = Var(within=Reals, bounds=(0,None), initialize=0) m.x695 = Var(within=Reals, bounds=(0,None), initialize=0) m.x696 = Var(within=Reals, bounds=(0,None), initialize=0) m.x697 = Var(within=Reals, bounds=(0,None), initialize=0) m.x698 = Var(within=Reals, bounds=(0,None), initialize=0) m.x699 = Var(within=Reals, bounds=(0,None), initialize=0) m.x700 = Var(within=Reals, bounds=(0,None), initialize=0) m.x701 = Var(within=Reals, bounds=(0,None), initialize=0) m.x702 = Var(within=Reals, bounds=(0,None), initialize=0) m.x703 = Var(within=Reals, bounds=(0,None), initialize=0) m.x704 = Var(within=Reals, bounds=(0,None), initialize=0) m.x705 = Var(within=Reals, bounds=(0,None), initialize=0) m.x706 = Var(within=Reals, bounds=(0,None), initialize=0) m.x707 = Var(within=Reals, bounds=(0,None), initialize=0) m.x708 = Var(within=Reals, bounds=(0,None), initialize=0) m.x709 = Var(within=Reals, bounds=(0,None), initialize=0) m.x710 = Var(within=Reals, bounds=(0,None), initialize=0) m.x711 = Var(within=Reals, bounds=(0,None), initialize=0) m.x712 = Var(within=Reals, bounds=(0,None), initialize=0) m.x713 = Var(within=Reals, bounds=(0,None), initialize=0) m.x714 = Var(within=Reals, bounds=(0,None), initialize=0) m.x715 = Var(within=Reals, bounds=(0,None), initialize=0) m.x716 = Var(within=Reals, bounds=(0,None), initialize=0) m.x717 = Var(within=Reals, bounds=(0,None), initialize=0) m.x718 = Var(within=Reals, bounds=(0,None), initialize=0) m.x719 = Var(within=Reals, bounds=(0,None), initialize=0) m.x720 = Var(within=Reals, bounds=(0,None), initialize=0) m.x721 = Var(within=Reals, bounds=(0,None), initialize=0) m.x722 = Var(within=Reals, bounds=(0,None), initialize=0) m.x723 = Var(within=Reals, bounds=(0,None), initialize=0) m.x724 = Var(within=Reals, bounds=(0,None), initialize=0) m.x725 = Var(within=Reals, bounds=(0,None), initialize=0) m.x726 = Var(within=Reals, bounds=(0,None), initialize=0) m.x727 = Var(within=Reals, bounds=(0,None), initialize=0) m.x728 = Var(within=Reals, bounds=(0,None), initialize=0) m.x729 = Var(within=Reals, bounds=(0,None), initialize=0) m.x730 = Var(within=Reals, bounds=(0,None), initialize=0) m.x731 = Var(within=Reals, bounds=(0,None), initialize=0) m.x732 = Var(within=Reals, bounds=(0,None), initialize=0) m.x733 = Var(within=Reals, bounds=(0,None), initialize=0) m.x734 = Var(within=Reals, bounds=(0,None), initialize=0) m.x735 = Var(within=Reals, bounds=(0,None), initialize=0) m.x736 = Var(within=Reals, bounds=(0,None), initialize=0) m.x737 = Var(within=Reals, bounds=(0,None), initialize=0) m.x738 = Var(within=Reals, bounds=(0,None), initialize=0) m.x739 = Var(within=Reals, bounds=(0,None), initialize=0) m.x740 = Var(within=Reals, bounds=(0,None), initialize=0) m.x741 = Var(within=Reals, bounds=(0,None), initialize=0) m.x742 = Var(within=Reals, bounds=(0,None), initialize=0) m.x743 = Var(within=Reals, bounds=(0,None), initialize=0) m.x744 = Var(within=Reals, bounds=(0,None), initialize=0) m.x745 = Var(within=Reals, bounds=(0,None), initialize=0) m.x746 = Var(within=Reals, bounds=(0,None), initialize=0) m.x747 = Var(within=Reals, bounds=(0,None), initialize=0) m.x748 = Var(within=Reals, bounds=(0,None), initialize=0) m.x749 = Var(within=Reals, bounds=(0,None), initialize=0) m.x750 = Var(within=Reals, bounds=(0,None), initialize=0) m.x751 = Var(within=Reals, bounds=(0,None), initialize=0) m.x752 = Var(within=Reals, bounds=(0,None), initialize=0) m.x753 = Var(within=Reals, bounds=(0,None), initialize=0) m.x754 = Var(within=Reals, bounds=(0,None), initialize=0) m.x755 = Var(within=Reals, bounds=(0,None), initialize=0) m.x756 = Var(within=Reals, bounds=(0,None), initialize=0) m.x757 = Var(within=Reals, bounds=(0,None), initialize=0) m.x758 = Var(within=Reals, bounds=(0,None), initialize=0) m.x759 = Var(within=Reals, bounds=(0,None), initialize=0) m.x760 = Var(within=Reals, bounds=(0,None), initialize=0) m.x761 = Var(within=Reals, bounds=(0,None), initialize=0) m.x762 = Var(within=Reals, bounds=(0,None), initialize=0) m.x763 = Var(within=Reals, bounds=(0,None), initialize=0) m.x764 = Var(within=Reals, bounds=(0,None), initialize=0) m.x765 = Var(within=Reals, bounds=(0,None), initialize=0) m.x766 = Var(within=Reals, bounds=(0,None), initialize=0) m.x767 = Var(within=Reals, bounds=(0,None), initialize=0) m.x768 = Var(within=Reals, bounds=(0,None), initialize=0) m.x769 = Var(within=Reals, bounds=(0,None), initialize=0) m.x770 = Var(within=Reals, bounds=(0,None), initialize=0) m.x771 = Var(within=Reals, bounds=(0,None), initialize=0) m.x772 = Var(within=Reals, bounds=(0,None), initialize=0) m.x773 = Var(within=Reals, bounds=(0,None), initialize=0) m.x774 = Var(within=Reals, bounds=(0,None), initialize=0) m.x775 = Var(within=Reals, bounds=(0,None), initialize=0) m.x776 = Var(within=Reals, bounds=(0,None), initialize=0) m.x777 = Var(within=Reals, bounds=(0,None), initialize=0) m.x778 = Var(within=Reals, bounds=(0,None), initialize=0) m.x779 = Var(within=Reals, bounds=(0,None), initialize=0) m.x780 = Var(within=Reals, bounds=(0,None), initialize=0) m.x781 = Var(within=Reals, bounds=(0,None), initialize=0) m.x782 = Var(within=Reals, bounds=(0,None), initialize=0) m.x783 = Var(within=Reals, bounds=(0,None), initialize=0) m.x784 = Var(within=Reals, bounds=(0,None), initialize=0) m.x785 = Var(within=Reals, bounds=(0,None), initialize=0) m.x786 = Var(within=Reals, bounds=(0,None), initialize=0) m.x787 = Var(within=Reals, bounds=(0,None), initialize=0) m.x788 = Var(within=Reals, bounds=(0,None), initialize=0) m.x789 = Var(within=Reals, bounds=(0,None), initialize=0) m.x790 = Var(within=Reals, bounds=(0,None), initialize=0) m.x791 = Var(within=Reals, bounds=(0,None), initialize=0) m.x792 = Var(within=Reals, bounds=(0,None), initialize=0) m.x793 = Var(within=Reals, bounds=(0,None), initialize=0) m.x794 = Var(within=Reals, bounds=(0,None), initialize=0) m.x795 = Var(within=Reals, bounds=(0,None), initialize=0) m.x796 = Var(within=Reals, bounds=(0,None), initialize=0) m.x797 = Var(within=Reals, bounds=(0,None), initialize=0) m.x798 = Var(within=Reals, bounds=(0,None), initialize=0) m.x799 = Var(within=Reals, bounds=(0,None), initialize=0) m.x800 = Var(within=Reals, bounds=(0,None), initialize=0) m.x801 = Var(within=Reals, bounds=(0,None), initialize=0) m.x802 = Var(within=Reals, bounds=(0,None), initialize=0) m.x803 = Var(within=Reals, bounds=(0,None), initialize=0) m.x804 = Var(within=Reals, bounds=(0,None), initialize=0) m.x805 = Var(within=Reals, bounds=(0,None), initialize=0) m.x806 = Var(within=Reals, bounds=(0,None), initialize=0) m.x807 = Var(within=Reals, bounds=(0,None), initialize=0) m.x808 = Var(within=Reals, bounds=(0,None), initialize=0) m.x809 = Var(within=Reals, bounds=(0,None), initialize=0) m.x810 = Var(within=Reals, bounds=(0,None), initialize=0) m.x811 = Var(within=Reals, bounds=(0,None), initialize=0) m.x812 = Var(within=Reals, bounds=(0,None), initialize=0) m.x813 = Var(within=Reals, bounds=(0,None), initialize=0) m.x814 = Var(within=Reals, bounds=(0,None), initialize=0) m.x815 = Var(within=Reals, bounds=(0,None), initialize=0) m.x816 = Var(within=Reals, bounds=(0,None), initialize=0) m.x817 = Var(within=Reals, bounds=(0,None), initialize=0) m.x818 = Var(within=Reals, bounds=(0,None), initialize=0) m.x819 = Var(within=Reals, bounds=(0,None), initialize=0) m.x820 = Var(within=Reals, bounds=(0,None), initialize=0) m.x821 = Var(within=Reals, bounds=(0,None), initialize=0) m.x822 = Var(within=Reals, bounds=(0,None), initialize=0) m.x823 = Var(within=Reals, bounds=(0,None), initialize=0) m.x824 = Var(within=Reals, bounds=(0,None), initialize=0) m.x825 = Var(within=Reals, bounds=(0,None), initialize=0) m.x826 = Var(within=Reals, bounds=(0,None), initialize=0) m.x827 = Var(within=Reals, bounds=(0,None), initialize=0) m.x828 = Var(within=Reals, bounds=(0,None), initialize=0) m.x829 = Var(within=Reals, bounds=(0,None), initialize=0) m.x830 = Var(within=Reals, bounds=(0,None), initialize=0) m.x831 = Var(within=Reals, bounds=(0,None), initialize=0) m.x832 = Var(within=Reals, bounds=(0,None), initialize=0) m.x833 = Var(within=Reals, bounds=(0,None), initialize=0) m.x834 = Var(within=Reals, bounds=(0,None), initialize=0) m.x835 = Var(within=Reals, bounds=(0,None), initialize=0) m.x836 = Var(within=Reals, bounds=(0,None), initialize=0) m.x837 = Var(within=Reals, bounds=(0,None), initialize=0) m.x838 = Var(within=Reals, bounds=(0,None), initialize=0) m.x839 = Var(within=Reals, bounds=(0,None), initialize=0) m.x840 = Var(within=Reals, bounds=(0,None), initialize=0) m.x841 = Var(within=Reals, bounds=(0,None), initialize=0) m.x842 = Var(within=Reals, bounds=(0,None), initialize=0) m.x843 = Var(within=Reals, bounds=(0,None), initialize=0) m.x844 = Var(within=Reals, bounds=(0,None), initialize=0) m.x845 = Var(within=Reals, bounds=(0,None), initialize=0) m.x846 = Var(within=Reals, bounds=(0,None), initialize=0) m.x847 = Var(within=Reals, bounds=(0,None), initialize=0) m.x848 = Var(within=Reals, bounds=(0,None), initialize=0) m.x849 = Var(within=Reals, bounds=(0,None), initialize=0) m.x850 = Var(within=Reals, bounds=(0,None), initialize=0) m.x851 = Var(within=Reals, bounds=(0,None), initialize=0) m.x852 = Var(within=Reals, bounds=(0,None), initialize=0) m.x853 = Var(within=Reals, bounds=(0,None), initialize=0) m.x854 = Var(within=Reals, bounds=(0,None), initialize=0) m.x855 = Var(within=Reals, bounds=(0,None), initialize=0) m.x856 = Var(within=Reals, bounds=(0,None), initialize=0) m.x857 = Var(within=Reals, bounds=(0,None), initialize=0) m.x858 = Var(within=Reals, bounds=(0,None), initialize=0) m.x859 = Var(within=Reals, bounds=(0,None), initialize=0) m.x860 = Var(within=Reals, bounds=(0,None), initialize=0) m.x861 = Var(within=Reals, bounds=(0,None), initialize=0) m.x862 = Var(within=Reals, bounds=(0,None), initialize=0) m.x863 = Var(within=Reals, bounds=(0,None), initialize=0) m.x864 = Var(within=Reals, bounds=(0,None), initialize=0) m.x865 = Var(within=Reals, bounds=(0,None), initialize=0) m.x866 = Var(within=Reals, bounds=(0,None), initialize=0) m.x867 = Var(within=Reals, bounds=(0,None), initialize=0) m.x868 = Var(within=Reals, bounds=(0,None), initialize=0) m.x869 = Var(within=Reals, bounds=(0,None), initialize=0) m.x870 = Var(within=Reals, bounds=(0,None), initialize=0) m.x871 = Var(within=Reals, bounds=(0,None), initialize=0) m.x872 = Var(within=Reals, bounds=(0,None), initialize=0) m.x873 = Var(within=Reals, bounds=(0,None), initialize=0) m.x874 = Var(within=Reals, bounds=(0,None), initialize=0) m.x875 = Var(within=Reals, bounds=(0,None), initialize=0) m.x876 = Var(within=Reals, bounds=(0,None), initialize=0) m.x877 = Var(within=Reals, bounds=(0,None), initialize=0) m.x878 = Var(within=Reals, bounds=(0,None), initialize=0) m.x879 = Var(within=Reals, bounds=(0,None), initialize=0) m.x880 = Var(within=Reals, bounds=(0,None), initialize=0) m.x881 = Var(within=Reals, bounds=(0,None), initialize=0) m.x882 = Var(within=Reals, bounds=(0,None), initialize=0) m.x883 = Var(within=Reals, bounds=(0,None), initialize=0) m.x884 = Var(within=Reals, bounds=(0,None), initialize=0) m.x885 = Var(within=Reals, bounds=(0,None), initialize=0) m.x886 = Var(within=Reals, bounds=(0,None), initialize=0) m.x887 = Var(within=Reals, bounds=(0,None), initialize=0) m.x888 = Var(within=Reals, bounds=(0,None), initialize=0) m.x889 = Var(within=Reals, bounds=(0,None), initialize=0) m.x890 = Var(within=Reals, bounds=(0,None), initialize=0) m.x891 = Var(within=Reals, bounds=(0,None), initialize=0) m.x892 = Var(within=Reals, bounds=(0,None), initialize=0) m.x893 = Var(within=Reals, bounds=(0,None), initialize=0) m.x894 = Var(within=Reals, bounds=(0,None), initialize=0) m.x895 = Var(within=Reals, bounds=(0,None), initialize=0) m.x896 = Var(within=Reals, bounds=(0,None), initialize=0) m.x897 = Var(within=Reals, bounds=(0,None), initialize=0) m.x898 = Var(within=Reals, bounds=(0,None), initialize=0) m.x899 = Var(within=Reals, bounds=(0,None), initialize=0) m.x900 = Var(within=Reals, bounds=(0,None), initialize=0) m.x901 = Var(within=Reals, bounds=(0,None), initialize=0) m.x902 = Var(within=Reals, bounds=(0,None), initialize=0) m.x903 = Var(within=Reals, bounds=(0,None), initialize=0) m.x904 = Var(within=Reals, bounds=(0,None), initialize=0) m.x905 = Var(within=Reals, bounds=(0,None), initialize=0) m.x906 = Var(within=Reals, bounds=(0,None), initialize=0) m.x907 = Var(within=Reals, bounds=(0,None), initialize=0) m.x908 = Var(within=Reals, bounds=(0,None), initialize=0) m.x909 = Var(within=Reals, bounds=(0,None), initialize=0) m.x910 = Var(within=Reals, bounds=(0,None), initialize=0) m.x911 = Var(within=Reals, bounds=(0,None), initialize=0) m.x912 = Var(within=Reals, bounds=(0,None), initialize=0) m.x913 = Var(within=Reals, bounds=(0,None), initialize=0) m.x914 = Var(within=Reals, bounds=(0,None), initialize=0) m.x915 = Var(within=Reals, bounds=(0,None), initialize=0) m.x916 = Var(within=Reals, bounds=(0,None), initialize=0) m.x917 = Var(within=Reals, bounds=(0,None), initialize=0) m.x918 = Var(within=Reals, bounds=(0,None), initialize=0) m.x919 = Var(within=Reals, bounds=(0,None), initialize=0) m.x920 = Var(within=Reals, bounds=(0,None), initialize=0) m.x921 = Var(within=Reals, bounds=(0,None), initialize=0) m.x922 = Var(within=Reals, bounds=(0,None), initialize=0) m.x923 = Var(within=Reals, bounds=(0,None), initialize=0) m.x924 = Var(within=Reals, bounds=(0,None), initialize=0) m.x925 = Var(within=Reals, bounds=(0,None), initialize=0) m.x926 = Var(within=Reals, bounds=(0,None), initialize=0) m.x927 = Var(within=Reals, bounds=(0,None), initialize=0) m.x928 = Var(within=Reals, bounds=(0,None), initialize=0) m.x929 = Var(within=Reals, bounds=(0,None), initialize=0) m.x930 = Var(within=Reals, bounds=(0,None), initialize=0) m.x931 = Var(within=Reals, bounds=(0,None), initialize=0) m.x932 = Var(within=Reals, bounds=(0,None), initialize=0) m.x933 = Var(within=Reals, bounds=(0,None), initialize=0) m.x934 = Var(within=Reals, bounds=(0,None), initialize=0) m.x935 = Var(within=Reals, bounds=(0,None), initialize=0) m.x936 = Var(within=Reals, bounds=(0,None), initialize=0) m.x937 = Var(within=Reals, bounds=(0,None), initialize=0) m.x938 = Var(within=Reals, bounds=(0,None), initialize=0) m.x939 = Var(within=Reals, bounds=(0,None), initialize=0) m.x940 = Var(within=Reals, bounds=(0,None), initialize=0) m.x941 = Var(within=Reals, bounds=(0,None), initialize=0) m.x942 = Var(within=Reals, bounds=(0,None), initialize=0) m.x943 = Var(within=Reals, bounds=(0,None), initialize=0) m.x944 = Var(within=Reals, bounds=(0,None), initialize=0) m.x945 = Var(within=Reals, bounds=(0,None), initialize=0) m.x946 = Var(within=Reals, bounds=(0,None), initialize=0) m.x947 = Var(within=Reals, bounds=(0,None), initialize=0) m.x948 = Var(within=Reals, bounds=(0,None), initialize=0) m.x949 = Var(within=Reals, bounds=(0,None), initialize=0) m.x950 = Var(within=Reals, bounds=(0,None), initialize=0) m.x951 = Var(within=Reals, bounds=(0,None), initialize=0) m.x952 = Var(within=Reals, bounds=(0,None), initialize=0) m.x953 = Var(within=Reals, bounds=(0,None), initialize=0) m.x954 = Var(within=Reals, bounds=(0,None), initialize=0) m.x955 = Var(within=Reals, bounds=(0,None), initialize=0) m.x956 = Var(within=Reals, bounds=(0,None), initialize=0) m.x957 = Var(within=Reals, bounds=(0,None), initialize=0) m.x958 = Var(within=Reals, bounds=(0,None), initialize=0) m.x959 = Var(within=Reals, bounds=(0,None), initialize=0) m.x960 = Var(within=Reals, bounds=(0,None), initialize=0) m.x961 = Var(within=Reals, bounds=(0,None), initialize=0) m.x962 = Var(within=Reals, bounds=(0,None), initialize=0) m.x963 = Var(within=Reals, bounds=(0,None), initialize=0) m.x964 = Var(within=Reals, bounds=(0,None), initialize=0) m.x965 = Var(within=Reals, bounds=(0,None), initialize=0) m.x966 = Var(within=Reals, bounds=(0,None), initialize=0) m.x967 = Var(within=Reals, bounds=(0,None), initialize=0) m.x968 = Var(within=Reals, bounds=(0,None), initialize=0) m.x969 = Var(within=Reals, bounds=(0,None), initialize=0) m.x970 = Var(within=Reals, bounds=(0,None), initialize=0) m.x971 = Var(within=Reals, bounds=(0,None), initialize=0) m.x972 = Var(within=Reals, bounds=(0,None), initialize=0) m.x973 = Var(within=Reals, bounds=(0,None), initialize=0) m.x974 = Var(within=Reals, bounds=(0,None), initialize=0) m.x975 = Var(within=Reals, bounds=(0,None), initialize=0) m.x976 = Var(within=Reals, bounds=(0,None), initialize=0) m.x977 = Var(within=Reals, bounds=(0,None), initialize=0) m.x978 = Var(within=Reals, bounds=(0,None), initialize=0) m.x979 = Var(within=Reals, bounds=(0,None), initialize=0) m.x980 = Var(within=Reals, bounds=(0,None), initialize=0) m.x981 = Var(within=Reals, bounds=(0,None), initialize=0) m.x982 = Var(within=Reals, bounds=(0,None), initialize=0) m.x983 = Var(within=Reals, bounds=(0,None), initialize=0) m.x984 = Var(within=Reals, bounds=(0,None), initialize=0) m.x985 = Var(within=Reals, bounds=(0,None), initialize=0) m.x986 = Var(within=Reals, bounds=(0,None), initialize=0) m.x987 = Var(within=Reals, bounds=(0,None), initialize=0) m.x988 = Var(within=Reals, bounds=(0,None), initialize=0) m.x989 = Var(within=Reals, bounds=(0,None), initialize=0) m.x990 = Var(within=Reals, bounds=(0,None), initialize=0) m.x991 = Var(within=Reals, bounds=(0,None), initialize=0) m.x992 = Var(within=Reals, bounds=(0,None), initialize=0) m.x993 = Var(within=Reals, bounds=(0,None), initialize=0) m.x994 = Var(within=Reals, bounds=(0,None), initialize=0) m.x995 = Var(within=Reals, bounds=(0,None), initialize=0) m.x996 = Var(within=Reals, bounds=(0,None), initialize=0) m.x997 = Var(within=Reals, bounds=(0,None), initialize=0) m.x998 = Var(within=Reals, bounds=(0,None), initialize=0) m.x999 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1000 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1001 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1002 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1003 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1004 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1005 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1006 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1007 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1008 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1009 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1010 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1011 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1012 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1013 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1014 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1015 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1016 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1017 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1018 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1019 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1020 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1021 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1022 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1023 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1024 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1025 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1026 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1027 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1028 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1029 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1030 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1031 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1032 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1033 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1034 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1035 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1036 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1037 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1038 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1039 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1040 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1041 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1042 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1043 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1044 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1045 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1046 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1047 = Var(within=Reals, bounds=(0,None), initialize=0) m.x1048 = Var(within=Reals, bounds=(0,None), initialize=0) m.b1049 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1050 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1051 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1052 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1053 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1054 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1055 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1056 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1057 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1058 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1059 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1060 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1061 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1062 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1063 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1064 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1065 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1066 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1067 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1068 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1069 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1070 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1071 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1072 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1073 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1074 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1075 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1076 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1077 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1078 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1079 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1080 = Var(within=Binary, bounds=(0,1), initialize=0) m.b1081 = Var(within=Binary, bounds=(0,1), initialize=0) m.b108
Hi Will. Unfortunately, the attached code in your last comment is incomplete. I tried your previous one and changed the MIP solver to cplex. Here is the output.
SolverFactory('mindtpy').solve(m, mip_solver='cplex',
nlp_solver='gams',
#nlp_solver_tee=True,
nlp_solver_args=dict(solver='baron'),
tee=True,
)
Output
python syn40m04m_solve_linear.py 4s Py base
Starting MindtPy version 0.1.0 using OA algorithm
iteration_limit: 50
stalling_limit: 15
time_limit: 600
strategy: OA
add_regularization: None
call_after_main_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23450>
call_after_subproblem_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23490>
call_after_subproblem_feasible: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab234d0>
tee: true
logger: <Logger pyomo.contrib.mindtpy (INFO)>
logging_level: 20
integer_to_binary: false
add_no_good_cuts: false
use_tabu_list: false
single_tree: false
solution_pool: false
num_solution_iteration: 5
cycling_check: true
feasibility_norm: L_infinity
differentiate_mode: reverse_symbolic
use_mcpp: false
calculate_dual_at_solution: false
use_fbbt: false
use_dual_bound: true
partition_obj_nonlinear_terms: true
quadratic_strategy: 0
move_objective: false
add_cuts_at_incumbent: false
heuristic_nonconvex: false
init_strategy: rNLP
level_coef: 0.5
solution_limit: 10
reduce_level_coef: false
use_bb_tree_incumbent: false
sqp_lag_scaling_coef: fixed
fp_cutoffdecr: 0.1
fp_iteration_limit: 20
fp_projcuts: true
fp_transfercuts: true
fp_projzerotol: 0.0001
fp_mipgap: 0.01
fp_discrete_only: true
fp_main_norm: L1
fp_norm_constraint: true
fp_norm_constraint_coef: 1.0
add_slack: false
max_slack: 1000.0
OA_penalty_factor: 1000.0
equality_relaxation: false
linearize_inactive: false
nlp_solver: gams
nlp_solver_args:
solver: baron
mip_solver: cplex
mip_solver_args:
mip_solver_mipgap: 0.0001
threads: 0
regularization_mip_threads: 0
solver_tee: false
mip_solver_tee: false
nlp_solver_tee: false
mip_regularization_solver: None
absolute_bound_tolerance: 0.0001
relative_bound_tolerance: 0.001
small_dual_tolerance: 1.0e-08
integer_tolerance: 1.0e-05
constraint_tolerance: 1.0e-06
variable_tolerance: 1.0e-08
zero_tolerance: 1.0e-08
obj_bound: 1000000000000000.0
continuous_var_bound: 10000000000.0
integer_var_bound: 1000000000.0
initial_bound_coef: 0.1
-----------------------------------------------------------------------------------------------
Mixed-Integer Nonlinear Decomposition Toolbox in Pyomo (MindtPy)
-----------------------------------------------------------------------------------------------
For more information, please visit
https://pyomo.readthedocs.io/en/stable/contributed_packages/mindtpy.html
If you use this software, please cite the following:
Bernal, David E., et al. Mixed-integer nonlinear decomposition toolbox for Pyomo (MindtPy).
Computer Aided Chemical Engineering. Vol. 44. Elsevier, 2018. 895-900.
Original model has 2104 constraints (112 nonlinear) and 0 disjunctions, with 840 variables, of which 320 are binary, 0 are integer, and 520 are continuous.
rNLP is the initial strategy being used.
===============================================================================================
Iteration | Subproblem Type | Objective Value | Primal Bound | Dual Bound | Gap | Time(s)
relaxed NLP is not solved to optimality.
- Relaxed NLP 9168.63 -inf 9169.55 nan% 2.24
1 MILP 1887.59 -inf 1887.59 nan% 2.51
* 1 Fixed NLP 777.973 777.973 1887.59 142.63% 3.24
2 MILP 953.471 777.973 953.471 22.56% 3.46
* 2 Fixed NLP 901.109 901.109 953.471 5.81% 4.21
3 MILP 903.068 901.109 903.068 0.22% 4.47
* 3 Fixed NLP 901.642 901.642 903.068 0.16% 5.14
4 MILP 901.764 901.642 901.764 0.01% 5.69
MindtPy exiting on bound convergence. Relative gap : 0.0001352826792759511 <= relative tolerance: 0.001
===============================================================================================
Primal integral : 372.9502
Dual integral : 18848.2326
Primal-dual gap integral : 19221.1828
Zedong, Yeah, reproducing is going to be a bit tricky because of solver versions. Using gams 42.4.0 - Baron as the NLP solver and Cplex v22.1.0 with your mindtpy parameters with 2 threads throws the error. It works fine with 1 thread. Try setting threads=2? I am completely unsure why changing the number of threads causes the error.
Regards, Will
On Mon, Jun 5, 2023 at 12:31 PM Zedong @.***> wrote:
Hi Will. Unfortunately, the attached code in your last comment is incomplete. I tried your previous one and changed the MIP solver to cplex. Here is the output.
SolverFactory('mindtpy').solve(m, mip_solver='cplex', nlp_solver='gams',
nlp_solver_tee=True,
nlp_solver_args=dict(solver='baron'), tee=True, )
Output
python syn40m04m_solve_linear.py 4s Py base Starting MindtPy version 0.1.0 using OA algorithm iteration_limit: 50 stalling_limit: 15 time_limit: 600 strategy: OA add_regularization: None call_after_main_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23450> call_after_subproblem_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23490> call_after_subproblem_feasible: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab234d0> tee: true logger: <Logger pyomo.contrib.mindtpy (INFO)> logging_level: 20 integer_to_binary: false add_no_good_cuts: false use_tabu_list: false single_tree: false solution_pool: false num_solution_iteration: 5 cycling_check: true feasibility_norm: L_infinity differentiate_mode: reverse_symbolic use_mcpp: false calculate_dual_at_solution: false use_fbbt: false use_dual_bound: true partition_obj_nonlinear_terms: true quadratic_strategy: 0 move_objective: false add_cuts_at_incumbent: false heuristic_nonconvex: false init_strategy: rNLP level_coef: 0.5 solution_limit: 10 reduce_level_coef: false use_bb_tree_incumbent: false sqp_lag_scaling_coef: fixed fp_cutoffdecr: 0.1 fp_iteration_limit: 20 fp_projcuts: true fp_transfercuts: true fp_projzerotol: 0.0001 fp_mipgap: 0.01 fp_discrete_only: true fp_main_norm: L1 fp_norm_constraint: true fp_norm_constraint_coef: 1.0 add_slack: false max_slack: 1000.0 OA_penalty_factor: 1000.0 equality_relaxation: false linearize_inactive: false nlp_solver: gams nlp_solver_args: solver: baron mip_solver: cplex mip_solver_args: mip_solver_mipgap: 0.0001 threads: 0 regularization_mip_threads: 0 solver_tee: false mip_solver_tee: false nlp_solver_tee: false mip_regularization_solver: None absolute_bound_tolerance: 0.0001 relative_bound_tolerance: 0.001 small_dual_tolerance: 1.0e-08 integer_tolerance: 1.0e-05 constraint_tolerance: 1.0e-06 variable_tolerance: 1.0e-08 zero_tolerance: 1.0e-08 obj_bound: 1000000000000000.0 continuous_var_bound: 10000000000.0 integer_var_bound: 1000000000.0 initial_bound_coef: 0.1
Mixed-Integer Nonlinear Decomposition Toolbox in Pyomo (MindtPy)
For more information, please visit https://pyomo.readthedocs.io/en/stable/contributed_packages/mindtpy.html If you use this software, please cite the following: Bernal, David E., et al. Mixed-integer nonlinear decomposition toolbox for Pyomo (MindtPy). Computer Aided Chemical Engineering. Vol. 44. Elsevier, 2018. 895-900.
Original model has 2104 constraints (112 nonlinear) and 0 disjunctions, with 840 variables, of which 320 are binary, 0 are integer, and 520 are continuous. rNLP is the initial strategy being used.
=============================================================================================== Iteration | Subproblem Type | Objective Value | Primal Bound | Dual Bound | Gap | Time(s)
relaxed NLP is not solved to optimality.
Relaxed NLP 9168.63 -inf 9169.55 nan% 2.24 1 MILP 1887.59 -inf 1887.59 nan% 2.51
- 1 Fixed NLP 777.973 777.973 1887.59 142.63% 3.24 2 MILP 953.471 777.973 953.471 22.56% 3.46
- 2 Fixed NLP 901.109 901.109 953.471 5.81% 4.21 3 MILP 903.068 901.109 903.068 0.22% 4.47
- 3 Fixed NLP 901.642 901.642 903.068 0.16% 5.14 4 MILP 901.764 901.642 901.764 0.01% 5.69 MindtPy exiting on bound convergence. Relative gap : 0.0001352826792759511 <= relative tolerance: 0.001
=============================================================================================== Primal integral : 372.9502 Dual integral : 18848.2326 Primal-dual gap integral : 19221.1828
— Reply to this email directly, view it on GitHub https://github.com/Pyomo/pyomo/issues/2864#issuecomment-1577115118, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIOSMCKBI35OAGBBBEBYRLTXJYCULANCNFSM6AAAAAAYW6F4MM . You are receiving this because you were mentioned.Message ID: @.***>
Here is the output that I get: Starting MindtPy version 0.1.0 using OA algorithm iteration_limit: 50 stalling_limit: 15 time_limit: 600 strategy: OA add_regularization: None call_after_main_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7f2e0f8c25e0> call_after_subproblem_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7f2e0f8c2610> call_after_subproblem_feasible: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7f2e0f8c2640> tee: true logger: <Logger pyomo.contrib.mindtpy (INFO)> logging_level: 20 integer_to_binary: false add_no_good_cuts: false use_tabu_list: false single_tree: false solution_pool: false num_solution_iteration: 5 cycling_check: true feasibility_norm: L_infinity differentiate_mode: reverse_symbolic use_mcpp: false calculate_dual_at_solution: false use_fbbt: false use_dual_bound: true partition_obj_nonlinear_terms: true quadratic_strategy: 0 move_objective: false add_cuts_at_incumbent: false heuristic_nonconvex: false init_strategy: rNLP level_coef: 0.5 solution_limit: 10 reduce_level_coef: false use_bb_tree_incumbent: false sqp_lag_scaling_coef: fixed fp_cutoffdecr: 0.1 fp_iteration_limit: 20 fp_projcuts: true fp_transfercuts: true fp_projzerotol: 0.0001 fp_mipgap: 0.01 fp_discrete_only: true fp_main_norm: L1 fp_norm_constraint: true fp_norm_constraint_coef: 1.0 add_slack: false max_slack: 1000.0 OA_penalty_factor: 1000.0 equality_relaxation: false linearize_inactive: false nlp_solver: gams nlp_solver_args: solver: baron mip_solver: cplex mip_solver_args: mip_solver_mipgap: 0.0001 threads: 2 regularization_mip_threads: 0 solver_tee: false mip_solver_tee: false nlp_solver_tee: false mip_regularization_solver: None absolute_bound_tolerance: 0.0001 relative_bound_tolerance: 0.001 small_dual_tolerance: 1e-08 integer_tolerance: 1e-05 constraint_tolerance: 1e-06 variable_tolerance: 1e-08 zero_tolerance: 1e-08 obj_bound: 1000000000000000.0 continuous_var_bound: 10000000000.0 integer_var_bound: 1000000000.0 initial_bound_coef: 0.1
Mixed-Integer Nonlinear Decomposition Toolbox in Pyomo
For more information, please visit https://pyomo.readthedocs.io/en/stable/contributed_packages/mindtpy.html If you use this software, please cite the following: Bernal, David E., et al. Mixed-integer nonlinear decomposition toolbox for Pyomo (MindtPy). Computer Aided Chemical Engineering. Vol. 44. Elsevier, 2018. 895-900.
Original model has 2904 constraints (112 nonlinear) and 0 disjunctions, with 1528 variables, of which 320 are binary, 0 are integer, and 1208 are continuous. rNLP is the initial strategy being used.
=============================================================================================== Iteration | Subproblem Type | Objective Value | Primal Bound | Dual Bound | Gap | Time(s)
relaxed NLP is not solved to optimality.
Relaxed NLP 920.153 -inf 920.245 nan% 1.41 1 MILP 918.524 -inf 918.524 nan% 1.61 NLP subproblem was locally infeasible. Solving feasibility problem ERROR: GAMS encountered an error during solve. Check listing file for details. ERROR: ERROR: GAMS Listing file:
GAMS 42.4.0 9dfaaa40 Mar 16, 2023 LEX-LEG x86 64bit/Linux - 06/05/23 13:08:46 Page 1 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m C o m p i l a t i o n
COMPILATION TIME = 0.012 SECONDS 3 MB 42.4.0 9dfaaa40 LEX-LEG GAMS 42.4.0 9dfaaa40 Mar 16, 2023 LEX-LEG x86 64bit/Linux - 06/05/23 13:08:46 Page 2 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Model Analysis SOLVE GAMS_MODEL Using NLP From line 8287
**** Exec Error at line 5854: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1729_hi =L=
c1729_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 5855: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1730_hi =L=
c1730_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 5856: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1731_hi =L=
c1731_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 5890: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1765_hi =L=
c1765_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 5891: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1766_hi =L=
c1766_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 5892: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c1767_hi =L=
c1767_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6548: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2423_hi =L=
c2423_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6549: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2424_hi =L=
c2424_hi.. 0 =L= -6.06174128886069E-7 ; (LHS = 0, INFES = 6.06174128886069E-7 ****)
**** Exec Error at line 6560: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2435_hi =L=
c2435_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6561: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2436_hi =L=
c2436_hi.. 0 =L= -6.06174128886069E-7 ; (LHS = 0, INFES = 6.06174128886069E-7 ****)
**** Exec Error at line 6565: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2440_hi =L=
c2440_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6584: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2459_hi =L=
c2459_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6585: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2460_hi =L=
c2460_hi.. 0 =L= -6.06174128886069E-7 ; (LHS = 0, INFES = 6.06174128886069E-7 ****)
**** Exec Error at line 6589: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2464_hi =L=
c2464_hi.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6703: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2578_lo =L=
c2578_lo.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6704: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2579_lo =L=
c2579_lo.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6705: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2580_lo =L=
c2580_lo.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
**** Exec Error at line 6742: Equation infeasible due to rhs value
**** INFEASIBLE EQUATIONS ...
---- c2617_lo =L=
c2617_lo.. 0 =L= -3.03087064443035E-7 ; (LHS = 0, INFES = 3.03087064443035E-7 ****)
GAMS 42.4.0 9dfaaa40 Mar 16, 2023 LEX-LEG x86 64bit/Linux - 06/05/23 13:08:46 Page 3 G e n e r a l A l g e b r a i c M o d e l i n g S y s t e m Model Statistics SOLVE GAMS_MODEL Using NLP From line 8287
MODEL STATISTICS
BLOCKS OF EQUATIONS 2,905 SINGLE EQUATIONS 1,823 BLOCKS OF VARIABLES 1,210 SINGLE VARIABLES 1,210 NON ZERO ELEMENTS 2,978 NON LINEAR N-Z 0 CODE LENGTH 922 CONSTANT POOL 36
GENERATION TIME = 0.004 SECONDS 5 MB 42.4.0 9dfaaa40 LEX-LEG
**** SOLVE from line 8287 ABORTED, EXECERROR = 18
EXECUTION TIME = 0.006 SECONDS 5 MB 42.4.0 9dfaaa40 LEX-LEG
USER: Prof. Ignacio E. Grossmann G221207|0002AS-GEN Carnegie Mellon University, Dept. of Chemical Engineering DCE375 License for teaching and research at degree granting institutions
**** FILE SUMMARY
Input /tmp/tmpyn5kvq80/model.gms Output /tmp/tmpyn5kvq80/output.lst
**** USER ERROR(S) ENCOUNTERED
Traceback (most recent call last):
File "/media/sf_VMShare2/mindtpy/syn40m04hfsg.py", line 4884, in
On Mon, Jun 5, 2023 at 1:04 PM William S @.***> wrote:
Zedong, Yeah, reproducing is going to be a bit tricky because of solver versions. Using gams 42.4.0 - Baron as the NLP solver and Cplex v22.1.0 with your mindtpy parameters with 2 threads throws the error. It works fine with 1 thread. Try setting threads=2? I am completely unsure why changing the number of threads causes the error.
Regards, Will
On Mon, Jun 5, 2023 at 12:31 PM Zedong @.***> wrote:
Hi Will. Unfortunately, the attached code in your last comment is incomplete. I tried your previous one and changed the MIP solver to cplex. Here is the output.
SolverFactory('mindtpy').solve(m, mip_solver='cplex', nlp_solver='gams',
nlp_solver_tee=True,
nlp_solver_args=dict(solver='baron'), tee=True, )
Output
python syn40m04m_solve_linear.py 4s Py base Starting MindtPy version 0.1.0 using OA algorithm iteration_limit: 50 stalling_limit: 15 time_limit: 600 strategy: OA add_regularization: None call_after_main_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23450> call_after_subproblem_solve: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab23490> call_after_subproblem_feasible: <pyomo.contrib.gdpopt.util._DoNothing object at 0x7fc7dab234d0> tee: true logger: <Logger pyomo.contrib.mindtpy (INFO)> logging_level: 20 integer_to_binary: false add_no_good_cuts: false use_tabu_list: false single_tree: false solution_pool: false num_solution_iteration: 5 cycling_check: true feasibility_norm: L_infinity differentiate_mode: reverse_symbolic use_mcpp: false calculate_dual_at_solution: false use_fbbt: false use_dual_bound: true partition_obj_nonlinear_terms: true quadratic_strategy: 0 move_objective: false add_cuts_at_incumbent: false heuristic_nonconvex: false init_strategy: rNLP level_coef: 0.5 solution_limit: 10 reduce_level_coef: false use_bb_tree_incumbent: false sqp_lag_scaling_coef: fixed fp_cutoffdecr: 0.1 fp_iteration_limit: 20 fp_projcuts: true fp_transfercuts: true fp_projzerotol: 0.0001 fp_mipgap: 0.01 fp_discrete_only: true fp_main_norm: L1 fp_norm_constraint: true fp_norm_constraint_coef: 1.0 add_slack: false max_slack: 1000.0 OA_penalty_factor: 1000.0 equality_relaxation: false linearize_inactive: false nlp_solver: gams nlp_solver_args: solver: baron mip_solver: cplex mip_solver_args: mip_solver_mipgap: 0.0001 threads: 0 regularization_mip_threads: 0 solver_tee: false mip_solver_tee: false nlp_solver_tee: false mip_regularization_solver: None absolute_bound_tolerance: 0.0001 relative_bound_tolerance: 0.001 small_dual_tolerance: 1.0e-08 integer_tolerance: 1.0e-05 constraint_tolerance: 1.0e-06 variable_tolerance: 1.0e-08 zero_tolerance: 1.0e-08 obj_bound: 1000000000000000.0 continuous_var_bound: 10000000000.0 integer_var_bound: 1000000000.0 initial_bound_coef: 0.1
Mixed-Integer Nonlinear Decomposition Toolbox in Pyomo (MindtPy)
For more information, please visit https://pyomo.readthedocs.io/en/stable/contributed_packages/mindtpy.html If you use this software, please cite the following: Bernal, David E., et al. Mixed-integer nonlinear decomposition toolbox for Pyomo (MindtPy). Computer Aided Chemical Engineering. Vol. 44. Elsevier, 2018. 895-900.
Original model has 2104 constraints (112 nonlinear) and 0 disjunctions, with 840 variables, of which 320 are binary, 0 are integer, and 520 are continuous. rNLP is the initial strategy being used.
=============================================================================================== Iteration | Subproblem Type | Objective Value | Primal Bound | Dual Bound | Gap | Time(s)
relaxed NLP is not solved to optimality.
Relaxed NLP 9168.63 -inf 9169.55 nan% 2.24 1 MILP 1887.59 -inf 1887.59 nan% 2.51
- 1 Fixed NLP 777.973 777.973 1887.59 142.63% 3.24 2 MILP 953.471 777.973 953.471 22.56% 3.46
- 2 Fixed NLP 901.109 901.109 953.471 5.81% 4.21 3 MILP 903.068 901.109 903.068 0.22% 4.47
- 3 Fixed NLP 901.642 901.642 903.068 0.16% 5.14 4 MILP 901.764 901.642 901.764 0.01% 5.69 MindtPy exiting on bound convergence. Relative gap : 0.0001352826792759511 <= relative tolerance: 0.001
=============================================================================================== Primal integral : 372.9502 Dual integral : 18848.2326 Primal-dual gap integral : 19221.1828
— Reply to this email directly, view it on GitHub https://github.com/Pyomo/pyomo/issues/2864#issuecomment-1577115118, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIOSMCKBI35OAGBBBEBYRLTXJYCULANCNFSM6AAAAAAYW6F4MM . You are receiving this because you were mentioned.Message ID: @.***>
Hi Will. I still cannot reproduce the error by setting threads=2
.
Could you try the following example to test if deactivate_trivial_constraints
works well in your computational environment?
from pyomo.environ import *
from pyomo.contrib.mindtpy.tests.MINLP_simple import SimpleMINLP
m = SimpleMINLP()
TransformationFactory('core.relax_integer_vars').apply_to(m)
m.pprint()
m.constraint8 = Constraint(expr= 0 <= -1e-5 + m.Y[1])
m.Y[1].fix(0)
TransformationFactory('contrib.deactivate_trivial_constraints').apply_to(m,ignore_infeasible=False,tolerance=1e-4)
m.pprint()
opt = SolverFactory('ipopt')
result = opt.solve(m,tee=True)
Since we fix m.Y[1]
to zero, constraint8
is infeasible. However, contrib.deactivate_trivial_constraints
will deactivate this constraint when proper tolerance is set.
Output
constraint8 : Size=1, Index=None, Active=True
Key : Lower : Body : Upper : Active
None : 0.0 : -1e-05 + Y[1] : +Inf : True
constraint8 : Size=1, Index=None, Active=False
Key : Lower : Body : Upper : Active
None : 0.0 : -1e-05 + Y[1] : +Inf : False
Ipopt 3.13.3:
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit https://github.com/coin-or/Ipopt
******************************************************************************
This is Ipopt version 3.13.3, running with linear solver mumps.
NOTE: Other linear solvers might be more efficient (see Ipopt documentation).
Number of nonzeros in equality constraint Jacobian...: 0
Number of nonzeros in inequality constraint Jacobian.: 14
Number of nonzeros in Lagrangian Hessian.............: 2
Total number of variables............................: 4
variables with only lower bounds: 0
variables with lower and upper bounds: 4
variables with only upper bounds: 0
Total number of equality constraints.................: 0
Total number of inequality constraints...............: 7
inequality constraints with only lower bounds: 4
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 1.9802000e+00 3.95e+00 1.38e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 1.9632289e+00 3.77e+00 2.69e+00 -1.0 7.95e-01 - 1.40e-02 4.84e-02h 1
2 1.7857905e+00 1.02e+00 3.35e+02 -1.0 1.89e+00 - 1.11e-02 8.08e-01f 1
3 2.4634345e+00 4.34e-01 2.48e+02 -1.0 1.01e+01 0.0 6.20e-03 7.07e-02h 3
4 3.8830144e+00 0.00e+00 8.47e+01 -1.0 4.96e-01 2.2 1.37e-01 1.00e+00h 1
5 3.9660112e+00 0.00e+00 2.53e+00 -1.0 2.17e-01 - 9.74e-01 1.00e+00h 1
6 2.6200637e+00 2.27e-01 4.00e-01 -1.0 8.20e-01 - 1.00e+00 7.71e-01f 1
7 2.6012172e+00 2.08e-01 3.00e-01 -1.7 3.59e-01 - 1.00e+00 4.77e-01h 1
8 2.7704290e+00 0.00e+00 1.10e-01 -1.7 1.70e-01 - 1.00e+00 1.00e+00h 1
9 2.7279484e+00 5.12e-04 3.06e-03 -2.5 1.48e-01 - 1.00e+00 9.79e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10 2.7204462e+00 0.00e+00 8.00e-05 -3.8 3.92e-02 - 1.00e+00 1.00e+00h 1
11 2.7200514e+00 0.00e+00 1.77e-07 -5.7 1.00e-03 - 1.00e+00 1.00e+00h 1
12 2.7200460e+00 0.00e+00 1.20e-11 -8.6 1.14e-05 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 12
(scaled) (unscaled)
Objective...............: 2.7200460176099206e+00 2.7200460176099206e+00
Dual infeasibility......: 1.1977778401079966e-11 1.1977778401079966e-11
Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00
Complementarity.........: 2.5202438248233580e-09 2.5202438248233580e-09
Overall NLP error.......: 2.5202438248233580e-09 2.5202438248233580e-09
Number of objective function evaluations = 17
Number of objective gradient evaluations = 13
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 17
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 13
Number of Lagrangian Hessian evaluations = 12
Total CPU secs in IPOPT (w/o function evaluations) = 0.005
Total CPU secs in NLP function evaluations = 0.000
EXIT: Optimal Solution Found.
If we comment the contrib.deactivate_trivial_constraints line, the output will become the following.
from pyomo.environ import *
from pyomo.contrib.mindtpy.tests.MINLP_simple import SimpleMINLP
m = SimpleMINLP()
TransformationFactory('core.relax_integer_vars').apply_to(m)
m.constraint8 = Constraint(expr= 0 <= -1e-5 + m.Y[1])
m.constraint8.pprint()
m.Y[1].fix(0)
# TransformationFactory('contrib.deactivate_trivial_constraints').apply_to(m,ignore_infeasible=False,tolerance=1e-4)
m.constraint8.pprint()
opt = SolverFactory('ipopt')
result = opt.solve(m,tee=True)
Output
constraint8 : Size=1, Index=None, Active=True
Key : Lower : Body : Upper : Active
None : 0.0 : -1e-05 + Y[1] : +Inf : True
constraint8 : Size=1, Index=None, Active=True
Key : Lower : Body : Upper : Active
None : 0.0 : -1e-05 + Y[1] : +Inf : True
Ipopt 3.13.3:
******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear optimization.
Ipopt is released as open source code under the Eclipse Public License (EPL).
For more information visit https://github.com/coin-or/Ipopt
******************************************************************************
This is Ipopt version 3.13.3, running with linear solver mumps.
NOTE: Other linear solvers might be more efficient (see Ipopt documentation).
Number of nonzeros in equality constraint Jacobian...: 0
Number of nonzeros in inequality constraint Jacobian.: 14
Number of nonzeros in Lagrangian Hessian.............: 2
Total number of variables............................: 4
variables with only lower bounds: 0
variables with lower and upper bounds: 4
variables with only upper bounds: 0
Total number of equality constraints.................: 0
Total number of inequality constraints...............: 8
inequality constraints with only lower bounds: 5
inequality constraints with lower and upper bounds: 0
inequality constraints with only upper bounds: 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
0 1.9802000e+00 3.95e+00 1.38e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0
1 1.9632289e+00 3.77e+00 2.69e+00 -1.0 7.95e-01 - 1.40e-02 4.84e-02h 1
2 1.7857905e+00 1.02e+00 3.35e+02 -1.0 1.89e+00 - 1.11e-02 8.08e-01f 1
3 2.4634345e+00 4.34e-01 2.48e+02 -1.0 1.01e+01 0.0 6.20e-03 7.07e-02h 3
4 3.8565866e+00 9.99e-06 8.20e+01 -1.0 4.96e-01 2.2 1.37e-01 9.84e-01h 1
5 3.9088309e+00 9.99e-06 2.05e+03 -1.0 2.21e-01 - 9.72e-01 6.22e-01h 1
6 3.9079458e+00 9.99e-06 9.18e+05 -1.0 9.23e-02 - 1.00e+00 1.65e-02h 1
7 3.9079361e+00 9.99e-06 5.59e+09 -1.0 8.24e-02 - 1.00e+00 1.68e-04h 1
8 3.8534824e+00 9.99e-06 5.49e+07 -1.0 8.29e-02 - 9.90e-01 1.00e+00h 1
9r 3.8534824e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 4.31e-07R 4
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
10r 3.9273130e+00 9.99e-06 5.69e+02 -1.0 4.14e-01 - 8.69e-01 6.68e-02f 1
11 3.7356715e+00 9.99e-06 1.04e+04 -1.0 3.66e-01 - 8.91e-01 1.98e-01f 2
12 3.6034221e+00 9.99e-06 6.96e+04 -1.0 4.35e-01 - 1.00e+00 1.25e-01f 2
13 3.5719715e+00 9.99e-06 5.90e+05 -1.0 3.74e-01 - 1.00e+00 3.61e-02h 3
14 3.5262131e+00 9.99e-06 5.22e+06 -1.0 3.56e-01 - 1.00e+00 5.63e-02h 2
15 3.4825606e+00 9.99e-06 8.58e+07 -1.0 3.26e-01 - 1.00e+00 6.03e-02h 1
16 3.4821420e+00 9.99e-06 1.42e+11 -1.0 3.00e-01 - 1.00e+00 6.41e-04h 1
17 2.9874894e+00 9.99e-06 1.32e+09 -1.0 3.01e-01 - 9.91e-01 1.00e+00F 1
18r 2.9874894e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 4.05e-07R 5
19r 3.0164694e+00 9.99e-06 6.62e+02 -1.0 1.84e-01 - 6.50e-01 7.85e-02f 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
20 3.0194924e+00 9.99e-06 7.19e+03 -1.0 1.49e-02 - 1.00e+00 4.36e-01h 1
21 3.0195702e+00 9.99e-06 2.88e+06 -1.0 1.61e-02 - 1.00e+00 7.72e-03h 1
22 3.0195709e+00 9.99e-06 3.71e+10 -1.0 1.59e-02 - 1.00e+00 7.78e-05h 1
23 3.0304101e+00 9.99e-06 3.68e+08 -1.0 1.59e-02 - 9.90e-01 1.00e+00F 1
24r 3.0304101e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 2.61e-07R 3
25r 3.4287308e+00 9.99e-06 1.72e+02 -1.0 2.05e-01 - 6.53e-01 1.00e+00f 1
26r 5.9773279e+00 9.99e-06 1.41e+02 -1.0 1.23e+00 - 4.52e-01 1.00e+00f 1
27r 7.2307364e+00 9.99e-06 6.07e-02 -1.0 5.02e-01 - 1.00e+00 1.00e+00h 1
28r 5.0618845e+00 9.99e-06 1.72e+00 -3.8 6.45e-01 - 8.26e-01 9.83e-01f 1
29r 5.0007908e+00 9.99e-06 3.29e+01 -3.8 7.05e-02 - 1.00e+00 9.09e-01h 1
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
30r 4.0978263e+00 9.99e-06 8.32e-04 -3.8 3.23e-01 - 1.00e+00 1.00e+00f 1
31r 3.6864504e+00 9.99e-06 7.17e-05 -3.8 1.94e-01 - 1.00e+00 1.00e+00h 1
32r 3.6254222e+00 9.99e-06 3.08e-06 -3.8 4.30e-02 - 1.00e+00 1.00e+00h 1
33r 3.2468478e+00 9.99e-06 5.34e-01 -5.7 1.91e-01 - 9.60e-01 9.98e-01h 1
34r 3.2242018e+00 9.99e-06 1.56e-06 -5.7 2.52e-02 - 1.00e+00 1.00e+00h 1
35r 3.1567018e+00 9.99e-06 2.50e-07 -5.7 4.60e-02 - 1.00e+00 1.00e+00h 1
36r 3.1489363e+00 9.99e-06 3.98e-09 -5.7 4.59e-03 - 1.00e+00 1.00e+00h 1
37r 3.0537302e+00 9.99e-06 4.62e-03 -8.6 5.15e-02 - 9.75e-01 1.00e+00h 1
Number of Iterations....: 37
(scaled) (unscaled)
Objective...............: 3.0481612472924464e+00 3.0481612472924464e+00
Dual infeasibility......: 2.3581791412251070e+00 2.3581791412251070e+00
Constraint violation....: 9.9900000000000009e-06 9.9900000000000009e-06
Complementarity.........: 1.0681494261619128e-08 1.0681494261619128e-08
Overall NLP error.......: 2.3581791412251070e+00 2.3581791412251070e+00
Number of objective function evaluations = 71
Number of objective gradient evaluations = 26
Number of equality constraint evaluations = 0
Number of inequality constraint evaluations = 71
Number of equality constraint Jacobian evaluations = 0
Number of inequality constraint Jacobian evaluations = 42
Number of Lagrangian Hessian evaluations = 38
Total CPU secs in IPOPT (w/o function evaluations) = 0.021
Total CPU secs in NLP function evaluations = 0.001
EXIT: Converged to a point of local infeasibility. Problem may be infeasible.
WARNING: Loading a SolverResults object with a warning status into
model.name="SimpleMINLP";
- termination condition: infeasible
- message from solver: Ipopt 3.13.3\x3a Converged to a locally
infeasible point. Problem may be infeasible.
If contrib.deactivate_trivial_constraints
works well and the feasibility subproblem is infeasible due to the constraint tolerance, you can resolve it by setting a proper contraint_tolerance
as I previously recommended. Otherwise, the feasibility subproblem is infeasible due to other reasons. We need to dig deeper.
Zedong,
I ran the simple example you sent me and the "contrib.deactivate_trivial_constraints" works as intended. I set the constraint_tolerance parameter (even to 1e-2...) and I still get the error, so it must be due to something else.
The odd thing to me is that in the example that I sent you, if I solve the problem with "threads=1", then there is no issue, but any value for threads greater than 1, and the error message arises. However, using gurobi and baron, there is an instance that gives the error regardless of the number of threads being used.
It is also interesting that the issue is solver dependent, i.e., one problem using gurobi/baron will fail, whereas using cplex/baron passes.
On Tue, Jun 6, 2023 at 10:30 AM Zedong @.***> wrote:
Hi Will. I still cannot reproduce the error by setting threads=2.
Could you try the following example to test if deactivate_trivial_constraints works well in your computational environment?
from pyomo.environ import * from pyomo.contrib.mindtpy.tests.MINLP_simple import SimpleMINLP
m = SimpleMINLP() TransformationFactory('core.relax_integer_vars').apply_to(m) m.pprint() m.constraint8 = Constraint(expr= 0 <= -1e-5 + m.Y[1]) m.Y[1].fix(0) TransformationFactory('contrib.deactivate_trivial_constraints').apply_to(m,ignore_infeasible=False,tolerance=1e-4) m.pprint() opt = SolverFactory('ipopt') result = opt.solve(m,tee=True)
Since we fix m.Y[1] to zero, constraint8 is infeasible. However, contrib.deactivate_trivial_constraints will deactivate this constraint when proper tolerance is set. Output
constraint8 : Size=1, Index=None, Active=True Key : Lower : Body : Upper : Active None : 0.0 : -1e-05 + Y[1] : +Inf : True constraint8 : Size=1, Index=None, Active=False Key : Lower : Body : Upper : Active None : 0.0 : -1e-05 + Y[1] : +Inf : False Ipopt 3.13.3:
This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit https://github.com/coin-or/Ipopt
This is Ipopt version 3.13.3, running with linear solver mumps. NOTE: Other linear solvers might be more efficient (see Ipopt documentation).
Number of nonzeros in equality constraint Jacobian...: 0 Number of nonzeros in inequality constraint Jacobian.: 14 Number of nonzeros in Lagrangian Hessian.............: 2
Total number of variables............................: 4 variables with only lower bounds: 0 variables with lower and upper bounds: 4 variables with only upper bounds: 0 Total number of equality constraints.................: 0 Total number of inequality constraints...............: 7 inequality constraints with only lower bounds: 4 inequality constraints with lower and upper bounds: 0 inequality constraints with only upper bounds: 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 1.9802000e+00 3.95e+00 1.38e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0 1 1.9632289e+00 3.77e+00 2.69e+00 -1.0 7.95e-01 - 1.40e-02 4.84e-02h 1 2 1.7857905e+00 1.02e+00 3.35e+02 -1.0 1.89e+00 - 1.11e-02 8.08e-01f 1 3 2.4634345e+00 4.34e-01 2.48e+02 -1.0 1.01e+01 0.0 6.20e-03 7.07e-02h 3 4 3.8830144e+00 0.00e+00 8.47e+01 -1.0 4.96e-01 2.2 1.37e-01 1.00e+00h 1 5 3.9660112e+00 0.00e+00 2.53e+00 -1.0 2.17e-01 - 9.74e-01 1.00e+00h 1 6 2.6200637e+00 2.27e-01 4.00e-01 -1.0 8.20e-01 - 1.00e+00 7.71e-01f 1 7 2.6012172e+00 2.08e-01 3.00e-01 -1.7 3.59e-01 - 1.00e+00 4.77e-01h 1 8 2.7704290e+00 0.00e+00 1.10e-01 -1.7 1.70e-01 - 1.00e+00 1.00e+00h 1 9 2.7279484e+00 5.12e-04 3.06e-03 -2.5 1.48e-01 - 1.00e+00 9.79e-01h 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 10 2.7204462e+00 0.00e+00 8.00e-05 -3.8 3.92e-02 - 1.00e+00 1.00e+00h 1 11 2.7200514e+00 0.00e+00 1.77e-07 -5.7 1.00e-03 - 1.00e+00 1.00e+00h 1 12 2.7200460e+00 0.00e+00 1.20e-11 -8.6 1.14e-05 - 1.00e+00 1.00e+00h 1
Number of Iterations....: 12
(scaled) (unscaled)
Objective...............: 2.7200460176099206e+00 2.7200460176099206e+00 Dual infeasibility......: 1.1977778401079966e-11 1.1977778401079966e-11 Constraint violation....: 0.0000000000000000e+00 0.0000000000000000e+00 Complementarity.........: 2.5202438248233580e-09 2.5202438248233580e-09 Overall NLP error.......: 2.5202438248233580e-09 2.5202438248233580e-09
Number of objective function evaluations = 17 Number of objective gradient evaluations = 13 Number of equality constraint evaluations = 0 Number of inequality constraint evaluations = 17 Number of equality constraint Jacobian evaluations = 0 Number of inequality constraint Jacobian evaluations = 13 Number of Lagrangian Hessian evaluations = 12 Total CPU secs in IPOPT (w/o function evaluations) = 0.005 Total CPU secs in NLP function evaluations = 0.000
EXIT: Optimal Solution Found.
If we comment the contrib.deactivate_trivial_constraints line, the output will become the following.
from pyomo.environ import * from pyomo.contrib.mindtpy.tests.MINLP_simple import SimpleMINLP
m = SimpleMINLP() TransformationFactory('core.relax_integer_vars').apply_to(m)
m.constraint8 = Constraint(expr= 0 <= -1e-5 + m.Y[1]) m.constraint8.pprint() m.Y[1].fix(0)
TransformationFactory('contrib.deactivate_trivial_constraints').apply_to(m,ignore_infeasible=False,tolerance=1e-4)
m.constraint8.pprint() opt = SolverFactory('ipopt') result = opt.solve(m,tee=True)
Output
constraint8 : Size=1, Index=None, Active=True Key : Lower : Body : Upper : Active None : 0.0 : -1e-05 + Y[1] : +Inf : True constraint8 : Size=1, Index=None, Active=True Key : Lower : Body : Upper : Active None : 0.0 : -1e-05 + Y[1] : +Inf : True Ipopt 3.13.3:
This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit https://github.com/coin-or/Ipopt
This is Ipopt version 3.13.3, running with linear solver mumps. NOTE: Other linear solvers might be more efficient (see Ipopt documentation).
Number of nonzeros in equality constraint Jacobian...: 0 Number of nonzeros in inequality constraint Jacobian.: 14 Number of nonzeros in Lagrangian Hessian.............: 2
Total number of variables............................: 4 variables with only lower bounds: 0 variables with lower and upper bounds: 4 variables with only upper bounds: 0 Total number of equality constraints.................: 0 Total number of inequality constraints...............: 8 inequality constraints with only lower bounds: 5 inequality constraints with lower and upper bounds: 0 inequality constraints with only upper bounds: 3
iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 0 1.9802000e+00 3.95e+00 1.38e+00 -1.0 0.00e+00 - 0.00e+00 0.00e+00 0 1 1.9632289e+00 3.77e+00 2.69e+00 -1.0 7.95e-01 - 1.40e-02 4.84e-02h 1 2 1.7857905e+00 1.02e+00 3.35e+02 -1.0 1.89e+00 - 1.11e-02 8.08e-01f 1 3 2.4634345e+00 4.34e-01 2.48e+02 -1.0 1.01e+01 0.0 6.20e-03 7.07e-02h 3 4 3.8565866e+00 9.99e-06 8.20e+01 -1.0 4.96e-01 2.2 1.37e-01 9.84e-01h 1 5 3.9088309e+00 9.99e-06 2.05e+03 -1.0 2.21e-01 - 9.72e-01 6.22e-01h 1 6 3.9079458e+00 9.99e-06 9.18e+05 -1.0 9.23e-02 - 1.00e+00 1.65e-02h 1 7 3.9079361e+00 9.99e-06 5.59e+09 -1.0 8.24e-02 - 1.00e+00 1.68e-04h 1 8 3.8534824e+00 9.99e-06 5.49e+07 -1.0 8.29e-02 - 9.90e-01 1.00e+00h 1 9r 3.8534824e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 4.31e-07R 4 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 10r 3.9273130e+00 9.99e-06 5.69e+02 -1.0 4.14e-01 - 8.69e-01 6.68e-02f 1 11 3.7356715e+00 9.99e-06 1.04e+04 -1.0 3.66e-01 - 8.91e-01 1.98e-01f 2 12 3.6034221e+00 9.99e-06 6.96e+04 -1.0 4.35e-01 - 1.00e+00 1.25e-01f 2 13 3.5719715e+00 9.99e-06 5.90e+05 -1.0 3.74e-01 - 1.00e+00 3.61e-02h 3 14 3.5262131e+00 9.99e-06 5.22e+06 -1.0 3.56e-01 - 1.00e+00 5.63e-02h 2 15 3.4825606e+00 9.99e-06 8.58e+07 -1.0 3.26e-01 - 1.00e+00 6.03e-02h 1 16 3.4821420e+00 9.99e-06 1.42e+11 -1.0 3.00e-01 - 1.00e+00 6.41e-04h 1 17 2.9874894e+00 9.99e-06 1.32e+09 -1.0 3.01e-01 - 9.91e-01 1.00e+00F 1 18r 2.9874894e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 4.05e-07R 5 19r 3.0164694e+00 9.99e-06 6.62e+02 -1.0 1.84e-01 - 6.50e-01 7.85e-02f 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 20 3.0194924e+00 9.99e-06 7.19e+03 -1.0 1.49e-02 - 1.00e+00 4.36e-01h 1 21 3.0195702e+00 9.99e-06 2.88e+06 -1.0 1.61e-02 - 1.00e+00 7.72e-03h 1 22 3.0195709e+00 9.99e-06 3.71e+10 -1.0 1.59e-02 - 1.00e+00 7.78e-05h 1 23 3.0304101e+00 9.99e-06 3.68e+08 -1.0 1.59e-02 - 9.90e-01 1.00e+00F 1 24r 3.0304101e+00 9.99e-06 1.00e+03 -1.0 0.00e+00 - 0.00e+00 2.61e-07R 3 25r 3.4287308e+00 9.99e-06 1.72e+02 -1.0 2.05e-01 - 6.53e-01 1.00e+00f 1 26r 5.9773279e+00 9.99e-06 1.41e+02 -1.0 1.23e+00 - 4.52e-01 1.00e+00f 1 27r 7.2307364e+00 9.99e-06 6.07e-02 -1.0 5.02e-01 - 1.00e+00 1.00e+00h 1 28r 5.0618845e+00 9.99e-06 1.72e+00 -3.8 6.45e-01 - 8.26e-01 9.83e-01f 1 29r 5.0007908e+00 9.99e-06 3.29e+01 -3.8 7.05e-02 - 1.00e+00 9.09e-01h 1 iter objective inf_pr inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls 30r 4.0978263e+00 9.99e-06 8.32e-04 -3.8 3.23e-01 - 1.00e+00 1.00e+00f 1 31r 3.6864504e+00 9.99e-06 7.17e-05 -3.8 1.94e-01 - 1.00e+00 1.00e+00h 1 32r 3.6254222e+00 9.99e-06 3.08e-06 -3.8 4.30e-02 - 1.00e+00 1.00e+00h 1 33r 3.2468478e+00 9.99e-06 5.34e-01 -5.7 1.91e-01 - 9.60e-01 9.98e-01h 1 34r 3.2242018e+00 9.99e-06 1.56e-06 -5.7 2.52e-02 - 1.00e+00 1.00e+00h 1 35r 3.1567018e+00 9.99e-06 2.50e-07 -5.7 4.60e-02 - 1.00e+00 1.00e+00h 1 36r 3.1489363e+00 9.99e-06 3.98e-09 -5.7 4.59e-03 - 1.00e+00 1.00e+00h 1 37r 3.0537302e+00 9.99e-06 4.62e-03 -8.6 5.15e-02 - 9.75e-01 1.00e+00h 1
Number of Iterations....: 37
(scaled) (unscaled)
Objective...............: 3.0481612472924464e+00 3.0481612472924464e+00 Dual infeasibility......: 2.3581791412251070e+00 2.3581791412251070e+00 Constraint violation....: 9.9900000000000009e-06 9.9900000000000009e-06 Complementarity.........: 1.0681494261619128e-08 1.0681494261619128e-08 Overall NLP error.......: 2.3581791412251070e+00 2.3581791412251070e+00
Number of objective function evaluations = 71 Number of objective gradient evaluations = 26 Number of equality constraint evaluations = 0 Number of inequality constraint evaluations = 71 Number of equality constraint Jacobian evaluations = 0 Number of inequality constraint Jacobian evaluations = 42 Number of Lagrangian Hessian evaluations = 38 Total CPU secs in IPOPT (w/o function evaluations) = 0.021 Total CPU secs in NLP function evaluations = 0.001
EXIT: Converged to a point of local infeasibility. Problem may be infeasible. WARNING: Loading a SolverResults object with a warning status into model.name="SimpleMINLP";
- termination condition: infeasible
- message from solver: Ipopt 3.13.3\x3a Converged to a locally infeasible point. Problem may be infeasible.
If contrib.deactivate_trivial_constraints works well and the feasibility subproblem is infeasible due to the constraint tolerance, you can resolve it by setting a proper contraint_tolerance as I previously recommended. Otherwise, the feasibility subproblem is infeasible due to other reasons. We need to dig deeper.
— Reply to this email directly, view it on GitHub https://github.com/Pyomo/pyomo/issues/2864#issuecomment-1578877749, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIOSMCPYKUZIJGYN2HXAUK3XJ45HFANCNFSM6AAAAAAYW6F4MM . You are receiving this because you were mentioned.Message ID: @.***>
I'll try to install the solvers with the version that you are using. It may take some time and I'll let you know when I have any conclusions.
I finally get access to GUROBI. However, I still cannot reproduce this error. Have you finally resolved this? @strahl21
Hi Zedong,
I never resolved it, however I am currently working on some other work, and won't be able to get back to the error for a while (on the time scale of months).
You can close out the issue and if I get back to it and still notice a problem I can reopen the issue.
Regards, Will
On Wed, Aug 9, 2023 at 2:59 PM Zedong @.***> wrote:
I finally get access to GUROBI. However, I still cannot reproduce this error. Have you finally resolved this? @strahl21 https://github.com/strahl21 Information on my system
- Operation System: macOS monterey Version 12.2
- Python version: 3.9.16
- Pyomo version: 6.6.1
- Gurobi version: 10.0.2
- Gams version: 44.1.1
- Baron version (Access through Gams): 23.6.22
— Reply to this email directly, view it on GitHub https://github.com/Pyomo/pyomo/issues/2864#issuecomment-1671974945, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIOSMCIFHSGBIZYJR2SOB7TXUPMZPANCNFSM6AAAAAAYW6F4MM . You are receiving this because you were mentioned.Message ID: @.***>
Closing this for now as @ZedongPeng has not been able to reproduce the issue. @strahl21 please reopen this in the future if this continues to be a problem for you.
Summary
I used Mindtpy to solve syn40m04m from the minlplib with gurobi as the mip solver and baron as the nlp solver and received a "this should never happen" error.
Steps to reproduce the issue
Error Message
Information on your system
Pyomo version: 6.6.1 Python version: 3.9 Operating system: Ubuntu 22.04 How Pyomo was installed (PyPI, conda, source): conda Solver (if applicable): gurobi v.10.0.1 baron v.23.5.8
Additional information
Running the same problem with baron through gams provides a little more information about the error. It appears that there are constraints written as 0 \le -1e-6 or a very small negative number, which I think is why the subproblem is infeasible. If cplex is used as the MIP solver, there is no problem. The mindtpy algorithms work just fine, it is the underlying communication/translation of the problem to the solvers that is causing the issue. syn40m04m_solve_linear.txt