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

Ссылка: @Portal_v_IT

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

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Путеводитель для диффузионок. Как заставить нейросети качественно редактировать изображения

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

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

Алгоритмы и Структуры данных | ChatGPT
Поможем Ходору найти новых друзей с помощью графов

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

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

Алгоритмы и Структуры данных | ChatGPT
Удивительная история развития сортировки в JDK

Как вы считаете, если выполнить java.util.Arrays.sort(), то какая сортировка будет вызвана? Quicksort? Timsort? И та, и другая, потому что для объектов вызывается Timsort, а для примитивов (чисел int, long, float и так далее) — Dual-Pivot Quicksort. В JDK 6 для объектов использовался стандартный Merge sort, а для чисел классическая реализация Quicksort с одним опорным элементом, предложенная Джоном Бентли и Дугласом МакИлрой. В JDK 7 оба алгоритма поменялись: теперь объекты сортируются с помощью Timsort, автор Тим Петерс, а для простых типов данных используется Dual-Pivot Quicksort, предложенный мною вместе с Джоном Бентли и Джошем Блоком в 2009 году. Эта сортировка используется более 15 лет не только в JDK, но и в Android (хотя и немного устаревшая версия).

А зачем нам вообще второй алгоритм сортировки, если есть Timsort? Почему не использовать один и для объектов, и для примитивов? Сегодня я, как автор, расскажу историю Dual-Pivot Quicksort: как он начинался, как развивался и как продолжает развиваться сейчас.

https://habr.com/ru/companies/sberbank/articles/841342/

Алгоритмы и Структуры данных | ChatGPT
Алгоритм управления доставкой по расписанию и динамичесий прайсинг. Как мы сделали это в Купере

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

https://habr.com/ru/companies/kuper/articles/841034/

Алгоритмы и Структуры данных | ChatGPT
Вложенные тексты как возможность для композиции (разделения на части) в длинных текстах (so10; sapscript text)

В
SAP NetWeaver есть функционал для использования длинных текстов (более 100 символов и даже более 1000 😊). более технически корректное название sapscript text или, иногда, стандартные тексты.

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

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

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

Алгоритмы и Структуры данных | ChatGPT
Булевы операции двумерных тел

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

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

Алгоритмы и Структуры данных | ChatGPT
Считаем медиану быстрее numpy

Уважаемые коллеги! Вашему вниманию предлагается небольшой "этюд выходного дня", посвящённый несколько, скажем так, нетрадиционному способу вычисления медианы массива значений с плавающей точкой. Вкратце — мы сделаем это в несколько проходов по исходному массиву (два для одинарной точности или четыре для двойной), вычисляя медианы по словам, начиная с более значащих, пользуясь при этом только целочисленной арифметикой, что даст возможность в некоторых случаях несколько обогнать по скорости "традиционные" классические алгоритмы. Возможно данная "зарисовка" как идея окажется кому-нибудь полезна.

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

Алгоритмы и Структуры данных | ChatGPT
Кратчайший путь с одним источником во взвешенных графах, Алгоритм Дейкстры и Python

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

https://habr.com/ru/companies/otus/articles/771016/

Алгоритмы и Структуры данных | ChatGPT
👍1
Как мы французскому ПО ценности добавляли, но нас не оценили

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

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

Алгоритмы и Структуры данных | ChatGPT
Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

https://habr.com/ru/companies/postgrespro/articles/841918/

Алгоритмы и Структуры данных | ChatGPT
👍1
Поиск пересечений между отрезком и прямой или прямой и прямой в трехмерном пространстве

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

Имеется решение только для двухмерного пространства. В связи с чем пришлось придумывать его самому.

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

Алгоритмы и Структуры данных | ChatGPT
Компиляция математического выражение из строки динамически во время выполнения в C# (.NET)

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

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

Алгоритмы и Структуры данных | ChatGPT
Изобретаю свой сложный способ поиска координат точки пересечения двух линий

Вы, возможно, скажете, что нет тут ничего сложного, открываешь Википедию: пересечение прямых и смотришь. Хм, даже на Хабр об этом уже писали: Нахождение точки пересечения двух прямых (и отрезков). Но не всё так однозначно... недаром на КДПВ изображена Земля. Интересует меня именно пересечение прямых не на плоскости, а на поверхности Земли. Если уж пошла такая пьянка, то прямые вовсе не прямые, а ортодромия. Об этом тоже писали на Хабре и не раз, например вот: Занимательная геодезия.

