public static void main(String[] args) throws IOException {
		StaticDynamicUncertaintyULHSolver solverWithoutADI = new StaticDynamicUncertaintyULHSolver();
		StaticDynamicUncertaintyWithADIULHSolver solverWithADI = new StaticDynamicUncertaintyWithADIULHSolver();
		ConstantNormalDistributedProblemGenerator problemGenerator = new ConstantNormalDistributedProblemGenerator();
		TriangleDivisionNormalDistributedOrdersGenerator demandGenerator = new TriangleDivisionNormalDistributedOrdersGenerator(8, 0);
		FileWriter fileWriter = new FileWriter(new File("results/CostEffectExperiment3a.csv"));
		
		System.out.println("Period;Setup patterns identical;TotalCostQuotientWithoutADI;#Setups;TotalCostDifferenceWithADI;#Setups");
		fileWriter.write("Period;Setup patterns identical;TotalCostQuotientWithoutADI;#Setups;TotalCostDifferenceWithADI;#Setups\n");
		for (int setupCost = 5; setupCost < 7000; setupCost += 5){
			NormalDistributedStochasticLotsizingProblem problem = problemGenerator.generate(20, 50.0, 50.0, setupCost*1.0, 1, 0.95f, demandGenerator);
			AbstractStochasticLotSizingSolution solutionWithoutADI = solverWithoutADI.solve(problem);
			AbstractStochasticLotSizingSolution solutionWithADI = solverWithADI.solve(problem);
			boolean setupEqual =  ArraysUtils.deepEquals(solutionWithADI.getSetupPattern(), solutionWithoutADI.getSetupPattern());
			String outString = setupCost+";"+setupEqual
					+";"+ (solutionWithoutADI.getTotalSetupCosts(problem)/solutionWithoutADI.getTotalInventoryCosts(problem))
					+";"+ solutionWithoutADI.getNumberOfSetupPeriods()
					+";"+(solutionWithADI.getTotalSetupCosts(problem)/solutionWithADI.getTotalInventoryCosts(problem))
					+";"+ solutionWithADI.getNumberOfSetupPeriods();
			System.out.println(outString);
			fileWriter.write(outString+"\n");
		}
		
		fileWriter.close();
	}