Научная статья на тему 'Реализация массовых операций на многомерных массивах данных'

Реализация массовых операций на многомерных массивах данных Текст научной статьи по специальности «Математика»

CC BY
119
32
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Банных Антон Геннадьевич

A problem of efficient implementation of mass updates on multidimensional data is studied. For a specific range of operations, a flexible solution is proposed. The solution is applicable if the data elements form an abelian group with some operator +. In that case, the proposed method allows effective sum calculation and addition of the same value to the rectangular areas.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Банных Антон Геннадьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Mass updates on multidimensional data

A problem of efficient implementation of mass updates on multidimensional data is studied. For a specific range of operations, a flexible solution is proposed. The solution is applicable if the data elements form an abelian group with some operator +. In that case, the proposed method allows effective sum calculation and addition of the same value to the rectangular areas.

Текст научной работы на тему «Реализация массовых операций на многомерных массивах данных»

ПРИЛОЖЕНИЕ Сентябрь 2012

Секция 5

МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ

УДК 004.021

РЕАЛИЗАЦИЯ МАССОВЫХ ОПЕРАЦИЙ НА МНОГОМЕРНЫХ МАССИВАХ ДАННЫХ

А. Г. Банных

Для эффективной работы с информацией разработаны разнообразные структуры данных. Одна из самых распространённых из них — дерево. Широко известны квадродеревья [1], кд-деревья [2], обобщения дерева отрезков [3] и дерева Фенвика [4]. Существующие структуры данных для работы с многомерными массивами данных позволяют эффективно получать статистическую информацию и изменять отдельные элементы.

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

Рассмотрим d-мерное пространство Zd. Пусть x, y G Zd; будем говорить, что x ^ у, если Xk ^ y к для всех k G {1,2,...,d}. Для любого с G Z будем обозначать с = = (с, с,... , c) G Zd; для любых х, у G Zd, x ^ у, положим Pxy = [xi..yi] х [x2..y2] х ... х

x[xd..ydj.

Рассмотрим абелеву группу (G, +) и отображение A : P1n ^ G, n G Z. Можно трактовать A как многомерный массив с множеством индексов Pi,n и множеством допустимых значений ячеек G.

Массовый запрос определим следующим образом: get (A, P) = A(x) .

xGP

Массовое обновление: update(A, P, v) = A' : P1n ^ G, где

A'(x) = { A(x)+ V x G P>

A (x) \ A(x), x GP.

Определим оператор Di следующим образом:

(DiA)(x) = A(xi,... ,Xi,... ,Xd) - A(xi,... ,Xi - 1,... ,Xd),

полагая A(x) = 0 при x G Pi,n. Заменим элементы исходного массива A(x) на линейные

d

многочлены от d переменных C(x)(z) = (D1D2 • • • DdA)(x) П (zi — xi).

i= 1

Утверждение 1. Для области вида P1,z массовый запрос сводится к массовому запросу на массиве C и подстановке переменных:

get(A, Pi,z) = get(C, Pi,z)(z).

Утверждение 2. Для области вида Pxn массовое обновление равносильно единичному обновлению в новом массиве:

d

update(A, Px,n, v) ^ update(C, Px,x, v П (z — Xj)).

i=1

Ослабленным назовем массовый запрос или обновление, для которого применимо утверждение 1 или 2 соответственно.

Утверждение 3. Произвольные массовые обновления и запросы выражаются не более чем через 2d ослабленных.

Утверждения 1-3 позволяют свести задачу с массовыми обновлениями к хорошо изученной задаче с единичными обновлениями. Последнюю можно решать с использованием любых существующих структур данных. Это свойство позволяет делать выбор оптимальной структуры данных для каждой задачи отдельно.

При использовании популярных структур данных асимптотическая оценка на выполнение массовых операций составляет O(log n). При малой размерности пространства эта оценка позволяет говорить об эффективности предлагаемого метода сведения задачи с массовыми обновлениями к задаче с единичными обновлениями. Свобода выбора структуры данных свидетельствует о гибкости метода.

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

ЛИТЕРАТУРА

1. Романовский И. В. Дискретный анализ. СПб.: Невский Диалект; БХВ-Петербург, 2008. 336 с.

2. Bentley J. L. Multidimensional binary search trees used for associative searching // Commun. ACM. 1975. V. 18. No. 9. P. 509-517.

3. Препарата Ф., Шеймос М. Вычислительная геометрия. Введение. М.: Мир, 1989. 478 с.

4. Fenwick P. M. A New Data Structure for Cumulative Frequency Tables // Software: Practice and Experience. 1994. V. 24. No. 3. P. 327-336.

5. http://is.ifmo.ru/papers/2011-bachelor-bannykh/ — Банных А. Г. Применение деревьев для реализации массовых операций на многомерных массивах данных [Электронный ресурс]. 2011.

УДК 518.517

АНАЛИЗ АЛГОРИТМОВ ИСПОЛНЯЕМЫХ ФАЙЛОВ ВНУТРИ ПРОГРАММНОЙ ЭВМ С ИЗМЕНЯЕМОЙ СПЕЦИФИКАЦИЕЙ

А. С. Бурлаков

Одним из этапов анализа программного обеспечения является низкоуровневый анализ алгоритмов, скомпилированных в исполняемый файл. Несмотря на то, что данная проблема является довольно популярной, для неё не существует тривиального решения, а имеется набор инструментов и методов [1, с. 3]. Одним из способов решения данной проблемы является использование дизассемблера, чего, однако, часто бывает недостаточно в силу того, что пользователя интересует, каким образом программа взаимодействует с внешними устройствами [2, с. 30-38].

i Надоели баннеры? Вы всегда можете отключить рекламу.