В общем, Земля у нас не плоская! Была бы плоская, уже бы закончили статью и не мучились, и не начинали бы.

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

Алгоритмы и Структуры данных | ChatGPT
👍1
Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL.

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

Алгоритмы и Структуры данных | ChatGPT
Жизнь, смерть и ̶р̶о̶б̶о̶т̶ы̶ управление ресурсами в Scala

Вы когда-нибудь задумывались о том, как выделяется память для переменных, и в какой конкретно момент она очищается? Как сборщик мусора «решает», что переменная уже не нужна и можно ли как-то повлиять на его решение?

В новой статье директор департамента разработки компании «Криптонит» Алексей Шуксто рассказал об интересных особенностях управления жизненным циклом объектов в Scala и Java разных версий. С необходимостью вникать в эту внутреннюю кухню сталкиваются все, кто использует в своих программах потоки, подключения к БД и другим сторонним сервисам, анализирует метрики, обрабатывает исключения… все, кто пишет что-то сложнее «Hello World!» и хочет добиться предсказуемого результата.

https://habr.com/ru/companies/kryptonite/articles/842332/

Алгоритмы и Структуры данных | ChatGPT
👍1🔥1
Раскрываем секреты роя: оптимизация на Python с помощью PSO

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

https://habr.com/ru/companies/bothub/articles/842006/

Алгоритмы и Структуры данных | ChatGPT
👍1
ML-подход к заблаговременному предотвращению оттока рекламодателей

В этом материале мы опишем систему для заблаговременного предотвращения оттока рекламодателей, основанную на машинном обучении (ML, Machine Learning). Прототип системы создан на основе данных организаций малого и среднего бизнеса (Small & Medium Business, SMB), с которыми работает Pinterest. Результаты изначального эксперимента говорят о том, что мы, с высокой вероятностью, можем обнаруживать возможный уход рекламодателей. Это, в свою очередь, способно помочь нашим торговым партнёрам. Система, подобная нашей, может достичь лучших результатов, чем обычный подход, когда пытаются вернуть уже ушедшего клиента.

https://habr.com/ru/companies/wunderfund/articles/842274/

Алгоритмы и Структуры данных | ChatGPT
👍1
Подводные камни устройства карты видимости в СУБД PostgreSQL

Карта видимости - это достаточно простой механизм в СУБД PostgreSQL, но даже он имеет множество интересных тайн, если погрузиться в детали реализации.

В этой статье мы выясним:
1.Какие особенности есть у механизма сбрасывания и установки бита полной видимости.
2.Как Index only scan использует бит полной видимости.
3.Зачем записывать информацию об изменении карты видимости в WAL.
4.Каким образом карта видимости участвует в оптимизации предвыборки Bitmap scan.
5.Зачем механизму оценки селективности нужна карта видимости.

Все тесты, представленные в данной статье, были выполнены в PostgreSQL REL_17_STABLE.

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

Алгоритмы и Структуры данных | ChatGPT
Алгоритм сравнения отпечатков пальцев: комбинация классических алгоритмов

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

https://habr.com/ru/companies/samsung/articles/842578/

Алгоритмы и Структуры данных | ChatGPT
Умножение матриц и SMT – почему бы и нет?

Как-то раз у меня возникла непреодолимая потребность умножать матрицы определенного размера, смотреть, что получится и умножать опять до тех пор, пока что-нибудь не получится. =) Дело, как я понял после знакомства с литературой, любимое многими.

Остановился на BLIS, скомпилировал, подключил, и было мне счастье. Матрицы стали подрастать в числе и размере, скорость процесса, как ей и положено, падала в кубе от размера и кратно от числа. В конце концов стало ощущаться, что на ЦПУ 486,4 GFLOPS и ни флопсом больше, а замеры показывали, что на самом деле их около 350. Оно бы и ладно, но и на одном треде их было не больше 107. Стало интересно, куда пропадают остальные. Наибольшую ясность в вопрос внесла статья «Умножение матриц: эффективная реализация шаг за шагом» , после которой стало более понятно, что происходит внутри библиотеки. Так совпало, что мой процессор похож на используемый в ней, и пальцы зачесались что-нибудь улучшить.

https://habr.com/ru/companies/runity/articles/842740/

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