SetAllNodes() public méthode

public SetAllNodes ( ) : void
Résultat void
Exemple #1
0
 public static Problem Merge(Problem p1, Problem p2)
 {
     var newP = new Problem()
                    {
                        Depot = p1.Depot,
                        VehicleCap = p1.VehicleCap,
                        Abbr = p1.Abbr,
                        Customers = new List<Customer>()
                    };
     foreach (var c in p1.Customers)
         newP.Customers.Add(c);
     foreach (var c in p2.Customers)
         newP.Customers.Add(c);
     newP.SetAllNodes();
     return newP;
 }
Exemple #2
0
        public static List<Problem> Divide(Problem problem, List<int> frac=null)
        {
            if(frac == null) frac = DefaultFraction;

            var subproblems = new List<Problem>(frac.Count);
            var rnd = new Random();
            var customers = new List<Customer>(problem.Customers);

            foreach (var count in frac)
            {
                var p = new Problem
                {
                    Abbr = problem.Abbr,
                    VehicleCap = problem.VehicleCap,
                    Depot = problem.Depot,
                    Customers = new List<Customer>(count)
                };

                for(var i = 0; i < count; ++i)
                {
                    var j = rnd.Next(0, customers.Count);
                    p.Customers.Add(customers[j]);
                    customers.RemoveAt(j);
                }
                p.SetAllNodes();
                subproblems.Add(p);
            }

            return subproblems;
        }