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

Алгоритмы *

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

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

CMYK алгоритм поиска замкнутого контура на двумерной матрице

Время на прочтение9 мин
Количество просмотров5.9K
Это история не столько про алгоритмы сколько про ассоциации. Именно ассоциация с каналами кодирования цветов и послужила причиной написания этой статьи.

image

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

Открыт приём заявок на VIII Летнюю Школу высокопроизводительных вычислений в области компьютерного зрения

Время на прочтение2 мин
Количество просмотров2.5K
image
Занятия начнутся 15 августа и продлятся ровно одну неделю. К участию в школе приглашаются студенты c уровнем образования не ниже бакалавриата или учащиеся 3-4 курса технических вузов. Все подробности под катом
Читать дальше →

Фильтр Блума для веб-разработчиков

Время на прочтение4 мин
Количество просмотров17K
На хабре уже немало рассказано про фильтр Блума. Напомню, что это структура данных, которая позволяет проверить принадлежность элемента ко множеству, не храня при этом сам элемент. Существует вероятность ложно-положительного ответа, но отрицательный ответ всегда достоверен. В фильтре с точностью 1% требуется всего лишь несколько бит на элемент.

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

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

Распознавание паспорта РФ на платформе Эльбрус. Часть 1

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

В этой статье мы продолжим рассказывать о похождениях нашей программы распознавания паспорта: теперь паспорт отправится на Эльбрус!



Итак, что же мы знаем про архитектуру Эльбрус?


Эльбрус — высокопроизводительная и энергоэффективная архитектура процессоров, отличающаяся высокой безопасностью и надежностью. Современные процессоры архитектуры Эльбрус могут применяться в качестве серверов, настольных компьютеров и даже встраиваемых вычислителей. Они способны удовлетворить повышенным требованиям по информационной безопасности, рабочему диапазону температур и длительности жизненного цикла продукции. Процессоры архитектуры Эльбрус, как говорят нам публикации МЦСТ [1, 2], предназначены для решения задач обработки сигналов, математического моделирования, научных расчетов, а также других задач с повышенными требованиями к вычислительной мощности.


Мы в Smart Engines попробовали убедиться, правда ли производительности Эльбруса достаточно, чтобы реализовать распознавание паспорта без значительных потерь в скорости работы.

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

Генерирование паролей для Super Castlevania IV и Rock n' Roll Racing

Время на прочтение5 мин
Количество просмотров9.9K
Добрый день, уважаемые пользователи.

Недавно я написал пост про генерацию паролей на первый и второй Road Rash. В комментариях к статья меня попросили разъяснить, а как устроена система паролей в игре Rock n' Roll Racing. Про это я и хотел бы с вами поговорить. Но начать хотелось бы с игры Super Castlevania IV. Ну что ж, приступим.

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

Драм-машина на нейронной сети

Время на прочтение2 мин
Количество просмотров13K
В данной статье мне хочется рассказать о своем алгоритме драм-машины на базе нейронной сети.
Драм-машина предназначена для создания и редактирования повторяющихся музыкальных ударных фрагментов.
Классическим примером драм машины является драм-машины от кампании Roland (TR-808 и TR-909).

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

Генератор музыки на базе кодогенератора

Время на прочтение4 мин
Количество просмотров12K
Привет, хабраюзер! В этом топике я расскажу о своей идее генерации музыкальных композиций. Создадим язык описания ритма музыки на базе python, напишем компилятор этого языка в wave файлы и получим довольно нехилую электронную композицию.

Добро пожаловать под кат.
Читать дальше →

IBM Watson и никакой магии: инженер IBM создал распределяющую шляпу из «Гарри Поттера» для своих дочерей

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


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

Именно такая мысль пришла в голову инженеру IBM Райану Андерсону (Ryan Anderson). Но что можно использовать вместо магии? Андерсон решил, что достойной заменой являются технологии. А именно — когнитивный сервис IBM Watson. В своей работе шляпа использует два сервиса Watson-a: Natural Language Classifier и Speech to Text. Для того, чтобы шляпа начала работать, ее «носитель» должен сначала немного поговорить с умной системой, после чего она расскажет, на какой именно курс Хогвартса можно отправить собеседника.
Читать дальше →

D3.js. Визуализация графов

Время на прочтение13 мин
Количество просмотров60K
D3.js — это библиотека JavaScript для управления документами, в основе которых лежат данные. D3 помогает претворить данные в жизнь, используя HTML, SVG и CSS. D3 позволяет привязывать произвольные данные к DOM, и затем применять результаты манипуляций с ними к документу.

Для понимания статьи пригодится знание основ D3, и в ней мы рассмотрим реализацию алгоритмов визуализации графа на основе сил (Force-directed graph drawing algorithms), которая в D3 (version 3) имеет название Force Layout. Это класс алгоритмов визуализации графов, которые вычисляют позицию каждого узла, моделируя силу притяжения между каждой парой связанных узлов, а также отталкивающую силу между узлами.

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

Алгоритмы чат бота на базе рекуррентной нейронной сети и расширения языка AIML

