Мало точек, они не дают всей картины. Надо чтобы 16 квадратов было как минимум. А лучше больше.
Другая тень
Сообщений 751 страница 780 из 1000
Поделиться7522019-10-01 07:40:02
Мало точек, они не дают всей картины.
Я об этом сразу сказал, что большинство калькуляторов обрабатывают максимум 14 - 15 пунктов.
Отредактировано Лукомор (2019-10-01 07:51:05)
Поделиться7532019-10-01 07:50:03
Надо чтобы 16 квадратов было как минимум. А лучше больше.
16 квадратов это 25 пунктов.
Из всех калькуляторов будет работать только тот который методом ближайшего соседа.
Но его надо запустить 25 раз.
Ну и мой еще метод имитации термоусадки...
13 итераций, надо попробовать...
Методы не самые хорошие, поэтому могут и не найти кратчайший маршрут, но будет интересно посмотреть, кто кого заборет!
Только это будет в лучшем случае после полудня.
А полдень у нас в 13:00
Отредактировано Лукомор (2019-10-01 07:51:26)
Поделиться7542019-10-01 07:50:58
Из всех калькуляторов будет работать только тот который методом ближайшего соседа.
Там дело в том, что в каждой точке 2 ближайших соседа. Если остальное перебором - то это бессмысленный алгоритм. нужно построить какой-то анализ. При этом анализ должен включать в себя путь возврата в исходную позицию. Но неважно, для искомого квадрата там получится змейка с возвратом по вертикальной оси. А вот когда возврат к вертикальной оси невозможен, последний ряд идёт по диагоналям. Получается, что в каждой точке необходимо исследование ближайших точек, и пути возврата.
Поделиться7552019-10-01 07:55:43
Там дело в том, что в каждой точке 2 ближайших соседа.
Это у угловых точек по два.
А в военное время у точек внутри квадрата их может быть и четыре: вверх, вниз, влево и вправо.
Поделиться7562019-10-01 08:15:13
Если остальное перебором - то это бессмысленный алгоритм. нужно построить какой-то анализ. При этом анализ должен включать в себя путь возврата в исходную позицию.
Нет такого алгоритма.
Метод ближайшего соседа: задан начальный пункт.
От него - находим ближайший пункт, если из больше одного - подбрасываем монетку.
Переходим по кратчайшему пути, и снова находим ближайший пункт, в котором еще не были.
И так далее N раз.
Метод термоусадки.
Сразу очерчиваем внешний периметр.
Это заготовка будущего маршрута.
16 отрезков сразу.
И 9 пунктов внутри периметра.
Находим детуры каждого отрезка периметра с каждым свободным пунктом.
Таблица 16х9.
В ней находим минимальный элемент.
Отрезок, который ему соответствует - убираем, строку из таблицы вычеркиваем.
Пункт, который этому значению соответствует, соединяем с концами удаленного отрезка.
Получилось два новых отрезка, и этот пункт между ними.
Столбец в таблице вычеркиваем, Две новых строки добавляем.
Отрезков маршрута стало на 1 больше, свободных пунктов - на 1 меньше, таблица 17х8.
Продолжаем, пока не закончатся свободные пункты, таблица станет 25х0, соответственно, сам собой проложится маршрут из 25 отрезков.
Поделиться7572019-10-01 08:19:44
Но неважно, для искомого квадрата там получится змейка с возвратом по вертикальной оси. А вот когда возврат к вертикальной оси невозможен, последний ряд идёт по диагоналям.
Что там получится, об этом мы узнаем только ночером...
Поделиться7582019-10-01 08:23:54
Получается, что в каждой точке необходимо исследование ближайших точек, и пути возврата.
С этим - к Шарперу.
Я ему уже объяснял, что в кратчайший маршрут может входить не обязательно ближайшая точка, а зачастую и весьма далёкая, иногда - самая удаленная от данной точки.
Алгоритмы, которые ищут только среди ближайших точек называются "жадными" и они малоэффективны...
Поделиться7592019-10-01 08:59:57
С этим - к Шарперу.
Я ему уже объяснял, что в кратчайший маршрут может входить не обязательно ближайшая точка, а зачастую и весьма далёкая, иногда - самая удаленная от данной точки.
Алгоритмы, которые ищут только среди ближайших точек называются "жадными" и они малоэффективны...
А тут ведь, насколько понимаю, очень сильно эффективность зависит от выбора исходной точки, от которой начинается построение маршрута. Возможно, здесь стоит перебрать все варианты, включающие каждую из точек как исходную.
Поделиться7602019-10-01 11:07:00
сильно эффективность зависит от выбора исходной точки,
Нет. Это верно только для наименее эффективных методов.
Метод ближайшего соседа действительно требует расчета для N начальных точек маршрута.
Метод ветвей и границ, для N(N-1) возможных вариантов нумерации вершин.
Два метода лукомора от выбора начальной точки не зависят никак.
Отредактировано Лукомор (2019-10-01 11:51:08)
Поделиться7612019-10-01 18:06:31
у точек внутри квадрата их может быть и четыре: вверх, вниз, влево и вправо.
имеется в виду, что верх и лево уже прошли.
Нет такого алгоритма.
Дык - надо сделать!
Поделиться7622019-10-01 18:46:06
Так, метод имитации термоусадки пока в сторону,
его в ручную не так быстро на 25 точек просчитать,
я его постепенно домучаю,
или программку допишу уже, как и собирался.
Метод ближайшего соседа лажает по полной.
Я его 25 раз запустил, с каждой точки, -
и ни одного варианта без явных петель.
Вот самый короткий из 25, он начинается от пункта №13 вниз:
И он не кратчайший ни разу.
Но до кратчайшего его можно допилить вручную, просто распутав петлю:
Отредактировано Лукомор (2019-10-01 19:06:05)
Поделиться7642019-10-02 06:10:49
Дык - надо сделать!
Но я решительно не понимаю, что надо сделать,
чтобы, зная кратчайший маршрут через 20 точек,
найти кратчайший маршрут через 4 точки из этих 20.
И не является ли это знание кратчайшего маршрута через 20 точек
(кстати, он далеко не единственный возможный)
бесполезным,
подобно тому, как является бесполезным знание длины кратчайшего маршрута в алгоритме им. Шарпера?
Отредактировано Лукомор (2019-10-02 06:18:19)
Поделиться7652019-10-02 08:00:23
Но до кратчайшего его можно допилить вручную, просто распутав петлю:
Гы, а петли вообще допустимы? К тому же он через одну точку 2 раза пропетлял...
Но я решительно не понимаю, что надо сделать,
чтобы, зная кратчайший маршрут через 20 точек,
Вот теперь нужно сделать так, чтобы алгоритм поиска следующей точки в первой случае - так же отрабатывал и во втором. Для этого он (алгоритм) (если мы выдвигаемся с верхней точки) должен отработать сначала путь домой от самой дальней точки, а потом просто сделать один шаг до свободной.
Поделиться7662019-10-02 08:20:35
а петли вообще допустимы?
*ехидно*
Это зависит от того, как навешена дверь. Может, там пендельтюр.
Поделиться7672019-10-02 09:00:05
там пендельтюр
Там турникет. Хотя он не отменяет пендель
Поделиться7682019-10-02 10:35:42
К тому же он через одну точку 2 раза пропетлял...
Ко мне какие претензии?!
Это онлайн калькулятор...
Пропетлял и пропетлял, это не наказуемо...
Может он пролетел над точкой, мы этого не знаем.
Поделиться7692019-10-02 10:40:02
Гы, а петли вообще допустимы?
В примитивных алгоритмах без них никуда.
В методе ближайшего соседа они появляются, когда коммивояжер забредает в тупик, где все вокруг точки уже пройдены.
в более продвинутых методах -
методе ветвей и границ, методе объединения петель, методе имитации термоусадки -
петли не появляются на маршруте в принципе.
Поделиться7702019-10-02 10:44:47
Вот теперь нужно сделать так, чтобы алгоритм поиска следующей точки в первой случае - так же отрабатывал и во втором.
Сделаем, конечно сделаем!
Только вот как мы это сделаем?!
Мы этого пока не сделали и в первом случае, напоминаю, что алгоритм запустил шикарную петлю.
А то что я довернул его в рукопашную - это не алгоритм, это естественный интеллект!
Поделиться7712019-10-02 10:46:47
Для этого он (алгоритм) (если мы выдвигаемся с верхней точки) должен отработать сначала путь домой от самой дальней точки, а потом просто сделать один шаг до свободной.
С этого места я ничего не понял совершенно.
Такое ощущение что бегемот добрался до вечной мерзлоты...
И покусал...
Отредактировано Лукомор (2019-10-02 10:47:13)
Поделиться7722019-10-02 11:34:20
К тому же он через одну точку 2 раза пропетлял...
Так разбирали уже это. Баба у него там.
Поделиться7732019-10-02 18:27:30
Пропетлял и пропетлял, это не наказуемо...
Может он пролетел над точкой, мы этого не знаем.
Шаман, однако...
они появляются, когда коммивояжер забредает в тупик, где все вокруг точки уже пройдены.
Бухать по дороге меньше надо...
А то что я довернул его в рукопашную - это не алгоритм, это естественный интеллект!
Интеллектище!
А алгоритм недоработанный.
С этого места я ничего не понял совершенно.
Такое ощущение что бегемот добрался до вечной мерзлоты...
И покусал...
Ну, я хез. вроде наиболее просто объяснил, мож ещё раз попробуешь прочитать, а то хез как, разве-что пошагово рисовать...
О! первым делом строим кратчайший путь до дальней точки, а потом едем домой.
Так разбирали уже это. Баба у него там.
А... А я думал наливают бесплатно... Ну, или фестиваль там...
Поделиться7742019-10-02 18:51:16
А алгоритм недоработанный.
Который из них недоработанный?
Поделиться7752019-10-02 18:55:27
О! первым делом строим кратчайший путь до дальней точки, а потом едем домой.
Кратчайший путь от старта до самой дальней может входить в кратчайший маршрут, а может и не входить.
А домой - это только полным перебором..
И зачем тогда строили прямоугольный квадрат?
Если он потом нигде не помогает...
Отредактировано Лукомор (2019-10-02 18:58:30)
Поделиться7762019-10-02 19:09:35
а то хез как, разве-что пошагово рисовать...
Я выше нарисовал.
Красным - это условие задачи: четыре точки через которые надо проложить кратчайший маршрут.
Для этого мы первым шагом наносим 20 черных точек прямоугольно - гнездовым способом.
Четыре из которых совпадают с нашими.
Вторым шагом мы находим кратчайший маршрут на этих 20 точках, что является несоизмеримо более сложной задачей.
И создается впечатление что первые два шага мы сделали одной ногой.
Куда шагать дальше - непонятно...
Поделиться7772019-10-02 19:13:45
Там турникет.
И
Аннушка уже купила подсолнечное масло,
и не только купила, но даже разлила.
Так что заседание не состоится...(с) Воланд
Отредактировано Лукомор (2019-10-02 19:14:03)
Поделиться7782019-10-03 07:21:21
Который из них недоработанный?
за которым ты петли прибирал.
Кратчайший путь от старта до самой дальней может входить в кратчайший маршрут, а может и не входить.
там два варианта, в зависимости от чётности проходов.
И зачем тогда строили прямоугольный квадрат?
Если он потом нигде не помогает...
Ну как же, то, о чём я говорил - подтверждается. теперь можно точки тасовать, и допиливать алгоритм.
Я выше нарисовал.
Красным - это условие задачи: четыре точки через которые надо проложить кратчайший маршрут.
Для этого мы первым шагом наносим 20 черных точек прямоугольно - гнездовым способом.
Четыре из которых совпадают с нашими.
Вторым шагом мы находим кратчайший маршрут на этих 20 точках, что является несоизмеримо более сложной задачей.
И создается впечатление что первые два шага мы сделали одной ногой.
Куда шагать дальше - непонятно...
Блин. я вот только сейчас понял, где ты меня недопонял.
Я предполагал работать с полным квадратом, убирая и двигая точки, чтобы допилить алгоритм. А ты понял, что потом в этот квадрат мы помещаем нужные точки. Нет, мы пилим алгоритм. И проработка дороги домой - это 1 его часть, вторая определение чётнсти проходов, и третья построение проходов.
На твоём примере:
1. Нахождение дальней точки, (здась нужно добавить просчёт попутно проходимых точек, но в твоём примере их нет)
2. дорога к дальней точке, попутно захватывающая все оставшиеся пункты.
3. это справедливо только для пункта отправления из внешних точек. для внутренних сначала нужно кратчайшим путём выйти на ближнюю внешнюю, потом дальняя, и домой с захватом всех попутных.
---
Здесь самое сложное (на пока) определить оптимальное попутное прохождение пунктов.
Поделиться7792019-10-03 08:07:44
Я так чувствую, что вы скоро накликаете Мать Русского Квадратостроения в полный рост.
Поделиться7802019-10-03 14:18:07
за которым ты петли прибирал.
Это наиболее простой алгоритм по методу ближайшего соседа.
Он из каждой точки тупо выбирает ближайшую и ломится туда без оглядки.
Отсюда и петли, как расплата за жадность алгоритма.
И он вполне себе работоспособен, на малом количестве пунктов находит кратчайший маршрут.
Есть один нюанс: при запуске с разных пунктов дает разные результаты, поэтому нужно
запускать его с каждого пункта, и выбирать самый короткий из получившихся "кратчайших" путей.