private static void WriteAssignment3Solution(string fileName) { var reader = new LinearProgramDictionaryReader(); var linearProgram = reader.Read(fileName); var analyze = new SimpleAnalyzeEnteringLeavingVariables(); var calculator = new HackyPivot2(); var primalToDual = new HackyMapPrimalToDual(); var dualToPrimal = new HackyMapDualToPrimal(); var restore = new SimpleRestoreObjective(); var solver = new LinearProgramSolverWeek3(analyze, calculator, primalToDual, dualToPrimal, restore); var solution = solver.Solve(linearProgram); if (solution.SolutionType == LinearProgramSolutionType.Unbounded) { const string output = "UNBOUNDED"; File.WriteAllText(fileName + ".output", output); } else if (solution.SolutionType == LinearProgramSolutionType.Infeasible) { const string output = "INFEASIBLE"; File.WriteAllText(fileName + ".output", output); } else { var output = String.Format("{0}", solution.ObjectiveValue); File.WriteAllText(fileName + ".output", output); } }
private static void WriteAssignment2Solution(string fileName) { var reader = new LinearProgramDictionaryReader(); var linearProgram = reader.Read(fileName); var analyze = new SimpleAnalyzeEnteringLeavingVariables(); var calculator = new HackyPivot2(); var solver = new LinearProgramSolverWeek2(analyze, calculator); var solution = solver.Solve(linearProgram); if (solution.SolutionType == LinearProgramSolutionType.Unbounded) { const string output = "UNBOUNDED"; File.WriteAllText(fileName + ".output", output); } else { var output = String.Format("{1}{0}{2}", Environment.NewLine, solution.ObjectiveValue, solution.PivotCount); File.WriteAllText(fileName + ".output", output); } }