Как стать автором
Поиск
Написать публикацию
Обновить
139.98

Алгоритмы *

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

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

Математика прекрасного. Как создать красивую картинку, если ты дилетант, художник или нейросеть?

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров6.1K

Привет, Хабр, я Павел Бузин, работаю аналитиком в компании Cloud.ru и занимаюсь решением задач, требующих применения различных математических методов, в том числе используемых для машинного обучения. 

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

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

Читать дальше

Сравнительный анализ скорости API брокеров: Alor vs Tinkoff

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.8K

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

Читать далее

Решение головоломки из университетского квеста с помощью Python

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.1K

Треки — одна из интересных головоломок игры Puzzle Hunt Мельбурнского Университета 2008 года. Это задание было частью пятого акта игры, и ему предшествовало небольшое повествование, которое продолжало ее сюжет. В соответствии с ним ночь в стране выдалась неспокойная; и вместо того, чтобы спать, вы провели ее в ужасе наблюдая по телевизору за уличными беспорядками. С наступлением дня ситуация несколько улучшилась, и вы решаете выйти из дома, чтобы подышать свежим воздухом. На улице вы замечаете детей, беззаботно играющих в классики на дороге. Когда вы подходите к ним поближе в надежде на то, что часть их безмятежности передастся и вам, то ваше внимание переключается на очертания классиков, небрежно нарисованных мелом на дороге. Они совершенно не соответствуют ни одним классикам, в которые вам когда-либо доводилось играть...

Ниже можно было видеть эти «классики». 

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 4

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров8K


Привет, друзья!


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



Сегодня мы рассмотрим дерево отрезков, дерево Фенвика, а также граф (направленный и ненаправленный).


Код, представленный в этой и других статьях серии, можно найти в этом репозитории.


Интересно? Тогда прошу под кат.

Читать дальше →

Как научить компьютер различать цвета?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров1.6K

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

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

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

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

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

Читать далее

Алгоритмические уведомления для рынка акций MOEX в реальном времени

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2K

Алгоритмические уведомления для рынка акций MOEX в реальном времени

Я создал сервис проприетарных алгоритмов технического анализа в реальном времени. Сервис имеет максимально доступный интерфейс, простую регулировку, есть справка, график с маркерами. Это не аналог Tradingview, а готовые проработанные алгоритмы с настройкой для подходящей ситуации для вас.

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

Читать далее

Как на изи «влететь» на Хак и затащить его на flow-режиме

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.4K

Введение и задача

Добрый день, уважаемые читатели Хабр.ру! Я хотел бы поделится с вами отчетом по хакатону (Practice & Scale AI: Рерайтинг текста на уровне, позволяющем проходить фильтрацию распознающих систем), в который мы очень «лихо» влетели со всей командой (Anomaly Detection) и, забегая вперед, скажу, который мы «втащили» на третье место по нашему кейсу. Жаль, правда, что призовое место было одно, но все же это был отличный опыт и по «горячим» следам все сейчас опишу и расскажу, что мы делали и как «пришли» к нашему решению.

Читать далее

Как в Netflix сделали поиск по федеративному графу

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

За последние несколько лет те, кто занимается в Netflix направлением Content Engineering, перевели множество служб компании на использование федеративной платформы GraphQL. Этот процесс продолжается и сегодня. Применение федерации GraphQL даёт командам, отвечающим за различные предметные области, новые возможности. Теперь они могут, независимо от других команд, создавать и использовать собственные графовые службы, относящихся к сфере их деятельности (Domain Graph Service, DGS). Команды, кроме того, могут связывать свои предметные области с другими областями в унифицированной схеме GraphQL, доступ к которой даёт федеративный шлюз.

Давайте, в качестве примера, рассмотрим три главнейшие сущности этого графа.

Читать далее

Как я ускорила парсинг строк в serde_json на 20%

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров11K

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

serde — основной фреймворк для сериализации и десериализации в Rust. Его используют как крейт по умолчанию во всей экосистеме. serde_json — это официальный serde-миксин для JSON, так что каждый раз, когда нужно что-то парсить, люди обращаются именно к нему. Конечно, есть и другие библиотеки, специализующиеся на парсинге JSON, например simd-json, но популярность у них, мягко говоря, удручающая. serde_json значительно популярнее: на момент написания от него зависят аж целых 26916 крейта, а от simd-json — всего 66.

Это делает serde_json хорошей мишенью (не как у Jia Tan) для оптимизаций. Велик шанс того, что многим из тысяч пользователей переход на simd-json позволил бы добиться ускорения, но, пока они этого не делают, более мелкие оптимизации — лучше, чем совсем ничего, и такие улучшения — глобальный выигрыш для экосистемы.

Читать далее

Бинарный поиск на пальцах

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров14K

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

Читать далее

Решение задачи с собеседования Reverse Linked List [+ ВИДЕО]

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.1K

Всем салют! Давайте решим задачу "Reverse Linked List"

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

Читать далее

strlcpy, или как CPU противоречат здравому смыслу

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров17K

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

«В общем случае, когда исходная строка умещается в конечный буфер, strlcpy будет обходить строку только один раз, а strlen + memcpy будут обходить её дважды».

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

Читать далее

Цифровое моделирование

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.8K

