break

            for next in _get_neighbors(current, theMap):

                if theMap[next.pos[0]][next.pos[1]] >= 0:
                    theMap[next.pos[0]][next.pos[1]] = next.depth

                self.searchedNodes += 1
                self.queue.sort_add(next)

        return self.path


if __name__ == "__main__":

    # map_object, info = pp.generateMap2d([60,60])
    map_object = pp.generateMap2d([60, 60])

    start = Node(
        [np.where(map_object == -2)[0][0],
         np.where(map_object == -2)[1][0]], None, 0, 0)
    goal = Node(
        [np.where(map_object == -3)[0][0],
         np.where(map_object == -3)[1][0]], None, 0, 0)

    searcher = AstarM()
    searcher.search(map_object, start, goal)
    print("Number of visited nodes: {}".format(searcher.searchedNodes))
    print("Length of path: {}".format(
        len(searcher.path[0]) + len(searcher.path[1])))
    pp.plotMap(map_object, searcher.path)
Exemplo n.º 2
0
            for next in _get_neighbors(current, theMap):

                if theMap[next.pos[0]][next.pos[1]] == 0:
                    theMap[next.pos[0]][next.pos[1]] = next.depth

                self.searchedNodes += 1
                self.queue.add(next)

        return self.path


if __name__ == "__main__":

    # map_object, info = pp.generateMap2d([60,60])
    #np.random.seed(2)
    map_object = pp.generateMap2d([50, 50])

    start = Node(
        [np.where(map_object == -2)[0][0],
         np.where(map_object == -2)[1][0]], None, 0, 0)
    goal = Node(
        [np.where(map_object == -3)[0][0],
         np.where(map_object == -3)[1][0]], None, 0, 0)

    searcher = DFSearch()
    searcher.search(map_object, start, goal)
    print("Number of visited nodes: {}".format(searcher.searchedNodes))
    print("Length of path: {}".format(
        len(searcher.path[0]) + len(searcher.path[1])))
    pp.plotMap(map_object, searcher.path)
Exemplo n.º 3
0
from task1_ISA_GreedySearch_Euclidean import GreedySearchE
from task1_ISA_GreedySearch_Manhattan import GreedySearchM
from task1_ISA_Astar_Euclidean import AstarE
from task1_ISA_Astar_Manhattan import AstarM

BFS_Data = []
Random_Data = []
DFS_Data = []

for i in range(100):
    print(i)
    BFSAgent = BFSearch()
    RandomAgent = RandomSearch()
    DFSAgent = DFSearch()

    map_object = pp.generateMap2d([100, 100])
    map_object2 = np.copy(map_object)
    map_object3 = np.copy(map_object)

    start = Node(
        [np.where(map_object == -2)[0][0],
         np.where(map_object == -2)[1][0]], None, 0, 0)
    goal = Node(
        [np.where(map_object == -3)[0][0],
         np.where(map_object == -3)[1][0]], None, 0, 0)

    BFSAgent.search(map_object, start, goal)
    RandomAgent.search(map_object2, start, goal)
    DFSAgent.search(map_object3, start, goal)

    BFS_Data.append({
Exemplo n.º 4
0
        "PathLenght": 0,
        "Expanded": 0
    }
    for result in resultList:
        for key in result.keys():
            if key != "AgentType" and key in analysedResults.keys():
                analysedResults[key] += result[key]

    for key in analysedResults.keys():
        if key != "AgentType" and key != "Wins":
            analysedResults[key] = analysedResults.get(key) / len(resultList)
    return analysedResults


for roundIndex in range(10):
    searchMap = generateMap2d([100, 100])
    for agent in agents:
        searchMapCopy = copy(searchMap)
        startNodeMask = np.where(searchMap == -2)
        startNode = [startNodeMask[0][0], startNodeMask[1][0]]
        goalNodeMask = np.where(searchMap == -3)
        goalNode = [goalNodeMask[0][0], goalNodeMask[1][0]]
        agent.__init__(searchMap=searchMapCopy,
                       startPosition=startNode,
                       goalPosition=goalNode)
        agentResults = agent.search()
        resultData[type(agent).__name__].append(agentResults)

for agentKey in resultData.keys():
    analysedResultData.append(analyseResults(resultData[agentKey]))