Skip to main content

Solving non-convex problems

Answered

Comments

24 comments

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Sophia,

    I am not sure if I understood it correctly but does Gurobi only make use of partial B&B or does it also apply then McCormicks envelope? 

    I am not sure what a partial B&B is. Gurobi uses the so-called spatial B&B algorithm where it branches on continuous variables and computes a valid relaxation of the model at each node of the B&B tree very similar to the classical discrete B&B algorithm. In order to construct the relaxation, Gurobi applies the McCormick envelope to every bilinear product or uses tangents/secants for quadratic terms.

    I have implemented a non convex problem and then also the mccormick relaxation of this problem. Should I expect the same solution then? 

    Gurobi applies the McCormick envelopes at every node of the B&B tree. From what you are saying it looks like you applied the McCormick envelopes to your original model, i.e., before branching on any variable. This should be equivalent to the relaxation of the root node constructed by Gurobi if one would exclude Presolve.

    Best regards, 
    Jaromił

    1
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Hello Jaromił Najman,

    I found that the root relaxation excluding Presolve is apparently not the same as the relaxation that is obtained by just adding the McCormick envelopes.

    I assume that Gurobi applies some domain reduction techniques (althoug Presolve=0) before adding the McCormick envelopes (and maybe more?) in order to construct the root relaxation.

    In case I am right, is there a way to disable all of these domain reduction / constraint propagation techniques such that the gurobi root relaxation (without cuts and without presolve) is exactly the same as the relaxation obtained only by the McCormick envelopes?

    Best regards,

    Jan

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Jan,

    Setting Presolve=0 should do it. There might be some trivial bound reductions that would still be applied, like variable fixing for example.

    Best regards, 
    Jaromił

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Hi Jaromil,

    thanks for your quick response.

    It would be interesting for me which of these trivial bound reductions are applied in my specific case.

    In my instance, I have 15 x-variables, 15 y-variables and product variables z_ij = x_i * y_j, all are bounded by 0 and 1.

    Besides the equations for the product variables there are the following constraints:

    R0: x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7] + x[8] + x[9] + x[10]
    + x[11] + x[12] + x[13] + x[14] + x[15] = 1
    R1: x[1] + x[2] + x[3] >= 0.09
    R2: x[4] + x[5] + x[6] >= 0.12
    R3: x[7] + x[8] + x[9] >= 0.14
    R4: x[10] + x[11] + x[12] >= 0.18
    R5: x[13] + x[14] + x[15] >= 0.12
    R6: x[1] + x[2] + x[3] <= 0.48
    R7: x[4] + x[5] + x[6] <= 0.21
    R8: x[7] + x[8] + x[9] <= 0.34
    R9: x[10] + x[11] + x[12] <= 0.48
    R10: x[13] + x[14] + x[15] <= 0.39

    Can you tell me what the trivial bound reductions are in this case?

    Best,

    Jan

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Jan,

    From the ones you listed, none should be used with Presolve=0. Do you still observe a difference with Presolve=0?

    Best regards, 
    Jaromił

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Yes. When I solve with Presolve=0 and NodeLimit=0, such that the optimization terminates with the root relaxation without cuts (is that right?), then I get an objective value 4.381421504525e+01, the McCormick relaxation yields 47.18940000000003

    Best, Jan

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    You should look at the root node relaxation value which is printed directly before the B&B algorithm output. Could you please post the log output you get?

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Interesting, could you try removing everything except variable bounds and the bilinear terms?

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    In this case the values are the same.Jaromił Najman 

    I have tested the same problem (with all constraints) in SCIP. There I explicitly disabled propagation and then the values are the same. It would be interesting whether there is an analogous possibility for gurobi.

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    In this case the values are the same.Jaromił Najman 

    So there has to be a linear constraint which is somehow exploited before constructing the McCormick envelope. Could you try to find out which one it is and post a minimal model where you see a difference in lower bound with Presolve=0. It is possible that some reduction is not properly turned off when Presolve=0 and it would be good to find out.

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    It turned out, that even only

    R0: x[1] + x[2] + x[3] <= 0.48

    yields a difference in the values.

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Could you please construct a minimal model for which you can observe the difference and share it here. I would like to investigate it then.

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Here is the .lp file

    \ LP format - for model browsing. Use MPS format to capture full model detail.
    Maximize
    1.29 x[1] + 3.91 x[2] - 1.24 x[3] - 0.68 x[4] - 2.74 x[5] - 2.09 x[6]
    + 4.72 x[7] - 1.2 x[8] + 4.61 x[9] + 4.14 x[10] + 0.96 x[11] - 2.4 x[12]
    + 4.81 x[13] - 0.04 x[14] - 0.85 x[15] + 1.29 y[1] + 3.91 y[2]
    - 1.24 y[3] - 0.68 y[4] - 2.74 y[5] - 2.09 y[6] + 4.72 y[7] - 1.2 y[8]
    + 4.61 y[9] + 4.14 y[10] + 0.96 y[11] - 2.4 y[12] + 4.81 y[13]
    - 0.04 y[14] - 0.85 y[15] + 4.01 z[1,1] - 3.87 z[1,2] - 0.31 z[1,3]
    - 2.53 z[1,4] + 0.44 z[1,5] + 0.74 z[1,6] - 4.87 z[1,7] - 2.83 z[1,8]
    - 2.21 z[1,9] + 4.16 z[1,10] + 2.66 z[1,11] - 3.4 z[1,12] + 2.97 z[1,13]
    - 3.61 z[1,14] + 1.17 z[1,15] - 3.73 z[2,1] - 4.98 z[2,2] + 3.71 z[2,3]
    - 2.91 z[2,4] - 2.85 z[2,5] + 4.82 z[2,6] + 3.72 z[2,7] - 2.11 z[2,8]
    + 4.61 z[2,9] + 0.39 z[2,10] + 1.78 z[2,11] - 2.95 z[2,12]
    + 4.41 z[2,13] + 1.91 z[2,14] + 4.67 z[2,15] + 3.94 z[3,1] - 2.01 z[3,2]
    - 1.39 z[3,3] - 3.34 z[3,4] - 3.54 z[3,5] - 4.35 z[3,6] - 1.99 z[3,7]
    + 1.03 z[3,8] - 4.97 z[3,9] + 1.78 z[3,10] - 1.62 z[3,11] - 1.9 z[3,12]
    + 3.19 z[3,13] - 0.19 z[3,14] - 1.84 z[3,15] - 0.19 z[4,1] + 2.05 z[4,2]
    - 4.43 z[4,3] + 4.75 z[4,4] - 4.77 z[4,5] + 2.5 z[4,6] + 3.45 z[4,7]
    - 4.82 z[4,8] + 2.88 z[4,9] - 1.34 z[4,10] + 0.79 z[4,11] - 4.91 z[4,12]
    - 4.53 z[4,13] - 3.19 z[4,14] + 4.55 z[4,15] - 3.03 z[5,1] + 2.56 z[5,2]
    + 4.3 z[5,3] + 4.42 z[5,4] - 1.56 z[5,5] - 1.45 z[5,6] + 0.25 z[5,7]
    + 2.76 z[5,8] - 3.92 z[5,9] + 2.48 z[5,10] + 2.97 z[5,11] + 3.6 z[5,12]
    - 4.63 z[5,13] + 4.46 z[5,14] - 4.09 z[5,15] - 1.59 z[6,1] + 1.11 z[6,2]
    + 4.18 z[6,3] - 1.6 z[6,4] + 4.24 z[6,5] + 0.45 z[6,6] - 1.88 z[6,7]
    - 1.83 z[6,8] - 3.23 z[6,9] - 4.22 z[6,10] - 3.51 z[6,11] + 1.89 z[6,12]
    + 4.97 z[6,13] - 3.38 z[6,14] - 4.51 z[6,15] + 4.87 z[7,1] + 0.34 z[7,2]
    - 0.94 z[7,3] - 2.63 z[7,4] + 0.94 z[7,5] + 3.26 z[7,6] - 0.44 z[7,7]
    - 0.78 z[7,8] - 4.44 z[7,9] + 4.16 z[7,10] - 4.67 z[7,11] - 0.06 z[7,12]
    + 3.38 z[7,13] - 3.69 z[7,14] + 2.32 z[7,15] + 4.5 z[8,1] + 1.3 z[8,2]
    + 2.88 z[8,3] - 3.93 z[8,4] - 0.65 z[8,5] - 3.51 z[8,6] + 3.45 z[8,7]
    - 2.05 z[8,8] - 0.47 z[8,9] + 4.99 z[8,10] + 3.52 z[8,11] + 4.76 z[8,12]
    - 0.46 z[8,13] - 0.12 z[8,14] + 2.3 z[8,15] - 0.21 z[9,1] - 2.09 z[9,2]
    - 0.96 z[9,3] - 3.53 z[9,4] - 1.23 z[9,5] + 4.88 z[9,6] + 4.6 z[9,7]
    + 1.27 z[9,8] - 0.01 z[9,9] - 1.62 z[9,10] - 4.11 z[9,11] - 2.28 z[9,12]
    + 2.82 z[9,13] + 3.67 z[9,14] - 1.39 z[9,15] + 2.86 z[10,1]
    + 2.75 z[10,2] + 1.95 z[10,3] + 1.64 z[10,4] + 2.6 z[10,5]
    - 1.37 z[10,6] + 2.04 z[10,7] - 2.19 z[10,8] - 0.14 z[10,9]
    + 2.7 z[10,10] + 1.91 z[10,11] - 2.06 z[10,12] + 4.46 z[10,13]
    + 1.5 z[10,14] + 0.81 z[10,15] - 4.88 z[11,1] + 0.47 z[11,2]
    - 2.49 z[11,3] + 1.72 z[11,4] - 0.37 z[11,5] + 3.17 z[11,6]
    + 1.47 z[11,7] + 2.98 z[11,8] - 1.52 z[11,9] + 1.44 z[11,10]
    + 2.38 z[11,11] + 3.28 z[11,12] - 1.5 z[11,13] + 3.43 z[11,14]
    + 3.7 z[11,15] + 1.88 z[12,1] + 4.76 z[12,2] + 4.57 z[12,3]
    + 0.18 z[12,4] + 0.29 z[12,5] - 3.34 z[12,6] + 3.37 z[12,7]
    + 4.37 z[12,8] - 0.23 z[12,9] + 1.91 z[12,10] + 2.2 z[12,11]
    + 2.3 z[12,12] - 3.28 z[12,13] + 2.8 z[12,14] + 0.81 z[12,15]
    + 1.66 z[13,1] - 0.79 z[13,2] + 1.24 z[13,3] + 2.75 z[13,4]
    + 1.37 z[13,5] + 2.2 z[13,6] - 4.72 z[13,7] - 3.4 z[13,8] - 0.59 z[13,9]
    + 1.5 z[13,10] - 2.81 z[13,11] + 1.86 z[13,12] + 1.31 z[13,13]
    - 4.58 z[13,14] - 0.28 z[13,15] - 2.74 z[14,1] - 4.46 z[14,2]
    - 3.66 z[14,3] - 1.83 z[14,4] - 3.18 z[14,5] - 3.07 z[14,6]
    - 4.64 z[14,7] - 0.35 z[14,8] - 1.2 z[14,9] + 1.12 z[14,10]
    + 0.9 z[14,11] - 2.62 z[14,12] + 4.03 z[14,13] - 4.99 z[14,14]
    - 0.95 z[14,15] - 2.21 z[15,1] - 0.9 z[15,2] - 3.85 z[15,3]
    + 3.31 z[15,4] - 1.26 z[15,5] - 4.64 z[15,6] + 1.14 z[15,7]
    - 4.05 z[15,8] + 0.45 z[15,9] - 1.61 z[15,10] + 0.81 z[15,11]
    + 4.58 z[15,12] + 3.19 z[15,13] - 0.81 z[15,14] + 3.13 z[15,15]
    Subject To
    R0: x[1] + x[2] + x[3] <= 0.48
    qc0: - z[1,1] + [ x[1] * y[1] ] = 0
    qc1: - z[1,2] + [ x[1] * y[2] ] = 0
    qc2: - z[1,3] + [ x[1] * y[3] ] = 0
    qc3: - z[1,4] + [ x[1] * y[4] ] = 0
    qc4: - z[1,5] + [ x[1] * y[5] ] = 0
    qc5: - z[1,6] + [ x[1] * y[6] ] = 0
    qc6: - z[1,7] + [ x[1] * y[7] ] = 0
    qc7: - z[1,8] + [ x[1] * y[8] ] = 0
    qc8: - z[1,9] + [ x[1] * y[9] ] = 0
    qc9: - z[1,10] + [ x[1] * y[10] ] = 0
    qc10: - z[1,11] + [ x[1] * y[11] ] = 0
    qc11: - z[1,12] + [ x[1] * y[12] ] = 0
    qc12: - z[1,13] + [ x[1] * y[13] ] = 0
    qc13: - z[1,14] + [ x[1] * y[14] ] = 0
    qc14: - z[1,15] + [ x[1] * y[15] ] = 0
    qc15: - z[2,1] + [ x[2] * y[1] ] = 0
    qc16: - z[2,2] + [ x[2] * y[2] ] = 0
    qc17: - z[2,3] + [ x[2] * y[3] ] = 0
    qc18: - z[2,4] + [ x[2] * y[4] ] = 0
    qc19: - z[2,5] + [ x[2] * y[5] ] = 0
    qc20: - z[2,6] + [ x[2] * y[6] ] = 0
    qc21: - z[2,7] + [ x[2] * y[7] ] = 0
    qc22: - z[2,8] + [ x[2] * y[8] ] = 0
    qc23: - z[2,9] + [ x[2] * y[9] ] = 0
    qc24: - z[2,10] + [ x[2] * y[10] ] = 0
    qc25: - z[2,11] + [ x[2] * y[11] ] = 0
    qc26: - z[2,12] + [ x[2] * y[12] ] = 0
    qc27: - z[2,13] + [ x[2] * y[13] ] = 0
    qc28: - z[2,14] + [ x[2] * y[14] ] = 0
    qc29: - z[2,15] + [ x[2] * y[15] ] = 0
    qc30: - z[3,1] + [ x[3] * y[1] ] = 0
    qc31: - z[3,2] + [ x[3] * y[2] ] = 0
    qc32: - z[3,3] + [ x[3] * y[3] ] = 0
    qc33: - z[3,4] + [ x[3] * y[4] ] = 0
    qc34: - z[3,5] + [ x[3] * y[5] ] = 0
    qc35: - z[3,6] + [ x[3] * y[6] ] = 0
    qc36: - z[3,7] + [ x[3] * y[7] ] = 0
    qc37: - z[3,8] + [ x[3] * y[8] ] = 0
    qc38: - z[3,9] + [ x[3] * y[9] ] = 0
    qc39: - z[3,10] + [ x[3] * y[10] ] = 0
    qc40: - z[3,11] + [ x[3] * y[11] ] = 0
    qc41: - z[3,12] + [ x[3] * y[12] ] = 0
    qc42: - z[3,13] + [ x[3] * y[13] ] = 0
    qc43: - z[3,14] + [ x[3] * y[14] ] = 0
    qc44: - z[3,15] + [ x[3] * y[15] ] = 0
    qc45: - z[4,1] + [ x[4] * y[1] ] = 0
    qc46: - z[4,2] + [ x[4] * y[2] ] = 0
    qc47: - z[4,3] + [ x[4] * y[3] ] = 0
    qc48: - z[4,4] + [ x[4] * y[4] ] = 0
    qc49: - z[4,5] + [ x[4] * y[5] ] = 0
    qc50: - z[4,6] + [ x[4] * y[6] ] = 0
    qc51: - z[4,7] + [ x[4] * y[7] ] = 0
    qc52: - z[4,8] + [ x[4] * y[8] ] = 0
    qc53: - z[4,9] + [ x[4] * y[9] ] = 0
    qc54: - z[4,10] + [ x[4] * y[10] ] = 0
    qc55: - z[4,11] + [ x[4] * y[11] ] = 0
    qc56: - z[4,12] + [ x[4] * y[12] ] = 0
    qc57: - z[4,13] + [ x[4] * y[13] ] = 0
    qc58: - z[4,14] + [ x[4] * y[14] ] = 0
    qc59: - z[4,15] + [ x[4] * y[15] ] = 0
    qc60: - z[5,1] + [ x[5] * y[1] ] = 0
    qc61: - z[5,2] + [ x[5] * y[2] ] = 0
    qc62: - z[5,3] + [ x[5] * y[3] ] = 0
    qc63: - z[5,4] + [ x[5] * y[4] ] = 0
    qc64: - z[5,5] + [ x[5] * y[5] ] = 0
    qc65: - z[5,6] + [ x[5] * y[6] ] = 0
    qc66: - z[5,7] + [ x[5] * y[7] ] = 0
    qc67: - z[5,8] + [ x[5] * y[8] ] = 0
    qc68: - z[5,9] + [ x[5] * y[9] ] = 0
    qc69: - z[5,10] + [ x[5] * y[10] ] = 0
    qc70: - z[5,11] + [ x[5] * y[11] ] = 0
    qc71: - z[5,12] + [ x[5] * y[12] ] = 0
    qc72: - z[5,13] + [ x[5] * y[13] ] = 0
    qc73: - z[5,14] + [ x[5] * y[14] ] = 0
    qc74: - z[5,15] + [ x[5] * y[15] ] = 0
    qc75: - z[6,1] + [ x[6] * y[1] ] = 0
    qc76: - z[6,2] + [ x[6] * y[2] ] = 0
    qc77: - z[6,3] + [ x[6] * y[3] ] = 0
    qc78: - z[6,4] + [ x[6] * y[4] ] = 0
    qc79: - z[6,5] + [ x[6] * y[5] ] = 0
    qc80: - z[6,6] + [ x[6] * y[6] ] = 0
    qc81: - z[6,7] + [ x[6] * y[7] ] = 0
    qc82: - z[6,8] + [ x[6] * y[8] ] = 0
    qc83: - z[6,9] + [ x[6] * y[9] ] = 0
    qc84: - z[6,10] + [ x[6] * y[10] ] = 0
    qc85: - z[6,11] + [ x[6] * y[11] ] = 0
    qc86: - z[6,12] + [ x[6] * y[12] ] = 0
    qc87: - z[6,13] + [ x[6] * y[13] ] = 0
    qc88: - z[6,14] + [ x[6] * y[14] ] = 0
    qc89: - z[6,15] + [ x[6] * y[15] ] = 0
    qc90: - z[7,1] + [ x[7] * y[1] ] = 0
    qc91: - z[7,2] + [ x[7] * y[2] ] = 0
    qc92: - z[7,3] + [ x[7] * y[3] ] = 0
    qc93: - z[7,4] + [ x[7] * y[4] ] = 0
    qc94: - z[7,5] + [ x[7] * y[5] ] = 0
    qc95: - z[7,6] + [ x[7] * y[6] ] = 0
    qc96: - z[7,7] + [ x[7] * y[7] ] = 0
    qc97: - z[7,8] + [ x[7] * y[8] ] = 0
    qc98: - z[7,9] + [ x[7] * y[9] ] = 0
    qc99: - z[7,10] + [ x[7] * y[10] ] = 0
    qc100: - z[7,11] + [ x[7] * y[11] ] = 0
    qc101: - z[7,12] + [ x[7] * y[12] ] = 0
    qc102: - z[7,13] + [ x[7] * y[13] ] = 0
    qc103: - z[7,14] + [ x[7] * y[14] ] = 0
    qc104: - z[7,15] + [ x[7] * y[15] ] = 0
    qc105: - z[8,1] + [ x[8] * y[1] ] = 0
    qc106: - z[8,2] + [ x[8] * y[2] ] = 0
    qc107: - z[8,3] + [ x[8] * y[3] ] = 0
    qc108: - z[8,4] + [ x[8] * y[4] ] = 0
    qc109: - z[8,5] + [ x[8] * y[5] ] = 0
    qc110: - z[8,6] + [ x[8] * y[6] ] = 0
    qc111: - z[8,7] + [ x[8] * y[7] ] = 0
    qc112: - z[8,8] + [ x[8] * y[8] ] = 0
    qc113: - z[8,9] + [ x[8] * y[9] ] = 0
    qc114: - z[8,10] + [ x[8] * y[10] ] = 0
    qc115: - z[8,11] + [ x[8] * y[11] ] = 0
    qc116: - z[8,12] + [ x[8] * y[12] ] = 0
    qc117: - z[8,13] + [ x[8] * y[13] ] = 0
    qc118: - z[8,14] + [ x[8] * y[14] ] = 0
    qc119: - z[8,15] + [ x[8] * y[15] ] = 0
    qc120: - z[9,1] + [ x[9] * y[1] ] = 0
    qc121: - z[9,2] + [ x[9] * y[2] ] = 0
    qc122: - z[9,3] + [ x[9] * y[3] ] = 0
    qc123: - z[9,4] + [ x[9] * y[4] ] = 0
    qc124: - z[9,5] + [ x[9] * y[5] ] = 0
    qc125: - z[9,6] + [ x[9] * y[6] ] = 0
    qc126: - z[9,7] + [ x[9] * y[7] ] = 0
    qc127: - z[9,8] + [ x[9] * y[8] ] = 0
    qc128: - z[9,9] + [ x[9] * y[9] ] = 0
    qc129: - z[9,10] + [ x[9] * y[10] ] = 0
    qc130: - z[9,11] + [ x[9] * y[11] ] = 0
    qc131: - z[9,12] + [ x[9] * y[12] ] = 0
    qc132: - z[9,13] + [ x[9] * y[13] ] = 0
    qc133: - z[9,14] + [ x[9] * y[14] ] = 0
    qc134: - z[9,15] + [ x[9] * y[15] ] = 0
    qc135: - z[10,1] + [ x[10] * y[1] ] = 0
    qc136: - z[10,2] + [ x[10] * y[2] ] = 0
    qc137: - z[10,3] + [ x[10] * y[3] ] = 0
    qc138: - z[10,4] + [ x[10] * y[4] ] = 0
    qc139: - z[10,5] + [ x[10] * y[5] ] = 0
    qc140: - z[10,6] + [ x[10] * y[6] ] = 0
    qc141: - z[10,7] + [ x[10] * y[7] ] = 0
    qc142: - z[10,8] + [ x[10] * y[8] ] = 0
    qc143: - z[10,9] + [ x[10] * y[9] ] = 0
    qc144: - z[10,10] + [ x[10] * y[10] ] = 0
    qc145: - z[10,11] + [ x[10] * y[11] ] = 0
    qc146: - z[10,12] + [ x[10] * y[12] ] = 0
    qc147: - z[10,13] + [ x[10] * y[13] ] = 0
    qc148: - z[10,14] + [ x[10] * y[14] ] = 0
    qc149: - z[10,15] + [ x[10] * y[15] ] = 0
    qc150: - z[11,1] + [ x[11] * y[1] ] = 0
    qc151: - z[11,2] + [ x[11] * y[2] ] = 0
    qc152: - z[11,3] + [ x[11] * y[3] ] = 0
    qc153: - z[11,4] + [ x[11] * y[4] ] = 0
    qc154: - z[11,5] + [ x[11] * y[5] ] = 0
    qc155: - z[11,6] + [ x[11] * y[6] ] = 0
    qc156: - z[11,7] + [ x[11] * y[7] ] = 0
    qc157: - z[11,8] + [ x[11] * y[8] ] = 0
    qc158: - z[11,9] + [ x[11] * y[9] ] = 0
    qc159: - z[11,10] + [ x[11] * y[10] ] = 0
    qc160: - z[11,11] + [ x[11] * y[11] ] = 0
    qc161: - z[11,12] + [ x[11] * y[12] ] = 0
    qc162: - z[11,13] + [ x[11] * y[13] ] = 0
    qc163: - z[11,14] + [ x[11] * y[14] ] = 0
    qc164: - z[11,15] + [ x[11] * y[15] ] = 0
    qc165: - z[12,1] + [ x[12] * y[1] ] = 0
    qc166: - z[12,2] + [ x[12] * y[2] ] = 0
    qc167: - z[12,3] + [ x[12] * y[3] ] = 0
    qc168: - z[12,4] + [ x[12] * y[4] ] = 0
    qc169: - z[12,5] + [ x[12] * y[5] ] = 0
    qc170: - z[12,6] + [ x[12] * y[6] ] = 0
    qc171: - z[12,7] + [ x[12] * y[7] ] = 0
    qc172: - z[12,8] + [ x[12] * y[8] ] = 0
    qc173: - z[12,9] + [ x[12] * y[9] ] = 0
    qc174: - z[12,10] + [ x[12] * y[10] ] = 0
    qc175: - z[12,11] + [ x[12] * y[11] ] = 0
    qc176: - z[12,12] + [ x[12] * y[12] ] = 0
    qc177: - z[12,13] + [ x[12] * y[13] ] = 0
    qc178: - z[12,14] + [ x[12] * y[14] ] = 0
    qc179: - z[12,15] + [ x[12] * y[15] ] = 0
    qc180: - z[13,1] + [ x[13] * y[1] ] = 0
    qc181: - z[13,2] + [ x[13] * y[2] ] = 0
    qc182: - z[13,3] + [ x[13] * y[3] ] = 0
    qc183: - z[13,4] + [ x[13] * y[4] ] = 0
    qc184: - z[13,5] + [ x[13] * y[5] ] = 0
    qc185: - z[13,6] + [ x[13] * y[6] ] = 0
    qc186: - z[13,7] + [ x[13] * y[7] ] = 0
    qc187: - z[13,8] + [ x[13] * y[8] ] = 0
    qc188: - z[13,9] + [ x[13] * y[9] ] = 0
    qc189: - z[13,10] + [ x[13] * y[10] ] = 0
    qc190: - z[13,11] + [ x[13] * y[11] ] = 0
    qc191: - z[13,12] + [ x[13] * y[12] ] = 0
    qc192: - z[13,13] + [ x[13] * y[13] ] = 0
    qc193: - z[13,14] + [ x[13] * y[14] ] = 0
    qc194: - z[13,15] + [ x[13] * y[15] ] = 0
    qc195: - z[14,1] + [ x[14] * y[1] ] = 0
    qc196: - z[14,2] + [ x[14] * y[2] ] = 0
    qc197: - z[14,3] + [ x[14] * y[3] ] = 0
    qc198: - z[14,4] + [ x[14] * y[4] ] = 0
    qc199: - z[14,5] + [ x[14] * y[5] ] = 0
    qc200: - z[14,6] + [ x[14] * y[6] ] = 0
    qc201: - z[14,7] + [ x[14] * y[7] ] = 0
    qc202: - z[14,8] + [ x[14] * y[8] ] = 0
    qc203: - z[14,9] + [ x[14] * y[9] ] = 0
    qc204: - z[14,10] + [ x[14] * y[10] ] = 0
    qc205: - z[14,11] + [ x[14] * y[11] ] = 0
    qc206: - z[14,12] + [ x[14] * y[12] ] = 0
    qc207: - z[14,13] + [ x[14] * y[13] ] = 0
    qc208: - z[14,14] + [ x[14] * y[14] ] = 0
    qc209: - z[14,15] + [ x[14] * y[15] ] = 0
    qc210: - z[15,1] + [ x[15] * y[1] ] = 0
    qc211: - z[15,2] + [ x[15] * y[2] ] = 0
    qc212: - z[15,3] + [ x[15] * y[3] ] = 0
    qc213: - z[15,4] + [ x[15] * y[4] ] = 0
    qc214: - z[15,5] + [ x[15] * y[5] ] = 0
    qc215: - z[15,6] + [ x[15] * y[6] ] = 0
    qc216: - z[15,7] + [ x[15] * y[7] ] = 0
    qc217: - z[15,8] + [ x[15] * y[8] ] = 0
    qc218: - z[15,9] + [ x[15] * y[9] ] = 0
    qc219: - z[15,10] + [ x[15] * y[10] ] = 0
    qc220: - z[15,11] + [ x[15] * y[11] ] = 0
    qc221: - z[15,12] + [ x[15] * y[12] ] = 0
    qc222: - z[15,13] + [ x[15] * y[13] ] = 0
    qc223: - z[15,14] + [ x[15] * y[14] ] = 0
    qc224: - z[15,15] + [ x[15] * y[15] ] = 0
    Bounds
    x[1] <= 1
    x[2] <= 1
    x[3] <= 1
    x[4] <= 1
    x[5] <= 1
    x[6] <= 1
    x[7] <= 1
    x[8] <= 1
    x[9] <= 1
    x[10] <= 1
    x[11] <= 1
    x[12] <= 1
    x[13] <= 1
    x[14] <= 1
    x[15] <= 1
    y[1] <= 1
    y[2] <= 1
    y[3] <= 1
    y[4] <= 1
    y[5] <= 1
    y[6] <= 1
    y[7] <= 1
    y[8] <= 1
    y[9] <= 1
    y[10] <= 1
    y[11] <= 1
    y[12] <= 1
    y[13] <= 1
    y[14] <= 1
    y[15] <= 1
    z[1,1] <= 1
    z[1,2] <= 1
    z[1,3] <= 1
    z[1,4] <= 1
    z[1,5] <= 1
    z[1,6] <= 1
    z[1,7] <= 1
    z[1,8] <= 1
    z[1,9] <= 1
    z[1,10] <= 1
    z[1,11] <= 1
    z[1,12] <= 1
    z[1,13] <= 1
    z[1,14] <= 1
    z[1,15] <= 1
    z[2,1] <= 1
    z[2,2] <= 1
    z[2,3] <= 1
    z[2,4] <= 1
    z[2,5] <= 1
    z[2,6] <= 1
    z[2,7] <= 1
    z[2,8] <= 1
    z[2,9] <= 1
    z[2,10] <= 1
    z[2,11] <= 1
    z[2,12] <= 1
    z[2,13] <= 1
    z[2,14] <= 1
    z[2,15] <= 1
    z[3,1] <= 1
    z[3,2] <= 1
    z[3,3] <= 1
    z[3,4] <= 1
    z[3,5] <= 1
    z[3,6] <= 1
    z[3,7] <= 1
    z[3,8] <= 1
    z[3,9] <= 1
    z[3,10] <= 1
    z[3,11] <= 1
    z[3,12] <= 1
    z[3,13] <= 1
    z[3,14] <= 1
    z[3,15] <= 1
    z[4,1] <= 1
    z[4,2] <= 1
    z[4,3] <= 1
    z[4,4] <= 1
    z[4,5] <= 1
    z[4,6] <= 1
    z[4,7] <= 1
    z[4,8] <= 1
    z[4,9] <= 1
    z[4,10] <= 1
    z[4,11] <= 1
    z[4,12] <= 1
    z[4,13] <= 1
    z[4,14] <= 1
    z[4,15] <= 1
    z[5,1] <= 1
    z[5,2] <= 1
    z[5,3] <= 1
    z[5,4] <= 1
    z[5,5] <= 1
    z[5,6] <= 1
    z[5,7] <= 1
    z[5,8] <= 1
    z[5,9] <= 1
    z[5,10] <= 1
    z[5,11] <= 1
    z[5,12] <= 1
    z[5,13] <= 1
    z[5,14] <= 1
    z[5,15] <= 1
    z[6,1] <= 1
    z[6,2] <= 1
    z[6,3] <= 1
    z[6,4] <= 1
    z[6,5] <= 1
    z[6,6] <= 1
    z[6,7] <= 1
    z[6,8] <= 1
    z[6,9] <= 1
    z[6,10] <= 1
    z[6,11] <= 1
    z[6,12] <= 1
    z[6,13] <= 1
    z[6,14] <= 1
    z[6,15] <= 1
    z[7,1] <= 1
    z[7,2] <= 1
    z[7,3] <= 1
    z[7,4] <= 1
    z[7,5] <= 1
    z[7,6] <= 1
    z[7,7] <= 1
    z[7,8] <= 1
    z[7,9] <= 1
    z[7,10] <= 1
    z[7,11] <= 1
    z[7,12] <= 1
    z[7,13] <= 1
    z[7,14] <= 1
    z[7,15] <= 1
    z[8,1] <= 1
    z[8,2] <= 1
    z[8,3] <= 1
    z[8,4] <= 1
    z[8,5] <= 1
    z[8,6] <= 1
    z[8,7] <= 1
    z[8,8] <= 1
    z[8,9] <= 1
    z[8,10] <= 1
    z[8,11] <= 1
    z[8,12] <= 1
    z[8,13] <= 1
    z[8,14] <= 1
    z[8,15] <= 1
    z[9,1] <= 1
    z[9,2] <= 1
    z[9,3] <= 1
    z[9,4] <= 1
    z[9,5] <= 1
    z[9,6] <= 1
    z[9,7] <= 1
    z[9,8] <= 1
    z[9,9] <= 1
    z[9,10] <= 1
    z[9,11] <= 1
    z[9,12] <= 1
    z[9,13] <= 1
    z[9,14] <= 1
    z[9,15] <= 1
    z[10,1] <= 1
    z[10,2] <= 1
    z[10,3] <= 1
    z[10,4] <= 1
    z[10,5] <= 1
    z[10,6] <= 1
    z[10,7] <= 1
    z[10,8] <= 1
    z[10,9] <= 1
    z[10,10] <= 1
    z[10,11] <= 1
    z[10,12] <= 1
    z[10,13] <= 1
    z[10,14] <= 1
    z[10,15] <= 1
    z[11,1] <= 1
    z[11,2] <= 1
    z[11,3] <= 1
    z[11,4] <= 1
    z[11,5] <= 1
    z[11,6] <= 1
    z[11,7] <= 1
    z[11,8] <= 1
    z[11,9] <= 1
    z[11,10] <= 1
    z[11,11] <= 1
    z[11,12] <= 1
    z[11,13] <= 1
    z[11,14] <= 1
    z[11,15] <= 1
    z[12,1] <= 1
    z[12,2] <= 1
    z[12,3] <= 1
    z[12,4] <= 1
    z[12,5] <= 1
    z[12,6] <= 1
    z[12,7] <= 1
    z[12,8] <= 1
    z[12,9] <= 1
    z[12,10] <= 1
    z[12,11] <= 1
    z[12,12] <= 1
    z[12,13] <= 1
    z[12,14] <= 1
    z[12,15] <= 1
    z[13,1] <= 1
    z[13,2] <= 1
    z[13,3] <= 1
    z[13,4] <= 1
    z[13,5] <= 1
    z[13,6] <= 1
    z[13,7] <= 1
    z[13,8] <= 1
    z[13,9] <= 1
    z[13,10] <= 1
    z[13,11] <= 1
    z[13,12] <= 1
    z[13,13] <= 1
    z[13,14] <= 1
    z[13,15] <= 1
    z[14,1] <= 1
    z[14,2] <= 1
    z[14,3] <= 1
    z[14,4] <= 1
    z[14,5] <= 1
    z[14,6] <= 1
    z[14,7] <= 1
    z[14,8] <= 1
    z[14,9] <= 1
    z[14,10] <= 1
    z[14,11] <= 1
    z[14,12] <= 1
    z[14,13] <= 1
    z[14,14] <= 1
    z[14,15] <= 1
    z[15,1] <= 1
    z[15,2] <= 1
    z[15,3] <= 1
    z[15,4] <= 1
    z[15,5] <= 1
    z[15,6] <= 1
    z[15,7] <= 1
    z[15,8] <= 1
    z[15,9] <= 1
    z[15,10] <= 1
    z[15,11] <= 1
    z[15,12] <= 1
    z[15,13] <= 1
    z[15,14] <= 1
    z[15,15] <= 1
    End
    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Thank you, I'll try to find out something. Just to be sure, in your manual McCormick relaxation, you also added the constraint

    R0: x[1] + x[2] + x[3] <= 0.48

    correct?

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Yes, that is correct.

    Thanks for your help!

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Looking at the presolved model, which you can get via the presolve() method, I don't see any bound tightenings on any variable. I can also see all McCormick envelope constraints in the presolved model. Maybe you could check the presolved model against your manual construction? You can write the presolved model to a human readable file via

    import gurobipy as gp

    m = gp.read("myLP.lp")

    m.setParam("NonConvex",2)
    m.setParam("Presolve",0)

    p = m.presolve()

    p.write("presolve.lp")

    You can open the file \(\texttt{presolve.lp}\) in any standard text editor.

    If you leave Presolve turned on, i.e., you remove the line

    m.setParam("Presolve",0)

    you will see in the presolved model that Gurobi improved some bounds using the R0 inequality.

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    It seems that

    - the presolved model (having Presolve=0) has R0+all Mccormick envelopes (explicitly) + all product variable equations + trivial bounds 0 and 1

    - my manual McCormick relaxation has R0 + all Mccormick envelopes but z_i,j >= 0 (it is implicitly given with the bounds) + trivial bounds 0 and 1

    So when one deletes the bilinear equations in the presolved model (with presolve=0) one exactly arrives at the manual McCormick relaxation. But this would mean, that Gurobi makes some different changes, that are independent of presolve, in order to compute the root relaxation, right?

    Here is the .lp file for the presolved model with presolve=0:

    Maximize
    1.29 x[1] + 3.91 x[2] - 1.24 x[3] - 0.68 x[4] - 2.74 x[5] - 2.09 x[6]
    + 4.72 x[7] - 1.2 x[8] + 4.61 x[9] + 4.14 x[10] + 0.96 x[11] - 2.4 x[12]
    + 4.81 x[13] - 0.04 x[14] - 0.85 x[15] + 1.29 y[1] + 3.91 y[2]
    - 1.24 y[3] - 0.68 y[4] - 2.74 y[5] - 2.09 y[6] + 4.72 y[7] - 1.2 y[8]
    + 4.61 y[9] + 4.14 y[10] + 0.96 y[11] - 2.4 y[12] + 4.81 y[13]
    - 0.04 y[14] - 0.85 y[15] + 4.01 z[1,1] - 3.87 z[1,2] - 0.31 z[1,3]
    - 2.53 z[1,4] + 0.44 z[1,5] + 0.74 z[1,6] - 4.87 z[1,7] - 2.83 z[1,8]
    - 2.21 z[1,9] + 4.16 z[1,10] + 2.66 z[1,11] - 3.4 z[1,12] + 2.97 z[1,13]
    - 3.61 z[1,14] + 1.17 z[1,15] - 3.73 z[2,1] - 4.98 z[2,2] + 3.71 z[2,3]
    - 2.91 z[2,4] - 2.85 z[2,5] + 4.82 z[2,6] + 3.72 z[2,7] - 2.11 z[2,8]
    + 4.61 z[2,9] + 0.39 z[2,10] + 1.78 z[2,11] - 2.95 z[2,12]
    + 4.41 z[2,13] + 1.91 z[2,14] + 4.67 z[2,15] + 3.94 z[3,1] - 2.01 z[3,2]
    - 1.39 z[3,3] - 3.34 z[3,4] - 3.54 z[3,5] - 4.35 z[3,6] - 1.99 z[3,7]
    + 1.03 z[3,8] - 4.97 z[3,9] + 1.78 z[3,10] - 1.62 z[3,11] - 1.9 z[3,12]
    + 3.19 z[3,13] - 0.19 z[3,14] - 1.84 z[3,15] - 0.19 z[4,1] + 2.05 z[4,2]
    - 4.43 z[4,3] + 4.75 z[4,4] - 4.77 z[4,5] + 2.5 z[4,6] + 3.45 z[4,7]
    - 4.82 z[4,8] + 2.88 z[4,9] - 1.34 z[4,10] + 0.79 z[4,11] - 4.91 z[4,12]
    - 4.53 z[4,13] - 3.19 z[4,14] + 4.55 z[4,15] - 3.03 z[5,1] + 2.56 z[5,2]
    + 4.3 z[5,3] + 4.42 z[5,4] - 1.56 z[5,5] - 1.45 z[5,6] + 0.25 z[5,7]
    + 2.76 z[5,8] - 3.92 z[5,9] + 2.48 z[5,10] + 2.97 z[5,11] + 3.6 z[5,12]
    - 4.63 z[5,13] + 4.46 z[5,14] - 4.09 z[5,15] - 1.59 z[6,1] + 1.11 z[6,2]
    + 4.18 z[6,3] - 1.6 z[6,4] + 4.24 z[6,5] + 0.45 z[6,6] - 1.88 z[6,7]
    - 1.83 z[6,8] - 3.23 z[6,9] - 4.22 z[6,10] - 3.51 z[6,11] + 1.89 z[6,12]
    + 4.97 z[6,13] - 3.38 z[6,14] - 4.51 z[6,15] + 4.87 z[7,1] + 0.34 z[7,2]
    - 0.94 z[7,3] - 2.63 z[7,4] + 0.94 z[7,5] + 3.26 z[7,6] - 0.44 z[7,7]
    - 0.78 z[7,8] - 4.44 z[7,9] + 4.16 z[7,10] - 4.67 z[7,11] - 0.06 z[7,12]
    + 3.38 z[7,13] - 3.69 z[7,14] + 2.32 z[7,15] + 4.5 z[8,1] + 1.3 z[8,2]
    + 2.88 z[8,3] - 3.93 z[8,4] - 0.65 z[8,5] - 3.51 z[8,6] + 3.45 z[8,7]
    - 2.05 z[8,8] - 0.47 z[8,9] + 4.99 z[8,10] + 3.52 z[8,11] + 4.76 z[8,12]
    - 0.46 z[8,13] - 0.12 z[8,14] + 2.3 z[8,15] - 0.21 z[9,1] - 2.09 z[9,2]
    - 0.96 z[9,3] - 3.53 z[9,4] - 1.23 z[9,5] + 4.88 z[9,6] + 4.6 z[9,7]
    + 1.27 z[9,8] - 0.01 z[9,9] - 1.62 z[9,10] - 4.11 z[9,11] - 2.28 z[9,12]
    + 2.82 z[9,13] + 3.67 z[9,14] - 1.39 z[9,15] + 2.86 z[10,1]
    + 2.75 z[10,2] + 1.95 z[10,3] + 1.64 z[10,4] + 2.6 z[10,5]
    - 1.37 z[10,6] + 2.04 z[10,7] - 2.19 z[10,8] - 0.14 z[10,9]
    + 2.7 z[10,10] + 1.91 z[10,11] - 2.06 z[10,12] + 4.46 z[10,13]
    + 1.5 z[10,14] + 0.81 z[10,15] - 4.88 z[11,1] + 0.47 z[11,2]
    - 2.49 z[11,3] + 1.72 z[11,4] - 0.37 z[11,5] + 3.17 z[11,6]
    + 1.47 z[11,7] + 2.98 z[11,8] - 1.52 z[11,9] + 1.44 z[11,10]
    + 2.38 z[11,11] + 3.28 z[11,12] - 1.5 z[11,13] + 3.43 z[11,14]
    + 3.7 z[11,15] + 1.88 z[12,1] + 4.76 z[12,2] + 4.57 z[12,3]
    + 0.18 z[12,4] + 0.29 z[12,5] - 3.34 z[12,6] + 3.37 z[12,7]
    + 4.37 z[12,8] - 0.23 z[12,9] + 1.91 z[12,10] + 2.2 z[12,11]
    + 2.3 z[12,12] - 3.28 z[12,13] + 2.8 z[12,14] + 0.81 z[12,15]
    + 1.66 z[13,1] - 0.79 z[13,2] + 1.24 z[13,3] + 2.75 z[13,4]
    + 1.37 z[13,5] + 2.2 z[13,6] - 4.72 z[13,7] - 3.4 z[13,8] - 0.59 z[13,9]
    + 1.5 z[13,10] - 2.81 z[13,11] + 1.86 z[13,12] + 1.31 z[13,13]
    - 4.58 z[13,14] - 0.28 z[13,15] - 2.74 z[14,1] - 4.46 z[14,2]
    - 3.66 z[14,3] - 1.83 z[14,4] - 3.18 z[14,5] - 3.07 z[14,6]
    - 4.64 z[14,7] - 0.35 z[14,8] - 1.2 z[14,9] + 1.12 z[14,10]
    + 0.9 z[14,11] - 2.62 z[14,12] + 4.03 z[14,13] - 4.99 z[14,14]
    - 0.95 z[14,15] - 2.21 z[15,1] - 0.9 z[15,2] - 3.85 z[15,3]
    + 3.31 z[15,4] - 1.26 z[15,5] - 4.64 z[15,6] + 1.14 z[15,7]
    - 4.05 z[15,8] + 0.45 z[15,9] - 1.61 z[15,10] + 0.81 z[15,11]
    + 4.58 z[15,12] + 3.19 z[15,13] - 0.81 z[15,14] + 3.13 z[15,15]
    Subject To
    R0: x[1] + x[2] + x[3] <= 0.48
    R1: - y[1] + z[1,1] <= 0
    R2: - x[1] + z[1,1] <= 0
    R3: - z[1,1] <= 0
    R4: x[1] + y[1] - z[1,1] <= 1
    R5: - y[2] + z[1,2] <= 0
    R6: - x[1] + z[1,2] <= 0
    R7: - z[1,2] <= 0
    R8: x[1] + y[2] - z[1,2] <= 1
    R9: - y[3] + z[1,3] <= 0
    R10: - x[1] + z[1,3] <= 0
    R11: - z[1,3] <= 0
    R12: x[1] + y[3] - z[1,3] <= 1
    R13: - y[4] + z[1,4] <= 0
    R14: - x[1] + z[1,4] <= 0
    R15: - z[1,4] <= 0
    R16: x[1] + y[4] - z[1,4] <= 1
    R17: - y[5] + z[1,5] <= 0
    R18: - x[1] + z[1,5] <= 0
    R19: - z[1,5] <= 0
    R20: x[1] + y[5] - z[1,5] <= 1
    R21: - y[6] + z[1,6] <= 0
    R22: - x[1] + z[1,6] <= 0
    R23: - z[1,6] <= 0
    R24: x[1] + y[6] - z[1,6] <= 1
    R25: - y[7] + z[1,7] <= 0
    R26: - x[1] + z[1,7] <= 0
    R27: - z[1,7] <= 0
    R28: x[1] + y[7] - z[1,7] <= 1
    R29: - y[8] + z[1,8] <= 0
    R30: - x[1] + z[1,8] <= 0
    R31: - z[1,8] <= 0
    R32: x[1] + y[8] - z[1,8] <= 1
    R33: - y[9] + z[1,9] <= 0
    R34: - x[1] + z[1,9] <= 0
    R35: - z[1,9] <= 0
    R36: x[1] + y[9] - z[1,9] <= 1
    R37: - y[10] + z[1,10] <= 0
    R38: - x[1] + z[1,10] <= 0
    R39: - z[1,10] <= 0
    R40: x[1] + y[10] - z[1,10] <= 1
    R41: - y[11] + z[1,11] <= 0
    R42: - x[1] + z[1,11] <= 0
    R43: - z[1,11] <= 0
    R44: x[1] + y[11] - z[1,11] <= 1
    R45: - y[12] + z[1,12] <= 0
    R46: - x[1] + z[1,12] <= 0
    R47: - z[1,12] <= 0
    R48: x[1] + y[12] - z[1,12] <= 1
    R49: - y[13] + z[1,13] <= 0
    R50: - x[1] + z[1,13] <= 0
    R51: - z[1,13] <= 0
    R52: x[1] + y[13] - z[1,13] <= 1
    R53: - y[14] + z[1,14] <= 0
    R54: - x[1] + z[1,14] <= 0
    R55: - z[1,14] <= 0
    R56: x[1] + y[14] - z[1,14] <= 1
    R57: - y[15] + z[1,15] <= 0
    R58: - x[1] + z[1,15] <= 0
    R59: - z[1,15] <= 0
    R60: x[1] + y[15] - z[1,15] <= 1
    R61: - y[1] + z[2,1] <= 0
    R62: - x[2] + z[2,1] <= 0
    R63: - z[2,1] <= 0
    R64: x[2] + y[1] - z[2,1] <= 1
    R65: - y[2] + z[2,2] <= 0
    R66: - x[2] + z[2,2] <= 0
    R67: - z[2,2] <= 0
    R68: x[2] + y[2] - z[2,2] <= 1
    R69: - y[3] + z[2,3] <= 0
    R70: - x[2] + z[2,3] <= 0
    R71: - z[2,3] <= 0
    R72: x[2] + y[3] - z[2,3] <= 1
    R73: - y[4] + z[2,4] <= 0
    R74: - x[2] + z[2,4] <= 0
    R75: - z[2,4] <= 0
    R76: x[2] + y[4] - z[2,4] <= 1
    R77: - y[5] + z[2,5] <= 0
    R78: - x[2] + z[2,5] <= 0
    R79: - z[2,5] <= 0
    R80: x[2] + y[5] - z[2,5] <= 1
    R81: - y[6] + z[2,6] <= 0
    R82: - x[2] + z[2,6] <= 0
    R83: - z[2,6] <= 0
    R84: x[2] + y[6] - z[2,6] <= 1
    R85: - y[7] + z[2,7] <= 0
    R86: - x[2] + z[2,7] <= 0
    R87: - z[2,7] <= 0
    R88: x[2] + y[7] - z[2,7] <= 1
    R89: - y[8] + z[2,8] <= 0
    R90: - x[2] + z[2,8] <= 0
    R91: - z[2,8] <= 0
    R92: x[2] + y[8] - z[2,8] <= 1
    R93: - y[9] + z[2,9] <= 0
    R94: - x[2] + z[2,9] <= 0
    R95: - z[2,9] <= 0
    R96: x[2] + y[9] - z[2,9] <= 1
    R97: - y[10] + z[2,10] <= 0
    R98: - x[2] + z[2,10] <= 0
    R99: - z[2,10] <= 0
    R100: x[2] + y[10] - z[2,10] <= 1
    R101: - y[11] + z[2,11] <= 0
    R102: - x[2] + z[2,11] <= 0
    R103: - z[2,11] <= 0
    R104: x[2] + y[11] - z[2,11] <= 1
    R105: - y[12] + z[2,12] <= 0
    R106: - x[2] + z[2,12] <= 0
    R107: - z[2,12] <= 0
    R108: x[2] + y[12] - z[2,12] <= 1
    R109: - y[13] + z[2,13] <= 0
    R110: - x[2] + z[2,13] <= 0
    R111: - z[2,13] <= 0
    R112: x[2] + y[13] - z[2,13] <= 1
    R113: - y[14] + z[2,14] <= 0
    R114: - x[2] + z[2,14] <= 0
    R115: - z[2,14] <= 0
    R116: x[2] + y[14] - z[2,14] <= 1
    R117: - y[15] + z[2,15] <= 0
    R118: - x[2] + z[2,15] <= 0
    R119: - z[2,15] <= 0
    R120: x[2] + y[15] - z[2,15] <= 1
    R121: - y[1] + z[3,1] <= 0
    R122: - x[3] + z[3,1] <= 0
    R123: - z[3,1] <= 0
    R124: x[3] + y[1] - z[3,1] <= 1
    R125: - y[2] + z[3,2] <= 0
    R126: - x[3] + z[3,2] <= 0
    R127: - z[3,2] <= 0
    R128: x[3] + y[2] - z[3,2] <= 1
    R129: - y[3] + z[3,3] <= 0
    R130: - x[3] + z[3,3] <= 0
    R131: - z[3,3] <= 0
    R132: x[3] + y[3] - z[3,3] <= 1
    R133: - y[4] + z[3,4] <= 0
    R134: - x[3] + z[3,4] <= 0
    R135: - z[3,4] <= 0
    R136: x[3] + y[4] - z[3,4] <= 1
    R137: - y[5] + z[3,5] <= 0
    R138: - x[3] + z[3,5] <= 0
    R139: - z[3,5] <= 0
    R140: x[3] + y[5] - z[3,5] <= 1
    R141: - y[6] + z[3,6] <= 0
    R142: - x[3] + z[3,6] <= 0
    R143: - z[3,6] <= 0
    R144: x[3] + y[6] - z[3,6] <= 1
    R145: - y[7] + z[3,7] <= 0
    R146: - x[3] + z[3,7] <= 0
    R147: - z[3,7] <= 0
    R148: x[3] + y[7] - z[3,7] <= 1
    R149: - y[8] + z[3,8] <= 0
    R150: - x[3] + z[3,8] <= 0
    R151: - z[3,8] <= 0
    R152: x[3] + y[8] - z[3,8] <= 1
    R153: - y[9] + z[3,9] <= 0
    R154: - x[3] + z[3,9] <= 0
    R155: - z[3,9] <= 0
    R156: x[3] + y[9] - z[3,9] <= 1
    R157: - y[10] + z[3,10] <= 0
    R158: - x[3] + z[3,10] <= 0
    R159: - z[3,10] <= 0
    R160: x[3] + y[10] - z[3,10] <= 1
    R161: - y[11] + z[3,11] <= 0
    R162: - x[3] + z[3,11] <= 0
    R163: - z[3,11] <= 0
    R164: x[3] + y[11] - z[3,11] <= 1
    R165: - y[12] + z[3,12] <= 0
    R166: - x[3] + z[3,12] <= 0
    R167: - z[3,12] <= 0
    R168: x[3] + y[12] - z[3,12] <= 1
    R169: - y[13] + z[3,13] <= 0
    R170: - x[3] + z[3,13] <= 0
    R171: - z[3,13] <= 0
    R172: x[3] + y[13] - z[3,13] <= 1
    R173: - y[14] + z[3,14] <= 0
    R174: - x[3] + z[3,14] <= 0
    R175: - z[3,14] <= 0
    R176: x[3] + y[14] - z[3,14] <= 1
    R177: - y[15] + z[3,15] <= 0
    R178: - x[3] + z[3,15] <= 0
    R179: - z[3,15] <= 0
    R180: x[3] + y[15] - z[3,15] <= 1
    R181: - y[1] + z[4,1] <= 0
    R182: - x[4] + z[4,1] <= 0
    R183: - z[4,1] <= 0
    R184: x[4] + y[1] - z[4,1] <= 1
    R185: - y[2] + z[4,2] <= 0
    R186: - x[4] + z[4,2] <= 0
    R187: - z[4,2] <= 0
    R188: x[4] + y[2] - z[4,2] <= 1
    R189: - y[3] + z[4,3] <= 0
    R190: - x[4] + z[4,3] <= 0
    R191: - z[4,3] <= 0
    R192: x[4] + y[3] - z[4,3] <= 1
    R193: - y[4] + z[4,4] <= 0
    R194: - x[4] + z[4,4] <= 0
    R195: - z[4,4] <= 0
    R196: x[4] + y[4] - z[4,4] <= 1
    R197: - y[5] + z[4,5] <= 0
    R198: - x[4] + z[4,5] <= 0
    R199: - z[4,5] <= 0
    R200: x[4] + y[5] - z[4,5] <= 1
    R201: - y[6] + z[4,6] <= 0
    R202: - x[4] + z[4,6] <= 0
    R203: - z[4,6] <= 0
    R204: x[4] + y[6] - z[4,6] <= 1
    R205: - y[7] + z[4,7] <= 0
    R206: - x[4] + z[4,7] <= 0
    R207: - z[4,7] <= 0
    R208: x[4] + y[7] - z[4,7] <= 1
    R209: - y[8] + z[4,8] <= 0
    R210: - x[4] + z[4,8] <= 0
    R211: - z[4,8] <= 0
    R212: x[4] + y[8] - z[4,8] <= 1
    R213: - y[9] + z[4,9] <= 0
    R214: - x[4] + z[4,9] <= 0
    R215: - z[4,9] <= 0
    R216: x[4] + y[9] - z[4,9] <= 1
    R217: - y[10] + z[4,10] <= 0
    R218: - x[4] + z[4,10] <= 0
    R219: - z[4,10] <= 0
    R220: x[4] + y[10] - z[4,10] <= 1
    R221: - y[11] + z[4,11] <= 0
    R222: - x[4] + z[4,11] <= 0
    R223: - z[4,11] <= 0
    R224: x[4] + y[11] - z[4,11] <= 1
    R225: - y[12] + z[4,12] <= 0
    R226: - x[4] + z[4,12] <= 0
    R227: - z[4,12] <= 0
    R228: x[4] + y[12] - z[4,12] <= 1
    R229: - y[13] + z[4,13] <= 0
    R230: - x[4] + z[4,13] <= 0
    R231: - z[4,13] <= 0
    R232: x[4] + y[13] - z[4,13] <= 1
    R233: - y[14] + z[4,14] <= 0
    R234: - x[4] + z[4,14] <= 0
    R235: - z[4,14] <= 0
    R236: x[4] + y[14] - z[4,14] <= 1
    R237: - y[15] + z[4,15] <= 0
    R238: - x[4] + z[4,15] <= 0
    R239: - z[4,15] <= 0
    R240: x[4] + y[15] - z[4,15] <= 1
    R241: - y[1] + z[5,1] <= 0
    R242: - x[5] + z[5,1] <= 0
    R243: - z[5,1] <= 0
    R244: x[5] + y[1] - z[5,1] <= 1
    R245: - y[2] + z[5,2] <= 0
    R246: - x[5] + z[5,2] <= 0
    R247: - z[5,2] <= 0
    R248: x[5] + y[2] - z[5,2] <= 1
    R249: - y[3] + z[5,3] <= 0
    R250: - x[5] + z[5,3] <= 0
    R251: - z[5,3] <= 0
    R252: x[5] + y[3] - z[5,3] <= 1
    R253: - y[4] + z[5,4] <= 0
    R254: - x[5] + z[5,4] <= 0
    R255: - z[5,4] <= 0
    R256: x[5] + y[4] - z[5,4] <= 1
    R257: - y[5] + z[5,5] <= 0
    R258: - x[5] + z[5,5] <= 0
    R259: - z[5,5] <= 0
    R260: x[5] + y[5] - z[5,5] <= 1
    R261: - y[6] + z[5,6] <= 0
    R262: - x[5] + z[5,6] <= 0
    R263: - z[5,6] <= 0
    R264: x[5] + y[6] - z[5,6] <= 1
    R265: - y[7] + z[5,7] <= 0
    R266: - x[5] + z[5,7] <= 0
    R267: - z[5,7] <= 0
    R268: x[5] + y[7] - z[5,7] <= 1
    R269: - y[8] + z[5,8] <= 0
    R270: - x[5] + z[5,8] <= 0
    R271: - z[5,8] <= 0
    R272: x[5] + y[8] - z[5,8] <= 1
    R273: - y[9] + z[5,9] <= 0
    R274: - x[5] + z[5,9] <= 0
    R275: - z[5,9] <= 0
    R276: x[5] + y[9] - z[5,9] <= 1
    R277: - y[10] + z[5,10] <= 0
    R278: - x[5] + z[5,10] <= 0
    R279: - z[5,10] <= 0
    R280: x[5] + y[10] - z[5,10] <= 1
    R281: - y[11] + z[5,11] <= 0
    R282: - x[5] + z[5,11] <= 0
    R283: - z[5,11] <= 0
    R284: x[5] + y[11] - z[5,11] <= 1
    R285: - y[12] + z[5,12] <= 0
    R286: - x[5] + z[5,12] <= 0
    R287: - z[5,12] <= 0
    R288: x[5] + y[12] - z[5,12] <= 1
    R289: - y[13] + z[5,13] <= 0
    R290: - x[5] + z[5,13] <= 0
    R291: - z[5,13] <= 0
    R292: x[5] + y[13] - z[5,13] <= 1
    R293: - y[14] + z[5,14] <= 0
    R294: - x[5] + z[5,14] <= 0
    R295: - z[5,14] <= 0
    R296: x[5] + y[14] - z[5,14] <= 1
    R297: - y[15] + z[5,15] <= 0
    R298: - x[5] + z[5,15] <= 0
    R299: - z[5,15] <= 0
    R300: x[5] + y[15] - z[5,15] <= 1
    R301: - y[1] + z[6,1] <= 0
    R302: - x[6] + z[6,1] <= 0
    R303: - z[6,1] <= 0
    R304: x[6] + y[1] - z[6,1] <= 1
    R305: - y[2] + z[6,2] <= 0
    R306: - x[6] + z[6,2] <= 0
    R307: - z[6,2] <= 0
    R308: x[6] + y[2] - z[6,2] <= 1
    R309: - y[3] + z[6,3] <= 0
    R310: - x[6] + z[6,3] <= 0
    R311: - z[6,3] <= 0
    R312: x[6] + y[3] - z[6,3] <= 1
    R313: - y[4] + z[6,4] <= 0
    R314: - x[6] + z[6,4] <= 0
    R315: - z[6,4] <= 0
    R316: x[6] + y[4] - z[6,4] <= 1
    R317: - y[5] + z[6,5] <= 0
    R318: - x[6] + z[6,5] <= 0
    R319: - z[6,5] <= 0
    R320: x[6] + y[5] - z[6,5] <= 1
    R321: - y[6] + z[6,6] <= 0
    R322: - x[6] + z[6,6] <= 0
    R323: - z[6,6] <= 0
    R324: x[6] + y[6] - z[6,6] <= 1
    R325: - y[7] + z[6,7] <= 0
    R326: - x[6] + z[6,7] <= 0
    R327: - z[6,7] <= 0
    R328: x[6] + y[7] - z[6,7] <= 1
    R329: - y[8] + z[6,8] <= 0
    R330: - x[6] + z[6,8] <= 0
    R331: - z[6,8] <= 0
    R332: x[6] + y[8] - z[6,8] <= 1
    R333: - y[9] + z[6,9] <= 0
    R334: - x[6] + z[6,9] <= 0
    R335: - z[6,9] <= 0
    R336: x[6] + y[9] - z[6,9] <= 1
    R337: - y[10] + z[6,10] <= 0
    R338: - x[6] + z[6,10] <= 0
    R339: - z[6,10] <= 0
    R340: x[6] + y[10] - z[6,10] <= 1
    R341: - y[11] + z[6,11] <= 0
    R342: - x[6] + z[6,11] <= 0
    R343: - z[6,11] <= 0
    R344: x[6] + y[11] - z[6,11] <= 1
    R345: - y[12] + z[6,12] <= 0
    R346: - x[6] + z[6,12] <= 0
    R347: - z[6,12] <= 0
    R348: x[6] + y[12] - z[6,12] <= 1
    R349: - y[13] + z[6,13] <= 0
    R350: - x[6] + z[6,13] <= 0
    R351: - z[6,13] <= 0
    R352: x[6] + y[13] - z[6,13] <= 1
    R353: - y[14] + z[6,14] <= 0
    R354: - x[6] + z[6,14] <= 0
    R355: - z[6,14] <= 0
    R356: x[6] + y[14] - z[6,14] <= 1
    R357: - y[15] + z[6,15] <= 0
    R358: - x[6] + z[6,15] <= 0
    R359: - z[6,15] <= 0
    R360: x[6] + y[15] - z[6,15] <= 1
    R361: - y[1] + z[7,1] <= 0
    R362: - x[7] + z[7,1] <= 0
    R363: - z[7,1] <= 0
    R364: x[7] + y[1] - z[7,1] <= 1
    R365: - y[2] + z[7,2] <= 0
    R366: - x[7] + z[7,2] <= 0
    R367: - z[7,2] <= 0
    R368: x[7] + y[2] - z[7,2] <= 1
    R369: - y[3] + z[7,3] <= 0
    R370: - x[7] + z[7,3] <= 0
    R371: - z[7,3] <= 0
    R372: x[7] + y[3] - z[7,3] <= 1
    R373: - y[4] + z[7,4] <= 0
    R374: - x[7] + z[7,4] <= 0
    R375: - z[7,4] <= 0
    R376: x[7] + y[4] - z[7,4] <= 1
    R377: - y[5] + z[7,5] <= 0
    R378: - x[7] + z[7,5] <= 0
    R379: - z[7,5] <= 0
    R380: x[7] + y[5] - z[7,5] <= 1
    R381: - y[6] + z[7,6] <= 0
    R382: - x[7] + z[7,6] <= 0
    R383: - z[7,6] <= 0
    R384: x[7] + y[6] - z[7,6] <= 1
    R385: - y[7] + z[7,7] <= 0
    R386: - x[7] + z[7,7] <= 0
    R387: - z[7,7] <= 0
    R388: x[7] + y[7] - z[7,7] <= 1
    R389: - y[8] + z[7,8] <= 0
    R390: - x[7] + z[7,8] <= 0
    R391: - z[7,8] <= 0
    R392: x[7] + y[8] - z[7,8] <= 1
    R393: - y[9] + z[7,9] <= 0
    R394: - x[7] + z[7,9] <= 0
    R395: - z[7,9] <= 0
    R396: x[7] + y[9] - z[7,9] <= 1
    R397: - y[10] + z[7,10] <= 0
    R398: - x[7] + z[7,10] <= 0
    R399: - z[7,10] <= 0
    R400: x[7] + y[10] - z[7,10] <= 1
    R401: - y[11] + z[7,11] <= 0
    R402: - x[7] + z[7,11] <= 0
    R403: - z[7,11] <= 0
    R404: x[7] + y[11] - z[7,11] <= 1
    R405: - y[12] + z[7,12] <= 0
    R406: - x[7] + z[7,12] <= 0
    R407: - z[7,12] <= 0
    R408: x[7] + y[12] - z[7,12] <= 1
    R409: - y[13] + z[7,13] <= 0
    R410: - x[7] + z[7,13] <= 0
    R411: - z[7,13] <= 0
    R412: x[7] + y[13] - z[7,13] <= 1
    R413: - y[14] + z[7,14] <= 0
    R414: - x[7] + z[7,14] <= 0
    R415: - z[7,14] <= 0
    R416: x[7] + y[14] - z[7,14] <= 1
    R417: - y[15] + z[7,15] <= 0
    R418: - x[7] + z[7,15] <= 0
    R419: - z[7,15] <= 0
    R420: x[7] + y[15] - z[7,15] <= 1
    R421: - y[1] + z[8,1] <= 0
    R422: - x[8] + z[8,1] <= 0
    R423: - z[8,1] <= 0
    R424: x[8] + y[1] - z[8,1] <= 1
    R425: - y[2] + z[8,2] <= 0
    R426: - x[8] + z[8,2] <= 0
    R427: - z[8,2] <= 0
    R428: x[8] + y[2] - z[8,2] <= 1
    R429: - y[3] + z[8,3] <= 0
    R430: - x[8] + z[8,3] <= 0
    R431: - z[8,3] <= 0
    R432: x[8] + y[3] - z[8,3] <= 1
    R433: - y[4] + z[8,4] <= 0
    R434: - x[8] + z[8,4] <= 0
    R435: - z[8,4] <= 0
    R436: x[8] + y[4] - z[8,4] <= 1
    R437: - y[5] + z[8,5] <= 0
    R438: - x[8] + z[8,5] <= 0
    R439: - z[8,5] <= 0
    R440: x[8] + y[5] - z[8,5] <= 1
    R441: - y[6] + z[8,6] <= 0
    R442: - x[8] + z[8,6] <= 0
    R443: - z[8,6] <= 0
    R444: x[8] + y[6] - z[8,6] <= 1
    R445: - y[7] + z[8,7] <= 0
    R446: - x[8] + z[8,7] <= 0
    R447: - z[8,7] <= 0
    R448: x[8] + y[7] - z[8,7] <= 1
    R449: - y[8] + z[8,8] <= 0
    R450: - x[8] + z[8,8] <= 0
    R451: - z[8,8] <= 0
    R452: x[8] + y[8] - z[8,8] <= 1
    R453: - y[9] + z[8,9] <= 0
    R454: - x[8] + z[8,9] <= 0
    R455: - z[8,9] <= 0
    R456: x[8] + y[9] - z[8,9] <= 1
    R457: - y[10] + z[8,10] <= 0
    R458: - x[8] + z[8,10] <= 0
    R459: - z[8,10] <= 0
    R460: x[8] + y[10] - z[8,10] <= 1
    R461: - y[11] + z[8,11] <= 0
    R462: - x[8] + z[8,11] <= 0
    R463: - z[8,11] <= 0
    R464: x[8] + y[11] - z[8,11] <= 1
    R465: - y[12] + z[8,12] <= 0
    R466: - x[8] + z[8,12] <= 0
    R467: - z[8,12] <= 0
    R468: x[8] + y[12] - z[8,12] <= 1
    R469: - y[13] + z[8,13] <= 0
    R470: - x[8] + z[8,13] <= 0
    R471: - z[8,13] <= 0
    R472: x[8] + y[13] - z[8,13] <= 1
    R473: - y[14] + z[8,14] <= 0
    R474: - x[8] + z[8,14] <= 0
    R475: - z[8,14] <= 0
    R476: x[8] + y[14] - z[8,14] <= 1
    R477: - y[15] + z[8,15] <= 0
    R478: - x[8] + z[8,15] <= 0
    R479: - z[8,15] <= 0
    R480: x[8] + y[15] - z[8,15] <= 1
    R481: - y[1] + z[9,1] <= 0
    R482: - x[9] + z[9,1] <= 0
    R483: - z[9,1] <= 0
    R484: x[9] + y[1] - z[9,1] <= 1
    R485: - y[2] + z[9,2] <= 0
    R486: - x[9] + z[9,2] <= 0
    R487: - z[9,2] <= 0
    R488: x[9] + y[2] - z[9,2] <= 1
    R489: - y[3] + z[9,3] <= 0
    R490: - x[9] + z[9,3] <= 0
    R491: - z[9,3] <= 0
    R492: x[9] + y[3] - z[9,3] <= 1
    R493: - y[4] + z[9,4] <= 0
    R494: - x[9] + z[9,4] <= 0
    R495: - z[9,4] <= 0
    R496: x[9] + y[4] - z[9,4] <= 1
    R497: - y[5] + z[9,5] <= 0
    R498: - x[9] + z[9,5] <= 0
    R499: - z[9,5] <= 0
    R500: x[9] + y[5] - z[9,5] <= 1
    R501: - y[6] + z[9,6] <= 0
    R502: - x[9] + z[9,6] <= 0
    R503: - z[9,6] <= 0
    R504: x[9] + y[6] - z[9,6] <= 1
    R505: - y[7] + z[9,7] <= 0
    R506: - x[9] + z[9,7] <= 0
    R507: - z[9,7] <= 0
    R508: x[9] + y[7] - z[9,7] <= 1
    R509: - y[8] + z[9,8] <= 0
    R510: - x[9] + z[9,8] <= 0
    R511: - z[9,8] <= 0
    R512: x[9] + y[8] - z[9,8] <= 1
    R513: - y[9] + z[9,9] <= 0
    R514: - x[9] + z[9,9] <= 0
    R515: - z[9,9] <= 0
    R516: x[9] + y[9] - z[9,9] <= 1
    R517: - y[10] + z[9,10] <= 0
    R518: - x[9] + z[9,10] <= 0
    R519: - z[9,10] <= 0
    R520: x[9] + y[10] - z[9,10] <= 1
    R521: - y[11] + z[9,11] <= 0
    R522: - x[9] + z[9,11] <= 0
    R523: - z[9,11] <= 0
    R524: x[9] + y[11] - z[9,11] <= 1
    R525: - y[12] + z[9,12] <= 0
    R526: - x[9] + z[9,12] <= 0
    R527: - z[9,12] <= 0
    R528: x[9] + y[12] - z[9,12] <= 1
    R529: - y[13] + z[9,13] <= 0
    R530: - x[9] + z[9,13] <= 0
    R531: - z[9,13] <= 0
    R532: x[9] + y[13] - z[9,13] <= 1
    R533: - y[14] + z[9,14] <= 0
    R534: - x[9] + z[9,14] <= 0
    R535: - z[9,14] <= 0
    R536: x[9] + y[14] - z[9,14] <= 1
    R537: - y[15] + z[9,15] <= 0
    R538: - x[9] + z[9,15] <= 0
    R539: - z[9,15] <= 0
    R540: x[9] + y[15] - z[9,15] <= 1
    R541: - y[1] + z[10,1] <= 0
    R542: - x[10] + z[10,1] <= 0
    R543: - z[10,1] <= 0
    R544: x[10] + y[1] - z[10,1] <= 1
    R545: - y[2] + z[10,2] <= 0
    R546: - x[10] + z[10,2] <= 0
    R547: - z[10,2] <= 0
    R548: x[10] + y[2] - z[10,2] <= 1
    R549: - y[3] + z[10,3] <= 0
    R550: - x[10] + z[10,3] <= 0
    R551: - z[10,3] <= 0
    R552: x[10] + y[3] - z[10,3] <= 1
    R553: - y[4] + z[10,4] <= 0
    R554: - x[10] + z[10,4] <= 0
    R555: - z[10,4] <= 0
    R556: x[10] + y[4] - z[10,4] <= 1
    R557: - y[5] + z[10,5] <= 0
    R558: - x[10] + z[10,5] <= 0
    R559: - z[10,5] <= 0
    R560: x[10] + y[5] - z[10,5] <= 1
    R561: - y[6] + z[10,6] <= 0
    R562: - x[10] + z[10,6] <= 0
    R563: - z[10,6] <= 0
    R564: x[10] + y[6] - z[10,6] <= 1
    R565: - y[7] + z[10,7] <= 0
    R566: - x[10] + z[10,7] <= 0
    R567: - z[10,7] <= 0
    R568: x[10] + y[7] - z[10,7] <= 1
    R569: - y[8] + z[10,8] <= 0
    R570: - x[10] + z[10,8] <= 0
    R571: - z[10,8] <= 0
    R572: x[10] + y[8] - z[10,8] <= 1
    R573: - y[9] + z[10,9] <= 0
    R574: - x[10] + z[10,9] <= 0
    R575: - z[10,9] <= 0
    R576: x[10] + y[9] - z[10,9] <= 1
    R577: - y[10] + z[10,10] <= 0
    R578: - x[10] + z[10,10] <= 0
    R579: - z[10,10] <= 0
    R580: x[10] + y[10] - z[10,10] <= 1
    R581: - y[11] + z[10,11] <= 0
    R582: - x[10] + z[10,11] <= 0
    R583: - z[10,11] <= 0
    R584: x[10] + y[11] - z[10,11] <= 1
    R585: - y[12] + z[10,12] <= 0
    R586: - x[10] + z[10,12] <= 0
    R587: - z[10,12] <= 0
    R588: x[10] + y[12] - z[10,12] <= 1
    R589: - y[13] + z[10,13] <= 0
    R590: - x[10] + z[10,13] <= 0
    R591: - z[10,13] <= 0
    R592: x[10] + y[13] - z[10,13] <= 1
    R593: - y[14] + z[10,14] <= 0
    R594: - x[10] + z[10,14] <= 0
    R595: - z[10,14] <= 0
    R596: x[10] + y[14] - z[10,14] <= 1
    R597: - y[15] + z[10,15] <= 0
    R598: - x[10] + z[10,15] <= 0
    R599: - z[10,15] <= 0
    R600: x[10] + y[15] - z[10,15] <= 1
    R601: - y[1] + z[11,1] <= 0
    R602: - x[11] + z[11,1] <= 0
    R603: - z[11,1] <= 0
    R604: x[11] + y[1] - z[11,1] <= 1
    R605: - y[2] + z[11,2] <= 0
    R606: - x[11] + z[11,2] <= 0
    R607: - z[11,2] <= 0
    R608: x[11] + y[2] - z[11,2] <= 1
    R609: - y[3] + z[11,3] <= 0
    R610: - x[11] + z[11,3] <= 0
    R611: - z[11,3] <= 0
    R612: x[11] + y[3] - z[11,3] <= 1
    R613: - y[4] + z[11,4] <= 0
    R614: - x[11] + z[11,4] <= 0
    R615: - z[11,4] <= 0
    R616: x[11] + y[4] - z[11,4] <= 1
    R617: - y[5] + z[11,5] <= 0
    R618: - x[11] + z[11,5] <= 0
    R619: - z[11,5] <= 0
    R620: x[11] + y[5] - z[11,5] <= 1
    R621: - y[6] + z[11,6] <= 0
    R622: - x[11] + z[11,6] <= 0
    R623: - z[11,6] <= 0
    R624: x[11] + y[6] - z[11,6] <= 1
    R625: - y[7] + z[11,7] <= 0
    R626: - x[11] + z[11,7] <= 0
    R627: - z[11,7] <= 0
    R628: x[11] + y[7] - z[11,7] <= 1
    R629: - y[8] + z[11,8] <= 0
    R630: - x[11] + z[11,8] <= 0
    R631: - z[11,8] <= 0
    R632: x[11] + y[8] - z[11,8] <= 1
    R633: - y[9] + z[11,9] <= 0
    R634: - x[11] + z[11,9] <= 0
    R635: - z[11,9] <= 0
    R636: x[11] + y[9] - z[11,9] <= 1
    R637: - y[10] + z[11,10] <= 0
    R638: - x[11] + z[11,10] <= 0
    R639: - z[11,10] <= 0
    R640: x[11] + y[10] - z[11,10] <= 1
    R641: - y[11] + z[11,11] <= 0
    R642: - x[11] + z[11,11] <= 0
    R643: - z[11,11] <= 0
    R644: x[11] + y[11] - z[11,11] <= 1
    R645: - y[12] + z[11,12] <= 0
    R646: - x[11] + z[11,12] <= 0
    R647: - z[11,12] <= 0
    R648: x[11] + y[12] - z[11,12] <= 1
    R649: - y[13] + z[11,13] <= 0
    R650: - x[11] + z[11,13] <= 0
    R651: - z[11,13] <= 0
    R652: x[11] + y[13] - z[11,13] <= 1
    R653: - y[14] + z[11,14] <= 0
    R654: - x[11] + z[11,14] <= 0
    R655: - z[11,14] <= 0
    R656: x[11] + y[14] - z[11,14] <= 1
    R657: - y[15] + z[11,15] <= 0
    R658: - x[11] + z[11,15] <= 0
    R659: - z[11,15] <= 0
    R660: x[11] + y[15] - z[11,15] <= 1
    R661: - y[1] + z[12,1] <= 0
    R662: - x[12] + z[12,1] <= 0
    R663: - z[12,1] <= 0
    R664: x[12] + y[1] - z[12,1] <= 1
    R665: - y[2] + z[12,2] <= 0
    R666: - x[12] + z[12,2] <= 0
    R667: - z[12,2] <= 0
    R668: x[12] + y[2] - z[12,2] <= 1
    R669: - y[3] + z[12,3] <= 0
    R670: - x[12] + z[12,3] <= 0
    R671: - z[12,3] <= 0
    R672: x[12] + y[3] - z[12,3] <= 1
    R673: - y[4] + z[12,4] <= 0
    R674: - x[12] + z[12,4] <= 0
    R675: - z[12,4] <= 0
    R676: x[12] + y[4] - z[12,4] <= 1
    R677: - y[5] + z[12,5] <= 0
    R678: - x[12] + z[12,5] <= 0
    R679: - z[12,5] <= 0
    R680: x[12] + y[5] - z[12,5] <= 1
    R681: - y[6] + z[12,6] <= 0
    R682: - x[12] + z[12,6] <= 0
    R683: - z[12,6] <= 0
    R684: x[12] + y[6] - z[12,6] <= 1
    R685: - y[7] + z[12,7] <= 0
    R686: - x[12] + z[12,7] <= 0
    R687: - z[12,7] <= 0
    R688: x[12] + y[7] - z[12,7] <= 1
    R689: - y[8] + z[12,8] <= 0
    R690: - x[12] + z[12,8] <= 0
    R691: - z[12,8] <= 0
    R692: x[12] + y[8] - z[12,8] <= 1
    R693: - y[9] + z[12,9] <= 0
    R694: - x[12] + z[12,9] <= 0
    R695: - z[12,9] <= 0
    R696: x[12] + y[9] - z[12,9] <= 1
    R697: - y[10] + z[12,10] <= 0
    R698: - x[12] + z[12,10] <= 0
    R699: - z[12,10] <= 0
    R700: x[12] + y[10] - z[12,10] <= 1
    R701: - y[11] + z[12,11] <= 0
    R702: - x[12] + z[12,11] <= 0
    R703: - z[12,11] <= 0
    R704: x[12] + y[11] - z[12,11] <= 1
    R705: - y[12] + z[12,12] <= 0
    R706: - x[12] + z[12,12] <= 0
    R707: - z[12,12] <= 0
    R708: x[12] + y[12] - z[12,12] <= 1
    R709: - y[13] + z[12,13] <= 0
    R710: - x[12] + z[12,13] <= 0
    R711: - z[12,13] <= 0
    R712: x[12] + y[13] - z[12,13] <= 1
    R713: - y[14] + z[12,14] <= 0
    R714: - x[12] + z[12,14] <= 0
    R715: - z[12,14] <= 0
    R716: x[12] + y[14] - z[12,14] <= 1
    R717: - y[15] + z[12,15] <= 0
    R718: - x[12] + z[12,15] <= 0
    R719: - z[12,15] <= 0
    R720: x[12] + y[15] - z[12,15] <= 1
    R721: - y[1] + z[13,1] <= 0
    R722: - x[13] + z[13,1] <= 0
    R723: - z[13,1] <= 0
    R724: x[13] + y[1] - z[13,1] <= 1
    R725: - y[2] + z[13,2] <= 0
    R726: - x[13] + z[13,2] <= 0
    R727: - z[13,2] <= 0
    R728: x[13] + y[2] - z[13,2] <= 1
    R729: - y[3] + z[13,3] <= 0
    R730: - x[13] + z[13,3] <= 0
    R731: - z[13,3] <= 0
    R732: x[13] + y[3] - z[13,3] <= 1
    R733: - y[4] + z[13,4] <= 0
    R734: - x[13] + z[13,4] <= 0
    R735: - z[13,4] <= 0
    R736: x[13] + y[4] - z[13,4] <= 1
    R737: - y[5] + z[13,5] <= 0
    R738: - x[13] + z[13,5] <= 0
    R739: - z[13,5] <= 0
    R740: x[13] + y[5] - z[13,5] <= 1
    R741: - y[6] + z[13,6] <= 0
    R742: - x[13] + z[13,6] <= 0
    R743: - z[13,6] <= 0
    R744: x[13] + y[6] - z[13,6] <= 1
    R745: - y[7] + z[13,7] <= 0
    R746: - x[13] + z[13,7] <= 0
    R747: - z[13,7] <= 0
    R748: x[13] + y[7] - z[13,7] <= 1
    R749: - y[8] + z[13,8] <= 0
    R750: - x[13] + z[13,8] <= 0
    R751: - z[13,8] <= 0
    R752: x[13] + y[8] - z[13,8] <= 1
    R753: - y[9] + z[13,9] <= 0
    R754: - x[13] + z[13,9] <= 0
    R755: - z[13,9] <= 0
    R756: x[13] + y[9] - z[13,9] <= 1
    R757: - y[10] + z[13,10] <= 0
    R758: - x[13] + z[13,10] <= 0
    R759: - z[13,10] <= 0
    R760: x[13] + y[10] - z[13,10] <= 1
    R761: - y[11] + z[13,11] <= 0
    R762: - x[13] + z[13,11] <= 0
    R763: - z[13,11] <= 0
    R764: x[13] + y[11] - z[13,11] <= 1
    R765: - y[12] + z[13,12] <= 0
    R766: - x[13] + z[13,12] <= 0
    R767: - z[13,12] <= 0
    R768: x[13] + y[12] - z[13,12] <= 1
    R769: - y[13] + z[13,13] <= 0
    R770: - x[13] + z[13,13] <= 0
    R771: - z[13,13] <= 0
    R772: x[13] + y[13] - z[13,13] <= 1
    R773: - y[14] + z[13,14] <= 0
    R774: - x[13] + z[13,14] <= 0
    R775: - z[13,14] <= 0
    R776: x[13] + y[14] - z[13,14] <= 1
    R777: - y[15] + z[13,15] <= 0
    R778: - x[13] + z[13,15] <= 0
    R779: - z[13,15] <= 0
    R780: x[13] + y[15] - z[13,15] <= 1
    R781: - y[1] + z[14,1] <= 0
    R782: - x[14] + z[14,1] <= 0
    R783: - z[14,1] <= 0
    R784: x[14] + y[1] - z[14,1] <= 1
    R785: - y[2] + z[14,2] <= 0
    R786: - x[14] + z[14,2] <= 0
    R787: - z[14,2] <= 0
    R788: x[14] + y[2] - z[14,2] <= 1
    R789: - y[3] + z[14,3] <= 0
    R790: - x[14] + z[14,3] <= 0
    R791: - z[14,3] <= 0
    R792: x[14] + y[3] - z[14,3] <= 1
    R793: - y[4] + z[14,4] <= 0
    R794: - x[14] + z[14,4] <= 0
    R795: - z[14,4] <= 0
    R796: x[14] + y[4] - z[14,4] <= 1
    R797: - y[5] + z[14,5] <= 0
    R798: - x[14] + z[14,5] <= 0
    R799: - z[14,5] <= 0
    R800: x[14] + y[5] - z[14,5] <= 1
    R801: - y[6] + z[14,6] <= 0
    R802: - x[14] + z[14,6] <= 0
    R803: - z[14,6] <= 0
    R804: x[14] + y[6] - z[14,6] <= 1
    R805: - y[7] + z[14,7] <= 0
    R806: - x[14] + z[14,7] <= 0
    R807: - z[14,7] <= 0
    R808: x[14] + y[7] - z[14,7] <= 1
    R809: - y[8] + z[14,8] <= 0
    R810: - x[14] + z[14,8] <= 0
    R811: - z[14,8] <= 0
    R812: x[14] + y[8] - z[14,8] <= 1
    R813: - y[9] + z[14,9] <= 0
    R814: - x[14] + z[14,9] <= 0
    R815: - z[14,9] <= 0
    R816: x[14] + y[9] - z[14,9] <= 1
    R817: - y[10] + z[14,10] <= 0
    R818: - x[14] + z[14,10] <= 0
    R819: - z[14,10] <= 0
    R820: x[14] + y[10] - z[14,10] <= 1
    R821: - y[11] + z[14,11] <= 0
    R822: - x[14] + z[14,11] <= 0
    R823: - z[14,11] <= 0
    R824: x[14] + y[11] - z[14,11] <= 1
    R825: - y[12] + z[14,12] <= 0
    R826: - x[14] + z[14,12] <= 0
    R827: - z[14,12] <= 0
    R828: x[14] + y[12] - z[14,12] <= 1
    R829: - y[13] + z[14,13] <= 0
    R830: - x[14] + z[14,13] <= 0
    R831: - z[14,13] <= 0
    R832: x[14] + y[13] - z[14,13] <= 1
    R833: - y[14] + z[14,14] <= 0
    R834: - x[14] + z[14,14] <= 0
    R835: - z[14,14] <= 0
    R836: x[14] + y[14] - z[14,14] <= 1
    R837: - y[15] + z[14,15] <= 0
    R838: - x[14] + z[14,15] <= 0
    R839: - z[14,15] <= 0
    R840: x[14] + y[15] - z[14,15] <= 1
    R841: - y[1] + z[15,1] <= 0
    R842: - x[15] + z[15,1] <= 0
    R843: - z[15,1] <= 0
    R844: x[15] + y[1] - z[15,1] <= 1
    R845: - y[2] + z[15,2] <= 0
    R846: - x[15] + z[15,2] <= 0
    R847: - z[15,2] <= 0
    R848: x[15] + y[2] - z[15,2] <= 1
    R849: - y[3] + z[15,3] <= 0
    R850: - x[15] + z[15,3] <= 0
    R851: - z[15,3] <= 0
    R852: x[15] + y[3] - z[15,3] <= 1
    R853: - y[4] + z[15,4] <= 0
    R854: - x[15] + z[15,4] <= 0
    R855: - z[15,4] <= 0
    R856: x[15] + y[4] - z[15,4] <= 1
    R857: - y[5] + z[15,5] <= 0
    R858: - x[15] + z[15,5] <= 0
    R859: - z[15,5] <= 0
    R860: x[15] + y[5] - z[15,5] <= 1
    R861: - y[6] + z[15,6] <= 0
    R862: - x[15] + z[15,6] <= 0
    R863: - z[15,6] <= 0
    R864: x[15] + y[6] - z[15,6] <= 1
    R865: - y[7] + z[15,7] <= 0
    R866: - x[15] + z[15,7] <= 0
    R867: - z[15,7] <= 0
    R868: x[15] + y[7] - z[15,7] <= 1
    R869: - y[8] + z[15,8] <= 0
    R870: - x[15] + z[15,8] <= 0
    R871: - z[15,8] <= 0
    R872: x[15] + y[8] - z[15,8] <= 1
    R873: - y[9] + z[15,9] <= 0
    R874: - x[15] + z[15,9] <= 0
    R875: - z[15,9] <= 0
    R876: x[15] + y[9] - z[15,9] <= 1
    R877: - y[10] + z[15,10] <= 0
    R878: - x[15] + z[15,10] <= 0
    R879: - z[15,10] <= 0
    R880: x[15] + y[10] - z[15,10] <= 1
    R881: - y[11] + z[15,11] <= 0
    R882: - x[15] + z[15,11] <= 0
    R883: - z[15,11] <= 0
    R884: x[15] + y[11] - z[15,11] <= 1
    R885: - y[12] + z[15,12] <= 0
    R886: - x[15] + z[15,12] <= 0
    R887: - z[15,12] <= 0
    R888: x[15] + y[12] - z[15,12] <= 1
    R889: - y[13] + z[15,13] <= 0
    R890: - x[15] + z[15,13] <= 0
    R891: - z[15,13] <= 0
    R892: x[15] + y[13] - z[15,13] <= 1
    R893: - y[14] + z[15,14] <= 0
    R894: - x[15] + z[15,14] <= 0
    R895: - z[15,14] <= 0
    R896: x[15] + y[14] - z[15,14] <= 1
    R897: - y[15] + z[15,15] <= 0
    R898: - x[15] + z[15,15] <= 0
    R899: - z[15,15] <= 0
    R900: x[15] + y[15] - z[15,15] <= 1
    qc0: - z[1,1] + [ x[1] * y[1] ] = 0
    qc1: - z[1,2] + [ x[1] * y[2] ] = 0
    qc2: - z[1,3] + [ x[1] * y[3] ] = 0
    qc3: - z[1,4] + [ x[1] * y[4] ] = 0
    qc4: - z[1,5] + [ x[1] * y[5] ] = 0
    qc5: - z[1,6] + [ x[1] * y[6] ] = 0
    qc6: - z[1,7] + [ x[1] * y[7] ] = 0
    qc7: - z[1,8] + [ x[1] * y[8] ] = 0
    qc8: - z[1,9] + [ x[1] * y[9] ] = 0
    qc9: - z[1,10] + [ x[1] * y[10] ] = 0
    qc10: - z[1,11] + [ x[1] * y[11] ] = 0
    qc11: - z[1,12] + [ x[1] * y[12] ] = 0
    qc12: - z[1,13] + [ x[1] * y[13] ] = 0
    qc13: - z[1,14] + [ x[1] * y[14] ] = 0
    qc14: - z[1,15] + [ x[1] * y[15] ] = 0
    qc15: - z[2,1] + [ x[2] * y[1] ] = 0
    qc16: - z[2,2] + [ x[2] * y[2] ] = 0
    qc17: - z[2,3] + [ x[2] * y[3] ] = 0
    qc18: - z[2,4] + [ x[2] * y[4] ] = 0
    qc19: - z[2,5] + [ x[2] * y[5] ] = 0
    qc20: - z[2,6] + [ x[2] * y[6] ] = 0
    qc21: - z[2,7] + [ x[2] * y[7] ] = 0
    qc22: - z[2,8] + [ x[2] * y[8] ] = 0
    qc23: - z[2,9] + [ x[2] * y[9] ] = 0
    qc24: - z[2,10] + [ x[2] * y[10] ] = 0
    qc25: - z[2,11] + [ x[2] * y[11] ] = 0
    qc26: - z[2,12] + [ x[2] * y[12] ] = 0
    qc27: - z[2,13] + [ x[2] * y[13] ] = 0
    qc28: - z[2,14] + [ x[2] * y[14] ] = 0
    qc29: - z[2,15] + [ x[2] * y[15] ] = 0
    qc30: - z[3,1] + [ x[3] * y[1] ] = 0
    qc31: - z[3,2] + [ x[3] * y[2] ] = 0
    qc32: - z[3,3] + [ x[3] * y[3] ] = 0
    qc33: - z[3,4] + [ x[3] * y[4] ] = 0
    qc34: - z[3,5] + [ x[3] * y[5] ] = 0
    qc35: - z[3,6] + [ x[3] * y[6] ] = 0
    qc36: - z[3,7] + [ x[3] * y[7] ] = 0
    qc37: - z[3,8] + [ x[3] * y[8] ] = 0
    qc38: - z[3,9] + [ x[3] * y[9] ] = 0
    qc39: - z[3,10] + [ x[3] * y[10] ] = 0
    qc40: - z[3,11] + [ x[3] * y[11] ] = 0
    qc41: - z[3,12] + [ x[3] * y[12] ] = 0
    qc42: - z[3,13] + [ x[3] * y[13] ] = 0
    qc43: - z[3,14] + [ x[3] * y[14] ] = 0
    qc44: - z[3,15] + [ x[3] * y[15] ] = 0
    qc45: - z[4,1] + [ x[4] * y[1] ] = 0
    qc46: - z[4,2] + [ x[4] * y[2] ] = 0
    qc47: - z[4,3] + [ x[4] * y[3] ] = 0
    qc48: - z[4,4] + [ x[4] * y[4] ] = 0
    qc49: - z[4,5] + [ x[4] * y[5] ] = 0
    qc50: - z[4,6] + [ x[4] * y[6] ] = 0
    qc51: - z[4,7] + [ x[4] * y[7] ] = 0
    qc52: - z[4,8] + [ x[4] * y[8] ] = 0
    qc53: - z[4,9] + [ x[4] * y[9] ] = 0
    qc54: - z[4,10] + [ x[4] * y[10] ] = 0
    qc55: - z[4,11] + [ x[4] * y[11] ] = 0
    qc56: - z[4,12] + [ x[4] * y[12] ] = 0
    qc57: - z[4,13] + [ x[4] * y[13] ] = 0
    qc58: - z[4,14] + [ x[4] * y[14] ] = 0
    qc59: - z[4,15] + [ x[4] * y[15] ] = 0
    qc60: - z[5,1] + [ x[5] * y[1] ] = 0
    qc61: - z[5,2] + [ x[5] * y[2] ] = 0
    qc62: - z[5,3] + [ x[5] * y[3] ] = 0
    qc63: - z[5,4] + [ x[5] * y[4] ] = 0
    qc64: - z[5,5] + [ x[5] * y[5] ] = 0
    qc65: - z[5,6] + [ x[5] * y[6] ] = 0
    qc66: - z[5,7] + [ x[5] * y[7] ] = 0
    qc67: - z[5,8] + [ x[5] * y[8] ] = 0
    qc68: - z[5,9] + [ x[5] * y[9] ] = 0
    qc69: - z[5,10] + [ x[5] * y[10] ] = 0
    qc70: - z[5,11] + [ x[5] * y[11] ] = 0
    qc71: - z[5,12] + [ x[5] * y[12] ] = 0
    qc72: - z[5,13] + [ x[5] * y[13] ] = 0
    qc73: - z[5,14] + [ x[5] * y[14] ] = 0
    qc74: - z[5,15] + [ x[5] * y[15] ] = 0
    qc75: - z[6,1] + [ x[6] * y[1] ] = 0
    qc76: - z[6,2] + [ x[6] * y[2] ] = 0
    qc77: - z[6,3] + [ x[6] * y[3] ] = 0
    qc78: - z[6,4] + [ x[6] * y[4] ] = 0
    qc79: - z[6,5] + [ x[6] * y[5] ] = 0
    qc80: - z[6,6] + [ x[6] * y[6] ] = 0
    qc81: - z[6,7] + [ x[6] * y[7] ] = 0
    qc82: - z[6,8] + [ x[6] * y[8] ] = 0
    qc83: - z[6,9] + [ x[6] * y[9] ] = 0
    qc84: - z[6,10] + [ x[6] * y[10] ] = 0
    qc85: - z[6,11] + [ x[6] * y[11] ] = 0
    qc86: - z[6,12] + [ x[6] * y[12] ] = 0
    qc87: - z[6,13] + [ x[6] * y[13] ] = 0
    qc88: - z[6,14] + [ x[6] * y[14] ] = 0
    qc89: - z[6,15] + [ x[6] * y[15] ] = 0
    qc90: - z[7,1] + [ x[7] * y[1] ] = 0
    qc91: - z[7,2] + [ x[7] * y[2] ] = 0
    qc92: - z[7,3] + [ x[7] * y[3] ] = 0
    qc93: - z[7,4] + [ x[7] * y[4] ] = 0
    qc94: - z[7,5] + [ x[7] * y[5] ] = 0
    qc95: - z[7,6] + [ x[7] * y[6] ] = 0
    qc96: - z[7,7] + [ x[7] * y[7] ] = 0
    qc97: - z[7,8] + [ x[7] * y[8] ] = 0
    qc98: - z[7,9] + [ x[7] * y[9] ] = 0
    qc99: - z[7,10] + [ x[7] * y[10] ] = 0
    qc100: - z[7,11] + [ x[7] * y[11] ] = 0
    qc101: - z[7,12] + [ x[7] * y[12] ] = 0
    qc102: - z[7,13] + [ x[7] * y[13] ] = 0
    qc103: - z[7,14] + [ x[7] * y[14] ] = 0
    qc104: - z[7,15] + [ x[7] * y[15] ] = 0
    qc105: - z[8,1] + [ x[8] * y[1] ] = 0
    qc106: - z[8,2] + [ x[8] * y[2] ] = 0
    qc107: - z[8,3] + [ x[8] * y[3] ] = 0
    qc108: - z[8,4] + [ x[8] * y[4] ] = 0
    qc109: - z[8,5] + [ x[8] * y[5] ] = 0
    qc110: - z[8,6] + [ x[8] * y[6] ] = 0
    qc111: - z[8,7] + [ x[8] * y[7] ] = 0
    qc112: - z[8,8] + [ x[8] * y[8] ] = 0
    qc113: - z[8,9] + [ x[8] * y[9] ] = 0
    qc114: - z[8,10] + [ x[8] * y[10] ] = 0
    qc115: - z[8,11] + [ x[8] * y[11] ] = 0
    qc116: - z[8,12] + [ x[8] * y[12] ] = 0
    qc117: - z[8,13] + [ x[8] * y[13] ] = 0
    qc118: - z[8,14] + [ x[8] * y[14] ] = 0
    qc119: - z[8,15] + [ x[8] * y[15] ] = 0
    qc120: - z[9,1] + [ x[9] * y[1] ] = 0
    qc121: - z[9,2] + [ x[9] * y[2] ] = 0
    qc122: - z[9,3] + [ x[9] * y[3] ] = 0
    qc123: - z[9,4] + [ x[9] * y[4] ] = 0
    qc124: - z[9,5] + [ x[9] * y[5] ] = 0
    qc125: - z[9,6] + [ x[9] * y[6] ] = 0
    qc126: - z[9,7] + [ x[9] * y[7] ] = 0
    qc127: - z[9,8] + [ x[9] * y[8] ] = 0
    qc128: - z[9,9] + [ x[9] * y[9] ] = 0
    qc129: - z[9,10] + [ x[9] * y[10] ] = 0
    qc130: - z[9,11] + [ x[9] * y[11] ] = 0
    qc131: - z[9,12] + [ x[9] * y[12] ] = 0
    qc132: - z[9,13] + [ x[9] * y[13] ] = 0
    qc133: - z[9,14] + [ x[9] * y[14] ] = 0
    qc134: - z[9,15] + [ x[9] * y[15] ] = 0
    qc135: - z[10,1] + [ x[10] * y[1] ] = 0
    qc136: - z[10,2] + [ x[10] * y[2] ] = 0
    qc137: - z[10,3] + [ x[10] * y[3] ] = 0
    qc138: - z[10,4] + [ x[10] * y[4] ] = 0
    qc139: - z[10,5] + [ x[10] * y[5] ] = 0
    qc140: - z[10,6] + [ x[10] * y[6] ] = 0
    qc141: - z[10,7] + [ x[10] * y[7] ] = 0
    qc142: - z[10,8] + [ x[10] * y[8] ] = 0
    qc143: - z[10,9] + [ x[10] * y[9] ] = 0
    qc144: - z[10,10] + [ x[10] * y[10] ] = 0
    qc145: - z[10,11] + [ x[10] * y[11] ] = 0
    qc146: - z[10,12] + [ x[10] * y[12] ] = 0
    qc147: - z[10,13] + [ x[10] * y[13] ] = 0
    qc148: - z[10,14] + [ x[10] * y[14] ] = 0
    qc149: - z[10,15] + [ x[10] * y[15] ] = 0
    qc150: - z[11,1] + [ x[11] * y[1] ] = 0
    qc151: - z[11,2] + [ x[11] * y[2] ] = 0
    qc152: - z[11,3] + [ x[11] * y[3] ] = 0
    qc153: - z[11,4] + [ x[11] * y[4] ] = 0
    qc154: - z[11,5] + [ x[11] * y[5] ] = 0
    qc155: - z[11,6] + [ x[11] * y[6] ] = 0
    qc156: - z[11,7] + [ x[11] * y[7] ] = 0
    qc157: - z[11,8] + [ x[11] * y[8] ] = 0
    qc158: - z[11,9] + [ x[11] * y[9] ] = 0
    qc159: - z[11,10] + [ x[11] * y[10] ] = 0
    qc160: - z[11,11] + [ x[11] * y[11] ] = 0
    qc161: - z[11,12] + [ x[11] * y[12] ] = 0
    qc162: - z[11,13] + [ x[11] * y[13] ] = 0
    qc163: - z[11,14] + [ x[11] * y[14] ] = 0
    qc164: - z[11,15] + [ x[11] * y[15] ] = 0
    qc165: - z[12,1] + [ x[12] * y[1] ] = 0
    qc166: - z[12,2] + [ x[12] * y[2] ] = 0
    qc167: - z[12,3] + [ x[12] * y[3] ] = 0
    qc168: - z[12,4] + [ x[12] * y[4] ] = 0
    qc169: - z[12,5] + [ x[12] * y[5] ] = 0
    qc170: - z[12,6] + [ x[12] * y[6] ] = 0
    qc171: - z[12,7] + [ x[12] * y[7] ] = 0
    qc172: - z[12,8] + [ x[12] * y[8] ] = 0
    qc173: - z[12,9] + [ x[12] * y[9] ] = 0
    qc174: - z[12,10] + [ x[12] * y[10] ] = 0
    qc175: - z[12,11] + [ x[12] * y[11] ] = 0
    qc176: - z[12,12] + [ x[12] * y[12] ] = 0
    qc177: - z[12,13] + [ x[12] * y[13] ] = 0
    qc178: - z[12,14] + [ x[12] * y[14] ] = 0
    qc179: - z[12,15] + [ x[12] * y[15] ] = 0
    qc180: - z[13,1] + [ x[13] * y[1] ] = 0
    qc181: - z[13,2] + [ x[13] * y[2] ] = 0
    qc182: - z[13,3] + [ x[13] * y[3] ] = 0
    qc183: - z[13,4] + [ x[13] * y[4] ] = 0
    qc184: - z[13,5] + [ x[13] * y[5] ] = 0
    qc185: - z[13,6] + [ x[13] * y[6] ] = 0
    qc186: - z[13,7] + [ x[13] * y[7] ] = 0
    qc187: - z[13,8] + [ x[13] * y[8] ] = 0
    qc188: - z[13,9] + [ x[13] * y[9] ] = 0
    qc189: - z[13,10] + [ x[13] * y[10] ] = 0
    qc190: - z[13,11] + [ x[13] * y[11] ] = 0
    qc191: - z[13,12] + [ x[13] * y[12] ] = 0
    qc192: - z[13,13] + [ x[13] * y[13] ] = 0
    qc193: - z[13,14] + [ x[13] * y[14] ] = 0
    qc194: - z[13,15] + [ x[13] * y[15] ] = 0
    qc195: - z[14,1] + [ x[14] * y[1] ] = 0
    qc196: - z[14,2] + [ x[14] * y[2] ] = 0
    qc197: - z[14,3] + [ x[14] * y[3] ] = 0
    qc198: - z[14,4] + [ x[14] * y[4] ] = 0
    qc199: - z[14,5] + [ x[14] * y[5] ] = 0
    qc200: - z[14,6] + [ x[14] * y[6] ] = 0
    qc201: - z[14,7] + [ x[14] * y[7] ] = 0
    qc202: - z[14,8] + [ x[14] * y[8] ] = 0
    qc203: - z[14,9] + [ x[14] * y[9] ] = 0
    qc204: - z[14,10] + [ x[14] * y[10] ] = 0
    qc205: - z[14,11] + [ x[14] * y[11] ] = 0
    qc206: - z[14,12] + [ x[14] * y[12] ] = 0
    qc207: - z[14,13] + [ x[14] * y[13] ] = 0
    qc208: - z[14,14] + [ x[14] * y[14] ] = 0
    qc209: - z[14,15] + [ x[14] * y[15] ] = 0
    qc210: - z[15,1] + [ x[15] * y[1] ] = 0
    qc211: - z[15,2] + [ x[15] * y[2] ] = 0
    qc212: - z[15,3] + [ x[15] * y[3] ] = 0
    qc213: - z[15,4] + [ x[15] * y[4] ] = 0
    qc214: - z[15,5] + [ x[15] * y[5] ] = 0
    qc215: - z[15,6] + [ x[15] * y[6] ] = 0
    qc216: - z[15,7] + [ x[15] * y[7] ] = 0
    qc217: - z[15,8] + [ x[15] * y[8] ] = 0
    qc218: - z[15,9] + [ x[15] * y[9] ] = 0
    qc219: - z[15,10] + [ x[15] * y[10] ] = 0
    qc220: - z[15,11] + [ x[15] * y[11] ] = 0
    qc221: - z[15,12] + [ x[15] * y[12] ] = 0
    qc222: - z[15,13] + [ x[15] * y[13] ] = 0
    qc223: - z[15,14] + [ x[15] * y[14] ] = 0
    qc224: - z[15,15] + [ x[15] * y[15] ] = 0
    Bounds
    x[1] <= 1
    x[2] <= 1
    x[3] <= 1
    x[4] <= 1
    x[5] <= 1
    x[6] <= 1
    x[7] <= 1
    x[8] <= 1
    x[9] <= 1
    x[10] <= 1
    x[11] <= 1
    x[12] <= 1
    x[13] <= 1
    x[14] <= 1
    x[15] <= 1
    y[1] <= 1
    y[2] <= 1
    y[3] <= 1
    y[4] <= 1
    y[5] <= 1
    y[6] <= 1
    y[7] <= 1
    y[8] <= 1
    y[9] <= 1
    y[10] <= 1
    y[11] <= 1
    y[12] <= 1
    y[13] <= 1
    y[14] <= 1
    y[15] <= 1
    z[1,1] <= 1
    z[1,2] <= 1
    z[1,3] <= 1
    z[1,4] <= 1
    z[1,5] <= 1
    z[1,6] <= 1
    z[1,7] <= 1
    z[1,8] <= 1
    z[1,9] <= 1
    z[1,10] <= 1
    z[1,11] <= 1
    z[1,12] <= 1
    z[1,13] <= 1
    z[1,14] <= 1
    z[1,15] <= 1
    z[2,1] <= 1
    z[2,2] <= 1
    z[2,3] <= 1
    z[2,4] <= 1
    z[2,5] <= 1
    z[2,6] <= 1
    z[2,7] <= 1
    z[2,8] <= 1
    z[2,9] <= 1
    z[2,10] <= 1
    z[2,11] <= 1
    z[2,12] <= 1
    z[2,13] <= 1
    z[2,14] <= 1
    z[2,15] <= 1
    z[3,1] <= 1
    z[3,2] <= 1
    z[3,3] <= 1
    z[3,4] <= 1
    z[3,5] <= 1
    z[3,6] <= 1
    z[3,7] <= 1
    z[3,8] <= 1
    z[3,9] <= 1
    z[3,10] <= 1
    z[3,11] <= 1
    z[3,12] <= 1
    z[3,13] <= 1
    z[3,14] <= 1
    z[3,15] <= 1
    z[4,1] <= 1
    z[4,2] <= 1
    z[4,3] <= 1
    z[4,4] <= 1
    z[4,5] <= 1
    z[4,6] <= 1
    z[4,7] <= 1
    z[4,8] <= 1
    z[4,9] <= 1
    z[4,10] <= 1
    z[4,11] <= 1
    z[4,12] <= 1
    z[4,13] <= 1
    z[4,14] <= 1
    z[4,15] <= 1
    z[5,1] <= 1
    z[5,2] <= 1
    z[5,3] <= 1
    z[5,4] <= 1
    z[5,5] <= 1
    z[5,6] <= 1
    z[5,7] <= 1
    z[5,8] <= 1
    z[5,9] <= 1
    z[5,10] <= 1
    z[5,11] <= 1
    z[5,12] <= 1
    z[5,13] <= 1
    z[5,14] <= 1
    z[5,15] <= 1
    z[6,1] <= 1
    z[6,2] <= 1
    z[6,3] <= 1
    z[6,4] <= 1
    z[6,5] <= 1
    z[6,6] <= 1
    z[6,7] <= 1
    z[6,8] <= 1
    z[6,9] <= 1
    z[6,10] <= 1
    z[6,11] <= 1
    z[6,12] <= 1
    z[6,13] <= 1
    z[6,14] <= 1
    z[6,15] <= 1
    z[7,1] <= 1
    z[7,2] <= 1
    z[7,3] <= 1
    z[7,4] <= 1
    z[7,5] <= 1
    z[7,6] <= 1
    z[7,7] <= 1
    z[7,8] <= 1
    z[7,9] <= 1
    z[7,10] <= 1
    z[7,11] <= 1
    z[7,12] <= 1
    z[7,13] <= 1
    z[7,14] <= 1
    z[7,15] <= 1
    z[8,1] <= 1
    z[8,2] <= 1
    z[8,3] <= 1
    z[8,4] <= 1
    z[8,5] <= 1
    z[8,6] <= 1
    z[8,7] <= 1
    z[8,8] <= 1
    z[8,9] <= 1
    z[8,10] <= 1
    z[8,11] <= 1
    z[8,12] <= 1
    z[8,13] <= 1
    z[8,14] <= 1
    z[8,15] <= 1
    z[9,1] <= 1
    z[9,2] <= 1
    z[9,3] <= 1
    z[9,4] <= 1
    z[9,5] <= 1
    z[9,6] <= 1
    z[9,7] <= 1
    z[9,8] <= 1
    z[9,9] <= 1
    z[9,10] <= 1
    z[9,11] <= 1
    z[9,12] <= 1
    z[9,13] <= 1
    z[9,14] <= 1
    z[9,15] <= 1
    z[10,1] <= 1
    z[10,2] <= 1
    z[10,3] <= 1
    z[10,4] <= 1
    z[10,5] <= 1
    z[10,6] <= 1
    z[10,7] <= 1
    z[10,8] <= 1
    z[10,9] <= 1
    z[10,10] <= 1
    z[10,11] <= 1
    z[10,12] <= 1
    z[10,13] <= 1
    z[10,14] <= 1
    z[10,15] <= 1
    z[11,1] <= 1
    z[11,2] <= 1
    z[11,3] <= 1
    z[11,4] <= 1
    z[11,5] <= 1
    z[11,6] <= 1
    z[11,7] <= 1
    z[11,8] <= 1
    z[11,9] <= 1
    z[11,10] <= 1
    z[11,11] <= 1
    z[11,12] <= 1
    z[11,13] <= 1
    z[11,14] <= 1
    z[11,15] <= 1
    z[12,1] <= 1
    z[12,2] <= 1
    z[12,3] <= 1
    z[12,4] <= 1
    z[12,5] <= 1
    z[12,6] <= 1
    z[12,7] <= 1
    z[12,8] <= 1
    z[12,9] <= 1
    z[12,10] <= 1
    z[12,11] <= 1
    z[12,12] <= 1
    z[12,13] <= 1
    z[12,14] <= 1
    z[12,15] <= 1
    z[13,1] <= 1
    z[13,2] <= 1
    z[13,3] <= 1
    z[13,4] <= 1
    z[13,5] <= 1
    z[13,6] <= 1
    z[13,7] <= 1
    z[13,8] <= 1
    z[13,9] <= 1
    z[13,10] <= 1
    z[13,11] <= 1
    z[13,12] <= 1
    z[13,13] <= 1
    z[13,14] <= 1
    z[13,15] <= 1
    z[14,1] <= 1
    z[14,2] <= 1
    z[14,3] <= 1
    z[14,4] <= 1
    z[14,5] <= 1
    z[14,6] <= 1
    z[14,7] <= 1
    z[14,8] <= 1
    z[14,9] <= 1
    z[14,10] <= 1
    z[14,11] <= 1
    z[14,12] <= 1
    z[14,13] <= 1
    z[14,14] <= 1
    z[14,15] <= 1
    z[15,1] <= 1
    z[15,2] <= 1
    z[15,3] <= 1
    z[15,4] <= 1
    z[15,5] <= 1
    z[15,6] <= 1
    z[15,7] <= 1
    z[15,8] <= 1
    z[15,9] <= 1
    z[15,10] <= 1
    z[15,11] <= 1
    z[15,12] <= 1
    z[15,13] <= 1
    z[15,14] <= 1
    z[15,15] <= 1
    End

    And here is my manual McCormick relaxation:

    Maximize
    1.29 x[1] + 3.91 x[2] - 1.24 x[3] - 0.68 x[4] - 2.74 x[5] - 2.09 x[6]
    + 4.72 x[7] - 1.2 x[8] + 4.61 x[9] + 4.14 x[10] + 0.96 x[11] - 2.4 x[12]
    + 4.81 x[13] - 0.04 x[14] - 0.85 x[15] + 1.29 y[1] + 3.91 y[2]
    - 1.24 y[3] - 0.68 y[4] - 2.74 y[5] - 2.09 y[6] + 4.72 y[7] - 1.2 y[8]
    + 4.61 y[9] + 4.14 y[10] + 0.96 y[11] - 2.4 y[12] + 4.81 y[13]
    - 0.04 y[14] - 0.85 y[15] + 4.01 z[1,1] - 3.87 z[1,2] - 0.31 z[1,3]
    - 2.53 z[1,4] + 0.44 z[1,5] + 0.74 z[1,6] - 4.87 z[1,7] - 2.83 z[1,8]
    - 2.21 z[1,9] + 4.16 z[1,10] + 2.66 z[1,11] - 3.4 z[1,12] + 2.97 z[1,13]
    - 3.61 z[1,14] + 1.17 z[1,15] - 3.73 z[2,1] - 4.98 z[2,2] + 3.71 z[2,3]
    - 2.91 z[2,4] - 2.85 z[2,5] + 4.82 z[2,6] + 3.72 z[2,7] - 2.11 z[2,8]
    + 4.61 z[2,9] + 0.39 z[2,10] + 1.78 z[2,11] - 2.95 z[2,12]
    + 4.41 z[2,13] + 1.91 z[2,14] + 4.67 z[2,15] + 3.94 z[3,1] - 2.01 z[3,2]
    - 1.39 z[3,3] - 3.34 z[3,4] - 3.54 z[3,5] - 4.35 z[3,6] - 1.99 z[3,7]
    + 1.03 z[3,8] - 4.97 z[3,9] + 1.78 z[3,10] - 1.62 z[3,11] - 1.9 z[3,12]
    + 3.19 z[3,13] - 0.19 z[3,14] - 1.84 z[3,15] - 0.19 z[4,1] + 2.05 z[4,2]
    - 4.43 z[4,3] + 4.75 z[4,4] - 4.77 z[4,5] + 2.5 z[4,6] + 3.45 z[4,7]
    - 4.82 z[4,8] + 2.88 z[4,9] - 1.34 z[4,10] + 0.79 z[4,11] - 4.91 z[4,12]
    - 4.53 z[4,13] - 3.19 z[4,14] + 4.55 z[4,15] - 3.03 z[5,1] + 2.56 z[5,2]
    + 4.3 z[5,3] + 4.42 z[5,4] - 1.56 z[5,5] - 1.45 z[5,6] + 0.25 z[5,7]
    + 2.76 z[5,8] - 3.92 z[5,9] + 2.48 z[5,10] + 2.97 z[5,11] + 3.6 z[5,12]
    - 4.63 z[5,13] + 4.46 z[5,14] - 4.09 z[5,15] - 1.59 z[6,1] + 1.11 z[6,2]
    + 4.18 z[6,3] - 1.6 z[6,4] + 4.24 z[6,5] + 0.45 z[6,6] - 1.88 z[6,7]
    - 1.83 z[6,8] - 3.23 z[6,9] - 4.22 z[6,10] - 3.51 z[6,11] + 1.89 z[6,12]
    + 4.97 z[6,13] - 3.38 z[6,14] - 4.51 z[6,15] + 4.87 z[7,1] + 0.34 z[7,2]
    - 0.94 z[7,3] - 2.63 z[7,4] + 0.94 z[7,5] + 3.26 z[7,6] - 0.44 z[7,7]
    - 0.78 z[7,8] - 4.44 z[7,9] + 4.16 z[7,10] - 4.67 z[7,11] - 0.06 z[7,12]
    + 3.38 z[7,13] - 3.69 z[7,14] + 2.32 z[7,15] + 4.5 z[8,1] + 1.3 z[8,2]
    + 2.88 z[8,3] - 3.93 z[8,4] - 0.65 z[8,5] - 3.51 z[8,6] + 3.45 z[8,7]
    - 2.05 z[8,8] - 0.47 z[8,9] + 4.99 z[8,10] + 3.52 z[8,11] + 4.76 z[8,12]
    - 0.46 z[8,13] - 0.12 z[8,14] + 2.3 z[8,15] - 0.21 z[9,1] - 2.09 z[9,2]
    - 0.96 z[9,3] - 3.53 z[9,4] - 1.23 z[9,5] + 4.88 z[9,6] + 4.6 z[9,7]
    + 1.27 z[9,8] - 0.01 z[9,9] - 1.62 z[9,10] - 4.11 z[9,11] - 2.28 z[9,12]
    + 2.82 z[9,13] + 3.67 z[9,14] - 1.39 z[9,15] + 2.86 z[10,1]
    + 2.75 z[10,2] + 1.95 z[10,3] + 1.64 z[10,4] + 2.6 z[10,5]
    - 1.37 z[10,6] + 2.04 z[10,7] - 2.19 z[10,8] - 0.14 z[10,9]
    + 2.7 z[10,10] + 1.91 z[10,11] - 2.06 z[10,12] + 4.46 z[10,13]
    + 1.5 z[10,14] + 0.81 z[10,15] - 4.88 z[11,1] + 0.47 z[11,2]
    - 2.49 z[11,3] + 1.72 z[11,4] - 0.37 z[11,5] + 3.17 z[11,6]
    + 1.47 z[11,7] + 2.98 z[11,8] - 1.52 z[11,9] + 1.44 z[11,10]
    + 2.38 z[11,11] + 3.28 z[11,12] - 1.5 z[11,13] + 3.43 z[11,14]
    + 3.7 z[11,15] + 1.88 z[12,1] + 4.76 z[12,2] + 4.57 z[12,3]
    + 0.18 z[12,4] + 0.29 z[12,5] - 3.34 z[12,6] + 3.37 z[12,7]
    + 4.37 z[12,8] - 0.23 z[12,9] + 1.91 z[12,10] + 2.2 z[12,11]
    + 2.3 z[12,12] - 3.28 z[12,13] + 2.8 z[12,14] + 0.81 z[12,15]
    + 1.66 z[13,1] - 0.79 z[13,2] + 1.24 z[13,3] + 2.75 z[13,4]
    + 1.37 z[13,5] + 2.2 z[13,6] - 4.72 z[13,7] - 3.4 z[13,8] - 0.59 z[13,9]
    + 1.5 z[13,10] - 2.81 z[13,11] + 1.86 z[13,12] + 1.31 z[13,13]
    - 4.58 z[13,14] - 0.28 z[13,15] - 2.74 z[14,1] - 4.46 z[14,2]
    - 3.66 z[14,3] - 1.83 z[14,4] - 3.18 z[14,5] - 3.07 z[14,6]
    - 4.64 z[14,7] - 0.35 z[14,8] - 1.2 z[14,9] + 1.12 z[14,10]
    + 0.9 z[14,11] - 2.62 z[14,12] + 4.03 z[14,13] - 4.99 z[14,14]
    - 0.95 z[14,15] - 2.21 z[15,1] - 0.9 z[15,2] - 3.85 z[15,3]
    + 3.31 z[15,4] - 1.26 z[15,5] - 4.64 z[15,6] + 1.14 z[15,7]
    - 4.05 z[15,8] + 0.45 z[15,9] - 1.61 z[15,10] + 0.81 z[15,11]
    + 4.58 z[15,12] + 3.19 z[15,13] - 0.81 z[15,14] + 3.13 z[15,15]
    Subject To
    R0: x[1] + x[2] + x[3] <= 0.48
    R1: x[1] + y[1] - z[1,1] <= 1
    R2: x[1] + y[2] - z[1,2] <= 1
    R3: x[1] + y[3] - z[1,3] <= 1
    R4: x[1] + y[4] - z[1,4] <= 1
    R5: x[1] + y[5] - z[1,5] <= 1
    R6: x[1] + y[6] - z[1,6] <= 1
    R7: x[1] + y[7] - z[1,7] <= 1
    R8: x[1] + y[8] - z[1,8] <= 1
    R9: x[1] + y[9] - z[1,9] <= 1
    R10: x[1] + y[10] - z[1,10] <= 1
    R11: x[1] + y[11] - z[1,11] <= 1
    R12: x[1] + y[12] - z[1,12] <= 1
    R13: x[1] + y[13] - z[1,13] <= 1
    R14: x[1] + y[14] - z[1,14] <= 1
    R15: x[1] + y[15] - z[1,15] <= 1
    R16: x[2] + y[1] - z[2,1] <= 1
    R17: x[2] + y[2] - z[2,2] <= 1
    R18: x[2] + y[3] - z[2,3] <= 1
    R19: x[2] + y[4] - z[2,4] <= 1
    R20: x[2] + y[5] - z[2,5] <= 1
    R21: x[2] + y[6] - z[2,6] <= 1
    R22: x[2] + y[7] - z[2,7] <= 1
    R23: x[2] + y[8] - z[2,8] <= 1
    R24: x[2] + y[9] - z[2,9] <= 1
    R25: x[2] + y[10] - z[2,10] <= 1
    R26: x[2] + y[11] - z[2,11] <= 1
    R27: x[2] + y[12] - z[2,12] <= 1
    R28: x[2] + y[13] - z[2,13] <= 1
    R29: x[2] + y[14] - z[2,14] <= 1
    R30: x[2] + y[15] - z[2,15] <= 1
    R31: x[3] + y[1] - z[3,1] <= 1
    R32: x[3] + y[2] - z[3,2] <= 1
    R33: x[3] + y[3] - z[3,3] <= 1
    R34: x[3] + y[4] - z[3,4] <= 1
    R35: x[3] + y[5] - z[3,5] <= 1
    R36: x[3] + y[6] - z[3,6] <= 1
    R37: x[3] + y[7] - z[3,7] <= 1
    R38: x[3] + y[8] - z[3,8] <= 1
    R39: x[3] + y[9] - z[3,9] <= 1
    R40: x[3] + y[10] - z[3,10] <= 1
    R41: x[3] + y[11] - z[3,11] <= 1
    R42: x[3] + y[12] - z[3,12] <= 1
    R43: x[3] + y[13] - z[3,13] <= 1
    R44: x[3] + y[14] - z[3,14] <= 1
    R45: x[3] + y[15] - z[3,15] <= 1
    R46: x[4] + y[1] - z[4,1] <= 1
    R47: x[4] + y[2] - z[4,2] <= 1
    R48: x[4] + y[3] - z[4,3] <= 1
    R49: x[4] + y[4] - z[4,4] <= 1
    R50: x[4] + y[5] - z[4,5] <= 1
    R51: x[4] + y[6] - z[4,6] <= 1
    R52: x[4] + y[7] - z[4,7] <= 1
    R53: x[4] + y[8] - z[4,8] <= 1
    R54: x[4] + y[9] - z[4,9] <= 1
    R55: x[4] + y[10] - z[4,10] <= 1
    R56: x[4] + y[11] - z[4,11] <= 1
    R57: x[4] + y[12] - z[4,12] <= 1
    R58: x[4] + y[13] - z[4,13] <= 1
    R59: x[4] + y[14] - z[4,14] <= 1
    R60: x[4] + y[15] - z[4,15] <= 1
    R61: x[5] + y[1] - z[5,1] <= 1
    R62: x[5] + y[2] - z[5,2] <= 1
    R63: x[5] + y[3] - z[5,3] <= 1
    R64: x[5] + y[4] - z[5,4] <= 1
    R65: x[5] + y[5] - z[5,5] <= 1
    R66: x[5] + y[6] - z[5,6] <= 1
    R67: x[5] + y[7] - z[5,7] <= 1
    R68: x[5] + y[8] - z[5,8] <= 1
    R69: x[5] + y[9] - z[5,9] <= 1
    R70: x[5] + y[10] - z[5,10] <= 1
    R71: x[5] + y[11] - z[5,11] <= 1
    R72: x[5] + y[12] - z[5,12] <= 1
    R73: x[5] + y[13] - z[5,13] <= 1
    R74: x[5] + y[14] - z[5,14] <= 1
    R75: x[5] + y[15] - z[5,15] <= 1
    R76: x[6] + y[1] - z[6,1] <= 1
    R77: x[6] + y[2] - z[6,2] <= 1
    R78: x[6] + y[3] - z[6,3] <= 1
    R79: x[6] + y[4] - z[6,4] <= 1
    R80: x[6] + y[5] - z[6,5] <= 1
    R81: x[6] + y[6] - z[6,6] <= 1
    R82: x[6] + y[7] - z[6,7] <= 1
    R83: x[6] + y[8] - z[6,8] <= 1
    R84: x[6] + y[9] - z[6,9] <= 1
    R85: x[6] + y[10] - z[6,10] <= 1
    R86: x[6] + y[11] - z[6,11] <= 1
    R87: x[6] + y[12] - z[6,12] <= 1
    R88: x[6] + y[13] - z[6,13] <= 1
    R89: x[6] + y[14] - z[6,14] <= 1
    R90: x[6] + y[15] - z[6,15] <= 1
    R91: x[7] + y[1] - z[7,1] <= 1
    R92: x[7] + y[2] - z[7,2] <= 1
    R93: x[7] + y[3] - z[7,3] <= 1
    R94: x[7] + y[4] - z[7,4] <= 1
    R95: x[7] + y[5] - z[7,5] <= 1
    R96: x[7] + y[6] - z[7,6] <= 1
    R97: x[7] + y[7] - z[7,7] <= 1
    R98: x[7] + y[8] - z[7,8] <= 1
    R99: x[7] + y[9] - z[7,9] <= 1
    R100: x[7] + y[10] - z[7,10] <= 1
    R101: x[7] + y[11] - z[7,11] <= 1
    R102: x[7] + y[12] - z[7,12] <= 1
    R103: x[7] + y[13] - z[7,13] <= 1
    R104: x[7] + y[14] - z[7,14] <= 1
    R105: x[7] + y[15] - z[7,15] <= 1
    R106: x[8] + y[1] - z[8,1] <= 1
    R107: x[8] + y[2] - z[8,2] <= 1
    R108: x[8] + y[3] - z[8,3] <= 1
    R109: x[8] + y[4] - z[8,4] <= 1
    R110: x[8] + y[5] - z[8,5] <= 1
    R111: x[8] + y[6] - z[8,6] <= 1
    R112: x[8] + y[7] - z[8,7] <= 1
    R113: x[8] + y[8] - z[8,8] <= 1
    R114: x[8] + y[9] - z[8,9] <= 1
    R115: x[8] + y[10] - z[8,10] <= 1
    R116: x[8] + y[11] - z[8,11] <= 1
    R117: x[8] + y[12] - z[8,12] <= 1
    R118: x[8] + y[13] - z[8,13] <= 1
    R119: x[8] + y[14] - z[8,14] <= 1
    R120: x[8] + y[15] - z[8,15] <= 1
    R121: x[9] + y[1] - z[9,1] <= 1
    R122: x[9] + y[2] - z[9,2] <= 1
    R123: x[9] + y[3] - z[9,3] <= 1
    R124: x[9] + y[4] - z[9,4] <= 1
    R125: x[9] + y[5] - z[9,5] <= 1
    R126: x[9] + y[6] - z[9,6] <= 1
    R127: x[9] + y[7] - z[9,7] <= 1
    R128: x[9] + y[8] - z[9,8] <= 1
    R129: x[9] + y[9] - z[9,9] <= 1
    R130: x[9] + y[10] - z[9,10] <= 1
    R131: x[9] + y[11] - z[9,11] <= 1
    R132: x[9] + y[12] - z[9,12] <= 1
    R133: x[9] + y[13] - z[9,13] <= 1
    R134: x[9] + y[14] - z[9,14] <= 1
    R135: x[9] + y[15] - z[9,15] <= 1
    R136: x[10] + y[1] - z[10,1] <= 1
    R137: x[10] + y[2] - z[10,2] <= 1
    R138: x[10] + y[3] - z[10,3] <= 1
    R139: x[10] + y[4] - z[10,4] <= 1
    R140: x[10] + y[5] - z[10,5] <= 1
    R141: x[10] + y[6] - z[10,6] <= 1
    R142: x[10] + y[7] - z[10,7] <= 1
    R143: x[10] + y[8] - z[10,8] <= 1
    R144: x[10] + y[9] - z[10,9] <= 1
    R145: x[10] + y[10] - z[10,10] <= 1
    R146: x[10] + y[11] - z[10,11] <= 1
    R147: x[10] + y[12] - z[10,12] <= 1
    R148: x[10] + y[13] - z[10,13] <= 1
    R149: x[10] + y[14] - z[10,14] <= 1
    R150: x[10] + y[15] - z[10,15] <= 1
    R151: x[11] + y[1] - z[11,1] <= 1
    R152: x[11] + y[2] - z[11,2] <= 1
    R153: x[11] + y[3] - z[11,3] <= 1
    R154: x[11] + y[4] - z[11,4] <= 1
    R155: x[11] + y[5] - z[11,5] <= 1
    R156: x[11] + y[6] - z[11,6] <= 1
    R157: x[11] + y[7] - z[11,7] <= 1
    R158: x[11] + y[8] - z[11,8] <= 1
    R159: x[11] + y[9] - z[11,9] <= 1
    R160: x[11] + y[10] - z[11,10] <= 1
    R161: x[11] + y[11] - z[11,11] <= 1
    R162: x[11] + y[12] - z[11,12] <= 1
    R163: x[11] + y[13] - z[11,13] <= 1
    R164: x[11] + y[14] - z[11,14] <= 1
    R165: x[11] + y[15] - z[11,15] <= 1
    R166: x[12] + y[1] - z[12,1] <= 1
    R167: x[12] + y[2] - z[12,2] <= 1
    R168: x[12] + y[3] - z[12,3] <= 1
    R169: x[12] + y[4] - z[12,4] <= 1
    R170: x[12] + y[5] - z[12,5] <= 1
    R171: x[12] + y[6] - z[12,6] <= 1
    R172: x[12] + y[7] - z[12,7] <= 1
    R173: x[12] + y[8] - z[12,8] <= 1
    R174: x[12] + y[9] - z[12,9] <= 1
    R175: x[12] + y[10] - z[12,10] <= 1
    R176: x[12] + y[11] - z[12,11] <= 1
    R177: x[12] + y[12] - z[12,12] <= 1
    R178: x[12] + y[13] - z[12,13] <= 1
    R179: x[12] + y[14] - z[12,14] <= 1
    R180: x[12] + y[15] - z[12,15] <= 1
    R181: x[13] + y[1] - z[13,1] <= 1
    R182: x[13] + y[2] - z[13,2] <= 1
    R183: x[13] + y[3] - z[13,3] <= 1
    R184: x[13] + y[4] - z[13,4] <= 1
    R185: x[13] + y[5] - z[13,5] <= 1
    R186: x[13] + y[6] - z[13,6] <= 1
    R187: x[13] + y[7] - z[13,7] <= 1
    R188: x[13] + y[8] - z[13,8] <= 1
    R189: x[13] + y[9] - z[13,9] <= 1
    R190: x[13] + y[10] - z[13,10] <= 1
    R191: x[13] + y[11] - z[13,11] <= 1
    R192: x[13] + y[12] - z[13,12] <= 1
    R193: x[13] + y[13] - z[13,13] <= 1
    R194: x[13] + y[14] - z[13,14] <= 1
    R195: x[13] + y[15] - z[13,15] <= 1
    R196: x[14] + y[1] - z[14,1] <= 1
    R197: x[14] + y[2] - z[14,2] <= 1
    R198: x[14] + y[3] - z[14,3] <= 1
    R199: x[14] + y[4] - z[14,4] <= 1
    R200: x[14] + y[5] - z[14,5] <= 1
    R201: x[14] + y[6] - z[14,6] <= 1
    R202: x[14] + y[7] - z[14,7] <= 1
    R203: x[14] + y[8] - z[14,8] <= 1
    R204: x[14] + y[9] - z[14,9] <= 1
    R205: x[14] + y[10] - z[14,10] <= 1
    R206: x[14] + y[11] - z[14,11] <= 1
    R207: x[14] + y[12] - z[14,12] <= 1
    R208: x[14] + y[13] - z[14,13] <= 1
    R209: x[14] + y[14] - z[14,14] <= 1
    R210: x[14] + y[15] - z[14,15] <= 1
    R211: x[15] + y[1] - z[15,1] <= 1
    R212: x[15] + y[2] - z[15,2] <= 1
    R213: x[15] + y[3] - z[15,3] <= 1
    R214: x[15] + y[4] - z[15,4] <= 1
    R215: x[15] + y[5] - z[15,5] <= 1
    R216: x[15] + y[6] - z[15,6] <= 1
    R217: x[15] + y[7] - z[15,7] <= 1
    R218: x[15] + y[8] - z[15,8] <= 1
    R219: x[15] + y[9] - z[15,9] <= 1
    R220: x[15] + y[10] - z[15,10] <= 1
    R221: x[15] + y[11] - z[15,11] <= 1
    R222: x[15] + y[12] - z[15,12] <= 1
    R223: x[15] + y[13] - z[15,13] <= 1
    R224: x[15] + y[14] - z[15,14] <= 1
    R225: x[15] + y[15] - z[15,15] <= 1
    R226: - x[1] + z[1,1] <= 0
    R227: - x[1] + z[1,2] <= 0
    R228: - x[1] + z[1,3] <= 0
    R229: - x[1] + z[1,4] <= 0
    R230: - x[1] + z[1,5] <= 0
    R231: - x[1] + z[1,6] <= 0
    R232: - x[1] + z[1,7] <= 0
    R233: - x[1] + z[1,8] <= 0
    R234: - x[1] + z[1,9] <= 0
    R235: - x[1] + z[1,10] <= 0
    R236: - x[1] + z[1,11] <= 0
    R237: - x[1] + z[1,12] <= 0
    R238: - x[1] + z[1,13] <= 0
    R239: - x[1] + z[1,14] <= 0
    R240: - x[1] + z[1,15] <= 0
    R241: - x[2] + z[2,1] <= 0
    R242: - x[2] + z[2,2] <= 0
    R243: - x[2] + z[2,3] <= 0
    R244: - x[2] + z[2,4] <= 0
    R245: - x[2] + z[2,5] <= 0
    R246: - x[2] + z[2,6] <= 0
    R247: - x[2] + z[2,7] <= 0
    R248: - x[2] + z[2,8] <= 0
    R249: - x[2] + z[2,9] <= 0
    R250: - x[2] + z[2,10] <= 0
    R251: - x[2] + z[2,11] <= 0
    R252: - x[2] + z[2,12] <= 0
    R253: - x[2] + z[2,13] <= 0
    R254: - x[2] + z[2,14] <= 0
    R255: - x[2] + z[2,15] <= 0
    R256: - x[3] + z[3,1] <= 0
    R257: - x[3] + z[3,2] <= 0
    R258: - x[3] + z[3,3] <= 0
    R259: - x[3] + z[3,4] <= 0
    R260: - x[3] + z[3,5] <= 0
    R261: - x[3] + z[3,6] <= 0
    R262: - x[3] + z[3,7] <= 0
    R263: - x[3] + z[3,8] <= 0
    R264: - x[3] + z[3,9] <= 0
    R265: - x[3] + z[3,10] <= 0
    R266: - x[3] + z[3,11] <= 0
    R267: - x[3] + z[3,12] <= 0
    R268: - x[3] + z[3,13] <= 0
    R269: - x[3] + z[3,14] <= 0
    R270: - x[3] + z[3,15] <= 0
    R271: - x[4] + z[4,1] <= 0
    R272: - x[4] + z[4,2] <= 0
    R273: - x[4] + z[4,3] <= 0
    R274: - x[4] + z[4,4] <= 0
    R275: - x[4] + z[4,5] <= 0
    R276: - x[4] + z[4,6] <= 0
    R277: - x[4] + z[4,7] <= 0
    R278: - x[4] + z[4,8] <= 0
    R279: - x[4] + z[4,9] <= 0
    R280: - x[4] + z[4,10] <= 0
    R281: - x[4] + z[4,11] <= 0
    R282: - x[4] + z[4,12] <= 0
    R283: - x[4] + z[4,13] <= 0
    R284: - x[4] + z[4,14] <= 0
    R285: - x[4] + z[4,15] <= 0
    R286: - x[5] + z[5,1] <= 0
    R287: - x[5] + z[5,2] <= 0
    R288: - x[5] + z[5,3] <= 0
    R289: - x[5] + z[5,4] <= 0
    R290: - x[5] + z[5,5] <= 0
    R291: - x[5] + z[5,6] <= 0
    R292: - x[5] + z[5,7] <= 0
    R293: - x[5] + z[5,8] <= 0
    R294: - x[5] + z[5,9] <= 0
    R295: - x[5] + z[5,10] <= 0
    R296: - x[5] + z[5,11] <= 0
    R297: - x[5] + z[5,12] <= 0
    R298: - x[5] + z[5,13] <= 0
    R299: - x[5] + z[5,14] <= 0
    R300: - x[5] + z[5,15] <= 0
    R301: - x[6] + z[6,1] <= 0
    R302: - x[6] + z[6,2] <= 0
    R303: - x[6] + z[6,3] <= 0
    R304: - x[6] + z[6,4] <= 0
    R305: - x[6] + z[6,5] <= 0
    R306: - x[6] + z[6,6] <= 0
    R307: - x[6] + z[6,7] <= 0
    R308: - x[6] + z[6,8] <= 0
    R309: - x[6] + z[6,9] <= 0
    R310: - x[6] + z[6,10] <= 0
    R311: - x[6] + z[6,11] <= 0
    R312: - x[6] + z[6,12] <= 0
    R313: - x[6] + z[6,13] <= 0
    R314: - x[6] + z[6,14] <= 0
    R315: - x[6] + z[6,15] <= 0
    R316: - x[7] + z[7,1] <= 0
    R317: - x[7] + z[7,2] <= 0
    R318: - x[7] + z[7,3] <= 0
    R319: - x[7] + z[7,4] <= 0
    R320: - x[7] + z[7,5] <= 0
    R321: - x[7] + z[7,6] <= 0
    R322: - x[7] + z[7,7] <= 0
    R323: - x[7] + z[7,8] <= 0
    R324: - x[7] + z[7,9] <= 0
    R325: - x[7] + z[7,10] <= 0
    R326: - x[7] + z[7,11] <= 0
    R327: - x[7] + z[7,12] <= 0
    R328: - x[7] + z[7,13] <= 0
    R329: - x[7] + z[7,14] <= 0
    R330: - x[7] + z[7,15] <= 0
    R331: - x[8] + z[8,1] <= 0
    R332: - x[8] + z[8,2] <= 0
    R333: - x[8] + z[8,3] <= 0
    R334: - x[8] + z[8,4] <= 0
    R335: - x[8] + z[8,5] <= 0
    R336: - x[8] + z[8,6] <= 0
    R337: - x[8] + z[8,7] <= 0
    R338: - x[8] + z[8,8] <= 0
    R339: - x[8] + z[8,9] <= 0
    R340: - x[8] + z[8,10] <= 0
    R341: - x[8] + z[8,11] <= 0
    R342: - x[8] + z[8,12] <= 0
    R343: - x[8] + z[8,13] <= 0
    R344: - x[8] + z[8,14] <= 0
    R345: - x[8] + z[8,15] <= 0
    R346: - x[9] + z[9,1] <= 0
    R347: - x[9] + z[9,2] <= 0
    R348: - x[9] + z[9,3] <= 0
    R349: - x[9] + z[9,4] <= 0
    R350: - x[9] + z[9,5] <= 0
    R351: - x[9] + z[9,6] <= 0
    R352: - x[9] + z[9,7] <= 0
    R353: - x[9] + z[9,8] <= 0
    R354: - x[9] + z[9,9] <= 0
    R355: - x[9] + z[9,10] <= 0
    R356: - x[9] + z[9,11] <= 0
    R357: - x[9] + z[9,12] <= 0
    R358: - x[9] + z[9,13] <= 0
    R359: - x[9] + z[9,14] <= 0
    R360: - x[9] + z[9,15] <= 0
    R361: - x[10] + z[10,1] <= 0
    R362: - x[10] + z[10,2] <= 0
    R363: - x[10] + z[10,3] <= 0
    R364: - x[10] + z[10,4] <= 0
    R365: - x[10] + z[10,5] <= 0
    R366: - x[10] + z[10,6] <= 0
    R367: - x[10] + z[10,7] <= 0
    R368: - x[10] + z[10,8] <= 0
    R369: - x[10] + z[10,9] <= 0
    R370: - x[10] + z[10,10] <= 0
    R371: - x[10] + z[10,11] <= 0
    R372: - x[10] + z[10,12] <= 0
    R373: - x[10] + z[10,13] <= 0
    R374: - x[10] + z[10,14] <= 0
    R375: - x[10] + z[10,15] <= 0
    R376: - x[11] + z[11,1] <= 0
    R377: - x[11] + z[11,2] <= 0
    R378: - x[11] + z[11,3] <= 0
    R379: - x[11] + z[11,4] <= 0
    R380: - x[11] + z[11,5] <= 0
    R381: - x[11] + z[11,6] <= 0
    R382: - x[11] + z[11,7] <= 0
    R383: - x[11] + z[11,8] <= 0
    R384: - x[11] + z[11,9] <= 0
    R385: - x[11] + z[11,10] <= 0
    R386: - x[11] + z[11,11] <= 0
    R387: - x[11] + z[11,12] <= 0
    R388: - x[11] + z[11,13] <= 0
    R389: - x[11] + z[11,14] <= 0
    R390: - x[11] + z[11,15] <= 0
    R391: - x[12] + z[12,1] <= 0
    R392: - x[12] + z[12,2] <= 0
    R393: - x[12] + z[12,3] <= 0
    R394: - x[12] + z[12,4] <= 0
    R395: - x[12] + z[12,5] <= 0
    R396: - x[12] + z[12,6] <= 0
    R397: - x[12] + z[12,7] <= 0
    R398: - x[12] + z[12,8] <= 0
    R399: - x[12] + z[12,9] <= 0
    R400: - x[12] + z[12,10] <= 0
    R401: - x[12] + z[12,11] <= 0
    R402: - x[12] + z[12,12] <= 0
    R403: - x[12] + z[12,13] <= 0
    R404: - x[12] + z[12,14] <= 0
    R405: - x[12] + z[12,15] <= 0
    R406: - x[13] + z[13,1] <= 0
    R407: - x[13] + z[13,2] <= 0
    R408: - x[13] + z[13,3] <= 0
    R409: - x[13] + z[13,4] <= 0
    R410: - x[13] + z[13,5] <= 0
    R411: - x[13] + z[13,6] <= 0
    R412: - x[13] + z[13,7] <= 0
    R413: - x[13] + z[13,8] <= 0
    R414: - x[13] + z[13,9] <= 0
    R415: - x[13] + z[13,10] <= 0
    R416: - x[13] + z[13,11] <= 0
    R417: - x[13] + z[13,12] <= 0
    R418: - x[13] + z[13,13] <= 0
    R419: - x[13] + z[13,14] <= 0
    R420: - x[13] + z[13,15] <= 0
    R421: - x[14] + z[14,1] <= 0
    R422: - x[14] + z[14,2] <= 0
    R423: - x[14] + z[14,3] <= 0
    R424: - x[14] + z[14,4] <= 0
    R425: - x[14] + z[14,5] <= 0
    R426: - x[14] + z[14,6] <= 0
    R427: - x[14] + z[14,7] <= 0
    R428: - x[14] + z[14,8] <= 0
    R429: - x[14] + z[14,9] <= 0
    R430: - x[14] + z[14,10] <= 0
    R431: - x[14] + z[14,11] <= 0
    R432: - x[14] + z[14,12] <= 0
    R433: - x[14] + z[14,13] <= 0
    R434: - x[14] + z[14,14] <= 0
    R435: - x[14] + z[14,15] <= 0
    R436: - x[15] + z[15,1] <= 0
    R437: - x[15] + z[15,2] <= 0
    R438: - x[15] + z[15,3] <= 0
    R439: - x[15] + z[15,4] <= 0
    R440: - x[15] + z[15,5] <= 0
    R441: - x[15] + z[15,6] <= 0
    R442: - x[15] + z[15,7] <= 0
    R443: - x[15] + z[15,8] <= 0
    R444: - x[15] + z[15,9] <= 0
    R445: - x[15] + z[15,10] <= 0
    R446: - x[15] + z[15,11] <= 0
    R447: - x[15] + z[15,12] <= 0
    R448: - x[15] + z[15,13] <= 0
    R449: - x[15] + z[15,14] <= 0
    R450: - x[15] + z[15,15] <= 0
    R451: - y[1] + z[1,1] <= 0
    R452: - y[2] + z[1,2] <= 0
    R453: - y[3] + z[1,3] <= 0
    R454: - y[4] + z[1,4] <= 0
    R455: - y[5] + z[1,5] <= 0
    R456: - y[6] + z[1,6] <= 0
    R457: - y[7] + z[1,7] <= 0
    R458: - y[8] + z[1,8] <= 0
    R459: - y[9] + z[1,9] <= 0
    R460: - y[10] + z[1,10] <= 0
    R461: - y[11] + z[1,11] <= 0
    R462: - y[12] + z[1,12] <= 0
    R463: - y[13] + z[1,13] <= 0
    R464: - y[14] + z[1,14] <= 0
    R465: - y[15] + z[1,15] <= 0
    R466: - y[1] + z[2,1] <= 0
    R467: - y[2] + z[2,2] <= 0
    R468: - y[3] + z[2,3] <= 0
    R469: - y[4] + z[2,4] <= 0
    R470: - y[5] + z[2,5] <= 0
    R471: - y[6] + z[2,6] <= 0
    R472: - y[7] + z[2,7] <= 0
    R473: - y[8] + z[2,8] <= 0
    R474: - y[9] + z[2,9] <= 0
    R475: - y[10] + z[2,10] <= 0
    R476: - y[11] + z[2,11] <= 0
    R477: - y[12] + z[2,12] <= 0
    R478: - y[13] + z[2,13] <= 0
    R479: - y[14] + z[2,14] <= 0
    R480: - y[15] + z[2,15] <= 0
    R481: - y[1] + z[3,1] <= 0
    R482: - y[2] + z[3,2] <= 0
    R483: - y[3] + z[3,3] <= 0
    R484: - y[4] + z[3,4] <= 0
    R485: - y[5] + z[3,5] <= 0
    R486: - y[6] + z[3,6] <= 0
    R487: - y[7] + z[3,7] <= 0
    R488: - y[8] + z[3,8] <= 0
    R489: - y[9] + z[3,9] <= 0
    R490: - y[10] + z[3,10] <= 0
    R491: - y[11] + z[3,11] <= 0
    R492: - y[12] + z[3,12] <= 0
    R493: - y[13] + z[3,13] <= 0
    R494: - y[14] + z[3,14] <= 0
    R495: - y[15] + z[3,15] <= 0
    R496: - y[1] + z[4,1] <= 0
    R497: - y[2] + z[4,2] <= 0
    R498: - y[3] + z[4,3] <= 0
    R499: - y[4] + z[4,4] <= 0
    R500: - y[5] + z[4,5] <= 0
    R501: - y[6] + z[4,6] <= 0
    R502: - y[7] + z[4,7] <= 0
    R503: - y[8] + z[4,8] <= 0
    R504: - y[9] + z[4,9] <= 0
    R505: - y[10] + z[4,10] <= 0
    R506: - y[11] + z[4,11] <= 0
    R507: - y[12] + z[4,12] <= 0
    R508: - y[13] + z[4,13] <= 0
    R509: - y[14] + z[4,14] <= 0
    R510: - y[15] + z[4,15] <= 0
    R511: - y[1] + z[5,1] <= 0
    R512: - y[2] + z[5,2] <= 0
    R513: - y[3] + z[5,3] <= 0
    R514: - y[4] + z[5,4] <= 0
    R515: - y[5] + z[5,5] <= 0
    R516: - y[6] + z[5,6] <= 0
    R517: - y[7] + z[5,7] <= 0
    R518: - y[8] + z[5,8] <= 0
    R519: - y[9] + z[5,9] <= 0
    R520: - y[10] + z[5,10] <= 0
    R521: - y[11] + z[5,11] <= 0
    R522: - y[12] + z[5,12] <= 0
    R523: - y[13] + z[5,13] <= 0
    R524: - y[14] + z[5,14] <= 0
    R525: - y[15] + z[5,15] <= 0
    R526: - y[1] + z[6,1] <= 0
    R527: - y[2] + z[6,2] <= 0
    R528: - y[3] + z[6,3] <= 0
    R529: - y[4] + z[6,4] <= 0
    R530: - y[5] + z[6,5] <= 0
    R531: - y[6] + z[6,6] <= 0
    R532: - y[7] + z[6,7] <= 0
    R533: - y[8] + z[6,8] <= 0
    R534: - y[9] + z[6,9] <= 0
    R535: - y[10] + z[6,10] <= 0
    R536: - y[11] + z[6,11] <= 0
    R537: - y[12] + z[6,12] <= 0
    R538: - y[13] + z[6,13] <= 0
    R539: - y[14] + z[6,14] <= 0
    R540: - y[15] + z[6,15] <= 0
    R541: - y[1] + z[7,1] <= 0
    R542: - y[2] + z[7,2] <= 0
    R543: - y[3] + z[7,3] <= 0
    R544: - y[4] + z[7,4] <= 0
    R545: - y[5] + z[7,5] <= 0
    R546: - y[6] + z[7,6] <= 0
    R547: - y[7] + z[7,7] <= 0
    R548: - y[8] + z[7,8] <= 0
    R549: - y[9] + z[7,9] <= 0
    R550: - y[10] + z[7,10] <= 0
    R551: - y[11] + z[7,11] <= 0
    R552: - y[12] + z[7,12] <= 0
    R553: - y[13] + z[7,13] <= 0
    R554: - y[14] + z[7,14] <= 0
    R555: - y[15] + z[7,15] <= 0
    R556: - y[1] + z[8,1] <= 0
    R557: - y[2] + z[8,2] <= 0
    R558: - y[3] + z[8,3] <= 0
    R559: - y[4] + z[8,4] <= 0
    R560: - y[5] + z[8,5] <= 0
    R561: - y[6] + z[8,6] <= 0
    R562: - y[7] + z[8,7] <= 0
    R563: - y[8] + z[8,8] <= 0
    R564: - y[9] + z[8,9] <= 0
    R565: - y[10] + z[8,10] <= 0
    R566: - y[11] + z[8,11] <= 0
    R567: - y[12] + z[8,12] <= 0
    R568: - y[13] + z[8,13] <= 0
    R569: - y[14] + z[8,14] <= 0
    R570: - y[15] + z[8,15] <= 0
    R571: - y[1] + z[9,1] <= 0
    R572: - y[2] + z[9,2] <= 0
    R573: - y[3] + z[9,3] <= 0
    R574: - y[4] + z[9,4] <= 0
    R575: - y[5] + z[9,5] <= 0
    R576: - y[6] + z[9,6] <= 0
    R577: - y[7] + z[9,7] <= 0
    R578: - y[8] + z[9,8] <= 0
    R579: - y[9] + z[9,9] <= 0
    R580: - y[10] + z[9,10] <= 0
    R581: - y[11] + z[9,11] <= 0
    R582: - y[12] + z[9,12] <= 0
    R583: - y[13] + z[9,13] <= 0
    R584: - y[14] + z[9,14] <= 0
    R585: - y[15] + z[9,15] <= 0
    R586: - y[1] + z[10,1] <= 0
    R587: - y[2] + z[10,2] <= 0
    R588: - y[3] + z[10,3] <= 0
    R589: - y[4] + z[10,4] <= 0
    R590: - y[5] + z[10,5] <= 0
    R591: - y[6] + z[10,6] <= 0
    R592: - y[7] + z[10,7] <= 0
    R593: - y[8] + z[10,8] <= 0
    R594: - y[9] + z[10,9] <= 0
    R595: - y[10] + z[10,10] <= 0
    R596: - y[11] + z[10,11] <= 0
    R597: - y[12] + z[10,12] <= 0
    R598: - y[13] + z[10,13] <= 0
    R599: - y[14] + z[10,14] <= 0
    R600: - y[15] + z[10,15] <= 0
    R601: - y[1] + z[11,1] <= 0
    R602: - y[2] + z[11,2] <= 0
    R603: - y[3] + z[11,3] <= 0
    R604: - y[4] + z[11,4] <= 0
    R605: - y[5] + z[11,5] <= 0
    R606: - y[6] + z[11,6] <= 0
    R607: - y[7] + z[11,7] <= 0
    R608: - y[8] + z[11,8] <= 0
    R609: - y[9] + z[11,9] <= 0
    R610: - y[10] + z[11,10] <= 0
    R611: - y[11] + z[11,11] <= 0
    R612: - y[12] + z[11,12] <= 0
    R613: - y[13] + z[11,13] <= 0
    R614: - y[14] + z[11,14] <= 0
    R615: - y[15] + z[11,15] <= 0
    R616: - y[1] + z[12,1] <= 0
    R617: - y[2] + z[12,2] <= 0
    R618: - y[3] + z[12,3] <= 0
    R619: - y[4] + z[12,4] <= 0
    R620: - y[5] + z[12,5] <= 0
    R621: - y[6] + z[12,6] <= 0
    R622: - y[7] + z[12,7] <= 0
    R623: - y[8] + z[12,8] <= 0
    R624: - y[9] + z[12,9] <= 0
    R625: - y[10] + z[12,10] <= 0
    R626: - y[11] + z[12,11] <= 0
    R627: - y[12] + z[12,12] <= 0
    R628: - y[13] + z[12,13] <= 0
    R629: - y[14] + z[12,14] <= 0
    R630: - y[15] + z[12,15] <= 0
    R631: - y[1] + z[13,1] <= 0
    R632: - y[2] + z[13,2] <= 0
    R633: - y[3] + z[13,3] <= 0
    R634: - y[4] + z[13,4] <= 0
    R635: - y[5] + z[13,5] <= 0
    R636: - y[6] + z[13,6] <= 0
    R637: - y[7] + z[13,7] <= 0
    R638: - y[8] + z[13,8] <= 0
    R639: - y[9] + z[13,9] <= 0
    R640: - y[10] + z[13,10] <= 0
    R641: - y[11] + z[13,11] <= 0
    R642: - y[12] + z[13,12] <= 0
    R643: - y[13] + z[13,13] <= 0
    R644: - y[14] + z[13,14] <= 0
    R645: - y[15] + z[13,15] <= 0
    R646: - y[1] + z[14,1] <= 0
    R647: - y[2] + z[14,2] <= 0
    R648: - y[3] + z[14,3] <= 0
    R649: - y[4] + z[14,4] <= 0
    R650: - y[5] + z[14,5] <= 0
    R651: - y[6] + z[14,6] <= 0
    R652: - y[7] + z[14,7] <= 0
    R653: - y[8] + z[14,8] <= 0
    R654: - y[9] + z[14,9] <= 0
    R655: - y[10] + z[14,10] <= 0
    R656: - y[11] + z[14,11] <= 0
    R657: - y[12] + z[14,12] <= 0
    R658: - y[13] + z[14,13] <= 0
    R659: - y[14] + z[14,14] <= 0
    R660: - y[15] + z[14,15] <= 0
    R661: - y[1] + z[15,1] <= 0
    R662: - y[2] + z[15,2] <= 0
    R663: - y[3] + z[15,3] <= 0
    R664: - y[4] + z[15,4] <= 0
    R665: - y[5] + z[15,5] <= 0
    R666: - y[6] + z[15,6] <= 0
    R667: - y[7] + z[15,7] <= 0
    R668: - y[8] + z[15,8] <= 0
    R669: - y[9] + z[15,9] <= 0
    R670: - y[10] + z[15,10] <= 0
    R671: - y[11] + z[15,11] <= 0
    R672: - y[12] + z[15,12] <= 0
    R673: - y[13] + z[15,13] <= 0
    R674: - y[14] + z[15,14] <= 0
    R675: - y[15] + z[15,15] <= 0
    Bounds
    x[1] <= 1
    x[2] <= 1
    x[3] <= 1
    x[4] <= 1
    x[5] <= 1
    x[6] <= 1
    x[7] <= 1
    x[8] <= 1
    x[9] <= 1
    x[10] <= 1
    x[11] <= 1
    x[12] <= 1
    x[13] <= 1
    x[14] <= 1
    x[15] <= 1
    y[1] <= 1
    y[2] <= 1
    y[3] <= 1
    y[4] <= 1
    y[5] <= 1
    y[6] <= 1
    y[7] <= 1
    y[8] <= 1
    y[9] <= 1
    y[10] <= 1
    y[11] <= 1
    y[12] <= 1
    y[13] <= 1
    y[14] <= 1
    y[15] <= 1
    z[1,1] <= 1
    z[1,2] <= 1
    z[1,3] <= 1
    z[1,4] <= 1
    z[1,5] <= 1
    z[1,6] <= 1
    z[1,7] <= 1
    z[1,8] <= 1
    z[1,9] <= 1
    z[1,10] <= 1
    z[1,11] <= 1
    z[1,12] <= 1
    z[1,13] <= 1
    z[1,14] <= 1
    z[1,15] <= 1
    z[2,1] <= 1
    z[2,2] <= 1
    z[2,3] <= 1
    z[2,4] <= 1
    z[2,5] <= 1
    z[2,6] <= 1
    z[2,7] <= 1
    z[2,8] <= 1
    z[2,9] <= 1
    z[2,10] <= 1
    z[2,11] <= 1
    z[2,12] <= 1
    z[2,13] <= 1
    z[2,14] <= 1
    z[2,15] <= 1
    z[3,1] <= 1
    z[3,2] <= 1
    z[3,3] <= 1
    z[3,4] <= 1
    z[3,5] <= 1
    z[3,6] <= 1
    z[3,7] <= 1
    z[3,8] <= 1
    z[3,9] <= 1
    z[3,10] <= 1
    z[3,11] <= 1
    z[3,12] <= 1
    z[3,13] <= 1
    z[3,14] <= 1
    z[3,15] <= 1
    z[4,1] <= 1
    z[4,2] <= 1
    z[4,3] <= 1
    z[4,4] <= 1
    z[4,5] <= 1
    z[4,6] <= 1
    z[4,7] <= 1
    z[4,8] <= 1
    z[4,9] <= 1
    z[4,10] <= 1
    z[4,11] <= 1
    z[4,12] <= 1
    z[4,13] <= 1
    z[4,14] <= 1
    z[4,15] <= 1
    z[5,1] <= 1
    z[5,2] <= 1
    z[5,3] <= 1
    z[5,4] <= 1
    z[5,5] <= 1
    z[5,6] <= 1
    z[5,7] <= 1
    z[5,8] <= 1
    z[5,9] <= 1
    z[5,10] <= 1
    z[5,11] <= 1
    z[5,12] <= 1
    z[5,13] <= 1
    z[5,14] <= 1
    z[5,15] <= 1
    z[6,1] <= 1
    z[6,2] <= 1
    z[6,3] <= 1
    z[6,4] <= 1
    z[6,5] <= 1
    z[6,6] <= 1
    z[6,7] <= 1
    z[6,8] <= 1
    z[6,9] <= 1
    z[6,10] <= 1
    z[6,11] <= 1
    z[6,12] <= 1
    z[6,13] <= 1
    z[6,14] <= 1
    z[6,15] <= 1
    z[7,1] <= 1
    z[7,2] <= 1
    z[7,3] <= 1
    z[7,4] <= 1
    z[7,5] <= 1
    z[7,6] <= 1
    z[7,7] <= 1
    z[7,8] <= 1
    z[7,9] <= 1
    z[7,10] <= 1
    z[7,11] <= 1
    z[7,12] <= 1
    z[7,13] <= 1
    z[7,14] <= 1
    z[7,15] <= 1
    z[8,1] <= 1
    z[8,2] <= 1
    z[8,3] <= 1
    z[8,4] <= 1
    z[8,5] <= 1
    z[8,6] <= 1
    z[8,7] <= 1
    z[8,8] <= 1
    z[8,9] <= 1
    z[8,10] <= 1
    z[8,11] <= 1
    z[8,12] <= 1
    z[8,13] <= 1
    z[8,14] <= 1
    z[8,15] <= 1
    z[9,1] <= 1
    z[9,2] <= 1
    z[9,3] <= 1
    z[9,4] <= 1
    z[9,5] <= 1
    z[9,6] <= 1
    z[9,7] <= 1
    z[9,8] <= 1
    z[9,9] <= 1
    z[9,10] <= 1
    z[9,11] <= 1
    z[9,12] <= 1
    z[9,13] <= 1
    z[9,14] <= 1
    z[9,15] <= 1
    z[10,1] <= 1
    z[10,2] <= 1
    z[10,3] <= 1
    z[10,4] <= 1
    z[10,5] <= 1
    z[10,6] <= 1
    z[10,7] <= 1
    z[10,8] <= 1
    z[10,9] <= 1
    z[10,10] <= 1
    z[10,11] <= 1
    z[10,12] <= 1
    z[10,13] <= 1
    z[10,14] <= 1
    z[10,15] <= 1
    z[11,1] <= 1
    z[11,2] <= 1
    z[11,3] <= 1
    z[11,4] <= 1
    z[11,5] <= 1
    z[11,6] <= 1
    z[11,7] <= 1
    z[11,8] <= 1
    z[11,9] <= 1
    z[11,10] <= 1
    z[11,11] <= 1
    z[11,12] <= 1
    z[11,13] <= 1
    z[11,14] <= 1
    z[11,15] <= 1
    z[12,1] <= 1
    z[12,2] <= 1
    z[12,3] <= 1
    z[12,4] <= 1
    z[12,5] <= 1
    z[12,6] <= 1
    z[12,7] <= 1
    z[12,8] <= 1
    z[12,9] <= 1
    z[12,10] <= 1
    z[12,11] <= 1
    z[12,12] <= 1
    z[12,13] <= 1
    z[12,14] <= 1
    z[12,15] <= 1
    z[13,1] <= 1
    z[13,2] <= 1
    z[13,3] <= 1
    z[13,4] <= 1
    z[13,5] <= 1
    z[13,6] <= 1
    z[13,7] <= 1
    z[13,8] <= 1
    z[13,9] <= 1
    z[13,10] <= 1
    z[13,11] <= 1
    z[13,12] <= 1
    z[13,13] <= 1
    z[13,14] <= 1
    z[13,15] <= 1
    z[14,1] <= 1
    z[14,2] <= 1
    z[14,3] <= 1
    z[14,4] <= 1
    z[14,5] <= 1
    z[14,6] <= 1
    z[14,7] <= 1
    z[14,8] <= 1
    z[14,9] <= 1
    z[14,10] <= 1
    z[14,11] <= 1
    z[14,12] <= 1
    z[14,13] <= 1
    z[14,14] <= 1
    z[14,15] <= 1
    z[15,1] <= 1
    z[15,2] <= 1
    z[15,3] <= 1
    z[15,4] <= 1
    z[15,5] <= 1
    z[15,6] <= 1
    z[15,7] <= 1
    z[15,8] <= 1
    z[15,9] <= 1
    z[15,10] <= 1
    z[15,11] <= 1
    z[15,12] <= 1
    z[15,13] <= 1
    z[15,14] <= 1
    z[15,15] <= 1
    End
    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Yes, there is something still happening. I will let you know once I found out.

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Thanks

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Jan,

    I double checked the behavior and what is happening is indeed expected. In any node (and also the root node), Gurobi performs trivial bound propagations irrespective of the Presolve setting. In your particular case, this means that the linear constraint

    R0: x[1] + x[2] + x[3] <= 0.48

    is used to tighten the upper bounds of variables \(x_1, x_2, x_3\) to \(0.48\). This explains the difference in the objective value between your manual McCormick relaxation and the root relaxation bound reported by Gurobi.

    If you would like to only check whether your McCormick relaxation is correct, you could remove all non-bilinear constraints from your model. This would prevent Gurobi from taking advantage from any trivially deducible bound information.

    I hope this helps.

    Best regards, 
    Jaromił

     

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Hi Jaromił Najman,

    yes, this helps. Thank you very much!

    Is there a special reason, why these bound propagations are not considered as Presolve? In my opinion, it is unnecessarily confusing to the user that sets Presolve=0.

    Best,
    Jan

     

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Jan,

    Is there a special reason, why these bound propagations are not considered as Presolve? In my opinion, it is unnecessarily confusing to the user that sets Presolve=0.

    Presolve controls what happens before the solution process (thus the name).

    Bound propagation for particular nodes are performed outside of presolve and thus not affected by it. We discussed this issue and came to the conclusion that it does not make sense for the average user to have control over bound propagation within nodes. Of course there are special cases like yours, but for that we can provide a workaround as discussed above.

    Best regards, 
    Jaromił

    0
  • Jan Krause
    Gurobi-versary
    Conversationalist

    Hello Jaromił Najman,

    okay, thanks for that explanation. :)

    Best,

    Jan

    0

Please sign in to leave a comment.