Обновить
1
0

Пользователь

Отправить сообщение
Ну вот ни разу не слабо. Хотелось решить задачу в общем виде, но чересчур много времени отнимают попытки вспомнить Пролог (на мой взгляд лучший подход для решения подобных задач). Может быть на выходных вернусь к решению этой задачи, но тем не менее уже пришел к некоторым выводам:
1. Мои правила не учитывают геометрию, поскольку пройдя переход в одном направлении ты автоматически фиксируешь цепочку в другом месте в соответствии с геометрией.
2. Из геометрии так же вытекает, что стрелок должно быть четное количество, для нечетного количества решения не существует.
3. Граф связей между стрелками должен быть связанным, то есть из любой точки можно достигнуть любой. Это должно работать еще до наложения парадигмы стрелок на вершины графа.
4. Нашел простой способ построить сеть с любым четным количеством стрелок — в простейшей схеме из двух стрелок разрывается один из циклов и заменяется на две стрелки с циклами — получается такая сампоподобная сеть.
5. Ну и наконец, последовательность для 12 узлов (4-х стрелок):
A13-B13-C31-C23-B32-D31-D23-B23-C32-C13-B31-A32-A13-B13-C31-C23-B32-D32-D13-B23-C32-C13-B31-A31-A23-B13.
Просто напиши последовательность, удовлетворяющую моим условиям и посмотрим, сможем ли мы это нарисовать.
Ну во-первых, стрелка С фиксированная, а во вторых — для нее нарушено правило последовательности, о котором я говорю, поэтому поезду приходится на ней «прыгать» А вообще, на картинке только одна стрелка А, а остальные вообще могут быть выброшены, поскольку никакого влияния не оказывают. Просто местами поезд проходит по одним и тем же перегонам куски из разных логических циклов.
Для размышления:
На мой взгляд, чтобы обойти все перегоны во всех направлениях должно выполнятся простое условие для каждой стрелки: после перехода 3->1 должен выполнятся переход 2->3 и после перехода 3->2 должен состоятся переход 1->3. При этом важна последовательность переходов, но между ними могут быть переходы других стрелок и количество переходов 3->1 и 3->2 не важна, то есть после перехода 3->1 может повторно случится неограниченное количество переходов 3->1, но в последовательности обязательно должен присутствовать переход 2->3. Аналогично для перехода 3->2. Используя это правило можно достаточно легко построить связку из 2, 3, 4, и т.д. стрелок. Цикл для двух стрелок для примера будет выглядеть как: А23-В31-В23-А32-А13-В32-В13-А31-А23 и т.д.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность