Cистемы компьютерной алгебры как необходимая компонента образовательных технологий
Новосибирский Государственный Университет, г. Новосибирск
Аннотация
Проблема разработки системы компьютерной алгебры рассматривается как часть более общей проблемы применения современных информационных технологий в образовании. Рассматриваются разработанные под руководством автора системы компьютерной алгебры АУМ и FABULA. Описывается сопряжение информационно-образовательной среды ИНФ-ФАБУЛА с системами компьютерной алгебры MAPLE и системой FABULA.
1. Системы компьютерной алгебры в высшем образовании.
Можно считать, что практически почти каждая система СКА система компьютерной алгебры (СКА) является объединением сопротивляющейся технологии и неопределенности алгоритмов. При этом можно отметить, что персональные компьютеры образуют хорошую основу для объединения символьных, численных и графических методов в рамках СКА. Алгебраическое вычисление выражения можно рассматривать как последовательное преобразование выражения согласно некоторому множеству правил до тех пор, пока к выражению нельзя будет применить ни одного правила. Аналитическое вычисление не сталкивается с такими проблемами численного программирования как ошибки округления, проблемы сходимости и проблемы устойчивости. Основными проблемами самого процесса вычисления является чаще всего экспоненциальное время работы алгоритмов, промежуточное разрастание выражения во время вычислений и проблема объема выходного выражения.
Сегодняшнее направление развития систем КА определяется повышением интеллектуальности систем. Оно поддерживается работами по абстрактным типам данных и искусственному интеллекту. Системы, реализующие абстрактные типы данных в дополнении к формулам и выражениям вводят понятия "математического объекта" и при работе с ним учитывают его свойства. При проектировании чисто интеллектуальной системы КА применяется несколько другой подход, отличный от метода расширения уже существующих возможностей системы. Применяемый подход предполагает манипулирование знаниями в концептуальном смысле, а не только манипулирования формулами. Предполагается, что такая система должна основываться на знаниях и использовать методы искусственного интеллекта, методы хранения и поиска знаний.
2. Средства проектирования систем компьютерной алгебры.
Автоматизация исследований во многих научных и инженерных областях требует полнокровного сочетания как численных так и формульных или аналитических методов вычислений. Достаточно много систем КА ориентировано на выполнение формульных преобразований, но их затруднительно использовать, когда возникает необходимость выполнения налитических преобразований в рамках какого-либо вычислительного или инженерного проекта. При проектировании СКА построении системы КА как системы формируемой в виде банка преобразований, следует обеспечивать:
- определение математических объектов с заданными свойствами;
- средства выполнения подстановок с учетом свойств математических объектов;
- средства выполнения подстановок по различным стратегиям;
- средства символьного дифференцирования;
- средства полиномиальных преобразований, как для упрощения входных выражений как и для специальных полиномиальных преобразований;
- средства вывода формульных выражений в так называемой понимаемой форме;
- проблемно-ориентированную среду, способствующую генерации пакетов требуемых аналитических и символьных преобразований и предусматривающую возможности, позволяющие интегрировать в них графические средства и средства численного программирования.
Обязательными языковыми составляющими должны быть как стандартные понятия обычного языка программирования, так и понятия, свойственные чисто языкам КА, например, подстановка, условия применения подстановок и др.
3. Базовые преобразования и механизмы подстановок в системах КА.
Как было отмечено выше, на сегодняшний день существует значительное число систем КА. Практически каждая система руководствуется своим собственным пониманием процесса вычисления символьного выражения. Среди различных вариантов выбранного процесса вычисления можно отметить два следующих, а именно, полное рекурсивное вычисление выражения и метод отложенных вычислений.
В первом методе предполагается полное вычисление всех аргументов, составляющих компонент на всю глубину существующих цепочек подстановки. Что касается второго метода, то в нем вычисления выполняются с текущими именами, полное же вычисление осуществляется по специальному требованию.
Оба этих метода реализации вычисления тесно связаны со стратегией проведения подстановок, которые являются важным универсальным механизмом в реализации преобразований в системах КА. Среди использующихся подстановок можно выделить три следующих группы:
1) локальные подстановки, чаще всего осуществляемые командами подстановки (команда SUBST)
2) глобальные подстановки, задаваемые группой правил подстановки, которые применяются автоматически при любом вычислении выражения
3) подстановки именованной группы правил, которые применяются только посредством использования специальной команды APPLY.
Эти три типа подстановки руководствуются различными стратегиями применения. Так команда выполнения локальных подстановок чаще всего находит первое вхождение образца и заменяет его. Глобальные подстановки выполняются по стратегии, которая требует выполнения преобразований до тех пор, пока ни одного правила из перечня правил глобальных подстановок нельзя будет применить.
Третьей группе подстановок, подстановкам с помощью команды APPLY часто сопутствует вектор стратегий, т. е. указание на порядок применения правил. Предполагая, что правила в группе правил APPLY нумеруются начиная с единицы, в векторе стратегии мы указываем номера последовательно применяемых правил.
Часто выделяются и особые варианты команды APPLY, например APPLY <номер варианта>, которые фиксируют дополнительные стратегии применения правил из блока правил. Например, в системе АУМ выделяются следующие варианты команды APPLY. Они различаются способом применения правил к выражению и условием окончания процесса применения.
4. Использование СКА в обучении
При использование систем компьютерной алгебры в обучении можно выделить два направления, а именно: первое – применение СКА при изучении общих математических курсов и, второе, – использование СКА при подготовке студентов, специализирующихся по информатике.
В первом случае важно рассматривать использование СКА с учетом определенных предпосылок, позволяюших выработать внутреннюю готовность преподавателя ответить на следующие вопросы, а именно: могут ли компьютеры помочь студентам понимать математику; могут ли механизмы вычисления, представляемые СКА, затушевывать математическое понимание предмета; будет ли использование СКА ослаблять способность студента вычислять вручную; улучшает ли применение СКА обучению математике?
Во-втором случае, СКА рассматривается как система программирования, с развитым входным языком, организация которой предполагает использования сложных структур данных и реализацию современных алгебраических алгоритмов. Разработка современных СКА во-многом стимулировала и стимулирует появления новых алгебраических результатов.
Использование систем поддержки математических исследований, в широкий круг которых входят СКА, весьма желательно как при изучении общих математических курсов, так и при подготовке студентов, специализирующихся по информатике.
Опыт Новосибирского государственного университета охватывает собой как использование СКА для профессиональной подготовки программистов, так и использование СКА общих математических курсов. На кафедре программирования несколько лет читается спецкурс " Системы и языки компьютерной алгебры". Он включает в себя рассмотрение архитектуры организацию внутренних структур данных и базовых алгебраических алгоритмов СКА. В спецкурсе рассматривается опыт построения первых СКА, включая такие отечественные разработки как АНАЛИТИК, АУМ, и др, так и наиболее значимые зарубежные системы компьютерной алгебры такие как REDUCE, MAPLE и MATHEMATICA.
Такое применение стремится упрочить использование СКА как естественную среду работы математика, предоставляющую ему возможности проведения аналитических, численных и графических вычислений. Этого подхода придерживается заметное число преподавателей НГУ как в основных так и в специальных курсах. Появление развитых систем компьютерной алгебры требует значительной переориентации учебного процесса. Преподавание многих учебных курсов может стать значительно эффективнее, если активно использовать возможности автоматического проведения трудоемких алгебраических выкладок. Использование систем компьютерной алгебры (СКА) позволяет выделить два направления, а именно: первое – применение СКА при изучении общих математических курсов и, второе использование СКА при подготовке студентов, специализирующихся в компьютерных науках. Мы полагаем, что использование систем поддержки математических исследований, в широкий круг которых входят СКА, весьма желательно как при изучении общих математических курсов, так и при подготовке студентов специализирующихся по информатике. В НГУ первая линия использования СКА поддерживается изучением базовых возможностей MAPLE в общем вводном курсе "Основы работы на ЭВМ".
Данная линия применения стремится упрочить использование СКА как естественную среду жизни математика, предоставляющую ему возможности проведения аналитических, численных и графических вычислений. Такой подход поддерживается заметным числом преподавателей НГУ как в основных так и в специальных курсах. Опыт Новосибирского государственного университета охватывает собой как использование СКА в качестве инструмента обучения для профессиональной подготовки программистов, так и использование СКА в общих математических курсах.
На кафедре программирования несколько лет читается спецкурс "Системы и языки компьютерной алгебры". Он включает в себя рассмотрение архитектуры системы, организацию внутренних структур данных и базовых алгебраических алгоритмов СКА. В спецкурсе рассматривается опыт построения первых СКА, включая такие отечественные разработки как АНАЛИТИК, АУМ, и других, так и наиболее значимые зарубежные системы компьютерной алгебры такие как REDUCE, MAPLE и MATHEMATICA.
В курсе "Системы и языки компьютерной алгебры" рассматриваются также методы применения, реализации и определения языков и систем компьютерной алгебры, как ранних, так и сложившихся в практике развития таких систем. Изучаются типовые конструкции языков компьютерной алгебры и особенности их реализационной семантики. Рассматриваются языки и структуры данных развитых систем компьютерной алгебры таких как REDUCE, MAPLE, MACSYMA и ряд других. От студентов требуется общее представление о средствах и методах определения языков программирования, например, из курса методов трансляции или дискретной математики, знание более чем двух языков программирования.
Особый интерес представляет разработка систем компьютерной алгебры как метод обучения. Освоение методов СКА идет успешнее, если студент приобретает опыт участия в разработке СКА. Таким испытательным полигоном для студентов явилась разработка системы FABULA.
Основными функциями системы FABULA являются проведение аналитических преобразований булевых выражений в символьной форме и решение оптимизационных задач и систем уравнений в булевых алгебрах. Входной язык системы FABULA является развитым языком программирования. Он содержит средства как для задания выражений, функций, уравнений и других объектов языка, так и средства для выполнения преобразований над ними. Язык реализует историю хранения вычислений и удобную среду для выполнения преобразований. Язык имеет паскалеподобные конструкции управления и достаточно богатый набор средств манипулирования булевскими функциями. Конструирование системы осуществляется при помощи традиционных развитых методов разработки транслирующих систем, современных методов построения систем компьютерной алгебры и методов объектно-ориентированного программирования. Опираясь на опыт конструирования FABULA для информационных целей и целей обучения развивается интеллектуальная информационно-образовательная среда ИНФ-ФАБУЛА.
Ядро информационно-образовательной системы ИНФ-ФАБУЛА включают следующие наиболее значимые для развития фундаментальных исследований по информатике материалы. Они отнесены к следующим основным направлениям:
1) Традиционно включаемые в учебные планы университетов понятия дискретной математики, алгебры, методов обработки данных и императивного программирования, поддержанные штатными ИС.
2) Идеи, теоретические модели и исследовательские проекты, программирование, функциональное, логическое, объектно-ориентированное и параллельное программирование, основы искусственного интеллекта, методов тестирования, конструирования и преобразования программ, оценки их качества и сложности, изучаемые студентами при наличии высококвалифицированной поддержки на базе мало распространенных концептуальных ИС.
3) Знания из смежных направлений, востребованные современными технологиями и дающие перспективу использования результатов фундаментальных исследований в различных областях, исследуемые при постановке реальных задач с применением распространенных прикладных ИС.
Работа поддерживается грантом РФФИ .
ЛИТЕРАТУРА:
1. , , . Универсальная система проведения аналитических вычислений АУМ. В сб: Аналитические вычисления на ЭВМ и их применение в теоретической физике. Дубна, 1983, с.7-18.
2. ,Калинина алгебра и функциональное программирование как базовые компоненты научного инструментария. // В тр. межд. конференции "Информационные технологии в науке, образовании, телекоммуникации, бизнесе." Украина, Крым, 2000 г., с.81-84.


