Exemple #1
0
    def __init__(self, travelTimeData: Queue):
        Process.__init__(self)
        self.travelTimeData = travelTimeData
        self.idealTravelTimes = dict()

        # initialization of ideal grid, with original unrestricted travel space
        grid = [
            [0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0],
            [
                0, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0,
                0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0,
                0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                -1, 0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
                0, 0
            ],
            [
                0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0,
                0, 0
            ], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0]
        ]

        floormap = np.array(grid).transpose(1, 0)
        shortestPathfinder = Pathfinder(floormap)
        exitPoints = [Location.getCoords(i)[0] for i in range(1, 9)]
        entryPoints = [Location.getCoords(i)[1] for i in range(1, 9)]

        for exitPoint in exitPoints:
            if exitPoint == None:
                continue
            else:
                for entryPoint in entryPoints:
                    self.idealTravelTimes[(
                        exitPoint, entryPoint)] = shortestPathfinder.search(
                            exitPoint, entryPoint)
        del self.idealTravelTimes[(Coord(19, 8), Coord(19, 8))]

        for path, time in self.idealTravelTimes.items():
            print(f"{path}: {time}")