English version

RSS

Алгоритмы

Автор: NeoNeuro
Перевод: Фамилия Имя Отчество
Источник: www.neoneuro.com
Материал предоставил: Фамилия Имя Отчество
Аннотация: Кто управляет нашей жизнью? «Живые Пиксели» показывают, как из тетрадного листа в клетку и простого логического правила рождается сложный мир, имеющий интересные сходства с реальностью. Здесь Вы увидите Большой Взрыв Вселенной, закон перехода количества в качество, размножение с сохранением наследственной информации, эволюцию видов и многое другое. Бесплатная программа познакомит Вас с готовыми примерами и предожит создать свои собственные в удобном редакторе. «Живые Пиксели» - это математическая абстракция, клеточный автомат, подобный игре «Жизнь» Конвея.

Ключевые слова: живые пиксели; neoneuro; клеточный автомат; игра жизнь
Автор: Перцовский Александр Константинович
Перевод:
Источник: «RSDN Magazine», www.rsdn.ru
Материал предоставил: Перцовский Александр Константинович
Аннотация: В статье рассматриваются вопросы декомпозиции NP полной задачи маршрутизации (VRP) на ряд подзадач меньшей размерности c целью уменьшения времени работы алгоритма решения и возможности распараллеливания процесса решения..

Ключевые слова: кластеризация; задача маршрутизации; ограничения по расписанию
Автор: Перцовский Александр Константинович
Перевод:
Источник: «RSDN Magazine», www.rsdn.ru
Материал предоставил: Перцовский Александр Константинович
Аннотация: Крактое (не более 600 символов, не включая пробелов) описание статьи. Аннотация не должна повторять первые абзацы статьи. Аннотация будет выводиться в различных списках статей, поэтому ее не стоит игнорировать.

Ключевые слова: шаблон форматирования; инструкция; RSDN Authoring Pack; RSDN Article 2.dot

Графика

Автор: Maxim Shemanarev
Источник: RSDN Magazine #3-2005
Аннотация: Рассказ об инженерном решении, комбинирующем несколько способов оценки ошибки при аппроксимации кривой Безье кусочно­линейным способом.

Ключевые слова: Bezier
Автор: Василий Терешков
Источник: RSDN Magazine #4-2003
Аннотация: В статье рассматриваются принципы построения полигональных изображений на примере одного из алгоритмов.

Ключевые слова: polygon
Автор: Арсланов Дмитрий Мерзагитович
Аннотация: Решение современных задач в различных областях не обходится без компьютерного моделирования. Как правило, для представления и обработки информации в компьютерном моделировании используется трехмерная графика. Результаты моделирования зависят от типов используемых трехмерных моделей и технологий разработки. В современной трехмерной компьютерной графике в основном используются триангуляционные модели. Однако воксельные модели более эффективны при сложной обработке данных. На практике применение воксельных моделей ограничено возможностями компьютеров. Но сегодня работать с воксельными моделями становится возможным благодаря вычислениям общего назначения на графическом процессоре (GPGPU). В результате международное внимание обращается к вокселям. К настоящему времени разработано большое число методов воксельной графики, таких как марширующие кубы, бросание лучей, текстурирование сечений объема и т.д. Однако для решения практических задач существующие методы необходимо улучшить согласно предметной области задачи. В статье описан метод интерактивной воксельной растеризации и обработки для горнодобывающей отрасли, который основан на подходе трассировки луча в пиксельном шейдере. Он может быть успешно применен для решения широкого круга задач. Общее описание метода в статье позволяет выбрать ту реализацию, которая наиболее эффективна при решении практической задачи. Сегодня большое число программных решений работают под операционными системами Windows. Поэтому контекст задачи обычно связан с этими системами. Наиболее эффективными технологиями разработки для Windows на сегодняшний день являются .Net Framework и DirectX. По этой причине C# и HLSL использованы для реализации метода.

Ключевые слова: компьютерное моделирование; трехмерная графика; воксели; метод бросания лучей; шейдер; программируемый графический конвейер; растеризация; воксельная обработка; .Net Framework; C#; DirectX; Direct3D; DirectCompute; HLSL; GPGPU; SlimDX

