Обновить
272.79

Алгоритмы *

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

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

Синтезатор речи «для роботов» с нуля

Время на прочтение25 мин
Охват и читатели26K
image

Давным-давно посетила меня идея создать синтезатор речи с «голосом робота», как, например, в песне Die Roboter группы Kraftwerk. Поиски информации по «голосу робота» привели к историческому факту, что подобное звучание синтетической речи характерно для вокодеров, которые используются для сжатия речи (2400 — 9600 бит/c). Голос человека, синтезированный вокодером, отдает металлическим звучанием и становится похожим на тот самый «голос робота». Музыкантам понравился данный эффект искажения речи, и они стали активно его использовать в своем творчестве.
Подробнее про реализацию синтезатора речи.

Последние новости о развитии C++

Время на прочтение7 мин
Охват и читатели77K
Недавно в финском городе Оулу завершилась встреча международной рабочей группы WG21 по стандартизации C++, в которой впервые официально участвовали сотрудники Яндекса. На ней утвердили черновой вариант C++17 со множеством новых классов, методов и полезных нововведений языка.



Во время поездки мы обедали с Бьярне Строуструпом, катались в лифте с Гербом Саттером, жали руку Беману Дейвсу, выходили «подышать воздухом» с Винцентом Боте, обсуждали онлайн-игры с Гором Нишановым, были на приёме в мэрии Оулу и общались с мэром. А ещё мы вместе со всеми с 8:30 до 17:30 работали над новым стандартом C++, зачастую собираясь в 20:00, чтобы ещё четыре часика поработать и успеть добавить пару хороших вещей.

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

Векторизация кода преобразования координат в пространстве на Intel® Xeon Phi™ с помощью низкоуровневых инструкций

Время на прочтение10 мин
Охват и читатели9.6K

Введение


При решении задач моделирования движения объектов в трехмерном пространстве практически всегда требуется использование операций пространственных преобразований, связанных с умножением матриц преобразований и векторов. Для задачи N тел эта операция используется многократно для задания поворота и смещения тела относительно начала координат. Матрица пространственного преобразования имеет размерность 4х4, а размерность вектора, к которому применяется преобразование, соответственно 4x1. Рассмотрим оптимизацию выполнения такой операции с большим числом матриц и векторов под архитектуру Intel® Xeon Phi™.


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

Гильоши

Время на прочтение11 мин
Охват и читатели42K
Гильоши — это характерные узоры на деньгах и ценных бумагах. Они красивы, и сочетают в себе одновременно заметную сложность с внутренней простотой — когда кажется, что ты вот-вот уловишь принцип, но он каждый раз от тебя ускользает. Возможно, именно это и есть определение красоты.
Читать дальше →

Обзор физики в играх Sonic. Части 5 и 6: потеря колец и нахождение под водой

Время на прочтение5 мин
Охват и читатели21K


Продолжение цикла статей о физике в играх про Соника. В этом посте рассматриваются потеря колец и нахождение под водой.
Читать дальше →

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

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

image

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

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

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

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

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

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

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

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

Время на прочтение14 мин
Охват и читатели36K

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



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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение10 мин
Охват и читатели334K


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

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

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


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

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