Содействие - исключение из 3-го закона Ньютона.

Амальгама

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень


Другая тень

Сообщений 751 страница 780 из 1000

751

Мало точек, они не дают всей картины.  Надо чтобы 16 квадратов было как минимум. А лучше больше.

0

752

#p112472,Ал написал(а):

Мало точек, они не дают всей картины.

Я об этом сразу сказал, что большинство калькуляторов обрабатывают максимум 14 - 15 пунктов.

Отредактировано Лукомор (2019-10-01 07:51:05)

0

753

#p112472,Ал написал(а):

Надо чтобы 16 квадратов было как минимум. А лучше больше.

16 квадратов это 25 пунктов.

Из всех калькуляторов будет работать только тот который методом ближайшего соседа.
Но его надо запустить 25 раз.

Ну и мой еще метод имитации термоусадки...
13 итераций, надо попробовать...  http://www.kolobok.us/smiles/light_skin/scratch_one-s_head.gif

Методы не самые хорошие, поэтому могут и не найти кратчайший маршрут, но будет интересно посмотреть, кто кого заборет!
Только это будет в лучшем случае после полудня.

А полдень  у  нас в 13:00  http://www.kolobok.us/smiles/standart/smile3.gif

Отредактировано Лукомор (2019-10-01 07:51:26)

0

754

#p112477,Лукомор написал(а):

Из всех калькуляторов будет работать только тот который методом ближайшего соседа.

Там дело в том, что в каждой точке 2 ближайших соседа. Если остальное перебором - то это бессмысленный алгоритм. нужно построить какой-то анализ. При этом анализ должен включать в себя путь возврата в исходную позицию. Но неважно, для искомого квадрата там получится змейка с возвратом по вертикальной оси. А вот когда возврат к вертикальной оси невозможен, последний ряд идёт по диагоналям. Получается, что в каждой точке необходимо исследование ближайших точек, и пути возврата.

0

755

#p112480,Ал написал(а):

Там дело в том, что в каждой точке 2 ближайших соседа.

Это у угловых точек по два.
А в военное время у точек внутри квадрата их может быть и четыре: вверх, вниз, влево и вправо.

0

756

#p112480,Ал написал(а):

Если остальное перебором - то это бессмысленный алгоритм. нужно построить какой-то анализ. При этом анализ должен включать в себя путь возврата в исходную позицию.

Нет такого алгоритма.
Метод ближайшего соседа: задан начальный пункт.
От него - находим ближайший пункт, если из больше одного - подбрасываем монетку.
Переходим по кратчайшему пути, и снова находим ближайший пункт, в котором еще не были.
И так далее N раз.

Метод термоусадки.
Сразу очерчиваем внешний периметр.
Это заготовка будущего маршрута. 
16 отрезков сразу.
И 9 пунктов внутри периметра.
Находим детуры каждого отрезка периметра с каждым свободным пунктом.
Таблица 16х9.
В ней находим минимальный элемент.
Отрезок, который ему соответствует - убираем, строку из таблицы вычеркиваем.
Пункт, который этому значению соответствует, соединяем с концами удаленного отрезка.
Получилось два новых отрезка, и этот пункт между ними.
Столбец в таблице вычеркиваем, Две новых строки добавляем.
Отрезков маршрута стало на 1 больше, свободных пунктов - на 1 меньше, таблица 17х8.
Продолжаем, пока не закончатся свободные пункты,  таблица станет 25х0, соответственно, сам собой проложится маршрут из 25 отрезков.

0

757

#p112480,Ал написал(а):

Но неважно, для искомого квадрата там получится змейка с возвратом по вертикальной оси. А вот когда возврат к вертикальной оси невозможен, последний ряд идёт по диагоналям.

Что там получится, об этом мы узнаем только ночером...

0

758

#p112480,Ал написал(а):

Получается, что в каждой точке необходимо исследование ближайших точек, и пути возврата.

С этим - к Шарперу.
Я ему уже объяснял, что в кратчайший маршрут может входить не обязательно ближайшая точка, а зачастую и весьма далёкая, иногда  - самая удаленная от данной точки.
Алгоритмы, которые ищут только среди ближайших точек называются "жадными" и они малоэффективны...

0

759

#p112486,Лукомор написал(а):

С этим - к Шарперу.
Я ему уже объяснял, что в кратчайший маршрут может входить не обязательно ближайшая точка, а зачастую и весьма далёкая, иногда  - самая удаленная от данной точки.
Алгоритмы, которые ищут только среди ближайших точек называются "жадными" и они малоэффективны...

А тут ведь, насколько понимаю, очень сильно эффективность зависит от выбора исходной точки, от которой начинается построение маршрута. Возможно, здесь стоит перебрать все варианты, включающие каждую из точек как исходную.

0

760

#p112489,Zagar написал(а):

сильно эффективность зависит от выбора исходной точки,

Нет. Это верно только для наименее эффективных методов.
Метод ближайшего соседа действительно требует расчета для  N начальных точек маршрута.
Метод ветвей и границ, для N(N-1) возможных вариантов нумерации вершин.
Два метода лукомора от выбора начальной точки не зависят никак.

