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

Никлаус Вирт: 80 летие классика программирования

15 февраля исполняется 80 лет выдающемуся швейцарскому учёному и инженеру — Никлаусу Вирту (Niklaus Wirth), лауреату премии Тьюринга — самой престижной премии в компьютерных науках, аналога Нобелевки, знаменитому профессору Высшей политехнической школы ETH из Цюриха, где учились Альберт Эйнштейн (1896) и Джон фон Нейман (1923).

Его знают как автора классического Паскаля (1970), но многие даже понятия не имеют, что было десятилетиями позже. Что его разработки во многом инициировали создание Java и C#. Что нынешние космические спутники, новейшие беспилотники и безупречные по качеству швейцарские железные дороги работают благодаря его блестящей инженерной мысли.

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

Наша эпоха — время диктатуры воинствующих дилетантов. И в программировании классика тоже уступает арену коммерчески изуродованной индустриальной «попсе».

Истинную величину И.С.Баха человечество оценило спустя несколько столетий после его смерти. Надеюсь, мудрого профессора Никлауса Вирта — компьютерного Баха — люди оценят по достоинству всё же немного раньше.

Юбилей Никлауса Вирта — очень хорошая проверка на компетентность не только российских СМИ, но и мировых.

Руслан Богатырёв. 15.02.2014, Москва

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

Сегодня мы поговорим о моделировании реальности как о способе мышления, восприятия информации и анализа данных. Будем вместе заново изобретать и улучшать модели, которые сегодня используются в поисковых системах: в метриках качества поиска, при создании факторов ранжирования и даже при построении новых интернет-сервисов. Именно этому посвящена лекция Федора Романенко.

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

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

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

Алгоритм Улучшенной Самоорганизующейся Растущей Нейронной Сети (ESOINN)

Введение

В моей предыдущей статье о методах машинного обучения без учителя был рассмотрен базовый алгоритм SOINN — алгоритм построения самоорганизующихся растущих нейронных сетей. Как было отмечено, базовая модель сети SOINN имеет ряд недостатков, не позволяющих использовать её для обучения в режиме lifetime (т.е. для обучения в процессе всего срока эксплуатации сети). К таким недостаткам относилась двухслойная структура сети, требующая при незначительных изменениях в первом слое сети переобучать второй слой полностью. Также алгоритм имел много настраиваемых параметров, что затрудняло его применение при работе с реальными данными.

В этой статье будет рассмотрен алгоритм An Enhanced Self-Organizing Incremental Neural Network, являющийся расширением базовой модели SOINN и частично решающий озвученные проблемы.
Читать полностью »

Арифметика полей Галуа для кодирования информации кодами Рида Соломона

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

Альберт Энштейн

«В жизни нет ничего сложного. Это мы сложны.
Жизнь — простая штука, и в ней что проще, тем правильнее»
Оскар Уайльд.

Большая часть населения Земного шара занимается усложнением. Посмотрите, как мы живем — множество вещей, большую часть которых не носим, множество книг, которые не прочитали, либо не применили, лишняя еда, отношения, мысли, слова, вес… Мы сами усложняем-захламляем себе жизнь. А потом удивляемся, что у нас возникают такие сложные проблемы со здоровьем, отношениями, деньгами…. И когда они возникают, начинаем искать новые вещи/людей/знания/т.д., чтобы решить какие-то свои задачи. Но что при этом происходитЧитать полностью »

Думаю, мало кто из готовящихся к своему первому интервью, при приеме на первую работу в должности (pre)junior программиста, ответит на этот вопрос отрицательно. Или хотя бы усомнится в положительном ответе. Конечно, такая простая структура данных с прямым доступом по индексу — никаких подвохов! Нет, в некоторых языках типа JavaScript или PHP массивы, конечно, реализованы очень интересно и по сути являются много большим чем просто массив. Но речь не об этом, а о «традиционной» реализации массивов в виде «сплошного участка памяти». В этом случае на основании индексов и размера одного элемента просто вычисляется адрес и осуществляется доступ к соответствующему значению. Что тут сложного? Читать полностью »

Дорогие участники конкурса разработчиков! До открытия доступа к конкурсной базе осталась всего одна неделя!

image

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

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

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

Разбиение веб страниц на семантические блоки
Пример работы алгоритма на сайте Автокадабра.

Задача

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

Гораздо полезней отследить взаимодействие посетителей с сайтом, выяснить чем живёт сайт, с возможностью охватить одновременно множество посетителей. В итоге, появилась идея записывать информацию в виде осмысленного списка действий посетителей:

  • Dima: переход на сайт с поисковой системы Yandex RU по запросу sepyra (3м. 10 сек. назад)
  • Dima: переход со страницы "Веб-аналитика Sepyra | Официальный сайт" на страницу "О системе | Веб-аналитика Sepyra (1 м. 30 сек. назад)
  • Dima: выделение текста "времени" в блоке "Одна из ключевых особенностей веб-аналитики Sepyra — возможность… кто хочет быть в курсе каждого шага посетителей" (40 сек. назад)
  • Dima: средний интерес к подблоку "Подключиться" в блоке "Тарифы О системе FAQ Контакты Русский English Подключиться Войти" (20 сек. назад)
  • Dima: заполнение/изменение поля "Ваше имя" в форме "Регистрация" (10 сек. назад)

Запись состоит из двух частей: блок в котором происходит действие посетителя и само действие, например — выделение текста "времени" в блоке "Одна из ключевых особенностей ...". Для этого описания необходимо определить блок на странице и его имя. Если с именем было более-менее понятно, то над выделением блоков пришлось подумать.
Читать полностью »

В данной статье речь пойдет об алгоритме HEngine и реализации решения проблемы подсчета расстояния Хэмминга на больших объемах данных.
Читать полностью »


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