Все потоки
Поиск
Написать публикацию
Обновить
172.36

Алгоритмы *

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

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

Совершенный алгоритм. Графовые алгоритмы и структуры данных

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

Вторая книга (Графовые алгоритмы и структуры данных) из серии Совершенный алгоритм Тима Рафгардена является продолжением, по сути, единого цикла лекций. Автор не только сохранил стиль первой книги, но и часто ссылается на материал, который был в ней преподнесён. Стиль обоих книг я считаю очень удачным. А именно, детальное и всестороннее изложение небольшого количества тем доступным языком.

Снова, это не каталог решений, а именно лекции. Поэтому автор далеко не сразу дает готовые алгоритмы. По сути, автор рассказывает как к этим алгоритмам можно прийти. Либо пробуя разные варианты, либо постепенно улучшая решения. Так например, поиск кратчайшего пути:

Читать далее

Гипотеза Коллатца. Шаг в сторону

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

описание гипотезы Коллатца в вики
https://ru.wikipedia.org/wiki/Гипотеза_Коллатца
цитирую :
Берём любое натуральное число N. Если оно чётное, то делим его на 2,
а если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3*N + 1).
Над полученным числом выполняем те же самые действия, и так далее.
Гипотеза Коллатца заключается в том, что какое бы начальное число N мы ни взяли, рано или поздно мы получим единицу.

Попробуем сделать шаг в сторону и исследовать преобразование с вычитанием 1
т.е. умножаем на 3 и вычитаем 1 (получаем 3*N - 1).
результат делим на 2 до нечетного значения и т.д.
Результат с вычитанием 1 состоит в том, что есть несколько точек остановки, а не только в единице.
Примеры c преобразованием вида 3*N-1 :

Читать далее

Обучение с подкреплением: сети Deep Q

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

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

Читать далее

Про настройку гиперпараметров ансамблей моделей машинного обучения

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

Привет Хабр!

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

А мемы про гиперпараметры?

Пандемия данных. Почему в будущем медицина будет всё больше основываться на данных?

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

Методы работы с большими данными всё активнее применяются в медицинской сфере: биоинженерии, биостатистике и биоинформатике, медицинской физике и аналитике. Вместе с экспертами онлайн-магистратуры МФТИ «Прикладной анализ данных в медицинской сфере» разбираемся, как Data Science интегрирует медицину будущего в практики настоящего.

Читать далее

Как c помощью Аналитики набрать миллионы подписчиков на Youtube

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

«Никто ничего не знает»  - знаменитая цитата Уильяма Голдмана, сказанная в 80х. Имелась ввиду неспособность Голивудских продюсеров предугадывать успех или провал фильма в прокате. Сам Голдман - дважды обладатель Оскара и один из самых великих сценаристов в истории кинематографа. Короче, ему можно верить. 

С тех пор прошло 40 лет. Появился интернет. В Интернете появилось видео. Однако, в отличие от фильма в кинотеатрах, успех ролика в интернете можно предугадать с большой вероятностью. 

Особенно, успех ролика на Ютуб. 

Почти каждый автор YouTube канала знает, что такое YouTube Аналитика. Но многие не умеют ей пользоваться. Или не хотят. 

Читать далее

Математическое решение задачи о матрице «змейкой»

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

Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/)  и также посвящается особо извращенным способам заполнения двухмерных массивов согласно определенному шаблону. Создание громоздких, неуклюжих формул, без применения таких милых сердцу программиста конструкций как циклы и условия оказалось увлекательным занятием. В связи с этим, автор, уподобляясь некоторым государственным чинам (вспоминаем бородатую шутку про разницу между депутатом и программистом),  решил потратить кучу драгоценного времени на очередной интересный, но, увы, бесполезный в практическом плане проект. Речь идет о вычислении математическим путем элементов массивов, заполняемых змееподобной траекторией, или проще говоря – «тещиных» матриц.

Различают два класса этих самых матриц: обычные (злобные) и диагональные (крайне злобные).

Первый класс двухмерных массивов (здесь и далее речь идет только о квадратных матрицах) заполняется натуральными числами от 1 до N2 с левого верхнего угла построчно:

Читать далее

Простейшая модель броуновского движения и фракталы

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

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

Читать далее

Интерактивный учебник для подготовки к алгоритмической секции собеседования

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

Собеседования в крупные IT-компании почти всегда содержат алгоритмическую секцию — даже если вы собеседуетесь на позицию, в работе на которой алгоритмы возникать вряд ли будут. Ниже мы приводим пример задачи, с которой вы можете столкнуться на вашем следующем интервью. Мы расскажем, как эта задача решается, но мы настоятельно рекомендуем вам читать решение только после того, как вы попробуете решить задачу самостоятельно: во-первых, это отличная тренировка; во-вторых, вы лучше запомните решение, если придумаете его сами (не отказывайте себе в этом удовольствии!); в-третьих, даже если вы подумаете над задачей, но не решите её, время не будет потеряно: прочитав потом решение, вы лучше его поймёте и оцените его красоту.

