@@ -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