ВУЗ:
Составители:
Рубрика:
5
1. Схемы хранения 
Рассмотрим   разреженную  матрицу   А. Ее ненулевые элементы , которых 
очень   мало в сравнении  с   числом   нулей , рассеяны   по всей   матрице, образуя  
то,  что  называют портретом матрицы   или шаблоном нулей-ненулей.  Все 
способы   хранения   разреженных матриц   заключаются   в  том,  чтобы  хранить  
только  ненулевые  элементы   матрицы   или,  может   быть ,  небольшое 
количество  нулей   вместе  с  ними. 
1.1 Схема  Кнута 
Ненулевые элементы   хранятся   в  компактной   форме  и  произвольном  
порядке  в  одномерном  массиве  AN.  Информация   о   положении  ненулевых 
элементов  может   храниться   двумя   дополнительными  параллельными 
одномерными  массивами  I  и  J:  здесь   для каждого  ненулевого  элемента 
содержатся   его  строчный и столбцовый индексы .  Для каждого  a
ij
  ≠ 0 в 
памяти  находится   тройка  (a
ij
, i, j).  
Чтобы  можно  было легко  отыскивать   элементы   произвольной   строки  или 
столбца  матрицы ,  необходимы   еще пара указателей   для каждой   тройки,  а 
также указатели входа  для строк  и  столбцов,  сообщающие  начало каждого 
строчного  или столбцового  списка. Пусть   NR – массив , хранящий   строчные 
указатели («следующий   ненулевой   элемент  той   же строки» ), а NC – массив  
столбцовых указателей  («следующий   ненулевой   элемент  того  же столбца» ). 
Пять   массивов  AN, I,  J, NR  и  NC  имеют  одинаковую   длину ,  и  их  
одноименные позиции  соответствуют друг  другу. Пусть   JR и JC – массивы , 
содержащие  указатели  входа  для  строк  и  столбцов,  расположенные  в 
соответствии  с  порядком  строк  и  столбцов  матрицы . 
 При использовании  данной   схемы   элемент   a
ij
 можно  найти, лишь входя   в 
список  i - й   строки  и  просматривая   его  до   тех   пор ,  пока  не  будет   найден 
столбцовый индекс  j , либо то  же самое  с  переменой   ролей   строки  и  столбца. 
Обратная   задача  имеет   очевидное  решение:  если задан  номер   позиции  k  
элемента  AN(k), то  его строчный и столбцовый индексы   –   I(k) и J(k).  
Схема Кнута  требует   пяти  ячеек   памяти  для каждого ненулевого элемента 
А  плюс к этому  указатели входа  для строк  и  столбцов. Вследствие   большой  
накладной   памяти  такая   схема весьма неэкономна. Достоинства  ее  в  том, что 
в  любом  месте  можно  включить   или  исключить   элемент,  и  можно 
эффективно  сканировать   строки  и  столбцы .  Схема  идеально  приспособлена 
для случаев, когда  А   строится   каким - то  алгоритмом, где  нельзя предсказать  
конечное  число и позиции  ненулевых элементов. 
1.2 Разреженный строчный формат  
Разреженный  строчный  формат   –   это  одна  из   наиболее  широко 
используемых схем   хранения   разреженных матриц .  Эта  схема  предъявляет 
минимальные требования   к   памяти  и  в  то  же  время   оказывается   очень  
удобной   для нескольких   важных операций   над  разреженными  матрицами: 
                                    5
      1. Схемы хранения
      Рассмотрим разреженную матрицу А. Ее ненулевые элементы, которых
очень мало в сравнении с числом нулей, рассеяны по всей матрице, образуя
то, что называют портретом матрицы или шаблоном нулей-ненулей. Все
способы хранения разреженных матриц заключаются в том, чтобы хранить
только ненулевые элементы матрицы или, может быть, небольшое
количество нулей вместе с ними.
      1.1 Схема Кнута
      Ненулевые элементы хранятся в компактной форме и произвольном
порядке в одномерном массиве AN. Информация о положении ненулевых
элементов может храниться двумя дополнительными параллельными
одномерными массивами I и J: здесь для каждого ненулевого элемента
содержатся его строчный и столбцовый индексы. Для каждого aij ≠ 0 в
памяти находится тройка (aij, i, j).
   Чтобы можно было легко отыскивать элементы произвольной строки или
столбца матрицы, необходимы еще пара указателей для каждой тройки, а
также указатели входа для строк и столбцов, сообщающие начало каждого
строчного или столбцового списка. Пусть NR – массив, хранящий строчные
указатели («следующий ненулевой элемент той же строки»), а NC – массив
столбцовых указателей («следующий ненулевой элемент того же столбца»).
Пять массивов AN, I, J, NR и NC имеют одинаковую длину, и их
одноименные позиции соответствуют друг другу. Пусть JR и JC – массивы,
содержащие указатели входа для строк и столбцов, расположенные в
соответствии с порядком строк и столбцов матрицы.
    При использовании данной схемы элемент aij можно найти, лишь входя в
список i-й строки и просматривая его до тех пор, пока не будет найден
столбцовый индекс j, либо то же самое с переменой ролей строки и столбца.
Обратная задача имеет очевидное решение: если задан номер позиции k
элемента AN(k), то его строчный и столбцовый индексы – I(k) и J(k).
   Схема Кнута требует пяти ячеек памяти для каждого ненулевого элемента
А плюс к этому указатели входа для строк и столбцов. Вследствие большой
накладной памяти такая схема весьма неэкономна. Достоинства ее в том, что
в любом месте можно включить или исключить элемент, и можно
эффективно сканировать строки и столбцы. Схема идеально приспособлена
для случаев, когда А строится каким-то алгоритмом, где нельзя предсказать
конечное число и позиции ненулевых элементов.
      1.2 Разреженный строчный формат
     Разреженный строчный формат – это одна из наиболее широко
используемых схем хранения разреженных матриц. Эта схема предъявляет
минимальные требования к памяти и в то же время оказывается очень
удобной для нескольких важных операций над разреженными матрицами:
Страницы
- « первая
 - ‹ предыдущая
 - …
 - 3
 - 4
 - 5
 - 6
 - 7
 - …
 - следующая ›
 - последняя »
 
