Нахрен править там где ровно
Вот, в принципе, в пяти словах и описание работы пресловутой вертикали, и оценка её эффективности.
Амальгама |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень
Нахрен править там где ровно
Вот, в принципе, в пяти словах и описание работы пресловутой вертикали, и оценка её эффективности.
"Вы рисуйте, вы рисуйте, вам зачтётся".
"Поехали!" (с) Ю.А. Гагарин
Дело в том, что траблы с компьютером привели к некоторому перекосу
в соотношении того, что я делал по задаче коммивояжера для себя, в основном в бумажном виде,
к тому что я выкладывал здесь для всех.
Просто потому, что рисовать на смартфоне крайне неудобно...
За это время я не хило продвинулся в своих экспериментах с различными конфигурациями графов
( при этом ни один коммивояжер не пострадал! ).
Я сделал пару маленьких открытий, не считая Equal Detour Point, с которым я опоздал на 33 года, и о котором я уже рассказывал в этой теме ранее.
Изобрел пару новых методов решения задачи коммивояжера,
и кое-что доработал в уже существующих методах.
Обо всем этом я готов теперь рассказать здесь и сейчас.
Скажи главное, задача решена в общей постановке ?
Скажи главное, задача решена в общей постановке ?
Нет, конечно!
Но это и не главное...
Я столкнулся с определенной трудностью при попытке изложить связно те результаты, которых я достиг за последнее время.
Дело в том, что хотелось бы вытянуть их в какую-то логическую цепочку, но это не просто сделать, поскольку я рассматривал проблему "одновременно во всех направлениях", перескакивая с одной темы на другую, всё это стянулось в плотный клубок, который я попытаюсь сейчас распутать.
Всё ж таки, попробую...
В качестве испытательного полигона я выбрал задачу, которую приволок сюда когда-то Шарпер с сайта Московского энергетического института.
http://twt.mpei.ac.ru/MCS/Worksheets/nva.xmcd
Там, среди прочего, есть пример с координатами 17 точек, между которыми нужно найти кратчайший маршрут, я его уже ранее здесь рассматривал:
Буду рассматривать этот пример в качестве базового и далее.
Там же есть онлайн калькулятор, который находит якобы кратчайший маршрут методом ближайшего соседа.
И сам метод ущербный, хотя и экстремально быстрый, и калькулятор кривобокий.
К калькулятору, собственно, претензия одна:
Когда наш коммивояжер приходит в точку, из которой есть равные кратчайшие расстояния до двух или нескольких соседних точек,
программа весело выбирает точку с меньшим номером, и без оглядки ломится туда.
Как это выглядит на практике?
Если я выберу в качестве стартовой точки точку за номером 13, то коммивояжер бодро допетляет до точки с номером 15 (через точки 5, 6, и 4),
и встанет перед буридановым выбором: расстояния от точки №15 до точки №7 и до точки №8 равны между собой
и оба являются наименьшими из расстояний до не пройденных еще точек.
Наш не буриданов коммивояжер, естественно, выберет дальнейшее направление движения в точку №7, просто потому что 7 < 8...
И будет ему счастье, поскольку в таком случае он финиширует с результатом L = 463,194.
Это не лучший результат, но выше среднего.
А мы ему сделаем подляну: оставим все точки на тех же местах, но поменяем номера двух точек №? и №8.
Теперь из точки №15 коммивояжер направится в совершенно другом направлении, в новую точку №7', бывшую ранее №8.
В результате длина его нового маршрута увеличится до L = 570.702, и это наихудший возможный результат для данного метода и данных начальных условий.
Отредактировано Лукомор (2019-07-30 10:29:50)
и это наихудший возможный результат
размер номер имеет значение !!!
номер имеет значение
Это только в плохих алгоритмах...
Анекдоты из России
Метод Бритвы и Болта: бритва Оккама отсекает лишнее, а болт забивается на всё остальное.
Поигравшись немного с конкретным онлайн-калькулятором с конкретного сайта,
я пришел к заключению, что, в принципе, его можно слегка поправить,
чтобы получаемые на нем результаты не зависели хотя бы от нумерации пунктов,
которые должен посетить коммивояжер.
То-есть, это не принципиально, и не фатально.
Гораздо больше претензий к самому алгоритму решения задачи коммивояжера по "Методу ближайшего соседа".
И основная проблема, в принципе не устранимая, заключается в том, что,
во-первых, он выдает маршруты разной длины, в зависимости от выбора пункта начала движения,
и во-вторых, как следствие этого, часть из этих маршрутов будет с самопересечениями,
которые сигнализируют о неоптимальности данного маршрута.
Вот как выглядит результат работы алгоритма
применительно к конкретному примеру для маршрута с 17 пунктами, приведенному выше.
(Пунктирной линией показан последний отрезок маршрута, по которому коммивояжер возвращается в исходный пункт).
Самый короткий маршрут получается, если начать движение с пункта №4, или с пункта №15, его длина составит
L=457.504.
Следующие по длине маршруты будут от пунктов №0 и №14.
Их длина равна L = 458.662.
Замыкает пятерку самых коротких маршрутов маршрут, стартующий с пункта № 7.
Его длина: L = 460.445.
Дальше идут маршруты стартующие с пунктов № 1 и № 13 (они одинаковые).
Длина каждого из них равна L = 463.194.
Отредактировано Лукомор (2019-08-03 16:45:14)
Следующий по длине маршрут начинается с пункта № 5,
и это самый короткий маршрут, имеющий самопересечение, или петлю.
Его длина L = 465.714
Далее идет маршрут от пункта №6.
Он, а также все остальные более длинные маршруты также будут иметь самопересечения.
И его длина L = 471.622.
Отредактировано Лукомор (2019-08-03 17:13:22)
Маршруты от восьми оставшихся точек выкладываю без комментариев,
отсортировав по возрастанию длины маршрута. Надоело комментировать.
Отредактировано Лукомор (2019-08-04 22:14:26)
Все результаты работы программы я свел в таблицу, где в каждой строке последовательно перечислены пункты, которые проходит коммивояжер, начиная со стартового пункта, и им же заканчивая на финише, плюс в последнем столбце длина пройденного им пути.
Красным цветом шрифта и, где необходимо, цветой заливкой, выделены участки маршрута, которые имеют пересечение с другим участком маршрута.
Это заготовка на будущее, и пока можно на это внимание не обращать.
Прежде чем начать анализировать полученные результаты нужно еще учесть то,
о чем я говорил тремя постами выше, что расстояния от пункта №15 до пунктов №7 и №8 равны.
И если маршрут начинается с пунктов №1, №13, №5 и №6, то встает вопрос о выборе между
участками маршрута 15 - 7 и 15 - 8.
Рассмотрев оба продолжения, можно сделать вывод,
что продолжение маршрута из пункта №15 в пункт №7 для всех этих случаев дает более короткий маршрут,
чем продолжение из пункта №15 в пункт №8, поэтому я оставил в таблице только более выгодный вариант.
Отредактировано Лукомор (2019-08-05 01:47:11)
И вывод то какой ?
И вывод то какой ?
Вывод:
"Всё - суета!"
Рано вообще говорить про какие-то выводы, мы только в самом начале долгого и извилистого пути...
"Это только присказка, сказка -впереди!"
(с) В. С. Высоцкий "Лукоморья больше нет..."
Отредактировано Лукомор (2019-08-05 09:14:41)
Маршруты от восьми оставшихся точек выкладываю без комментариев,
Вывод:
"Всё - суета!"
угу.
Я чисто уточнить, вдруг кто-то знает автора объявления...
Вопрос "Почему сразу Лукомор" отвергаем, как неорганизованный и не имеющий отношения к делу.
Вопрос "Почему сразу Лукомор" отвергаем, как неорганизованный и не имеющий отношения к делу
Не по этой причине отвергаем!
А по причине, что в объявлении "Секретный код для связи" начинается на 09, а мой - с 06...
Отредактировано Лукомор (2019-08-05 09:05:29)
Внимательно рассмотрев табличку с результатами работы программы можем заметить,
что некоторые участки маршрута повторяются во всех вариантах выбора стартового пункта маршрута.
Причем они варьируются по направлению прохождения участка от варианта к варианту.
Я насчитал шесть таких устойчивых участков, и подкрасил их в табличке специфическими цветами вот так:
"Секретный код для связи" начинается на 09, а мой - с 06...
Вечно эти журналисты вес поперепутают.
Не по этой причине отвергаем!
Какая разница, по какой причине, если в итоге всё равно отвергаем?
Следующий шаг, который необходимо сделать при анализе полученных выше маршрутов,
мне видится в том, чтобы забыть на время, каким методом они получены, и о направленности маршрутов,
и рассматривать полученные фигуры, просто как замкнутые 17-угольники, иногда имеющие самопересечения.
Мы выяснили, что у всех этих семнадцати 17-угольников 6 сторон совпадают,
я их сейчас нанесу на план местности...
Мы выделили то общее, что есть в каждом маршруте.
Все остальные 11 сторон 17-угольника будут варьироваться от маршрута к маршруту.
Еще более общее свойство всех 17 маршрутов заключается в том, что отрезок 4-15 во всех 17 маршрутах соединяется с отрезком 5-6,
а отрезок 14-0 всегда соединяется с отрезком 12-8.
Других таких пар нет.
Более того, отрезок 4-15 всегда соединяется с отрезком 5-6 строго из пункта №4, и никогда - из пункта №15.
То-есть, во всех 17 маршрутах есть либо отрезок 4-5, либо 4-6, но никогда нет 15-5 или 15-6.
Аналогично, всегда есть 14-8 либо 14-12, но никогда - 0-8, либо 0-12.
С учетом этого наблюдения таблицу для сравнения маршрутов удобно переделать так, чтобы она начиналась для всех маршрутов с пункта №4, затем сразу пункт №15,
и заканчивалась либо последним пунктом №5, при этом предпоследним будет пункт №6, либо наоборот, последним пунктом №6, а предпоследним -пункт №5.
Возможен второй вариант: все маршруты начинаются с пункта №14 и сразу за ним пункт №0, а заканчиваются пунктом №12, либо пунктом №8.
Других вариантов нет.
Я выбрал последний вариант - все маршруты привести к виду: стартуем с пунктов 14 и 0, финишируем в пункте 12, либо 8.
Получилась новая таблица, в которой более наглядно различие между вариантами маршрутов, найденных методом ближайшего соседа.
Жирная подчеркнутая цифра в каждой строке, пункт с которого начинался маршрут в исходной таблице.
Отредактировано Лукомор (2019-08-08 11:38:34)
В плане лирического отступления,
я позволю себе образное и ни разу не научное сравнение рассматриваемых построений
с привлечением двух базовых понятий науки генетики - фенотип и генотип.
Просто -навеяло...
Схему проложенного маршрута коммивояжера, или, абстрагируясь, просто некий 17-угольник,
я отождествляю с фенотипом некоего организма, прежде всего с его формой.
А строку из таблицы с перечислением пунктов в порядке их прохождения - с его генотипом.
То-есть строка из таблицы - это некий геном, по которому можно построить конкретный организм 17-угольник.
Выделенные мной 6 участков "генома" общие для всех организмов данного вида характеризуют свойства присущие всему данному виду,
а участки, которые отличаются - образовались в результате мутаций генома, под воздействием различных внешних условий,
которое различие в данной модели задается навязанным внешними факторами (экспериментатором) выбором стартового пункта для коммивояжера.
То - есть постоянная составляющая модели внешней среды для данной модели - это таблица координат пунктов на местности,
а переменная оставляющая, характеризующая различные внешние условия, это номер точки старта.
Роль естественного отбора играет здесь
заложенный в алгоритм принцип выбора
ближайшего к данному пункту и еще не посещенного
соседнего пункта.
Отредактировано Лукомор (2019-08-06 09:18:38)
"Всё - суета!"
Тогда в чем интерес ?
Тогда в чем интерес ?
"Но сам процесс!" (с) поручик Ржевский
или
"Движение - всё, цель - ничто!" (с) Эдуард Бернштейн
про семнадцати угольник понравилось
навевает ...
почему то стойкая ассоциация с натягиванием гандона на глобус
Вы всё ещё помните, что вы считаете?
Вы всё ещё помните, что вы считаете?
Кто рубли, кто гривны, а кто-то ведь и до подсчёта долларов опускается.
а кто-то ведь и до подсчёта долларов опускается.
Надеюсь, не канадских?
Нет, австралийских.
Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень