/// <summary> /// Creates new instance of CapacitatedVehicleRoutingProblem class /// </summary> /// <param name="name">problem name</param> /// <param name="comment">comment on problem from the author</param> /// <param name="nodeProvider">provider of nodes</param> /// <param name="edgeProvider">provider of edges</param> /// <param name="edgeWeightsProvider">provider of edge weights</param> /// <param name="fixedEdgesProvider">provider of fixed edges</param> /// <param name="depotsProvider">provider of depot nodes</param> /// <param name="demandProvider">provider of demands on nodes</param> public CapacitatedVehicleRoutingProblem(string name, string comment, INodeProvider nodeProvider, IEdgeProvider edgeProvider, IEdgeWeightsProvider edgeWeightsProvider, IFixedEdgesProvider fixedEdgesProvider, IDepotsProvider depotsProvider, IDemandProvider demandProvider) : base(name, comment, ProblemType.CVRP, nodeProvider, edgeProvider, edgeWeightsProvider, fixedEdgesProvider) { if (depotsProvider == null) { throw new ArgumentNullException("depotsProvider"); } if (demandProvider == null) { throw new ArgumentNullException("demandProvider"); } DepotsProvider = depotsProvider; DemandProvider = demandProvider; }