Кодирование

Автор: Холодилов Сергей Александрович
Аннотация: Описание кода Грея и связанных с ним алогритмов; от постановки задачи до суммирования представленных в коде Грея чисел.

Ключевые слова: код Греяt
Автор: Титов Анатолий Анатольевич
Аннотация: В работе предлагается реализация семейства компрессоров на базе алгоритма РРМ в виде настраиваемого набора шаблонных классов языка С++. С помощью этого набора можно сконструировать РРМ кодеки порядков с 1-го по 10-й включительно, как имеющих ограничения по размеру запрашиваемой памяти, так и без них. В работе исследуются различные известные методы вычисления вероятности кода ухода, включая новый оригинальный метод предложенный автором. Для повышения степени компрессии используются различные методы, такие как: LOE, исключение символов, увеличение веса при инициализации и другие, а также предусмотрена возможность подключения дополнительных методов улучшения сжатия.

Ключевые слова: компрессия без потерь; кодек; предсказание по частичному совпадению; PPM; код ухода; PPMtc; контекстная модель ограниченного порядка; C++;
Автор: Титов Анатолий Анатольевич
Аннотация: В работе исследуются РРМ кодеки, в которых отсутствуют один или несколько контекстных порядков. Поскольку контекстная модель таких кодеков содержит пропуски, то их можно условно назвать "неполными", в отличие от "полных" PPM кодеков, у которых присутствуют все контекстные порядки до установленного максимального порядка. В работе сравниваются между собой эти типы кодеков, и ищутся ответы на вопросы: можно ли используя пропуски некоторых порядков улучшить компрессию, сократить используемую память и уменьшить время работы РРМ кодека.

Ключевые слова: компрессия без потерь; кодек; предсказание по частичному совпадению; PPM; PPMtc; C++;

Конечные автоматы

Автор: Alexander Nikolayenko
Источник: RSDN Magazine #3-2005
Аннотация: Машина с конечным числом состояний (FSM, Finite State Machine, или как принято называть по-русски, конечный автомат, КА) представляет собой одну из наиболее полезных концепций в арсенале разработчика. Существует несколько методик реализации конечных автоматов, но, забегая вперед, хочется сказать, что достойный результат дают только те из них, которые связаны с генерацией кода. Возможности, предоставляемые последней версией стандарта C++ и реализованные в последних версиях компиляторов, позволяют генерировать код во время компиляции основного кода проекта. Это дает возможность избежать использования отдельных утилит или расширений IDE и, оставаясь в рамках единого языка (C++), создавать приемлемые для практического использования реализации КА, которые при этом легко поддерживать и развивать.

Ключевые слова: FSM,C++,STD,STT,SFSM,OCP
Автор: Сергей Сацкий
Источник: RSDN Magazine #1-2003
Аннотация: С помощью конечных автоматов можно успешно решать обширный класс задач. Это обстоятельство подмечено давно, поэтому в литературе по проектированию программного обеспечения часто приводятся рассуждения на тему примененения автоматов. Однако в процессе моделирования автомат рассамтривается с более высокого уровня, нежели это делается в момент его реализации с использованием конкретного языка программирования.

Ключевые слова: Finite State Machine, конечные автоматы, SFiniteStateMachine
Автор: Николай Меркин
Аннотация: Распространенная задача - проверить строку на правильность, причем сделать это быстро. Для этого можно воспользоваться таким инструментом, как конечный автомат. На вход его поступает строка, в результате автомат переходит в состояние "правильно" / "неправильно".

Ключевые слова:
Авторы: Я. М. Малаховски
А. А. Шалыто
Источник: RSDN Magazine #3-2009
Аннотация: В работе рассматриваются вопросы реализации на функциональных языках программирования событийных структурных конечных автоматов, используемых в автоматном программировании. На примерах показаны решения, имеющие преимущества перед реализациями на императивных языках программирования.

