Обновить
236.27

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Привет из мира 1С — Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД

Время на прочтение4 мин
Количество просмотров12K

В данной статье вспомним как обрабатывать результаты запроса в вычисляемых полях СКД, а так же сделаем небольшой обзор на новые функции СКД платформы 8.3.20.

Читать далее

Поиск в глубину, поиск в ширину, алгоритмы Дейкстры и А* — это один и тот же алгоритм

Время на прочтение7 мин
Количество просмотров22K

В алгоритмических задачах на графах мы часто используем четыре известных алгоритма: Поиск в ширину или глубину, алгоритмы Дейкстры и А*. Разбираемся, почему на деле это один и тот же алгоритм.

Читать далее

К вопросу о математических способностях студентов или как учить переполненный мозг

Время на прочтение23 мин
Количество просмотров244K

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

Это было бы смешно, если бы от способности быстро в уме прикинуть результат не зависела способность быстрее создавать сложные алгоритмы. 

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее

Классика, визуализация и GNN: три решения для ML-модели с графовыми данными

Время на прочтение7 мин
Количество просмотров2.7K


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

Мы задали ее командам-участникам хакатона «Цифровой прорыв в ЦФО», который прошел в сентябре в московском офисе VK. И сейчас покажем три, на наш взгляд, лучших решения и подхода к созданию моделей на основе графов.
Читать дальше →

ChatGPT пройдёт собеседование по Data Science вместо вас

Время на прочтение10 мин
Количество просмотров18K

Привет, чемпион!

Возможно, ты сейчас готовишься к собеседованию в какую-нибудь IT-компанию. Скорее всего, тебе будут задавать технические вопросы, поэтому тебе приходится готовиться. Но, возможно, ты всё равно не сможешь ответить на все вопросы правильно. Как быть?!

А слышал ли ты про новую умную chatGPT? А что, если Я тебе скажу, что больше готовиться к собеседованиям так усердно не нужно! Что?! Задаваемые тебе вопросы можно делегировать chatGPT.

В общем, нет времени объяснять, давай устроим собес для chatGPT по Data Science и узнаем, сможет ли сетка его пройти?! Всё по классике — спрашиваем вопросы по 4 секциям:

  • Программирование — Python и алгоритмы,
  • Написание SQL-запросов,
  • Data Science и статистика,
  • ML System Design.
Читать дальше →

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Время на прочтение11 мин
Количество просмотров16K

Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.

Читать далее

Библиотека алгоритмов на графах на языке Go. Часть 1

Время на прочтение5 мин
Количество просмотров11K

Приветствую тебя, дорогой читатель! Мне 21, я студент и младший Go-разработчик, а это - мой первый пост на Хабре. Недавно в компании с одногруппником мы решили взяться за амбициозный проект и я решил, что он, как никакой другой, подходит под первую статью. Проект заключается в создании библиотеки, содержащей основные алгоритмы на графах.

Читать далее

Пишем обобщённую хеш-таблицу с открытой адресацией на чистом C

Время на прочтение28 мин
Количество просмотров25K

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

К решению этой задачи есть несколько подходов. Мы последовательно рассмотрим несколько существующих подходов и их достоинства и недостатки, а затем реализуем структуру данных на языке C и, наконец, устроим тест производительности написанного решения. А в качестве бонуса идёт небольшая библиотека включающая эту структуру данных и некоторые другие, которых так не хватает в стандартной библиотеке C.

К разработке этой библиотеки и написанию статьи меня натолкнуло отсутствие незаброшенной библиотеки эффективных хеш-таблицы для C.

Читать далее

Мое первое серебро на Kaggle или как стабилизировать ML модель и подпрыгнуть на 700 мест вверх

Время на прочтение6 мин
Количество просмотров11K

Привет, чемпион!

Летом прошел чемпионат на Kaggle - "American Express - Default Prediction", требовалось предсказывать - выйдет ли пользователь в дефолт или нет. Табличное соревнование в 5К участников с очень плотным лидербордом.

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

Читать далее

Проецирование вершин графа в векторное пространство. Часть 2. Марковская цепь и Word2Vec

Время на прочтение6 мин
Количество просмотров2.7K