Отредактировано Лукомор (2019-10-01 11:51:08)

0

761

#p112481,Лукомор написал(а):

у точек внутри квадрата их может быть и четыре: вверх, вниз, влево и вправо.

имеется в виду, что верх и лево уже прошли.

#p112484,Лукомор написал(а):

Нет такого алгоритма.

Дык - надо сделать!

0

762

Так, метод имитации термоусадки пока в сторону,
его в ручную не так быстро на 25 точек просчитать,
я его постепенно домучаю,
или программку допишу уже, как и собирался.

Метод ближайшего соседа лажает по полной.
Я его 25 раз запустил, с каждой точки, -
и ни одного варианта без явных петель.
Вот самый короткий из 25, он начинается от пункта №13 вниз:
http://s3.uploads.ru/t/bcnAl.png
И он не кратчайший ни разу.

Но до кратчайшего его можно допилить вручную, просто распутав петлю:

http://s7.uploads.ru/t/TSu4J.png

Отредактировано Лукомор (2019-10-01 19:06:05)

0

763

Вообще-то, по-хорошему, чтобы не было лишних рысканий и прочих рюшечек на кратчайшем пути,
нужно брать не квадрат, а прямоугольник Nx(N + 1).

http://sg.uploads.ru/t/E4JNQ.png

В более общем виде:
Nx(N+1+2k).

http://s7.uploads.ru/t/y5I1S.png

Отредактировано Лукомор (2019-10-02 05:58:05)

0

764

#p112513,Ал написал(а):

Дык - надо сделать!

Но я решительно не понимаю, что надо сделать,
чтобы, зная кратчайший маршрут через 20 точек,
http://sg.uploads.ru/t7iKx.png
найти кратчайший маршрут через 4 точки из этих 20.
http://s5.uploads.ru/XZOzG.png

И не является ли это знание кратчайшего маршрута через 20 точек
(кстати, он далеко не единственный возможный)
бесполезным,
подобно тому, как является бесполезным знание длины кратчайшего маршрута в алгоритме им. Шарпера?

Отредактировано Лукомор (2019-10-02 06:18:19)

0

765

#p112522,Лукомор написал(а):

Но до кратчайшего его можно допилить вручную, просто распутав петлю:

Гы, а петли вообще допустимы? К тому же он через одну точку 2 раза пропетлял...

#p112553,Лукомор написал(а):

Но я решительно не понимаю, что надо сделать,
чтобы, зная кратчайший маршрут через 20 точек,

Вот теперь нужно сделать так, чтобы алгоритм поиска следующей точки в первой случае - так же отрабатывал и во втором. Для этого он (алгоритм) (если мы выдвигаемся с верхней точки) должен отработать сначала путь домой от самой дальней точки, а потом просто сделать один шаг до свободной.

0

766

#p112560,Ал написал(а):

а петли вообще допустимы?

*ехидно*
Это зависит от того, как навешена дверь. Может, там пендельтюр. http://www.kolobok.us/smiles/big_standart/biggrin.gif

+3

767

#p112564,DoctorLector написал(а):

там пендельтюр

Там турникет. Хотя он не отменяет пендель

0

768

#p112560,Ал написал(а):

К тому же он через одну точку 2 раза пропетлял...

Ко мне какие претензии?!
Это онлайн калькулятор...
Пропетлял и пропетлял, это не наказуемо...
Может он пролетел над точкой, мы этого не знаем.

0

769

#p112560,Ал написал(а):

Гы, а петли вообще допустимы?

В примитивных алгоритмах без них никуда.
В методе ближайшего соседа они появляются, когда коммивояжер забредает в тупик, где все вокруг точки уже пройдены.
в более продвинутых методах -
методе ветвей и границ, методе объединения петель, методе имитации термоусадки -
петли не появляются на маршруте в принципе.

0

770

#p112560,Ал написал(а):

Вот теперь нужно сделать так, чтобы алгоритм поиска следующей точки в первой случае - так же отрабатывал и во втором.

Сделаем, конечно сделаем!
Только вот как мы это сделаем?!
Мы этого пока не сделали и в первом случае, напоминаю, что алгоритм запустил шикарную петлю.
А то что я довернул его в рукопашную - это не алгоритм, это естественный интеллект!  http://www.kolobok.us/smiles/light_skin/yahoo.gif

0

771

#p112560,Ал написал(а):

Для этого он (алгоритм) (если мы выдвигаемся с верхней точки) должен отработать сначала путь домой от самой дальней точки, а потом просто сделать один шаг до свободной.

С этого места я ничего не понял совершенно.
Такое ощущение что бегемот добрался до вечной мерзлоты...
И покусал...

Отредактировано Лукомор (2019-10-02 10:47:13)

+1

772

#p112560,Ал написал(а):

К тому же он через одну точку 2 раза пропетлял...

Так разбирали уже это. Баба у него там.

+1

773

#p112581,Лукомор написал(а):

Пропетлял и пропетлял, это не наказуемо...
Может он пролетел над точкой, мы этого не знаем.

Шаман, однако...

#p112582,Лукомор написал(а):

