УДК 681.3.06
В.П. КЛИМЕНКО, Ю.С. ФИШМАН, Т.Н. ШВАЛЮК
ОСОБЕННОСТИ СТРУКТУРЫ ДАННЫХ И ИХ ПРЕОБРАЗОВАНИЯ В СИСТЕМЕ КОМПЬЮТЕРНОЙ АЛГЕБРЫ АНАЛИТИК_______________________________
Abstract: New way of internal representation given in systems of computer algebra the analyst is described. A way of optimization of analytical calculations of objects of computer algebra is adduced. As object a multilevel hierarchical structure is considered. Results of comparative research of efficiency of analytical calculations БСА the ANALYTIC and the most popular american БСА are adduced.
Key words: computer algebra, Internal image, optimization, hierarchical structure.
Анотація: Описано новий спосіб внутрішнього зображення даних у системі комп'ютерної алгебри АНАЛІТИК. Подається спосіб оптимізації аналітичних обчислень об'єктів комп'ютерної алгебри. Як об'єкт розглядається багаторівнева ієрархічна структура. Подаються результати порівняльного дослідження ефективності аналітичних обчислень СКА АНАЛІТИК та найпопулярніших американських СКА.
Ключові слова; комп'ютерна алгебра, внутрішнє зображення, оптимізація, ієрархічна структура.
Аннотация: Описывается новый способ внутреннего представления данных в системе компьютерной алгебры АНАЛИТИК. Приводится способ оптимизации аналитических вычислений объектов компьютерной алгебры. В качестве объекта рассматривается многоуровневая иерархическая структура. Приводятся результаты сравнительного исследования эффективности аналитических вычислений СКА АНАЛИТИК и наиболее популярных американских СКА.
Ключевые слова: компьютерная алгебра, внутреннее представление, оптимизация, иерархическая структура.
1. Введение
Системы компьютерной алгебры (СКА) в основном используются для автоматизации научных исследований и решения сложных научно-технических задач, требующих высокого уровня искусственного интеллекта для исследования и преобразования громоздких математических моделей с нечисловыми параметрами.
В настоящей статье описываются основные свойства объектов системы компьютерной алгебры АНАЛИТИК, некоторые особенности их внутреннего представления и способов их преобразований, вводится новый тип данных.
Первые СКА создавались высококвалифицированными пользователями, обычно физиками-теоретиками или специалистами по небесной механике, и были ориентированы на соответствующие классы задач [1, 2]. Современные СКА получили массового пользователя в лице сотрудников различных НИИ и конструкторских бюро, занятых решением научно-технических задач, в частности, при разработке математических моделей, которые часто связаны с проблемами теории упругости [3, 4].
В настоящее время наиболее развитыми универсальными системами компьютерной алгебры можно считать последние версии американских СКА MAPLE, MATHEMATICA и отечественную - АНАЛИТИК [5-7]. Раньше других универсальных СКА в середине 60-х годов прошлого века под руководством академика В.М. Глушкова начало разрабатываться семейство СКА АНАЛИТИК [8, 9]. При этом мерой эффективности языков этого семейства всегда считалась производительность труда пользователя. Хотя проблемы быстродействия СКА отодвигались на
второй план, но разработчикам все же удавалось добиваться достаточно высокой эффективности этих систем [10-12].
2. Структура информационных объектов
При реализации аналитических или численно-аналитических методов основным информационным объектом современных СКА являются выражения, близкие как по синтаксису, так и семантике, к выражениям математического анализа. Они, как правило, именуются с помощью идентификаторов.
Входными данными задачи КА обычно является система выражений, связанных значениями переменных. Входящие в состав выражения переменные могут именовать подобные выражения, образуя таким образом многоуровневую иерархическую структуру (МИС) (в частности, если все переменные не имеют значений, то выражение является одноуровневой структурой) [13]. Именующее выражение, стоящее в начале такой системы, именует всю МИС.
Рис.1. Пример трехуровневой иерархической структуры Пример.
Система функционально связанных выражений в АНАЛИТИКе имеет вид
Я := а + Ъ*(с + й * f);
а := 2* оо$(1 + и); Ъ := ео8(г + и); с := 3*к+ п ; й := f + 5);
I := к**?; и := 1п( f + 5); п := f + 5 и фактически образует трехуровневую иерархическую структуру (рис. 1).
При этом следует различать иерархию на уровне одного выражения и многоуровневую иерархию по глубине суперпозиций в случае подстановок (рис. 1). Существующие СКА содержат процедуру рекурсивной подстановки значений переменных, разворачивающей такой объект в некоторое выражение, над которым обычно определены функции и операторы алгоритмических языков.
3. Преобразования информационных объектов
Возможности современных компьютеров и используемых методов требуют нового осмысливания свойств современных СКА и тенденций их дальнейшего развития. Более глубокое исследование задач и алгоритмов, реализующих численно-аналитические методы, приводит к выводу, что фактически в процессе решения, явно или неявно, происходит манипулирование с многоуровневыми иерархическими структурами.
Так как получение промежуточных данных в процессе решения задачи в основном состоит в образовании новой совокупности выражений, то наиболее типичной процедурой при работе программ КА является вычисление выражений, т.е. рекурсивная подстановка значений переменных, раскрытие скобок, приведение подобных, вычисление функций и т.п. Опыт показывает, что большая часть времени преобразования данных при работе программ тратится на вычислительный процесс (в языках семейства АНАЛИТИК заметное время затрачивается процедурами управления и распознавания структурных и функциональных свойств объектов [14, 15]).
Вычисления производятся с учетом заданных режимов. При выполнении сложения или умножения должна учитываться возможная блокировка коммутативности операций; разрешается или нет раскрытие скобок и приведение подобных, разворачивание сумм (Е), произведений (П), выполнение дифференцирования и интегрирования; число допустимых подстановок значений переменных; соблюдаются ли правила работы с рациональными числами; над десятичными числами операции и функции выполняются до заданного числа знаков после запятой. Особое значение имеет описанный ниже режим оптимизации вычислений. Режимы могут распространяться как на всю программу или ее части, так и на отдельное выражение или его структурные части. Результат вычислений именующего выражения при одних и тех же входных данных может быть различным в зависимости от режимов вычислений.
Аргументами процедур АНАЛИТИКа являются выражения языка, которые рассматриваются как именующие выражения МИС. При этом для вычислений не требуется предварительная подстановка значений всех переменных. Вычисления производятся отдельно по «ветвям»
древовидного графа, изображающего соответствующую иерархическую структуру, с учетом заданных режимов.
Такой древовидный граф рассматривается как некоторая система координат [7, 16]. Система именования АНАЛИТИКа позволяет именовать структурные части иерархической системы ее координатами независимо от того именована ли она другими средствами именования, например, переменными. Если такие координаты не известны, то с помощью функций языка А-2000 ЗАВ (зависимость) и АСП (ассоциативный поиск) они устанавливаются [7, 16].
Пример.
Пусть
Г. Г\ * * . /- * *
: х + 2 х у + 5 хг ; х: 8т(а) + 3 *ео8(Ъ);
у : а + 8ш(Ъ)* с ;
г :8т(а) + 3*ео8(а).
Тогда
г1 := ЗАВ(т, 81п(Ъ) * с); ВЫВ(: г1); ^ 1;
г2 := АСП(т,8т(Ъ) * с); ВЫВ(: г2); ^ Т[2,3][2];
Т[2,3][2] := ео8(и); ВЫВ(: у); ^ а + ео8(и).
Таким образом, СКА АНАЛИТИК дает возможность производить преобразования на любой глубине иерархической структуры без предварительной рекурсивной подстановки, превращающей МИС в выражение, которое рассматривается как вырожденный случай т - уровневой иерархической структуры при т = 1.
Операции и функции над выражениями языка можно рассматривать как операции и функции над МИС и выполнять без предварительной подстановки. Введение подобного объекта в СКА АНАЛИТИК не только избавило от необходимости применения громоздких и малоэффективных приемов программирования при поиске и обращении к подобъектам, но и позволило решить ряд принципиально важных проблем использования аналитических методов. Простейшим примером эффективности такого подхода является необходимость проверки зависимости от переменной дифференцирования или интегрирования, когда такая переменная явно не входит в именующее выражение, но может входить в структуры, от которых данное выражение зависит.
Это дает возможность рассматривать действия над МИС как операции в некоторой алгебре таких структур, изоморфной алгебре именующих выражений.
Можно предположить, что линейная запись математической модели задачи как последовательности выражений связана с физическими свойствами средств описания человеком, например, запись на бумаге линейна и последовательна во времени. При «ручном» поиске способа решения задачи сознание человека, по-видимому, учитывает одновременно весь комплекс ассоциативных связей между величинами. Запись такой модели в памяти компьютера на
различных этапах процесса решения задачи методами компьютерной алгебры не обязательно должна быть линейной, а при достаточно совершенной реализации алгоритмического языка может отражать все ассоциативные связи между рассматриваемыми величинами [17].
В АНАЛИТИКе для внутреннего представления входных и промежуточных данных используется специально разработанная списковая структура, хорошо отражающая ассоциативные связи между объектами. Такая структура состоит из выражений, находящихся в любой части памяти и последовательного списка их адресов («КАТАЛОГа») [16].
Входные данные задачи, которые вводит человек, редко имеют очень большой объем. Громоздкие структуры в СКА обычно являются результатом преобразований, когда эти структуры генерируются из малых многократно повторяющихся объектов (раскрытие сумм, произведений, скобок, умножение полиномов и др., приводящие к так называемому эффекту «взрыва данных»). Причем, чем сложнее задача и больше объем объектов, тем больше вероятность повторения одних и тех же структурных частей выражения. Поэтому в СКА АНАЛИТИК для вычисления значений громоздких выражений и МИС используется очень эффективная режимная процедура оптимизации, которая подобные подвыражения (синтаксически правильные структурные части выражений) именует специальными «рабочими» переменными. Работа этой процедуры подобна склеиванию ветвей древовидного графа [18]. Эффективность такого процесса тем выше, чем больше уровней в вычисляемой структуре, т.к. исключаются повторные вычисления.
Так образуется новый списковый объект (списковая многоуровневая иерархическая структура (СМИС)), который состоит из последовательного списка адресов склеенных подвыражений и значений переменных. Такая оптимизированная структура именуется, запоминается и может многократно использоваться.
В СКА АНАЛИТИК реализована специальная внутренняя функция управления аналитическими вычислениями (АВ) для получения новых значений, на вход которой подается именующее выражение. Функция обеспечивает выполнение всех действий в заданных режимах. Режимы могут распространяться как на вычисление всей иерархической структуры, так и на ее части. Всевозможные режимы вычислений могут задаваться как отдельно, так и в любой совокупности.
Входные данные могут подаваться на АВ как в оптимизированном, так и неоптимизированном виде. В случае, если результат работы АВ не должен зависеть от структурных свойств входного объекта и входной объект не был предварительно оптимизирован, АВ, в зависимости от заданного режима, вызывает функцию оптимизации. После чего в определенном объектом порядке вызываются функции и операции, которые выполняются в соответствии с заданными режимами [16].
На функцию АВ опирается работа ряда функций и операторов языка АНАЛИТИК. В частности, ее работа почти полностью совпадает с определением функции ПОДСТАВИТЬ [7].
4. «Взрыв» промежуточных данных
При решении задач «взрыв» промежуточных данных обычно происходит в результате многочисленных итераций исходных данных относительно небольшого объема. Получившиеся громоздкие выражения, как правило, содержат многочисленно повторяющиеся подвыражения, которые являются «следами» входных данных. Из таких объектов легко образуются описанные выше списковые многоуровневые иерархические структуры. Типичным примером такого объекта
является 10 -ая производная выражения е со^х), которая без обычных упрощений занимает память объемом в 4 500 Кб и после склеивания образует СМИС с 16-ти уровнями.
Ниже в качестве примера приводятся результаты исследования быстродействия различных СКА при вычислении этого объекта с разной разрядностью (табл. 1) и в символьном виде (табл. 2). Время вычисления в таблицах приводится в секундах.
Таблица 2. Вычисления в символьном виде
СКА АНАЛИТИК MATHEMATICA MAPLE
Время 4 21 11
5. Выводы
1. Рассмотренный в статье новый тип данных (МИС) при решении задач компьютерной алгебры аналитическими и численно-аналитическими методами дает возможность резко увеличить эффективность современных систем компьютерной алгебры.
2. Реализация в СКА А-2000 автоматического формирования многоуровневых иерархических систем резко сокращает объем работ пользователей в процессе моделирования аналитическими методами.
3. При создании последующих версий СКА АНАЛИТИК необходимо исследовать целесообразность и алгоритмическую возможность дальнейшего обобщения основного информационного объекта, определив процедуры системы над множеством выражений сцепленных значениями переменных, которое представлено не иерархической структурой (изображено не древовидным графом) [18].
1. Sammet J. E., Bond E. Introduction to FORMAC // IEEE Trans. Electron. Computers. - 1965. - V. EC. - № 13. -P. 386 - 394.
2. Неат A.C. REDUCE user's manual (Version 3.2). - Santa-Monica: Ren corporation, 1985. - 188 p.
3. Клименко В.П., Ляхов А.Л., Швалюк Т.Н. Аналитическое моделирование решения некоторого класса краевых задач // Радіоелектроніка. Інформатика. Управління. - 2000. - № 2(4). - С. 82 - 87.
4. Ляхов А.Л. Исследование методом граничных элементов напряженно-деформированного состояния прямоугольной плиты, полностью погруженной в упругое основание // Проблемы машиностроения. - 1998. - Т. 1, № 3 - 4. - С. 89 - 96.
5. Maple V Realise 5. Programming Guide / Monagan B., Geddes K.O., Heal K.M., Labahn G., Vorkoetter S.M. -1998. - 380 p.
6. Дьяконов В.П. Системы символьной математики Mathematica 2 и Mathematica 3. - М.: СК ПРЕСС, 1998. -320 с.
7. АНАЛИТИК-2000 / Морозов А.А., Клименко В.П., Фишман Ю.С., Ляхов А.Л., Кондрашов С.В., Швалюк Т.Н. // Математические машины и системы. - 2001. - № 1. - С. 66 - 99.
8. АНАЛИТИК - язык для описания вычислительных процессов с применением аналитических преобразований / Боднарчук В.Г., Глушков В.М., Гринченко Т.А., Дородницына А.А., Клименко В.П., Летичевский А.А., Погребинский С.Б., Стогний А.А., Фишман Ю.С. // Теория автоматов и методы формализованного синтеза вычислительных машин и систем // Труды семинара. - Киев, 1968. - Вып. 1. - С. 3 - 105.
9. АНАЛИТИК (Алгоритмический язык для описания вычислительных процессов с использованием аналитических преобразований) / Глушков В.М., Боднарчук В.Г., Гринченко Т.А., Дородницына А.А., Клименко В.П., Летичевский А.А., Погребинский С.Б., Стогний А.А., Фишман Ю.С. // Кибернетика. - 1971. - № 3. - С. 102 -134.
10. Клименко В.П. Основные принципы построения систем и интерпретации языков, проблемноориентированных на научные и инженерные задачи // Кибернетика. - 1990. - № 1. - С. 49 - 56.
11. Благовещенский Ю.В., Теслер Г.С. Вычисление элементарных функций на ЭВМ. - Киев: Техника, 1977. -208 c.
12. Швалюк Т. Н. Библиотека функций числового подмножества системы компьютерной алгебры АНАЛИТИК-2000 // Радиоэлектроника. Информатика. Управление. - 2001. - № 2. - С. 117 - 121.
13. Морозов А.А., Клименко В.П., Фишман Ю.С. Основные свойства алгоритмического языка АНАЛИТИК-91 // Кибернетика и системный анализ. - 1993. - № 3. - С. 117 - 127.
14. Клименко В.П., Погребинский С.Б., Фишман Ю.С. К вопросу о распознавании функциональных свойств аналитических выражений на машинах серии МИР // Кибернетика. - 1973. - № 2. - С. 43 -52.
15. Клименко В.П., Фишман Ю.С. Система распознавания для автоматической реализации аналитических методов // Проблемы теоретической кибернетики // Тезисы докладов VIII Всесоюзной конференции. - Горький. - 1988. - Ч. 1. - С. 152 - 153.
16. Основные особенности реализации системы компьютерной алгебры (АНАЛИТИК-2000) / В.П. Клименко, Ю.С. Фишман, С.В. Кондрашов, Т.Н. Швалюк // Математические машины и системы. - 2002. - №1. - С. 14 -28.
17. Клименко В.П., Ляхов А.Л., Фишман Ю.С. Основные тенденции развития языков систем компьютерной алгебры // Математические машины и системы. - 2002. - № 2. - С. 29 - 64.
18. Фишман Ю.С. Основные особенности создания и применения средств реализации численноаналитических методов на ЭВМ // Математические машины и системы. - 1998. - № 2. - С. 9 - 18.