Originally posted by: pjede
Hello all, I am having a problem with cplex where i just quite plainly seem to see cplex is incorrect, although i cannot believe it.
The problem has to do with the dual variables cplex delivers and that i use for column generation. The base problem is this:
\Problem name: ilog.cplex
Minimize
obj: 0 IloX0 + 0 IloX1 + 0 IloX2 + 0 IloX3 + 0 IloX4 + 0 IloX5 + 0 IloX6
+ 0 IloX7 + 0 IloX8 + 0 IloX9 + 0 IloX10 + 0 IloX11 + 0 IloX12 + 0 IloX13
+ 0 IloX14 + 0 IloX15 + 0 IloX16 + 0 IloX17 + 0 IloX18 + 0 IloX19
+ 36 IloX20 + 36 IloX21 + 36 IloX22 + 36 IloX23 + 36 IloX24 + 36 IloX25
+ 36 IloX26 + 36 IloX27 + 36 IloX28 + 36 IloX29 + 36 IloX30 + 36 IloX31
+ 36 IloX32 + 36 IloX33 + 36 IloX34 + 36 IloX35 + 36 IloX36 + 36 IloX37
+ 36 IloX38 + 36 IloX39 + 36 IloX40 + 36 IloX41 + 36 IloX42 + 36 IloX43
+ 36 IloX44 + 36 IloX45 + 36 IloX46 + 36 IloX47 + 36 IloX48 + 36 IloX49
+ 36 IloX50 + 36 IloX51 + 36 IloX52 + 36 IloX53 + 36 IloX54 + 36 IloX55
+ 36 IloX56 + 36 IloX57 + 36 IloX58 + 36 IloX59 + 36 IloX60 + 36 IloX61
+ 36 IloX62 + 36 IloX63 + 36 IloX64 + 36 IloX65 + 36 IloX66 + 36 IloX67
+ 36 IloX68 + 36 IloX69 + 36 IloX70 + 36 IloX71 + 36 IloX72 + 36 IloX73
+ 36 IloX74 + 36 IloX75 + 36 IloX76 + 36 IloX77 + 36 IloX78 + 36 IloX79
+ 36 IloX80 + 36 IloX81
Subject To
IloC0: IloX20 >= 1
IloC1: IloX21 >= 1
IloC2: IloX22 >= 1
IloC3: IloX23 >= 1
IloC4: IloX24 >= 1
IloC5: IloX25 >= 1
IloC6: IloX26 >= 1
IloC7: IloX27 >= 1
IloC8: IloX28 >= 1
IloC9: IloX29 >= 1
IloC10: IloX30 >= 1
IloC11: IloX31 >= 1
IloC12: IloX32 >= 1
IloC13: IloX33 >= 1
IloC14: IloX34 >= 1
IloC15: IloX35 >= 1
IloC16: IloX36 >= 1
IloC17: IloX37 >= 1
IloC18: IloX38 >= 1
IloC19: IloX39 >= 1
IloC20: IloX40 >= 1
IloC21: IloX41 >= 1
IloC22: IloX42 >= 1
IloC23: IloX43 >= 1
IloC24: IloX44 >= 1
IloC25: IloX45 >= 1
IloC26: IloX46 >= 1
IloC27: IloX47 >= 1
IloC28: IloX48 >= 1
IloC29: IloX49 >= 1
IloC30: IloX50 >= 1
IloC31: IloX51 >= 1
IloC32: IloX52 >= 1
IloC33: IloX53 >= 1
IloC34: IloX54 >= 1
IloC35: IloX55 >= 1
IloC36: IloX56 >= 1
IloC37: IloX57 >= 1
IloC38: IloX58 >= 1
IloC39: IloX59 >= 1
IloC40: IloX60 >= 1
IloC41: IloX61 >= 1
IloC42: IloX62 >= 1
IloC43: IloX63 >= 1
IloC44: IloX64 >= 1
IloC45: IloX65 >= 1
IloC46: IloX66 >= 1
IloC47: IloX67 >= 1
IloC48: IloX68 >= 1
IloC49: IloX69 >= 1
IloC50: IloX70 >= 1
IloC51: IloX71 >= 1
IloC52: IloX72 >= 1
IloC53: IloX73 >= 1
IloC54: IloX74 >= 1
IloC55: IloX75 >= 1
IloC56: IloX76 >= 1
IloC57: IloX77 >= 1
IloC58: IloX78 >= 1
IloC59: IloX79 >= 1
IloC60: IloX80 >= 1
IloC61: IloX81 >= 1
Bounds
0 <= IloX0 <= 2147483647
0 <= IloX1 <= 2147483647
0 <= IloX2 <= 2147483647
0 <= IloX3 <= 2147483647
0 <= IloX4 <= 2147483647
0 <= IloX5 <= 2147483647
0 <= IloX6 <= 2147483647
0 <= IloX7 <= 2147483647
0 <= IloX8 <= 2147483647
0 <= IloX9 <= 2147483647
0 <= IloX10 <= 2147483647
0 <= IloX11 <= 2147483647
0 <= IloX12 <= 2147483647
0 <= IloX13 <= 2147483647
0 <= IloX14 <= 2147483647
0 <= IloX15 <= 2147483647
0 <= IloX16 <= 2147483647
0 <= IloX17 <= 2147483647
0 <= IloX18 <= 2147483647
0 <= IloX19 <= 2147483647
0 <= IloX20 <= 5
0 <= IloX21 <= 5
0 <= IloX22 <= 5
0 <= IloX23 <= 5
0 <= IloX24 <= 5
0 <= IloX25 <= 5
0 <= IloX26 <= 5
0 <= IloX27 <= 5
0 <= IloX28 <= 5
0 <= IloX29 <= 5
0 <= IloX30 <= 5
0 <= IloX31 <= 5
0 <= IloX32 <= 5
0 <= IloX33 <= 5
0 <= IloX34 <= 5
0 <= IloX35 <= 5
0 <= IloX36 <= 5
0 <= IloX37 <= 5
0 <= IloX38 <= 5
0 <= IloX39 <= 5
0 <= IloX40 <= 5
0 <= IloX41 <= 5
0 <= IloX42 <= 5
0 <= IloX43 <= 5
0 <= IloX44 <= 5
0 <= IloX45 <= 5
0 <= IloX46 <= 5
0 <= IloX47 <= 5
0 <= IloX48 <= 5
0 <= IloX49 <= 5
0 <= IloX50 <= 5
0 <= IloX51 <= 5
0 <= IloX52 <= 5
0 <= IloX53 <= 5
0 <= IloX54 <= 5
0 <= IloX55 <= 5
0 <= IloX56 <= 5
0 <= IloX57 <= 5
0 <= IloX58 <= 5
0 <= IloX59 <= 5
0 <= IloX60 <= 5
0 <= IloX61 <= 5
0 <= IloX62 <= 5
0 <= IloX63 <= 5
0 <= IloX64 <= 5
0 <= IloX65 <= 5
0 <= IloX66 <= 5
0 <= IloX67 <= 5
0 <= IloX68 <= 5
0 <= IloX69 <= 5
0 <= IloX70 <= 5
0 <= IloX71 <= 5
0 <= IloX72 <= 5
0 <= IloX73 <= 5
0 <= IloX74 <= 5
0 <= IloX75 <= 5
0 <= IloX76 <= 5
0 <= IloX77 <= 5
0 <= IloX78 <= 5
0 <= IloX79 <= 5
0 <= IloX80 <= 5
0 <= IloX81 <= 5
End
Then I add two new columns based on the dual information (which is of course 36 for all constraints), and the new problem becomes:
\Problem name: ilog.cplex
Minimize
obj: 0 IloX0 + 0 IloX1 + 0 IloX2 + 0 IloX3 + 0 IloX4 + 0 IloX5 + 0 IloX6
+ 0 IloX7 + 0 IloX8 + 0 IloX9 + 0 IloX10 + 0 IloX11 + 0 IloX12 + 0 IloX13
+ 0 IloX14 + 0 IloX15 + 0 IloX16 + 0 IloX17 + 0 IloX18 + 0 IloX19
+ 36 IloX20 + 36 IloX21 + 36 IloX22 + 36 IloX23 + 36 IloX24 + 36 IloX25
+ 36 IloX26 + 36 IloX27 + 36 IloX28 + 36 IloX29 + 36 IloX30 + 36 IloX31
+ 36 IloX32 + 36 IloX33 + 36 IloX34 + 36 IloX35 + 36 IloX36 + 36 IloX37
+ 36 IloX38 + 36 IloX39 + 36 IloX40 + 36 IloX41 + 36 IloX42 + 36 IloX43
+ 36 IloX44 + 36 IloX45 + 36 IloX46 + 36 IloX47 + 36 IloX48 + 36 IloX49
+ 36 IloX50 + 36 IloX51 + 36 IloX52 + 36 IloX53 + 36 IloX54 + 36 IloX55
+ 36 IloX56 + 36 IloX57 + 36 IloX58 + 36 IloX59 + 36 IloX60 + 36 IloX61
+ 36 IloX62 + 36 IloX63 + 36 IloX64 + 36 IloX65 + 36 IloX66 + 36 IloX67
+ 36 IloX68 + 36 IloX69 + 36 IloX70 + 36 IloX71 + 36 IloX72 + 36 IloX73
+ 36 IloX74 + 36 IloX75 + 36 IloX76 + 36 IloX77 + 36 IloX78 + 36 IloX79
+ 36 IloX80 + 36 IloX81 + 239 IloX82 + 240 IloX83
Subject To
IloC0: IloX20 + IloX82 >= 1
IloC1: IloX21 >= 1
IloC2: IloX22 + IloX82 >= 1
IloC3: IloX23 >= 1
IloC4: IloX24 + IloX82 >= 1
IloC5: IloX25 >= 1
IloC6: IloX26 + IloX82 >= 1
IloC7: IloX27 >= 1
IloC8: IloX28 >= 1
IloC9: IloX29 >= 1
IloC10: IloX30 >= 1
IloC11: IloX31 >= 1
IloC12: IloX32 >= 1
IloC13: IloX33 >= 1
IloC14: IloX34 >= 1
IloC15: IloX35 >= 1
IloC16: IloX36 + IloX82 >= 1
IloC17: IloX37 >= 1
IloC18: IloX38 >= 1
IloC19: IloX39 >= 1
IloC20: IloX40 + IloX82 >= 1
IloC21: IloX41 >= 1
IloC22: IloX42 >= 1
IloC23: IloX43 >= 1
IloC24: IloX44 + IloX82 >= 1
IloC25: IloX45 >= 1
IloC26: IloX46 >= 1
IloC27: IloX47 + IloX82 >= 1
IloC28: IloX48 >= 1
IloC29: IloX49 >= 1
IloC30: IloX50 >= 1
IloC31: IloX51 >= 1
IloC32: IloX52 + IloX83 >= 1
IloC33: IloX53 >= 1
IloC34: IloX54 + IloX83 >= 1
IloC35: IloX55 >= 1
IloC36: IloX56 + IloX83 >= 1
IloC37: IloX57 >= 1
IloC38: IloX58 + IloX83 >= 1
IloC39: IloX59 >= 1
IloC40: IloX60 >= 1
IloC41: IloX61 >= 1
IloC42: IloX62 >= 1
IloC43: IloX63 >= 1
IloC44: IloX64 >= 1
IloC45: IloX65 >= 1
IloC46: IloX66 >= 1
IloC47: IloX67 >= 1
IloC48: IloX68 + IloX83 >= 1
IloC49: IloX69 >= 1
IloC50: IloX70 >= 1
IloC51: IloX71 >= 1
IloC52: IloX72 >= 1
IloC53: IloX73 + IloX83 >= 1
IloC54: IloX74 >= 1
IloC55: IloX75 >= 1
IloC56: IloX76 >= 1
IloC57: IloX77 + IloX83 >= 1
IloC58: IloX78 >= 1
IloC59: IloX79 >= 1
IloC60: IloX80 + IloX83 >= 1
IloC61: IloX81 >= 1
Bounds
0 <= IloX0 <= 2147483647
0 <= IloX1 <= 2147483647
0 <= IloX2 <= 2147483647
0 <= IloX3 <= 2147483647
0 <= IloX4 <= 2147483647
0 <= IloX5 <= 2147483647
0 <= IloX6 <= 2147483647
0 <= IloX7 <= 2147483647
0 <= IloX8 <= 2147483647
0 <= IloX9 <= 2147483647
0 <= IloX10 <= 2147483647
0 <= IloX11 <= 2147483647
0 <= IloX12 <= 2147483647
0 <= IloX13 <= 2147483647
0 <= IloX14 <= 2147483647
0 <= IloX15 <= 2147483647
0 <= IloX16 <= 2147483647
0 <= IloX17 <= 2147483647
0 <= IloX18 <= 2147483647
0 <= IloX19 <= 2147483647
0 <= IloX20 <= 5
0 <= IloX21 <= 5
0 <= IloX22 <= 5
0 <= IloX23 <= 5
0 <= IloX24 <= 5
0 <= IloX25 <= 5
0 <= IloX26 <= 5
0 <= IloX27 <= 5
0 <= IloX28 <= 5
0 <= IloX29 <= 5
0 <= IloX30 <= 5
0 <= IloX31 <= 5
0 <= IloX32 <= 5
0 <= IloX33 <= 5
0 <= IloX34 <= 5
0 <= IloX35 <= 5
0 <= IloX36 <= 5
0 <= IloX37 <= 5
0 <= IloX38 <= 5
0 <= IloX39 <= 5
0 <= IloX40 <= 5
0 <= IloX41 <= 5
0 <= IloX42 <= 5
0 <= IloX43 <= 5
0 <= IloX44 <= 5
0 <= IloX45 <= 5
0 <= IloX46 <= 5
0 <= IloX47 <= 5
0 <= IloX48 <= 5
0 <= IloX49 <= 5
0 <= IloX50 <= 5
0 <= IloX51 <= 5
0 <= IloX52 <= 5
0 <= IloX53 <= 5
0 <= IloX54 <= 5
0 <= IloX55 <= 5
0 <= IloX56 <= 5
0 <= IloX57 <= 5
0 <= IloX58 <= 5
0 <= IloX59 <= 5
0 <= IloX60 <= 5
0 <= IloX61 <= 5
0 <= IloX62 <= 5
0 <= IloX63 <= 5
0 <= IloX64 <= 5
0 <= IloX65 <= 5
0 <= IloX66 <= 5
0 <= IloX67 <= 5
0 <= IloX68 <= 5
0 <= IloX69 <= 5
0 <= IloX70 <= 5
0 <= IloX71 <= 5
0 <= IloX72 <= 5
0 <= IloX73 <= 5
0 <= IloX74 <= 5
0 <= IloX75 <= 5
0 <= IloX76 <= 5
0 <= IloX77 <= 5
0 <= IloX78 <= 5
0 <= IloX79 <= 5
0 <= IloX80 <= 5
0 <= IloX81 <= 5
0 <= IloX82 <= 5
0 <= IloX83 <= 5
End
However, only the dual variables belonging to constraints 0, 2, 32 and 34 change, while I would expect the dual information of constraints 4, 6, 16, 20, 24, 27, 36, 38, 48, 53, 57 and 60 to change. Is there anybody that can shed some light on this issue. I am using CPLEX 11.0, is this a know issue.
#CPLEXOptimizers#DecisionOptimization