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

В заметке Генерация почти осмысленных текстов на Haskell (опубликованной полтора года назад… как быстро летит время!) был упомянут подход к генерации статей, заключающийся в написании обзоров цифровой техники на основе их характеристик. Недавно у меня дошли руки до реализации этой идеи, правда, на Erlang, а не на Haskell.

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

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

Недавно в блоге Даркуса была поднята тема генерации уникальных текстов, содержащих в себе некоторый смысл. То есть речь идет о генерации нормальных текстов, вроде того, что вы читаете в данный момент, а не простой мешанины из слов. Тема меня «зацепила» и со второй попытки мне удалось написать довольно неплохой, как мне кажется, генератор. Однако, будучи блогером-графоманом, начну я немного издалека…

Синтезатор голоса (он же «Text To Speech» или «TTS») — это программа, предназначенная для преобразования текста в человеческую речь. Таких программ сейчас много, но, к сожалению, качество большинства синтезаторов оставляет желать лучшего. В этой заметке вы найдете краткое описание некоторых синтезаторов.

Не могу удержаться от соблазна пересказать еще одну заметку с ХабраХабра — «Поиск лиц на картинке с помощью JavaScript и Canvas».

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