Esempio n. 1
0
        public void TestVectorDimension()
        {
            // Create Routing Index Manager
            RoutingIndexManager manager = new RoutingIndexManager(5 /*locations*/, 1 /*vehicle*/, 0 /*depot*/);
            // Create Routing Model.
            RoutingModel routing = new RoutingModel(manager);

            // Create a distance callback.
            long[]      vector = new long[] { 1, 1, 1, 1, 1 };
            IntBoolPair result = routing.AddVectorDimension(
                vector,
                /*capacity=*/ 10,
                /*fix_start_cumul_to_zero=*/ true,
                "Dimension");

            // Define cost of each arc.
            routing.SetArcCostEvaluatorOfAllVehicles(result.first);
            // Setting first solution heuristic.
            RoutingSearchParameters searchParameters =
                operations_research_constraint_solver.DefaultRoutingSearchParameters();

            searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
            Assignment solution = routing.SolveWithParameters(searchParameters);

            // 0 --(+1)-> 1 --(+1)-> 2 --(+1)-> 3 --(+1)-> 4 --(+1)-> 0 := +5
            Assert.Equal(5, solution.ObjectiveValue());
        }