Я реализую BFS в лабиринте, представленном массивом 2D numpy в Python 3.7.3. Этот код генерирует лабиринт:
for row in range(dim):
# Add an empty array that will hold each cell
# in this row
grid.append([])
for column in range(dim):
grid[row].append(np.random.binomial(1, 0.2, 1)) # Append a cell
if (row == column == dim - 1):
grid[row][column] = 0
grid[0][0] = 0
Я хотел бы избежать использования класса узла, так как у меня был ограниченный успех с ним. Я хочу знать, как я могу представить / сохранить отношения родитель-потомок в поиске BFS от позиции (0,0) в этом лабиринте до позиции (измерение - 1, измерение - 1). Кроме того, учитывая характер графика / лабиринта / сетки, мне НУЖНО избегать иметь детей с одинаковым местоположением, но с разными родителями. Я хочу вернуть кратчайший список узлов между начальной и конечной позициями.
Спасибо за вашу помощь.