diff --git a/AfterPreProcessing.txt b/AfterPreProcessing.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 b/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2
index 5e83e6ad70999dad48a0743cdcd6053bfa4fbf60..3cc3f53e32b69aab6b8d4061ee8c57d4edbe8940 100755
Binary files a/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 and b/bin/LagrangianRelaxation.linux.x86_64.gnu.opt.spx2 differ
diff --git a/dual.txt b/dual.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9a989c716c2ec17c0854e245ef7d5f14751b0810
--- /dev/null
+++ b/dual.txt
@@ -0,0 +1,876 @@
+objective value:                                    2
+t_x_{1}_{0}                                         1 	(obj:2)
+t_x_{2}_{0}                                         1 	(obj:0)
+t_x_{3}_{0}                                         1 	(obj:0)
+t_x_{4}_{0}                                         1 	(obj:0)
+t_x_{5}_{0}                                         1 	(obj:0)
+t_x_{6}_{0}                                         1 	(obj:0)
+dualbound = 2.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   15
+t_x_{1}_{0}                                         1 	(obj:5)
+t_x_{2}_{0}                                         1 	(obj:3)
+t_x_{3}_{0}                                         1 	(obj:4)
+t_x_{4}_{0}                                         1 	(obj:4)
+t_x_{5}_{0}                                         1 	(obj:4)
+t_x_{6}_{0}                                         1 	(obj:2)
+dualbound = 22.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   28
+t_x_{1}_{0}                                         1 	(obj:8)
+t_x_{2}_{0}                                         1 	(obj:6)
+t_x_{3}_{0}                                         1 	(obj:8)
+t_x_{4}_{0}                                         1 	(obj:8)
+t_x_{5}_{0}                                         1 	(obj:8)
+t_x_{6}_{0}                                         1 	(obj:4)
+dualbound = 42.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   41
+t_x_{1}_{0}                                         1 	(obj:11)
+t_x_{2}_{0}                                         1 	(obj:9)
+t_x_{3}_{0}                                         1 	(obj:12)
+t_x_{4}_{0}                                         1 	(obj:12)
+t_x_{5}_{0}                                         1 	(obj:12)
+t_x_{6}_{0}                                         1 	(obj:6)
+dualbound = 62.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   54
+t_x_{1}_{0}                                         1 	(obj:14)
+t_x_{2}_{0}                                         1 	(obj:12)
+t_x_{3}_{0}                                         1 	(obj:16)
+t_x_{4}_{0}                                         1 	(obj:16)
+t_x_{5}_{0}                                         1 	(obj:16)
+t_x_{6}_{0}                                         1 	(obj:8)
+dualbound = 82.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   67
+t_x_{1}_{0}                                         1 	(obj:17)
+t_x_{2}_{0}                                         1 	(obj:15)
+t_x_{3}_{0}                                         1 	(obj:20)
+t_x_{4}_{0}                                         1 	(obj:20)
+t_x_{5}_{0}                                         1 	(obj:20)
+t_x_{6}_{0}                                         1 	(obj:10)
+dualbound = 102.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   80
+t_x_{1}_{0}                                         1 	(obj:20)
+t_x_{2}_{0}                                         1 	(obj:18)
+t_x_{3}_{0}                                         1 	(obj:24)
+t_x_{4}_{0}                                         1 	(obj:24)
+t_x_{5}_{0}                                         1 	(obj:24)
+t_x_{6}_{0}                                         1 	(obj:12)
+dualbound = 122.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                   93
+t_x_{1}_{0}                                         1 	(obj:23)
+t_x_{2}_{0}                                         1 	(obj:21)
+t_x_{3}_{0}                                         1 	(obj:28)
+t_x_{4}_{0}                                         1 	(obj:28)
+t_x_{5}_{0}                                         1 	(obj:28)
+t_x_{6}_{0}                                         1 	(obj:14)
+dualbound = 142.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  100
+t_x_{1}_{0}                                         1 	(obj:26)
+t_x_{2}_{0}                                         1 	(obj:24)
+t_x_{3}_{15}                                        1 	(obj:30)
+t_x_{4}_{15}                                        1 	(obj:30)
+t_x_{5}_{15}                                        1 	(obj:30)
+t_x_{6}_{0}                                         1 	(obj:16)
+dualbound = 156.000000, lowerbound=46.000000, norm of subgrad 5.830952	objective value:                                  104
+t_x_{1}_{0}                                         1 	(obj:27)
+t_x_{2}_{0}                                         1 	(obj:25)
+t_x_{3}_{0}                                         1 	(obj:32)
+t_x_{4}_{0}                                         1 	(obj:32)
+t_x_{5}_{0}                                         1 	(obj:32)
+t_x_{6}_{0}                                         1 	(obj:16)
+dualbound = 164.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  102
+t_x_{1}_{0}                                         1 	(obj:30)
+t_x_{2}_{0}                                         1 	(obj:28)
+t_x_{3}_{15}                                        1 	(obj:30)
+t_x_{4}_{15}                                        1 	(obj:30)
+t_x_{5}_{15}                                        1 	(obj:30)
+t_x_{6}_{0}                                         1 	(obj:18)
+dualbound = 166.000000, lowerbound=46.000000, norm of subgrad 5.830952	objective value:                                  106
+t_x_{1}_{0}                                         1 	(obj:31)
+t_x_{2}_{0}                                         1 	(obj:29)
+t_x_{3}_{15}                                        1 	(obj:32)
+t_x_{4}_{15}                                        1 	(obj:32)
+t_x_{5}_{15}                                        1 	(obj:32)
+t_x_{6}_{0}                                         1 	(obj:18)
+dualbound = 174.000000, lowerbound=46.000000, norm of subgrad 5.830952	objective value:                                  110
+t_x_{1}_{0}                                         1 	(obj:32)
+t_x_{2}_{0}                                         1 	(obj:30)
+t_x_{3}_{15}                                        1 	(obj:34)
+t_x_{4}_{15}                                        1 	(obj:34)
+t_x_{5}_{15}                                        1 	(obj:34)
+t_x_{6}_{0}                                         1 	(obj:18)
+dualbound = 182.000000, lowerbound=46.000000, norm of subgrad 5.830952	objective value:                                  114
+t_x_{1}_{0}                                         1 	(obj:33)
+t_x_{2}_{0}                                         1 	(obj:31)
+t_x_{3}_{0}                                         1 	(obj:36)
+t_x_{4}_{0}                                         1 	(obj:36)
+t_x_{5}_{0}                                         1 	(obj:36)
+t_x_{6}_{0}                                         1 	(obj:18)
+dualbound = 190.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  106
+t_x_{1}_{15}                                        1 	(obj:32)
+t_x_{2}_{15}                                        1 	(obj:32)
+t_x_{3}_{15}                                        1 	(obj:34)
+t_x_{4}_{15}                                        1 	(obj:34)
+t_x_{5}_{15}                                        1 	(obj:34)
+t_x_{6}_{0}                                         1 	(obj:20)
+dualbound = 186.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  115
+t_x_{1}_{0}                                         1 	(obj:34)
+t_x_{2}_{0}                                         1 	(obj:32)
+t_x_{3}_{15}                                        1 	(obj:38)
+t_x_{4}_{15}                                        1 	(obj:37)
+t_x_{5}_{15}                                        1 	(obj:37)
+t_x_{6}_{0}                                         1 	(obj:20)
+dualbound = 198.000000, lowerbound=46.000000, norm of subgrad 5.830952	objective value:                                  118
+t_x_{1}_{0}                                         1 	(obj:35)
+t_x_{2}_{0}                                         1 	(obj:33)
+t_x_{3}_{0}                                         1 	(obj:38)
+t_x_{4}_{0}                                         1 	(obj:39)
+t_x_{5}_{0}                                         1 	(obj:39)
+t_x_{6}_{0}                                         1 	(obj:20)
+dualbound = 204.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  112
+t_x_{1}_{15}                                        1 	(obj:34)
+t_x_{2}_{15}                                        1 	(obj:34)
+t_x_{3}_{15}                                        1 	(obj:38)
+t_x_{4}_{15}                                        1 	(obj:37)
+t_x_{5}_{15}                                        1 	(obj:37)
+t_x_{6}_{0}                                         1 	(obj:22)
+dualbound = 202.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  119
+t_x_{1}_{0}                                         1 	(obj:36)
+t_x_{2}_{0}                                         1 	(obj:34)
+t_x_{3}_{0}                                         1 	(obj:40)
+t_x_{4}_{15}                                        1 	(obj:40)
+t_x_{5}_{15}                                        1 	(obj:40)
+t_x_{6}_{0}                                         1 	(obj:22)
+dualbound = 212.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  122
+t_x_{1}_{15}                                        1 	(obj:36)
+t_x_{2}_{15}                                        1 	(obj:36)
+t_x_{3}_{15}                                        1 	(obj:42)
+t_x_{4}_{15}                                        1 	(obj:41)
+t_x_{5}_{15}                                        1 	(obj:41)
+t_x_{6}_{0}                                         1 	(obj:22)
+dualbound = 218.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  117
+t_x_{1}_{0}                                         1 	(obj:36)
+t_x_{2}_{0}                                         1 	(obj:34)
+t_x_{3}_{0}                                         1 	(obj:40)
+t_x_{4}_{0}                                         1 	(obj:42)
+t_x_{5}_{0}                                         1 	(obj:42)
+t_x_{6}_{0}                                         1 	(obj:22)
+dualbound = 216.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  124
+t_x_{1}_{15}                                        1 	(obj:37)
+t_x_{2}_{15}                                        1 	(obj:37)
+t_x_{3}_{15}                                        1 	(obj:44)
+t_x_{4}_{15}                                        1 	(obj:42)
+t_x_{5}_{15}                                        1 	(obj:42)
+t_x_{6}_{0}                                         1 	(obj:24)
+dualbound = 226.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  123
+t_x_{1}_{0}                                         1 	(obj:37)
+t_x_{2}_{0}                                         1 	(obj:35)
+t_x_{3}_{0}                                         1 	(obj:42)
+t_x_{4}_{0}                                         1 	(obj:45)
+t_x_{5}_{0}                                         1 	(obj:45)
+t_x_{6}_{0}                                         1 	(obj:24)
+dualbound = 228.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  126
+t_x_{1}_{15}                                        1 	(obj:38)
+t_x_{2}_{15}                                        1 	(obj:38)
+t_x_{3}_{15}                                        1 	(obj:46)
+t_x_{4}_{15}                                        1 	(obj:43)
+t_x_{5}_{15}                                        1 	(obj:43)
+t_x_{6}_{0}                                         1 	(obj:26)
+dualbound = 234.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  125
+t_x_{1}_{0}                                         1 	(obj:38)
+t_x_{2}_{0}                                         1 	(obj:36)
+t_x_{3}_{0}                                         1 	(obj:44)
+t_x_{4}_{15}                                        1 	(obj:46)
+t_x_{5}_{15}                                        1 	(obj:46)
+t_x_{6}_{0}                                         1 	(obj:26)
+dualbound = 236.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  130
+t_x_{1}_{0}                                         1 	(obj:40)
+t_x_{2}_{0}                                         1 	(obj:38)
+t_x_{3}_{0}                                         1 	(obj:46)
+t_x_{4}_{15}                                        1 	(obj:47)
+t_x_{5}_{15}                                        1 	(obj:47)
+t_x_{6}_{0}                                         1 	(obj:26)
+dualbound = 244.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  132
+t_x_{1}_{15}                                        1 	(obj:40)
+t_x_{2}_{0}                                         1 	(obj:40)
+t_x_{3}_{0}                                         1 	(obj:48)
+t_x_{4}_{15}                                        1 	(obj:48)
+t_x_{5}_{15}                                        1 	(obj:48)
+t_x_{6}_{0}                                         1 	(obj:26)
+dualbound = 250.000000, lowerbound=45.000000, norm of subgrad 5.656854	objective value:                                  134
+t_x_{1}_{15}                                        1 	(obj:41)
+t_x_{2}_{15}                                        1 	(obj:40)
+t_x_{3}_{0}                                         1 	(obj:49)
+t_x_{4}_{15}                                        1 	(obj:49)
+t_x_{5}_{0}                                         1 	(obj:50)
+t_x_{6}_{0}                                         1 	(obj:26)
+dualbound = 255.000000, lowerbound=45.000000, norm of subgrad 5.830952	objective value:                                  135
+t_x_{1}_{0}                                         1 	(obj:42)
+t_x_{2}_{0}                                         1 	(obj:40)
+t_x_{3}_{0}                                         1 	(obj:50)
+t_x_{4}_{15}                                        1 	(obj:50)
+t_x_{5}_{15}                                        1 	(obj:50)
+t_x_{6}_{0}                                         1 	(obj:27)
+dualbound = 259.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  136
+t_x_{1}_{15}                                        1 	(obj:41)
+t_x_{2}_{15}                                        1 	(obj:41)
+t_x_{3}_{15}                                        1 	(obj:52)
+t_x_{4}_{15}                                        1 	(obj:51)
+t_x_{5}_{15}                                        1 	(obj:51)
+t_x_{6}_{0}                                         1 	(obj:27)
+dualbound = 263.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  133
+t_x_{1}_{0}                                         1 	(obj:42)
+t_x_{2}_{0}                                         1 	(obj:40)
+t_x_{3}_{0}                                         1 	(obj:50)
+t_x_{4}_{0}                                         1 	(obj:52)
+t_x_{5}_{0}                                         1 	(obj:52)
+t_x_{6}_{0}                                         1 	(obj:27)
+dualbound = 263.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  138
+t_x_{1}_{15}                                        1 	(obj:42)
+t_x_{2}_{15}                                        1 	(obj:42)
+t_x_{3}_{15}                                        1 	(obj:54)
+t_x_{4}_{15}                                        1 	(obj:52)
+t_x_{5}_{15}                                        1 	(obj:52)
+t_x_{6}_{0}                                         1 	(obj:29)
+dualbound = 271.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  139
+t_x_{1}_{0}                                         1 	(obj:43)
+t_x_{2}_{0}                                         1 	(obj:41)
+t_x_{3}_{0}                                         1 	(obj:52)
+t_x_{4}_{0}                                         1 	(obj:55)
+t_x_{5}_{0}                                         1 	(obj:55)
+t_x_{6}_{0}                                         1 	(obj:29)
+dualbound = 275.000000, lowerbound=1.000000, norm of subgrad 6.782330	objective value:                                  140
+t_x_{1}_{15}                                        1 	(obj:43)
+t_x_{2}_{15}                                        1 	(obj:43)
+t_x_{3}_{15}                                        1 	(obj:56)
+t_x_{4}_{15}                                        1 	(obj:53)
+t_x_{5}_{15}                                        1 	(obj:53)
+t_x_{6}_{0}                                         1 	(obj:31)
+dualbound = 279.000000, lowerbound=75.000000, norm of subgrad 6.480741	objective value:                                  141
+t_x_{1}_{0}                                         1 	(obj:44)
+t_x_{2}_{0}                                         1 	(obj:42)
+t_x_{3}_{0}                                         1 	(obj:54)
+t_x_{4}_{15}                                        1 	(obj:56)
+t_x_{5}_{15}                                        1 	(obj:56)
+t_x_{6}_{0}                                         1 	(obj:31)
+dualbound = 283.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  145
+t_x_{1}_{15}                                        1 	(obj:45)
+t_x_{2}_{0}                                         1 	(obj:44)
+t_x_{3}_{0}                                         1 	(obj:56)
+t_x_{4}_{15}                                        1 	(obj:57)
+t_x_{5}_{15}                                        1 	(obj:57)
+t_x_{6}_{0}                                         1 	(obj:31)
+dualbound = 290.000000, lowerbound=45.000000, norm of subgrad 5.656854	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:46)
+t_x_{2}_{15}                                        1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:57)
+t_x_{4}_{15}                                        1 	(obj:58)
+t_x_{5}_{0}                                         1 	(obj:59)
+t_x_{6}_{0}                                         1 	(obj:31)
+dualbound = 296.000000, lowerbound=45.000000, norm of subgrad 5.830952	objective value:                                  147
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:44)
+t_x_{3}_{0}                                         1 	(obj:58)
+t_x_{4}_{15}                                        1 	(obj:59)
+t_x_{5}_{15}                                        1 	(obj:59)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 298.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  150
+t_x_{1}_{15}                                        1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:46)
+t_x_{3}_{0}                                         1 	(obj:60)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 304.000000, lowerbound=45.000000, norm of subgrad 5.656854	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	objective value:                                  148
+t_x_{1}_{15}                                        1 	(obj:47)
+t_x_{2}_{15}                                        1 	(obj:46)
+t_x_{3}_{30}                                        1 	(obj:60)
+t_x_{4}_{30}                                        1 	(obj:60)
+t_x_{5}_{30}                                        1 	(obj:60)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 305.000000, lowerbound=120.000000, norm of subgrad 5.830952	objective value:                                  146
+t_x_{1}_{0}                                         1 	(obj:46)
+t_x_{2}_{0}                                         1 	(obj:45)
+t_x_{3}_{0}                                         1 	(obj:59)
+t_x_{4}_{15}                                        1 	(obj:60)
+t_x_{5}_{15}                                        1 	(obj:61)
+t_x_{6}_{0}                                         1 	(obj:32)
+dualbound = 303.000000, lowerbound=31.000000, norm of subgrad 5.830952	
\ No newline at end of file
diff --git a/lowerbounds.txt b/lowerbounds.txt
new file mode 100644
index 0000000000000000000000000000000000000000..78a0c6f4ca97f15ca8e5bf2587b5a8520e4c78b4
--- /dev/null
+++ b/lowerbounds.txt
@@ -0,0 +1,126 @@
+125
+1.000000
+1.000000
+1.000000
+1.000000
+1.000000
+1.000000
+1.000000
+1.000000
+46.000000
+1.000000
+46.000000
+46.000000
+46.000000
+1.000000
+75.000000
+46.000000
+1.000000
+75.000000
+31.000000
+75.000000
+1.000000
+75.000000
+1.000000
+75.000000
+31.000000
+31.000000
+45.000000
+45.000000
+31.000000
+75.000000
+1.000000
+75.000000
+1.000000
+75.000000
+31.000000
+45.000000
+45.000000
+31.000000
+45.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
+120.000000
+31.000000
diff --git a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.d b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.d
index f2767b4fafec7abb9ccd65f26e293b7fce7194c0..b5055b69b0805bc1bb473bac76f9ea1e2d6da137 100644
--- a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.d
+++ b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.d
@@ -86,4 +86,4 @@ obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o: src/probdata_lagr.cpp \
  ../../src/scip/scip_solve.h ../../src/scip/scip_solvingstats.h \
  ../../src/scip/scip_table.h ../../src/scip/scip_timing.h \
  ../../src/scip/scip_tree.h ../../src/scip/scip_validation.h \