И снова здравствуйте! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — вторая часть небольшого цикла, посвящённого алгоритмам вложений вершин графа в векторное пространство. Сегодня рассмотрим главную идею алгоритмов, основанных на случайных блужданиях. Перед прочтением рекомендуем прочитать первую часть.

Читать далее

Пишем мультиметоды из Lisp в С++

Время на прочтение7 мин
Количество просмотров4.3K


В статье разберёмся что такое мультидиспетчеризация и как её можно воссоздать на С++

Читать далее

Валя, как это было… И еще раз о ботах с человеческим именем

Время на прочтение5 мин
Количество просмотров2.2K

Как-то раз в светлые головы разработчиков одного департамента ЛАНИТ закралась мысль: “А не провести ли нам хакатон?”. Казалось бы, уже тысячу раз было. Но мы преследовали коварные корпоративные цели, а значит, отступать было некуда - позади HR.  

Во-первых, планировалось сделать хакатон межрегиональным, то бишь собрать команды со всех офисов и дать им тимбилдинг в полный рост. Во-вторых, реально запустить в жизнь продукт, который покажется рецензентам наиболее жизнеспособным и перспективным. А поскольку в то время только ленивый (или ярый пользователь WhatsApp) не писал собственных ботов, мы подумали: “Ок, так тому и быть. Пусть будет бот, но пусть он приносит много пользы”.

В итоге было предложено аж пять почти готовых ботов для Telegram, в каждом из которых было свое рациональное зерно. Но, как водится, ни один из них не получил какого-либо бурного развития. И тогда за дело взялись два рыцаря джедая… 

Читать далее

Как я писал трекинг парковочных мест

Время на прочтение3 мин
Количество просмотров18K

Рассказываю, как я делал трекинг свободных парковочных мест руками новичка. Получилось интересно :)

Читать далее

Ближайшие события

Задачка: Сбор дождевой воды 3D

Время на прочтение3 мин
Количество просмотров4.6K

Последнее время я крепко подсел на LeetCode. Нет ничего лучше, чем с утра после чашки кофе зайти на дейлик, быстро придумать решение, с замиранием сердца нажать Submit иии... Accepted! Настроение улучшается и можно спокойно работать. Но так бывает не всегда. Случается, что решения не видно совсем или удается придумать только брутфорсное решение что для LeetCode равносильно тому, что решения нет. Приходится открывать подсказки, смотреть как решили другие. А после некоторых задач вера в возможности собственного ума может и вовсе пошатнуться.

Читать далее

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

Время на прочтение14 мин
Количество просмотров25K

SEO будущего – это уже не про сайты. Это не про развитие бложика на Виси или Хабре. Современное SEO –  это новая парадигма понимания самой сути продвижения в интернете.

Читать далее

Посчитайте сумму n-го ряда пирамиды нечетных чисел

Время на прочтение3 мин
Количество просмотров6K

Эта задача преследовала меня на двух интервью подряд, и я решил ее!

Читать далее

Big O нотация в Swift (часть 2 — Сокращение)

Время на прочтение3 мин
Количество просмотров3K

 Привет всем, добро пожаловать в раздел о сокращении Big O. В первой части мы познакомились с BigO нотацией, а сегодня вы узнаете, как взять большой сложный алгоритм и свести его до минимального значения Big O. После прочтения данной статьи вы сможете взглянуть на любой алгоритм и определить, что представляют собой различные компоненты в рантайме. Итак, давайте выясним, как на самом деле анализировать и определять Big O любого алгоритма.

Читать далее

Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности

Время на прочтение6 мин
Количество просмотров6.8K

Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!

Читать далее

Задача коммивояжера (TSP) точное решение — метод динамического программирования

Время на прочтение9 мин
Количество просмотров39K

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

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

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

Читать далее

“Вам курицу или рыбу?” – Рекомендательная система на “Своем Родном” знает ответ

Время на прочтение12 мин
Количество просмотров3.1K

Привет, Хабр!

Меня зовут Павел Дудукин, руководитель Data Science команды в Центре развития финансовых технологий Россельхозбанка.

Сегодня мы хотим продолжить цикл статей статей про решенные нами Data Science задачи и рассказать о построении и внедрении рекомендательной системы в одну из наших платформ по продаже фермерских продуктов “Свое Родное”.

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

Хочу узнать

Вклад авторов