r-labs

среда, 3 марта 2010 г.

Мобильный интернет

Подвалило мне тут счастье в виде pcap дампа. Играюсь понемногу. Вот статистика GPRS трафика у одного из операторов "тройки": Чем эта диаграмма интересна: +3 это, в действительности, +30 - номера германские, а +4 - это +44 (Великобритания), +7 - Россия. По оси абцисс - в некотором смысле мера активности использования услуги. Получается, в основном мобильным интернетом пользуются иностранцы, что понятно.

UPD: Или съём шёл где - нибудь в районе посольств / общин.

Замечательный блог о том, о чём мне писать пока не получается - http://www.johndcook.com/blog/

среда, 26 августа 2009 г.

Этот год прошёл бестолково

Этот год прошёл бестолково. Из универа ушёл, занимался всякой фигнёй за еду. Единственное маленькое достижение - спроектировал программно - аппаратную систему для фильтрации в 10G и более Ethernet сетях. Но она, похоже, не будет реализована. Я уже написал модель на SystemC, осталось закончить окружение и тесты. Если не удастся продать алгоритм / модель за поездку в Перу и если знакомые FPGA программисты не скооперируются таки в самостоятельную группу, то распишу детали здесь.

В основе лежит простая идея, я бы сказал сделано "по - совецки". Просто пишется, просто и линейно расширяется. Надёжно как "калаш". Не сложно верифицировать. Позволяет без потерь мониторить трафик в 10 гигабитных сетях по 8K и более 128 битных фильтров, и это при 155Мhz на плате. Пока алгоритм / железо спроектированы на точное соответствие фильтру, но я наметил и модификации под интервальную фильтрацию.

В прошлом месяце, заскочив в книжный комиссионный - разменять деньги, прикупил книгу Воеводина "Параллельные вычисления". По ходу, я придумал то, что называется "систолические массивы". Моя задача и решение, конечно, весьма конкретны, но то общее определение, что дано в книге, очень и очень хорошо описывает их, по крайней мере с точки зрения архитектуры.

Поскольку сортировка данных - один из этапов работы алгоритма, я много гуглил на эту тему. И наткнулся на интересный факт - оказывается Билл Гейтс (тот самый), когда - то занимался исследованиями в этой области и даже публиковался в соавторстве! И его результат держался почти 30 лет. Молоток! Моя оценка его личности сместилась в сторону ещё большего уважения.

UPD

Может с 155Mhz я и загнул - сейчас подумалось, что это характеристики первых пентиумов, неважно. Главное, мы считали - алгоритм укладывается в требования.

вторник, 30 сентября 2008 г.

The Lost Numbers

В справочнике по целочисленным последовательностям, чего только не найдёшь.

The Lost Numbers

четверг, 25 сентября 2008 г.

"Все жители Крита - лжецы"...

Оказывается известная антиномия "Все жители Крита - лжецы" от критянина Епименида в полном варианте звучит так: "Все жители Крита лжецы, скверные животные, ленивые утробы". Вот так! Этот Епименид у них, похоже, был не логиком, а кем - то вроде дессидента. Епименид - отец дессидентства!

четверг, 28 августа 2008 г.

О программировании

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

четверг, 14 августа 2008 г.

Наглядная математическая статистика

Несколько глав из "Наглядной математической статистики: ch04.djvu ... ch08.djvu. Это теория. Практические главы во второй части. Я их, может быть, позже отсканирую.

вторник, 5 августа 2008 г.

.Last.value

Ну вот и пригодилось! )
Запустил hclust в top-level. Полчаса программа чего - то шуровала в свопе и затем счастливо сообщила:

Call:
hclust(d = dist(tdm), method = "ward")

Cluster method   : ward 
Distance         : euclidean 
Number of objects: 468 
От повторного запуска меня спасло .Last.value

пятница, 1 августа 2008 г.

Десятый день (string kernel)

ЗАДАЧА
Поставлена задача - сравнение слов, из - за орфографических ошибок или применения различных схем транслитерации незначительно различающихся в написании. Обычно эти слова - имена собственные, например, фамилии и имена индийских программистов / богов.

