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

Алгоритмы *

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

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

Измерение веса руды по току статора. Практика. Часть 2. Программная реализация на МК

Время на прочтение8 мин
Количество просмотров6.1K
Последняя часть из цикла «Измерение веса полезных ископаемых». В данной статье будет показана программная реализация на МК.

Вспомним основы данного метода измерение веса полезных ископаемых по току статора шахтной подъемной установки (ШПУ), оборудованной высоковольтным асинхронным двигателем с фазным ротором.


Вместо предисловия


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

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 2

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


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

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

Скорректированный скользящий экзамен, соклассификаторы, фрактальные классификаторы и локальная вероятность ошибки

Время на прочтение5 мин
Количество просмотров2.7K
В данной работе даются элементы введения в классификацию с обучением на малых выборках — от удобной системы обозначений до специальных оценок надежности. Постоянное наращивание быстродействия вычислительных устройств и малые выборки, позволяют пренебречь значительным объемом вычислений, необходимым при получении некоторых из этих оценок.
Добро пожаловать под кат!

Фальшивомонетчики против банкиров: стравливаем adversarial networks в Theano

Время на прочтение13 мин
Количество просмотров35K
image
Вы бы никогда не подумали, но это прогулка по пространству нейросети-фальшивомонетчика. Сделано крутейшими людьми Anders Boesen Lindbo Larsen и Søren Kaae Sønderby

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

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

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

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

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

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


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

Рекурсия. Занимательные задачки

Время на прочтение14 мин
Количество просмотров406K
Здравствуй Хабрахабр!

В этой статье речь пойдет о задачах на рекурсию и о том как их решать.
image

Кратко о рекурсии


Рекурсия достаточно распространённое явление, которое встречается не только в областях науки, но и в повседневной жизни. Например, эффект Дросте, треугольник Серпинского и т. д. Один из вариантов увидеть рекурсию – это навести Web-камеру на экран монитора компьютера, естественно, предварительно её включив. Таким образом, камера будет записывать изображение экрана компьютера, и выводить его же на этот экран, получится что-то вроде замкнутого цикла. В итоге мы будем наблюдать нечто похожее на тоннель.

В программировании рекурсия тесно связана с функциями, точнее именно благодаря функциям в программировании существует такое понятие как рекурсия или рекурсивная функция. Простыми словами, рекурсия – определение части функции (метода) через саму себя, то есть это функция, которая вызывает саму себя, непосредственно (в своём теле) или косвенно (через другую функцию).

О рекурсии сказано много. Вот несколько хороших ресурсов:
Читать дальше →

Представляем бесплатную лабораторию программирования Wolfram Programming Lab для изучения языка Wolfram Language

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

Перевод поста Stephen Wolfram "Announcing Wolfram Programming Lab".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Я рад объявить о запуске Лаборатории программирования Wolfram — среды для всех, кто хочет обучиться программированию и вычислительному мышлению вместе с Wolfram Language. Wolfram Programming Lab можно запускать как в браузере, так и на настольных системах (Mac, Windows, Linux).

Я давно хотел найти способ, позволяющий кому бы то ни было, будь то детям или взрослым, познакомиться с Wolfram Language и всеми его возможностями, даже при полном отсутствии знаний и опыта в сфере программирования. Теперь он у нас есть!

Стартовый экран (см. рис. в самом верху поста) предоставляет возможность пойти по одному из четырех путей. Во-первых, есть небольшое видео. Далее следует раздел «Попробуйте сами», содержащий несколько весьма простых, но интересных вычислений.


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

Техники машинного обучения для прогнозирования цен акций: функции индикаторов и анализ новостей

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


В нашем блоге мы уже затрагивали тему предсказания цен акций с помощью алгоритма адаптивной фильтрации. Финансист из Нью-Йорка Ватсал Шах (Vatsal Shah) в своей работе рассмотрел возможность использования для этих целей алгоритмов машинного обучения. Мы представляем вашему вниманию главные мысли этого документа.
Читать дальше →

Метод Санделиуса для получения случайных перестановок

Время на прочтение4 мин
Количество просмотров16K
Статьи о получении (псевдо)случайных чисел, о проверке качества полученных последовательностей неизменно вызывают интерес у населения Хабра.

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

Метод описанный ниже предложен Санделиусом (М. Sandelius) еще в 1962 г. в работе [1].

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

О действительно БОЛЬШИХ числах (часть 1)

