Научная статья на тему 'Блочные предобусловливатели класса ILU для задач фильтрации многокомпонентной смеси в пористой среде'

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

CC BY
203
33
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БЛОЧНОЕ ILU-РАЗЛОЖЕНИЕ / BLOCK ILU FACTORIZATION / РАЗРЕЖЕННЫЕ МАТРИЦЫ / SPARSE MATRICES / ИТЕРАЦИОННЫЙ АЛГОРИТМ / ITERATIVE ALGORITHM / ПРЕДОБУСЛОВЛИВАТЕЛЬ / PRECONDITIONER

Аннотация научной статьи по математике, автор научной работы — Богачев Кирилл Юрьевич, Жабицкий Яков Вячеславович

Рассмотрены предобусловливатели класса ILU (ILU(0), ILU(1), ILUT) для итерационных методов решения несимметричных линейных систем с разреженными матрицами, возникающими при аппроксимации систем дифференциальных уравнений в частных производных для задач фильтрации многокомпонентной смеси в пористой среде. Предложены блочный вариант хранения матриц и блочный вариант построения ILU-разложения, что позволяет значительно ускорить работу итерационных алгоритмов с ILU-предобусловливателем на рассматриваемом классе матриц. Результаты подтверждаются численными экспериментами с использованием различных матриц, полученных при дискретизации реальных задач на моделях нефтяных месторождений Западной Сибири.

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

Похожие темы научных работ по математике , автор научной работы — Богачев Кирилл Юрьевич, Жабицкий Яков Вячеславович

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

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

Все аналитические преобразования и вычисления на ЭВМ были произведены автором с помощью интегрированного математического пакета Марк [6].

СПИСОК ЛИТЕРАТУРЫ

1. Силаев Д.А, Якушина Г.И. Приближение ¿"-сплайнами гладких функций // Тр. Семинара им. И.Г. Петровского. Вып. 10. М.: Изд-во МГУ, 1984. 197-206.

2. Силаев Д.А. Дважды непрерывно дифференцируемые ¿-сплайны // Вестн. Моск. ун-та. Матем. Механ. 2007. № 2. 12-17.

3. Силаев Д.А., Коротаев Д.О. Решение краевых задач с помощью ¿-сплайна // Математика. Компьютер. Образование: Сб. науч. трудов. Т. 2 / Под ред. Г.Ю. Ризниченко. М.; Ижевск: НИЦ "Регулярная и хаотическая динамика", 2006. 85-104.

4. Силаев Д.А, Амилющенко А.В., Лукьянов А.И., Коротаев Д.О. Полулокальные сглаживающие сплайны класса C1 // Тр. Семинара им. И.Г. Петровского. Вып. 26. М.: Изд-во МГУ, 2007. 347-367.

5. Silaev D.A., Amiliyushenko A.V., Luk'janov A.I., Korotaev D.O. Semilocal smoothing spline of class C1 // J. Math. Sci. 2007. 143, N 4. 3401-3414.

6. Матросов А. Maple 6. Решение задач высшей математики и механики. СПб.: БХВ-Петербург, 2001.

Поступила в редакцию 10.12.2007

УДК 519.6 -

БЛОЧНЫЕ ПРЕДОБУСЛОВЛИВАТЕЛИ КЛАССА ILU ДЛЯ ЗАДАЧ ФИЛЬТРАЦИИ МНОГОКОМПОНЕНТНОЙ СМЕСИ В ПОРИСТОЙ СРЕДЕ

К. Ю. Богачев1, Я. В. Жабицкий2

Рассмотрены предобусловливатели класса ILU (ILU(0), ILU(1), ILUT) для итерационных методов решения несимметричных линейных систем с разреженными матрицами, возникающими при аппроксимации систем дифференциальных уравнений в частных производных для задач фильтрации многокомпонентной смеси в пористой среде. Предложены блочный вариант хранения матриц и блочный вариант построения ILU-разложения, что позволяет значительно ускорить работу итерационных алгоритмов с ILU-предобусловливателем на рассматриваемом классе матриц. Результаты подтверждаются численными экспериментами с использованием различных матриц, полученных при дискретизации реальных задач на моделях нефтяных месторождений Западной Сибири.

Ключевые слова: блочное ILU-разложение, разреженные матрицы, итерационный алгоритм, предобусловливатель.

ILU class preconditioners (ILU(0), ILU(1), ILUT) employed for iterative algorithms for asymmetric linear systems with sparse matrices are considered. Test matrices used in this study originate from discretization of systems of partial differential equations describing a multi-component fluid flow in porous media. New algorithms for block storage of matrices and block based ILU-factorization are described. This new integrated approach was tested on a wide range of matrices resulted from actual hydrodynamic simulations of oil fields in Western Siberia and had demonstrated significant reduction of computational time.

Key words: block ILU factorization, sparse matrices, iterative algorithm, preconditioner.

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

1 Богачев Кирилл Юрьевич — канд. физ.-мат. наук, доцент каф. вычислительной математики мех.-мат. ф-та МГУ, e-mail: bogachev@mech.math. msu. su.

2Жабицкий Яков Вячеславович — асп. каф. вычислительной математики мех.-мат. ф-та МГУ, e-mail: jjv@fromru.com.

исследовать блочный формат хранения разреженных матриц, в котором соответствующие элементы аппроксимации уравнений системы объединены в блоки. Например, при использовании метода конечных элементов это фактически означает перенумерацию неизвестных в системе таким образом, что сначала идут все компоненты векторов неизвестных, соответствующие первой базисной функции, затем — второй и т.д. Такой подход требует изменения формата хранения матрицы и переформулировки алгоритмов ¡ЬИ-разложения в терминах блоков.

Описание блочного варианта алгоритма построения ХШ-разложения и его модификаций для блочных разреженных матриц. В данной работе мы не будем подробно останавливаться на описании классического алгоритма построения ¡ЬИ-разложения для разреженных матриц, а также его модификаций — алгоритмов 1Ьи(1) и ¡ЬИТ(р, т), так как их описание можно найти, например, в [1-3]. Отметим лишь, что при проведении численных экспериментов использовался ¡КЛ-алгоритм.

Рассмотрим блочный вариант построения ¡ЬИ-разложения.

Пусть А — блочная матрица размерности п:

А =

