// public static double baseScore = 65, deviation = 25; public static IEnumerable <Problem> GetProblems() { List <Problem> list = new List <Problem>(); Problem tmp; // Problem 1 tmp = new DefaultProblem("n"); list.Add(tmp); // Problem 2 tmp = new NumberProblem(978, 0.75, 1); list.Add(tmp); // Problem 3 tmp = new DefaultProblem("3"); list.Add(tmp); // Problem 4 tmp = new NumberProblem(142, NumberProblem.ACE / 1.2, 1.25); list.Add(tmp); // Problem 5 tmp = new OffsetProblem(1.5, 0.99, 0.5); list.Add(tmp); // Problem 6 tmp = new TimeProblem("1159"); list.Add(tmp); return(list); }
public IEnumerable <Route> Handle(TimeProblem timeProblem) { if (timeProblem.Algorithm == "Dijkstra") { return(DijkstraTimeAlgorithm.Solve(timeProblem.Graph, timeProblem.Graph.GetByName(timeProblem.From), timeProblem.Graph.GetByName(timeProblem.To))); } return(Next != null?Next.Handle(timeProblem) : null); }
public IEnumerable <Route> TrySolve(TimeProblem problem) { return(new DFS().Solve( problem.Graph, problem.Graph.GetByName(problem.From), problem.Graph.GetByName(problem.To) )); }
public IEnumerable <Route> Visit(TimeProblem timeProblem) { if (timeProblem.Algorithm == this.description) { timeProblem.Solved = true; } return(this.timeAlgorithm.Solve(timeProblem.Graph, timeProblem.Graph.GetByName(timeProblem.From), timeProblem.Graph.GetByName(timeProblem.To))); }
public IRouteProblem GetProblem(Request request, IGraphDatabase database) { if (request.Problem == "Time") { IRouteProblem problem = new TimeProblem(request.From, request.To); problem.SetGraph(database); return(problem); } return(Next.GetProblem(request, database)); }
public IRouteProblem Apply(Request request) { IRouteProblem problem = null; if (Next != null) { problem = Next.Apply(request); } if (problem == null && request.Problem == "Time") { problem = new TimeProblem(request.From, request.To, request.Solver); } return(problem); }
public override IEnumerable <Route> Solve(Request request, IRouteProblem problem, IGraphDatabase database) { if (NextInChain == null) { return(null); } if (request.Problem == "Time") { IRouteProblem newproblem = new TimeProblem(request.From, request.To); newproblem.Graph = database; return(NextInChain.Solve(request, newproblem, database)); } else { return(NextInChain.Solve(request, problem, database)); } }
public override bool TrySolveProblem(TimeProblem timeProblem, out IEnumerable <Route> routes) { routes = null; return(false); }
public abstract bool TrySolveProblem(TimeProblem timeProblem, out IEnumerable <Route> routes);
public override bool TrySolveProblem(TimeProblem timeProblem, out IEnumerable <Route> routes) { routes = Solve(timeProblem.Graph, timeProblem.Graph.GetByName(timeProblem.From), timeProblem.Graph.GetByName(timeProblem.To)); return(true); }
public bool CanSolve(TimeProblem problem) { return(true); }
public bool CanSolve(TimeProblem problem) { return(false); }