Skip to content

Commit 510f526

Browse files
committed
Enhance output formatting for service level and p_vector in
StochasticLotSizingFast
1 parent c55ef28 commit 510f526

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

jsdp/src/main/java/jsdp/app/standalone/stochastic/servicelevel/StochasticLotSizingFast.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ public static Solution sdp(Instance instance) {
133133
*/
134134

135135
public static Solution coordinateDescent(Instance instance, int initialInventory, int safeMin) {
136+
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(Locale.ENGLISH);
137+
DecimalFormat df = new DecimalFormat("#.000", otherSymbols);
138+
136139
p_vector = new double[instance.getStages()];
137140
Arrays.fill(p_vector, instance.holdingCost * instance.alpha / (1.0 - instance.alpha));
138141

@@ -150,6 +153,9 @@ public static Solution coordinateDescent(Instance instance, int initialInventory
150153
Solution solution = null;
151154
while (!end) {
152155
solution = sdp_lagrangian(instance);
156+
157+
System.out.println("S: " + Arrays.toString(solution.find_S(instance, safeMin)));
158+
System.out.println("s: " + Arrays.toString(solution.find_s(instance, safeMin)));
153159

154160
double confidence = 0.95;
155161
double error = 0.0001;
@@ -164,7 +170,8 @@ public static Solution coordinateDescent(Instance instance, int initialInventory
164170
}
165171

166172
end = true;
167-
Arrays.stream(results).forEach(i -> System.out.print(i + "\t"));
173+
System.out.print("Serv. lev.: \t");
174+
Arrays.stream(results).forEach(i -> System.out.print(df.format(i) + "\t"));
168175
System.out.println();
169176

170177
double target = 1.0 - instance.alpha;
@@ -204,8 +211,9 @@ public static Solution coordinateDescent(Instance instance, int initialInventory
204211
prev_p[i] = p_vector[i];
205212
prev_err[i] = results[i] - target;
206213
}
207-
208-
Arrays.stream(p_vector).forEach(i -> System.out.print(i + "\t"));
214+
215+
System.out.print("p_vector: \t");
216+
Arrays.stream(p_vector).forEach(i -> System.out.print(df.format(i) + "\t"));
209217
System.out.println();
210218
}
211219
return solution;
@@ -287,6 +295,9 @@ else if (instance.demand[0] instanceof NormalDist)
287295
System.err.println("Distribution not supported");
288296
System.exit(-1);
289297
}
298+
299+
System.out.println("S: " + Arrays.toString(Arrays.stream(sS).map(S -> S[1]).mapToInt(S -> S.intValue()).toArray()));
300+
System.out.println("s: " + Arrays.toString(Arrays.stream(sS).map(S -> S[0]).mapToInt(S -> S.intValue()).toArray()));
290301

291302
double confidence = 0.95;
292303
double error = 0.0001;
@@ -296,6 +307,7 @@ else if (instance.demand[0] instanceof NormalDist)
296307
Arrays.stream(sS).map(S -> S[1]).mapToInt(S -> S.intValue()).toArray(),
297308
Arrays.stream(sS).map(s -> s[0]).mapToInt(s -> s.intValue()).toArray(),
298309
confidence, error, OUTPUT.SERVICE_LEVELS);
310+
System.out.print("Serv. lev.: \t");
299311
Arrays.stream(results).forEach(i -> System.out.print(df.format(i) + "\t"));
300312
System.out.println();
301313
} catch (Exception e) {
@@ -329,7 +341,8 @@ else if (instance.demand[0] instanceof NormalDist)
329341
// Damping and clipping
330342
delta = Math.copySign(Math.min(Math.abs(delta), max_step), delta);
331343
delta *= damping;
332-
344+
345+
System.out.print("p_vector: \t");
333346
p_vector[i] = Math.max(0.0, p_vector[i] + delta);
334347
end = false;
335348
break;
@@ -341,7 +354,7 @@ else if (instance.demand[0] instanceof NormalDist)
341354
prev_p[i] = p_vector[i];
342355
prev_err[i] = results[i] - target;
343356
}
344-
357+
345358
Arrays.stream(p_vector).forEach(i -> System.out.print(df.format(i) + "\t"));
346359
System.out.println();
347360
}
@@ -908,8 +921,8 @@ public static void runBatchNormal(String fileName){
908921
public static void main(String[] args) {
909922
Instances instance = Instances.SAMPLE_POISSON;
910923
//solveSampleInstance(instance, METHOD.SDP);
911-
//solveSampleInstance(instance, METHOD.CD);
912-
solveSampleInstanceFast(instance);
924+
solveSampleInstance(instance, METHOD.CD);
925+
//solveSampleInstanceFast(instance);
913926

914927
/*Instance inst = InstancePortfolio.generateSampleNormalInstance();
915928
int initialInventory = 0;

0 commit comments

Comments
 (0)