(Ац А12 ... А1т\

А21 А22 . . . А2т \Ат1 Ат2 . . . Атт/

(1)

где А3 — матрицы размерности ! и !т = п. Матрицы Ь и и также имеют блочную структуру.

Требуется найти блочное ¡ЬИ-разложение, т.е. матрицы Ь и и блочного вида. Матрицы Ь и и хранятся на месте матрицы вида (1).

Элементы матриц Ь и и вычисляются по следующим формулам:

г—1 г—1 г—1

Ьгг = Агг — У ^ Ьз и3г, Ьji = А3г — У ] ЬjkUki, г < .]; и3 = Ь— 1(Аг3 — У ^ Ьгк ик^, г < ...

3 = 1 к=1 к=1

Рассмотрим алгоритм вычисления элементов матриц Ь и и. Для этого введем некоторые обозначения. Пусть

Р = {(г,.) | Агз =0; 1 < г,. < т},

Р' = {(г,.,к,1) | (Агз)к1 = 0; 1 < г. < т, 1 < к,1 < !},

т.е. Р — множество ненулевых элементов при блочном представлении разреженной матрицы, а Р' — при обычном представлении матрицы. Заметим, что при полном заполнении блоков матрицы мощности множеств соотносятся как 1Р'I = !2|Р |.

Блочный вариант 1К,1-алгоритма нахождения 1ЬЦ-разложения. Будем производить вычисления следующим образом:

для всех г = 2,...,т,

для всех к = 1,...,г — 1, таких, что (г, к) € Р,

Агк = А—к Агк; для всех . = к + 1, ...,т, таких, что (г,.) € Р,

Аз — Агз Агк Акз.

Так как при вычислениях необходимо находить обратную к диагональному блоку А матрицу, то описанный алгоритм применим в том случае, когда определители всех диагональных блоков исходной матрицы не равны нулю.

Блочный вариант 1К,1-алгоритма нахождения 1ЬП(1)-разложения. Этот алгоритм получается на основе алгоритма, использующегося для нахождения ¡ЬИ-разложения, расширением каждой строки шаблона ненулевых элементов для матриц Ь и и [1]: присоединяются элементы первого уровня заполнения. Стратегия добавления элементов в блочной версии абсолютно идентична скалярной версии алгоритма. Стоит лишь отметить, что так как при блочном подходе все элементы матрицы — это блоки, то при добавлении нового элемента в шаблон ненулевых элементов в матрицу добавляется целый блок.

Блочный вариант 1К,1-алгоритма нахождения 1ЬЦТ(р,т)-разложения. Этот алгоритм также получается на основе алгоритма, использующегося для нахождения ¡ЬИ-разложения, в результате расширения

шаблона ненулевых элементов для матриц L и U [1]. Стратегия добавления элементов заключается в том, что в качестве кандидатов необходимо рассматривать лишь те элементы, относительная норма которых превышает т, и при этом расширять каждую строку шаблона ненулевых элементов не более чем на p элементов. В скалярной версии алгоритма в качестве нормы используется модуль числа, стоящего на соответствующей позиции. В блочной же версии есть больше возможностей для маневра: в качестве нормы блока можно выбирать любую матричную норму.

Хранение матриц в формате MSR. В связи с сильной разреженностью структуры матрицы хранятся лишь ненулевые элементы. Оптимальным по объему требуемой памяти является формат MSR (Modified Sparse Row) [1].

Скалярный вариант. При использовании такого формата хранения матриц хранятся сначала все диагональные элементы (n штук), потом один пустой элемент (необходимость его наличия станет понятна позже), а затем все ненулевые внедиагональные элементы в том порядке, в каком они следуют в исходной матрице. Соответственно в таком случае каждая строка ненулевых элементов имеет свою длину, поэтому необходимо знать начальную и конечную позицию. Так как конец i-й строки является началом (i + 1)-й, то необходимо хранить n + 1 число. Они записываются в начало массива ненулевых элементов, а затем следуют номера столбцов элементов, стоящих на соответствующей позиции в массиве ненулевых элементов. Таким образом, пустой элемент в массиве ненулевых элементов нужен для того, чтобы начиная с (n + 2)-го элемента индексация обоих массивов совпадала.

Блочные варианты. Блочный вариант полностью аналогичен скалярному хранению матрицы в формате MSR, за исключением того факта, что в матрице ненулевых элементов вместо скалярных величин хранятся блоки размерности d. Каждый блок хранится как вектор, т.е. сначала лежит первая строка блока, за последним элементом первой строки — вторая и т.д. Таким образом обеспечивается непрерывность обращения к памяти внутри одного блока.

Следствием использования блочного варианта является значительное уменьшение объема памяти, необходимого для хранения матрицы, так как при таком подходе для каждого блока матрицы (т.е. для d2 величин) дополнительно хранится лишь одно число, соответствующее номеру столбца, в котором стоит блок (напомним, что в скалярной версии каждому элементу матрицы сопоставляется номер его столбца).

Численные эксперименты. Численные эксперименты с применением описанных выше алгоритмов ILU, ILU(1) и ILUT(p, т) проводились на матрицах, получаемых при дискретизации реальных задач течения жидкости на сетках большой размерности как регулярной, так и нерегулярной структуры. Задачи запускались на компьютере с процессором Intel 2xCore2, частота которого 2,66 ГГц, а размер оперативной памяти 8 Гб.

Постановка задачи. Рассматриваемые задачи сводятся к следующей системе уравнений [4]: (</>iVc) = div Y1 xc,i^i fk —(Vpi - JiVD)) + qc,p0 - pg = Pcog, Po ~ Pw = Pcow, c = l,...,nc,

