Exemple #1
0
        // 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)
                ));
 }
Exemple #4
0
 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)));
 }
Exemple #5
0
 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);
 }
Exemple #11
0
 public bool CanSolve(TimeProblem problem)
 {
     return(true);
 }
Exemple #12
0
 public bool CanSolve(TimeProblem problem)
 {
     return(false);
 }