Рубрика «Алгоритмы» - 210

Смешиваем цвета правильно или оптимизируем AlphaBlend - 1Я пишу мультипротокольный (но не мультиплатформенный, увы, сейчас только windows) мессенджер, который пока что поддерживает только протокол TOX. Но речь не о мессенджере, а о его интерфейсе, а если точнее, об основной его функции — AlphaBlend. Да, я решил написать свой велосипед GUI. Ну а какой современный GUI без полупрозрачных элементов и плавных закруглений? Поэтому остро встала необходимость смешивать изображения с учетом полупрозрачности, т.е. альфа-смешивание или alpha blending. К счастью, в windows GDI такая функция имеется — AlphaBlend. Работает как надо, делает то что нужно. Но я тот еще строитель велосипедов, и мне стало интересно, смогу ли я написать такую же функцию, но более быструю. Результат моих трудов под катом.
Читать полностью »

В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT).
Репликация без конфликтов: CRDT в теории и на практике - 1
Читать полностью »

В различного рода сложности реализуемых алгоритмов при программировании МК, всегда возникают рутинные циклические и не очень задачи. Одни требуют повышенной точности, другие таким критерием не обязаны обладать. Аппаратных таймеров на борту МК может быть приличное количество, например STM32F4 — аж 14 штук, и это не считая SysTick (системного), а в других и пара тройка за счастье: тот же PIC16, например.

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

Однажды в студеную зимнюю пору… ровно год назад, у нас появилась нетривиальная задача. Есть экран на электронных чернилах, есть процессор 16МГц (да-да, во встраиваемой электронике, особенно сверхнизкого энергопотребления, встречаются и такие) и совсем нет памяти. Ну, т.е. килобайтов 8 RAM и 256 Flash. Килобайтов, Карл. И в эти унылые килобайты необходимо запихнуть несколько изображений 800х600 в четырех оттенках серого. Быстро перемножив в уме 800 на 600 и на 2 бита на пиксель получаем 120 тысяч байтов. Несколько не влезает. Надо сжимать.

Так перед нами появилась задача: «как сжать плоского кота»? Почему кота? Да потому, что на котиках тестировали, на чем же еще черно-белые картинки проверять. Не на долларовых банкнотах же.
Читать полностью »

Внимание! Данная статья относится к механической/электрической машине Голдберга и алгоритмам её работы.

Машина Голдберга в реальной жизни. Сложный ли алгоритм действия для сложного механизма? - 1

Я начал писать эту статью в виде заметок чтобы как-то упорядочить процесс продолжительного, но прерывистого, “мозгового штурма” и потому статья будет в некотором роде последовательным изложением идей и улучшений, которые были придуманы по ходу выстраивания алгоритма. К тому же, это лишь первая, можно сказать “теоретическая”, часть общего цикла разработки самой машины Голдберга (устройства, которое выполняет простое действие нетривиальным способом), а потому будет продолжена последующими статьями.
Надеюсь, статья окажется интересной и, возможно, полезной для каждого. Начнём.
Читать полностью »

Российский стартап смог обойти Google в конкурсе алгоритмов по распознаванию лиц - 1
Фото: Michaela Rehle / REUTERS

Сегодня стали известны итоги конкурса алгоритмов по распознаванию лиц Megaface. Как оказалось, российская компания N-tech.lab вошла в первую пятерку во всех номинациях, а в двух из них стала победителем, обойдя Google. В конкурсе требовалось идентифицировать изображения людей их двух коллекций, с использованием коллекций в большой базе фотографий, пишут «Ведомости». В первой коллекции содержалось около 100 тысяч изображений людей (одного возраста), во второй — около 900 тысяч изображений людей разных возрастов. Поиск проводился участниками конкурса в базе с 1 млн изображений.

Устроители конкурса предусмотрели четыре номинации. При этом для участия в Megaface зарегистрировались 100 участников. Каждая команда могла участвовать в одной из двух категорий. Первая предполагала отсутствие ограничений на количество фотографий для обучения своего алгоритма, во второй было ограничение на полмиллиона фотографий.
Читать полностью »

Wikipedia научилась автоматически определять некорректные правки статей при помощи ИИ - 1
Источник: Wikimedia

Онлайн-энциклопедия Wikipedia получила новый инструмент — сервис с элементами ИИ, который поможет автоматически определять некорректные правки материалов ресурса. Сервис ORES (Objective Revision Evaluation Service) будет проверять все правки на наличие спама или троллинга. Создателем ORES является Wikimedia Foundation. Разрабочики говорят, что новый сервис работает, как рентгеновские очки (отсюда и анонсная картинка. Система теперь будет выдеять все, что выглядит подозрительным, а затем отправлять на проверку редактору-человеку. Если администратор решит не использовать правку, пользователь, предложивший ее, получит уведомление. Эта система более дружественна к пользователям, поскольку сейчас никакие уведомления пользователям не рассылаются.

Команда энциклопедии научила систему различать непреднамеренные ошибки в правках и то, что называется «повреждением правок» (damaging edits). Обучение проводилось на примерах реальных материаолв. Сейчас новый сервис уже можно использовать.
Читать полностью »

image

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

Однако я вынужден вас разочаровать – они не работают в жизни. Совсем не работают.

Читать полностью »

Исследователи компании Google Джонн Флинн, Айван Нюландер, Джеймс Филбин и Ной Снейвли создали алгоритм, который способен комбинировать снимки из сервиса обзора панорамных видов улиц Street View в гладкие видеоролики с едва заметными артефактами. Алгоритм получил название DeepStereo, пример его работы представлен выше. Вероятное использование созданной технологии включает создание простых анимаций, обработку изображений, кино и виртуальную реальность.
Читать полностью »

Это продолжение задуманной мной серии про историю вычислений и счета. Первая статья про Египет здесь.

Сейчас я попробую немного рассказать о другой великой цивилизации и культуре прошлого. Вавилонское царство возникло в начале 2-го тысячелетия до нашей эры, оно пришло на смену Шумеру и Аккаду и существовало до завоевания Персами в 539 г. до н.э. Писали в Вавилоне, как все помнят, на глиняных табличках с помощью клинописи, которые очень неплохо сохраняются в отличие от бумаги, папируса, и подобных вещей, поэтому мы знаем достаточно много и про Вавилон, и про его математику. Но, конечно, мы не знаем всего. В отличие от греков вавилоняне не оставили точных алгоритмов и ясных объяснений своих приемов. Теперь мы можем только догадываться как именно вавилоняне действовали в том или ином случае при решении задачи. В этой работе я сосредточусь в основном на вавилонской арифметике, оставив в стороне геометрию, алгебру и астрономию.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js