9t i=o,w,g v ßl J (2)

Q i с i с — i /V — N — N — ü + R ü.

OwtilotOg-i, JVW — iVo — ßo, iVg — ng;oSo ,

где

nc — количество компонентов смеси;

Rg,o = Rg,o(po) — растворимость газа в нефтяной фазе;

Bl = Bi(pi) — коэффициент объемного расширения фазы l, l = o (oil), g (gas), w (water); Ф = 4>(Pw,Po,Pg,x,y,z) — пористость среды;

xc,l = xc,i(pw,po,pg, N) — молярная доля компонента c в фазе l; N = (Ni,..., Nnc) — вектор молярных плотностей; £l = Cl('Pl, N) — молярная плотность фазы l; k = k(pw,po,pg,x, y,z) — тензор абсолютной проницаемости; krl = krl(Sw,Sg) — относительная проницаемость фазы l; ßl = ßl(pi) — вязкость фазы l;

Yl = Pl9 — вертикальный градиент гидростатического давления в фазе l; g — гравитационная постоянная; D = D(x,y,z) — вектор глубины (сверху вниз); Pl = Pl(Pl) — массовая плотность фазы l;

Pcog = Pcog(Sg) — капиллярное давление в системе нефть-газ; Pcow = Pcow(Sw) — капиллярное давление в системе вода-нефть; qc = qc(pw,po,pg, N,t,x,y,z) — источник компонента c (скважина). Неизвестными в этой системе являются:

1) Nc = Nc(t,x,y, z) — молярная плотность компонента c (для модели черной нефти компонентами служат вода, нефть и газ);

2) Si = Si(t,x,y, z) — насыщенность фазы l;

3) pi = Pi(t, x, y, z) — давление в фазе l.

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

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

F(p, Ni,...,Nrac) = 0,

где p = (p%), Nc = (Nc) — векторы значений давления и молярных плотностей в блоках сетки. Затем для решения системы нелинейных уравнений F(U) =0, U = (p, N) используется стандартный метод Ньютона:

U m+1 _

dU

-i

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

Е (и т).

Здесь дЕ(ит)/ди — это отображение (матрица) Впс(к+.) ^ Кпс{к+.]) х ~^Пс(к+.) (одна переменная исключается с помощью уравнения (2)), К — число блоков сетки, .] — число скважин. На каждом шаге метода Ньютона необходимо решать систему с несимметричной матрицей дЕ(ит)/ди, т.е. задача сводится к решению системы линейных уравнений

Ах = г, (3)

матрица которой есть якобиан метода Ньютона. Матрицу А можно рассматривать как матрицу, элементами которой являются блоки размерности й = пс. Значение пс в свою очередь варьируется в зависимости от типа задачи от 2 до 21.

Для решения системы линейных уравнений (3) используется итерационный алгоритм BCGSTAB, в котором в качестве предобусловливателя берется одно из рассматриваемых разложений класса 1ЬИ. В качестве критерия окончания итерационного процесса выбрано условие падения относительной невязки на 6 порядков.

Для численных экспериментов взяты матрицы системы линейных уравнений (3), полученные при дискретизации реальных физических моделей (2) на разных шагах по времени.

