Makarov Math Suite: Лабиринты - как построить загадку и найти выход
Лабиринт можно рассматривать как рисунок коридоров, а можно - как граф: комнаты становятся вершинами, проходы между ними - рёбрами. Такой взгляд превращает поиск выхода в математическую задачу. При этом построить хороший лабиринт и пройти его - две разные задачи, для которых нужны разные алгоритмы. В модуле генераторы на основе поиска в глубину, алгоритма Прима и алгоритма Уилсона создают связные лабиринты без циклов. Между любыми двумя клетками в таком лабиринте есть единственный простой путь. Но характер коридоров и тупиков зависит от способа построения. На трёхмерном макете видно, как открываются проходы, какие клетки исследует поиск и где проходит найденный маршрут. Сравните поиск в ширину, A* и движение вдоль стены. Поиск в ширину исследует пространство по слоям; A* дополнительно учитывает оценку расстояния до цели; правило стены опирается на локальное движение вдоль границы. Меняйте цель и смотрите на число посещённых клеток и длину маршрута. Даже когда итоговый простой путь единственный, затраты на его поиск могут сильно различаться: знать, куда идти, и понять, как это выяснить, - разные вещи.
Название:
Makarov Math Suite: Лабиринты - как построить загадку и найти выход
Категория:
Наука