- ../../src/scip/scip_var.h src/vardata_lagr.h
+ ../../src/scip/scip_var.h src/vardata_lagr.h src/relax_lagr.h
diff --git a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o
index bb713b419cb8f26e58ee6caebd6158c5da4e9b56..d8f8b75585f6cfe29fcadf2e41b9aa8a9dfcaebf 100644
Binary files a/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o and b/obj/static/O.linux.x86_64.gnu.opt/probdata_lagr.o differ
diff --git a/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o b/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o
index de698773739367e637abb7408e08ff3ad7ec3c81..3efb4b2450cf7e55c1545e4712563848fc3259dd 100644
Binary files a/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o and b/obj/static/O.linux.x86_64.gnu.opt/relax_lagr.o differ
diff --git a/sol.txt b/sol.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cec5f6155c2fca5b615bd14dda24cea8b5ca368a
--- /dev/null
+++ b/sol.txt
@@ -0,0 +1,251 @@
+number of solutions 1, first iteration 	 bound=2.000000, 	 objsol=2.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=15.000000, 	 objsol=15.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=28.000000, 	 objsol=28.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=41.000000, 	 objsol=41.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=54.000000, 	 objsol=54.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=67.000000, 	 objsol=67.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=80.000000, 	 objsol=80.000000 
+lowerbound = 1.000000 
+ number of solutions 1, first iteration 	 bound=93.000000, 	 objsol=93.000000 
+lowerbound = 1.000000 
+ number of solutions 2, first iteration 	 bound=100.000000, 	 objsol=100.000000 
+lowerbound = 46.000000 
+ number of solutions 2, first iteration 	 bound=104.000000, 	 objsol=104.000000 
+lowerbound = 1.000000 
+ number of solutions 2, first iteration 	 bound=102.000000, 	 objsol=102.000000 
+lowerbound = 46.000000 
+ number of solutions 2, first iteration 	 bound=106.000000, 	 objsol=106.000000 
+lowerbound = 46.000000 
+ number of solutions 2, first iteration 	 bound=110.000000, 	 objsol=110.000000 
+lowerbound = 46.000000 
+ number of solutions 2, first iteration 	 bound=114.000000, 	 objsol=114.000000 
+lowerbound = 1.000000 
+ number of solutions 3, first iteration 	 bound=106.000000, 	 objsol=106.000000 
+lowerbound = 75.000000 
+ number of solutions 3, first iteration 	 bound=115.000000, 	 objsol=115.000000 
+lowerbound = 46.000000 
+ number of solutions 3, first iteration 	 bound=118.000000, 	 objsol=118.000000 
+lowerbound = 1.000000 
+ number of solutions 3, first iteration 	 bound=112.000000, 	 objsol=112.000000 
+lowerbound = 75.000000 
+ number of solutions 4, first iteration 	 bound=119.000000, 	 objsol=119.000000 
+lowerbound = 31.000000 
+ number of solutions 4, first iteration 	 bound=122.000000, 	 objsol=122.000000 
+lowerbound = 75.000000 
+ number of solutions 4, first iteration 	 bound=117.000000, 	 objsol=117.000000 
+lowerbound = 1.000000 
+ number of solutions 4, first iteration 	 bound=124.000000, 	 objsol=124.000000 
+lowerbound = 75.000000 
+ number of solutions 4, first iteration 	 bound=123.000000, 	 objsol=123.000000 
+lowerbound = 1.000000 
+ number of solutions 4, first iteration 	 bound=126.000000, 	 objsol=126.000000 
+lowerbound = 75.000000 
+ number of solutions 4, first iteration 	 bound=125.000000, 	 objsol=125.000000 
+lowerbound = 31.000000 
+ number of solutions 4, first iteration 	 bound=130.000000, 	 objsol=130.000000 
+lowerbound = 31.000000 
+ number of solutions 5, first iteration 	 bound=132.000000, 	 objsol=132.000000 
+lowerbound = 45.000000 
+ number of solutions 6, first iteration 	 bound=134.000000, 	 objsol=134.000000 
+lowerbound = 45.000000 
+ number of solutions 6, first iteration 	 bound=135.000000, 	 objsol=135.000000 
+lowerbound = 31.000000 
+ number of solutions 6, first iteration 	 bound=136.000000, 	 objsol=136.000000 
+lowerbound = 75.000000 
+ number of solutions 6, first iteration 	 bound=133.000000, 	 objsol=133.000000 
+lowerbound = 1.000000 
+ number of solutions 6, first iteration 	 bound=138.000000, 	 objsol=138.000000 
+lowerbound = 75.000000 
+ number of solutions 6, first iteration 	 bound=139.000000, 	 objsol=139.000000 
+lowerbound = 1.000000 
+ number of solutions 6, first iteration 	 bound=140.000000, 	 objsol=140.000000 
+lowerbound = 75.000000 
+ number of solutions 6, first iteration 	 bound=141.000000, 	 objsol=141.000000 
+lowerbound = 31.000000 
+ number of solutions 6, first iteration 	 bound=145.000000, 	 objsol=145.000000 
+lowerbound = 45.000000 
+ number of solutions 6, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 45.000000 
+ number of solutions 6, first iteration 	 bound=147.000000, 	 objsol=147.000000 
+lowerbound = 31.000000 
+ number of solutions 6, first iteration 	 bound=150.000000, 	 objsol=150.000000 
+lowerbound = 45.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ number of solutions 7, first iteration 	 bound=148.000000, 	 objsol=148.000000 
+lowerbound = 120.000000 
+ number of solutions 7, first iteration 	 bound=146.000000, 	 objsol=146.000000 
+lowerbound = 31.000000 
+ 
\ No newline at end of file
diff --git a/src/probdata_lagr.cpp b/src/probdata_lagr.cpp
index cf583765177aeb2f75e35a22e57e68414821c919..32eab2dd2583f967608cff79af88e0331b523064 100644
--- a/src/probdata_lagr.cpp
+++ b/src/probdata_lagr.cpp
@@ -6,6 +6,7 @@
 #include <assert.h>
 #include <stdlib.h>
 #include <string.h>
+#include "relax_lagr.h"
 /*Using ProbData as a memory location for the constraints*/
 struct SCIP_ProbData
 {
@@ -14,11 +15,14 @@ struct SCIP_ProbData
    int*                 varids;                      /**<Ids for the variables found in the slot constraint*/
    int                  nSlotConss;                   // number of slot constraints.
    int                  nStartConss;
-   SCIP_Real* upperbound;
+   SCIP_Real*           upperbound;
    int                  nbadconss;
    int                  ngoodconss;
    int*                 badconss;
    int*                 goodconss;
+   int                  allnconsvars;
+   int*                 listnconsvars;
+   int*                 listconsvarids;
 
 };
 
@@ -28,6 +32,18 @@ SCIP_ProbData* probdata
     return probdata->varids;
  }
 
+int* SCIPlistnconsvars(
+SCIP_ProbData* probdata
+){
+    return probdata->listnconsvars;
+ }
+
+int* SCIPlistconsvarids(
+SCIP_ProbData* probdata
+){
+    return probdata->listconsvarids;
+ }
+
 SCIP_CONS** SCIPgetSlotConss(
 SCIP_ProbData* probdata
 ){
@@ -40,6 +56,12 @@ SCIP_ProbData* probdata
     return probdata->nSlotConss;
  }
 
+int SCIPgetallnconsvars(
+SCIP_ProbData* probdata
+){
+       return probdata->allnconsvars;
+   }
+
 SCIP_RETCODE GetNGoodandNbad(
    SCIP* scip,
    int* nbad,
@@ -138,43 +160,176 @@ SCIP_RETCODE probdataFree(
 /*We will create the probdata to have the slot constraints and the variables they hold withn them*/
 
 SCIP_RETCODE SCIPcreateprobdata
-(   SCIP*                  scip,
-    SCIP_ProbData**        probdata
+(   SCIP*                  relaxscip,
+    SCIP_ProbData**        probdata,
+    SCIP_CONS**            conss,
+    SCIP_VAR**             vars,
+    SCIP_VAR***            varbuffers,  
+    int**                   badconss
 )
 {
-   SCIP_CONS** conss = SCIPgetConss(scip);
-   int nconss = SCIPgetNConss(scip);
+   int nconss = SCIPgetNConss(relaxscip);
+   int nvars = SCIPgetNVars(relaxscip);
    int nSlotConss = 0;
-
+   int id =0;
    SCIP_Bool success;
    for (int t=0; t<nconss; t++)                             /* (3) */
    {
-
       SCIP_CONS* cons = conss[t];
-      if(SCIPconsGetLhs(scip,cons,&success)==-SCIPinfinity(scip))                        /*<We get the slot constraints based on the inquality*/
+      if(SCIPconsGetLhs(relaxscip,cons,&success)==-SCIPinfinity(relaxscip))                        /*<We get the slot constraints based on the inquality*/
       {
-         // printf("%s)",SCIPconsGetName(cons));
          ++nSlotConss;  
       }
-      //* To make sure that there is no misarrangmenets, we make sure that the slot and start constraints are clearly separated*//
-      // else if(SCIPconsGetLhs(scip,cons,&success)==SCIPinfinity(scip))
-      // {
-      //    for (int i = t; i < nconss; i++)
-      //    {
-      //       SCIP_CONS* nextcons = conss[i+1];
-      //       if (SCIPconsGetLhs(scip,nextcons,&success)==-SCIPinfinity(scip))
-      //       {
-      //          printf("oops");
-      //          SCIPerrorMessage("\n********\tLagrangian Relaxation CAN'T BE USED!\t********* \n The problem has mixed it's inequality and equality(bad and good) constraints. Please rearrange with first bad then good\n");
-      //          SCIPABORT();
-      //          break;
-      //       }
-            
-      //    }
-      // } 
    }
-   SCIP_CALL(SCIPallocMemory(scip,probdata));
+   printf("%d nslot conss",nSlotConss);
+
+   int allnconsvars=0;
+   int nconsvars=0;
+   int counter = 0; 
+   int maxnconsvars = 0;
+
+
+   SCIP_CALL(SCIPallocBufferArray(relaxscip, badconss, nSlotConss));         //the badconss array will contain the row number of the bad conss  
+
+   /*
+      we first get the row numbers of the bad conss, and save to the array: badconss.
+   */
+   for(int r = 0; r<nconss; ++r)
+   {
+      SCIP_CONS* cons = conss[r];
+      
+      if(SCIPconsGetLhs(relaxscip,cons,&success)==-SCIPinfinity(relaxscip))                        /*<We get the slot constraints based on the inquality*/
+      {
+         (*badconss)[counter]=r;
+         SCIP_CALL(SCIPgetConsNVars(relaxscip,cons,&nconsvars,&success));
+         counter++;
+         if(maxnconsvars<nconsvars){maxnconsvars=nconsvars;}
+         allnconsvars+=nconsvars;
+      }
+   }
+
+   /*
+      Our first objective is to create an array, containing the non-zero variables 
+      found in each bad conss. But instead of listing them in multiple rows, we list them just in one. 
+      for example: slot1 have vars[0] and vars[10] non-zero and slot2 has vars[1] and vars[11]. 
+      listconsvarids = {0,10,1,11, ...}
+   */
+   int* listconsvarids;   //examples {0,10,1,11,2,12,...} we use the 
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&listconsvarids,allnconsvars));
+   
+   /*
+      we save the number of non-zero variables in bad constraint has.
+   */
+   int* listnconsvars;  //example {2,2,2,3,3,3}
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&listnconsvars,nSlotConss));
+   
+   /*to not allocate buffer array over and over again, we create one, with
+   size = maxnconsvars. and then we intialize it with the first few variables from vars. 
+   */
+   SCIP_CALL(SCIPallocBufferArray(relaxscip, varbuffers, maxnconsvars)); 
+   for (int v = 0; v < maxnconsvars; v++)
+   {
+      (*varbuffers)[v] =vars[v];
+   }
+
+   
+   counter=0;
+   for (int r = 0; r < nSlotConss; ++r)
+   {
+      nconsvars=0;
+      id = (*badconss)[r];
+      SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+
+      // printf("%s \t",SCIPconsGetName(cons));
+      SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &success)); 
+      SCIP_CALL(SCIPgetConsVars(relaxscip, cons, (*varbuffers), nconsvars, &success));
+      if (!success){
+      abort(); }
+      listnconsvars[r] = nconsvars;
+      for (int j = 0; j < nconsvars; ++j)                                            /* (8) */
+      {
+         SCIP_VAR* varx = (*varbuffers)[j];
+         int varbufindex = SCIPvarGetIndex(varx);
+         assert(varbufindex != NULL);
+         listconsvarids[counter]=varbufindex;
+         counter++;
+      }
+   }
+
+   // counter=0;
+   // for(int r=0; r<nSlotConss;++r)
+   // {
+   //    for(int s=counter;s<(counter+listnconsvars[r]);++s)
+   //    {
+   //       printf("%s->",SCIPvarGetName(vars[listconsvarids[s]]));
+   //    }
+   //    printf("\n");
+   //    counter += listnconsvars[r];
+   //    // printf("%d\n->",counter);
+   // }
+   int* listvarswconsid;
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&listvarswconsid,allnconsvars));
+
+   //* use the following to create an alternative way of varids*//
+   // int* listvarncons;
+   // SCIP_CALL(SCIPallocBufferArray(relaxscip,&listvarncons,nvars));
+
+   // int count;
+   // for(int v=0; v<nvars;++v)
+   // {
+   //    int varid = SCIPvarGetIndex(vars[v]);
+   //    counter=0;
+   //    count =0;
+      
+   //    // printf("%s->",SCIPvarGetName(vars[v]));
+   //    for(int r=0; r<nSlotConss;++r)
+   //    {
+         
+   //       id = (*badconss)[r];
+   //       SCIP_CONS* cons = SCIPgetConss(relaxscip)[id]; 
+   //       // printf("%s \t",SCIPconsGetName(cons));
+   //       for(int s=counter;s<(counter+listnconsvars[r]);++s)
+   //       {
+   //          // printf("(%d)",s);
+   //          if(varid==listconsvarids[s])
+   //          {
+   //             listvarswconsid[s]=id;
+   //             count++;
+   //             // printf("%s->",SCIPconsGetName(conss[listvarswconsid[s]]));
+   //          }
+   //       }
+   //       counter += listnconsvars[r];
+   //       // printf("%d\n->",counter);
+   //    }
+   //    listvarncons[v]=count;
+   //    // printf("\n");
+   // }
+   
+
+
+   // counter=0;
+   // for(int v=0; v<nvars;++v)
+   // {
+   //    SCIP_VAR* var = vars[v];
+   //    printf("%s,%d",SCIPvarGetName(var),listvarncons[v]);
+   //    //next step is a creation of an array that will tell in how many bad constraints a variable is found in. 
+   //    for(int s=counter;s<(counter+listvarncons[v]);++s)
+   //    {
+   //       // printf("%s->",SCIPconsGetName(conss[listconsvarids[s]]));
+   //       printf("%s,",SCIPconsGetName(conss[listconsvarids[s]]));
+   //    }
+   //    printf("\n");
+   //    counter += listvarncons[v];
+   // //    // printf("%d\n->",counter);
+   // }
+
+
+
+   SCIP_CALL(SCIPallocMemory(relaxscip,probdata));
    (*probdata)->nSlotConss = nSlotConss;