Результаты. В таблице приведены некоторые характеристики матриц: й — размер блоков, г — количество блочных строк матрицы (соответственно количе-

_ ство скалярных строк равно г ■ (I), Ъ —

количество хранящихся блоков (количество скалярных величин равно Ь ■ й2), п — количество ненулевых

№ г d Ъ п т w ksk

1 9000 3 60380 430352 8 360 2,2-Ю3

2 31923 2 158611 634444 5 182 2,4-10°

3 31923 2 158611 634444 5 182 2,5-10°

4 38804 3 230054 1526530 8 536 1,5-104

5 102825 2 689595 2579928 48 1643 4,6-106

6 159174 3 819146 5239880 24 6332 1,2-1012

7 126648 3 827884 7450750 7 2461 1,4-104

8 141900 2 991880 3967422 47 1290 2,7-103

9 181602 3 1002582 6547768 19 1912 1,8-104

10 207373 2 1186036 4111448 7 755 1,7-Ю1

И 199497 2 1222461 4507842 12 1947 1,2-106

12 196472 3 1292806 11634998 7 2927 1,4-104

13 198164 3 1312246 11675938 44 2927 6,1-104

14 239901 2 1454483 5053844 18 1871 8,1-105

15 234135 3 1609689 13615219 7 2544 1,6-104

16 282543 2 1783625 7134500 7 879 5,9-103

17 282543 2 1791975 7165156 7 879 9,7-103

18 379873 2 1905447 5077020 7 3139 3,1-105

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

19 359017 3 2320305 14260347 7 3085 7,5-102

20 359017 3 2324285 14296969 30 3085 7,4-102

21 399634 3 2740012 19315408 69 7521 8,7-105

22 464624 3 2979682 20828280 7 2199 1,1-Ю5

23 464624 3 2980626 21307098 16 2199 8,2-105

24 1317828 2 8485552 28213300 65 6082 8,1-106

25 2307383 3 12218699 99472731 7 8172 7,6-104

26 2058210 3 14309350 71697212 26 12474 1,2-103

27 2431789 2 15818315 56348856 48 8958 1,3-106

скалярных элементов; т — максимальное количество ненулевых блоков в строке матрицы; и> — максимальное удаление ненулевого блока матрицы относительно диагонали; к3и — коэффициент кососимметричности, вычисленный по формуле

где || • ||оо — строчная норма матрицы.

Для проведения численных экспериментов матрицы, свойства которых приведены в таблице, были сохранены в трех форматах:

1) блочный MSR-формат;

2) скалярный MSR-формат: он ничем не отличается от блочного MSR- формата, кроме организации хранения матрицы;

3) скалярный MSR-формат с выбрасыванием всех нулевых элементов: он получен из скалярного MSR-формата в результате выбрасывания из шаблона матрицы всех нулевых элементов.

На рисунке приведено сравнение итерационных алгоритмов, в которых в качестве форматов хранения матриц используются обсуждаемые в статье способы, а в качестве предобусловливателя — ILU-, ILU(1)-, ILUT(5,10-3)-разложения. Сравнение проводилось по основным итерационным параметрам: по времени работы (вертикальная ось на рисунке, а, в, д, ж) и по количеству итераций (вертикальная ось на рисунке, б, г, е, з). Горизонтальная ось везде соответствует количеству блоков в матрице.

Сравним сначала результаты, полученные на матрицах блочного и скалярного формата (на рисунке, a-е отношение параметров скалярной реализации к соответствующим параметрам блочной реализации отмечено значком «♦»). На рисунке, б видно, что качественные характеристики итерационных алгоритмов с использованием блочной и скалярной реализации ILU-разложения практически не различаются: количество итераций на некоторых матрицах отличается лишь вследствие различий в накоплении вычислительной погрешности. Из рисунка, г,е следует, что использование ILU(1)- и ILUT-разложений уже дает качественные отличия: во многих случаях количество итераций уменьшилось вследствие того, что в блочной версии к матрице присоединяются не скалярные величины, а целые блоки (см. точки, соответствующие матрицам 5, 21, 23, 24, 27 для ILU(1) на рисунке, г и 1, 4, 7, 11, 27 для ILUT на рисунке, е: значения отношений числа итераций, соответствующие этим матрицам, принимают значения, меньшие 1). По времени работы алгоритмов (рисунок, а,в,д) очевидны преимущества блочной реализации, причем независимо от используемого для разложения матрицы алгоритма: при размере блока d = 2 время, затрачиваемое на решение системы линейных уравнений, уменьшается на 10-20 % (например, на матрицах 2, 3), а при размере блока d = 3 на некоторых матрицах время работы уменьшается более чем в 2 раза (например, на матрице 26)! Также на примере алгоритма с использованием ILUT-разложения видно, что при блочной организации хранения матрицы требуется меньший объем памяти (на матрицах 5, 9, 21, 23-26 результаты не были получены вследствие того, что алгоритму не хватало имеющейся памяти).