Итак, вот сама задача

Нейронная сеть для ведения боевых действий. Какая война может быть с технологически развитой страной?

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

Ежеминутные военные сводки наших СМИ непроизвольно в голове программиста преобразуются в технологические решения. Заранее скажем, что мы не выдаем военных тайн ничьих стран, а только излагаем наше видение автоматизации процесса. Хотя всегда надо помнить поговорку от компании Спецлаб: если к тебе пришла умная мысль, значит, она уже кем-то реализована.

В атаку!

Почему идентификация лиц невозможна — так, как этого хочет заказчик?

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

Кто все эти люди и кто из них я?

Ща разберемся?

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

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

Привет, Хабр! Я Алексей, data scientist в Сбере, отвечаю за AI создание персонализированного маркетингового контента для разных каналов коммуникаций.

Как и другие подразделения Сбера, мы в трайбе «Массовая персонализация» создаём много текстового контента. Это тексты для СМС, пуш-уведомлений, e-mail, рекламные баннеры и прочее для СберБанка. (Да-да, это мы шлём вам эсэмэски!)

Мы хотели сделать этот процесс эффективнее — как по продажам, так и по затратам на производство контента. После того как SberDevices выкатили ruGPT-3, мы решили обобщить накопленные за несколько лет данные и доверить AI написание текстов для наших клиентов.

Получилось ли это? Спойлер: да, ещё как. Но обо всём по порядку.

Читать далее

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

Алгоритм преобразования НКА в эквивалентный ДКА

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

Приветствую, коллеги! Предлагаю Вам окунуться в мир теории формальных языков, в частности, в парадигму конечных автоматов.

Цель данной статьи: познакомить Вас с алгоритмом построения детерминированного конечного автомата из недетерминированного конечного автомата. И сразу куча вопросов: зачем понадобилось данное преобразование, что такое конечный автомат, что такое ДКА и НКА и зачем мне это знать? Начнём с мотивации.

Читать далее

Как Яндекс Карты с помощью отзывов улучшают поиск организаций

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


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

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

Математика для 3D-приложений. Урок 1

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

Это первый, вводный урок по линейной алгебре для разработки 3D-приложений от Александра Паничева — ведущего разработчика логики в UNIGINE. В этом уроке разберемся зачем 3D-разработчикам вообще нужна линейная алгебра, а также рассмотрим основные операции над векторами.

Читать далее

Обучение с подкреплением: математический аппарат

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

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

Читать далее

Как работает неточное сравнение строк

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

https://fakt309.github.io/thisisthewall/

В языках программирования строки сравниваются очень просто, если строка отличается хотя бы на один символ, то возвращает false.

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее

Кривые и что это такое ч.2

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

Всем привет!

Итак, это продолжение предыдущей статьи с той же темой - кривые, их разбор.

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

Читать далее

НКА: игры без знания о замыслах других

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

На стене выключатель. Нажатие которого иногда приводит к цели, иногда нет. Что означает, что выключателем может быть не то, что мы предполагаем.

Вопрос можно поставить абстрактно. Пусть имеется множество {a, b, c, d}. Некоторые из элементов могут быть состояниями, некоторые действиями.

Предположим, что действиями будут {a, b}, состояниями {c, d}. Пусть имеем: с|d=a(c), с|d=b(c), c=a(d), с|d=b(d).

Здесь "|" означает "либо". Смысл записи с|d=b(d): из состояния d при действии b следует либо c, либо d.

Попробуем иначе интерпретировать. Предполагаем: действия {a, c}, состояния {b, d}. Пусть имеем: b=a(b), b|d=c(b), d=a(d), b=c(d).

Разница, если ее оценить количественно, в более однозначном поведении второй гипотезы. В первом случае коэффициент однозначности, взятый как отношение как если бы все переходы были бы однозначны к всем случившимся переходам,  будет равен 4/7. Во втором случае он будет равен 4/5. Или, другими словами, мы имеем почти детерминированное пространство состояний. Для которого уже можно делать предсказания с приемлемой точностью.

Это было вступление. Теперь собственно к статье. Есть объект исследования (пространство состояний), однозначность которого достаточно высока. И есть несколько агентов, целью которых является достичь целевые состояния. Которые, в частности, могут и совпадать. Оговорюсь, что эти агенты не ведают о других агентах. Поэтому их ходы обусловлены только своими QL-картами, которые агенты формируют в результате исследования пространства состояния.

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

Читать далее

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