+   (*probdata)->allnconsvars= allnconsvars;  //sum of all nconsvars;
+   (*probdata)->listnconsvars = listnconsvars;
+   (*probdata)->listconsvarids = listconsvarids;
    return SCIP_OKAY;
 }
 
@@ -269,7 +424,7 @@ SCIP_Real SCIPgetSubgradients(
    SCIP_Bool success;
    int nconsvars; 
    SCIP_VAR** varbuffer;
-   FILE* filos;
+
    // SCIP_SOL* bestsol = SCIPgetBestSol(relaxscip);
 
    // SCIP_CALL(SCIPprintSol(relaxscip,bestsol,filos,FALSE));
@@ -334,8 +489,6 @@ SCIP_RETCODE SCIPsolveiteration(SCIP* scip,int nSlotConss,SCIP_Real** subgradien
    int nvars = SCIPgetNVars(scip);
    // SCIP_Real C= 2;
    
-   FILE* file;
-   
    SCIP_CALL( SCIPcreate(&lagrscip));
    SCIP_Bool valid=FALSE;
    // SCIP_CALL( SCIPhashmapCreate(&varmap, SCIPblkmem(lagrscip), nvars) );
@@ -357,7 +510,6 @@ SCIP_RETCODE SCIPsolveiteration(SCIP* scip,int nSlotConss,SCIP_Real** subgradien
    
    /*get the best solution*/
    SCIP_SOL* bestsol ;
-   SCIP_SOL** sols;
    SCIP_Real* solvals;
    SCIP_CALL(SCIPallocBufferArray(lagrscip,&solvals,nvars+1));
 
@@ -375,7 +527,6 @@ SCIP_RETCODE SCIPsolveiteration(SCIP* scip,int nSlotConss,SCIP_Real** subgradien
    //prinf("\n");
    for (int v = 0; v<nvars-1; ++v)
    {
-      SCIP_VAR* var = SCIPgetVars(lagrscip)[v];
       if( solvals[v] == 1 && solvals[v+1] == 1)
       {
          solvals[v] = 0;   
@@ -387,7 +538,6 @@ SCIP_RETCODE SCIPsolveiteration(SCIP* scip,int nSlotConss,SCIP_Real** subgradien
    }
 
    /*to get a better upperbound*/
-   SCIP_Real solobj;
    // SCIPgetFeasUpperbound(scip,&secondsolvals,&upperbound, &solobj, niter);
    
    /*if the obj value in this iteration is bette(in our case, higher), than the previous one, save the solution array and also it's obj value to the bestsolvals*/
@@ -490,3 +640,76 @@ SCIP_RETCODE SCIPgetFeasUpperbound(SCIP* scip, SCIP_Real** solvals, SCIP_Real**
    return SCIP_OKAY;
 }
 
+SCIP_RETCODE scipgetsolutions(SCIP* scip, SCIP_VAR** vars, SCIP_Real** solvals, SCIP_Real* relaxval, SCIP_Real* dualmultipliers, SCIP_Real sumofduals,SCIP_SOL** bestsol)
+{
+   double sum;
+   FILE* varobj;
+   varobj=fopen("varobj.txt","wr");
+   FILE* problemstate;
+   problemstate = fopen("problemstate.txt","w+"); 
+   FILE* solutions;
+   solutions = fopen("solutions2.txt","w+");
+
+   SCIP_VARDATA* vardata;
+
+   int nvars = SCIPgetNVars(scip);
+   for(int v=0;v<nvars;v++)
+   {
+      SCIP_VAR* var = vars[v];
+      sum =SCIPvarGetObj(var);
+      
+      vardata=SCIPvarGetData(var);
+      int* varids = SCIPvardataGetvarids(vardata); 
+      int NVarInBadConss = SCIPvardataGetNVarInBadConss(vardata);
+
+      for(int t=0;t<NVarInBadConss;t++)
+      {
+         sum += dualmultipliers[varids[t]];
+         fprintf(varobj,"{%d, %f, %f\t",varids[t], dualmultipliers[varids[t]],sum);
+      }
+
+      
+      // findmin += sum*solvals[v];
+      // fprintf(varobj, "solval %f, coefficient %f, sum %f", solvals[v],sum, findmin);
+      fprintf(varobj,"}\n\n");
+      SCIP_CALL(SCIPaddVarObj(scip,var,sum));
+      // add = weights[v]+sum;
+      
+   }
+      
+   // SCIPinfoMessage(scip, TimeCollector, "\n finished changing the variable's weight after (sec) : %f\n", SCIPgetClockTime(scip, varslottime));
+   
+   SCIP_CALL(SCIPaddOrigObjoffset(scip,-1*sumofduals));
+   SCIP_CALL(SCIPprintOrigProblem(scip, problemstate, "lp", FALSE));
+   SCIPsetMessagehdlrQuiet(scip, TRUE);
+   // fclose(AfterPreProcessing);
+
+   SCIP_CALL( SCIPtransformProb(scip) );
+   SCIP_CALL( SCIPsolve(scip) );
+   *relaxval = SCIPgetPrimalbound(scip);
+   SCIPdebugMessage("relaxation bound = %e status = %d\n", *relaxval, SCIPgetStatus(scip));
+   /*get the best solution*/   
+   *bestsol = SCIPgetBestSol(scip) ;
+   SCIP_CALL(SCIPallocBufferArray(scip,solvals,nvars+1)); 
+
+   /*text output*/
+   fprintf(solutions,"first iteration \t bound=%f, \t objsol=%f \n",SCIPgetPrimalbound(scip),*relaxval);
+   SCIP_CALL(SCIPprintBestSol(scip,solutions,FALSE));
+
+   /*store the solution in solvals so we can later export it to subgradient function*/
+   SCIPgetSolVals(scip,*bestsol,nvars,vars,*solvals);
+   fclose(varobj);
+   fclose(solutions);
+   fclose(problemstate);
+}
+
+SCIP_Real getnorm(SCIP_Real* array, int sizeofarray, SCIP_Real stepsize)
+{
+   SCIP_Real norm;
+   for(int r=0; r<sizeofarray;++r)
+   {
+      norm += array[r]*array[r];
+   }
+   norm=sqrt(norm);
+   return norm;   
+}
\ No newline at end of file
diff --git a/src/probdata_lagr.h b/src/probdata_lagr.h
index 11deabefff3a7d25f1cd397d77b4efd14e04f51f..de1c397f937960df4597e4e641191138c21fb5b0 100644
--- a/src/probdata_lagr.h
+++ b/src/probdata_lagr.h
@@ -16,10 +16,17 @@
 /*classifying and storing the slot and start constraints in PROBDATA
 create probdata*/
 SCIP_RETCODE SCIPcreateprobdata(
-    SCIP* scip,
-    SCIP_ProbData** probdata
-    );
+    SCIP*                  scip,
+    SCIP_ProbData**        probdata,
+    SCIP_CONS**            conss,
+    SCIP_VAR**            vars,
+    SCIP_VAR***            varbuffers,
+    int**                   badconss
+);
 
+int SCIPgetallnconsvars(
+SCIP_ProbData* probdata
+    );
 SCIP_RETCODE GetNGoodandNbad(
    SCIP* scip,
    int* nbad,
@@ -32,12 +39,30 @@ SCIP_RETCODE GetNGoodandNbad(
 int* SCIPconsGetvarids(
     SCIP_ProbData* probdata
     );
+int SCIPgetallmaxnconsvars(
+SCIP_ProbData* probdata
+);
 
+int* SCIPlistnconsvars(
+SCIP_ProbData* probdata
+);
+
+SCIP_Real getnorm(SCIP_Real* array, int sizeofarray, SCIP_Real stepsize);
+
+int* SCIPlistconsvarids(
+SCIP_ProbData* probdata
+);
 
 SCIP_CONS** SCIPgetSlotConss(
 SCIP_ProbData* probdata
     );
-
+SCIP_RETCODE scipgetsolutions(
+    SCIP* scip, SCIP_VAR** vars,
+    SCIP_Real** solvals, 
+    SCIP_Real* relaxval, 
+    SCIP_Real* dualmultipliers, 
+    SCIP_Real sumofduals,
+    SCIP_SOL** bestsol);
 
 int SCIPgetNSlotConss(
 SCIP_ProbData* probdata
diff --git a/src/relax_lagr.cpp b/src/relax_lagr.cpp
index f7e1679b0fbbd4632329f993b0ffe0db023ae647..212e44c1c596f0358cdc9d7715d49888c6a75591 100644
--- a/src/relax_lagr.cpp
+++ b/src/relax_lagr.cpp
@@ -61,6 +61,7 @@ struct SCIP_RelaxData
 {
    SCIP_SOL* sol;         /**current solution(working solution)*/
    SCIP_VARDATA* vardata;
+   SCIP_CONSDATA* consdata;
    SCIP_Real* bestsolvals;
    SCIP_Real* feasiblesol;
    SCIP_Real* upperbound;
@@ -72,10 +73,10 @@ struct SCIP_VarData
    SCIP_CONS**                      VarConss;
    int                              nVarConss;
    SCIP_CONS**                      VarSlotConss;                   /**<contains all slot constraints containing the variable */
-   int                              nVarSlotConss;                 /**<number of slot constraints the variable is occuring in*/  
+   int                              NVarInBadConss;                 /**<number of slot constraints the variable is occuring in*/  
    SCIP_Real                        varquotient;
    int*                              consids;
-   int*                              varid;
+   int*                              varids;
 };
 
 
@@ -94,236 +95,400 @@ SCIP_DECL_RELAXFREE(relaxFreelagr)
 
 /** initialization method of relaxator (called after problem was transformed) */
 
-static
-SCIP_DECL_RELAXINIT(relaxInitlagr)
-{  /*lint --e{715}*/
-   printf("hellow\n");
+int SCIPvardataGetNVarInBadConss(
+	SCIP_VARDATA* vardata     /**< variable data */
+)
+ {
+    return vardata->NVarInBadConss;
+ }
 
-   using std::cout;
-   SCIP*                                  relaxscip;                   //a copy of the scip we can work on
-   SCIP_HASHMAP*                          varmap;                      //to map the variables from scip to relaxscip
-   SCIP_HASHMAP*                          consmap;                     //to map the constraints from scip to relaxscip
+int* SCIPvardataGetvarids(
+	SCIP_VARDATA* vardata     /**< variable data */
+)
+ {
+    return vardata->varids;
+ }
 
-   SCIP_VARDATA*                           vardata;                     //contains variable data, including in which constraints it's found
-   SCIP_PROBDATA*                          probdata;                    //contains constraint data, identify slot vs start conss, and also which variables it contains
-   SCIP_RELAXDATA*                         relaxdata;                   // not yet used, but can be part of the struct SCIP_RelaxData
 
-   SCIP_CLOCK*                             varslottime;                 //to help us record the time
 
-   FILE*                                   file;                        
+static
+SCIP_DECL_RELAXINIT(relaxInitlagr)
+{  /*lint --e{715}*/
    
-   SCIP_Bool                               success;
-   SCIP_Bool                               valid;
-
-   SCIP_SOL**                              sols;
-
-   relaxdata = SCIPrelaxGetData(relax);
-   SCIP_CALL(SCIPallocBlockMemory(scip , &relaxdata));
-   assert(relaxdata != NULL);
+   SCIP* relaxscip;
+   SCIP_HASHMAP* varmap;
+   SCIP_HASHMAP* consmap;
+   SCIP_CONS** conss;
+   SCIP_PROBDATA* probdata;
+   SCIP_VARDATA* vardata;
 
+   SCIP_Real relaxval;
+   SCIP_Bool valid;
+   int nconss;
+   int i;
+   int counter;
+   int id;
 
 
+   // *lowerbound = -SCIPinfinity(scip);
+   // *result = SCIP_DIDNOTRUN;
 
+   /* we can only run if none of the present constraints expect their variables to be binary or integer during transformation */
+   conss = SCIPgetConss(scip);
+   nconss = SCIPgetNConss(scip);
 
-   /*************************************************************************************************/
-   /*we start with creating our relaxed scip instance, where the variable and constraints are mapped*/
-   /*************************************************************************************************/
-   SCIP_CALL( SCIPcreate(&relaxscip));
-   valid=FALSE;
+   /* create the variable mapping hash map */
+   SCIP_CALL( SCIPcreate(&relaxscip) );
    SCIP_CALL( SCIPhashmapCreate(&varmap, SCIPblkmem(relaxscip), SCIPgetNVars(scip)) );
-   SCIP_CALL(SCIPcopy(scip,relaxscip,varmap,consmap,"relaxscip",FALSE,FALSE,FALSE,FALSE,&valid));
+   valid = FALSE;
+   SCIP_CALL( SCIPcopy(scip, relaxscip, varmap, consmap, "relaxscip", FALSE, FALSE, FALSE, FALSE, &valid) );
    
-   SCIP_VAR** origvars = SCIPgetVars(scip);
-   SCIP_VAR** vars = SCIPgetVars(relaxscip);
-   SCIP_CONS** conss = SCIPgetConss(relaxscip);
-   int nconss = SCIPgetNConss(relaxscip);
-   int nvars = SCIPgetNVars(relaxscip);
-   SCIP_Real upperbound = 0;
-   // printf("**************%f***********",SCIPgetNCountedFeasSubtrees(relaxscip));
-
-   SCIP_CALL( SCIPcreateClock(relaxscip, &varslottime) );                     //* start time counting*  
-   SCIP_CALL(SCIPstartClock(relaxscip,varslottime));
-
    /**************************************************************************************************************/
    /*First,                                                                                                      */
    //*the probdata: where we get to identify the bad constraint we want to formulate(in our case, the slot conss) */
-   //*the vardata: where we will get save the slot constraints on which the variable exists,                       */
-   /*--along with the quotient of the obj to the nVarSlotConss                                                    */
    /***************************************************************************************************************/
-                                     
-   SCIPcreateprobdata(relaxscip,&probdata);     //*will be used to identify the #of slot constraints 
-   printf("%d", SCIPgetNConss(relaxscip));
-   int nSlotConss = SCIPgetNSlotConss(probdata);
-   printf("%d", SCIPgetNSlotConss(probdata));
+   int nvars = SCIPgetNVars(relaxscip);
+   SCIP_VAR** vars = SCIPgetVars(relaxscip);
+   SCIP_VAR** varbuffers;
+   int* badconss;
+   
+   SCIPcreateprobdata(relaxscip,&probdata,SCIPgetConss(relaxscip),vars,&varbuffers,&badconss);     /*will be used to identify the # of slot(bad) constraints*/ 
+   int nSlotConss = SCIPgetNSlotConss(probdata);         //number of bad(slot) constraint
+   int allnconsvars = SCIPgetallnconsvars(probdata);    //sum of all nconsvars, used for creating later on an array to collect the list of varids in each row
+   int* listnconsvars = SCIPlistnconsvars(probdata);
+   int* listconsvarids = SCIPlistconsvarids(probdata);
+
+   /* we then create the vardata function for each variable, to see at which constraint the variable is found*/
+   FILE* TimeCollector;
+   TimeCollector = fopen("time.txt","w");
+   SCIP_CLOCK* varslottime;                 //to help us record the time
+   SCIP_CALL( SCIPcreateClock(relaxscip, &varslottime) );                     //* start time counting*  
+   SCIP_CALL(SCIPstartClock(relaxscip,varslottime)); 
+
+   // int nconsvars=0;
+   int* consids;
 
-   SCIP_Real* origobj;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&origobj,nvars));
+   SCIP_Real* weights;
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&weights,nvars));   
 
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&consids,nSlotConss));
 
    for (int v = 0; v < nvars; v++)
    {
       SCIP_VAR* var = vars[v];
-      origobj[v]= SCIPvarGetObj(var);
+      weights[v]=SCIPvarGetObj(var);
+   }
+
+   for (int v = 0; v < nvars; v++)
+   { 
+      int* varids;
+      int NVarInBadConss=0;
+      int nconsvars = 0;
+      SCIP_VAR* var = vars[v];
+
+      int varindex = SCIPvarGetIndex(var);                                    /* (2) */
+      assert(varindex!= NULL);
 
-      vardata=NULL;
-      SCIPvardataCreateLagrangian(relaxscip,vardata,&var,nSlotConss,v);        //*we create the vardata, containing the ids of the constraints containing the variable
-      vardata=SCIPvarGetData(var);  
-      if(upperbound<=SCIPvarGetObj(var))
+      // printf("%s****%d\n",SCIPvarGetName(var),varindex);
+      for (int r = 0; r < nSlotConss; ++r)
       {
-         upperbound = SCIPvarGetObj(var);
+         id = badconss[r];
+         SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+         // printf("%s \t",SCIPconsGetName(cons));
+         SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &valid)); 
+         SCIP_CALL(SCIPgetConsVars(relaxscip, cons, varbuffers, nconsvars, &valid));
+         if (!valid){
+         abort(); }
+
+         for (int j = 0; j < nconsvars; ++j)                                            /* (8) */
+         {
+            SCIP_VAR* varx = varbuffers[j];
+            int varbufindex = SCIPvarGetIndex(varx);
+            assert(varbufindex != NULL);
+            // printf("%s\t \t%d",SCIPvarGetName(varx),varbufindex);
+            
+            
+            /** if var[i] is in cons[c], write conspointer in VarConss and increase nVarConsscounter */
+            if (varindex == varbufindex)                                           /* (9) */
+            {
+               
+               // VarSlotConss[NVarInBadConss] = cons;
+               consids[NVarInBadConss]=id;
+               NVarInBadConss++;
+               // printf(" %s \t,",SCIPconsGetName(cons));
+            }
+         }
+      }
+
+      SCIP_CALL(SCIPallocBufferArray(relaxscip, &varids, NVarInBadConss));
+      for(int t=0;t<NVarInBadConss;t++)
+      {
+         varids[t]=consids[t];
+         // printf("%d \t",varids[t]);
       }
-   } 
-   upperbound = upperbound * (nconss - nSlotConss);
-   printf("%f",upperbound);  
-   // SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
-   // SCIPinfoMessage(relaxscip, NULL, "Solving Time (sec) : %6f\n", SCIPgetClockTime(relaxscip, varslottime));
 
+      // vardata=SCIPvarGetData(var);
+      SCIP_CALL(SCIPallocBlockMemory(scip , &vardata));     
+      SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(vardata->varids), varids, NVarInBadConss));
+      vardata->NVarInBadConss = NVarInBadConss;  /**copy nVarConss to VarData */
+      vardata->varids = varids;
+      // /**set the variable data to the variable*/
+      SCIPvarSetData(var,vardata);  
+   }
 
