Лабиринты
- From
- Nicolas Kuhtenko (2:5090/118.7)
- To
- Andrew Evdokimov
- Date
- 2002-11-19T23:27:54Z
- Area
- RU.ALGORITHMS
Ответ на письмо из TO_ALL
How are you, Andrew?
Andrew Evdokimov, ты посмел(а) написать письмо to All:
AE> Такой вот вопрос - каким образом лучше всего представлять 3-мерные
AE> лабиринты, имеющие толщину стен? Какие существуют алгоритмы поиска выхода
AE> из такого лабиринта? Интересуют варианты поиска выхода от входа и из
можно расставить точки в начале-конце и в перекрестках, построить булеву матрицу н*н, где н - число таких точек, А(i,j)=1 если из i можно попасть в j не проходя других точек, иначе 0 (это будет матрица инцидентности в графе) а потом стандартными алгоритмами ищем решение. А вот точки расставлять и матрицу делать придется руками, хотя не очень сложно можно сделать алгоритм генерации матрицы.
Хотя подумав второй раз придумал решение чисто числовое, хотя и ресурсоемкое:
делаем то-же, что и в первом случае, только точки ставим предельно часто (растояние между соседними должно быть меньше чем самый маленький проход в лабиринте) тогда их расстановку можно доверить компьютеру и алгоритм составления матрицы упрощается (ставим точки только на постоянном растоянии друг от друга, при соблюдении постоянной взаимной ориентации соседних). Теперь у нас есть большущая матрица, ее отличие в том, что в графе который ею кодируется от входа до выхода можно пройти разными путями - по стандартному алгоритму (кажется Дейкстры и т.п.) находим кратчайшее расстояние.
---
* Origin: 111 (2:5090/118.7)