Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Зберігання розріджених матриць загального вигляду

Автор:   •  Июль 16, 2023  •  Лабораторная работа  •  821 Слов (4 Страниц)  •  92 Просмотры

Страница 1 из 4

ЛАБОРАТОРНА РОБОТА № 1

Тема: Зберігання розріджених матриць загального вигляду

Короткі теоретичні відомості

Традиційно вважається, що розріджені дані – це дані, які в основному мають нульові (або, як варіант, пусті) значення. Більш строго розрідженість даних визначається не кількістю даних, а відношенням занятих позицій в матриці (чи іншій структурі даних) до кількості всіх можливих позицій. Для обгрунтування використання розрідженої матриці для даних тої чи іншої степені розрідженості необхідно оцінити швидкість --- і складність коду, а також об`єм з пам`яті, яка при цьому економиться.

Зберігання розрідженої матриці повинно забезпечувати:

  • економію пам`яті;
  • швидкий доступ до нульових і ненульових елементів за їх індексом.

Існує добре визначений набір задач, для розв`язку яких рекомендується використовувати структури даних типу розріджених матриць, зокрема, до таких відносять наступні задачі:

  • чисельний розв’язок задач систематичної фізики;
  • для представлення графів (у вигляді розріджених матриць сумістності).

Найпростішим способом зберігання довільної розрідженої матриці є координатний формат: зберігаються ненульові елементи матриці та їх координати (номера рядків та стовпців).

Структура зберігання:

  • матриця зберігається у вигляді трьох одновимірних масивів;
  • всі ненульові елементи aij послідовно записуються в одновимірний масив А;
  • перший індекс (номер рядка) кожного ненульового елементу записується у одновимірний масив LI;
  • другий індекс (номер стовпця) кожного ненульового елементу записується в одновимірний масив LJ;

При такому способі упаковки для матриці n x m елементів з NZ ненульовими елементами необхідно (3*NZ) комірок пам`яті.

Практично багато математичних бібліотек на даний час використовують такий спосіб представлення розріджених матриць, але він вважається не найкращим як з точки зору об`єму даних, так і з точки зору швидкості доступу до них.

Приклад координатного формату зберігання матриць (Рис. 1.1).

Формат, який використовується  найчастіше, і який рекомендовано використовувати для зберігання розріджених даних матриці – це розріджений рядковий формат (Compessed Row Storage – CRS або Compessed Sparse Rows – CSR).


         j

  i

1

2

3

4

5

6

1

0

0

2

0

0

0

2

0

0

0

0

0

0

3

0

5

0

0

0

0

4

0

0

0

1

0

1

5

0

0

0

0

0

2

6

1

0

0

7

0

0

N

1

2

3

4

5

6

7

A

2

5

1

1

2

1

7

LI

1

3

4

4

5

6

6

LJ

3

2

4

6

6

1

4

Рисунок 1.1 – Приклад для координатного представлення розріджених матриць.

Структура зберігання:

  • матриця зберігається у вигляді трьох динамічних масивів;
  • всі ненульові елементи aij порядково, з першого до останього рядка, записуються в двимірний масив А;
  • другий індекс кожного ненульового елемента (номер стопців) записується в одновимірний масив LJ;
  • місце першого ненульового елемемнта в кожному рядку записується в одновимірний масив LI. Елементи  і-го рядка у позицях матриці А з номеру (LI[i]) по (LI[i+1]-1). Якщо в рядку і лише нульові елементи (пустий рядок), то значення LI[i]=LI[i+1]. Якщо матриця А складається з n рядків, то довжина масива LI буде (n+1);
  • останій елемент (14 та 10) в масиві LI – це кількість ненульових елементів +1.

Приклад представлений на рисунках 1.2 і 1.3.


         j

  i

1

2

3

4

5

1

a11

a12

0

0

0

2

a21

a22

0

a24

0

3

0

0

a33

a34

0

4

0

a42

a43

a44

a45

5

0

0

0

a54

a55

N

1

2

3

4

5

6

7

8

9

10

11

12

13

A

a11

a12

a21

a22

a24

a33

a34

a42

a43

a44

a45

a54

a55

LJ

1

2

1

2

4

3

4

2

3

4

5

4

5

LI

1

3

6

8

12

14

Рисунок 1.2 – Приклад 1 – Розріджений рядковий формат.

         j

  i

1

2

3

4

5

6

1

0

2

0

1

0

0

2

0

0

0

0

0

0

3

0

5

0

0

0

1

4

0

0

0

0

9

1

5

0

0

0

0

0

0

6

0

8

0

4

0

3

N

1

2

3

4

5

6

7

8

9

A

2

1

5

1

9

1

8

4

3

LJ

2

4

2

6

5

6

2

4

6

LI

1

3

3

5

7

7

10

Рисунок 1.3 – Приклад 2 – Розріджений рядковий формат.

...

Скачать:   txt (9.9 Kb)   pdf (67.8 Kb)   docx (206.6 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club