Теперь рассмотрим результаты, полученные на матрицах блочного и скалярного формата с выбрасыванием нулевых элементов (на рисунке, a-е отношение параметров скалярной реализации с выбрасыванием нулевых элементов к соответствующим параметрам блочной реализации отмечено значком « + »). Эти эксперименты показывают, что увеличение шаблона матрицы, производящееся в блочной версии, существенно влияет на качество ILU-разложения и как следствие на сходимость алгоритма. Для многих матриц в такой скалярной реализации итерационный алгоритм вообще не сошелся (например, для ILU-разложения это матрицы 6, 9, 21-23, 25).

На рисунке, ж,з сравниваются блочные версии ILU-, ILU(1)- и ILUT-разложений. Практически на всех матрицах вследствие увеличения шаблона ненулевых элементов алгоритмы с использованием ILU(1)- и ILUT-разложений сходятся за меньшее число итераций, нежели алгоритмы, использующие ILU-разложение (рисунок, з). Но время, необходимое для построения разложения и проведения каждой итерации при использовании ILU-алгоритма, оказывается существенно меньше, и поэтому по общему времени работы в среднем ILU-алгоритм оказывается наилучшим (рисунок, ж).

Выводы. Как показывают результаты численных экспериментов, обобщение ILU-разложения в терминах блоков расширяет класс матриц, для которых применим данный метод. Действительно, при обычном (скалярном) ILU-разложении в ходе разложения на диагонали матрицы не должно появляться нулей, а при блочном ILU-разложении требования к матрице снижаются: диагональные блоки должны иметь ненулевой определитель (например, матрицы 6, 9, 21-23, 25).

r

3 2,5 2

1,5 1

4

<

> л ♦ < ф4> -Г > л

+ О^'ф * О

+Ц-1| +

б*104 2-105 5-105 106 2-106 5-Ю6 1,5-Ш7 в

2,5 2 1,5 1

с

> ■л о.

ф о < > Ол 4

о -1— о

6-104 2-105 5*105 106 2-106 5-106 1,5-107 г)

3,5 3 2,5 2 1,5 I

4-

>

о

ф 1 е

♦ т

л

3 2,5 2 1,5 1

0,5

6-104 2-105 5*105 106 2-106 5-106 1,5-107 Ж

о 1 о о

> о т1 >т %% -И

- ¥ +- *

ОГ

3 2,5 2 1,5 1

н

ф тЫх .;;;

',} ф

1,5

0,5

3,5 3 2,5 2 1,5 1

0,5

6-104

1.5

I

6-104 2-105 5-105 106 2*106 5-106 1,5-107

г

* о 4 4 О + I5

о ф

6-Ю4 2-Ю5 5-105 106 2*106 5*106 1,5-107

е

о

4ч А

ф ¥

О о

2-105 5-Ю5 106 2-106 5*106 1,5-107 3

о о +

Ф о + < щ 1 ф О 4

► Ф о + О

6-104 2-105 5-105 106 2-106 5-106 !,5-107

6-104 2-105 5*105 106 2-106 5-106 1,5-107

