WWWorld.ru · Темы дня · Разделы дня · Интересы дня · 2012 · Свежие новости

Темы
Разделы
Интересы
Top 20

Алгоритмы / [Из песочницы] Алгоритм подготовки данных для сжатия

Так как алгоритмы сжатия информации в современных архиваторах доведены до совершенства, создавать что-то новое уже нецелесообразно. Гораздо проще и интереснее создать алгоритм, который преобразовывал бы файл таким образом, чтобы увеличить коэффициент сжатия, то есть алгоритм первичной обработки. Именно такую цель я поставил себе, когда приступал к разработке. Читать дальше → habrahabr.ru »

2011-04-14 18:11 habrahabr.ru / Новости / бит


Сохранить

[Из песочницы] Алгоритмы сегментации текста

Хабы: Data Mining Здравствуйте. В контексте анализа данных из твиттера возникла задача обработки хештегов. Нужно было взять хештег и разбить его на отдельные слова (#habratopic => habra topic). Задача казалась примитивной, но, получается, я ее недооценил. Пришлось перебрать несколько алгоритмов пока не было найдено то, что надо. Эту статью можно считать некой хронологией решения задачи с анализом преимуществ и недостатков каждого из использованных алгоритмов. Поэтому, если вам интересна данная тема, прошу под кат. Читать дальше → habrahabr.ru »

2012-04-02 11:36 habrahabr.ru / Новости / machine learning

Алгоритмы / [Из песочницы] Рекурсивные функции — создание собственной математики (Scala)

Добрый день, Хабр! Столь претензионным заголовком я хочу начать статью про одну из многих моделей исчисления (Computational model) — рекурсивные функции. В первой части этого поста мы разберем (в кратце, ибо подробно все расписано на Википедии) теоретическую составляющую этой модели (примитивная рекурсия), во второй же половине мы попробуем претворить данную модель в жизнь (частично) с помощью языка Scala. 1. Рекурсивные функции — что это? Читать дальше → habrahabr.ru »

Алгоритмы / [Из песочницы] Наработки к планированию процессов в ОСРВ

Закончив изучение Таненбаума и ковыряние ядра Linux решил, что надо заняться чем-то дельным. По личным мотивам решил переделать ядро minix3 под планирование в жёстком реальном времени. Множество существующих алгоритмов планирования ввели меня в уныние, тем более, что хочется сделать ОС максимально универсальной и гибкой. Зацикленность на клиент-серверной модели привели к идеи о вынесении из ядра ОС механизмов планирования и разделение процессов на группы, управляемые: каждая своим планировщиком (в режиме ядра оставить только обработку deadline). Основная проблема, которая стала очевидной сразу же — это выбор математической модели для построения алгоритма планирования. Очевидно, что подход разделения общего ресурса можно рассмотреть в аналогии с сетевыми протоколами разделения общего физического пространства. Читать дальше → habrahabr.ru »

2012-03-04 05:56 habrahabr.ru / Новости / осрв
Алгоритмы / [Из песочницы] Алгоритмическая ошибка привела к аварии самолёта

Алгоритмы / [Из песочницы] Алгоритмическая ошибка привела к аварии самолёта

Недавно, 19 декабря 2011г, Австралийское бюро по безопасности на транспорте выпустило отчёт об авиационном происшествии с самолётом А-330 (б/н VH-QPA) авиакомпании Qantas, которое произошло 7 октября 2008г. (фотография Stefan Roesh planepictures.net) Необычность этого происшествия заключается в том, что к нему привёл не только сбой оборудования, но и ошибка в системном алгоритме обработки данных. Об этом я и хочу поведать хабрасообществу. Читать дальше → habrahabr.ru »

2012-03-01 15:20 habrahabr.ru / Новости / авиапроисшествие
Алгоритмы / [Из песочницы] Sqrt-декомпозиция (корневая оптимизация)

Алгоритмы / [Из песочницы] Sqrt-декомпозиция (корневая оптимизация)

Sqrt-декомпозиция — это метод, или структура данных, позволяющая в режиме онлайн проводить такие операции, как подсчет суммы на отрезке за и обновление элемента за . Существуют более эффективные структуры, такие как дерево фенвика или дерево отрезков, которые оба запроса обрабатывают за . Однако я хочу рассказать про корневую оптимизацию, т.к. в этом методе заложена идея, применимая к задачам другого типа. Постановка задачи Пусть нам задан массив A[i], на который поступают запросы вида: посчитать сумму на отрезке [L; R] (позже, мы поймем, что аналогично можно вычислять функции min, max, gcd и др. добавить к элементу A[i], delta Наивная реализация Мы можем предрасчитать массив частичных сумм, а именно: for(int j = 0; j < i; j++) B[j] += A[i];и тогда на запрос суммы [L; R], мы будем возвращать B[R]-B[L-1] за . Однако на запрос изменения, потребует пересчета частичных сумм (содержащих этот элемент) и в худшем случае составит асимптотику порядка , что не есть хорошо. Читать дальше → habrahabr.ru »

2012-02-27 15:56 habrahabr.ru / Новости / GCD на отрезке

Алгоритмы / [Из песочницы] Оптимизация параметров девиации признаков при распознавании образов

Описание проблемы В системах распознавания образов основными задачами являются – извлечение идентификационных признаков исходного образа и проведение этапа классификации и кластеризации над идентификационными признаками. На практике на этапе классификации для получения более качественного результата распознавания необходимо нелинейно варьировать параметр отклонения идентификационных признаков. В данной статье предлагается метод оптимизации параметра девиации идентификационных признаков при распознавании образов на основе нечетких нейронных сетей (ННС). Читать дальше → habrahabr.ru »

2012-02-27 14:37 habrahabr.ru / Новости / ННС

Алгоритмы / [Из песочницы] EvoJ — удобный фреймворк для генетических алгоритмов

Здравствуйте, коллеги! Здесь часто появляются статьи на тему генетических алгоритмов, разрешите и мне внести свои пять копеек. Вот уже пару лет я виде хобби разрабатываю Java-фреймворк EvoJ посвященный ГА. Когда я только начинал работу с ГА самое большое неудобство представляла необходимость векторизации переменных составляющих решение, поэтому в своем фреймворке я постарался сделать векторизацию переменных прозрачной для программиста, возложив всю грязную работу на плечи фреймворка. Кроме того, так как ГА очень хорошо поддается распараллеливанию, я постарался сделать переход к многопоточности не менее легким. Читать дальше → habrahabr.ru »

2012-02-15 19:39 habrahabr.ru / Новости / EvoJ

Алгоритмы / [Из песочницы] Генетические алгоритмы. От теории к практике

Добрый день. В последнее время решил заняться самообразованием. Решено было начать с генетических алгоритмов. Одно из замечатльных свойств ГА это то, что процедуры Селекции, Скрешивания и Мутации представления не имеют о Индивидах в Поколениях — для них это всего-лишь 0 и 1. Единстенная функция, которая знает, что же из себя представляют эти самые 0 и 1 — это ФитнессФункция. Поэтому я решил, что было бы неплохо написать класс-каркас для любого ГА. Об это и будет данная статья. Предполагается, что вы уже знакомы с основами генетических алгоритмов. Кому интресно, прошу под кат. Читать дальше → habrahabr.ru »

2012-02-13 21:53 habrahabr.ru / Новости / java

Алгоритмы / [Из песочницы] Алгоритм Ляна-Кнута для расстановки мягких переносов

При работе с текстом часто возникает потребность корректно расставить переносы. Задача на первый взгляд не такая уж очевидная, нужно учитывать особенности каждого языка, чтобы решить, в каком месте разорвать слово. Как правильно формализовать такие требования, и как потом применить их в алгоритме? Одно из самых распространенных на сей день решений предложил Франклин Марк Лян, студент известного профессора Дональда Кнута. Алгоритм так и называется – «Алгоритм Ляна-Кнута», он применяется в издательской системе TeX, автор которой опять же Д. Кнут. Алгоритм основан на сравнении исходного слова с набором правил (шаблонов). Чем больше правил и чем качественнее они составлены, тем лучше будут расставляться переносы. В пакете TeX можно найти готовые бесплатные наборы правил для многих языков, нужно только внимательно смотреть на условия использования и распространения. Узнать больше habrahabr.ru »

2012-02-13 12:38 habrahabr.ru / Новости / Кнут

Алгоритмы / [Из песочницы] Как я создавал синтаксический анализатор

Для одного из моих проектов потребовалась интересная фича — перефразирование текста, позволяющего, к примеру, фразу “корова паслась на лугу” переделать в “пятнистая буренка жевала сочную траву на зеленом лугу”. Конечно же, подобного рода преобразования требуют очень большую базу связей между словами и выражениями, отсутствие которой и свело на нет всю работу. Но это уже другая история. Сейчас же я расскажу о том, как решал вопрос синтаксического анализа предложений, которые затем должны были преобразоваться во что-то новое, но такое же человекочитаемое. Читать дальше → habrahabr.ru »

2012-02-07 21:57 habrahabr.ru / Новости / грамматика

Алгоритмы / [Из песочницы] Алгоритм Шеннона-Фано

Алгоритм метода Шеннона-Фано один из первых алгоритмов сжатия, который впервые сформулировали американские учёные Шеннон и Фано и имеет большое сходство с алгоритмом Хаффмана. Алгоритм основан на частоте повторения. Так часто встречающийся символ кодируется кодом меньшей длины, а редко встречающийся — кодом большей длины. В свою очередь коды полученные при кодировании, префиксные. Это и позволяет однозначно декодировать любую последовательность кодовых слов. Но все это вступление. Читать дальше → habrahabr.ru »

2012-02-07 13:52 habrahabr.ru / Новости / алгоритм сжатия

Алгоритмы / [Из песочницы] Многокритериальный выбор альтернатив с использованием правил нечеткого вывода. Часть 1/3: Теория

Нечеткая логика — математические основы Нечёткое множество Описание метода Пусть имеется множество элементов U, а A – его нечеткое подмножество, степень принадлежности его элементов определяется значением X, принимающим значение из интервала [0;1]. Таким образом, объект можно описать набором критериев(параметров) X(1), X(2) … X(n), принадлежащих соответствующим базовым множествам U(1), U(2) … U(n). Совокупность критериев с соответствующими значениями характеризует приемлимость S данного объекта относительно поставленной задачи. Читать дальше → habrahabr.ru »

Алгоритмы / [Из песочницы] Моделирование большого количества взаимодействующих друг с другом частиц

Рассмотрим ситуацию, когда необходимо обрабатывать столкновения между объектами. Как вы в этом случае поступите? Вероятно, самым простым решением будет проверить каждый объект с каждым другим объектом. И это правильное решение, и все будет замечательно до тех пор пока объектов не много. Как только их станет порядка нескольких тысяч, вы заметите, что все стало как-то медленно работать. А если частиц несколько десятков тысяч или сотен? Тогда все замрет. Вот здесь уже интересно, на какие хитрости и оптимизации вы пойдете, чтобы решить такую проблему. Для простоты, будем рассматривать 2D случай, частицы круглые, радиус частиц у всех одинаковый. Содержание 1. Обзор алгоритмов 1.1. Полный перебор 1.2. Sweep & Prune 1.3. Регулярная сеть 2. Некоторые оптимизации 2.1. Sweep & Prune 2.2. Регулярная сеть 3. Сравнение скорости выполнения 4. Приложение (программа и исходный код) 5. Заключение Читать дальше → habrahabr.ru »

2012-01-10 13:48 habrahabr.ru / Новости / регулярная сеть

Алгоритмы / [Из песочницы] Решение обратной задачи аналитической геометрии. Теория R-функций

Навеяно недавним постом о построении различных картинок с помощью кривой Гильберта. Будет немного теории и немного картинок. Немного теории Компьютерный век породил теорию R-функций — функций с «логическим зарядом», возникшую на стыке дискретного и непрерывного анализов, использующую аппарат булевой алгебры, который органически присущ и ЭВМ. На основе теории R-функций была решена обратная задача аналитической геометрии, появилась возможность строить в виде элементарной функции уравнение границы сложного объекта, и притом такое уравнение, которое обладало бы необходимыми дифференциальными свойствами. В. Л. Рвачев с помощью конструктивного аппарата теории R-функций разработал единый подход к проблеме построения координатных последовательностей для основных вариационных и проекционных методов. К настоящему времени метод R-функций был применен для решения большого числа задач электродинамики, механики деформируемого твердого тела, теории пластин и оболочек, гидродинамики и магнитной гидродинамики, теплофизики и др. Читать дальше → habrahabr.ru »

2011-12-30 15:32 habrahabr.ru / Новости / геометрия

Алгоритмы / [Из песочницы] Кучи. Часть 1. Биномиальная куча

Здравствуйте, Хабросообщество! На хабре есть описание множества интересных структур данных, таких как деревья отрезков, дуча и т.п. Если Вам интересны сложные структуры данных, то добро пожаловать под кат! Читать дальше → habrahabr.ru »

2011-12-25 09:55 habrahabr.ru / Новости / алгоритмы

Алгоритмы / [Из песочницы] Скрытые Марковские модели в распознавании речи

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

2011-12-20 14:48 habrahabr.ru / Новости / распознавание речи

Алгоритмы / [Из песочницы] Алгоритм определения движения через сравнение двух кадров

Здравствуйте, хабражители. Хочу с вами поделиться своими наработками по обработке изображений. В последнее время занимаюсь написанием домашнего сервера под «умный дом» и начал с видеонаблюдения. Задача оказалась не такой тривиальной. По поводу всего видеонаблюдения я напишу отдельно (если кому-то это интересно), а сейчас хотел бы затронуть тему «Алгоритм определения движения через сравнение двух кадров». Этот алгоритм необходим для включения (выключения) записи видео с видеокамер. Читать дальше → habrahabr.ru »

Алгоритмы / [Из песочницы] И снова про сортировки: выбираем лучший алгоритм

Недавно на хабре в осчередной подняли тему алгоритмов сортировки, а именно был хорошо описан метод Timsort. Он, имея сложность не более O(n log n), ускоряется в случае сортировки частично упорядоченных данных и имеет сложность O(n), если данные изначально отсортированны. Но это не единственный алгоритм с такими заявленными свойствами. Существует еще как минимум два более-менее известных метода с похожей сложностью — это Smoothsort и сортировка Шелла. Но то, что они имеют похожую сложность, совсем не значит, что все они работают одинаково быстро. Я попытался сравнить их реальную скорость работы на разных данных и посмотреть кто лучше справляется со своей задачей. Читать дальше → habrahabr.ru »

Алгоритмы / [Из песочницы] Японские кроссворды и алгоритмы их решения

Алгоритмы / [Из песочницы] Японские кроссворды и алгоритмы их решения

Недавно мне выпала следующая задача: написать программу, находящую все решения или их отсутствие для данного японского кроссворда размера NxM. Далее представлены 4 алгоритма решения японских кроссвордов. Читать дальше → habrahabr.ru »

2011-11-10 12:17 habrahabr.ru / Новости / рисуй по числам
Алгоритмы / [Из песочницы] Алгоритмы используемые при сжатии данных

Алгоритмы / [Из песочницы] Алгоритмы используемые при сжатии данных

Вступление Одна из самых главных проблем при работе с данными — это их размер. Нам всегда хочется, что бы уместилось как можно больше. Но иногда этого не сделать. Поэтому нам на помощь приходят различные архиваторы. Но как они сжимают данные? Я не буду писать о принципе их работы, лишь расскажу о нескольких алгоритмах сжатия, которые они используют. Читать дальше → habrahabr.ru »

2011-11-09 21:09 habrahabr.ru / Новости / BWT

Алгоритмы / [Из песочницы] Описание работы алгоритма Shift-OR для поиска подстроки в строке

1. Вместо вступления. Недавно пришлось разбираться в работе алгоритма Shift-Or, который позволяет найти подстроку в строке. По результатам этого разбора я и решил написать этот пост в надежде, что кому-то он поможет понять, как работает этот алгоритм, быстрее чем мне. Собственно, главное отличие алгоритма от, например, «наивного сравнения», заключается в том, что в его основе лежит логические операции, а именно логическое умножение (оно же AND, оно же конъюнкция). Читать дальше → habrahabr.ru »

2011-11-08 17:01 habrahabr.ru / Новости / bitap
Алгоритмы / [Из песочницы] Еще немного про P и NP

Алгоритмы / [Из песочницы] Еще немного про P и NP

Существует большая разница между задачами непростыми и задачами сложными. Задача может не иметь эффективных решений в самых худших случаях, но может оставаться легко решаемой для большинства случаев, или для случаев, возникающих на практике. Поэтому общепринятые определения сложности задач могут оказаться относительно бессмысленными в терминах реальной сложности, так как две задачи могут быть NP-полными, но одна при этом в большинстве случаев может решаться быстро, а другая нет. Как следствие, важную роль в теории сложности играет понятие «сложности в среднем» (здесь под «средним» понимается математическое ожидание времени решения). Чтобы проиллюстрировать центральную роль этого понятия, можно вообразить пять различных возможных миров (возможных — потому что еще не доказано, что они нереальны, и наш может оказаться любым из них) и посмотреть как условия в них будут влиять на информатику и жизнь вообще. Читать дальше → habrahabr.ru »

2011-11-08 13:37 habrahabr.ru / Новости / computer science

Алгоритмы / [Из песочницы] Среднеквадратичное приближение функций

На днях нужно было написать программу, вычисляющую среднеквадратичное приближение функции, заданной таблично, по степенному базису — методом наименьших квадратов. Сразу оговорюсь, что тригонометрический базис я не рассматривал и в этой статье его брать не буду. В конце статьи можно найти исходник программы на C#. Читать дальше → habrahabr.ru »

2011-10-27 13:44 habrahabr.ru / Новости / C

Алгоритмы / [Из песочницы] Двумерное дерево отрезков (с групповой модификацией элементов)

Предисловие и постановка задачи Думаю, многие читатели этого сайта слышали о такой полезной структуре, как дерево отрезков. А если нет, то о нем в интернете можно отыскать множество интересного материала (здесь, статьи на Хабре: раз и два, google, наконец). Здесь я разберу обобщение дерева отрезков на двумерный случай, причем (в отличие от этой статьи) рассмотрю реализацию дерева именно с поддержкой групповой модификации элементов. Читать дальше → habrahabr.ru »

2011-10-24 13:19 habrahabr.ru / Новости / структуры данных
Алгоритмы / [Из песочницы] Алкотестер от facebook

Алгоритмы / [Из песочницы] Алкотестер от facebook

Все знают социальную сеть facebook. Многие слышали о неких программистских задачках, опубликованных администрацией этой сети с целью поиска программистов в свою контору (хотя, судя по комментариям на форуме, эта практика давно приостановлена). Некоторые пытались эти задачки решать. Кое-кто даже добился в этом успеха. Но лишь единицы поделились своим опытом в этом. А опыт, надо сказать, весьма и весьма полезный. Собравшись с мыслями, я решил слегка исправить это упущение. Небольшой дисклеймер: В этой статье не будет красивого кода, следования принципам ООП, соблюдения принятых конвенций и прочих популярных ныне вещей. Красиво отрефакторить работающий код можно успеть всегда, задачей же, решаемой на протяжении статьи, является написание собственно работающего кода. Итак, алкотестер. Он же breathalyzer. Это задачка snack-сложности по классификации facebook, т.е. по их меркам она совсем не сложная. Что не помешало мне потратить на её решение добрых пару недель(отчасти из-за принципиального желания решить её на Ruby). Эту задачу я делал второй по-очереди, и именно она натолкнула меня на основную идею, побудившую меня прикладывать кучу усилий для поиска решения. А идея была в следующем — я не умею программировать… Читать дальше → habrahabr.ru »

2011-09-21 17:43 habrahabr.ru / Новости / алгоритмы

Алгоритмы / [Из песочницы] Построение цифрового фильтра с конечной импульсной характеристикой

Вступление издалека Недавно передо мной встала достаточно интересная задача, с которой я раньше никогда не сталкивался — борьба с шумом. Мы принимали сигнал с датчиков на аналогово-цифровой преобразователь (АЦП) А так как данная тема для меня была (хотя и сейчас есть кое-где) темным лесом, я пошел мучить вопросами гугл, мне показалось освящена эта тема не очень подробно и доступно, поэтому решил написать статью с примером разработки и готовым исходником. Читать дальше → habrahabr.ru »

2011-09-11 08:31 habrahabr.ru / Новости / c plus plus

Алгоритмы / [Из песочницы] Неблокируемая очередь сообщений для двух потоков

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

2011-09-06 20:06 habrahabr.ru / Новости / алгоритмы
Алгоритмы / [Из песочницы] Стереоизображение — это просто

Алгоритмы / [Из песочницы] Стереоизображение — это просто

Привет, %username%. В данной статье я хочу рассказать, как можно самостоятельно создать стереоизображение при помощи графического редактора и небольшой программы. Введение Для начала рассмотрим, как устроено стереоизображение и как на него смотреть. Читать дальше → habrahabr.ru »

2011-09-04 17:22 habrahabr.ru / Новости / алгоритмы

Алгоритмы / [Из песочницы] Хранения данных алгоритмом «Хранилище, структурированное журналом»

Как правило, если вы разрабатываете системы хранения данных — таких, как файловая система или база данных — одна из основных проблем как хранить данные на диске. При разработке вы должны позаботиться о ряде задач. Например о выделении места для объектов, которые вы собираетесь хранить. А также об индексации данных, для того чтобы вам не приходилось беспокоиться о том, что происходит, когда вы хотите расширить существующий объект (например, при добавление данных в файл), и о фрагментации, которая происходит, когда старые объекты будут удалены, а новые займут их место. Все это приводит к множеству сложностей, и решению частых баггов или это посто получается неэффективно. Читать дальше → habrahabr.ru »

2011-08-25 17:56 habrahabr.ru / Новости / файловая система

Алгоритмы / [Из песочницы] Основы фрактального сжатия изображений

Фракталы — удивительные математические объекты, подкупающие своей простотой и богатыми возможностями по построению объектов сложной природы при помощи всего лишь нескольких коэффициентов и простой итеративной схемы. Именно эти возможности и позволяют использовать их для сжатия изображений, особенно для фотографий природы и прочих сложных самоподобных изображений. В этой статье я постараюсь коротко дать ответ на простой вопрос: «Как же это делается?». Узнать, как это делается habrahabr.ru »

2011-08-19 13:08 habrahabr.ru / Новости / сжатие с потерями

  


Copyright © 2004-2012 WWWorld.ru
Добавить источник, cвязаться с нами.