Все три российских углеводорода – нефть, газ и уголь – будут востребованы на мировых рынках на десятки лет вперед. Такой вывод напрашивается исходя из энергетической стратегии России, которая сейчас разрабатывается вплоть до 2050 года.
не только Китай, но и Европа в этом году покупает больше российского газа. 
Задача совершенствования разведки месторождений, разработки его инфраструктуры, добычи, переработки, транспортировки, поставки заказчикам договорных объемов требует от специалистов внедрения самых современных технологий на всех этапах проектирования и сопровождения существующих добывающих комплексов. Там, где таких технологий нет, их приходится создавать практически с нуля самостоятельно. Очень важно при этом использовать наработки в области цифрового моделирования объектов, всех процессов, включая управление месторождением в целом.

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

Читать далее

Читать далее

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

Стала ли AlphaGeometry прорывом в ИИ?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров11K

Примерно полгода назад математическое сообщество услышало новость о том, что исследователи DeepMind создали ИИ-систему, решающую геометрические задачи с Международной математической олимпиады на уровне, близком к золотым медалистам ММО. (Эту новость обсуждали в сабреддите \math, см., например, здесь и здесь.) За этими новостями, как часто бывает с новостями о прогрессе ИИ, последовала волна страха и ужаса, усиленная множеством громких газетных статей с картинками (разумеется, сгенерированными ИИ), на которых искусственные мозги решают ужасно сложные уравнения. По коллективной спине математического сообщества побежали мурашки, снова всплыли на поверхность обычные экзистенциальные вопросы о будущем человеческого интеллекта, а Интернет заполнили мемы о грядущем восстании машин.

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

Я узнал об этих исследованиях, когда кто-то выложил ссылку на пресс-релиз DeepMind в групповом чате моих друзей, любящих математику. Один мой друг с небольшими нотками паники рассказывал, что какой-то ИИ смог решить какую-то сложную задачу с ММО при помощи рассуждений, состоящих примерно из двухсот логических шагов. Вскоре все в чате начали грустно шутить о своём неизбежном увольнении и безработице.

Читать далее

Решение головоломки из университетского квеста с помощью Python

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.8K

Cat Walk — одна из интересных головоломок игры Puzzle Hunt Мельбурнского Университета 2012 года. Это задание было частью второго акта игры, и ему предшествовало небольшое повествование, которое продолжало ее сюжет. В соответствии с ним вы получаете от вашего странного компаньона небольшой сверток. Развернув его, вы находите внутри флешку, после чего выше внимание переключается на обертку: она, кажется, представляет собой страницу, которая была вырвана из книги с головоломками для детей. Вы долго и упорно разглядываете головоломку, изображенную на странице, и, похоже, вам удается ее решить. После этого вы обращаетесь к вашему компаньону, чтобы проверить свою догадку. Тот смотрит на вас в изумлении, быстро вставляет флешку в ноутбук, а затем радостно сообщает: «Это потрясающе! Ты разгадал пароль — это же всё, что нам требовалось...» Как оказалось, флешка содержала чрезвычайно важную информацию, а разгадка «детской» головоломки служила паролем для ее получения...

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

Читать далее

Вычисление логического выражения из строки в C# (.NET)

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.7K

В этой статье я продемонстрирую, как динамически вычислять логические математические выражения из строк в C#, с высокой производительностью. Решение, реализованное с использованием библиотеки .NET MathEvaluator, поддерживает логические операции в различных математических контекстах, включая программирование, научные вычисления и C#. Кроме того, библиотека позволяет расширять эти контексты, а также добавлять пользовательские переменные и функции.

Возможность компиляции математических выражений из строк была добавлена в MathEvaluator 2.0

Читать далее

Книга: «Алгоритмы? Аха!»

Время на прочтение6 мин
Количество просмотров11K
image Привет, Хаброжители!

Зачем читать скучные описания алгоритмов и продираться через нагромождение формул? Практические примеры и забавные объяснения позволят моментально разобраться с самыми сложными задачами, а юмор и прекрасные иллюстрации не дадут вам «заснуть» над книгой. Вы словно читаете короткие истории или пытаетесь справиться с головоломкой, постигая при этом суть алгоритмов и ощущая их красоту.

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

Функция setdefault() в Python: для чего нужна и как её использовать

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров17K

Словари Python — мощные инструменты для работы с данными. Они поддерживают разные методы, но функция setdefault() выделяется способностью упрощать код и эффективно работать со значениями по умолчанию.

Мы перевели для вас статью о функции setdefault(). В ней рассмотрим синтаксис, сценарии использования функции и покажем её пользу на практических примерах, а в подробном заключении сделаем основные выводы.

Читать дальше →

Как Google обрабатывает JavaScript в процессе индексации веб-страниц

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров7.2K



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

Читать дальше →

Футбольные алгоритмы глобальной оптимизации (часть 1)

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров2.1K

Совсем недавно закончился Евро-2024 и, если честно, оставил после себя смешанные чувства. Я, конечно, больше по хоккею, однако такое событие, как чемпионат Европы по футболу, не могло остаться совсем за бортом.

Скажу сразу, по зрелищности турнир совсем не порадовал. Много разочарований, организационных проблем и других форс-мажоров, да и всё-таки в турнирах такого уровня ждёшь большего накала страстей, больше голов, больше хайлайтов. Но это так, чисто субъективно. По итогам турнира много обсуждали разные технологические новшества, которые с каждым годом всё глубже проникают в игру, хотя их применение тоже носит спорный характер. Однако и спорт (в данном случае футбол) влияет на технологии, и в этой статье я хочу написать об одном из неочевидных влияний. Речь пойдёт об алгоритмах, инспирированных динамикой футбола и стратегическими элементами футбольного матча.

Читать далее

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