Ключевые слова: конечные автоматы, автоматное программирование, функциональное программирование, Haskell
Автор: Сергей Холодилов
Источник: RSDN Magazine #2-2007
Аннотация: В статье описан маленький, но всё равно интересный кусочек теории вычислений. Предназначение статьи – послужить наживкой, заглотив которую, читатели уже сами продолжат изучение этой теории.

Ключевые слова:
Автор: Андрей Боровский
Источник: RSDN Magazine #1
Аннотация: В этой статье речь пойдет о том, как анализировать информацию, переданную в виде последовательности символов (строку) и выделять из нее значимые элементы. Мы рассмотрим сравнительно простые ситуации, с которыми программистам приходится сталкиваться при решении самых разных задач: разбор выражений с ...

Ключевые слова:
Автор: Alexander Babaev
Источник: RSDN Magazine #1-2005
Аннотация: В статье предлагается Pure Java API для произвольной обработки строк. При этом показывается, как пользоваться такого рода библиотекой на конкретном примере разработанной автором библиотеки. Также сравнивается подход автора с классическим.

Ключевые слова: java

Математика

Автор: Максим М. Гумеров
Источник: RSDN Magazine #1-2003
Аннотация: Вероятно, задача о том, как максимально быстро возвести действительное положительное число в произвольную действительную степень, решалась примерно столь же часто, как и вставала, - а вставала, полагаю, не раз. И все же не так давно я с ужасом обнаружил, что RTL из состава Borland Delphi последних версий (как Delphi 6, так и Delphi 7) подходит к решению не более профессионально, чем и прилежный пятиклассник, впервые столкнувшийся с такой проблемой.

Ключевые слова: pow
Автор: Герасимов Василий Александрович
Источник: RSDN Magazine #3-2010
Аннотация: Статья посвящена методам генерации случайных сочетаний. Рассматривается два таких метода – генерация сочетания методом случайной перестановки и генерация сочетания по его порядковому номеру. Приводится библиотека функций на языке C++, реализующих описанные методы. Сравнивается производительность разработанных методов. Также рассмотрено интересное следствие работы алгоритма генерации сочетания по его порядковому номеру - компактное хранение последовательностей элементов.

Ключевые слова: комбинаторика; сочетание; генерация сочетаний; случайное сочетание; порядковый номер сочетания; биномиальный коэффициент; число сочетаний; перестановка; алгоритм;
Автор: Дональд Е. Кнут
Перевод: Андрей В. Макуха
Источник: Communications of the ACM
Материал предоставил: RSDN Magazine #4-2007
Аннотация: Каждый день приносит новые доказательства тому, что понятия информатики применимы к сферам жизни, имеющим очень отдаленное или не имеющим никакого отношения к компьютерам. Цель данного обозрения – продемонстрировать то, как важные свойства популярных песен наилучшим образом понимаемы в терминах современной теории вычислительной сложности.

Ключевые слова: сложность, сложность по памяти, песни, Дональд Кнут
Автор: Сергей Холодилов
Источник: RSDN Magazine #4-2007
Аннотация: Если яблоко поровну разделить на троих, каждому достанется треть. Так в нашу жизнь входят дроби, примерно с теми же целями входят они и в программирование.. Но реализация дробей в виде типов данных float/double ведёт себя не совсем "математично". В чём причина отличий, как минимизировать их влияние на результат вычислений, как же всё это всё-таки реализовано и почему запятая плавает — читайте в статье.

Ключевые слова: float,double
Автор: Бахтин Николай Иванович
Источник: RSDN Magazine #3-2010
Аннотация: Статья посвящена проблеме погрешности вычислений с вещественными числами. В статье приведены некоторые примеры чувствительного к погрешностям кода и рассмотрены способы их решения. Показана актуальность этой проблемы для тех, кто занимается созданием программ осуществляющих математические расчеты.

Ключевые слова: , погрешность вычислений; вещественные числа; FPU; устойчивость алгоритма

Поиск

