Всё про Алгоритмы и Структуры данных
7.76K subscribers
345 photos
37 videos
5 files
3.16K links
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.

Ссылка: @Portal_v_IT

Сотрудничество, авторские права: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Когда ИИ может в оптимизацию…

Очередная
волна развития искусственного интеллекта почти никого не обошла стороной. Конечно я тоже обнаружил в себе своеобразный ген ИИ безумия. Корректнее сказать, я был всегда носителем этого гена, но долго и тщательно готовился встретить его проявление во всеоружии. А раз я готовился и предвкушал, то значит мне есть, что рассказать. Что-то другое и особенное, нежели просто удивление от того как электрическая машинка пишет SQL запрос, попутно галлюцинируя всякие забавные глупости.

https://habr.com/ru/articles/864924/

Алгоритмы и Структуры данных
Головоломки с балансом. Поиск фальшивой монеты (часть 2)

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

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

https://habr.com/ru/companies/first/articles/858920/

Алгоритмы и Структуры данных
Машинное обучение: Логистическая регрессия. Теория и реализация. С нуля

В этой статье я привел базовые сведения о логистической регрессии и показал как сделать модель с нуля на чистом Python. Логистическая функция, обучение, метрики качества для модели классификации, реализация и небольшой разбор обучения весов.

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

https://habr.com/ru/articles/864890/

Алгоритмы и Структуры данных
1
Предсказательная вычислительная гидродинамика

На протяжении последних шести лет я участвовал в исследованиях, посвященных моделированию стационарных и нестационарных температурных полей активных зон ядерных реакторов. Среди довольно полезных для ядерной энергетики результатов я бы хотел выделить главный – выявление способности уравнения теплопроводности сплошной среды достаточно точно описать стационарные и нестационарные температурные поля активных зон гетерогенных ядерных реакторов, таких как Pressurized water reactor (PWR) и Gas turbine modular helium reactor (GT-MHR).

https://habr.com/ru/articles/714886/

Алгоритмы и Структуры данных
Формальная верификация протокола IBFT: проверяем безопасность византийского консенсуса в блокчейне

Добрый день! Меня зовут Кирилл Зиборов, я представляю отдел безопасности распределенных систем Positive Technologies. В этой статье я продолжу рассказывать о том, как мы используем инструменты формальной верификации для предотвращения уязвимостей в различных компонентах блокчейна. Ранее мы верифицировали смарт-контракты дедуктивным методом. В этот раз речь пойдет о протоколах консенсуса — механизмах принятия узлами новых транзакций в цепочку, а именно об алгоритме Istanbul Byzantine Fault Tolerant и в целом о том, как можно гарантировать корректность подобных алгоритмов с помощью метода проверки моделей.

https://habr.com/ru/companies/pt/articles/864754/

Алгоритмы и Структуры данных
🔥1
Визуальный язык ДРАКОН: математические истоки алгоритмической макроконструкции «силуэт» и метод Ашкрофта-Манны

Силуэт — основная и наиболее мощная алгоритмическая макроконструкция языка ДРАКОН. В статье описан теоретический метод, позволяющий прояснить математические истоки конструкции силуэт.

На практике построение конструкции силуэт не представляет трудности и делается несколькими щелчками мыши. Но речь не об этом. Мы пойдем неочевидным путем и построим силуэт в два этапа. Сначала построим графическую заготовку классическим методом Ашкрофта-Манны. Затем с помощью специального приема преобразуем заготовку в силуэт.

https://habr.com/ru/articles/713574/

Алгоритмы и Структуры данных
5 лайфхаков Python, которые сделают ваш код более читабельным и элегантным

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

https://habr.com/ru/articles/714820/

Алгоритмы и Структуры данных
Революционный метод сжатия изображений

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

https://habr.com/ru/companies/ruvds/articles/713590/

Алгоритмы и Структуры данных
Хэши: виды, применение и примеры на Java

Хэширование — это фундаментальный процесс в программировании, который применяется везде: от защиты паролей до ускорения поиска данных в структурах. Эта статья поможет разобраться в основных видах хэшей, их применении, а также покажет, как их использовать на практике с примерами на Java.

https://habr.com/ru/articles/865910/

Алгоритмы и Структуры данных
SQL HowTo: агрегация внутри рекурсии (Advent of Code 2024, Day 11: Plutonian Pebbles)

Сегодня посмотрим на примере задачки из Advent of Code зачем и как можно обойти ошибку aggregate functions are not allowed in a recursive query's recursive term, возникающую при попытке агрегировать какие-то данные внутри шага рекурсии на PostgreSQL - "если нельзя, но очень хочется, то можно".

https://habr.com/ru/companies/tensor/articles/865894/

Алгоритмы и Структуры данных
Магия простоты: как мы улучшили отображение общественного транспорта на карте