они появляются, когда коммивояжер забредает в тупик, где все вокруг точки уже пройдены.

Бухать по дороге меньше надо...

#p112583,Лукомор написал(а):

А то что я довернул его в рукопашную - это не алгоритм, это естественный интеллект!

Интеллектище!
А алгоритм недоработанный.

#p112584,Лукомор написал(а):

С этого места я ничего не понял совершенно.
Такое ощущение что бегемот добрался до вечной мерзлоты...
И покусал...

Ну, я хез. вроде наиболее просто объяснил, мож ещё раз попробуешь прочитать, а то хез как, разве-что пошагово рисовать...
О! первым делом строим кратчайший путь до дальней точки, а потом едем домой.

#p112588,Zagar написал(а):

Так разбирали уже это. Баба у него там.

А... А я думал наливают бесплатно... Ну, или фестиваль там...

0

774

#p112602,Ал написал(а):

А алгоритм недоработанный.

Который из них недоработанный?

0

775

#p112602,Ал написал(а):

О! первым делом строим кратчайший путь до дальней точки, а потом едем домой.

Кратчайший путь от старта до самой дальней может входить в кратчайший маршрут, а может и не входить.
А домой - это только полным перебором..

И зачем тогда строили прямоугольный квадрат?
Если он потом нигде не помогает...

Отредактировано Лукомор (2019-10-02 18:58:30)

0

776

#p112602,Ал написал(а):

а то хез как, разве-что пошагово рисовать...

Я  выше нарисовал.
Красным - это условие задачи: четыре точки через которые надо проложить кратчайший маршрут.
Для этого мы первым шагом наносим 20 черных точек прямоугольно - гнездовым способом.
Четыре из которых совпадают с нашими.
Вторым шагом мы находим кратчайший маршрут на этих 20 точках, что является несоизмеримо более сложной задачей.
И создается впечатление что первые два шага мы сделали одной ногой.  http://www.kolobok.us/smiles/standart/smile3.gif
Куда шагать дальше - непонятно... http://www.kolobok.us/smiles/light_skin/unknw.gif

0

777

#p112573,Шарпер написал(а):

Там турникет.

И

Аннушка уже купила подсолнечное масло,
и не только купила, но даже разлила.
Так что заседание не состоится...

(с)  Воланд

Отредактировано Лукомор (2019-10-02 19:14:03)

0

778

#p112611,Лукомор написал(а):

Который из них недоработанный?

за которым ты петли прибирал.

#p112612,Лукомор написал(а):

Кратчайший путь от старта до самой дальней может входить в кратчайший маршрут, а может и не входить.

там два варианта, в зависимости от чётности проходов.

#p112612,Лукомор написал(а):

И зачем тогда строили прямоугольный квадрат?
Если он потом нигде не помогает...

Ну как же, то, о чём я говорил - подтверждается. теперь можно точки тасовать, и допиливать алгоритм.

#p112613,Лукомор написал(а):

Я  выше нарисовал.
Красным - это условие задачи: четыре точки через которые надо проложить кратчайший маршрут.
Для этого мы первым шагом наносим 20 черных точек прямоугольно - гнездовым способом.
Четыре из которых совпадают с нашими.
Вторым шагом мы находим кратчайший маршрут на этих 20 точках, что является несоизмеримо более сложной задачей.
И создается впечатление что первые два шага мы сделали одной ногой.  
Куда шагать дальше - непонятно...

Блин. я вот только сейчас понял, где ты меня недопонял. http://www.kolobok.us/smiles/standart/smile3.gif
Я предполагал работать с полным квадратом, убирая и двигая точки, чтобы допилить алгоритм. А ты понял, что потом в этот квадрат мы помещаем нужные точки. Нет, мы пилим алгоритм. И проработка дороги домой - это 1 его часть, вторая определение чётнсти проходов, и третья построение проходов.
На твоём примере:
1. Нахождение дальней точки, (здась нужно добавить просчёт попутно проходимых точек, но в твоём примере их нет)
2. дорога к дальней точке, попутно захватывающая все оставшиеся пункты.
3. это справедливо только для пункта отправления из внешних точек. для внутренних сначала нужно кратчайшим путём выйти на ближнюю внешнюю, потом дальняя, и домой с захватом всех попутных.
---
Здесь самое сложное (на пока) определить оптимальное попутное прохождение пунктов.

0

779

Я так чувствую, что вы скоро накликаете Мать Русского Квадратостроения в полный рост.

0

780

#p112634,Ал написал(а):

за которым ты петли прибирал.

Это наиболее простой алгоритм по методу ближайшего соседа.
Он из каждой точки тупо выбирает ближайшую и ломится туда без оглядки.
Отсюда и петли, как расплата за жадность алгоритма.
И он вполне себе работоспособен, на малом количестве пунктов находит кратчайший маршрут.
Есть один нюанс: при запуске с разных пунктов дает разные результаты, поэтому нужно
запускать его с каждого пункта, и выбирать самый короткий из получившихся "кратчайших" путей.

0


Вы здесь » Амальгама » Лукоморье 2.0 » Другая тень