Pull to refresh
6
-2
Send message

Такую штуку кто только ни делал, собственно, название паттерна так и возникло: автор статьи, в которой паттерн был формализован, отметил, что этот паттерн (pattern), основанный на хитром использовании шаблонов (template), является удивительно (curiously) часто повторяющимся (recurring) от кодовой базы к кодовой базе, причем эти кодовые базы зачастую никак не связаны друг с другом. То есть имя паттерна никак не связано с механизмом его реализации, хотя из статьи в статью кочуют попытки расшифровку аббревиатуры притянуть (причем за уши) к реализации. Даже удивительно, что в этой статье это притягивание не возникло, но я думаю, это от небрежности, а не от благого намерения.

Я ждал этого всего по очереди (и ещё думал, что какая-то из жил перебита, а во время дождя контакт восстанавливается), пока не прочитал, что Wi-Fi ловится по воздуху; с этого момента ждал, что из-за намокания/наполнения водой что-то перекрывающее видимость проседает и видимость восстанавливается. Если история реальная, для меня загадка, как об этом можно было не подумать с самого начала...

Так это и есть как в мессенджерах. Позволяешь видеть время своей последней активности - видишь время последней активности собеседников. Запрещаешь видеть своё - перестаёшь видеть у собеседников. По крайней мере, в whatsapp и в телеге так (правда, в телеге за премиум-подписку настройки гибче).

С моей точки зрения, в контексте решаемой задачи только первая (в итоге и выбранная) версия перечисления Token корректна. Токен - это неделимая смысловая единица входного языка; из таких единиц строятся высказывания на этом языке. Поэтому вторая предлагаемая версия - своего рода доведение до абсурда, просто сопоставление каждого символа алфавита некоторому идентификатору; расширив этот вариант до всех 256 символов ASCII, можно гордо заявить, что мы реализовали универсальный токенизатор для любого языка (пусть и без поддержки юникода), только вот толку от него?

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

А почему вы считаете, что при переводе взгляда обратно на крестик эксперимент не начинается заново? Суть изначального перемещения изображения -- найти такое расстояние, при котором когда взгляд направлен на крестик, кружок бы находился аккурат в зоне слепого пятна. Как только оно найдено, никакие манипуляции не заставят увидеть кружок (если при этом смотреть на крестик), это физически невозможно. Т.е. при удачном стечении обстоятельств можно прямо сразу поместить изображение на нужном расстоянии от глаза, и тогда эксперимент начнется сразу с "отсутствия" кружка.

Вы просто вороньих исследований не читали.

Не очень понял, какое аналогичное допиливание нужно велосипедам? Про знаки "проезд велосипедам запрещён" с семантикой "нельзя, но можно" я не слышал)

Построение гибридных маршрутов (на нескольких типах транспорта) - нетривиальная фича на самом деле, если её по уму делать, а делать не по уму не хочется...

С этим вопросом к авторам цитат.

От себя могу сказать, что купил польский ключ на GoW: Ragnarok на авито на ~1000 дешевле, чем мне предлагал "официальный" дилер, да ещё и с российской озвучкой, что "официальный" дилер внезапно перестал предлагать за месяц до старта продаж, ограничившись российскими субтитрами.

И это тоже пример серого рынка.

Серый рынок - это не пиратки, а всякие сторонние сервисы по продаже ключей.

Тогда мне сказали, что эта функция тестируется.

Либо вас не так поняли, либо ещё что-то, но оффлайн-построение у нас есть очень давно, если всё правильно помню, с первого же релиза навигатора.

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

Надо будет вам прислать скриншот, когда при скачанных картах, полностью обновленных картах и приложении, но, в отсутствии интернета, приложение говорит "Фиг вам".

"Фиг вам" может случиться на каком-то конкретном наборе точек (граф между ними порвался, какое-нибудь перекрытие возникло или ещё чего). Скорее всего, в вашем случае так и было. И в таких случаях, конечно, надо слать нам точки, не обязательно скриншот, можно прямо из приложения сообщить о проблеме, тогда мы получим больше информации, чем из скриншота.

А что с маршрутами между регионами?

Тут, к сожалению, ничего конкретного обещать не могу. Про запрос знаем, важность и актуальность понимаем.

Вы именно о грузовых маршрутах говорите, или в принципе? Потому что, как раз помимо грузовых маршрутов, все остальные типы маршрутов мы умеем строить оффлайн в пределах одного региона.

Да, конечно, как и в случае любых штрафов, должна раздуться. Вопрос в том, насколько. Об этом в статье тоже было упомянуто. Например, один из "глупых" вариантов: у желательного выезда штраф 0, у следующего по "нежелательности" - сутки, у следующего - двое суток и т.д. Работать будет? да. Вот только если первые несколько проездов окажутся неудачными (точка назначения окажется из них недостижима), волне уже хватит времени, чтобы обойти большую часть графа, например, России, ожидая истечения очередного штрафа в несколько суток. Вот в контексте таких случаев я говорил, что к выбору значений штрафов надо проходить вдумчиво.

const const const True<Infinity> = False!!!

Теперь живите с этим.

Если между точками по зоне 50 метров, а от каждой точки до выезда из зоны 100 метров (но в разные стороны), то минимизацией будет проезд через зону :)

Это да, я, конечно, имел ввиду ситуацию, когда сумма расстояний до выезда и от въезда меньше, чем расстояние между точками внутри зоны)

Да, с ПДД с их чудесными формулировками вечно так... Чего стоит только знаменитое определение перекрёстка через перекрёсток.

Попробую ответить на то, на что смогу. Я не профессиональный толкователь ПДД, но в работе то и дело приходится сталкиваться с подобными вопросами (вот грузовые правила, кстати, как раз квинтэссенция).

Например, "ближайший" перекрёсток считается по прямой или по дороге?

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

Или, например - что делать, если пункт А и пункт Б расположены внутри одной зоны, но у разных выездов? Можно ли проехать маршрут целиком внутри зоны, или следует выехать у ближайшего к А выезда, объехать зону и заехать обратно на ближайшем к Б въезде?

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

И да, как, по мнению законодателя, водитель должен найти ближайший въезд, зная конечный адрес, но не имея карты (ведь к ПДД таковая не приложена) дорог и запретных зон?

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

И такая ситуация, наверное, будет при попытке сделать это с любым пунктом.

Справедливости ради скажу, что приведённые вами примеры всё же куда менее формализуемы, чем то, о чём речь идёт в статье.

Когда ограничение проезда точечное, подобные простые штрафы работают хорошо, но в случае с грузовыми зонами такой простой подход - это как раз случай, где всем проездам назначен одинаковый штраф (100 на гифке).

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

В моём случае строгая математичность A* (вернее, его требований к эвристике, на чём и основана гарантия его оптимальности), к сожалению, разбивается о суровую реальность.

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

Под "точно посчитать эвристику" я имею ввиду "с минимальным возможным оптимизмом, но не хуже", т.е. так, чтобы не рассматривать ни одной лишней вершины, но рассмотреть все необходимые для гарантии оптимальности. То есть h(x) = 0 -- максимально оптимистичная эвристика, но с ней A* вырождается в Дейкстру и перебирает огромное количество "лишних" вершин, чего мы как раз пытаемся избежать.

Поэтому приходится как-то выкручиваться, чтобы и рыбку съесть, и в рамках накалываемых на время расчёта ограничений остаться.

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

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

Я бы сказал, почти правильная реализация. Всё же условием останова следовало бы предпочесть вариант "целевая вершина достигнута И ни один кандидат в очереди не лучше уже найденного пути". Достаточно легко представить граф, где целевая вершина может быть сначала достигнута по менее оптимальному маршруту, чем это возможно, и этот маршрут нашёлся бы уже буквально на следующей итерации (хотя это и не обязательно, зависит от структуры графа), если бы мы опрометчиво не прервали поиск. Кажется, на графе, представленном обычной регулярной сеткой "без сюрпризов", такого случиться не должно, но в случае с графами произвольного вида или когда в игру вступают веса (как в данном случае: "регулярная сетка + высоты"), такие ситуации вполне возможны.

1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity