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

Когда я первый раз столкнулся с темой бинарных деревьев в программировании, то сразу нашел на Хабре ответы почти на все возникшие у меня вопросы, но время шло, вопросов становилось больше и совсем недавно я нашел тему, которую еще не осветили на данном ресурсе — это 2-3-4 деревья. Есть отличная статья на тему 2-3 деревьев, в которой можно найти ответы на вопросы «Что такое куча?», «Что такое 2-3 деревья», а также информацию про основные операции со структурой, поэтому я не буду повторяться и сразу перейду к главной теме.

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

Структура данных 2-3-4 дерево - 1
Читать полностью »

Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language» - 1

Перевод поста Stephen Wolfram "I Wrote a Book—To Teach the Wolfram Language".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации


Книга «Элементарное введение в язык Wolfram Language» доступна для вас в печатной форме, бесплатно в Интернете, а также в других формах.

Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language» - 2

Я не был уверен, что когда-нибудь напишу еще одну книгу. Моя последняя книга — Новый вид науки — заняла у меня более десяти лет интенсивной сосредоточенной работы и является моим крупнейшим проектом из всех, что я когда-либо делал.

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

Результат — книга Элементарное введение в язык Wolfram Language, вышедшая сегодня в печать. Она также свободно доступна в Интернете, и в других формах.

Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language» - 3
Читать полностью »

Сопроцессоры Intel Xeon Phi(TM) представляют собой PCI Express устройство и имеют x86 архитектуру, обеспечивая высокую пиковую производительности — до 1,2 терафлопс (триллион операций с плавающей запятой в секунду) двойной точности на сопроцессор. Xeon Phi(TM) может обеспечивать одновременную работу до 244 потоков, и это нужно учитывать при программировании для достижения максимальной эффективности.

Недавно мы вместе с компанией Intel проводили небольшое исследование эффективности реализации алгоритма Штрассена для сопроцессора Intel Xeon Phi(TM). Кому интересны тонкости работы с этим устройством и просто любящих параллельное программирование, прошу под кат.

Распараллеливание алгоритма Штрассена на Intel® Xeon Phi(TM) - 1

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

Иногда этот метод называют «крестьянское умножение», иногда «древнеегипетское», иногда «эфиопское», иногда «умножение через удвоение и деление пополам». Некоторым он хорошо известен, некоторым – непонятен, но при этом он достаточно полезен и может использоваться не только для умножения, но и для возведения в степень и расчётов матриц.

Алгоритм

  13  x  19 ->     0
   6     38       19
   3     76 ->
   1    152 ->    95
   0    304      247
                 ^^^

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

Если число в левом столбце нечётное, мы добавляем число из правого столбца в нарастающую сумму. Изначально она будет равна нулю.

Затем в левом столбце ниже мы записываем число из заголовка, делённое пополам (с отбрасыванием остатка). 13 / 2 = 6. А во втором столбце мы пишем число, равное удвоению заголовка столбца, 19*2 = 38.

Поскольку число в левом столбце чётное, мы не увеличиваем нарастающую сумму.
Читать полностью »

image

(Скриншот из презентации: slideplayer.com/slide/3238789)

Приглашаем всех на открытую лекцию Computer Science центра, посвященную задаче выполнимости булевых формул — одной из самых известных и важных алгоритмических задач. Лекция пройдёт в рамках встречи со слушателями онлайн-курса «Алгоритмы: теория и практика. Методы». Время и место проведения: 25 декабря, 19:00, БЦ Таймс (г. Санкт-Петербург, ул. Кантемировская 2А, 4 этаж). Участие бесплатное, но требуется регистрация: goo.gl/IiNvV8

Задача выполнимости — каноническая трудная задача, по которой проводится огромное количество исследований: как практических, так и теоретических. В частности, этой задаче посвящена ежегодная международная конференция. Каждый год проходят соревнования программ для данной задачи (так называемых сат-солверов). Такие программы активно используются во многих прикладных областях. Буквально несколько месяцев назад Дональд Кнут дописал том 4B монографии «Искусство программирования», треть которого посвящена задаче выполнимости.

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

Привет! В этой статье речь пойдет о таком не очень приятном аспекте машинного обучения, как оптимизация гиперпараметров. Две недели назад в очень известный и полезный проект Vowpal Wabbit был влит модуль vw-hyperopt.py, умеющий находить хорошие конфигурации гиперпараметров моделей Vowpal Wabbit в пространствах большой размерности. Модуль был разработан внутри DCA (Data-Centric Alliance).

Оптимизация гиперпараметров в Vowpal Wabbit с помощью нового модуля vw-hyperopt - 1


Для поиска хороших конфигураций vw-hyperopt использует алгоритмы из питоновской библиотеки Hyperopt и может оптимизировать гиперпараметры адаптивно с помощью метода Tree-Structured Parzen Estimators (TPE). Это позволяет находить лучшие оптимумы, чем простой grid search, при равном количестве итераций.

Эта статья будет интересна всем, кто имеет дело с Vowpal Wabbit, и особенно тем, кто досадовал на отсутствие в исходном коде способов тюнинга многочисленных ручек моделей, и либо тюнил их вручную, либо кодил оптимизацию самостоятельно.
Читать полностью »

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

«The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».

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

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

Обнаружение инсайдерской торговли: Алгоритмы выявления и паттерны незаконных сделок - 1

Как конкретно ведут себя инсайдеры на бирже? Зависят ли их сделки от занимаемой должности в компании (генеральный или финансовый директор), меняется ли поведение инсайдеров с течением времени (повлиял ли на него, к примеру, кризис 2008 года)?

Группа исследователей из технологического института Джорджии провели исследование на основе данных о 12 млн транзакций, совершенных 370 тысячами инсайдеров в период с 1986 по 2012 год. Целью этой работы было выявление паттернов поведения игроков на фондовом рынке, с помощью которых регулирующие органы могли бы обнаруживать и пресекать незаконную инсайдерскую торговлю. Мы представляем вашему вниманию основные моменты этого документа.Читать полностью »

Как за 5233 человеко-часа создать софт для микротомографа - 1

Хочу поподробнее рассказать об интересном проекте компании Edison. Перед разработчиками поставили задачу написать софт для микротомографа, они с этим отлично справились, а потом запихивали в этот томограф семечки, болты, конденсаторы и моль. А серьезным дядям этот томограф нужен, чтобы проверять алмазы и не покупать дырявые.

Как за 5233 человеко-часа создать софт для микротомографа - 2 А еще сегодня 16 декабря, день рождения Иоганна Радона, австрийского математика, ректора Венского университета, который в 1917 году ввел интегральное преобразование функции многих переменных, родственное преобразованию Фурье, используемое сегодня во всех томографах.

Иоганн Радон был профессором 6 университетов (а в одном из них даже без кафедры), был президентом Австрийского математического общества. В Австрии в честь него назвали «Институт вычислительной и прикладной математики» и медаль.

О том, как проходила разработка софта для томографа и какие задачи решались в процессе — под катом.
Читать полностью »

Фестиваль данных в музее Москвы, или как Big Data помогает жить и работать - 1

Привет Хабр,

Если вам давно было интересно, как Big Data применяется в разных областях бизнеса, науки и государственного управления и это хотелось услышать от самих людей, которые этим занимаются, то добро пожаловать на Фестиваль Данных, который будет проходить 19 декабря на Выставке Высоких Технологий SMIT в Музее Москвы.

В течение нескольких часов работы Фестиваля ведущие эксперты отрасли из Yandex, Школы Данных «Билайн», Data-Centric Alliance, Авито, ГУП «НИ и ПИ Генплана Москвы, НИУ ВШЭ расскажут гостям выставки о перспективах использования анализа данных в ближайшие несколько лет.
Читать полностью »


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