Алгоритм приведения разреженной матрицы к треугольной форме с окаймлением в рамках макромоделирования

Алгоритм приведения разреженной матрицы к треугольной форме с окаймлением в рамках макромоделирования

Баскаков А.Е. ИТАС, МГИЭМ

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

Наиболее трудоёмкой задачей в процессе построения макромодели является обращение полиномиальной матрицы с сохранением аналитической зависимости от параметра р, трактуемого как оператор Лапласа. Такая операция производится за счёт приведения обращаемой матрицы к диагональному виду, что требует решения полной задачи о собственных значениях и собственных векторах. В приложениях данная матрица зачастую является разреженной и может имеет порядок 106 и выше. Применение современных итерационных методов решения полной задачи о собственных значениях матриц общего вида в данном случае является не эффективным, так как требует слишком больших вычислительных затрат. Следует так же отметить, что с ростом размера задачи падает точность её решения в связи с накапливаемой погрешностью. Поэтому для макромоделирования больших

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

Предобработка представляет собой процесс приведения матрицы к треугольной форме с окаймлением за счёт перестановки её строк и столбцов. При этом к алгоритму перестановки предъявляется ряд требований, целью которых является обеспечение возможности быстрого проведения последующих шагов макромоделирования. Возникающая задача перестановки строк и столбцов матрицы представляет собой дискретную оптимизационную задачу с ограничениями, которая может быть сформулирована в виде оптимизационной задачи на графах, суть которой состоит в поиске определённого множества дуг в матричном графе. Возможно предложить два варианта постановки данной задачи в зависимости от того требуется ли решение глобальной оптимизационной задачи или же решение может быть в определённом смысле локально оптимальным. В первом случае задача является NP-полной и её решение представляет скорее теоретическое нежели практическое значение. Поэтому данная задача была решена во второй постановке. Трудоёмкость разработанного алгоритма полиномиально зависит от размера задачи, который определяется количеством ненулевых элементов матрицы. Его реализация с использованием программных библиотек для работы с графами, такими как Boost Graph Library, LEDA и др., позволяет эффективно решать поставленную задачу на ЭВМ, тем самым обеспечивая возможность макромоделирования больших динамических систем.