Автор: Андрей Боровский
Источник: RSDN Magazine #0
Аннотация: Наверное, каждому, кто много работает за компьютером, знакома подобная ситуация: перелистывая страницы книги в поисках нужного фрагмента, невольно начинаешь думать о том, как вызвать команду «поиск по всему тексту». Действительно, современные программы обработки текста приучили нас к такой удобной в...

Ключевые слова:
Автор: Вадим Станкевич
Источник: RSDN Magazine #3-2009
Аннотация: Данная статья рассказывает о добавления возможностей полнотекстового поиска в Windows-приложения. Рассматриваются возможности, достоинства и недостатки различных поисковых движков, а также приводится пример реализации полнотекстового поиска с использованием поискового движка SearchInform SDK.

Ключевые слова: МЛ Следопыт SDK, Solarix SDK, SearchInform SDK

Регулярные выражения

Автор: Осман Бинеев
Аннотация: Демонстрационная программа - 405 KB Исходные тексты - 42 KB REB.sourceforge.net

Ключевые слова:
Автор: Михаил Купаев
Источник: «Технология Клиент-Сервер»
Аннотация: Пример RegExpTest.zip - 2 KB Пример RegexNetTest.zip - 11 KB

Ключевые слова:

Сортировка

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

Ключевые слова:

Структуры данных

Источник: «Технология Клиент-Сервер»
Аннотация: AVL-деревья, сортировка данных в массиве, хеширование.

Ключевые слова:
Автор: Роман Акопов
Источник: RSDN Magazine #5-2003
Аннотация: Статья рассказывает об алгоритмах работы с двоичными деревьями поиска и о красно-черных деревьях (КЧД). Производится сравнение скоростных характеристик различных операций для деревьев и массивов. В прилагаемом С++-коде приводится реализация бинарных деревьев поиска и красно-черных деревьев.

Ключевые слова: Binary Search Tree, BST, Red-Black Tree, RB-Tree, КЧД, Двоичные деревья поиска, Красно-черные деревья
Автор: Сергей Виноградов
Аннотация: Многим структурам и объектам свойственна иерархичность. За примерами далеко ходить не надо. Почти все объекты состоят из частей, которые, в свою очередь, могут состоять из более мелких деталей. Общественные структуры, как правило, отражают жесткую иерархическую модель подчинения, сходящуюся к одн...

Ключевые слова:
Автор: Роман Акопов
Аннотация: Эта статья объясняет как BSP деревья (binary space partition, двоичное деление пространства) могут быть использованы частью алгоритмов прорисовки для удаления односторонних поверхностей, частичной z-сортировки, удаления невидимых частей.

Ключевые слова:
Автор: Чуриков Константин
Источник: RSDN Magazine #5-2004
Аннотация: Статья содержит описание реализации линейного односвязного списка на базе массивов. Пример реализации приведен с использованием Visual Basic 6.0

Ключевые слова: linked list, связанный список, структуры данных, VB 6.0
Автор: Сергей Смирнов (Serginio1)
Источник: RSDN Magazine #6-2003
Аннотация: Пример реализации двухуровневого массива с помощью нового средства С# - generics. Сравнение производительности различных реализаций сортированных списков.

Ключевые слова:
Автор: Stanky
Источник: RSDN Magazine #5-2004
Аннотация: В статье описываются принципы построения и реализация динамического двумерного массива.

Ключевые слова: array
Автор: Лапшин Владимир Анатольевич
Аннотация: В статье рассматриваются различные аспекты применения абстрактных типов данных (АТД) в программировании. Осознание концепции АТД в середине 70-х годов прошлого века повлекло за собой целый ряд работ в области теории программирования. Абстрактные типы данных на текущий момент являются одним наиболее популярных механизмов абстракции, используемым разработчиками при написании программного кода. В работе рассматриваются также основы математической теории, описывающей абстрактные типы данных как алгебраические системы. На основе сигнатур абстрактных типов данных строятся т.н. инициальные алгебры – синтаксические представления описываемых посредством АТД сущностей. Инициальные алгебры могут использоваться для верификации корректности программного кода.

Ключевые слова: абстрактные типы данных; АТД; алгебраические спецификации; теория программирования