Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

THE SPARSE USE OF TECHNOLOGY TO FIND A ROUTE OF THIS LENGTH IN THE GRAPH

Alasheeva E.A. 1 Rogova N.V. 1 Turkina N.N. 1
1 Federal State Budget Educational Institution of Higher Education «Povolzhskiy State University of Telecommunications and Informatics»
Often in mathematical modeling of any economic process is required to solve the transport task. For example, it is required to find the optimal route length, select all routes of a given length, find the minimum route. For these purposes it is most convenient to use methods of graph theory. When building mathematical models of real route the adjacency matrix of the simulated graph is obtained of very large size. Such a matrix is awkward to store in a computer memory. As these matrices are typically many zero elements, the effective use of technology sparse matrices in this case. In this work illustrates the use of sparse techniques for finding all paths of a given length in the graph and an algorithm is developed to solve this problem.There is a big variety of the tasks connected with ways and routes in the column, beginning from standard tasks on existence, recalculation and transfer and finishing with problems of search of the ways meeting certain requirements, etc. The theory of counts is widely applied in various applications of modern mathematics, in particular it is related to economy, the equipment, to management. However, in many cases the volume of computing work manages to be reduced considerably if to consider structural features of these matrixes. One of such structural features is the sparseness of a matrix. Thus, it is possible to draw an essential conclusion that the rarefied technologies are widely applicable in practice. These technologies allow to protect considerably computer memory, reducing time for performance of various algorithms modeling these or those processes.
sparse technology
sparse matrix
graph theory

«Матрица» как термин имеет много значений. В различных областях науки этот термин даже звучит по-разному, например: в математике – таблица чисел; в электронике – набор проводников и т.д. [2]. Покерные фишки так же имеют отношение к матрице. Поэтому матрицы можно встретить всюду, поэтому неважно программист ты, математик или простой обыватель, в любом случае нередко работаешь с матрицами.

Однако основное свое значение термин «матрица» имеет в математике. Матрица – математический объект, записанный в виде прямоугольной таблицы, представляющая собой совокупность строк и столбцов, на пересечение которых находятся элементы. Впервые понятие матрицы упоминалось еще в древнем Китае и называлась она «волшебным квадратом». И в основном применялись матрицы для решения линейных уравнений.

По количеству отличных от нуля элементов матрицу можно разделить на два вида: плотная матрица (или матрица общего вида) и разреженная [1,3]. И именно ее мы будем рассматривать в данной статье.

Часто под разреженными матрицами понимаются матрицы, которые содержат «много» нулевых элементов. Это несколько неясное определение. Совокупность схемы хранения данных в сочетании с соответствующим алгоритмом для выполнения необходимой операции - более корректное определение. Если предложенные схема хранения данных и алгоритм позволяют получить выигрыш по памяти и/или времени по сравнению с обычной схемой хранения (массив) и обычным алгоритмом, то тогда есть смысл говорить о разреженных матрица [1,3].

Решение многих прикладных задач, таких как методы теории графов, методы обработки изображений, численные методы решения дифференциальных уравнений методом конечных элементов, криптографии, логистики и т.п. связано с обработкой матриц большой размерности, имеющих малое число ненулевых элементов. Использование особых способов размещения в памяти разреженных матриц и разработка специальных алгоритмов работы с ними позволяет во многих случаях существенно снизить объем, используемых компьютерных ресурсов, и уменьшить время вычислений. Одним из рациональных способов хранения ненулевых элементов матрицы является массив из динамических списков. Эффективность работы с таким массивом определяется введением класса с продуманным набором методов и создание на этой основе действенных процедур работы с матрицами [2,4].

Простейший пример применения разреженных технологий – задача о поиске всех маршрутов заданной длины.

Рис.1

Задача:дан граф, изображенный на Рис. 1, и необходимо найти количество маршрутов длины 2.

Рис.2

Решение: матрица A, изображенная на Рис. 2 - это матрица смежности [1] данного графа. Тогда, количество маршрутов длины 2 можно определить с помощью матрицы (Рис. 3):

Рис.3

Данную задачу можно решить с помощью разреженных технологий, применяя алгоритм (в данной статье указана лишь первая его часть), указанный ниже:

На входе имеем матрицу A, заданную в РСФ [2].

IA: 1 2 4 6 7 9

JA: 4 1 5 2 4 5 1 3

AN: 1 1 1 1 1 1 1 1

А в результате получаем матрицу C =A2 в разреженном строчном формате:

IC: 1 2 5 7 9 11

JC: 5 1 3 4 1 5 1 3 2 4

AC: 1 1 1 1 1 2 1 1 1 2

Алгоритм по нахождению массивов JC и IC - символический этап:

Разобьём элементы массивов JA и AN следующим образом:

IA: 1 2 4 6 7 9

JA: 41 52 451 3

AN: 11 11 111 1

Введем массив переключателей Y и переключатель P. Число позиций Y равно 5. В начальный момент во все позиции Y засылаем нули. По умолчанию IC всегда начинается с 1.

IC: 1

P=1

Y: 0 0 0 0 0

Просматриваем 1 позицию JA

JA [1] =4 (Смотрим 4-ю строку матрицы A)

Просматриваем 6 позицию JA.

Y: 0 0 0 0 1 JC: 5

IC: 12

P=2

Просматриваем JA с 2 по 3 позиции.

JA [2] =1 (Смотрим 1-ю строку матрицы A)

Просматриваем 1 позицию JA.

Y: 0 0 0 2 1 JC: 54

JA [3] =5 (Смотрим 5-ю строку матрицы A)

Просматриваем 7 и 8 позиции JA.

Y: 2 0 2 2 1 JC: 5413

IC: 125

P=3

Просматриваем JA с 4 по 5 позиции.

JA [4] =2 (Смотрим 2-ю строку матрицы A)

Просматриваем 2 и 3 позиции JA.

Y: 3 0 2 2 3 JC: 541315

JA [5]=4(Смотрим 4-ю строку матрицы A)

Просматриваем 6 позицию JA.

Y: 3 0 2 2 3 JC: 5 4 1 3 1 5

IC: 1257

P=4

Просматриваем 6 позицию JA.

JA[6]=5(Смотрим 5-ю строку матрицы A)

Просматриваем 7 и 8 позиции JA.

Y: 4 0 4 2 3 JC: 5 4 1 3 1 5 1 3

IC: 12579

P=5

Просматриваем JA с 7 по 8 позиции.

JA[7]=1(Смотрим 1-ю строку матрицы A)

Просматриваем 1 позицию JA.

Y: 4 0 4 5 3 JC: 5 4 1 3 1 5 1 3 4

JA[8]=3(Смотрим 3-ю строку матрицы A)

Просматриваем 4 и 5 позиции JA.

Y: 4 5 4 5 3 JC: 5 4 1 3 1 5 1 3 4 2

IC: 1 2 5 7 9 11

Вторая часть алгоритма - численный этап: нахождение массива AN ненулевых элементов матрицы A.

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

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

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

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


[1] Матрица смежности - квадратная матрица, порядка n, где n – количество вершин графа, такая что M(G)=() и , где E – множество ребер исходного графа.

[2] РСФ (разреженный строчный формат) – это наиболее используемая форма хранения РМ (разреженной матрицы), где

1) AN– массив ненулевых элементов матрицы A;

2) JA– массив соответствующих столбцовых индексов ненулевых элементов матрицы A;

3) IA– массив переключателей, где i- я компонента указывает, с какой позиции массивов AN и JA начинается описание i- й строки матрицы A.