РЕШЕНИЕ
Есть идея - использовать метрический подход. Меру схожести можно задавать по - разному, но я не буду "изобретать велосипед", а проверю string subsequence kernel.

> library(kernlab)
>  sapply(1:4, function(i) 1 - stringdot(i)("Ivanov", "Ivanova"))
[1] 0.04059678 0.06617810 0.11842085 0.17463783
> sapply(1:4, function(i) 1 - stringdot(i)("Ivanov", "Iwanow"))
[1] 0.5000000 0.5938462 0.7684211 0.9487179
> sapply(1:4, function(i) 1 - stringdot(i)("Ivanov", "Ivanow"))
[1] 0.1339746 0.2118939 0.2947368 0.4358974
> sapply(1:4, function(i) 1 - stringdot(i)("Moscow", "Moscva"))
[1] 0.2783122 0.4298703 0.5800510 0.7948718
> sapply(1:4, function(i) 1 - stringdot(i)("Moscow", "Moskva"))
[1] 0.4226497 0.6327978 0.8320204 1.0000000
> sapply(1:4, function(i) 1 - stringdot(i)("Moscow", "Moskwa"))
[1] 0.2783122 0.5687790 0.7952749 0.9743590
> sapply(1:4, function(i) 1 - stringdot(i)("Vainoopuya", "Vaynopuya"))
[1] 0.1105008 0.2817140 0.4582484 0.5662287
> sapply(1:4, function(i) 1 - stringdot(i)("Vainoopuya", "Vaynoupuya"))
[1] 0.1314010 0.3545168 0.5902365 0.7399516
> sapply(1:4, function(i) 1 - stringdot(i)("Zloy", "Dobriy"))
[1] 0.5917517 0.9734512 1.0000000 1.0000000
Рассматривается несколько ядер, задаваемых подстроками с длинами от 1 до 4.

ВЫВОД
Даже в базовом варианте результаты, как и ожидалось, хорошие. Схожие слова близки - различные далеки. Результаты можно улучшить, используя различные веса (задавая их по статистическим данным или из лингвистических соображений). Кстати, насчёт лингвистики: можно ещё попробовать вероятностные грамматики.

вторник, 22 июля 2008 г.

Вероятность и статистика в примерах и задачах

book Формально вот отрывок из аннотации к книге:

Для освоения теории вероятностей и математической статистики тренировка в решении задач и выработка интуиции важны не меньше, чем изучение доказательств теорем; большое разнообразие задач по этому предмету затрудняет студентам переход от лекций к экзаменационным задачам, а от них - к практике. ... Необходимые теоретические сведения приводятся по ходу изложения; кроме того, текст снабжен историческими отступлениями.
Неформально: эти отступления, вкупе с продуманной подачей теории, придают книге особый стиль, отличают её от "ещё одного сборника задач". Подумываю об их перепечатке в блоге. К тому же, задачи подобраны не случайные, а из "Математических треножников" и предназначены для подготовки к ним.
Я поставил книге 10 баллов, поскольку хороших задачников "для практиков" не так уж много, и она оказалась мне близкой по духу. Но надо отметить, что я только начал читать, а уже встретились маленькие недостатки. Например, неправильное решение задачи с выборкой четырех крыс из популяции с двумя белыми. Коротко: соответствующие вероятности вычисляются как значения гипергеометрического распределения. У авторов же берутся заниженные значения. Что это? Ошибка? Ловушка для студентов? Любопытно было бы сравнить с английским изданием.
Купить книгу можно в лучшем книжном интернет - магазине.

Резюме: Оценка 10/10.

ISBNS 978-5-94057-253-4 / 978-5-94057-252-7

пятница, 11 июля 2008 г.

Повода для паники нет!

Из - за ошибки в генераторе случайных чисел для протокола DNS, многие, в том числе и корневые сервера были уязвимы. Подробности здесь и здесь. Пишут - повода для паники нет. Удивительно, сколь долго такая коварная ошибка оставалась незамеченной. Развёрнутый доклад об уязвимости Камински представит на blackhat.

среда, 11 июня 2008 г.

Математические методы обучения по прецедентам

Отличный курс лекций: http://www.ccas.ru/voron/teaching.html

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