Результаты численных экспериментов: а — отношение времени работы скалярного варианта (♦) и скалярного варианта с выбрасыванием нулевых элементов (+) ко времени работы блочного варианта 1Ьи-разложения; б — отношение количества итераций скалярного варианта (♦) и скалярного варианта с выбрасыванием нулевых элементов (+) к количеству итераций блочного варианта 1ЬИ-разложения; в,г — аналогичные графики для 1Ьи(1)-разложения; д,е — аналогичные графики для 1ЬиТ(5,10~3)-разложения; ж — отношение времени работы блочного варианта 1Ьи(1)-разложения (+) и блочного варианта 1ЬиТ(5,10~3)-разложения (♦) ко времени работы блочного варианта 1ЬИ-разложения; з — отношение количества итераций блочного варианта 1Ьи(1)-разложения (+) и блочного варианта !ЬиТ(5,10~3)-разложения (♦) к количеству итераций блочного варианта 1ЬИ-разложения

Блочный вариант хранения матриц и блочные варианты построения ¡ЬИ-разложения и его модификации позволяют значительно ускорить работу алгоритмов с ¡ЬИ-предобусловливателем. Такое ускорение достигается в основном по следующим причинам:

1) использование кэш-памяти. Вследствие того что везде в блочном алгоритме мы оперируем блочны-

ми матрицами размерности d, происходит меньшее число обращений к данным на медленных носителях (оперативной памяти и жесткому диску). В начале работы с новой строкой матрицы она вся попадает в кэш, и дальше идет работа уже только с кэш-памятью, а из-за использования MSR-формата хранения матрицы обеспечивается непрерывность обращения к памяти от первых до последних блоков матрицы (без "прыжков" через сегменты памяти);

2) увеличение ширины ленты матрицы. Так как блоки матрицы хранятся целиком (даже если там есть нули), то фактически обычный метод ILU-разложения немного видоизменяется и в чем-то походит на 1Ьи(р)-метод. Расширение ленты приводит к тому, что получаемое ILU-разложение точнее приближает исходную матрицу и, следовательно, улучшаются характеристики сходимости аглоритмов с использованием ILU-разложения;

3) уменьшение требований к объему памяти для хранения матрицы.

СПИСОК ЛИТЕРАТУРЫ

1. Saad Y. Iterative Methods for Sparse Linear Systems. Philadelphia: SIAM, 2003.

2. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. М.: Наука, 1987.

3. Богачев К.Ю. Практикум на ЭВМ. Методы решения линейных систем и нахождения собственных значений. М.: Изд-во ЦПИ при механико-математическом факультете МГУ, 1999.

4. Aziz K., Settari A. Petroleum Reservoir Simulation. London: Applied Science Publishers, 1979.

Поступила в редакцию 24.09.2008

УДК 519.7

ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ ФОРМУЛ В P2

А. Б. Угольников1

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

Ключевые слова: формулы, тождества, эквивалентные преобразования.

A new proof is given of the theorem originally proved by R. C. Lyndon that any equational class over a finite set of Boolean functions is finitely generated. The original proof of this theorem relied on E. L. Post's description of all closed classes of Boolean functions. J. Berman provided another proof of this theorem not based on description of Post's structure, but using some results from universal algebras.

Key words: formulas, identities, equivalent transformations.

Э. Л. Пост [1, 2] описал все замкнутые относительно операции суперпозиции классы булевых функций и показал, что каждый такой класс имеет конечный базис (см. также [3—6]). На основе этого описания Р. К. Линдон [7] для любой конечной системы A булевых функций доказал, что класс всех истинных тождеств над A имеет конечную полную систему тождеств. Дж. Берман [8] привел доказательство теоремы Линдона, не опирающееся на описание структуры Поста, но использующее при этом достаточные условия конечной базируемости тождеств конечных алгебр из работ [9, 10], а также ряд других результатов из универсальной алгебры (см. [11-14]). В данной работе приведено новое доказательство этой теоремы (также не опирающееся на описание структуры Поста).

1 Угольников Александр Борисович — доктор физ.-мат. наук, проф. каф. дискретной математики мех.-мат. ф-та МГУ, e-mail: ug0@yandex.ru.

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