Время на прочтение5 мин
Количество просмотров35K
На сегодняшний день остается актуальным создание программ имитирующих общение человека. Простейшей моделью общения является база вопросов и ответов к ним [1]. В данном случае возникает проблема описания базы знаний и реализация программы интерпретатора. Язык разметки базы знаний может включать в себя паттерны вопросов и соответствующие им шаблоны ответов, также предысторию диалогов к ним и название соответствующей темы общения.

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

Альтернативным вариантом создания программы виртуального собеседника является использование алгоритмов машинного обучения на базе диалогов общения, именно искусственные нейронные сети. Подходящей моделью ИНС является рекуррентная нейронная сеть, способная хранить, обобщать и прогнозировать различные последовательности. В данной работе в качестве элементов последовательности предлагается использовать индексы соответствующие словам в базе знаний вопросов и ответов.
Читать дальше →

Факторное моделирование на базе метода Верле

Время на прочтение7 мин
Количество просмотров7.5K
Метод Верле – это итерационный метод вычисления следующего местоположения материальной точки по текущему и прошлому местоположениям с учетом накладываемых связей внутри системы точек.

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

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

Центральная симметрия сетки

Время на прочтение4 мин
Количество просмотров5.6K
Исследуя одну задачу оптимизации, столкнулся с проблемой симметричности конфигураций при прямом переборе вариантов. Схожая проблема возникает в некоторых решениях задачи о восьми ферзях. Исследуя центральную симметрию прямоугольной сетки, я обнаружил революционный довольно интересный метод определения и проверки симметричных конфигураций с использованием чисел-«перевертышей».
Читать дальше →

Мысль — материальна: Алан Тьюринг как «универсальный вычислитель»

Время на прочтение11 мин
Количество просмотров47K
image
Источник: geektimes.ru

В первой половине XX века, когда были изобретены первые вычислительные машины. Однако наряду с физически осязаемыми машинами появлялись и машины-концепции. Одной из них была «машина Тьюринга» — абстрактное вычислительное устройство, придуманное в 1936 году Аланом Тьюрингом — учёным, которого считают одним из основоположников информатики.

Его кругозор распространялся от квантовой теории и принципа относительности до психологии и неврологии. А в качестве способа познания и передачи своих знаний Тьюринг использовал аппарат математики и логики. Он находил решения, казалось бы, нерешаемых задач, но был сильнее всего увлечен идеей «Универсальной машины», способной вычислить всё, что в принципе вычислимо.
Читать дальше →

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

Как работает метод главных компонент (PCA) на простом примере

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


В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.
Читать дальше →

Дополненная реальность и социализация людей на новом уровне

Время на прочтение5 мин
Количество просмотров18K
Недавно у меня было видение. Я шёл по оживлённой улице. Она была полна незнакомыми мне людьми, спешащими по своим делам. Едва окинув взором идущих мне навстречу, я понимал потребности, чувства и желания некоторых из них. Для этого мне не нужно было вступать в диалог с ними. Я даже не пытался установить визуальный контакт с любым незнакомцем из толпы, чтобы понять, что у него на уме…


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

Разработка скрипта для сравнения вкусов людей

Время на прочтение6 мин
Количество просмотров7.2K
Приветствую, %username%. Сегодня разработаем скрипт составления рейтинга схожести интересов между людьми.

Заинтересовались? Прошу под кат

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

Отчет с Moscow Data Science Meetup 27 мая

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

27 мая в офисе Mail.Ru Group прошёл очередной Moscow Data Science Meetup. На встрече собирались представители крупных российских компаний и научных организаций, а также энтузиасты в области машинного обучения, рекомендательных систем анализа социальных графов и смежных дисциплин. Гости делились друг с другом своим опытом решения практических задач анализа данных. Предлагаем вашему вниманию видеозаписи и презентации трёх докладов, представленных на встрече.
Читать дальше →

Как я ускорял strstr

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

Понадобилось мне недавно написать аналог функции strstr(поиск подстроки в строке). Я решил его ускорить. В результате получился алгоритм. Я не нашел его по первым ссылкам в поисковике, зато там куча других алгоритмов, поэтому и написал это.


График сравнения скорости работы моего алгоритма, с функцией strstr на 600 кб тексте русскоязычной книги, при поиске строк размером от 1 до 255 байт:


image

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

Эдсгер Дейкстра: в поисках «кратчайшего пути» к осознанному программированию

Время на прочтение11 мин
Количество просмотров55K
image
Изображение с сайта abv24.com

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

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

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

Сейчас это не кажется чем-то необычным, но в 50-е годы это прозвучало как откровение. Дейкстра понял и убедительно показал, как теория может и должна помочь практике.
Читать дальше →

Как построить датчик случайных чисел с участием человека?

Время на прочтение6 мин
Количество просмотров6.8K
Предлагается подход к построению биологического датчика случайных чисел, то есть датчика, вырабатывающего случайную последовательность путем реализации случайных испытаний, основанных на случайном характере многократного взаимодействия человека с персональным вычислительным средством. Подход основан на вычислении ряда величин, связанных со случайной реакцией пользователя на псевдослучайный процесс, отображаемый на экране персонального или планшетного компьютера.
Читать дальше →

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