|
|
WoRmS.oRg.Ua червивый форум
|
|
|
|
|
|
|
|
|
|
player
Зарегистрирован: 08.04.2006
Сообщения: 539
Рейтинг: 14 [+/-] *
Откуда: Russia, Samara
Медали: 1 (еще...)
|
|
Перейти наверх |
|
|
|
|
|
|
|
|
Баклажань
Зарегистрирован: 30.07.2009
Сообщения: 19
Рейтинг: 0 [+/-] *
Откуда: da
Ник на WormNet: Hock Медали: Нет
|
|
Перейти наверх |
|
|
|
|
|
|
|
|
NickyNick
модератор
Зарегистрирован: 23.11.2007
Сообщения: 667
Рейтинг: 51 [+/-] *
Откуда: Харьков
Играю в: W:A Хостить: могу Медали: Нет
|
|
Перейти наверх |
|
|
|
|
|
|
|
|
MoDErahN
программист
Зарегистрирован: 16.10.2008
Сообщения: 96
Рейтинг: 11 [+/-] *
Откуда: Минск
Медали: Нет
|
Добавлено: Вс Авг 30, 2009 20:42 Заголовок сообщения: |
|
|
Я пытался автоматизировать построение RR карт, вот только затык получился.
Дело в том, что фактически RR карта это гамильтонов граф без одного ребра. Вершины в нем - клетки, а ребра - проходы между клетками.
Т.е. клетки в углах карты примыкают к двум ребрам, граничные клетки - к 3-м ребрам, а остальные к четырем. Выберем две вершины (старт и финиш). Для построения карты RR (т.е. максимально длинного лабиритна без тупиков и циклов) достаточно:
1) Ввести в наш граф дополнительное ребро между стартом и финишем.
2) Проверить граф на наличие гамильтонова пути, и если его нет, то удалить угловую вершину, получая таким образом граф с гамильтоновым путем.
3) Найти любой гамильтонов путь.
Вот в пункте 3 и скрывается весть 3.14..дец. Ибо нахождение гамильтонова пути это NP задача, и для карты размером 3*7 клеток (а это при стандартных размерах карты даст громадные проходы, ну представьте себе обычный WXW) получается 2^4 * 3^12 * 4^5 = 8 707 129 344 итераций, т.е. прога будет отрабатывать до второго пришествия.
Мне кажется что из-за специфичности графа (ну фактически у нас получается решетка) можно как-то упростить поиск гамильтонова пути, но я никак не могу придумать как.
Если кто знает, плз скажите. |
|
Перейти наверх |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ты не можешь начинать темы Ты не можешь отвечать на сообщения Ты не можешь редактировать свои сообщения Ты не можешь удалять свои сообщения Ты не можешь голосовать в опросах
|
|
|
|
|
|
|
|