コード例 #1
0
    def setUp(self) -> None:
        self.vehicle = generate_one_vehicle()
        self.position = generate_one_position()
        stop0 = jit.Stop(self.vehicle, self.position, None)

        stop1 = jit.Stop(self.vehicle, generate_one_position(), stop0)
        stop0.following = stop1

        stop2 = jit.Stop(self.vehicle, generate_one_position(), stop1)
        stop1.following = stop2

        stop3 = jit.Stop(self.vehicle, generate_one_position(), stop2)
        stop2.following = stop3

        stop4 = jit.Stop(self.vehicle, generate_one_position(), stop3)
        stop3.following = stop4

        stops = [stop0, stop1, stop2, stop3, stop4]
        self.stops = stops

        self.route = jit.Route(self.vehicle, self.stops)
        self.planning = jit.Planning({self.route})

        self.job = jit.Job(generate_trips(10), objective_cls=jit.DialARideObjective)
        self.fleet = jit.Fleet(generate_vehicles(10))
        self.algorithm = jit.NaiveAlgorithm(self.fleet, self.job)
        self.result = jit.Result(self.algorithm, self.planning, computation_time=float(0.0))
コード例 #2
0
    def _build_route_3(cls, vehicle: jit.Vehicle,
                       surface: jit.Surface) -> jit.Route:
        route = jit.Route(vehicle)

        trip = jit.Trip(
            identifier="TEST_3",
            origin=jit.Service(
                position=surface.get_or_create_position([0, 0]),
                earliest=1.0,
                latest=20.0,
            ),
            destination=jit.Service(position=surface.get_or_create_position(
                [10, 10]), ),
            timeout=1.0,
        )

        pickup_stop = jit.Stop(vehicle, surface.get_or_create_position([0, 0]),
                               route.current_stop)
        delivery_stop = jit.Stop(vehicle,
                                 surface.get_or_create_position([10, 10]),
                                 pickup_stop)

        planned_trip = jit.PlannedTrip(
            vehicle=vehicle,
            trip=trip,
            pickup=pickup_stop,
            delivery=delivery_stop,
        )
        route.append_planned_trip(planned_trip)
        return route
コード例 #3
0
ファイル: utils.py プロジェクト: garciparedes/jinete
def generate_one_route(
    feasible: bool = True,
    planned_trips_count: int = None,
    planned_trips_min: int = 1,
    planned_trips_max: int = 20,
    surface: jit.Surface = None,
    *args,
    **kwargs,
) -> jit.Route:
    if surface is None:
        surface = generate_one_surface(*args, **kwargs)
    if feasible:
        kwargs["timeout"] = float("inf")

    vehicle = generate_one_vehicle(surface=surface, *args, **kwargs)
    route = jit.Route(vehicle)

    if planned_trips_count is None:
        planned_trips_count = randint(planned_trips_min, planned_trips_max)

    for i in range(planned_trips_count):
        planned_trip = generate_one_planned_trip(
            feasible=feasible,
            vehicle=vehicle,
            previous_stop=route.current_stop,
            surface=surface,
        )

        route.append_planned_trip(planned_trip)
    return route
コード例 #4
0
ファイル: abc.py プロジェクト: garciparedes/jinete
    def setUpClass(cls) -> None:
        surface = jit.GeometricSurface(jit.DistanceMetric.MANHATTAN)
        origin = jit.Service(surface.get_or_create_position([0, 0]))
        vehicle = jit.Vehicle(
            identifier="TEST",
            origin=origin,
        )
        fleet = jit.Fleet({vehicle})

        trips = [
            jit.Trip(
                identifier="TEST_1",
                origin=jit.Service(
                    position=surface.get_or_create_position([0, 0]),
                    earliest=0.0,
                    latest=10.0,
                ),
                destination=jit.Service(
                    position=surface.get_or_create_position([1, 1]), ),
            ),
            jit.Trip(
                identifier="TEST_2",
                origin=jit.Service(
                    position=surface.get_or_create_position([1, 1]),
                    earliest=0.0,
                    latest=20.0,
                ),
                destination=jit.Service(
                    position=surface.get_or_create_position([10, 10]), ),
            ),
        ]
        job = jit.Job(set(trips), jit.DialARideObjective)
        route = jit.Route(vehicle)

        pickup_stop = jit.Stop(vehicle, surface.get_or_create_position([0, 0]),
                               route.current_stop)
        delivery_stop = jit.Stop(vehicle,
                                 surface.get_or_create_position([1, 1]),
                                 pickup_stop)

        cls.planned_trip = jit.PlannedTrip(
            vehicle=vehicle,
            trip=trips[0],
            pickup=pickup_stop,
            delivery=delivery_stop,
        )
        route.append_planned_trip(cls.planned_trip)

        cls.stop = route.stops[1]
        conjecture = jit.TailInsertionStrategy()
        cls.route = conjecture.compute(route, trips[1])[0]
        cls.planning = jit.Planning({cls.route})
        cls.algorithm = jit.NaiveAlgorithm(fleet, job)
        cls.result = jit.Result(cls.algorithm, cls.planning, 0.0)
コード例 #5
0
ファイル: test_routes.py プロジェクト: PhilippeGalvan/jinete
 def test_route(self):
     vehicle = generate_one_vehicle()
     route = jit.Route(vehicle)
     self.assertIsInstance(route.identifier, str)
     self.assertEqual(list(), list(route.planned_trips))
     self.assertEqual(vehicle, route.vehicle)