-   SCIP_SOL* bestsol ;
-   SCIP_Real* dualmultipliers;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&dualmultipliers,nSlotConss));   
-                                           
-   SCIP_Real sumofduals = 0;   
-   SCIP_Real stepsize = 0.0000;
-   SCIP_Real sqsum = 0;
-   SCIP_Real sqrtsum = 0;
-   SCIP_Real C = 2;
+   // SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
+   
 
+   FILE* AfterPreProcessing;
+   AfterPreProcessing = fopen("AfterPreProcessing.txt","w+");
 
-   SCIP_Real* subgradients;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&subgradients,nSlotConss));
+   // SCIP_CALL(SCIPprintOrigProblem(relaxscip, AfterPreProcessing, "lp", FALSE));
+
+   SCIPinfoMessage(relaxscip, TimeCollector, "\n row and column identified in (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+   for(int r=0;r<nSlotConss;r++)
+   {
+      id = badconss[r];
+      SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+      SCIP_CALL(SCIPdelCons(relaxscip,cons));
+   }
 
    /******************************************************************************************************************/
-   /*Next, we will do the initial iteration of finding the dual mulpliers of each slot conss, and their sum(dualsum) */ 
+   /*Next, we will do the initial iteration of finding the dual mulpliers of each slot conss, and their sum(dualsum) */
    /* In the end, we will subtract this sum from the objective of the function.                                      */
    /* It's initial, because while we would search for more dual multipliers to solve the Lagrangian relaxation       */
    /******************************************************************************************************************/
-  
+   SCIP_Real* dualmultipliers;
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&dualmultipliers,nSlotConss));
+   
+   SCIP_Real* subgradients;
+   SCIP_CALL(SCIPallocBufferArray(relaxscip,&subgradients,nSlotConss));
+   //initialize subgradients;
+   SCIP_Real stepsize = 1.00000;
+   SCIP_Real sumofduals=0;
    for ( int r = 0; r < nSlotConss; ++r)
    {
-            // printf("*******************%f\n",subgradients[r]);
-      SCIP_CONS* cons = conss[r]; 
-   
-      dualmultipliers[r]=SCIPconsGetMultiplier(relaxscip,&cons, 0,0,0,true,0);           //returns the minumum
+      // id = badconss[r];
+      // SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+      //if k=1 iteration//
       dualmultipliers[r] = 0;
       sumofduals+=dualmultipliers[r];                    //adds the negative of the minimum in each iteration
-      // printf("(%s,%f) \n",SCIPconsGetName(cons), dualmultipliers[r]);
-        
+      
    }
 
-   
-   int niters = 2250;
-   int stoppingiter=0;
-   
-   /**solvals is used for storing solutions in an iteration. where as bestsolvals will store the solution with the best objective value*/
-   SCIP_Real* solvals;
-   SCIP_Real* bestsolvals;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&solvals,nvars+1));
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&bestsolvals,nvars+1+niters));
 
-   bestsolvals[nvars] = -10000000000000000;
-   // printf("%f",bestsolvals[nvars+1]);
+
+   /*******************************************************************************************************/
+   /* The reformulation of the problem can be written as follows                                          */
+   //*>>>>>>>>>>>>>>>>>> min sum { (w[i]+sum{dual[j]})}x[i]-sum{dual[r]} <<<<<<<<<<<<                     */
+   /*where i is nvars, j is NVarInBadConss, and r is nSlotConss for our case *******************************/
+   /****************************************************************************************************************/
+   /* The following function will add the following to the obj(weight) of the variable,                            */
+   //*  the obj(weight) of var + the sum of the dualmultipliers of bad constraints which contains this variable    */
+   /****************************************************************************************************************/
+  
+ 
+   FILE* solutions;
+   solutions = fopen("sol.txt","wr");
+   FILE* dual;
+   dual= fopen("dual.txt","wr");
+   FILE* variableinfo; 
+   variableinfo = fopen("var.txt","wr");
+   FILE* subgrad;
+   subgrad = fopen("subgrads.txt","wr");
+   FILE* varobjects;
+   varobjects=fopen("varobjs.txt","wr");
+   FILE* lower;
+   lower=fopen("lowerbounds.txt","wr");
    
-   // SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
-   // SCIPinfoMessage(relaxscip, NULL, "Solving Time (sec) : %6f\n", SCIPgetClockTime(relaxscip, varslottime));
-    
-   /*add all the duals that are added onto the variabls under sumofaddonvars*/
-   SCIP_Real sumofaddonvars=0;
-   SCIP_Real percent;
-   SCIP_Real percent2;
-   int counter=0;
 
-   SCIP_Real sumofsqsubgrad=0;
+   int maxiter=125;
+   fprintf(lower,"%d\n",maxiter);
 
-   
-   stepsize; 
-   /*Now we can start with our interation to maximize the dualmultipliers while minimizing the reformulated SCIP instance*/
-   for(int k =  0; k < niters; ++k)
-   {  
-      stepsize = 0.1;
-      printf("%f\n\n",stepsize);
-      sumofaddonvars = 0;       
-      SCIP_CALL(SCIPfreeTransform(relaxscip));
-      /*******************************************************************************************************/
-      /* The reformulation of the problem can be written as follows                                          */
-      //*>>>>>>>>>>>>>>>>>> min sum { (w[i]+sum{dual[j]})}x[i]-sum{dual[r]} <<<<<<<<<<<<                     */
-      /*where i is nvars, j is nVarSlotConss, and r is nSlotConss for our case *******************************/
-      /*******************************************************************************************************/
-      SCIPvarchangeDuals(relaxscip,&vars,dualmultipliers,origobj);
+   for(int iter=1;iter<=maxiter;iter++)
+   {
+      
+      for(int v=0;v<nvars;v++)
+      {
+         SCIP_VAR* var = vars[v];
+         double sum =SCIPvarGetObj(var);
+         
+         vardata=SCIPvarGetData(var);
+         int* varids = SCIPvardataGetvarids(vardata); 
+         int NVarInBadConss = SCIPvardataGetNVarInBadConss(vardata);
+
+         // printf("\n");
+         for(int t=0;t<NVarInBadConss;t++)
+         {
+            // printf("sum = %f, varid %d, dual %f, ", sum, varids[t],dualmultipliers[varids[t]]);
+            sum += dualmultipliers[varids[t]];
+            // fprintf(varobjects,"{%d, %f, %f\t",varids[t], dualmultipliers[varids[t]],sum);
+         }
+         // fprintf(varobjects,"}\n\n");
+         SCIP_CALL(SCIPaddVarObj(relaxscip,var,sum));
+         // if(sum>weights[v]){printf("new weight %f",SCIPvarGetObj(var));}
+         
+      }
+      // printf("weight for v1 %f \t:= conss",solvals[1]);
+      // for(int s=0; s<listnconsvars[0];++s)
+      // {
+      //    int id = listconsvarids[s];
+      
+      //    printf("(%s, duals = %f) \t",SCIPconsGetName(SCIPgetConss(scip)[id]), dualmultipliers[id]);
+      // }
+      
+      SCIPinfoMessage(relaxscip, TimeCollector, "\n finished changing the variable's weight after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      
       SCIP_CALL(SCIPaddOrigObjoffset(relaxscip,-1*sumofduals));
-      // printf("*****************************upperbound*********************---> %f",SCIPgetUpperbound(relaxscip));
-      // SCIP_CALL(SCIPprintOrigProblem(relaxscip, file, "lp", FALSE));
+      // SCIP_CALL(SCIPprintOrigProblem(relaxscip, AfterPreProcessing, "lp", FALSE));
+      SCIPsetMessagehdlrQuiet(relaxscip, TRUE);
+      // fclose(AfterPreProcessing);
+
+      SCIP_CALL( SCIPtransformProb(relaxscip) );
+      SCIP_CALL( SCIPsolve(relaxscip) );
+      relaxval = SCIPgetPrimalbound(relaxscip);
+      // printf("\ndualbound %f, primalbound %f \n",SCIPgetDualbound(relaxscip),SCIPgetPrimalbound(relaxscip));
+      SCIPdebugMessage("relaxation bound = %e status = %d\n", relaxval, SCIPgetStatus(relaxscip));
+      /*get the best solution*/   
+      SCIP_SOL* bestsol = SCIPgetBestSol(relaxscip) ;
+      SCIP_SOL** sols = SCIPgetSols(relaxscip);
+      int nsols = SCIPgetNSols(relaxscip);
+
+      SCIP_Real* solvals;
+      SCIP_CALL(SCIPallocBufferArray(relaxscip,&solvals,nvars+1)); 
+   
+
+      /*text output*/
+      SCIPinfoMessage(relaxscip, TimeCollector, "\n first iteration: problem solved after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      fprintf(solutions,"number of solutions %d, first iteration \t bound=%f, \t objsol=%f \n",nsols, SCIPgetPrimalbound(relaxscip),relaxval);
+      // SCIP_CALL(SCIPprintBestSol(relaxscip,solutions,FALSE));
+
+      /*store the solution in solvals so we can later export it to subgradient function*/
+      SCIP_Real lowerbound=0;
+      SCIPgetSolVals(relaxscip,bestsol,nvars,vars,solvals);
+      SCIP_CALL(SCIPprintSol(relaxscip,bestsol,dual,FALSE));
+
+      SCIP_Real compare=0;
+      for (int v = 0; v<nvars; ++v)
+      {
+         compare += solvals[v]*weights[v]; 
+      }
+
+      printf("compare value %f\n",compare);
+      // for(int s=0;s<nsols;s++)
+      // {
+      //    SCIPgetSolVals(relaxscip,sols[s],nvars,vars,solvals);
+      //    SCIP_CALL(SCIPprintSol(relaxscip,sols[s],dual,FALSE));
+      //    SCIP_Real compare=0;
+      //    for (int v = 0; v<nvars; ++v)
+      //    {
+      //       compare += solvals[v]*weights[v]; 
+      //    }
+         
+      //    printf("compare value %f\n",compare);
+      //    if(compare>lowerbound){lowerbound==compare;} 
+      // }
+      // fprintf(dual,"now comes the biggest one\n");
+
+      // for(int s=0;s<nsols;s++)
+      // {
+      //    SCIPgetSolVals(relaxscip,sols[s],nvars,vars,solvals);
+      //    SCIP_CALL(SCIPprintSol(relaxscip,sols[s],dual,FALSE));
+      //    SCIP_Real compare=0;
+      //    for (int v = 0; v<nvars; ++v)
+      //    {
+      //       compare += solvals[v]*weights[v]; 
+      //    }
+      //    if(compare==lowerbound){break;} 
+      // }
+      
       
-      SCIPsolveiteration(relaxscip,nSlotConss,&subgradients,2,&stepsize,&bestsolvals,&upperbound, k);
-      //prinf("\t\t\t\t%fUpperbound \n",upperbound);
-           
-      SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(relaxdata->bestsolvals), bestsolvals, nvars+1));
-      // printf("\n best obj = %f \n",bestsolvals[nvars]);
 
+      // stepsize = 15/double(iter+1); 
+      // fprintf(solutions, "\niteration %d\n",iter);
+      // fprintf(dual, "\niteration %d\n",iter);
+      // fprintf(variableinfo, "\niteration %d\n",iter);
+      // fprintf(varobjects, "\niteration %d\n",iter);
 
       SCIP_CALL(SCIPaddOrigObjoffset(relaxscip,sumofduals));
-    
-      sumofduals = 0;
-      for ( int r = 0; r < nSlotConss; ++r)
-      {  
-         SCIP_CONS* cons = conss[r]; 
-         // printf("--subgrad %f--",subgradients[r]);
-         SCIP_Real subgradient = subgradients[r];
-         sumofsqsubgrad += subgradients[r]*subgradients[r];
-      } 
-
-      for ( int r = 0; r < nSlotConss; ++r)
-      {  
-         SCIP_CONS* cons = conss[r]; 
-         // printf("--subgrad %f--",subgradients[r]);
-         SCIP_Real subgradient = subgradients[r];
-         dualmultipliers[r]=SCIPconsGetMultiplier(relaxscip,&cons,subgradient,C,stepsize,false,dualmultipliers[r]);           //returns the minumum
-         sumofduals+=dualmultipliers[r];                    //adds the negative of the minimum in each iteration
-         //prinf("(%s,%f, sumofduals %f) \n",SCIPconsGetName(cons), dualmultipliers[r],sumofduals);
+      // SCIP_CALL( SCIPfreeTransform(relaxscip) );
+      // SCIP_CALL( SCIPtransformProb(relaxscip) );
+
+      counter = 0;
+      int checker = 0;
+      for(int r=0; r<nSlotConss;++r)
+      {
+         id = badconss[r];
+         double ax=-1;
+         for(int s=counter;s<(counter+listnconsvars[r]);++s)
+         {
+            // printf("%s->",SCIPvarGetName(vars[listconsvarids[s]]));
+            ax+=SCIPgetSolVal(relaxscip,bestsol,vars[listconsvarids[s]]);
+            // fprintf(subgrad,"%s\t,%f\t, sum %f",SCIPvarGetName(vars[listconsvarids[s]]),SCIPgetSolVal(relaxscip,bestsol,vars[listconsvarids[s]]),ax);
+            
+         }
+         
+         counter += listnconsvars[r];
+         if(ax>0){checker++;}
+         subgradients[r]=ax;
+         // fprintf(subgrad, "\n subgrad = %f \t",subgradients[r]);
+         
       }
+      if(checker==0){printf("#*#*#*result found\n"); break;}
 
-      
+      SCIP_CALL( SCIPfreeTransform(relaxscip) );
+      SCIP_CALL( SCIPtransformProb(relaxscip) );
+   
       
 
-      ++stoppingiter;
-      if(bestsolvals[nvars]!=bestsolvals[nvars+k+1]){++counter;}
-      else{counter=0;}
-      if(counter==10){ break; }   
-   }
+      
+      for (int v = 0; v<nvars; ++v)
+      {
+         SCIP_VAR* var = vars[v];
+         
+         SCIP_CALL(SCIPchgVarObj(relaxscip,var,weights[v])); 
+         // fprintf(variableinfo,"(%s,%f,%f)->%f\n",SCIPvarGetName(var),solvals[v],SCIPvarGetObj(var), weights[v]);
+         lowerbound += solvals[v]*weights[v]; 
+      }
+      fprintf(dual,"dualbound = %f, lowerbound=%f, norm of subgrad %f\t",SCIPgetPrimalbound(relaxscip),lowerbound, getnorm(subgradients,nSlotConss,stepsize));
+      fprintf(lower,"%f\n",lowerbound);
 
-   SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
-   SCIPinfoMessage(relaxscip, NULL, "Solving Time (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      // stepsize = (SCIPgetPrimalbound(relaxscip)-lowerbound)/getnorm(subgradients,nSlotConss,stepsize);
+      SCIP_CALL( SCIPfreeTransform(relaxscip) );
+      fprintf(solutions, "lowerbound = %f \n ", lowerbound);
+      SCIPinfoMessage(relaxscip, TimeCollector, "\n subgradients found after (sec) : %f\n, lowerbound = %f \n", SCIPgetClockTime(relaxscip, varslottime),lowerbound);
+      
+      //add back the sum of the duals we subtracted from the main obj function
 
-   FILE* saveniter;
-   saveniter = fopen("values.txt","w");
-   fprintf(saveniter,"%d\n",stoppingiter);
-   fclose(saveniter);
+      int sum=0;
+      sumofduals = 0;
 
-   FILE* savebestsols;
-   for(int v=nvars+1; v<nvars+1+stoppingiter; ++v)
-   {
-      // prinf("(%s bsv= %f\n", SCIPvarGetName(vars[v]),bestsolvals[v]);
-      savebestsols = fopen("values.txt","a");
-      fprintf(savebestsols,"%f\n", bestsolvals[v]);
-      // fputs("This is testing for fputs...\n",were);
-      fclose(savebestsols);
+      for(int r=0; r<nSlotConss;++r)
+      { 
+         dualmultipliers[r] += subgradients[r]*stepsize;
+         if(dualmultipliers[r]<0){dualmultipliers[r]=0;}
+         
+         sum+=dualmultipliers[r];
+         // fprintf(dual," then %f step size %f \n",dualmultipliers[r], stepsize);
+      }
+      sumofduals=sum;
+      // fprintf(dual,"iteration %d, sumofduals=%f\n",iter, sumofduals);
+      SCIPinfoMessage(relaxscip, TimeCollector, "\n new dual found after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      // if(checker==0){printf("solution found in %d iterations\n",iter); break;}
    }
+   SCIPfreeTransform(relaxscip);
+   fclose(variableinfo);
+   fclose(dual);
+   fclose(subgrad);
+   fclose(varobjects);
+   fclose(solutions);
+   fclose(lower);
 
    
-   for(int v=0; v<nvars; ++v)
-   {
-      SCIP_VAR* var = vars[v];
-      // printf("orobj %f|",origobj[v]);
-      // vardata = SCIPvarGetData(var);
-      // SCIP_CALL(SCIPVaraddDualMultiplier(relaxscip,&var,dualmultipliers));
-      // printf("%f",SCIPvarGetQuotient(vardata));
-      // vardataDelete(relaxscip,&vardata);
-   }
-
 
-   
+   /* free memory */
+   SCIPhashmapFree(&varmap);
+   SCIP_CALL( SCIPfree(&relaxscip) );
 
-   
    return SCIP_OKAY;
 }
 
@@ -381,17 +546,19 @@ static
 SCIP_DECL_RELAXEXEC(relaxExeclagr)
 {  
    /*lint --e{715}*/
-SCIP* relaxscip;
+   SCIP* relaxscip;
    SCIP_HASHMAP* varmap;
    SCIP_HASHMAP* consmap;
    SCIP_CONS** conss;
    SCIP_PROBDATA* probdata;
    SCIP_VARDATA* vardata;
+
    SCIP_Real relaxval;
    SCIP_Bool valid;
    int nconss;
    int i;
-   int c;
+   int counter;
+   int id;
 
 
    *lowerbound = -SCIPinfinity(scip);
@@ -400,28 +567,6 @@ SCIP* relaxscip;
    /* we can only run if none of the present constraints expect their variables to be binary or integer during transformation */
    conss = SCIPgetConss(scip);
    nconss = SCIPgetNConss(scip);
-   
-
-   for( c = 0; c < nconss; ++c )
-   {
-      const char* conshdlrname;
-
-      conshdlrname = SCIPconshdlrGetName(SCIPconsGetHdlr(conss[c]));
-
-      /* skip if there are any "and", "linking", or", "orbitope", "pseudoboolean", "superindicator", "xor" or new/unknown constraints */
-      if( strcmp(conshdlrname, "SOS1") != 0 && strcmp(conshdlrname, "SOS2") != 0 && strcmp(conshdlrname, "abspower") != 0
-            && strcmp(conshdlrname, "bivariate") != 0 && strcmp(conshdlrname, "bounddisjunction") != 0
-            && strcmp(conshdlrname, "cardinality") != 0 && strcmp(conshdlrname, "components") != 0
-            && strcmp(conshdlrname, "conjunction") != 0 && strcmp(conshdlrname, "countsols") != 0
-            && strcmp(conshdlrname, "cumulative") != 0 && strcmp(conshdlrname, "disjunction") != 0
-            && strcmp(conshdlrname, "indicator") != 0 && strcmp(conshdlrname, "integral") != 0
-            && strcmp(conshdlrname, "knapsack") != 0 && strcmp(conshdlrname, "linear") != 0
-            && strcmp(conshdlrname, "logicor") != 0 && strcmp(conshdlrname, "nonlinear") != 0
-            && strcmp(conshdlrname, "orbisack") != 0 && strcmp(conshdlrname, "quadratic") != 0
-            && strcmp(conshdlrname, "setppc") != 0 && strcmp(conshdlrname, "soc") != 0
-            && strcmp(conshdlrname, "symresack") != 0 && strcmp(conshdlrname, "varbound") != 0 )
-         return SCIP_OKAY;
-   }
 
    /* create the variable mapping hash map */
    SCIP_CALL( SCIPcreate(&relaxscip) );
@@ -429,178 +574,285 @@ SCIP* relaxscip;
    valid = FALSE;
    SCIP_CALL( SCIPcopy(scip, relaxscip, varmap, consmap, "relaxscip", FALSE, FALSE, FALSE, FALSE, &valid) );
    
-   /**************************************************************************************************************/
-   /*First,                                                                                                      */
-   //*the probdata: where we get to identify the bad constraint we want to formulate(in our case, the slot conss) */
-   /***************************************************************************************************************/
-   SCIPcreateprobdata(relaxscip,&probdata);     /*will be used to identify the # of slot(bad) constraints*/ 
-   int nSlotConss = SCIPgetNSlotConss(probdata);         //number of bad(slot) constraint
-   int* badconss;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip, &badconss, nSlotConss));         //the badconss array will contain the row number of the bad conss
-   int counter = 0;                                                           //counter will increase based the condition of inequality withn row.
-   for (int t=0; t<nconss; t++)                             /* (3) */
-   {
-      SCIP_CONS* cons = SCIPgetConss(relaxscip)[t];
-      if(SCIPconsGetLhs(relaxscip,cons,&valid)==-SCIPinfinity(relaxscip))                        /*<We get the slot constraints based on the inquality*/
-      {
-         badconss[counter]=t;
-         printf("(%d,%d)--%s\t",counter, t,SCIPconsGetName(cons));
-         counter++; 
-      }
-   }
-
-   int nvars = SCIPgetNVars(relaxscip);
-   SCIP_VAR** vars = SCIPgetVars(relaxscip);
- 
-   int* consids;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&consids,nSlotConss));
-
-   /* we then create the vardata function for each variable, to see at which constraint the variable is found*/
-   SCIP_CLOCK* varslottime;                 //to help us record the time
-   SCIP_CALL( SCIPcreateClock(relaxscip, &varslottime) );                     //* start time counting*  
-   SCIP_CALL(SCIPstartClock(relaxscip,varslottime)); 
-   int maxnconsvars=0;
-   int nconsvars=0;
+   // /**************************************************************************************************************/
+   // /*First,                                                                                                      */
+   // //*the probdata: where we get to identify the bad constraint we want to formulate(in our case, the slot conss) */
+   // /***************************************************************************************************************/
+   // int nvars = SCIPgetNVars(relaxscip);
+   // SCIP_VAR** vars = SCIPgetVars(relaxscip);
+   // SCIP_VAR** varbuffers;
+   // int* badconss;
    
-
-   int id;
-   for(int r=0;r<nSlotConss;r++)
-   {
-      id = badconss[r];                                     //gets the index for the bad constraints
-      SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];                          //gets teh bad constraints
-      SCIP_CALL(SCIPgetConsNVars(relaxscip,cons,&nconsvars,&valid));
-      if(maxnconsvars<nconsvars){maxnconsvars=nconsvars;}   //get the max number of variables found at each constraint
-      consids[r]=0;
-      // printf("%s\n",SCIPconsGetName(cons));
-   }
-
-   SCIP_VAR** varbuffers;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip, &varbuffers, maxnconsvars)); 
-   for (int v = 0; v < maxnconsvars; v++)
-   {
-      varbuffers[v] =vars[v];
-   }
-
-   SCIP_Real* origobj;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&origobj,nvars)); 
-   for (int v = 0; v < nvars; v++)
-   { 
-      int* varid;
-      int nVarSlotConss=0;
-      nconsvars = 0;
-      SCIP_VAR* var = vars[v];
-      origobj[v]= SCIPvarGetObj(var);
-      
-      int varindex = SCIPvarGetIndex(var);                                    /* (2) */
-      assert(varindex!= NULL);
-
-      // printf("%s****%d\n",SCIPvarGetName(var),varindex);
-      for (int r = 0; r < nSlotConss; ++r)
-      {
-         id = badconss[r];
-         SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
-         // printf("%s \t",SCIPconsGetName(cons));
-         SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &valid)); 
-         SCIP_CALL(SCIPgetConsVars(relaxscip, cons, varbuffers, nconsvars, &valid));
-         if (!valid){
-         abort(); }
-
-         for (int j = 0; j < nconsvars; ++j)                                            /* (8) */
-         {
-            SCIP_VAR* varx = varbuffers[j];
-            int varbufindex = SCIPvarGetIndex(varx);
-            assert(varbufindex != NULL);
-            // printf("%s\t \t%d",SCIPvarGetName(varx),varbufindex);
+   // SCIPcreateprobdata(relaxscip,&probdata,SCIPgetConss(relaxscip),vars,&varbuffers,&badconss);     /*will be used to identify the # of slot(bad) constraints*/ 
+   // int nSlotConss = SCIPgetNSlotConss(probdata);         //number of bad(slot) constraint
+   // int allnconsvars = SCIPgetallnconsvars(probdata);    //sum of all nconsvars, used for creating later on an array to collect the list of varids in each row
+   // int* listnconsvars = SCIPlistnconsvars(probdata);
+   // int* listconsvarids = SCIPlistconsvarids(probdata);
+
+   // /* we then create the vardata function for each variable, to see at which constraint the variable is found*/
+   // FILE* TimeCollector;
+   // TimeCollector = fopen("time.txt","w");
+   // SCIP_CLOCK* varslottime;                 //to help us record the time
+   // SCIP_CALL( SCIPcreateClock(relaxscip, &varslottime) );                     //* start time counting*  
+   // SCIP_CALL(SCIPstartClock(relaxscip,varslottime)); 
+
+   // // int nconsvars=0;
+   // int* consids;
+
+   // SCIP_Real* weights;
+   // SCIP_CALL(SCIPallocBufferArray(relaxscip,&weights,nvars));   
+
+   // SCIP_CALL(SCIPallocBufferArray(relaxscip,&consids,nSlotConss));
+
+   // for (int v = 0; v < nvars; v++)
+   // {
+   //    SCIP_VAR* var = vars[v];
+   //    weights[v]=SCIPvarGetObj(var);
+   // }
+
+   // for (int v = 0; v < nvars; v++)
+   // { 
+   //    int* varids;
+   //    int NVarInBadConss=0;
+   //    int nconsvars = 0;
+   //    SCIP_VAR* var = vars[v];
+
+   //    int varindex = SCIPvarGetIndex(var);                                    /* (2) */
+   //    assert(varindex!= NULL);
+
+   //    // printf("%s****%d\n",SCIPvarGetName(var),varindex);
+   //    for (int r = 0; r < nSlotConss; ++r)
+   //    {
+   //       id = badconss[r];
+   //       SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+   //       // printf("%s \t",SCIPconsGetName(cons));
+   //       SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &valid)); 
+   //       SCIP_CALL(SCIPgetConsVars(relaxscip, cons, varbuffers, nconsvars, &valid));
+   //       if (!valid){
+   //       abort(); }
+
+   //       for (int j = 0; j < nconsvars; ++j)                                            /* (8) */
+   //       {
+   //          SCIP_VAR* varx = varbuffers[j];
+   //          int varbufindex = SCIPvarGetIndex(varx);
+   //          assert(varbufindex != NULL);
+   //          // printf("%s\t \t%d",SCIPvarGetName(varx),varbufindex);
             
             
-            /** if var[i] is in cons[c], write conspointer in VarConss and increase nVarConsscounter */
-            if (varindex == varbufindex)                                           /* (9) */
-            {
+   //          /** if var[i] is in cons[c], write conspointer in VarConss and increase nVarConsscounter */
+   //          if (varindex == varbufindex)                                           /* (9) */
+   //          {
                
-               // VarSlotConss[nVarSlotConss] = cons;
-               consids[nVarSlotConss]=id;
-               nVarSlotConss++;
-               // printf(" %s \t,",SCIPconsGetName(cons));
-            }
-         }
-      }
-      SCIP_CALL(SCIPallocBufferArray(relaxscip, &varid, nVarSlotConss));
-      for(int t=0;t<nVarSlotConss;t++)
-      {
-         varid[t]=consids[t];
-         // printf("%d \t",varid[t]);
-      }
+   //             // VarSlotConss[NVarInBadConss] = cons;
+   //             consids[NVarInBadConss]=id;
+   //             NVarInBadConss++;
+   //             // printf(" %s \t,",SCIPconsGetName(cons));
+   //          }
+   //       }
+   //    }
+
+   //    SCIP_CALL(SCIPallocBufferArray(relaxscip, &varids, NVarInBadConss));
+   //    for(int t=0;t<NVarInBadConss;t++)
+   //    {
+   //       varids[t]=consids[t];
+   //       // printf("%d \t",varids[t]);
+   //    }
+
+   //    // vardata=SCIPvarGetData(var);
+   //    SCIP_CALL(SCIPallocBlockMemory(scip , &vardata));     
+   //    SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(vardata->varids), varids, NVarInBadConss));
+   //    vardata->NVarInBadConss = NVarInBadConss;  /**copy nVarConss to VarData */
+   //    vardata->varids = varids;
+   //    // /**set the variable data to the variable*/
+   //    SCIPvarSetData(var,vardata);  
+   // }
+
+   // // SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
+   
 