Время на прочтение9 мин
Количество просмотров60K
imageИдея написать популярно про большие числа пришла во время чтения недавней статьи, речь в которой шла о числах-гигантах, имеющих хоть какой-то физический смысл. И заканчивается она упоминанием числа Грэма. Того числа, которое будет точкой отсчета сегодняшней статьи. Чтобы представить себе масштабы бедствия я настоятельно рекомендую предварительно прочитать вот эту статью, в которое объясняется о числе Грэма на пальцахTM — там автор очень красочно и последовательно рассказывает о границах восприятия, в которые мы себя зажимаем, когда говорим о больших числах.
Внимание, дисклеймер!
Я не являюсь профессиональным математиком. Поэтому ошибки в специальной терминологии практически неизбежны, учитывая полное отсутствие материалов на русском языке. Более того, я даже не уверен, что те слова, которые я использую для перевода с английского, вообще используются русскоязычными математиками. С другой стороны, я попытался всё это понять и объяснить языком, доступным для обычных читателей. Любые замечания просьба отписывать в личку — будем улучшать текст вместе.
итак, поехали...

Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection

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


Совсем скоро, в рамках третьей научно-технической конференции GraphHPC-2016, стартует конкурс GraphHPC, посвященный проблемам параллельной обработки больших графов с использованием суперкомьютеров. В этот раз участникам предстоит найти самую быструю реализацию задачи Community Detection (поиск сообществ) в неориентированном графе с весами.
Читать дальше →

Параллельные алгоритмы для обработки BigData: подводные камни и непростые решения

Время на прочтение9 мин
Количество просмотров21K
Эта публикация написана по материалам выступления AlexSerbul на осенней конференции BigData Conference.

Большие данные — тема модная и востребованная. Но многих по-прежнему отпугивает избыток теоретических рассуждений и некоторый недостаток практических рекомендаций. В этом посте я хочу отчасти заполнить этот пробел и рассказать об использовании параллельных алгоритмов для обработки больших данных на примере кластеризации товарного каталога из 10 млн позиций.
Читать дальше →

Монте-Карло моделирование в Mathcad Express

Время на прочтение4 мин
Количество просмотров13K
На Хабре много статей посвящено алгоритмам Монте-Карло, например, вот эта, вчерашняя. Как основная идея, так и реализация методов весьма несложная, но небольшим препятствием может служить отсутствие под рукой подходящих инструментов для моделирования. Тем из читателей, для кого проблема актуальна, советую использовать бесплатный математический редактор Mathcad Express, про который я и пишу в моем блоге.

Mathcad Express — это «легкая» версия известного пакета PTC Mathcad Prime, в которой большая часть функционала выключена. Тем не менее, датчики псевдослучайных чисел остаются доступными, что позволяет реализовать (довольно быстро и наглядно) различные статистические модели на основе алгоритмов Монте-Карло. Сразу оговорюсь, что некоторые решения будут не самыми лучшими, с точки зрения пользователей коммерческой версии Mathcad Prime, однако, они гарантированно не выведут нас за пределы функционала бесплатного Mathcad Express.

Напомню, что алгоритмы Монте-Карло — это общее название группы численных методов, основанных на программном создании определенной последовательности псевдослучайных чисел, моделирующей тот или иной эффект, например, последовательность отказов техники. Получив большое число реализаций случайного процесса, можно надеяться, что его вероятностные характеристики совпадут с аналогичными величинами решаемой задачи «реального мира». Файл с дальнейшими расчетами в форматах Mathcad и XPS лежит здесь.

Часть 1. Как сгенерировать выборку псевдослучайных чисел


В Mathcad Express доступен ряд генераторов псевдослучайных чисел, создающих выборки псевдослучайных данных с различными законами распределения. Для создания вектора из N псевдослучайных чисел нужна всего лишь одна строка Mathcad-документа. Например сгенерировать N=5 псевдослучайных чисел с нормальным распределением (нулевым средним и единичной дисперсией) можно так:



Векторы случайных чисел удобно визуализировать на графиках так: одна выборка (т.е. компоненты одного из случайных векторов T1) по оси абсцисс, а другая выборка (другой случайный вектор T2)  – по оси ординат. На следующем рисунке приведены графики пар псевдослучайных чисел для экспоненциального (слева) и нормального (справа) распределения. Параметры распределений задаются в формулах над графиками.



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

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

Измерение веса руды по току статора. Практика. Часть 1. Алгоритм обработки сигналов в МК

Время на прочтение9 мин
Количество просмотров8.8K
В прошлой статье мы рассмотрели теоретически основы измерения веса руды в сосуде ШПУ по измерению силы, развиваемым двигателем при подъеме. Схемотехнически подготовили сигналы тока и напряжения статора двигателя для обработки их в МК. В этой статье мы рассмотрим программную реализацию вычисления массы поднимаемого груза на МК. Для того что бы приступить к написанию программы для МК, необходимо разобраться, как правильно нужно данные сигналы в МК обрабатывать. Итак приступим.

Сигналы тока и напряжения представляют собой синусоидальный сигнал, в основе своей содержащий основную частоту питающей сети (для наших реалий 50 Гц). Про гармоники и прочие составляющие в сетевом напряжении говорить не будем, они есть и оказывают влияние на качество сети и динамические свойства электродвигателей. На любом производстве с ними борются по мере сил, так что их влияние, пусть и не ничтожно, но все-таки мало. Останавливаться на этом не станем.
Читать дальше →

Заметки о SQL и реляционной алгебре

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


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

Зачем это может быть нужно сегодня? Не только специалистам по анализу данных и администраторам баз данных приходится работать с данными, фактически мало кому не приходится что-то извлекать из (полу-)структурированных данных или трансформировать уже имеющиеся. Для того, чтобы иметь хорошее представление почему языки запросов устроены определенным образом и осознанно их использовать нужно разобраться с ядром, лежащим в основе. Об этом мы сегодня и поговорим.

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

Содержание



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

3 место за 11 шагов в конкурсе по JavaScript от Hola

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

К рекурсии через перестановки

Время на прочтение4 мин
Количество просмотров13K
Поскольку речь пойдет о рекурсии, начну с конца — со списка использованной литературы:

1) Хорошая общая статья о рекурсии: habrahabr.ru/post/256351 (в ней автор говорит, что рекурсивный код легче для восприятия. Честно говоря, пока я не готов согласиться с таким выводом, именно поэтому появилась эта заметка).

2) Разбор работы рекурсии на “самом низком уровне”, тут много ассемблера, но всё достаточно понятно: club.shelek.ru/viewart.php?id=205 (особенно советую обратить внимание на тот момент, где идет речь об адресе возврата. Этот эпизод сильно облегчает понимание).

Лирическое отступление:
Данная статья настолько рекурсивная, что написана автором для самого автора, а также для тех пользователей, которые, как и автор, не уверены в стопроцентном понимании данной темы.
Читать дальше →

Генераторы дискретно распределенных случайных величин

Время на прочтение8 мин
Количество просмотров40K
Данная статья является продолжением поста Генераторы непрерывно распределенных случайных величин. В этой главе учитывается, что все теоремы из предыдущей статьи уже доказаны и генераторы, указанные в ней, уже реализованы. Как и ранее, у нас имеется некий базовый генератор натуральных чисел от 0 до RAND_MAX:

unsigned long long BasicRandGenerator() {
    unsigned long long randomVariable;
    // some magic here
    ...
    return randomVariable;
}

С дискретными величинами все интуитивно понятнее. Функция распределения дискретной случайной величины:


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

Распределение Бернулли




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

Школа Данных «Билайн», каникулы закончились

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


Привет, Хабр!

Надеемся, что в Новогодние праздники многие из Вас отлично отдохнули. Но, каникулы закончились. Пора вернуться к машинному обучению и анализу данных. С 25 января мы запускаем третий набор Школы Данных «Билайн».

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

Кстати, если вы уже активно занимаетесь анализом и обработкой текстов и хотите попробовать себя, рекомендуем поиграться с задачей The Allen AI Science Challenge на Kaggle=) и заодно поучаствовать в DeepHack, хакатоне по анализу текстов и построению ответных систем.

Про то, чему мы учим на наших занятиях по обработке текстов дальше.
Читать дальше →

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

Время на прочтение7 мин
Количество просмотров13K
В горнодобывающей промышленности для транспортирования полезных ископаемых из шахты на поверхность применятся много техники. Это самоходные установки, наклонные съезды с вагонами, шахтные подъемные установки (ШПУ или ШПМ). Вот о ШПМ мы и поговорим.



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

Приводы тоже бывают разные. Постоянного и переменного тока. Для переменного тока это могут быть высоковольтные асинхронные электродвигатели с фазным ротором, синхронные электродвигатели, низковольтные асинхронные электродвигатели с короткозамкнутым ротором. Поговорим о ШПУ с высоковольтным асинхронным электродвигателем с фазным ротором.
Читать дальше →

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