Мы часть сервиса Data Science и занимаемся анализом данных и машинным обучением для задач навигации в 2ГИС.

Наша команда появилась несколько лет назад, чтобы сделать точным прогноз времени в пути на автомобиле. Это важно не только для пользователей нашего навигатора, но и для бизнеса: например, для такси и служб доставки. Несколько специалистов по машинному обучению объединились с инженерами из команды навигации и создали решение, которое отвечает строгим требованиям по качеству, снизив ошибку на 20 процентов. Недавно мы также помогли сделать так, чтобы автобусы на карте отображались точно, и начали предсказывать время их прибытия на остановки. И это лишь часть задач, над которыми мы работаем.

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

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

https://habr.com/ru/companies/2gis/articles/864800/

Алгоритмы и Структуры данных
Homo clickus. Как моделирование кликающих людей пригодится для сегментации изображений

Я инженер по искусственному интеллекту, работаю в Институте искусственного интеллекта AIRI в команде, которая занимается Embodied AI — областью, связывающей робототехнику, компьютерное зрение и большие языковые модели.

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

Ниже я хотел бы подробнее рассказать о нашей разработке.

https://habr.com/ru/companies/airi/articles/864602/

Алгоритмы и Структуры данных
SLAM на Java с OpenCV: сравнение алгоритмов автономной навигации

В этой статье я расскажу, как погружался в исследование алгоритмов автономной навигации.

Введение:
Визуальная одометрия играет ключевую роль в навигации малогабаритных беспилотных летательных аппаратов (БЛА), особенно в условиях, где GPS недоступен или его точность ограничена. В этой статье я делюсь результатами исследования популярных алгоритмов визуальной одометрии, реализованных на Java с использованием OpenCV. Мы сравним точность и производительность методов ORB, R2D2, SIFT и их комбинаций, а также оценим их пригодность для систем навигации БЛА.

https://habr.com/ru/articles/866092/

Алгоритмы и Структуры данных
Простые эвристики для TSP

В прошлой заметке я поднял тему ванильно-радужных перспектив использования искусственного интеллекта для решения оптимизационных задач, в частности, для решения хорошо изученной задачи коммивояжера, она же TSP (Travelling Salesman Problem). Там же был дан старт разбору некоторых классических алгоритмов для решения этой задачи в рамках чего я представил подход, основанный на MIP (Mixed Integer Programming). Считаю важным завершить такой разбор для лучшего понимания отличий в работе нейронных сетей.

https://habr.com/ru/articles/866202/

Алгоритмы и Структуры данных
1
MIDV-2020: как мы создали крупнейший датасет документов, удостоверяющих личность

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

https://habr.com/ru/companies/smartengines/articles/714250/

Алгоритмы и Структуры данных
Вышел Savant 0.2.4: компьютерное зрение на базе глубокого обучения для Nvidia Jetson и dGPU

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

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

https://habr.com/ru/articles/748438/

Алгоритмы и Структуры данных
Реализация шифра «Магма» на языке RUST

Сегодня мы продолжаем реализовывать шифрование. В этой статье мы рассмотрим алгоритм шифра "Магма", который был разработан и использовался в СССР.

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

https://habr.com/ru/articles/866574/

Алгоритмы и Структуры данных
Как Chat GPT повлияет на текущую систему образования?

Чтобы ответить на данный вопрос, я решил воспользоваться алгоритмами chat gpt для решения достаточно простой задачи по программированию на python. Данная задача была взята из курса ВШЭ по python, и, я полагаю, что её уровень сложности сопоставим с лабораторной работой по информатике на 1 курсе ВУЗа. Вполне вероятно её использование и в обучении на популярных онлайн‑курсах. Данная задача была выбрана, как реальный пример для обучения Python. Понятно, что для опытных программистов данная задача покажется легкой прогулкой.

https://habr.com/ru/articles/714002/

Алгоритмы и Структуры данных
1
From Zero to Hero: определите ваш уровень решения LeetCode задач от 1 до 5

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

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

https://habr.com/ru/articles/713498/

Алгоритмы и Структуры данных
Опасность наивности

Итак, как же вы реализуете перемешивание колоды карт?

Я задумался над этим, когда прочёл о мучениях Майка Поупа с алгоритмами перемешивания карт. Вот цитата из блога Майка Поупа:

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


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

https://habr.com/ru/articles/866736/

Алгоритмы и Структуры данных
Машинное обучение: Классификация методом KNN. Теория и реализация. С нуля. На чистом Python

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

Содержание: что это за метод, идея этого метода, как классифицировать (регрессировать) новые объекты, масштабирование признаков, как его можно применять, реализация.

https://habr.com/ru/articles/866636/

Алгоритмы и Структуры данных