public static void main(String[] args) throws Exception {
		StaticDynamicUncertaintyWithADIULHSolver solver = new StaticDynamicUncertaintyWithADIULHSolver();
		
		PrintStream filePrintStream = new PrintStream(new File("results/ADI-Cost-Experiment1a.csv"));
		PrintStream[] printStreams = new PrintStream[2];
		printStreams[0] = System.out;
		printStreams[1] = filePrintStream;
		MultiPrintStreamWrapper out = new MultiPrintStreamWrapper(printStreams);
		
		
		out.println("l;0.25;0.5;0.75;1.0;1.25;1.5;1.75;2.0");
		
		AbstractStochasticLotSizingProblem problem;
		AbstractStochasticLotSizingSolution solution;
		DecimalFormat lFormat = new DecimalFormat("00", new DecimalFormatSymbols(Locale.US));
		DecimalFormat costFormat = new DecimalFormat("#####0.00000", new DecimalFormatSymbols(Locale.US));

		
		//Fixed problem parameters
		int T = 20;
		float alpha = .95f;
		double setupCost = 2500;
		
		for(int l = 1; l < 21; l++){
			out.print(lFormat.format(l));
			EqualDivisionNormalDistributedOrdersGenerator orderGenerator = new EqualDivisionNormalDistributedOrdersGenerator(l-1, 0);
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 0.25, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 0.5, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));

			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 0.75, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 1.0, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 1.25, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 1.5, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 1.75, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			//Constant(100)
			problem = ConstantNormalDistributedProblemGenerator.generate(T, 100, 2.0, setupCost, alpha, orderGenerator);
			solution = solver.solve(problem);
			out.print(";"+costFormat.format(solution.getObjectiveValue()));
			
			
			out.println();
		}
		
		filePrintStream.flush();
		out.close();
	}