там два варианта, в зависимости от чётности проходов.
Там целое море вариантов...
Амальгама |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень
там два варианта, в зависимости от чётности проходов.
Там целое море вариантов...
для внутренних сначала нужно кратчайшим путём выйти на ближнюю внешнюю, потом
Почему снова кратчайшим?
Он может быть и не кратчайшим, вот пример:
Я так чувствую, что вы скоро накликаете Мать Русского Квадратостроения в полный рост.
Ну, это разве что если спиритический сеанс провести...
Отредактировано Лукомор (2019-10-04 04:27:26)
Есть один нюанс: при запуске с разных пунктов дает разные результаты, поэтому нужно
запускать его с каждого пункта, и выбирать самый короткий из получившихся "кратчайших" путей.
Если дополнить его алгоритмом "пути домой" или "дальней точки" этот нюанс снимается.
Если дополнить его алгоритмом "пути домой" или "дальней точки" этот нюанс снимается.
Мне ничего не известно об этих двух безусловно замечательных алгоритмах, кроме их названий.
Не уверен, что их реализация сколько-нибудь проще, чем реализация двух эпохальных алгоритмов Шарпера: "полного перебора "спецвычислителем"",
и "обратного хода бинарным поиском".
--------------------------------------------------
Кстати, я внимательно рассмотрел сбоку свой алгоритм "объединения точек",
и пришел к выводу, что он реализует, правда на свой лад,
идею Шарпера о полном переборе "спецвычислителем".
Это забавно, но я здесь ни капли не шучу.
Я имею в виду, буквально, следующее.
НА первом этапе работы своего метола я нахожу все пути со всех точек одновременно,
правда только на глубину одного хода.
При этом сразу же проявляются контуры кратчайшего маршрута -
это отрезки, которые являются кратчайшими "в обе стороны",
то-есть они будут кратчайшим из обоих пунктов, являющихся концами этих отрезков.
Завершается первый этап заменой таких отрезков представляющими их медианными пунктами.
На втором этапе какой либо из этих медианных пунктов может вновь оказаться концом отрезка, "кратчайшего в обе стороны".
И мы получаем уже цепочку из двух отрезков, с учетом найденного на первом этапе.
Так в задачке на 17 пунктов получились 4 таких цепочки: одна длиной в 6 отрезков, две длиной 4 отрезка, и один - из трех отрезков.
Теперь, обратным ходом "бинарным поиском",
мы находим направление включения каждого из найденных отрезков в кратчайший маршрут
в прямом или инверсном направлении.
Все, как у Шарпера, только более рационально, и без фанатизьма...
Отредактировано Лукомор (2019-10-04 04:26:52)
Все, как у Шарпера, только более рационально, и без фанатизьма
Есть сильное подозрение, что этими словами можно характеризовать вообще любой практически применимый алгоритм, существующий в этом мире, и, главное, работающий.
Мне ничего не известно об этих двух безусловно замечательных алгоритмах, кроме их названий.
Ну, сами названия говорящие...
Не уверен, что их реализация сколько-нибудь проще, чем реализация двух эпохальных алгоритмов Шарпера: "полного перебора "спецвычислителем"",
и "обратного хода бинарным поиском".
что вполне может быть.
НА первом этапе работы своего метола я нахожу все пути со всех точек одновременно,
правда только на глубину одного хода.
Это у тебя просто точек мало.
Все, как у Шарпера, только более рационально, и без фанатизьма...
Это у тебя просто точек мало.
У меня вообще речь не идет о количестве точек...
Оно не принципиально.
Дело только в их взаимном расположении.
Если точка В самая ближайшая к точке А, а все другие находятся от точки А на более далеких расстояниях,
и одновременно точка А - самая ближайшая к точке В, то отрезок АВ я называю "кратчайшим в обе стороны".
И "очевидно"(с), что этот отрезок войдет во все 17 маршрутов, построенных методом "ближайшего соседа".
Найдя такой отрезок, я его временно убираю,
а вместо него подставляю точку, которая есть средина отрезка,
и начинаю рассматривать задачу уже с меньшим количеством точек в условии...
Отредактировано Лукомор (2019-10-04 10:50:34)
Кстати, у меня две хороших новости:
одна - персонально для Шарпера,
а вторая - вообще ни у кого не вызовет интереса!
С которой начать?!
У меня вообще речь не идет о количестве точек...
Оно не принципиально.
Это шутка была, а если принципиально, то количество путей от количества точек растёт экспоненциально.
Найдя такой отрезок, я его временно убираю,
а вместо него подставляю точку, которая есть средина отрезка,
и начинаю рассматривать задачу уже с меньшим количеством точек в условии...
А у меня складывается алгоритм.
1. самая дальняя точка. по дороге до дальней точке затрагиваются "попутные" точки.
2. попутные точки, это точки расположенные в радиусе (?) и имеющий вектор от 0 до 90 (?) градусов.
3. дорога домой.
С которой начать?!
С самой безопасной.
С которой начать?!
Ты эта брось, нафиг! Мне такой текст анекдот-окошко прислало, что я даже переспрашивапть стесняюсь
- Как называется вещество, при приёме которого мозг атрофируется и
перестаёт отвечать за свои действия?
- Семечки!
Ты эта брось, нафиг!
Прекрасно! Вот с неё и начнем!
Короче, нашел я способ мусорные твои траектории вынести.
Вот, допустим для примера, в учебной какой-то задачке, пусть имеем 100 пунктов с расстояниями между ними в интервале от 3 до 300 км.
На преодоление таких расстояний свет потратит от 10 до 1000 микросекунд.
Запускаем лучик позитива, в смысле лазера, по всем маршрутам сразу.
Маршрут через ровно 100 пунктов, при таких условиях, никогда не будет короче 300 км или длиннее 30 000 км.
Теперь в каждом пункте ставим задержку калиброванной длительностью ровно 1 сек.
Тогда в конечный пункт лучи, прошедшие ровно один отрезок, придут в интервале 0,00001 - 0,001 с.
Потом будет перерывчик небольшой, и лучи прошедшие два отрезка, с учетом задержки после пераого отрезка придут в интервале
1,00002 - 1,002 сек.
...
Прошедшие 98 пунктов придут в интервале 97,00098 - 97,098.
Это все мусорные...
И вот приходят прошедшие все 99 отрезков: интервал 98,00099 - 98,099 секунд.
Луч по кратчайшему маршруту придет к финишу в этом интервале первым.
Отредактировано Лукомор (2019-10-04 19:15:18)
Луч по кратчайшему маршруту придет к финишу в этом интервале первым.
Ты гений!!! Можешь не спрашивать, почему сразу Лукомор - патаму што гений!
Блин, как я сам не догадался?
Лукомор
Расстояние тоже можно эмулировать задержкой
Лукомор
Вобщем, проверяем и двигаем за лимоном
и двигаем за лимоно
Двигайте!
И попутная песня в дорогу
Двигайте!
Чо и пытаться не будешь? Зря. Не получится и фиг с ним, а попробовать надо.
Лукомор
Интересно, что мысля использовать задержку для отсева мне приходила, но я ни разу не допетрил, что можно тупо пересчитать ребра
количество путей от количества точек растёт экспоненциально.
При полном переборе.
В эвристических методах -по разному...
Лукомор
Короче, ушел проверять
и пытаться не будешь?
Некогда мне ерундой заниматься...
Некогда мне ерундой заниматься...
Ха, а кто это сделал?
Впрочем, погоди радоваться, похоже есть прокол
Вторая хорошая новость:
но...
сначала - предыстория.
Я нашел решение задачи коммивояжера на 17 пунктов, и оба моих метода забороли на этой задаче метод случайного соседа.
Но я не смог сравнить мои методы с методом ветвей и границ поскольку нет онлайн калькуляторов на количество пунктов больше 15.
Я нашел компромисс в том, что применил к исходной задаче первый этап моего метода объединения точек,
и получил новую задачу на 13 пунктов.
Внезапно, оба моих метода на этой новой более простой задаче проиграли не только методу ветвей и границ, но и методу ближайшего соседа.
Вчера я повторно применил первый этап метода объединения точек к уже задаче на 13 пунктов.
И получил новую задачу уже на 10 пунктов.
Я решил эту задачу всеми известными мне методами и все эти методы дали один и тот же маршрут.
Это выглядит обнадеживающе.
Теперь можно, добавляя не сразу три точки, а по одной,
как под микроскопом рассмотреть всю эту картинку,
и найти, где и на каком пункте сломался каждый из методов.
И попробовать их починить...
Отредактировано Лукомор (2019-10-04 20:32:09)
Луч по кратчайшему маршруту придет к финишу в этом интервале первым.
А как отличить маршрут, прошедший все точки по одному разу, от маршрута с пропуском одной точки, но при этом с повторным прохождением одной из точек? Ну и далее для большего числа пропусков и повторов.
прокол
Есть Прокол Харум...
А как отличить маршрут, прошедший все точки по одному разу, от маршрута с пропуском одной точки, но при этом с повторным прохождением одной из точек? Ну и далее для большего числа пропусков и повторов.
А я откуда знаю?!
Это - к Шарперу!
Он просил убрать более короткие и более длинные, - я убрал...
Про коллизии с одинаковым количеством отрезков вопроса не возникало...
Про коллизии с одинаковым количеством отрезков вопроса не возникало...
Победит вариант, в котором луч пройдет n раз от стартовой точки до ближайшей и обратно.
Лукомор
Про коллизии с одинаковым количеством отрезков вопроса не возникало...
Победит вариант, в котором луч пройдет n раз от стартовой точки до ближайшей и обратно.
угу, они самые коллизии.
Итак
1 Секунда на точку это слишком много - 1000000 точек даст время ожидания ~ 2000000/3600=555 часов или больше 20 суток. Но за счет высокой частоты калиброванные интервалы можно задавать и в пикосекундах.
2 Чтобы избежать зацикливания сигнала, нужно применять матрицу N*N в стиле Черны.
3 Чтобы избежать коллизии надо точкам назначить разные интервалы, чтобы сумма по полному пути была больше любой с пропусками вершин. Например первым точком перворго столбца - 1, второму - 2 и т.д.
Проверяйте.
Прокол Харум...
Это что еще за Башировы с Петровыми на фоне шпиля?
Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень