to post messages and comments.

Алгоритм распознавания VOCORD, основанный на глубоких нейронных сетях, показал лучшие результаты в мировом тестировании в категории по идентификации лиц с рангом 1. Это означает, что компьютерная программа должна правильно выбрать изображение лица человека из миллиона тестовых фотографий, поставив его лицо на первое место по степени похожести на «эталон» (база фотографий людей, заданных для сравнения). По итогам тестов, алгоритм компании VOCORD правильно распознал 75,127% лиц, что является лучшим результатом в мире на сегодняшний день.
vocord.ru
До чего довёл страну... (с)
Сколково — это распилы... (с)

Тёплый ламповый разгадыватель японских кроссвордов
Ещё в школе писал, лет 12 назад. Помню, что всяких разных оптимизаций сюда воткнул. Единственное улучшение, которое так и не сделал — не перевёл перебор на микропотоки и поиск в ширину (а не в глубину, как сейчас на обычной рекурсии). Работает в браузере со скоростью, примерно сопоставимой с AMD-K5, который у меня тогда был.

Есть дерево "T" , представляющее из себя выражине типа Bool, узлы дерева — логические операторы (and, or, xor, полный перечень зависит от решения), а листья — произвольные логические выражения. Все листья дерева помечены краской. Каждый лист в дереве считать уникальным. Задача: разбить дерево на несколько деревьев, в каждом из которых будут листья одинакового цвета, при этом, должно соблюдаться "(and T1 T2 T3 ...) == T", где T1, T2 — деревья с листьями одного цвета, для любых значений листьев. Листья нельзя выкидывать или использовать повторно в других деревьях, то есть, количество листьев в T должно быть равно сумме листьев в T1, T2 ...

Это случайно не какая-нибудь типовая задачка? Еще небось и библиотечка на хакадже есть?

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

Долго не подбирался к серии статей про Восстановление расфокусированных и смазанных изображений, зафиксирую ссылки:
1. Теория
2. Практика
3. Повышаем качество
Blind Deconvolution — автоматическое восстановление смазанных изображений
SmartDeblur 2.1 — восстановление смазанных и расфокусированных изображений
И ссылка на GitHub, там лежит версия 1.27.

Придумал задачу, хотя задача сама лежит на поверхности.
По мотивам игры для мобильников City Bloxx.
Есть квадратное игровое поле 5 x 5, всего 25 клеток.
В каждой клетке можно строить одно из зданий:
синее — пусть оно даст нам 75 жителей;
красное — на 250 жителей;
зелёное — на 550 жителей и
жёлтое — на 1000 жителей.
Синее здание можно строить везде,
красное здание можно строить только если есть рядом синее,
зелёное — только рядом с синим и красным,
а жёлтое — только рядом с синим, красным и зелёным.
Нужно застроить поле так чтобы число жителей было максимальным и оставалась возможность любое здание перестраивать сколько угодно раз (собственно в игре хорошо построить здание удаётся далеко не с первого раза).
Здания находящиеся по диагонали не считаются, т.е. рядом — это справа или слева или ниже или выше.

культурных тегов псто.
есть задача написать функцию связанных товаров: "вместе с этим товаром, люди покупают вот эти".
знаю людей, которые хотели связанные товары вбивать вручную. ага. 9000 позиций. и для каждой по 3 штуки "люди покупают еще и эти".
от балды рассказал им про алгоритм, выгружать продажи в формате по одной покупке в строке и через запятую коды товаров.
анализировать их и получать схему:
товарХ, товарY, Z(число транзакций, где они учавствовали вместе).
и на основе этой полученной таблицы присывать к конкретному товару несколько других, число Z которых с данным товаром наибольшие.
очень несложный алгоритм(есть подозрение, что это теория графов).
может кто-нибудь подсказать. как можно его еще улучшить, и главное, какой формат представления данных выбрать для пары со значением (товар1 товар2 Число)?
рекоменд приветствуется

Понадобилось сделать генерацию уникальных ключей вида xxxx-xxxx-xxxx-xxxx
для приходящих через веб пользователей.
В качестве алфавита взял символы "[email protected]#"
Нужно именно 64 уникальных символа. 26 латинских букв в верхнем и нижнем регистрах, а также 10 цифр дают только 62. А вот с оставшимися двумя ещё определяюсь.
Uuid я отмёл как слишком большой. Правда есть и сокращённый вариант вроде, но и его тоже отмёл.
В общем, ничего подходящего не нашёл (правда это не исключает того что всё же плохо искал)
И изобрёл свой велосипед.
Сделал что-то вроде счётчика, этакого 96 битного числа. Если каждую последовательность из 6 бит этого числа представить в виде символа алфавита то и получается тот ключ который мне нужен.
Можно просто смещать на 6 бит это число и вытягивать крайние правые биты по маске 111111 (3F в HEX). А полученное число и будет позицией символа в алфавите.
Осталось определится с этим 96-битным числом.
Его сэмулировал 2мя числами: 64 бита, это unix time в миллисекундах.
И 32 бита как нибудь характеризующие клиента.
Решил сделать просто хеш (32 бит) из представления IP и User-agent, вот такой: docs.oracle.com
Получившиеся примеры:
aaab-qVZS-qLD2-0xys
aaab-qVZS-qLDl-JcUO
aaab-qVZS-qLEu-SNGo
aaab-qVZS-qLEL-At9C

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

Жуйк, прошу помощи в придумывании алгоритма, накидайте идей. Есть некий набор данных, каждому элементу соответствует набор цифр, например 1, 2, 1, 3, 1, 5, 4.. Цифры могут повторятся, порядок важен. Необходимо найти наиболее длинную часто встречающуюся цепочку, при этом допустимо пропускать позиции.
Допустим а — 1, 2, 1, 4, 6, 3
б — 2, 1, 1, 3, 5, 4, 6,
в — 1, 3, 1, 2, 1, 5, 4, 2, 6
В таком случае искомая цепочка будет 2, 1, 4, 6

Число элементов, которым соответствуют цепочки — порядка 500.
Вариантов цифр — порядка 20.
Скорость алгоритма не важна, надо сделать всего один раз.

Как можно наиболее оптимально превратить линейную выборку типа (id,parent) в массив в виде дерева {id1, id2:{id2_1,id_2_2:{id2_2_1}},id_3} (id=0 — общий корень, соответственно parent=0 элементы первого уровня)

подумав немного над juick.com
я понял, что меня гораздо больше интересует вопрос:
Разрешима ли за полиномиальное время задача поиска максимального разреза ориентированного планарного графа?

Вопрос на mathoverflow задал:)
mathoverflow.net

Народ осуждает как нарисовать сглаженную окружность: «Сейчас рисую окружность так: беру квадрат со стороной 2r и внутри него каждую точку проверяю на вхождение в круг». Предлагают потом даже мультисемплингом это делать. Разбивать точки на субпиксели… 5 часов обсуждения, 16 ответов, даже пример страшного кода. Ни одного упоминания подстроки «Брезенхем». Я в унынии: linux.org.ru

Этих бы людей, да на восьмибитные машины с 2МГц процессором. Что же будет ещё через 20 лет? Камо грядеши? Это даже не определение расстояния на плоскости по сумме разностей координат. В последнем случае хоть ошибка вылезет и люди поймут, что не правы. А тут — «рисуется достаточно быстро»…

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

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

['C', 'O', 'F', 'B', 'D', 'G', 'M', 'L', 'K', 'E', 'H'...]

Что думаете?

Жуйк, подскажи. Разыскивается алгоритм поска кратчайших расстояний в графе. Видимо, малоизвестный. Что известно — вроде (?) решает ту же задачу, что алг. Дейкстры; использует принципиально другую идею, вследствие которой для него не доказана нижняя граница оценки сложности.

З.Ы. Дейкстру, Форда-Беллмана, Флойда не предлагать.

theoryandpractice.ru
Как определить фотографию голой девушки программно.
если самый большой регион содержит меньше 35% кожаных пикселей, второй и третий — меньше 30% каждый, — это логотип Timberland, а не голая девушка;если самый большой регион содержит меньше 45% кожаных пикселей — это карта Европы без России, а не голая девушка;
если кожаных пикселей меньше 30%, а регионы сильно разбросаны по фотографии — это мясорубка, а не порнография;
если количество регионов больше 60, но основная часть фотографии неяркая — это фотография из Коммерсанта, а не Playboy.

Мда. И все такие по "Алгоритмам и структурам данных" 4-ая таска мне попалась жестокая. У меня есть подозрения, что её если и реализовал, то только 1 человек, ибо то что мне надо реализовать у меня вызывает тихий ужас. Точнее, тот единственный метод реализации что я нашел. Я тупо с трудом понимаю этот алгоритм и не понимаю как это вообще можно написать... =(. А ведь уже почти апрель....