Commit 844958a572394cc8a9ca67c5bf564141dfb54408
1 parent
26954736
Exists in
master
and in
2 other branches
fixed infinite loop bug that caused solution for 200UG limit to take too long, p…
…rogramm should now be test ready
Showing
4 changed files
with
336 additions
and
51 deletions
Show diff stats
MODFIRE-Prototype/Times/results
1 | -Wood_Yield_0 = {4511,5239,5558,5947,6287,6994...,34515} | |
2 | -8865 | |
3 | -4443.3657 | |
4 | -H | |
5 | -Wood_Yield_0 = {4511,5239,5558,5947,6287,6994...,34515} | |
6 | - | |
7 | -real 0m1,979s | |
8 | -user 0m4,200s | |
9 | -sys 0m0,375s | |
10 | -running | |
11 | - | |
12 | -real 0m2,272s | |
13 | -user 0m3,787s | |
14 | -sys 0m0,432s | |
15 | -running | |
16 | - | |
17 | -real 0m11,754s | |
18 | -user 0m5,970s | |
19 | -sys 0m0,700s | |
20 | -running | |
21 | - | |
22 | -real 0m6,372s | |
23 | -user 0m6,190s | |
24 | -sys 0m0,554s | |
25 | 1 | running |
2 | +UG_0 = 3313, wyWood_Yield_0 = 11176 | |
3 | +UG_1 = 20, wyWood_Yield_1 = 1889 | |
4 | +UG_2 = 21, wyWood_Yield_2 = 1692 | |
5 | +UG_3 = 503, wyWood_Yield_3 = 8718 | |
6 | +UG_4 = 503, wyWood_Yield_4 = 2579 | |
7 | +UG_5 = 20, wyWood_Yield_5 = 5684 | |
8 | +UG_6 = 1, wyWood_Yield_6 = 15522 | |
9 | +UG_7 = 503, wyWood_Yield_7 = 2651 | |
10 | +UG_8 = 700, wyWood_Yield_8 = 1773 | |
11 | +UG_9 = 21, wyWood_Yield_9 = 15701 | |
12 | +UG_10 = 503, wyWood_Yield_10 = 890 | |
13 | +UG_11 = 3, wyWood_Yield_11 = 1181 | |
14 | +UG_12 = 503, wyWood_Yield_12 = 5566 | |
15 | +UG_13 = 3, wyWood_Yield_13 = 6344 | |
16 | +UG_14 = 2, wyWood_Yield_14 = 1270 | |
17 | +UG_15 = 3, wyWood_Yield_15 = 2685 | |
18 | +UG_16 = 3, wyWood_Yield_16 = 2518 | |
19 | +UG_17 = 3, wyWood_Yield_17 = 6284 | |
20 | +UG_18 = 3, wyWood_Yield_18 = 3550 | |
21 | +UG_19 = 2, wyWood_Yield_19 = 7943 | |
22 | +UG_20 = 1, wyWood_Yield_20 = 10215 | |
23 | +UG_21 = 3, wyWood_Yield_21 = 1216 | |
24 | +UG_22 = 1, wyWood_Yield_22 = 6146 | |
25 | +UG_23 = 1, wyWood_Yield_23 = 5049 | |
26 | +UG_24 = 3, wyWood_Yield_24 = 6287 | |
27 | +UG_25 = 2, wyWood_Yield_25 = 5814 | |
28 | +UG_26 = 1, wyWood_Yield_26 = 3654 | |
29 | +UG_27 = 503, wyWood_Yield_27 = 7602 | |
30 | +UG_28 = 503, wyWood_Yield_28 = 5097 | |
31 | +UG_29 = 2, wyWood_Yield_29 = 20911 | |
32 | +UG_30 = 503, wyWood_Yield_30 = 6408 | |
33 | +UG_31 = 2, wyWood_Yield_31 = 2595 | |
34 | +UG_32 = 3316, wyWood_Yield_32 = 8640 | |
35 | +UG_33 = 3, wyWood_Yield_33 = 6011 | |
36 | +UG_34 = 2, wyWood_Yield_34 = 6156 | |
37 | +UG_35 = 3, wyWood_Yield_35 = 4356 | |
38 | +UG_36 = 1, wyWood_Yield_36 = 1191 | |
39 | +UG_37 = 503, wyWood_Yield_37 = 2892 | |
40 | +UG_38 = 3, wyWood_Yield_38 = 2352 | |
41 | +UG_39 = 3, wyWood_Yield_39 = 209 | |
42 | +UG_40 = 3, wyWood_Yield_40 = 5356 | |
43 | +UG_41 = 2, wyWood_Yield_41 = 4328 | |
44 | +UG_42 = 3, wyWood_Yield_42 = 4039 | |
45 | +UG_43 = 2, wyWood_Yield_43 = 4140 | |
46 | +UG_44 = 2, wyWood_Yield_44 = 3985 | |
47 | +UG_45 = 2, wyWood_Yield_45 = 1322 | |
48 | +UG_46 = 3, wyWood_Yield_46 = 3478 | |
49 | +UG_47 = 21, wyWood_Yield_47 = 4056 | |
50 | +UG_48 = 2, wyWood_Yield_48 = 1367 | |
51 | +UG_49 = 503, wyWood_Yield_49 = 3752 | |
52 | +UG_50 = 503, wyWood_Yield_50 = 2637 | |
53 | +UG_51 = 503, wyWood_Yield_51 = 1335 | |
54 | +UG_52 = 1, wyWood_Yield_52 = 2980 | |
55 | +UG_53 = 500, wyWood_Yield_53 = 6275 | |
56 | +UG_54 = 503, wyWood_Yield_54 = 814 | |
57 | +UG_55 = 503, wyWood_Yield_55 = 5044 | |
58 | +UG_56 = 2, wyWood_Yield_56 = 8365 | |
59 | +UG_57 = 20, wyWood_Yield_57 = 2690 | |
60 | +UG_58 = 2, wyWood_Yield_58 = 32897 | |
61 | +UG_59 = 3, wyWood_Yield_59 = 4720 | |
62 | +UG_60 = 503, wyWood_Yield_60 = 12677 | |
63 | +UG_61 = 503, wyWood_Yield_61 = 870 | |
64 | +UG_62 = 503, wyWood_Yield_62 = 1031 | |
65 | +UG_63 = 2, wyWood_Yield_63 = 1440 | |
66 | +UG_64 = 503, wyWood_Yield_64 = 787 | |
67 | +UG_65 = 1, wyWood_Yield_65 = 7905 | |
68 | +UG_66 = 503, wyWood_Yield_66 = 1008 | |
69 | +UG_67 = 503, wyWood_Yield_67 = 988 | |
70 | +UG_68 = 2, wyWood_Yield_68 = 3094 | |
71 | +UG_69 = 503, wyWood_Yield_69 = 3632 | |
72 | +UG_70 = 503, wyWood_Yield_70 = 281 | |
73 | +UG_71 = 2, wyWood_Yield_71 = 11008 | |
74 | +UG_72 = 3316, wyWood_Yield_72 = 5480 | |
75 | +UG_73 = 2317, wyWood_Yield_73 = 5715 | |
76 | +UG_74 = 503, wyWood_Yield_74 = 2513 | |
77 | +UG_75 = 503, wyWood_Yield_75 = 2374 | |
78 | +UG_76 = 1, wyWood_Yield_76 = 8849 | |
79 | +UG_77 = 2, wyWood_Yield_77 = 1715 | |
80 | +UG_78 = 503, wyWood_Yield_78 = 2169 | |
81 | +UG_79 = 20, wyWood_Yield_79 = 1670 | |
82 | +UG_80 = 2, wyWood_Yield_80 = 1191 | |
83 | +UG_81 = 503, wyWood_Yield_81 = 2769 | |
84 | +UG_82 = 3316, wyWood_Yield_82 = 7852 | |
85 | +UG_83 = 2, wyWood_Yield_83 = 7220 | |
86 | +UG_84 = 3, wyWood_Yield_84 = 3913 | |
87 | +UG_85 = 1, wyWood_Yield_85 = 4328 | |
88 | +UG_86 = 3, wyWood_Yield_86 = 5616 | |
89 | +UG_87 = 1, wyWood_Yield_87 = 4394 | |
90 | +UG_88 = 1, wyWood_Yield_88 = 5433 | |
91 | +UG_89 = 503, wyWood_Yield_89 = 3734 | |
92 | +UG_90 = 503, wyWood_Yield_90 = 2657 | |
93 | +UG_91 = 503, wyWood_Yield_91 = 3474 | |
94 | +UG_92 = 503, wyWood_Yield_92 = 2988 | |
95 | +UG_93 = 2, wyWood_Yield_93 = 3508 | |
96 | +UG_94 = 3, wyWood_Yield_94 = 3957 | |
97 | +UG_95 = 3, wyWood_Yield_95 = 3095 | |
98 | +UG_96 = 1, wyWood_Yield_96 = 2236 | |
99 | +UG_97 = 503, wyWood_Yield_97 = 1792 | |
100 | +UG_98 = 1, wyWood_Yield_98 = 7881 | |
101 | +UG_99 = 503, wyWood_Yield_99 = 252 | |
102 | +UG_100 = 318, wyWood_Yield_100 = 2725 | |
103 | +UG_101 = 1, wyWood_Yield_101 = 7248 | |
104 | +UG_102 = 2, wyWood_Yield_102 = 2097 | |
105 | +UG_103 = 2, wyWood_Yield_103 = 3419 | |
106 | +UG_104 = 3, wyWood_Yield_104 = 529 | |
107 | +UG_105 = 1, wyWood_Yield_105 = 4845 | |
108 | +UG_106 = 34, wyWood_Yield_106 = 24996 | |
109 | +UG_107 = 3, wyWood_Yield_107 = 2501 | |
110 | +UG_108 = 2, wyWood_Yield_108 = 3899 | |
111 | +UG_109 = 3, wyWood_Yield_109 = 1502 | |
112 | +UG_110 = 3, wyWood_Yield_110 = 5342 | |
113 | +UG_111 = 503, wyWood_Yield_111 = 1252 | |
114 | +UG_112 = 500, wyWood_Yield_112 = 2066 | |
115 | +UG_113 = 3, wyWood_Yield_113 = 6492 | |
116 | +UG_114 = 503, wyWood_Yield_114 = 2863 | |
117 | +UG_115 = 3, wyWood_Yield_115 = 3176 | |
118 | +UG_116 = 1, wyWood_Yield_116 = 11234 | |
119 | +UG_117 = 503, wyWood_Yield_117 = 1245 | |
120 | +UG_118 = 503, wyWood_Yield_118 = 5295 | |
121 | +UG_119 = 503, wyWood_Yield_119 = 2720 | |
122 | +UG_120 = 503, wyWood_Yield_120 = 274 | |
123 | +UG_121 = 503, wyWood_Yield_121 = 3331 | |
124 | +UG_122 = 503, wyWood_Yield_122 = 2067 | |
125 | +UG_123 = 3, wyWood_Yield_123 = 5061 | |
126 | +UG_124 = 2, wyWood_Yield_124 = 11961 | |
127 | +UG_125 = 3316, wyWood_Yield_125 = 5753 | |
128 | +UG_126 = 2, wyWood_Yield_126 = 1582 | |
129 | +UG_127 = 503, wyWood_Yield_127 = 836 | |
130 | +UG_128 = 12, wyWood_Yield_128 = 4064 | |
131 | +UG_129 = 3, wyWood_Yield_129 = 1682 | |
132 | +UG_130 = 2, wyWood_Yield_130 = 1128 | |
133 | +UG_131 = 2, wyWood_Yield_131 = 7645 | |
134 | +UG_132 = 1, wyWood_Yield_132 = 5472 | |
135 | +UG_133 = 2, wyWood_Yield_133 = 225 | |
136 | +UG_134 = 1, wyWood_Yield_134 = 3350 | |
137 | +UG_135 = 503, wyWood_Yield_135 = 3745 | |
138 | +UG_136 = 2, wyWood_Yield_136 = 1892 | |
139 | +UG_137 = 1, wyWood_Yield_137 = 5556 | |
140 | +UG_138 = 2, wyWood_Yield_138 = 590 | |
141 | +UG_139 = 503, wyWood_Yield_139 = 3762 | |
142 | +UG_140 = 2, wyWood_Yield_140 = 4218 | |
143 | +UG_141 = 2, wyWood_Yield_141 = 2449 | |
144 | +UG_142 = 2, wyWood_Yield_142 = 7362 | |
145 | +UG_143 = 503, wyWood_Yield_143 = 455 | |
146 | +UG_144 = 503, wyWood_Yield_144 = 3173 | |
147 | +UG_145 = 20, wyWood_Yield_145 = 2021 | |
148 | +UG_146 = 3316, wyWood_Yield_146 = 6011 | |
149 | +UG_147 = 2, wyWood_Yield_147 = 3700 | |
150 | +UG_148 = 2, wyWood_Yield_148 = 2533 | |
151 | +UG_149 = 2, wyWood_Yield_149 = 6555 | |
152 | +UG_150 = 2, wyWood_Yield_150 = 3621 | |
153 | +UG_151 = 1, wyWood_Yield_151 = 2002 | |
154 | +UG_152 = 2, wyWood_Yield_152 = 3283 | |
155 | +UG_153 = 2, wyWood_Yield_153 = 1390 | |
156 | +UG_154 = 503, wyWood_Yield_154 = 4909 | |
157 | +UG_155 = 503, wyWood_Yield_155 = 3698 | |
158 | +UG_156 = 2, wyWood_Yield_156 = 1881 | |
159 | +UG_157 = 801, wyWood_Yield_157 = 0 | |
160 | +UG_158 = 2, wyWood_Yield_158 = 1454 | |
161 | +UG_159 = 2, wyWood_Yield_159 = 6765 | |
162 | +UG_160 = 3, wyWood_Yield_160 = 10948 | |
163 | +UG_161 = 1, wyWood_Yield_161 = 1398 | |
164 | +UG_162 = 2, wyWood_Yield_162 = 1598 | |
165 | +UG_163 = 3, wyWood_Yield_163 = 4902 | |
166 | +UG_164 = 3, wyWood_Yield_164 = 4662 | |
167 | +UG_165 = 3316, wyWood_Yield_165 = 4187 | |
168 | +UG_166 = 2, wyWood_Yield_166 = 13027 | |
169 | +UG_167 = 2, wyWood_Yield_167 = 2353 | |
170 | +UG_168 = 1, wyWood_Yield_168 = 8650 | |
171 | +UG_169 = 2, wyWood_Yield_169 = 5821 | |
172 | +UG_170 = 1, wyWood_Yield_170 = 327 | |
173 | +UG_171 = 2, wyWood_Yield_171 = 3755 | |
174 | +UG_172 = 503, wyWood_Yield_172 = 1402 | |
175 | +UG_173 = 500, wyWood_Yield_173 = 2430 | |
176 | +UG_174 = 503, wyWood_Yield_174 = 1182 | |
177 | +UG_175 = 2, wyWood_Yield_175 = 1956 | |
178 | +UG_176 = 503, wyWood_Yield_176 = 5340 | |
179 | +UG_177 = 2, wyWood_Yield_177 = 3846 | |
180 | +UG_178 = 2, wyWood_Yield_178 = 1189 | |
181 | +UG_179 = 503, wyWood_Yield_179 = 538 | |
182 | +UG_180 = 15, wyWood_Yield_180 = 735 | |
183 | +UG_181 = 34, wyWood_Yield_181 = 516 | |
184 | +UG_182 = 503, wyWood_Yield_182 = 944 | |
185 | +UG_183 = 503, wyWood_Yield_183 = 2402 | |
186 | +UG_184 = 503, wyWood_Yield_184 = 9486 | |
187 | +UG_185 = 503, wyWood_Yield_185 = 1490 | |
188 | +UG_186 = 503, wyWood_Yield_186 = 2126 | |
189 | +UG_187 = 2, wyWood_Yield_187 = 650 | |
190 | +UG_188 = 503, wyWood_Yield_188 = 1570 | |
191 | +UG_189 = 503, wyWood_Yield_189 = 592 | |
192 | +UG_190 = 503, wyWood_Yield_190 = 998 | |
193 | +UG_191 = 2, wyWood_Yield_191 = 2752 | |
194 | +UG_192 = 2, wyWood_Yield_192 = 1171 | |
195 | +UG_193 = 2, wyWood_Yield_193 = 2233 | |
196 | +UG_194 = 2, wyWood_Yield_194 = 4127 | |
197 | +UG_195 = 21316, wyWood_Yield_195 = 9072 | |
198 | +UG_196 = 2, wyWood_Yield_196 = 2773 | |
199 | +UG_197 = 3, wyWood_Yield_197 = 4989 | |
200 | +UG_198 = 503, wyWood_Yield_198 = 1310 | |
201 | +UG_199 = 503, wyWood_Yield_199 = 935 | |
202 | +UG_200 = 2, wyWood_Yield_200 = 2356 | |
203 | +SUM = 841133 | |
26 | 204 | |
27 | -real 358m39,158s | |
28 | -user 347m35,512s | |
29 | -sys 1m6,124s | |
205 | +real 0m10,705s | |
206 | +user 0m13,911s | |
207 | +sys 0m0,407s | ... | ... |
MODFIRE-Prototype/out/production/MODFIRE-Prototype/CustomPropagator2.class
No preview for this file type
MODFIRE-Prototype/outputPairs.csv
1 | -1,3 | |
1 | +1,3313 | |
2 | 2 | 2,20 |
3 | 3 | 3,21 |
4 | 4 | 4,503 |
5 | 5 | 5,503 |
6 | 6 | 6,20 |
7 | -7,3316 | |
7 | +7,1 | |
8 | 8 | 8,503 |
9 | 9 | 9,700 |
10 | 10 | 10,21 |
11 | 11 | 11,503 |
12 | 12 | 12,3 |
13 | 13 | 13,503 |
14 | -14,1 | |
14 | +14,3 | |
15 | 15 | 15,2 |
16 | 16 | 19,3 |
17 | 17 | 20,3 |
18 | 18 | 21,3 |
19 | 19 | 22,3 |
20 | 20 | 23,2 |
21 | -24,3 | |
21 | +24,1 | |
22 | 22 | 25,3 |
23 | 23 | 27,1 |
24 | 24 | 28,1 |
... | ... | @@ -31,11 +31,11 @@ |
31 | 31 | 35,503 |
32 | 32 | 37,2 |
33 | 33 | 38,3316 |
34 | -39,2 | |
34 | +39,3 | |
35 | 35 | 40,2 |
36 | 36 | 41,3 |
37 | 37 | 42,1 |
38 | -43,502 | |
38 | +43,503 | |
39 | 39 | 45,3 |
40 | 40 | 46,3 |
41 | 41 | 48,3 |
... | ... | @@ -57,10 +57,10 @@ |
57 | 57 | 64,2 |
58 | 58 | 66,20 |
59 | 59 | 67,2 |
60 | -68,2 | |
61 | -69,502 | |
60 | +68,3 | |
61 | +69,503 | |
62 | 62 | 70,503 |
63 | -71,502 | |
63 | +71,503 | |
64 | 64 | 72,2 |
65 | 65 | 73,503 |
66 | 66 | 74,1 |
... | ... | @@ -79,23 +79,123 @@ |
79 | 79 | 90,503 |
80 | 80 | 91,20 |
81 | 81 | 92,2 |
82 | -93,502 | |
82 | +93,503 | |
83 | 83 | 94,3316 |
84 | 84 | 95,2 |
85 | 85 | 96,3 |
86 | 86 | 97,1 |
87 | 87 | 98,3 |
88 | -99,2 | |
88 | +99,1 | |
89 | 89 | 100,1 |
90 | 90 | 101,503 |
91 | -102,502 | |
92 | -103,502 | |
91 | +102,503 | |
92 | +103,503 | |
93 | 93 | 104,503 |
94 | 94 | 105,2 |
95 | 95 | 106,3 |
96 | 96 | 107,3 |
97 | 97 | 108,1 |
98 | -109,502 | |
99 | -110,2 | |
98 | +109,503 | |
99 | +110,1 | |
100 | 100 | 111,503 |
101 | 101 | 112,318 |
102 | +113,1 | |
103 | +114,2 | |
104 | +115,2 | |
105 | +116,3 | |
106 | +117,1 | |
107 | +118,34 | |
108 | +119,3 | |
109 | +120,2 | |
110 | +121,3 | |
111 | +122,3 | |
112 | +124,503 | |
113 | +125,500 | |
114 | +126,3 | |
115 | +127,503 | |
116 | +128,3 | |
117 | +129,1 | |
118 | +130,503 | |
119 | +131,503 | |
120 | +132,503 | |
121 | +133,503 | |
122 | +134,503 | |
123 | +135,503 | |
124 | +136,3 | |
125 | +138,2 | |
126 | +140,3316 | |
127 | +141,2 | |
128 | +142,503 | |
129 | +143,12 | |
130 | +144,3 | |
131 | +145,2 | |
132 | +146,2 | |
133 | +147,1 | |
134 | +149,2 | |
135 | +150,1 | |
136 | +153,503 | |
137 | +154,2 | |
138 | +155,1 | |
139 | +156,2 | |
140 | +157,503 | |
141 | +158,2 | |
142 | +159,2 | |
143 | +160,2 | |
144 | +161,503 | |
145 | +162,503 | |
146 | +163,20 | |
147 | +164,3316 | |
148 | +165,2 | |
149 | +166,2 | |
150 | +167,2 | |
151 | +168,2 | |
152 | +169,1 | |
153 | +170,2 | |
154 | +171,2 | |
155 | +172,503 | |
156 | +173,503 | |
157 | +174,2 | |
158 | +175,801 | |
159 | +176,2 | |
160 | +177,2 | |
161 | +178,3 | |
162 | +179,1 | |
163 | +180,2 | |
164 | +181,3 | |
165 | +182,3 | |
166 | +183,3316 | |
167 | +184,2 | |
168 | +185,2 | |
169 | +186,1 | |
170 | +187,2 | |
171 | +188,1 | |
172 | +189,2 | |
173 | +190,503 | |
174 | +191,500 | |
175 | +192,503 | |
176 | +193,2 | |
177 | +194,503 | |
178 | +195,2 | |
179 | +196,2 | |
180 | +198,503 | |
181 | +199,15 | |
182 | +200,34 | |
183 | +201,503 | |
184 | +202,503 | |
185 | +203,503 | |
186 | +204,503 | |
187 | +206,503 | |
188 | +207,2 | |
189 | +208,503 | |
190 | +209,503 | |
191 | +210,503 | |
192 | +211,2 | |
193 | +212,2 | |
194 | +213,2 | |
195 | +214,2 | |
196 | +215,21316 | |
197 | +217,2 | |
198 | +218,3 | |
199 | +219,503 | |
200 | +220,503 | |
201 | +221,2 | ... | ... |
MODFIRE-Prototype/src/CustomPropagator2.java
... | ... | @@ -56,8 +56,8 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
56 | 56 | //recursive function that fills an array list with the continuous adjacent UGs that have CUTS. |
57 | 57 | public int gPropagate(int first, int ugIndex, int year, int sum) throws Exception{ |
58 | 58 | if(ugIndex == first){ //if the UG we are on isn't the UG we started out from |
59 | - if(nodes[ugIndex].valid && vars[ugIndex].isInstantiated()) { //and if this UG is instantiaded and hasn't been gladed yet | |
60 | - | |
59 | + if(nodes[ugIndex].valid && vars[ugIndex].isInstantiated() && nodes[ugIndex].time < year) { //and if this UG is instantiaded and hasn't been gladed yet | |
60 | + nodes[ugIndex].time = year; | |
61 | 61 | sum = sum + (int)nodes[ugIndex].area; |
62 | 62 | |
63 | 63 | if(sum > b){ |
... | ... | @@ -67,7 +67,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
67 | 67 | for (int rec = 0; rec < nodes[ugIndex].adj.length; rec++) { //and check its adjacencies |
68 | 68 | |
69 | 69 | // to access the adjacent ugs we go through the ADJ array in current UG's node. |
70 | - if(nodes[nodes[ugIndex].adj[rec]].valid && vars[nodes[ugIndex].adj[rec]].isInstantiated()) { | |
70 | + if(nodes[nodes[ugIndex].adj[rec]].valid && vars[nodes[ugIndex].adj[rec]].isInstantiated() && nodes[nodes[ugIndex].adj[rec]].time < year) { | |
71 | 71 | //we only do this if the adjacent UG's haven't been gladed and if they've been instantiated. |
72 | 72 | sum = gPropagate(first, nodes[ugIndex].adj[rec], year, sum); |
73 | 73 | } |
... | ... | @@ -75,7 +75,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
75 | 75 | } |
76 | 76 | } |
77 | 77 | else { |
78 | - if (nodes[ugIndex].valid && vars[ugIndex].isInstantiated()) { //check if the UG hasn't been gladed and if it's already instantiated | |
78 | + if (nodes[ugIndex].valid && vars[ugIndex].isInstantiated() && nodes[ugIndex].time < year) { //check if the UG hasn't been gladed and if it's already instantiated | |
79 | 79 | |
80 | 80 | int ugPresc = vars[ugIndex].getValue(); //we get the prescription value of the current UG |
81 | 81 | |
... | ... | @@ -83,6 +83,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
83 | 83 | |
84 | 84 | if(hasCut.contains(ugPresc)){ //if the List with all those prescriptions has the prescription the UG has been instantiated with. |
85 | 85 | |
86 | + nodes[ugIndex].time = year; | |
86 | 87 | |
87 | 88 | sum = sum + (int)nodes[ugIndex].area; |
88 | 89 | |
... | ... | @@ -92,7 +93,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
92 | 93 | |
93 | 94 | for (int rec = 0; rec < nodes[ugIndex].adj.length; rec++) { //and check its adjacencies |
94 | 95 | |
95 | - if(nodes[nodes[ugIndex].adj[rec]].valid && vars[nodes[ugIndex].adj[rec]].isInstantiated()) { | |
96 | + if(nodes[nodes[ugIndex].adj[rec]].valid && vars[nodes[ugIndex].adj[rec]].isInstantiated() && nodes[nodes[ugIndex].adj[rec]].time < year) { | |
96 | 97 | sum = gPropagate(first, nodes[ugIndex].adj[rec], year, sum); |
97 | 98 | } |
98 | 99 | } |
... | ... | @@ -136,6 +137,9 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
136 | 137 | // if this value was 0 that means the UG with this presc has no cuts |
137 | 138 | |
138 | 139 | for(int i = 0; i < nodes.length; i++) |
140 | + nodes[i].time = 0; | |
141 | + | |
142 | + | |
139 | 143 | for (int p = 0; p < nodes[ugIndex].years[prescIndex].length; p++) { //for every year that our UG has cuts |
140 | 144 | |
141 | 145 | int year = nodes[ugIndex].years[prescIndex][p]; //current year |
... | ... | @@ -156,7 +160,8 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
156 | 160 | // same as gPropagate but without the "isInstatiated" checks |
157 | 161 | public int g(int first, int ugIndex, int year, int sum) throws Exception{ |
158 | 162 | if(ugIndex == first){ |
159 | - if(nodes[ugIndex].valid) { | |
163 | + if(nodes[ugIndex].valid && nodes[ugIndex].time < year) { | |
164 | + nodes[ugIndex].time = year; | |
160 | 165 | |
161 | 166 | sum = sum + (int)nodes[ugIndex].area; |
162 | 167 | |
... | ... | @@ -167,20 +172,21 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
167 | 172 | for (int rec = 0; rec < nodes[ugIndex].adj.length; rec++) { |
168 | 173 | |
169 | 174 | |
170 | - if(nodes[nodes[ugIndex].adj[rec]].valid) { | |
175 | + if(nodes[nodes[ugIndex].adj[rec]].valid && nodes[nodes[ugIndex].adj[rec]].time < year) { | |
171 | 176 | sum = g(first, nodes[ugIndex].adj[rec], year, sum); |
172 | 177 | } |
173 | 178 | } |
174 | 179 | } |
175 | 180 | } |
176 | 181 | else { |
177 | - if (nodes[ugIndex].valid) { | |
182 | + if (nodes[ugIndex].valid && nodes[ugIndex].time < year) { | |
178 | 183 | |
179 | 184 | int ugPresc = vars[ugIndex].getValue(); |
180 | 185 | |
181 | 186 | ArrayList<Integer> hasCut = hasCutInYear(ugIndex, year); |
182 | 187 | |
183 | 188 | if(hasCut.contains(ugPresc)){ |
189 | + nodes[ugIndex].time = year; | |
184 | 190 | |
185 | 191 | sum = sum + (int)nodes[ugIndex].area; |
186 | 192 | |
... | ... | @@ -190,7 +196,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
190 | 196 | |
191 | 197 | for (int rec = 0; rec < nodes[ugIndex].adj.length; rec++) { |
192 | 198 | |
193 | - if(nodes[nodes[ugIndex].adj[rec]].valid) { | |
199 | + if(nodes[nodes[ugIndex].adj[rec]].valid && nodes[nodes[ugIndex].adj[rec]].time < year) { | |
194 | 200 | sum = g(first, nodes[ugIndex].adj[rec], year, sum); |
195 | 201 | } |
196 | 202 | } |
... | ... | @@ -233,6 +239,7 @@ public class CustomPropagator2 extends org.chocosolver.solver.constraints.Propag |
233 | 239 | if (nodes[ugIndex].years[prescIndex][0] > 0) { //if this UG with this PREC has cuts |
234 | 240 | |
235 | 241 | for(int i = 0; i < nodes.length; i++) |
242 | + nodes[i].time = 0; | |
236 | 243 | |
237 | 244 | for (int p = 0; p < nodes[ugIndex].years[prescIndex].length; p++) { //for every year that our UG has cuts |
238 | 245 | ... | ... |