-      // vardata=SCIPvarGetData(var);
-      SCIP_CALL(SCIPallocBlockMemory(scip , &vardata));     
-      SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(vardata->varid), varid, nVarSlotConss));
-      vardata->nVarSlotConss = nVarSlotConss;  /**copy nVarConss to VarData */
-      // // vardata->varquotient = varquotient;
-      vardata->varid = varid;
-      // /**set the variable data to the variable*/
-      SCIPvarSetData(var,vardata);  
-   }
+   // FILE* AfterPreProcessing;
+   // AfterPreProcessing = fopen("AfterPreProcessing.txt","w+");
+
+   // SCIP_CALL(SCIPprintOrigProblem(relaxscip, AfterPreProcessing, "lp", FALSE));
+
+   // SCIPinfoMessage(relaxscip, TimeCollector, "\n row and column identified in (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+   // for(int r=0;r<nSlotConss;r++)
+   // {
+   //    id = badconss[r];
+   //    SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+   //    SCIP_CALL(SCIPdelCons(relaxscip,cons));
+   // }
+
+   // /******************************************************************************************************************/
+   // /*Next, we will do the initial iteration of finding the dual mulpliers of each slot conss, and their sum(dualsum) */
+   // /* In the end, we will subtract this sum from the objective of the function.                                      */
+   // /* It's initial, because while we would search for more dual multipliers to solve the Lagrangian relaxation       */
+   // /******************************************************************************************************************/
+   // SCIP_Real* dualmultipliers;
+   // SCIP_CALL(SCIPallocBufferArray(relaxscip,&dualmultipliers,nSlotConss));
+   
+   // SCIP_Real* subgradients;
+   // SCIP_CALL(SCIPallocBufferArray(relaxscip,&subgradients,nSlotConss));
+   // //initialize subgradients;
+   // SCIP_Real stepsize = 1.00000;
+   // SCIP_Real sumofduals=0;
+   // for ( int r = 0; r < nSlotConss; ++r)
+   // {
+   //    // id = badconss[r];
+   //    // SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+   //    //if k=1 iteration//
+   //    dualmultipliers[r] = 1;
+   //    sumofduals+=dualmultipliers[r];                    //adds the negative of the minimum in each iteration
+      
+   // }
 
 
-   // SCIP_CALL(SCIPstopClock(relaxscip,varslottime));
-   SCIPinfoMessage(relaxscip, NULL, "\n row and column identified in (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
-   /******************************************************************************************************************/
-   /*Next, we will do the initial iteration of finding the dual mulpliers of each slot conss, and their sum(dualsum) */
-   /* In the end, we will subtract this sum from the objective of the function.                                      */
-   /* It's initial, because while we would search for more dual multipliers to solve the Lagrangian relaxation       */
-   /******************************************************************************************************************/
-   SCIP_Real* dualmultipliers;
-   SCIP_CALL(SCIPallocBufferArray(relaxscip,&dualmultipliers,nSlotConss));
-   int sumofduals=0;
 
-   for ( int r = 0; r < nSlotConss; ++r)
-   {
-      id = badconss[r];
-      SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+   // /*******************************************************************************************************/
+   // /* The reformulation of the problem can be written as follows                                          */
+   // //*>>>>>>>>>>>>>>>>>> min sum { (w[i]+sum{dual[j]})}x[i]-sum{dual[r]} <<<<<<<<<<<<                     */
+   // /*where i is nvars, j is NVarInBadConss, and r is nSlotConss for our case *******************************/
+   // /****************************************************************************************************************/
+   // /* The following function will add the following to the obj(weight) of the variable,                            */
+   // //*  the obj(weight) of var + the sum of the dualmultipliers of bad constraints which contains this variable    */
+   // /****************************************************************************************************************/
+  
+ 
+   // FILE* solutions;
+   // solutions = fopen("sol.txt","wr");
+   // FILE* dual;
+   // dual= fopen("dual.txt","wr");
+   // FILE* variableinfo; 
+   // variableinfo = fopen("var.txt","wr");
+   // FILE* subgrad;
+   // subgrad = fopen("subgrads.txt","wr");
+   // FILE* varobjects;
+   // varobjects=fopen("varobjs.txt","wr");
+
+   // int maxiter=20;
+   // SCIP_Real lagrdual =-SCIPinfinity(scip); 
+
+   // for(int iter=1;iter<=maxiter;iter++)
+   // {
       
-
-      // dualmultipliers[r]=SCIPconsGetMultiplier(relaxscip,&cons, 0,0,0,true,0);           //returns the minumum
-      dualmultipliers[r] = 0;
-      sumofduals+=dualmultipliers[r];                    //adds the negative of the minimum in each iteration
+   //    for(int v=0;v<nvars;v++)
+   //    {
+   //       SCIP_VAR* var = vars[v];
+   //       double sum =SCIPvarGetObj(var);
+         
+   //       vardata=SCIPvarGetData(var);
+   //       int* varids = SCIPvardataGetvarids(vardata); 
+   //       int NVarInBadConss = SCIPvardataGetNVarInBadConss(vardata);
+
+   //       for(int t=0;t<NVarInBadConss;t++)
+   //       {
+   //          sum += dualmultipliers[varids[t]];
+   //          fprintf(varobjects,"{%d, %f, %f\t",varids[t], dualmultipliers[varids[t]],sum);
+   //       }
+   //       fprintf(varobjects,"}\n\n");
+   //       SCIP_CALL(SCIPaddVarObj(relaxscip,var,sum));
+         
+   //    }
       
-   }
-
-   /*******************************************************************************************************/
-   /* The reformulation of the problem can be written as follows                                          */
-   //*>>>>>>>>>>>>>>>>>> min sum { (w[i]+sum{dual[j]})}x[i]-sum{dual[r]} <<<<<<<<<<<<                     */
-   /*where i is nvars, j is nVarSlotConss, and r is nSlotConss for our case *******************************/
-   /****************************************************************************************************************/
-   /* The following function will add the following to the obj(weight) of the variable,                            */
-   //*  the obj(weight) of var + the sum of the dualmultipliers of bad constraints which contains this variable    */
-   /****************************************************************************************************************/
-  
-
+   //    SCIPinfoMessage(relaxscip, TimeCollector, "\n finished changing the variable's weight after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      
+   //    SCIP_CALL(SCIPaddOrigObjoffset(relaxscip,-1*sumofduals));
+   //    SCIP_CALL(SCIPprintOrigProblem(relaxscip, AfterPreProcessing, "lp", FALSE));
+   //    SCIPsetMessagehdlrQuiet(relaxscip, TRUE);
+   //    // fclose(AfterPreProcessing);
+
+   //    SCIP_CALL( SCIPtransformProb(relaxscip) );
+   //    SCIP_CALL( SCIPsolve(relaxscip) );
+   //    relaxval = SCIPgetPrimalbound(relaxscip);
+   //    SCIPdebugMessage("relaxation bound = %e status = %d\n", relaxval, SCIPgetStatus(relaxscip));
+   //    /*get the best solution*/   
+   //    SCIP_SOL* bestsol = SCIPgetBestSol(relaxscip) ;
+   //    SCIP_Real* solvals;
+   //    SCIP_CALL(SCIPallocBufferArray(relaxscip,&solvals,nvars+1)); 
+   
 
-   /* change variable types */
-   for( i = 0; i < SCIPgetNVars(relaxscip); ++i )
-   {
-      SCIP_VAR* var;
-      SCIP_Bool infeasible;
+   //    /*text output*/
+   //    SCIPinfoMessage(relaxscip, TimeCollector, "\n first iteration: problem solved after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+   //    fprintf(solutions,"first iteration \t bound=%f, \t objsol=%f \n",SCIPgetPrimalbound(relaxscip),relaxval);
+   //    SCIP_CALL(SCIPprintBestSol(relaxscip,solutions,FALSE));
 
-      var = SCIPgetVars(relaxscip)[i];
-      assert(var != NULL);
+   //    /*store the solution in solvals so we can later export it to subgradient function*/
+   //    SCIPgetSolVals(relaxscip,bestsol,nvars,vars,solvals);
+      
 
-      SCIP_CALL( SCIPchgVarType(relaxscip, var, SCIP_VARTYPE_CONTINUOUS, &infeasible) );
-      assert(!infeasible);
-   }
+   //    stepsize = 1/double(iter+1); 
+   //    fprintf(solutions, "\niteration %d\n",iter);
+   //    // fprintf(dual, "\niteration %d\n",iter);
+   //    fprintf(variableinfo, "\niteration %d\n",iter);
+   //    fprintf(varobjects, "\niteration %d\n",iter);
+
+   //    SCIP_CALL(SCIPaddOrigObjoffset(relaxscip,sumofduals));
+   //    // SCIP_CALL( SCIPfreeTransform(relaxscip) );
+   //    // SCIP_CALL( SCIPtransformProb(relaxscip) );
+
+   //    counter = 0;
+   //    int checker = 0;
+   //    for(int r=0; r<nSlotConss;++r)
+   //    {
+   //       id = badconss[r];
+         
+   //       SCIP_CONS* cons = SCIPgetConss(relaxscip)[id];
+   //       // SCIP_CALL(SCIPgetConsNVars(relaxscip, cons, &nconsvars, &valid));
+
+   //       double ax=-1;
+
+   //       for(int s=counter;s<(counter+listnconsvars[r]);++s)
+   //       {
+   //          // printf("%s->",SCIPvarGetName(vars[listconsvarids[s]]));
+   //          ax+=SCIPgetSolVal(relaxscip,bestsol,vars[listconsvarids[s]]);
+   //          fprintf(subgrad,"%s\t,%f\t, sum %f",SCIPvarGetName(vars[listconsvarids[s]]),SCIPgetSolVal(relaxscip,bestsol,vars[listconsvarids[s]]),ax);
+            
+   //       }
+         
+   //       counter += listnconsvars[r];
+   //       if(ax<0){subgradients[r]==0; }
+   //       else{subgradients[r]==ax;checker++;}
+         
+   //    }
+      
+      
+      
 
-   SCIP_CALL( SCIPtransformProb(relaxscip) );
 
-   FILE* saveniter;
-   saveniter = fopen("time.txt","w");
+   //    SCIP_CALL( SCIPfreeTransform(relaxscip) );
+   //    SCIP_CALL( SCIPtransformProb(relaxscip) );
+   //    for (int v = 0; v<nvars; ++v)
+   //    {
+   //       SCIP_VAR* var = vars[v];
+   //       SCIP_CALL(SCIPchgVarObj(relaxscip,var,weights[v]));  
+   //       fprintf(variableinfo,"(%s,%f,%f)->%f\n",SCIPvarGetName(var),solvals[v],SCIPvarGetObj(var), weights[v]);
+   //    }
+   //    SCIP_CALL( SCIPfreeTransform(relaxscip) );   
+   //    SCIPinfoMessage(relaxscip, TimeCollector, "\n subgradients found after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+      
 
-   SCIP_CALL(SCIPprintOrigProblem(relaxscip, saveniter, "lp", FALSE));
-   SCIPsetMessagehdlrQuiet(relaxscip, TRUE);
-   fclose(saveniter);
+   //    //add back the sum of the duals we subtracted from the main obj function
+
+   //    int sum=0;
+   //    for(int r=0; r<nSlotConss;++r)
+   //    {  
+   //       dualmultipliers[r] += subgradients[r]+stepsize;
+   //       if(dualmultipliers[r]<0){dualmultipliers[r]=0;}
+         
+   //       sum+=dualmultipliers[r];
+   //       // fprintf(dual," then %f \n",dualmultipliers[r]);
+   //    }
+   //    sumofduals=sum;
+   //    fprintf(dual,"iteration %d, sumofduals=%f\n",iter, sumofduals);
+   //    SCIPinfoMessage(relaxscip, TimeCollector, "\n new dual found after (sec) : %f\n", SCIPgetClockTime(relaxscip, varslottime));
+   //    if(checker==0){printf("solution found in %d iterations\n",iter); break;}
+   // }
+   // SCIPfreeTransform(relaxscip);
+   // fclose(variableinfo);
+   // fclose(dual);
+   // fclose(subgrad);
+   // fclose(varobjects);
 
-   SCIP_CALL( SCIPsolve(relaxscip) );
-   relaxval = SCIPgetPrimalbound(relaxscip);
-   SCIPdebugMessage("relaxation bound = %e status = %d\n", relaxval, SCIPgetStatus(relaxscip));
 
    if( SCIPgetStatus(relaxscip) == SCIP_STATUS_OPTIMAL )
    {
@@ -608,6 +860,8 @@ SCIP* relaxscip;
       if( (! SCIPisRelaxSolValid(scip)) || SCIPisGT(scip, relaxval, SCIPgetRelaxSolObj(scip)) )
       {
          SCIPdebugMsg(scip, "Setting LP relaxation solution, which improved upon earlier solution\n");
+
+
          SCIP_CALL( SCIPclearRelaxSolVals(scip, relax) );
 
          for( i = 0; i < SCIPgetNVars(scip); ++i )
@@ -628,6 +882,7 @@ SCIP* relaxscip;
       }
 
       SCIPdebugMsg(scip, "LP lower bound = %g\n", relaxval);
+
       *lowerbound = relaxval;
       *result = SCIP_SUCCESS;
    }
diff --git a/src/relax_lagr.h b/src/relax_lagr.h
index 44a1f2691e841d8524f9509ea2caf8c6483d7429..352b5fd8fdb275e97a5f12298d05511f518fec26 100644
--- a/src/relax_lagr.h
+++ b/src/relax_lagr.h
@@ -39,6 +39,15 @@ SCIP_RETCODE SCIPincludeRelaxlagrangian(
 
 #ifdef __cplusplus
 }
+
+int SCIPvardataGetNVarInBadConss(
+	SCIP_VARDATA* vardata     /**< variable data */
+);
+
+int* SCIPvardataGetvarids(
+	SCIP_VARDATA* vardata     /**< variable data */
+);
+
 #endif
 
 #endif
diff --git a/src/relax_lagr32.cpp b/src/relax_lagr32.cpp
index 646dc85e19b9fe0f40298c5c12a31bd27984e1d7..61f4b2358b5c4c46c7258324113dd3e769ca7894 100644
--- a/src/relax_lagr32.cpp
+++ b/src/relax_lagr32.cpp
@@ -225,7 +225,7 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
    for(int k =  0; k < niters; ++k)
    {  
       
-      // stepsize = 10*(1/(0.5*(k+1)));
+      stepsize = 10*(1/(0.5*(k+1)));
       // printf("%f\n\n",stepsize);
       sumofaddonvars = 0;       
       SCIP_CALL(SCIPfreeTransform(relaxscip));
@@ -239,9 +239,7 @@ SCIP_DECL_RELAXINIT(relaxInitlagr)
       // printf("*****************************upperbound*********************---> %f",SCIPgetUpperbound(relaxscip));
       // SCIP_CALL(SCIPprintOrigProblem(relaxscip, file, "lp", FALSE));
       
-      SCIPsolveiteration(relaxscip,nSlotConss,&subgradients,2,&stepsize,&bestsolvals,&upperbound, k);
-      //prinf("\t\t\t\t%fUpperbound \n",upperbound);
-           
+      SCIPsolveiteration(relaxscip,nSlotConss,&subgradients,2,&stepsize,&bestsolvals,&upperbound, k);    
       SCIP_CALL(SCIPduplicateBlockMemoryArray(scip, &(relaxdata->bestsolvals), bestsolvals, nvars+1));
       // printf("\n best obj = %f \n",bestsolvals[nvars]);
 
diff --git a/subgrads.txt b/subgrads.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/time.txt b/time.txt
index 4e649a39a1f38c4ccbcb466bd687f4540a08c40b..b7aef1dabdbc8cdb0a811f651e446132db02f872 100644
--- a/time.txt
+++ b/time.txt
@@ -1,119 +1,1127 @@
-\ SCIP STATISTICS
-\   Problem name     : data/6f4s.lp_relaxscip
-\   Variables        : 54 (27 binary, 0 integer, 0 implicit integer, 27 continuous)
-\   Constraints      : 36
-Minimize
- Obj: +120 t_x_{6}_{120} +105 t_x_{6}_{105} +90 t_x_{6}_{90} +75 t_x_{6}_{75} +60 t_x_{6}_{60} +45 t_x_{6}_{45}
-      +30 t_x_{6}_{30} +15 t_x_{6}_{15} +120 t_x_{5}_{120} +105 t_x_{5}_{105} +90 t_x_{5}_{90} +75 t_x_{5}_{75}
-      +60 t_x_{5}_{60} +45 t_x_{5}_{45} +30 t_x_{5}_{30} +15 t_x_{5}_{15} +120 t_x_{4}_{120} +105 t_x_{4}_{105}
-      +90 t_x_{4}_{90} +75 t_x_{4}_{75} +60 t_x_{4}_{60} +45 t_x_{4}_{45} +30 t_x_{4}_{30} +15 t_x_{4}_{15}
-      +105 t_x_{3}_{105} +90 t_x_{3}_{90} +75 t_x_{3}_{75} +60 t_x_{3}_{60} +45 t_x_{3}_{45} +30 t_x_{3}_{30}
-      +15 t_x_{3}_{15} +120 t_x_{2}_{120} +105 t_x_{2}_{105} +90 t_x_{2}_{90} +75 t_x_{2}_{75} +60 t_x_{2}_{60}
-      +45 t_x_{2}_{45} +30 t_x_{2}_{30} +15 t_x_{2}_{15} +120 t_x_{1}_{120} +105 t_x_{1}_{105} +90 t_x_{1}_{90}
-      +75 t_x_{1}_{75} +60 t_x_{1}_{60} +45 t_x_{1}_{45} +30 t_x_{1}_{30} +15 t_x_{1}_{15} +1 t_x_{1}_{0}
-      +120 t_x_{3}_{120}
-Subject to
- slot1: +1 t_x_{1}_{0} +1 t_x_{2}_{0} <= +1
- slot2: +1 t_x_{1}_{15} +1 t_x_{2}_{15} <= +1
- slot3: +1 t_x_{1}_{30} +1 t_x_{2}_{30} <= +1
- slot4: +1 t_x_{1}_{45} +1 t_x_{2}_{45} <= +1
- slot5: +1 t_x_{1}_{60} +1 t_x_{2}_{60} <= +1
- slot6: +1 t_x_{1}_{75} +1 t_x_{2}_{75} <= +1
- slot7: +1 t_x_{1}_{90} +1 t_x_{2}_{90} <= +1
- slot8: +1 t_x_{1}_{105} +1 t_x_{2}_{105} <= +1
- F_6: +1 t_x_{6}_{0} +1 t_x_{6}_{15} +1 t_x_{6}_{30} +1 t_x_{6}_{45} +1 t_x_{6}_{60} +1 t_x_{6}_{75} +1 t_x_{6}_{90}
-  +1 t_x_{6}_{105} +1 t_x_{6}_{120} = +1
- slot10: +1 t_x_{2}_{0} +1 t_x_{3}_{0} +1 t_x_{4}_{0} <= +1
- slot11: +1 t_x_{2}_{15} +1 t_x_{3}_{15} +1 t_x_{4}_{15} <= +1
- slot12: +1 t_x_{2}_{30} +1 t_x_{3}_{30} +1 t_x_{4}_{30} <= +1
- slot13: +1 t_x_{2}_{45} +1 t_x_{3}_{45} +1 t_x_{4}_{45} <= +1
- slot14: +1 t_x_{2}_{60} +1 t_x_{3}_{60} +1 t_x_{4}_{60} <= +1
- slot15: +1 t_x_{2}_{75} +1 t_x_{3}_{75} +1 t_x_{4}_{75} <= +1
- slot16: +1 t_x_{2}_{90} +1 t_x_{3}_{90} +1 t_x_{4}_{90} <= +1
- F_4: +1 t_x_{4}_{0} +1 t_x_{4}_{15} +1 t_x_{4}_{30} +1 t_x_{4}_{45} +1 t_x_{4}_{60} +1 t_x_{4}_{75} +1 t_x_{4}_{90}
-  +1 t_x_{4}_{105} +1 t_x_{4}_{120} = +1
- F_2: +1 t_x_{2}_{0} +1 t_x_{2}_{15} +1 t_x_{2}_{30} +1 t_x_{2}_{45} +1 t_x_{2}_{60} +1 t_x_{2}_{75} +1 t_x_{2}_{90}
-  +1 t_x_{2}_{105} +1 t_x_{2}_{120} = +1
- slot19: +1 t_x_{1}_{0} +1 t_x_{3}_{0} +1 t_x_{5}_{0} <= +1
- slot20: +1 t_x_{1}_{15} +1 t_x_{3}_{15} +1 t_x_{5}_{15} <= +1
- slot21: +1 t_x_{1}_{30} +1 t_x_{3}_{30} +1 t_x_{5}_{30} <= +1
- slot22: +1 t_x_{1}_{45} +1 t_x_{3}_{45} +1 t_x_{5}_{45} <= +1
- slot23: +1 t_x_{1}_{60} +1 t_x_{3}_{60} +1 t_x_{5}_{60} <= +1
- slot24: +1 t_x_{1}_{75} +1 t_x_{3}_{75} +1 t_x_{5}_{75} <= +1
- F_1: +1 t_x_{1}_{0} +1 t_x_{1}_{15} +1 t_x_{1}_{30} +1 t_x_{1}_{45} +1 t_x_{1}_{60} +1 t_x_{1}_{75} +1 t_x_{1}_{90}
-  +1 t_x_{1}_{105} +1 t_x_{1}_{120} = +1
- F_3: +1 t_x_{3}_{0} +1 t_x_{3}_{15} +1 t_x_{3}_{30} +1 t_x_{3}_{45} +1 t_x_{3}_{60} +1 t_x_{3}_{75} +1 t_x_{3}_{90}
-  +1 t_x_{3}_{105} +1 t_x_{3}_{120} = +1
- F_5: +1 t_x_{5}_{0} +1 t_x_{5}_{15} +1 t_x_{5}_{30} +1 t_x_{5}_{45} +1 t_x_{5}_{60} +1 t_x_{5}_{75} +1 t_x_{5}_{90}
-  +1 t_x_{5}_{105} +1 t_x_{5}_{120} = +1
- slot28: +1 t_x_{4}_{0} +1 t_x_{5}_{0} +1 t_x_{6}_{0} <= +1
- slot29: +1 t_x_{4}_{15} +1 t_x_{5}_{15} +1 t_x_{6}_{15} <= +1
- slot30: +1 t_x_{4}_{30} +1 t_x_{5}_{30} +1 t_x_{6}_{30} <= +1
- slot31: +1 t_x_{4}_{45} +1 t_x_{5}_{45} +1 t_x_{6}_{45} <= +1
- slot32: +1 t_x_{4}_{60} +1 t_x_{5}_{60} +1 t_x_{6}_{60} <= +1
- slot33: +1 t_x_{4}_{75} +1 t_x_{5}_{75} +1 t_x_{6}_{75} <= +1
- slot35: +1 t_x_{4}_{105} +1 t_x_{5}_{105} +1 t_x_{6}_{105} <= +1
- cf1_0: -1 t_x_{2}_{60} +1 t_x_{3}_{0} +1 t_x_{3}_{15} +1 t_x_{3}_{30} +1 t_x_{3}_{45} +1 t_x_{3}_{75}
-  >= +0
- cf1_1: -1 t_x_{1}_{15} -1 t_x_{3}_{30} -1 t_x_{4}_{15} -1 t_x_{6}_{30} >= -3
-Bounds
- 0 <= t_x_{6}_{120} <= 0
- 0 <= t_x_{6}_{105} <= 0
- 0 <= t_x_{6}_{90} <= 0
- 0 <= t_x_{6}_{75} <= 1
- 0 <= t_x_{6}_{60} <= 1
- 0 <= t_x_{6}_{45} <= 1
- 0 <= t_x_{6}_{30} <= 1
- 0 <= t_x_{6}_{15} <= 1
- 0 <= t_x_{6}_{0} <= 1
- 0 <= t_x_{5}_{120} <= 0
- 0 <= t_x_{5}_{105} <= 0
- 0 <= t_x_{5}_{90} <= 0
- 0 <= t_x_{5}_{75} <= 1
- 0 <= t_x_{5}_{60} <= 1
- 0 <= t_x_{5}_{45} <= 1
- 0 <= t_x_{5}_{30} <= 1
- 0 <= t_x_{5}_{15} <= 1
- 0 <= t_x_{5}_{0} <= 1
- 0 <= t_x_{4}_{120} <= 0
- 0 <= t_x_{4}_{105} <= 0
- 0 <= t_x_{4}_{90} <= 0
- 0 <= t_x_{4}_{75} <= 1
- 0 <= t_x_{4}_{60} <= 1
- 0 <= t_x_{4}_{45} <= 1
- 0 <= t_x_{4}_{30} <= 1
- 0 <= t_x_{4}_{15} <= 1
- 0 <= t_x_{4}_{0} <= 1
- 0 <= t_x_{3}_{105} <= 0
- 0 <= t_x_{3}_{90} <= 0
- 0 <= t_x_{3}_{75} <= 1
- 0 <= t_x_{3}_{60} <= 1
- 0 <= t_x_{3}_{45} <= 1
- 0 <= t_x_{3}_{30} <= 1
- 0 <= t_x_{3}_{15} <= 1
- 0 <= t_x_{3}_{0} <= 1
- 0 <= t_x_{2}_{120} <= 0
- 0 <= t_x_{2}_{105} <= 0
- 0 <= t_x_{2}_{90} <= 0
- 0 <= t_x_{2}_{75} <= 1
- 0 <= t_x_{2}_{60} <= 1
- 0 <= t_x_{2}_{45} <= 1
- 0 <= t_x_{2}_{30} <= 1
- 0 <= t_x_{2}_{15} <= 1
- 0 <= t_x_{2}_{0} <= 1
- 0 <= t_x_{1}_{120} <= 0
- 0 <= t_x_{1}_{105} <= 0
- 0 <= t_x_{1}_{90} <= 0
- 0 <= t_x_{1}_{75} <= 0
- 0 <= t_x_{1}_{60} <= 1
- 0 <= t_x_{1}_{45} <= 1
- 0 <= t_x_{1}_{30} <= 1
- 0 <= t_x_{1}_{15} <= 1
- 0 <= t_x_{1}_{0} <= 1
- 0 <= t_x_{3}_{120} <= 0
-Binaries
- t_x_{6}_{120} t_x_{6}_{105} t_x_{6}_{90} t_x_{6}_{75} t_x_{6}_{60} t_x_{6}_{45} t_x_{6}_{30} t_x_{6}_{15}
- t_x_{6}_{0} t_x_{5}_{120} t_x_{5}_{105} t_x_{5}_{90} t_x_{5}_{75} t_x_{5}_{60} t_x_{5}_{45} t_x_{5}_{30}
- t_x_{5}_{15} t_x_{5}_{0} t_x_{4}_{120} t_x_{4}_{105} t_x_{4}_{90} t_x_{4}_{75} t_x_{4}_{60} t_x_{4}_{45}
- t_x_{4}_{30} t_x_{4}_{15} t_x_{4}_{0}
-End
+
+ row and column identified in (sec) : 0.000172
+
+ finished changing the variable's weight after (sec) : 0.000414
+
+ first iteration: problem solved after (sec) : 0.003492
+
+ subgradients found after (sec) : 0.008049
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.008091
+
+ finished changing the variable's weight after (sec) : 0.008106
+
+ first iteration: problem solved after (sec) : 0.010124
+
+ subgradients found after (sec) : 0.014033
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.014076
+
+ finished changing the variable's weight after (sec) : 0.014095
+
+ first iteration: problem solved after (sec) : 0.016643
+
+ subgradients found after (sec) : 0.026668
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.026862
+
+ finished changing the variable's weight after (sec) : 0.026919
+
+ first iteration: problem solved after (sec) : 0.033669
+
+ subgradients found after (sec) : 0.039234
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.039348
+
+ finished changing the variable's weight after (sec) : 0.039378
+
+ first iteration: problem solved after (sec) : 0.050431
+
+ subgradients found after (sec) : 0.063768
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.063828
+
+ finished changing the variable's weight after (sec) : 0.063845
+
+ first iteration: problem solved after (sec) : 0.069662
+
+ subgradients found after (sec) : 0.081571
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.081627
+
+ finished changing the variable's weight after (sec) : 0.081643
+
+ first iteration: problem solved after (sec) : 0.092082
+
+ subgradients found after (sec) : 0.098960
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.098998
+
+ finished changing the variable's weight after (sec) : 0.099017
+
+ first iteration: problem solved after (sec) : 0.110073
+
+ subgradients found after (sec) : 0.116468
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.116506
+
+ finished changing the variable's weight after (sec) : 0.116523
+
+ first iteration: problem solved after (sec) : 0.137771
+
+ subgradients found after (sec) : 0.146675
+, lowerbound = 46.000000 
+
+ new dual found after (sec) : 0.146714
+
+ finished changing the variable's weight after (sec) : 0.146730
+
+ first iteration: problem solved after (sec) : 0.163891
+
+ subgradients found after (sec) : 0.170033
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.170076
+
+ finished changing the variable's weight after (sec) : 0.170090
+
+ first iteration: problem solved after (sec) : 0.185949
+
+ subgradients found after (sec) : 0.202449
+, lowerbound = 46.000000 
+
+ new dual found after (sec) : 0.202493
+
+ finished changing the variable's weight after (sec) : 0.202560
+
+ first iteration: problem solved after (sec) : 0.220240
+
+ subgradients found after (sec) : 0.236488
+, lowerbound = 46.000000 
+
+ new dual found after (sec) : 0.236539
+
+ finished changing the variable's weight after (sec) : 0.236588
+
+ first iteration: problem solved after (sec) : 0.247929
+
+ subgradients found after (sec) : 0.257980
+, lowerbound = 46.000000 
+
+ new dual found after (sec) : 0.258025
+
+ finished changing the variable's weight after (sec) : 0.258043
+
+ first iteration: problem solved after (sec) : 0.267446
+
+ subgradients found after (sec) : 0.272147
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.272175
+
+ finished changing the variable's weight after (sec) : 0.272190
+
+ first iteration: problem solved after (sec) : 0.283181
+
+ subgradients found after (sec) : 0.292040
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.292135
+
+ finished changing the variable's weight after (sec) : 0.292170
+
+ first iteration: problem solved after (sec) : 0.304545
+
+ subgradients found after (sec) : 0.313874
+, lowerbound = 46.000000 
+
+ new dual found after (sec) : 0.313925
+
+ finished changing the variable's weight after (sec) : 0.313937
+
+ first iteration: problem solved after (sec) : 0.325010
+
+ subgradients found after (sec) : 0.332073
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.332112
+
+ finished changing the variable's weight after (sec) : 0.332127
+
+ first iteration: problem solved after (sec) : 0.344750
+
+ subgradients found after (sec) : 0.350420
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.350457
+
+ finished changing the variable's weight after (sec) : 0.350477
+
+ first iteration: problem solved after (sec) : 0.362271
+
+ subgradients found after (sec) : 0.367667
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.367718
+
+ finished changing the variable's weight after (sec) : 0.367735
+
+ first iteration: problem solved after (sec) : 0.380156
+
+ subgradients found after (sec) : 0.389135
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.389198
+
+ finished changing the variable's weight after (sec) : 0.389223
+
+ first iteration: problem solved after (sec) : 0.403949
+
+ subgradients found after (sec) : 0.412378
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.412463
+
+ finished changing the variable's weight after (sec) : 0.412494
+
+ first iteration: problem solved after (sec) : 0.425490
+
+ subgradients found after (sec) : 0.436080
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.436199
+
+ finished changing the variable's weight after (sec) : 0.436247
+
+ first iteration: problem solved after (sec) : 0.448236
+
+ subgradients found after (sec) : 0.456060
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.456137
+
+ finished changing the variable's weight after (sec) : 0.456159
+
+ first iteration: problem solved after (sec) : 0.468406
+
+ subgradients found after (sec) : 0.480247
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.480289
+
+ finished changing the variable's weight after (sec) : 0.480304
+
+ first iteration: problem solved after (sec) : 0.490254
+
+ subgradients found after (sec) : 0.507246
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.507302
+
+ finished changing the variable's weight after (sec) : 0.507316
+
+ first iteration: problem solved after (sec) : 0.520940
+
+ subgradients found after (sec) : 0.530743
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.530785
+
+ finished changing the variable's weight after (sec) : 0.530803
+
+ first iteration: problem solved after (sec) : 0.544776
+
+ subgradients found after (sec) : 0.564726
+, lowerbound = 45.000000 
+
+ new dual found after (sec) : 0.564781
+
+ finished changing the variable's weight after (sec) : 0.564805
+
+ first iteration: problem solved after (sec) : 0.580204
+
+ subgradients found after (sec) : 0.583687
+, lowerbound = 45.000000 
+
+ new dual found after (sec) : 0.583727
+
+ finished changing the variable's weight after (sec) : 0.583743
+
+ first iteration: problem solved after (sec) : 0.592578
+
+ subgradients found after (sec) : 0.597884
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.597927
+
+ finished changing the variable's weight after (sec) : 0.597938
+
+ first iteration: problem solved after (sec) : 0.601858
+
+ subgradients found after (sec) : 0.613548
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.613673
+
+ finished changing the variable's weight after (sec) : 0.613776
+
+ first iteration: problem solved after (sec) : 0.618175
+
+ subgradients found after (sec) : 0.622886
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.623006
+
+ finished changing the variable's weight after (sec) : 0.623073
+
+ first iteration: problem solved after (sec) : 0.634738
+
+ subgradients found after (sec) : 0.644929
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.645087
+
+ finished changing the variable's weight after (sec) : 0.645164
+
+ first iteration: problem solved after (sec) : 0.650008
+
+ subgradients found after (sec) : 0.655097
+, lowerbound = 1.000000 
+
+ new dual found after (sec) : 0.655218
+
+ finished changing the variable's weight after (sec) : 0.655246
+
+ first iteration: problem solved after (sec) : 0.663799
+
+ subgradients found after (sec) : 0.666612
+, lowerbound = 75.000000 
+
+ new dual found after (sec) : 0.666659
+
+ finished changing the variable's weight after (sec) : 0.666675
+
+ first iteration: problem solved after (sec) : 0.673054
+
+ subgradients found after (sec) : 0.682264
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.682322
+
+ finished changing the variable's weight after (sec) : 0.682347
+
+ first iteration: problem solved after (sec) : 0.687952
+
+ subgradients found after (sec) : 0.697936
+, lowerbound = 45.000000 
+
+ new dual found after (sec) : 0.697986
+
+ finished changing the variable's weight after (sec) : 0.698003
+
+ first iteration: problem solved after (sec) : 0.707602
+
+ subgradients found after (sec) : 0.714583
+, lowerbound = 45.000000 
+
+ new dual found after (sec) : 0.714626
+
+ finished changing the variable's weight after (sec) : 0.714643
+
+ first iteration: problem solved after (sec) : 0.725393
+
+ subgradients found after (sec) : 0.730832
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.730879
+
+ finished changing the variable's weight after (sec) : 0.730895
+
+ first iteration: problem solved after (sec) : 0.746663
+
+ subgradients found after (sec) : 0.751705
+, lowerbound = 45.000000 
+
+ new dual found after (sec) : 0.751794
+
+ finished changing the variable's weight after (sec) : 0.751817
+
+ first iteration: problem solved after (sec) : 0.763637
+
+ subgradients found after (sec) : 0.769296
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.769458
+
+ finished changing the variable's weight after (sec) : 0.769536
+
+ first iteration: problem solved after (sec) : 0.774887
+
+ subgradients found after (sec) : 0.783403
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.783515
+
+ finished changing the variable's weight after (sec) : 0.783556
+
+ first iteration: problem solved after (sec) : 0.789954
+
+ subgradients found after (sec) : 0.803887
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.803957
+
+ finished changing the variable's weight after (sec) : 0.803990
+
+ first iteration: problem solved after (sec) : 0.811035
+
+ subgradients found after (sec) : 0.820756
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.820823
+
+ finished changing the variable's weight after (sec) : 0.820861
+
+ first iteration: problem solved after (sec) : 0.831300
+
+ subgradients found after (sec) : 0.837327
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.837398
+
+ finished changing the variable's weight after (sec) : 0.837426
+
+ first iteration: problem solved after (sec) : 0.854492
+
+ subgradients found after (sec) : 0.864392
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.864545
+
+ finished changing the variable's weight after (sec) : 0.864614
+
+ first iteration: problem solved after (sec) : 0.881985
+
+ subgradients found after (sec) : 0.886445
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.886498
+
+ finished changing the variable's weight after (sec) : 0.886517
+
+ first iteration: problem solved after (sec) : 0.899798
+
+ subgradients found after (sec) : 0.903220
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.903264
+
+ finished changing the variable's weight after (sec) : 0.903286
+
+ first iteration: problem solved after (sec) : 0.914383
+
+ subgradients found after (sec) : 0.918506
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.918559
+
+ finished changing the variable's weight after (sec) : 0.918579
+
+ first iteration: problem solved after (sec) : 0.928877
+
+ subgradients found after (sec) : 0.939936
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.940008
+
+ finished changing the variable's weight after (sec) : 0.940026
+
+ first iteration: problem solved after (sec) : 0.947488
+
+ subgradients found after (sec) : 0.964042
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.964086
+
+ finished changing the variable's weight after (sec) : 0.964109
+
+ first iteration: problem solved after (sec) : 0.973338
+
+ subgradients found after (sec) : 0.980353
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 0.980432
+
+ finished changing the variable's weight after (sec) : 0.980456
+
+ first iteration: problem solved after (sec) : 0.987019
+
+ subgradients found after (sec) : 0.993122
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 0.993286
+
+ finished changing the variable's weight after (sec) : 0.993330
+
+ first iteration: problem solved after (sec) : 0.999261
+
+ subgradients found after (sec) : 1.005822
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.005879
+
+ finished changing the variable's weight after (sec) : 1.005898
+
+ first iteration: problem solved after (sec) : 1.012163
+
+ subgradients found after (sec) : 1.022449
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.022520
+
+ finished changing the variable's weight after (sec) : 1.022543
+
+ first iteration: problem solved after (sec) : 1.027397
+
+ subgradients found after (sec) : 1.039532
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.039577
+
+ finished changing the variable's weight after (sec) : 1.039593
+
+ first iteration: problem solved after (sec) : 1.046551
+
+ subgradients found after (sec) : 1.051828
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.051897
+
+ finished changing the variable's weight after (sec) : 1.051913
+
+ first iteration: problem solved after (sec) : 1.059183
+
+ subgradients found after (sec) : 1.062836
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.062881
+
+ finished changing the variable's weight after (sec) : 1.062899
+
+ first iteration: problem solved after (sec) : 1.077821
+
+ subgradients found after (sec) : 1.081575
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.081611
+
+ finished changing the variable's weight after (sec) : 1.081627
+
+ first iteration: problem solved after (sec) : 1.096263
+
+ subgradients found after (sec) : 1.099700
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.099747
+
+ finished changing the variable's weight after (sec) : 1.099770
+
+ first iteration: problem solved after (sec) : 1.115608
+
+ subgradients found after (sec) : 1.119333
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.119369
+
+ finished changing the variable's weight after (sec) : 1.119384
+
+ first iteration: problem solved after (sec) : 1.134438
+
+ subgradients found after (sec) : 1.138069
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.138116
+
+ finished changing the variable's weight after (sec) : 1.138133
+
+ first iteration: problem solved after (sec) : 1.158348
+
+ subgradients found after (sec) : 1.166183
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.166226
+
+ finished changing the variable's weight after (sec) : 1.166244
+
+ first iteration: problem solved after (sec) : 1.181479
+
+ subgradients found after (sec) : 1.184905
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.184957
+
+ finished changing the variable's weight after (sec) : 1.184983
+
+ first iteration: problem solved after (sec) : 1.200687
+
+ subgradients found after (sec) : 1.207300
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.207356
+
+ finished changing the variable's weight after (sec) : 1.207385
+
+ first iteration: problem solved after (sec) : 1.219406
+
+ subgradients found after (sec) : 1.222643
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.222679
+
+ finished changing the variable's weight after (sec) : 1.222696
+
+ first iteration: problem solved after (sec) : 1.238111
+
+ subgradients found after (sec) : 1.244475
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.244587
+
+ finished changing the variable's weight after (sec) : 1.244842
+
+ first iteration: problem solved after (sec) : 1.257716
+
+ subgradients found after (sec) : 1.273762
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.273810
+
+ finished changing the variable's weight after (sec) : 1.273827
+
+ first iteration: problem solved after (sec) : 1.285971
+
+ subgradients found after (sec) : 1.290857
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.290905
+
+ finished changing the variable's weight after (sec) : 1.290927
+
+ first iteration: problem solved after (sec) : 1.311756
+
+ subgradients found after (sec) : 1.326074
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.326125
+
+ finished changing the variable's weight after (sec) : 1.326160
+
+ first iteration: problem solved after (sec) : 1.334530
+
+ subgradients found after (sec) : 1.349052
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.349107
+
+ finished changing the variable's weight after (sec) : 1.349124
+
+ first iteration: problem solved after (sec) : 1.353694
+
+ subgradients found after (sec) : 1.364390
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.364442
+
+ finished changing the variable's weight after (sec) : 1.364465
+
+ first iteration: problem solved after (sec) : 1.368809
+
+ subgradients found after (sec) : 1.381127
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.381194
+
+ finished changing the variable's weight after (sec) : 1.381211
+
+ first iteration: problem solved after (sec) : 1.390071
+
+ subgradients found after (sec) : 1.398892
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.398947
+
+ finished changing the variable's weight after (sec) : 1.399007
+
+ first iteration: problem solved after (sec) : 1.412047
+
+ subgradients found after (sec) : 1.417008
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.417149
+
+ finished changing the variable's weight after (sec) : 1.417165
+
+ first iteration: problem solved after (sec) : 1.429299
+
+ subgradients found after (sec) : 1.432734
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.432779
+
+ finished changing the variable's weight after (sec) : 1.432807
+
+ first iteration: problem solved after (sec) : 1.439484
+
+ subgradients found after (sec) : 1.452770
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.452826
+
+ finished changing the variable's weight after (sec) : 1.452858
+
+ first iteration: problem solved after (sec) : 1.466494
+
+ subgradients found after (sec) : 1.470024
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.470077
+
+ finished changing the variable's weight after (sec) : 1.470098
+
+ first iteration: problem solved after (sec) : 1.482338
+
+ subgradients found after (sec) : 1.488006
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.488054
+
+ finished changing the variable's weight after (sec) : 1.488087
+
+ first iteration: problem solved after (sec) : 1.504377
+
+ subgradients found after (sec) : 1.507797
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.507849
+
+ finished changing the variable's weight after (sec) : 1.507864
+
+ first iteration: problem solved after (sec) : 1.512105
+
+ subgradients found after (sec) : 1.520699
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.520751
+
+ finished changing the variable's weight after (sec) : 1.520767
+
+ first iteration: problem solved after (sec) : 1.528500
+
+ subgradients found after (sec) : 1.541864
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.542110
+
+ finished changing the variable's weight after (sec) : 1.542185
+
+ first iteration: problem solved after (sec) : 1.552735
+
+ subgradients found after (sec) : 1.564996
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.565076
+
+ finished changing the variable's weight after (sec) : 1.565098
+
+ first iteration: problem solved after (sec) : 1.580799
+
+ subgradients found after (sec) : 1.585080
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.585129
+
+ finished changing the variable's weight after (sec) : 1.585152
+
+ first iteration: problem solved after (sec) : 1.599165
+
+ subgradients found after (sec) : 1.602631
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.602675
+
+ finished changing the variable's weight after (sec) : 1.602692
+
+ first iteration: problem solved after (sec) : 1.616960
+
+ subgradients found after (sec) : 1.621737
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.621923
+
+ finished changing the variable's weight after (sec) : 1.621995
+
+ first iteration: problem solved after (sec) : 1.636517
+
+ subgradients found after (sec) : 1.641711
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.641970
+
+ finished changing the variable's weight after (sec) : 1.642051
+
+ first iteration: problem solved after (sec) : 1.656004
+
+ subgradients found after (sec) : 1.659406
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.659453
+
+ finished changing the variable's weight after (sec) : 1.659469
+
+ first iteration: problem solved after (sec) : 1.675267
+
+ subgradients found after (sec) : 1.678431
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.678479
+
+ finished changing the variable's weight after (sec) : 1.678497
+
+ first iteration: problem solved after (sec) : 1.685132
+
+ subgradients found after (sec) : 1.696662
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.696718
+
+ finished changing the variable's weight after (sec) : 1.696772
+
+ first iteration: problem solved after (sec) : 1.707206
+
+ subgradients found after (sec) : 1.715269
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.715314
+
+ finished changing the variable's weight after (sec) : 1.715328
+
+ first iteration: problem solved after (sec) : 1.730080
+
+ subgradients found after (sec) : 1.734707
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.734849
+
+ finished changing the variable's weight after (sec) : 1.734881
+
+ first iteration: problem solved after (sec) : 1.744065
+
+ subgradients found after (sec) : 1.757242
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.757308
+
+ finished changing the variable's weight after (sec) : 1.757331
+
+ first iteration: problem solved after (sec) : 1.772778
+
+ subgradients found after (sec) : 1.776581
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.776661
+
+ finished changing the variable's weight after (sec) : 1.776715
+
+ first iteration: problem solved after (sec) : 1.788041
+
+ subgradients found after (sec) : 1.791603
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.791644
+
+ finished changing the variable's weight after (sec) : 1.791666
+
+ first iteration: problem solved after (sec) : 1.804485
+
+ subgradients found after (sec) : 1.811822
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.811865
+
+ finished changing the variable's weight after (sec) : 1.811887
+
+ first iteration: problem solved after (sec) : 1.816012
+
+ subgradients found after (sec) : 1.831486
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.831672
+
+ finished changing the variable's weight after (sec) : 1.831734
+
+ first iteration: problem solved after (sec) : 1.837399
+
+ subgradients found after (sec) : 1.852032
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.852074
+
+ finished changing the variable's weight after (sec) : 1.852090
+
+ first iteration: problem solved after (sec) : 1.858960
+
+ subgradients found after (sec) : 1.874654
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.874708
+
+ finished changing the variable's weight after (sec) : 1.874723
+
+ first iteration: problem solved after (sec) : 1.881609
+
+ subgradients found after (sec) : 1.894558
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.894651
+
+ finished changing the variable's weight after (sec) : 1.894701
+
+ first iteration: problem solved after (sec) : 1.914189
+
+ subgradients found after (sec) : 1.918536
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.918665
+
+ finished changing the variable's weight after (sec) : 1.918728
+
+ first iteration: problem solved after (sec) : 1.932328
+
+ subgradients found after (sec) : 1.942495
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.942625
+
+ finished changing the variable's weight after (sec) : 1.942659
+
+ first iteration: problem solved after (sec) : 1.954691
+
+ subgradients found after (sec) : 1.969142
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 1.969201
+
+ finished changing the variable's weight after (sec) : 1.969223
+
+ first iteration: problem solved after (sec) : 1.975786
+
+ subgradients found after (sec) : 1.993815
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 1.993863
+
+ finished changing the variable's weight after (sec) : 1.993878
+
+ first iteration: problem solved after (sec) : 2.008093
+
+ subgradients found after (sec) : 2.019121
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.019164
+
+ finished changing the variable's weight after (sec) : 2.019180
+
+ first iteration: problem solved after (sec) : 2.030906
+
+ subgradients found after (sec) : 2.034102
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.034144
+
+ finished changing the variable's weight after (sec) : 2.034160
+
+ first iteration: problem solved after (sec) : 2.045757
+
+ subgradients found after (sec) : 2.059330
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.059665
+
+ finished changing the variable's weight after (sec) : 2.059770
+
+ first iteration: problem solved after (sec) : 2.067335
+
+ subgradients found after (sec) : 2.076437
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.076619
+
+ finished changing the variable's weight after (sec) : 2.076666
+
+ first iteration: problem solved after (sec) : 2.084611
+
+ subgradients found after (sec) : 2.092310
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.092434
+
+ finished changing the variable's weight after (sec) : 2.092461
+
+ first iteration: problem solved after (sec) : 2.106273
+
+ subgradients found after (sec) : 2.113490
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.114016
+
+ finished changing the variable's weight after (sec) : 2.114102
+
+ first iteration: problem solved after (sec) : 2.137330
+
+ subgradients found after (sec) : 2.140904
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.140941
+
+ finished changing the variable's weight after (sec) : 2.140958
+
+ first iteration: problem solved after (sec) : 2.155801
+
+ subgradients found after (sec) : 2.160276
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.160327
+
+ finished changing the variable's weight after (sec) : 2.160345
+
+ first iteration: problem solved after (sec) : 2.173429
+
+ subgradients found after (sec) : 2.176844
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.176889
+
+ finished changing the variable's weight after (sec) : 2.176905
+
+ first iteration: problem solved after (sec) : 2.189498
+
+ subgradients found after (sec) : 2.193006
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.193080
+
+ finished changing the variable's weight after (sec) : 2.193122
+
+ first iteration: problem solved after (sec) : 2.206445
+
+ subgradients found after (sec) : 2.216242
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.216291
+
+ finished changing the variable's weight after (sec) : 2.216308
+
+ first iteration: problem solved after (sec) : 2.227342
+
+ subgradients found after (sec) : 2.241271
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.241314
+
+ finished changing the variable's weight after (sec) : 2.241332
+
+ first iteration: problem solved after (sec) : 2.246007
+
+ subgradients found after (sec) : 2.249583
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.249640
+
+ finished changing the variable's weight after (sec) : 2.249656
+
+ first iteration: problem solved after (sec) : 2.265344
+
+ subgradients found after (sec) : 2.269057
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.269077
+
+ finished changing the variable's weight after (sec) : 2.269093
+
+ first iteration: problem solved after (sec) : 2.297654
+
+ subgradients found after (sec) : 2.303096
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.303371
+
+ finished changing the variable's weight after (sec) : 2.303458
+
+ first iteration: problem solved after (sec) : 2.318736
+
+ subgradients found after (sec) : 2.322329
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.322373
+
+ finished changing the variable's weight after (sec) : 2.322388
+
+ first iteration: problem solved after (sec) : 2.340886
+
+ subgradients found after (sec) : 2.358288
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.358459
+
+ finished changing the variable's weight after (sec) : 2.358501
+
+ first iteration: problem solved after (sec) : 2.365414
+
+ subgradients found after (sec) : 2.392701
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.392796
+
+ finished changing the variable's weight after (sec) : 2.392824
+
+ first iteration: problem solved after (sec) : 2.397168
+
+ subgradients found after (sec) : 2.400464
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.400518
+
+ finished changing the variable's weight after (sec) : 2.400535
+
+ first iteration: problem solved after (sec) : 2.416346
+
+ subgradients found after (sec) : 2.422995
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.423040
+
+ finished changing the variable's weight after (sec) : 2.423055
+
+ first iteration: problem solved after (sec) : 2.440188
+
+ subgradients found after (sec) : 2.443503
+, lowerbound = 120.000000 
+
+ new dual found after (sec) : 2.443540
+
+ finished changing the variable's weight after (sec) : 2.443556
+
+ first iteration: problem solved after (sec) : 2.458354
+
+ subgradients found after (sec) : 2.464748
+, lowerbound = 31.000000 
+
+ new dual found after (sec) : 2.464921
diff --git a/var.txt b/var.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/varobjs.txt b/varobjs.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391