Главная » Просмотр файлов » 6CAD-CAE-22 Хранение матриц

6CAD-CAE-22 Хранение матриц (1014141), страница 8

Файл №1014141 6CAD-CAE-22 Хранение матриц (Материалы к лекциям) 8 страница6CAD-CAE-22 Хранение матриц (1014141) страница 82017-06-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

KS=XN(1)=1;

K=1: NZ(KS=1) =13  KS=KS+1=2 ;

K=2: NZ(KS=2) =4 3 ;

a31= 0;

a41=? K1=XL(1)=1; K2=XL(2) -1=2;

KS=XN(1)=1;

K=1: NZ(KS=1)=14 KS=KS+1=2;

K=2: NZ(KS=2)=4=4;

a41=LN(2);

a32-? K1=XL(2)=3; K2=XL(3) -1=4-1=3;

KS=XN(2)=2;

NZ(KS=2)=43;

a42=0;

Сравнение обычной и компактной схем хранения

Число уравнений

Накладная память

Обычная схема

Компактная схема

936

14806

6903

1440

20487

10536

В типичных случаях для задач такого и большего порядка накладная память сокращается по меньшей мере на 50% в сравнении с обычной схемой.

10.3. Представление целочисленных и булевых разреженных матриц

Хранение целочисленных списков.

Целые списки заслуживают специального рассмотрения из-за их важности для технологии разреженных матриц. Элементы списка принадлежат множеству (1, 2, ..., n); некоторые из них могут повторяться, хотя случай, когда все они различны, пред­ставляет для нас особый интерес. Пусть т — число элементов списка; п называется размером списка. Будем говорить, что список разреженный, если т < п. Целый список можно хранить в компактной форме, пользуясь массивом (скажем, JA) длины, не меньшей т.

Так, для списка 3, 11, 7, 4:

позиция

1

2

3

4

5

6

JA

3

11

7

4

M

4


Кроме массива JA нужно еще хранить (посредством перемен­ной М) число т элементов списка; для нашего примера т — 4. Пустой список опознается по нулевому значению М. Чтобы вклю­чить в список новый элемент, достаточно увеличить М на единицу и затем записать новый элемент в позицию с номером М. Чтобы исключить элемент из позиции i, мы просто переносим в эту позицию последний элемент и уменьшаем М на единицу. Разу­меется, если требуется сохранять упорядоченность целых чисел, то включение или исключение элемента в какой-то позиции вы­зовет сдвиг всех элементов, находящихся справа от нее.

Целые списки с повторениями или без них могут храниться как связные линейные или кольцевые списки посредством мас­сива JA длины, не меньшей т, и дополнительного массива NEXT. Этот тип хранения также является ком­пактным и потому вполне подходит для разреженных списков, Для целых списков с различными элементами имеется важная альтернатива. Такой список может храниться одним массивом (скажем, JA) длины п или большей в форме связного списка, линейного или кольцевого. Если в приведенном выше примере использовать кольцевой связный список, а несущественные для нас позиции пометить символом х, то получим

позиция

1

2

3

4

5

6

7

8

9

10

11

12

JA

11

3

4

7

IP

3


Число, хранимое в каждой позиции JA, дает одновременно зна­чение элемента списка и адрес следующего элемента; тем самым дополнительный массив NEXT становится излишним. Для входа в цепь необходим еще указатель IP, задающий позицию первого числа в списке. Этот тип хранения называют расширенным, в противоположность компактному, потому что для него нужен массив длины по крайней мере п. В любом месте списка несложно включить или исключить элемент, не меняя порядка, в котором хранятся прочие элементы. Предположим, например, что i, k — два последовательных элемента списка, находящегося в массиве JA, так что JA (i) = k. Пусть теперь требуется вставить j между i и k. Тогда мы просто полагаем

JA (j) ← JA (i); JA (i) ← j

Если, наоборот, хотим исключить k, то полагаем

JA (i)← JA (k)

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

позиция

1

2

3

4

5

6

7

8

9

JA

5

IP

5


Пустой список можно опознать по нулевому или отрицательному значению указателя входа. Одно из главных применений расширенной схемы — это хра­нение нескольких непересекающихся списков, т. е. списков, не имеющих общих элементов. В большинстве случаев все списки имеют одинаковый размах, но чтобы наше рассуждение стало более общим, будем считать п максимальным из размеров отдельных списков. Все списки можно хранить в одном и том же массиве (скажем, JA), длины п или большей. Необходим еще массив указателей входа (скажем, IP). Достаточно проиллюстрировать предлагаемый способ хранения примером. Рассмотрим три не­пересекающихся целых списка:

1-й список: 2, 8, 6, 3; 2-й список: 5, 4, 9; 3-й список: 7, 1, 10.

Они могут быть размещены как кольцевые связные списки в одном массиве длины 10:

позиция

1

2

3

4

5

6

7

8

9

10

JA

10

8

2

9

4

3

1

6

5

7

IP

2

5

7


При использовании этого типа хранения легко выполняются такие операции, как разбиение списка на два или конкатенация двух списков с образованием одного нового. В качестве упраж­нения рекомендуется написать соответствующие процедуры самостоятельно.

Представление целочисленных матриц в ЗУ ЭВМ.

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

P int (log2 N + 0,5) (2)

где int - процедура выделения целой части. Если известно, что все элементы заданной целочисленной матрицы А не превосходят некоторого числа Nmax

ai j < Nmax ,

то для хранения каждого из них достаточно Рmax двоичных разрядов. Значение Рmax определяется по (2) при N=Nmax. Обычно Рmax в несколько раз меньше длины S разрядной сетки ЭВМ.

Пусть для определенности

Тогда возможно в k раз уменьшить объем памяти, необходимой для хранения матрицы А. Для этого достаточно в каждое машинное слово длиной S записывать k элементов исходной матрицы, отводя каждому из них Рmax разрядов.

Для повышения эффективности хранения целочисленных матриц, отдельные строки которых замыкаются значительным числом нулевых элементов, можно использовать стандартные методы записи редко заполненных матриц. Однако вследствие особенности их структуры предпочтительнее другой метод, когда матрицы записываются в виде линейной последовательности строк при исключении нулевых концевых элементов. Записи каждой строки предшествует целое число, равное числу ее ненулевых элементов. Такой метод называется представлением матрицы в виде записей переменной длины. При таком представлении матриц затрудняется обращение к произвольным элементам: каждый раз для отыскания элемента по значениям индексов необходим просмотр цепочки длин предыдущих строк. Поэтому эффективная работа с такими матрицами предполагает либо последовательный доступ к их элементам, либо построение путем однократного просмотра адресной функции вида

где lk - длина k -ой строки 1 j l i

Пример: Пусть дана целочисленная матрица:

При описанном методе хранения она будет представлена последовательностью:

В=41352772431652623374,

где подчеркнуты элементы, задающие длины строк.

При таком представлении число хранимых элементов матрицы определяется по формуле:

где n - число строк в матрице.

Способы представления булевых матриц

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

Булевыми называются целочисленные матрицы, элементы которых могут принимать только два значения: 0 и 1. Каждому элементу матрицы соответствует некоторое логическое высказывание, причем единичному значению элемента соответствует утверждение истинности этого высказывания, а нулевому - утверждение его ложности. Таким образом, элементы булевых матриц - это логические переменные.

Характеристики

Тип файла
Документ
Размер
362,83 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее