17.07.2015 Views

Программные средства и математические основы информатики

Программные средства и математические основы информатики

Программные средства и математические основы информатики

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ПРОГРАММНЫЕСРЕДСТВА ИМАТЕМАТИЧЕСКИЕОСНОВЫ ИНФОРМАТИКИ


Серия“КОНСТРУИРОВАНИЕИ ОПТИМИЗАЦИЯ ПРОГРАММ”Под редакциейдоктора физ.-мат. наук, профессора, чл.-корр. РАЕНВ. Н. КасьяноваВыпуски серии:1. Смешанные вычисления и преобразование программ(1991)2. Конструирование и оптимизация программ (1993)3. Интеллектуализация и качество программногообеспечения (1994)4. Проблемы конструирования эффективных и надежныхпрограмм (1995)5. Оптимизирующая трансляция и конструированиепрограмм (1997)6. Проблемы систем информатики и программирования(1999)7. Поддержка супервычислений и Интернет-ориентированныетехнологии (2001)8. Касьянов В. Н., Мирзуитова И. Л. Slicing: срезыпрограмм и их использование (2002)9. Современные проблемы конструирования программ(2002)10. Новые информационные технологии в науке и образовании(2003)11. Программные средства и математическиеосновы информатики


Российская академия наукСибирское отделениеИнститут систем информатикиим.А.П.ЕршоваПРОГРАММНЫЕ СРЕДСТВА И МАТЕМАТИЧЕСКИЕОСНОВЫ ИНФОРМАТИКИПод редакциейпроф. Виктора Николаевича КасьяноваНовосибирск 2004


УДК519.68; 681.3.06ББКЗ 22.183.49+ З 22.174.2Программные средства и математические основы информатики. —Новосибирск: Ин-т систем информатики им. А. П. Ершова СО РАН,2004. — 278 с.Является одиннадцатым в серии сборников, издаваемых Институтомсистем информатики им. А.П.Ершова СО РАН по проблемам конструированияи оптимизации программ. Посвящен решению актуальныхзадач, связанных с программными средствами и математическимиосновами информатики.Сборник представляет интерес для системных программистов, а такжестудентов и аспирантов, специализирующихся в области системногои теоретического программирования.c○ Институт систем информатики им. А. П. Ершова СО РАН, 2004


This volume is the eleventh one in a series of books published in A.P.Ershov Institute of Informatics Systems on the problems of program constructionand optimization. This volume is devoted to a decision of actualproblems connected with software tools and mathematical foundations ofinformatics.The volume is of interest for system programmers, students and postgraduatesworking in the field of system and theoretical programming.c○ A. P. Ershov Institute of Informatics Systems, 2004


ПРЕДИСЛОВИЕ РЕДАКТОРАОдиннадцатый выпуск серии «Конструирование и оптимизация программ»посвящен решению актуальных задач, связанных с теоретическимиосновами информатики и созданием программных систем.Продолжая уже сложившиеся традиции, данный выпуск, как и предыдущие,базируется на результатах исследований, выполненных в лабораториипо конструированию и оптимизации программ Института систем информатикиСО РАН совместно с Новосибирским государственным университетомпри финансовой поддержке Российского фонда фундаментальныхисследований, Российского гуманитарного научного фонда, МинобразованияРоссийской Федерации, а также компании Майкрософт.Открывает сборник статья Т.А. Волянской, посвященная международнымстандартам представления в сети Интернет информационных ресурсовпо культурному наследию. В ней содержится краткий обзор стандартаANSI/NISO Z39.50 и профиля CIMI. Стандарт Z39.50 определяет прикладнуюслужбу и спецификацию протокола для поиска и извлечения информациииз баз данных. Профиль CIMI служит спецификацией использованиястандарта Z39.50 для доступа к информации о культурном наследии.Статья П.А. Дортмана посвящена оптимизации программ в системе параллельногопрограммирования SFP на базе функционального языка программированияSISAL 3.0. В ней описаны алгоритмы для выполнения некоторыхтрадиционных оптимизирующих преобразований над SISALпрограммами,представленными в виде так называемых потоковых графов.В статье А.А. Дунаева исследуются способы организации работы сбольшими линейными массивами данных. В ней рассмотрены несколькостратегий предварительной выборки данных и описаны методы обработкинуклеотидных последовательностей, а также способы отображения результатоввычислений.Понятие NUMA-архитектуры возникло в конце 80-х годов с появлениеминтереса к компьютерам с распределенной памятью. В статьеВ.А. Евстигнеева излагаются основы теории полиномов Эрхарта и её примененияк некоторым проблемам, возникающим в NUMA-архитектурах.В последнее время адаптивные гипермедиа-системы становятся все болеепопулярными в дистанционном обучении, предоставляя средства доступак информации, управляемые пользователем. Адаптивные гипермедиасистемысводят воедино идеи гипермедиа-систем и интеллектуальных обучающихсистем и делают возможным персонализированный доступ к ин-


6 Программные средства и математические основы информатикиформации. В статье В.Н. Касьянова и Е.В. Касьяновой рассматриваютсявопросы поддержки дистанционного обучения. Особое внимание авторыуделяют анализу методов и средств адаптивной гипермедиа, используемыхсовременными адаптивными обучающими Web-системами.Статья В.Н. Касьянова и И.Л. Мирзуитовой посвящена алгоритмам распараллеливанияциклов — одного из наиболее эффективных реструктурирующихпреобразований, используемых в распараллеливающих компиляторах.Авторы приводят описание основных алгоритмов распараллеливанияциклов и дают сопоставление их сильных и слабых сторон как на примерах,так и в сравнении по получению «оптимальных» результатов.В статье Е.В. Касьяновой кратко представлен новый язык программированияZonnon для платформы .NET, работа над которым ведется в Цюриховскоминституте информатики. Разрабатываемый язык задуман авторамикак современная альтернатива хорошо известному языку Оберон, являющемусяпреемником языков Паскаль и Модула-2.Новые подходы и технологии могут существенно изменить процессвзаимодействия людей при коллективной работе. Статья Ю.В. Малининойописывает опыт внедрения электронной среды для организации совместнойработы по накоплению и каталогизации информации по преобразованиямпрограмм на основе технологии WikiWiki.Статья В.А. Маркина и С.А. Маркиной посвящена системе ПРОГРЕСС-2, которая создается как конструктор для построения прототипа компилятора,кирпичиками которого являются различные функциональные и инструментальныекомпоненты. Особое внимание в статье уделяется ядру системыи средствам задания сценария работы создаваемого компилятора.В статье А.Л. Серебренникова рассматриваются задачи, решаемые нейросетями,описываются методы обучения нейросетей и сравнительные тестыметодов, а также направления и подходы в развитии интерфейсной частиразрабатываемой автором среды Significo, предназначенной для создания,обучения и диагностики нейросетей.Завершает сборник cтатья Е.С. Черемушкина, Т.Г. Коноваловой,Ф.А. Мурзина и А.Э. Кель, в которой представлен разработанный авторамиинструментарий, позволяющий производить полноценный поиск цисэлементовна последовательностях ДНК, наиболее полно использующийданные, имеющиеся у экспериментатора.Проф. В.Н. Касьянов


Т. А. ВолянскаяМЕЖДУНАРОДНЫЕ СТАНДАРТЫ ПРЕДСТАВЛЕНИЯ В СЕТИИНТЕРНЕТ ИНФОРМАЦИОННЫХ РЕСУРСОВПО КУЛЬТУРНОМУ НАСЛЕДИЮ:СТАНДАРТ ANSI/NISO Z39.50 И ПРОФИЛЬ CIMI *ВВЕДЕНИЕВ настоящее время в сети Интернет представлено большое число разнородныхи обособленных информационных ресурсов по культурному наследию.В их число входят различные электронные музеи, архивы и каталоги.Информационные ресурсы по культурному наследию имеют самый разнообразныйхарактер: это описательные базы данных, базы данных изображений,видео- и аудио- материалов. Эти ресурсы принадлежат различным организациям,которые проводят самостоятельную политику в отношении ихописания, использования и публичного доступа к ним.Предоставление доступа к информации о культурном наследии организованоразличными способами и с применением различных технологий ипротоколов, которые часто не согласуются с существующими стандартами.Наиболее распространенным способом является использование Webтехнологиис доступом по HTTP протоколу, одним важным недостаткомкоторого является отсутствие глобальной стандартизации на уровне организацииданных и форматов их представления. Большинство существующихинформационно-поисковых систем поддерживают совершенно различныеструктуры хранения данных, способы доступа и форматы представленияинформации и, как следствие, имеют свой собственный пользовательскийинтерфейс.Одна из важных задач в области разработки распределенных информационно-поисковыхсистем по культурному наследию — это унификациядоступа и интеграция информационных ресурсов [2]. Целью является объединениеимеющихся информационных ресурсов по культурному наследиюв единую распределенную информационную систему со сквозным поиском.Это позволит открыть для пользователей всю информацию, накопленную за* Работа выполнена при финансовой поддержке Российского гуманитарного научного фонда(грант № 02-05-12010).


8 Программные средства и математические основы информатикидолгое время и в разных местах, и оперативно получать исчерпывающиеответы на сложные запросы. Однако, для разнородных и обособленных информационныхсистем, не поддерживающих существующие стандарты,возникает проблема с унификацией доступа к данным и интеграцией информационныхресурсов. Все это во многом затрудняет как работу с ними,так и дальнейшее использование предоставляемой ими информации.Единственная технология в настоящее время, которая позволяет решитьвышеперечисленные проблемы, — это технология, основанная на международныхстандартах ANSI/NISO Z39.50 (ISO 23950) [1,5,6] и профиле CIMI[4,10]. Стандарт Z39.50 позволяет унифицировать сетевой доступ к любымбазам данных, а профиль CIMI регламентирует доступ к информации окультурном наследии по протоколу Z39.50. Информационные системы покультурному наследию, организованные на основе Z39.50 серверов с использованиемCIMI профиля, становятся независимыми от конкретных системхранения данных и, следовательно, могут быть интегрированы с другимиподобными системами.Технологию, основанную на стандарте Z39.50 и профиле CIMI, предполагаетсяиспользовать при создании виртуального музея истории информатикив Сибири, работа над которым ведется коллективом сотрудников ИСИСО РАН, ИМ СО РАН и НГУ при финансовой поддержке Российского гуманитарногонаучного фонда (грант РГНФ N 02-05-12010) [3].Статья содержит краткий обзор стандарта Z39.50 и профиля CIMI.Разд. 1 посвящен истории разработки стандарта Z39.50 и профиля CIMI. Вразд. 2 рассматриваются основы стандарта Z39.50, модель данных и обеспечиваемыесервисные возможности. В разд. 3 кратко изложена модель поискаинформации по Z39.50, рассматриваются понятия абстрактной базыданных и пунктов доступа, приводятся наборы и типы поисковых атрибутов,обсуждаются построение RPN запросов и результаты поиска. В разд. 5приведена модель извлечения информации по Z39.50, рассматриваются понятиясхемы базы данных, наборов тэгов, абстрактной структуры записи, напримере иллюстрируются введенные понятия. Пятый раздел статьи посвященкраткому обзору профиля CIMI, рассматриваются следующие основныеаспекты профиля: поиск записей и набор атрибутов CIMI-1; выбор записейи связанные с ним набор тэгов CIMI Tag Set, CIMI схема и абстрактнаяструктура записи с различными уровнями семантической интероперабельности,а также передача записей и синтаксис записи GRS-1. В разд. 6приведен пример распределенной информационной системы на базе Z39.50.


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 91. ИСТОРИЯ РАЗРАБОТКИ Z39.50 И CIMIСтандарт Z39.50 (Information Retrieval (Z39.50): Application ServiceDefinition and Protocol Specification) определяет прикладную службу и спецификациюпротокола для поиска и извлечения информации из баз данных.Он предназначен для унификации сетевого доступа к базам данных и определяетпроцедуры поиска, извлечения и форматы представления информации[1,5,6].Первая версия протокола, получившего название Z39.50, была подготовленаКомитетом организации по национальным информационным стандартамСША — NISO (National Information Standards Organization) и введенав 1988 г. стандартом Z39.50-1988. Действие этой версии распространялосьтолько на работу с библиографической информацией.В 1989 г. было организовано Агентство поддержки протокола Z39.50(Maintenance Agency Z39.50) под административным управлением лабораторииКонгресса США, а в 1990 г. сформирована Группа исполнителейZ39.50 (Z39.50 Implementors Group — ZIG). Ее членами стали производители,продавцы, распространители разнородных видов информации (библиографической,текстовой, графической, финансовой, химической и т.д.).Агентство поддержки Z39.50 является постоянно действующим органом,которое занимается сопровождением и развитием этого стандарта. Сетевойадрес агентства — http://lcweb.loc.gov/z3950/agency, здесь находятся всяинформация по протоколу, новости, документация, реестры объектов и т.п.В 1992 г. указанными организациями была разработана версия 2 стандарта(Z39.50-1992), заменившая стандарт 1988 г. Версия 3 стандарта(Z39.50-1995) была разработана в 1995 г. [5]. Поскольку стандарт Z39.50-1995 является развитием версии 1992 г. и совместим с ней, он определяетпротокол версий 2 и 3. В 1995 г. протокол Z39.50 был принят как американскийнациональный стандарт ANSI (ANSI/NISO Z39.50-1995), а в ноябре1998 г. — как международный стандарт ISO-23950.Стандарт ANSI/NISO Z39.50-2003 [6], действующий в настоящее время,был утвержден в ноябре 2002 г. Он является технической переработкойстандарта ANSI/NISO Z39.50-1995 и также определяет версии 2 и 3, но дополнительновключает различные пояснения, исправления и соглашения,рекомендованные группой исполнителей Z39.50 — ZIG.В первые годы своего существования протокол использовался преимущественнодля организации доступа к библиографическим ресурсам, насегодняшний день область его применения существенно расширена. Ониспользуется для доступа к научно-технической, финансовой информации,


10 Программные средства и математические основы информатикик геоинформационным ресурсам, к глобальным базам метаданных, тезаурусами рубрикаторам, цифровым коллекциям [9] и музейной информации[10].Профиль CIMI, предназначенный для работы с информацией о культурномнаследии по протоколу Z39.50, был разработан в 1998 г. Консорциумомпо компьютерному обмену музейной информацией — CIMI(Consortium for the Computer Interchange of Museum Information) [10]. Этонекоммерческая инициатива, занимающаяся развитием коммуникативныхстандартов, сохранением и обменом музейной информацией в электронномвиде. Сетевой адрес консорциума — http://www.cimi.org. При создании профилярабочая группа CIMI Z39.50 объединила вместе экспертов по Z39.50,экспертов в области музейного дела и музейной информации, разработчиковпрограммного обеспечения и специалистов в области коммерции.Профиль CIMI служит спецификацией использования Z39.50 для поискаи извлечения информации о культурном наследии. Он определяет подмножествохарактеристик, опций и параметров Z39.50, необходимых для поддержкифункциональности и требований пользователя при поиске и извлеченииинформации о культурном наследии. Элементы этого профиля имеютглобальные идентификаторы и являются частью международного стандартаISO-23950 [5,6].2. ОСНОВЫ СТАНДАРТА Z39.50Стандарт Z39.50 определяет службу и протокол типа клиент/сервер дляинформационного поиска. Он специфицирует процедуры и форматы дляпроведения клиентом поиска в базах данных, предоставляемых сервером,извлечения записей из баз данных и выполнения других функций, связанныхс информационным поиском. Протокол Z39.50 определяет взаимодействиетолько между клиентскими и серверными информационнопоисковымиприложениями, он не определяет взаимодействие между клиентоми конечным пользователем. Точнее говоря, протокол Z39.50 не определяетформаты хранения данных в конкретных базах данных, способы ихиндексации и процедуры функционирования различных СУБД. Он также неопределяет интерфейсы взаимодействия пользователя и клиента.Не вдаваясь в детали работы протокола, можно сказать, что стандартZ39.50 определяет такие правила взаимодействия компьютеров, которыепозволяют унифицировать доступ к различным базам данных. Таким образом,пользователь, использующий всего лишь одно клиентское приложение,


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 11может производить поиск информации в удаленных распределенных базахданных, имеющих самую различную структуру и форматы представленияинформации.Две основные особенности отличают протокол Z39.50 от других протоколов.Во-первых, это абстрактная модель представления информации. Видеологии Z39.50 в рамках одной схемы данных все базы данных совершенноодинаковы, несмотря на их физические различия по используемойСУБД, полям и синтаксису запросов. Иными словами, протокол предоставляетабстрактную модель представления информации на каждом этапевзаимодействия клиента и сервера. В Z39.50 клиент работает всегда с однойи той же системой запросов и получает данные в одних и тех же форматах.Вторая особенность состоит в том, что протокол Z39.50 полностьюобеспечивает сессионное взаимодействие клиента и сервера. Эта особенностьзаложена в самом протоколе и реализуется во всех его приложениях,будь то серверная система или программа-клиент.Z39.50 обеспечивает следующие основные сервисные возможности.• Клиент может производить поиск, указав список серверов и списокбаз данных для поиска, используя параметры, определяющие записи,идентифицируемые для поиска.• Сервер отвечает на запрос клиента подсчетом найденных записей(всех или их части).• Клиент может получить у сервера отобранные записи. При этомклиент принимает условие, что записи, отбираемые при поиске,формируются и определяются установками сервера.• Клиент может определить установки для получения данных в томслучае, когда он не уверен в результатах поиска: в зависимости отколичества найденных записей производить их передачу в полномобъеме или в сокращенной форме.• Клиент может установить предпочтительную для него форму (синтаксис)получения данных, например, в USMARC'е.• Клиент может присвоить имя полученному набору данных для последующегосравнения результатов, а впоследствии удалить названныйим результат поиска.• Сервер может налагать ограничения контроля доступа на клиента,которые определяются результатами аутентификации, предшествующейобслуживанию запроса.• Сервер может производить контроль ресурсов для посылки незапрашиваемыхили запрашиваемых сообщений. При этом серверможет временно приостанавливать обслуживание клиента и пре-


12 Программные средства и математические основы информатикидоставлять ему возможность для определения целесообразностипродолжения работы.Цель этого стандарта — облегчить взаимодействие между клиентами исерверами в прикладных системах, в которых клиент ведет поиск и извлекаетзаписи из баз данных сервера. Базы данных могут иметь различную реализацию:разные системы могут иметь разные способы хранения данных иразные способы доступа к ним. Поэтому при описании баз данных в Z39.50используется общая абстрактная модель базы данных, которой каждаяотдельная система может поставить в соответствие свою реализацию. Этопозволяет разным системам при взаимодействии использовать стандартныеи общепонятные термины для задач поиска и извлечения информации избаз данных. Модели поиска и извлечения информации будут рассмотреныпозже в третьем и четвертом разделах соответственно.Термин база данных, использующийся в данном стандарте, обозначаетсобрание записей, где каждая запись представляет собой собрание взаимосвязанныхданных. Термин запись базы данных относится к локальнойструктуре данных, представляющей информацию отдельной записи. С базойданных связаны одно или более множеств пунктов доступа, которыемогут быть указаны при поиске записей в базе данных, и одно или болеемножеств элементов, которые могут быть извлечены из записи базы данных.Пункт доступа — это уникальный или неуникальный ключ, которыйможет быть указан отдельно или в сочетании с другими пунктами доступапри поиске записей. Пункт доступа может, но не обязан быть связанным снекоторым элементом. Он может быть эквивалентен элементу, может бытьпроизводным от некоторого множества элементов или может не быть связаннымни с какими элементами.Для наглядности рассмотрим следующий простой пример: пусть у насесть база данных, в которой содержатся данные о музейных предметах. Информацияклассифицируется по следующим полям: ID, Title, Type, Creator_name,Date_of_origin, Place_of_origin, Material, Technique, Dimensions,Period, Keywords, Description.


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 13Таблица 1Список полей базы данных музейных предметовНазвание поляIDTitleTypeCreator_nameDate_of_originPlace_of_originMaterialTechniqueDimensionsPeriodKeywordsDescriptionКомментарийИдентификационный номер предметаНазвание предметаТипологияСоздательДата созданияМесто созданияМатериалТехникаРазмеры, весКультурный периодКлючевые словаКраткое описание предметаС этой базой данных можно связать, например, следующее множествопунктов доступа, которое может быть указано при поиске записей (в скобкахприведены соответствующие числовые значения поисковых Use атрибутовиз набора атрибутов CIMI-1).Таблица 2Множество пунктов доступа,связанное с базой данных музейных предметовНазвание поля Пункты доступаID ObjectID (2024)Title Title (4), ObjectTitle (2033), What (2047)Type Material type (1031), ObjectName (2032)Creator Author (1003), CreatorName (2035), CreatorGeneral (2041), Who (2046)DateOfOrigin DateOfOrigin (2022), When (2048)PlaceOfOrigin Name geographic (58), PlaceOfOrigin (2023), Where (2049)Material MaterialMedium (2008)Technique ProcessTechnique (2012)Dimensions Dimensions (2074)Period StylePeriod (2017)Keywords Any (1016), SubjectContent (2040)Description Abstract (62)


14 Программные средства и математические основы информатикиТакже с этой базой данных можно связать множество элементов, представленныхв табл. 3, которые могут быть извлечены из записи, представленнойв табл. 3.Таблица 3Множество элементов, связанное с базой данных музейных предметовНазвание поляЭлементыID Identifier (2,28), ObjectID (5,3)Title Title (2,1), ObjectTitle (5,32)Type Type (2,22), ObjectName (5,31)Creator Creator (2,2), CreatorInfo (5,36), CreatorGeneral (5,49)DateOfOrigin Date (2,8), DateOfOrigin (5,45)PlaceOfOrigin PlaceOfOrigin (5,11)Material MaterialMedium (5,5)Technique ProcessTechnique (5,12)Dimensions Dimensions (5,13)Period StylePeriod (5,14)Keywords Subject (2,21), Subject (5,2)Description Description (2,17)В скобках приведены соответствующие числовые значения элементов изнаборов тэгов Generic Tag Set и CIMI Tag Set. Эти наборы тэгов будут приведеныпозже в таблицах 14 и 19 соответственно. Первая цифра в скобкахозначает номер набора тэгов (2 для Generic, 5 для CIMI), а вторая — номертэга в наборе.3. МОДЕЛЬ ПОИСКА ИНФОРМАЦИИДля проведения поиска записей требуется указать список серверов базданных и список имен баз данных для поиска, а также сформулировать поисковыйзапрос, содержащий критерии поиска. В традиционных системах,не использующих Z39.50, для построения запроса необходимо также знатьдополнительную информацию: синтаксис языка запросов для каждойСУБД, а также структуру, имена полей и типы данных каждой базы данных.В случае, когда в группе выбранных серверов и баз данных перечисленныехарактеристики различны, даже очень простой запрос не сможет быть ис-


16 Программные средства и математические основы информатикизапроса указание поисковых атрибутов в комбинации с поисковым термомопределяет критерии поиска. В каждой группе каждый атрибут определяетсяуникальным числовым значением, поэтому для указания поискового атрибутанеобходимо задание двух чисел: тип + значение.Атрибуты 1: Use (атрибуты использования)Атрибуты этого типа указывают, с какой смысловой информацией связываетсяпоисковый терм, т.е. определяют пункты доступа. В наборе атрибутовBib-1 определено 99 значений. Среди значений Use есть значения,соответствующие автору, заглавию, ключевым словам, году издания и т.п.Среди атрибутов Use есть такие, которые связываются одновременно с несколькимиполями («Author-name-and-title»), а значение «Anywhere» связываетсясразу со всеми поисковыми полями.Таблица 5Use атрибуты Bib-1Значение Атрибут Комментарий4 Title Название21 Subject Ключевое слово31 Date-publication Дата публикации1003 Author Автор1000 Author-name-and-title Автор и название1035 Anywhere ВездеАтрибуты 2: Relation (атрибуты отношения)Атрибуты Relation описывают отношения между пунктами доступа ипоисковыми термами, т.е. они указывают, как поисковый терм соотноситсяс выбираемыми данными из полей, определенных атрибутом Use.


20 Программные средства и математические основы информатикиНапример, для поиска музейных предметов, создателем которых являетсяИванов или Иванова, необходимо задать:(CIMI-1 1=2035 2=3 3=3 4=2 5=1 6=2 «Иванов»)Каждый атрибут — это пара, отражающая тип атрибута и его значение.В приведенном примере присутствуют следующие поисковые атрибуты:тип «Use» и значение «CreatorName» (1=2035), тип «Relation» и значение«Equal» (2=3), тип «Position» и значение «Any position in field» (3=3), тип«Structure» и значение «Word» (4=2), тип «Truncation» и значение «Righttruncation» (5=1) и тип «Completeness» и значение «Incomplete subfield»(6=2).Результаты поискаВ результате выполнения поиска в базах данных клиент может получитьот сервера следующую информацию: сообщение об ошибке, количествонайденных записей или сами найденные записи. Первый вариант ответасвязан с какой-либо ошибкой, второй и третий варианты соответствуютуспешному проведению поиска. Какой из них будет получен клиентом, зависитот параметров, которые передаются серверу вместе с поисковым запросом.Для этого вводятся понятия малый, средний и большой наборы. Здесьпод набором понимается совокупность найденных записей, пронумерованнаясквозным образом. Все записи из малого набора всегда возвращаются,все записи из большого набора никогда не возвращаются, а из среднего наборавозвращаются некоторые записи. Далее задаются следующие параметры.• Верхняя граница малого набора, т.е. максимальный номер записи вмалом наборе, который начинается с первой записи.• Нижняя граница большого набора, т.е. номер, начиная с которого записипопадают в большой набор. Все записи, номера которых большеверхней границы малого набора, но меньше нижней границы большого,считаются записями из среднего набора.• Количество возвращаемых записей из среднего набора.Меняя эти три параметра, можно добиться возвращения любого количествазаписей, в том числе ни одной.Наконец, следует отметить, что все найденные при поиске записи сервердолжен сохранить в сессионном блоке для последующего использования.Если сервер допускает опцию присвоения имени результату поиска, этой


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 21сохраненной совокупности может быть присвоено имя, если нет, совокупностьсохраняется неименованной и переписывается при последующем поиске.Именованные результирующие наборы, которые сохраняются на сервере,можно использовать в последующих RPN-запросах, где они выступаюттакими же операндами, как блоки APT.4. МОДЕЛЬ ИЗВЛЕЧЕНИЯ ИНФОРМАЦИИПосле того как произведен поиск и создан результирующий набор насервере, записи из результирующего набора можно извлекать и просматривать.Для того чтобы запросить записи, необходимо задать: имя результирующегонабора; номер записи в результирующем наборе, с которой начинаетсяизвлечение; количество извлеченных записей; формат представленияданных и максимальную длину записи, доступную для извлечения.Рассмотрим модель извлечения и представления данных, принятую вZ39.50. Идеология максимального абстрагирования от структур реальныхбаз данных приводит к весьма изощренной схеме извлечения данных, описаннойв стандарте Z39.50. Каждой базе данных приписывается одна илинесколько схем.Схема данных и абстрактная структура записиСхема базы данных представляет собой взаимное соглашение междуклиентом и сервером об информации, содержащейся в записях базы данных,которое позволяет в дальнейшем отбирать часть этой информации всоответствии со спецификацией элемента.Схема определяет абстрактную структуру записи. Это первичныйэлемент схемы базы данных, представляющий собой дерево элементов,специфицируемых тэгами (tag) из стандартных наборов тэгов (tagSet). Приприменении абстрактной структуры записи к записи базы данных получаетсяабстрактная запись базы данных.Абстрактная запись базы данных — абстрактное представление информации,содержащейся в записи базы данных. Для формирования абстрактнойзаписи нужно применить определенную в схеме абстрактнуюструктуру записи к записи базы данных.Спецификация элемента преобразует абстрактную запись базы данныхв другой экземпляр абстрактной записи (преобразование может быть нулевым).По спецификации элемента из абстрактной записи отбираются эле-


22 Программные средства и математические основы информатикименты, а также, возможно, указываются формы варианта для этих элементов.Сервер применяет к этой абстрактной записи синтаксис записи дляпредставления извлеченных записей, в результате чего получается структура,подлежащая пересылке (извлеченная запись).Теперь на конкретном примере рассмотрим вышеопределенные понятиясхемы базы данных и абстрактной структуры записи. Предположим, существуютдва музея (музейных информационных систем), в которых независимоведется учет музейных предметов. Учет ведется в различных СУБД,информация классифицируется по следующим полям.Таблица 11Список полей баз данных двух музейных системMuseum1IdentifierTitleTypeCreatorDatePlaceMaterialTechniqueDimensionsPeriodKeywordsDescriptionMuseum2ObjectIDObjectTitleObjectTypeCreatorNameCreatorDateOfBirthCreatorDateOfDeathCreatorRoleDateOfOriginPlaceOfOriginStylePeriodSubjectОчевидно, что происходит накопление однотипной информации, ноструктуры данных в системах отличаются. Построим некую обобщающуюмодель данных, в которой зафиксируется суть накапливаемой информации.Эта модель должна включать позиции, представленные в табл. 12.


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 23Обобщающая модель данныхТаблица 12Идентификационный номер предметаНазвание предметаТипологияИнформация о создателе (имя, дата рождения, дата смерти, роль)Дата созданияМесто созданияМатериалТехникаРазмерыКультурный периодКлючевые словаКраткое описание предметаВ иерархической схеме это будет выглядеть следующим образом:ИдентификаторНазваниеТипологияСоздательИмяДата рожденияДата смертиРольДата созданияМесто созданияМатериалТехникаРазмерыКультурный периодКлючевые словаКраткое описаниеК этой схеме нужно добавить дополнительные характеристики, такиекак обязательность, повторяемость полей и поисковые атрибуты. Примерприведен в табл. 13.


24 Программные средства и математические основы информатикиСхема данныхТаблица 13Название поля Обязательность Повторяемость Поисковые атрибутыИдентификатор обязательно не повторяется 2024Название обязательно не повторяется 4,2033,2047Типология обязательно не повторяется 1031,2032Создатель обязательно не повторяется 1003,2041Имя обязательно не повторяется 2035,2046Дата рождения не обязательно не повторяется 2036Дата смерти не обязательно не повторяется 2037Роль не обязательно не повторяется 2014Дата создания обязательно не повторяется 58,2022,2048Место создания обязательно не повторяется 2023,2049Материал не обязательно повторяется 2008Техника не обязательно повторяется 2012Размеры не обязательно не повторяется 2074Культурный периодобязательно повторяется2017Ключевые слова обязательно повторяется 2040Краткое описание не обязательно не повторяется 62В последнем столбце проставлены соответствующие значения поисковыхUse атрибутов по CIMI-1. Таким образом, мы определили модель данных,которая называется в Z39.50 схемой данных.Следующий шаг — определение абстрактной структуры записи. Дляэтого воспользуемся наборами тэгов Generic Tag Set (2), набор элементовкоторого приведен ниже в таблице 14, и CIMI Tag Set (5), набор элементовкоторого будет приведен позже при рассмотрении профиля CIMI в таблице19.


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 25Набор тэгов Generic Tag Set (TagSet-G)Таблица 14тэг элемент тэг элемент тэг элемент тэг элемент1 title 11 postalAddress 21 subject 31 publisher2 author 12 networkAddress 22 resourceType 32 contributor3 publication-Place13 eMailAddress 23 city 33 source4 publicationDate 14 phoneNumber 24 stateOrProvince 34 coverage5 documentId 15 faxNumber 25 zipOrPostalCode 35 private6 abstract 16 country 26 cost 36 databaseName7 name 17 description 27 format 37 recordId8 dateTime 18 time 28 identifier9 displayObject 19 DocumentContent 29 rights10 organization 20 language 30 relationВ таблице 15 приведены элементы и тэги, используемые в абстрактнойструктуре записи.Таблица 15Используемые элементы и тэги(2,7) - Name (5,5) -(5,11) —(5,31) -MaterialMedium PlaceOfOrigin ObjectName(2,17) - (5,8) -(5,12) -(5,32) -Description DateOfBirth ProcessTechnique ObjectTitle(5,2) - (5,9) -(5,13) — Dimensions (5,36) -Subject DateOfDeathCreatorInfo(5,3) -(5,14) —(5,45) -(5,10) - RoleObjectIDStylePeriodDateOfOriginОпределим меточную абстрактную структуру записи.Абстрактная структура записиТаблица 16Тэговый путь Элемент(5,3) ObjectID(5,32) ObjectTitle(5,31) ObjectType(5,36) Creator


26 Программные средства и математические основы информатики(5,36)/(2,7) CreatorName(5,36)/(5,8) CreatorDateOfBirth(5,36)/(5,9) CreatorDateOfDeath(5,36)/(5,10) CreatorRole(5,45) DateOfOrigin(5,11) PlaceOfOrigin(5,14) Period(5,5) Material(5,12) Technique(5,13) Dimensions(5,2) Keywords(2,17) DescriptionПервая цифра в скобках означает номер набора тэгов, а вторая — номертэга в наборе. Каждая строчка в определении абстрактной структуры записиимеет тэговый путь (TagPath), именована и называется элементом. Элементымогут быть простыми (ObjectTitle) и сложными (Creator).Теперь вернемся к двум музейным системам, которым требуется науровне извлеченных записей объединить свои базы данных. Для этого имнеобходимо просто выдавать записи в соответствии с определенной схемой.В каждом музее потребуется установление соответствия элементов абстрактнойструктуры полям реальных баз данных и соответственное их наполнение.Формат GRS-1Рассмотренные схема данных и абстрактная структура записи определяютлишь логическую структуру записи. Физическая реализация этойструктуры остается неопределенной. Стандарт Z39.50 требует, чтобы записииз внутреннего представления отображались во внешние структуры, которыеи пересылаются по сети. Для внешних представлений, которые стандартизуютсяв классе recordSyntax {Z39.50 5}, физическая реализация становитсяопределяющей.Существует всего один универсальный формат внешнего представления(recordSyntax), который однозначно отображает абстрактную структурузаписи в экспортируемую внешнюю физическую структуру. Он называетсяGRS-1 (Generic Record Syntax) OID {Z39.50 5 105}.Полное ASN.1 определение записи в формате GRS-1 можно найти вприложении к документации по Z39.50 [5,6]. Если в этом определении оста-


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 27вить основное, исключив метаинформацию (metaData) и варианты (applied-Variant), то останется:GenericRecord ::= SEQUENCE OF TaggedElementTaggedElement ::= SEQUENCE {tagType[1] IMPLICIT INTEGER OPTIONAL,tagValue [2] StringOrNumeric,tagOccurrence [3] IMPLICIT INTEGER OPTIONAL,content[4] ElementData,metaData[5] IMPLICIT ElementMetaData OP-TIONAL,appliedVariant [6] IMPLICIT Variant OPTIONAL}ElementData ::= CHOICE{octetsOCTET STRING,numericINTEGER,dateGeneralizedTime,extEXTERNAL,stringInternationalString,trueOrFalseBOOLEAN,oidOBJECT IDENTIFIER,intUnit[1] IMPLICIT IntUnit,elementNotThere [2] IMPLICIT NULL, -- elementrequested but not thereelementEmpty [3] IMPLICIT NULL, -- elementthere, but emptynoDataRequested [4] IMPLICIT NULL, -- variantrequest said 'no data'diagnostic[5] IMPLICIT EXTERNAL,subtree[6] SEQUENCE OF TaggedElement}Итак, упрощенно можно полагать, что запись в формате GRS-1 — этопоследовательность элементов (taggedElement), каждый их которых содержиттип тэга (tagType, т. е. номер tagSet), значение тэга (tagValue), вхождениетэга (tagOccurrence) и данные (content). Значение тэга может быть числовымили текстовым. Данные — это или значение, или вложенный элемент(taggedElement) с описанной структурой (определение subtree ничем неотличается от определения GenericRecord). Таким образом, GRS-1 представляетсобой последовательность элементов со структурой, определеннойв терминах, аналогичных определению абстрактной структуры записи исхемы данных, с бесконечным количеством вложений.


28 Программные средства и математические основы информатики5. ПРОФИЛЬ CIMIТеперь рассмотрим более подробно, как происходит доступ к информациио культурном наследии по протоколу Z39.50 в соответствии с профилемCIMI (OID 1.2.840.10003.3.8.) [4,10].Профиль CIMI определяет подмножество характеристик Z39.50, опций ипараметров, необходимых для поддержки функциональности и требованийпользователя при поиске и извлечении информации о культурном наследии.Профиль CIMI оперирует со следующими объектами Z39.50.Таблица 17Объекты Z39.50 профиля CIMIНаборы поисковых Bib-1 1.2.840.10003.3.1атрибутов: CIMI-1 1.2.840.10003.3.8Диагностика: Bib-1 1.2.840.10003.4.1Форматы:Схемы:Наборы тэгов:GRS-1 1.2.840.10003.5.105SUTRS 1.2.840.10003.5.101Usmarc 1.2.840.10003.5.10Digital Collections Schema 1.2.840.10003.13.3CIMI Schema 1.2.840.10003.13.5TagSet-M (Metadata TagSet) 1.2.840.10003.14.1TagSet-G (Generic TagSet) 1.2.840.10003.14.2Collections TagSet 1.2.840.10003.14.5CIMI TagSet 1.2.840.10003.14.6На основе этих объектов определены модели поиска и извлечения данныхс музейной информацией. Полное описание профиля CIMI достаточнообъемно и здесь приводиться не будет [10]. Ниже будут отмечены тольконекоторые аспекты, характерные для этого профиля.ПоискДля проведения пользователем поиска во многих базах данных на несколькихсерверах необходимо стандартизировать поисковое выражениетаким образом, чтобы клиент и сервер могли обмениваться информациейнедвусмысленным образом. Эта задача решается путем определения набораатрибутов, который определяет множество пунктов доступа и дополнитель-


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 29ную информацию, используемую для характеристики поисковых термов, атакже путем представления поисковой строки стандартным образом.Набор атрибутов CIMI-1Профиль CIMI определяет стандартный набор атрибутов CIMI-1 дляпоиска информации о культурном наследии, поддержка которого являетсяобязательной для CIMI клиентов и серверов. Набор CIMI-1 используетшесть типов атрибутов, определенных в наборе Bib-1 (типы атрибутов Use,Relation, Position, Structure, Truncation и Completeness) [7]. CIMI-1 такжеопределяет два новых типа атрибутов: тип 101 — Authority (авторитетныйисточник) и тип 102 — Charset (набор символов).Тип атрибутов Authority содержит значения, идентифицирующие авторитетныйисточник, из которого взят термин. В качестве примера значенийAuthority атрибутов можно перечислить следующие: Non-authoritative, Local-to-server,USMARC, LCSH (Library of Congress Subject Headings), AAT(Art & Architecture Thesaurus), Dictionarium Museologicum, ISO Documentationи так далее.Тип атрибутов Charset включает значения, идентифицирующие наборсимволов, используемый для кодировки термина. В качестве примера значенийCharset атрибутов можно привести следующие: 7-bit US-ASCII, ISO8859-1 (Latin-1), ISO 8859-5 (Cyrillic), ISO 8859-6 (Arabic) и так далее.Что касается Use атрибутов, определенных в CIMI-1, то они частичнополучены из пунктов доступа CIMI (CIMI Access Points) [8], а также из другихруководств и стандартов по информации о культурном наследии. ИспользованиеUse атрибутов CIMI-1 позволяет клиенту расширить поискмузейной информации по специфическому содержанию (например, по названиюи типологии объекта, сведениям о создателе, дате и месте происхожденияобъекта, культурному периоду, материалу и технике, размерам,данным о хранении и т.д.) стандартным путем, который может быть понятсервером. CIMI-1 также содержит небольшое подмножество (14 значений сномерами в промежутке от 4 до 1032) Use атрибутов набора Bib-1 (title,ISBN, ISSN, date of publication, abstract, author и т.д.). Эти атрибуты включеныдля обеспечения CIMI клиентам базисного поиска (автор–название–ключевые слова) в библиографических базах данных, а также для поддержкипоиска на CIMI серверах библиографическими клиентами Z39.50, неподдерживающими профиль CIMI.Набор атрибутов CIMI-1 был разработан консорциумом CIMI при изучениисуществующих стандартов и систем после проведения анализа запросовпользователей к музейным коллекциям. Он отражает в себе соглашения


30 Программные средства и математические основы информатикис широким музейным сообществом о наборе пунктов доступа, которыедолжна поддерживать система. Таким образом, набор CIMI-1 предоставляетмеханизм совместного понимания при поиске для клиента и сервера. Например,когда пользователь отправляет запрос на извлечение информации о«происхождении произведения», база данных сервера может иметь или неиметь «происхождение произведения» как отдельный пункт доступа. В этомслучае необходимо, чтобы такой запрос был корректно отображен серверомна соответствующие поля или индексы локальной базы данных. Сервер,поддерживающий этот профиль, может понять, когда он получает запрос на«происхождение произведения», поскольку запрос представлен и выражен встандартной форме набора атрибутов CIMI-1.Для переадресации запросов профиль использует набор элементов метаданныхДублинского ядра (Dublin Core Metadata) [11]. Use атрибуты, ассоциированныес элементами Дублинского ядра (DC-title, DC-creator, DCsubject,DC-description и т.д.), могут выразить запрос на поиск в терминахпунктов доступа, представленных или охарактеризованных элементамиДублинского ядра.Локальные реализации могут определять Use атрибуты для локальногоиспользования и присваивать им значения, находящиеся в промежутке5000-7999.Полная спецификация набора атрибутов CIMI-1 приведена в приложениик документации по CIMI профилю (APPENDIX A: CIMI-1 Attribute Set).Ниже приведен список Use атрибутов CIMI-1, информация о семантике которыхдоступна в приложении к документации (APPENDIX C: Semantics forUse Attributes and Schema Elements) [10].


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 31Use атрибуты набора CIMI-1Таблица 18ЗначеничениеЗна-Название атрибутаНазвание атрибута4 title 2041 creatorGeneral7 ISBN 2042 associationGeneral8 ISSN 2043 objectLanguage31 date of publication 2044 condition32 date of acquisition 2045 physicalDescription54 code language 2046 who58 name geographic 2047 what62 abstract 2048 when1003 author 2049 where1004 personal author 2051 DC-title1016 any 2052 DC-creator1018 publisher 2053 DC-subject1031 material type 2054 DC-description1032 doc-id 2055 DC-publisher2000 award 2056 DC-contributors2002 collection 2057 DC-date2004 copyrightRestriction 2058 DC-type2005 creditLine 2059 DC-format2007 inscriptionMark 2060 DC-identifier2008 materialMedium 2061 DC-source2009 creatorNationalityCultureRace2062 DC-language2012 processTechnique 2063 DC-relation2014 creatorRole 2064 DC-coverage2017 stylePeriod 2065 DC-rights2020 image 2070 fieldCollector2022 dateOfOrigin 2071 dateCollected2023 placeOfOrigin 2072 agePeriod2024 objectID 2073 typeSpecimen2026 owner 2074 dimensions2027 repositoryName 2075 quantity2028 repositoryPlace 2076 relatedObjects2029 provenance 2077 resource2030 contentGeneral 2078 wallTextLabel2032 objectName 2079 administrativeEventGeneral2033 objectTitle 2080 administrator2034 relatedTextualReferences 3000 protectionStatus2035 creatorName 3001 protectionDate2036 creatorDateOfBirth 3003 spatialReferencingSystem2037 creatorDateOfDeath 3004 x-coordinateInReferencingSystem2038 contextHistorical 3005 y-coordinateInReferencingSystem2039 contextArchaelogical 3007 Address2040 subjectContent 3009 PeriodName


32 Программные средства и математические основы информатикиCIMI сервера должны предусматривать ситуацию, когда поисковый запроссодержит только один поисковый терм, а атрибуты не присутствуют взапросе. В этом случае в CIMI профиле рекомендуется использовать следующиезначения по умолчанию для атрибутов каждого типа. Если запроссодержит только поисковый терм без указания Use атрибута, для Use атрибутапринимается значение по умолчанию, равное «Any» (1016). Что касаетсяатрибутов типов 2-6, следующие значения рекомендуются по умолчанию:для типа Relation — «equal» (3), типа Position — «any position in field»(3), типа Structure — «word» (2), типа Truncation — «do not truncate» (100) итипа Completeness — «complete field» (3). Тип Authority не имеет значенияпо умолчанию, сервер интерпретирует его отсутствие в запросе клиентапросто как отсутствие данных по этому поводу и обрабатывает запрос посвоему усмотрению. Поддержка в запросе логических операторов AND иOR для CIMI клиентов и серверов является обязательной.ВыборДля проведения поиска информации во многих базах данных на несколькихсерверах необходимо обеспечить выполнение следующих двухтребований. Во-первых, клиенты и серверы должны быть способны обмениватьсязаписями из баз данных (или элементами записей) в форматах,которые они могут распознавать и обрабатывать. Во-вторых, клиенты исерверы должны иметь одинаковое понимание элементов в этих базах данныхи возможность идентифицировать эти элементы недвусмысленно длявыбора информации, которую необходимо получить. Спецификации выборапозволяют клиенту и серверу обмениваться информацией о записях вбазе данных для извлечения полной записи или определенных единиц информации(т.е. одной или более групп полей базы данных).Профиль CIMI реализует эту возможность путем определения наборатэгов CIMI (CIMI Tag Set), схемы CIMI (CIMI Schema) и абстрактной структурызаписи (Abstract Record Structure — ARS) для извлечения записей.Аналогично, как и для набора атрибутов CIMI-1, обсужденных выше, схемаCIMI и соответствующая абстрактная структура записи служат «языкомвзаимопонимания» для обмена между клиентом и сервером при извлеченииинформации.Схема CIMI и набор тэгов CIMI Tag SetСхема CIMI абстрактно определяет единицы информации, которые могутприсутствовать в записях локальных баз данных объектов, изображений


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 33с присоединенным текстом и каталожных записях. Схема не указывает, какполе названо в реальной базе данных, а предлагает стандартный путь дляименования этих элементов или полей. Всякая локальная база данных применяетсвои термины для обозначений полей базы данных и их структуры.Схема обеспечивает абстрактное представление этих баз данных: в этомабстрактном виде поля базы данных пронумерованы как элементы схемы,каждый элемент которой имеет уникальное имя, уникальную цифровуюметку (тэг) и определение. Схема также показывает структурную организациюэтих элементов в абстрактную структуру записи.Например, схема CIMI определяет элемент dateOfOrigin. Локальная базаданных может иметь одно или более полей, относящихся к «дате созданияобъекта». Поскольку семантика предлагается для каждого элемента схемыCIMI, администратор базы данных знает, что в случае, если клиентом запрошенэлемент dateOfOrigin, то должна быть возвращена информация,относящаяся к «дате создания объекта».CIMI схема использует элементы, определенные в наборе тэгов CIMITag Set, так же как и элементы из других зарегистрированных наборов тэгов.Ниже приведен набор тэгов CIMI Tag Set (OID=1.2.840.10003.14.6), содержащийзначения тэгов и названия элементов. Семантика этих элементовприведена в приложении к документации по профилю CIMI (Appendix C --Semantics for Use Attributes and Schema Elements).Таблица 19Набор тэгов CIMI Tag SetТэг Элемент Тэг Элемент Тэг Элемент1 RepositoryName 25 content 50 associationGeneral2 Subject 26 repositoryPlace 51 objectLanguage3 ObjectID 28 mrObject 52 condition4 nationalityCultur-29 rendition 53 physicalDescriptioneRace5 MaterialMedium 30 resource 54 wallTextLabel7 CreditLine 31 objectName 55 protectionStatus8 DateOfBirth 32 objectTitle 56 protectionDate9 DateOfDeath 33 bibliographicTitle 57 spatialReferencing-System10 Role 35 relatedTextual-References58 xCoordinateInSpatial-ReferencingSystem11 PlaceOfOrigin 36 creatorInfo 59 yCoordinateInSpatial-ReferencingSystem12 ProcessTechnique 38 owner 60 fieldCollector13 Dimensions 39 contentGeneral 61 dateCollected


34 Программные средства и математические основы информатики14 StylePeriod 41 place 62 agePeriod15 Provenance 42 event 63 typeSpecimen16 RelatedObjects 43 activity 64 address17 Quantity 45 dateOfOrigin 65 periodName18 Award 46 contextHistorical 66 administrativeEvent20 Collection 47 contextArchaelogical22 InscriptionMark 48 copyrightRestric-67 administrativeEvent-Type68 administrativeEvent-Generaltion24 Association 49 creatorGeneral 69 administratorCIMI схема определяет также пять структурных типов данных (элементов):CreatorInfo, MrObject, Rendition, MoreInfo, AdministrativeEvent. Схемапозволяет извлекать одно или более «изображений», ассоциированных сзаписью об объекте (где под «изображением» понимается любой тип электронногоресурса, включая видео, аудио, графику). Каждому экземпляру«изображения» соответствует элемент схемы mrObject. Поскольку один итот же электронный ресурс может быть представлен в нескольких вариантах(например, изображения различных размеров), схема содержит понятиео «представлении» (Rendition), которое является специфической версией«изображения». Каждому имеющемуся варианту «изображения» соответствуетэлемент Rendition, подэлемент элемента mrObject. Элемент Renditionвключает подэлемент Resource, который содержит или URL ресурса, илинепосредственно сам электронный ресурс. Таким образом, сервер можетвернуть клиенту одно или более «изображений», так же как и одно или болеевидов (представлений) каждого «изображения». Более того, для каждогоизображения и наглядного представления может быть извлечена специфическаяописательная информация.Абстрактная структура записи CIMICIMI схема описывает абстрактную структуру записи, определяющуюразмещение и порядок элементов в извлеченной записи. Поскольку CIMIпрофиль является дополнительным к профилю для доступа к цифровымколлекциям (Digital Collections Profile) [9], схема данных CIMI и абстрактнаяструктура записи основаны на использовании схемы Digital Collections.Абстрактная структура записи CIMI поддерживает структуру записи DigitalCollections и вложена в элемент actualDO записи Digital Collections (objectdescriptive record).Термин абстрактная структура записи обычно используется в контекстеспецифической схемы. В CIMI профиле абстрактная структура записи вы-


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 35ходит за пределы CIMI схемы. Абстрактная структура записи специфицируетиспользование элементов из наборов тэгов tagSet-M, tagSet-G, CollectionsTag Set и CIMI Tag Set. Следующие типы тэгов (1-5) используются в нейдля извлеченной записи.Таблица 20Типы тэгов в абстрактной структуре записи CIMIТиптэговОпределениеЭлементы из tagSet-M. Сервер может включать их по своему выбору,1а клиент может их игнорировать (кроме элементаschemaIdentifier).Элементы из tagSet-G. Сервер может включать элементы, не перечисленные2в абстрактной структуре записи, а клиент может ихигнорировать.Зарезервирован для тэгов, локально определенных сервером. Серверы,посылающие строковые тэги для локально определенных элементов,3должны использовать 3 тип тэгов для их идентификации.Строковые тэги следует использовать только тогда, когда имеющиесяв наличии элементы из tagSet-M, tagSet-G, CollectionsTagSet и CIMI TagSet не адекватны.4 Элементы из Collections Tag Set.5 Элементы из CIMI Tag Set.Абстрактная структура извлеченной записи, определенная в CIMI профиле,поддерживает три уровня семантической интероперабельности путемразделения записи на три уровня элементов: общий уровень (Generic Level),уровень схемы цифровых коллекций (Digital Collections Schema Level) иуровень CIMI схемы (CIMI Schema Level). Это разделение позволяет обеспечитьсемантическую интероперабельность между CIMI серверами иZ39.50 клиентами, не поддерживающими CIMI профиль.Чтобы обеспечить эти три уровня семантической интероперабельности,необходимо добавить элемент schemaIdentifier (из tagSet-M) в извлеченнуюзапись. На общем уровне семантической интероперабельности абстрактнаяструктура записи предполагает использование тэгов типов 1, 2 и 3. На уровнеDigital Collections — использование тэгов типов 1, 2 ,3 и 4, а на уровнеCIMI — тэгов типов 1, 2 ,3, 4 и 5.В нижеприведенных таблицах используются следующие обозначениядля вхождения элементов: [0,1] (не обязательно, не повторяется), 0+ (необязательно, повторяется), 1 (обязательно, не повторяется), 1+ (обязательно,повторяется).


36 Программные средства и математические основы информатики1. Общий уровень (Generic Level) семантической интероперабельности:в начале извлеченной записи могут присутствовать элементы из tagSet–M и tagSet–G. Серверы и клиенты Z39.50 могут распознавать и обрабатыватьэти элементы, даже если они не поддерживают ни одной специализированнойсхемы. Таким образом, включение общих элементов на верхнемуровне извлеченной записи позволяет любым клиентам Z39.50 производитьпоиск в базах данных, содержащих описательные записи коллекций и объектов,и частично их обрабатывать.Таблица 21Общий уровень абстрактной структуры записиТэговый путь Элемент Вхождение(1,14) localControlNumber 1(2,1) title 0+(2,2) creator 0+(2,32) contributor 0+(2,8) date 0+(2,170) description 0+(2,28) identifier 0+(2,22) type 0+(2,20) language 0+(2,21) subject 0+(2,31) publisher 0+(2,27) format 0+(2,33) source 0+(2,30) relation 0+(2,34) coverage 0+(2,29) rights 0+2. Уровень схемы цифровых коллекций (Digital Collections SchemaLevel) семантической интероперабельности: принимается схема Digital Collections(указывается с помощью schemaIdentifier), и поддерживающие ееклиенты Z39.50 могут распознавать и обрабатывать эти элементы. Такимобразом, клиенты, поддерживающие схему Digital Collections, могут выполнятьпоиск в базах данных, предоставляемых CIMI серверами. Они могутизвлекать эти записи, но не могут обрабатывать их полностью.


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 37Таблица 22Тэговый путьВхождениеЭлемент(1,1) schemaIdentifier 1(4,1) typeOfDescriptiveRecord 1(4,4) objectInfo 1(4,4)(4,12) typeOfObject 1(4,4)(4,13) categoryOfObject [0,1](4,4)(4,14) digitalObject 1(4,4)(4,14)(4,29) actualDO 1Табл. 22. Уровень Digital Collections абстрактной структуры записи3. Уровень схемы CIMI (CIMI Schema Level) семантической интероперабельности:принимается схема CIMI (указывается с помощью schemaIdentifier),и Z39.50 клиенты, ее поддерживающие, могут распознавать иобрабатывать остальные элементы записи (т.е. полностью обрабатыватьцелую извлеченную запись).Таблица 23Уровень CIMI абстрактной структуры записиТэговый путьЭлементВхождение(4,4)(4,14)(4,29)(1,1) SchemaIdentifier 1(4,4)(4,14)(4,29)(5,31) ObjectName 0+(4,4)(4,14)(4,29)(5,32) ObjectTitle 1+(4,4)(4,14)(4,29)(5,33) bibliographicTitle 1+(4,4)(4,14)(4,29)(5,49) creatorGeneral 0+(4,4)(4,14)(4,29)(5,36) creatorInfo 0+(4,4)(4,14)(4,29)(5,60) fieldCollector 0+(4,4)(4,14)(4,29)(5,1) repositoryName 0+(4,4)(4,14)(4,29)(5,26) repositoryPlace 0+(4,4)(4,14)(4,29)(5,38) owner 0+(4,4)(4,14)(4,29)(5,7) creditLine 0+(4,4)(4,14)(4,29)(5,2) subject 0+(4,4)(4,14)(4,29)(5,3) objectID 0+(4,4)(4,14)(4,29)(5,5) materialMedium 0+(4,4)(4,14)(4,29)(5,12) processTechnique 0+(4,4)(4,14)(4,29)(5,13) dimensions 0+(4,4)(4,14)(4,29)(5,11) placeOfOrigin 0+(4,4)(4,14)(4,29)(5,45) dateOfOrigin 0+


38 Программные средства и математические основы информатики(4,4)(4,14)(4,29)(5,61) dateCollected 0+(4,4)(4,14)(4,29)(5,62) agePeriod 0+(4,4)(4,14)(4,29)(5,63) typeSpecimen 0+(4,4)(4,14)(4,29)(5,14) stylePeriod 0+(4,4)(4,14)(4,29)(5,65) periodName 0+(4,4)(4,14)(4,29)(5,15) provenance 0+(4,4)(4,14)(4,29)(5,17) quantity 0+(4,4)(4,14)(4,29)(5,18) award 0+(4,4)(4,14)(4,29)(5,20) collection 0+(4,4)(4,14)(4,29)(5,22) inscriptionMark 0+(4,4)(4,14)(4,29)(5,51) objectLanguage 0+(4,4)(4,14)(4,29)(5,52) condition 0+(4,4)(4,14)(4,29)(5,53) physicalDescription 0+(4,4)(4,14)(4,29)(5,55) protectionStatus 0+(4,4)(4,14)(4,29)(5,56) protectionDate 0+(4,4)(4,14)(4,29)(5,57) spatialReferencingSystem 0+(4,4)(4,14)(4,29)(5,58) xCoordinateInSpatialReferencingSystem0+(4,4)(4,14)(4,29)(5,59) yCoordinateInSpatialReferencingSystem0+(4,4)(4,14)(4,29)(5,64) address 0+(4,4)(4,14)(4,29)(5,16) relatedObjects 0+(4,4)(4,14)(4,29)(5,35) relatedTextualReferences 0+(4,4)(4,14)(4,29)(5,50) associationGeneral 0+(4,4)(4,14)(4,29)(5,24) association 0+(4,4)(4,14)(4,29)(5,39) contentGeneral 0+(4,4)(4,14)(4,29)(5,25) content 0+(4,4)(4,14)(4,29)(5,46) contextHistorical 0+(4,4)(4,14)(4,29)(5,47) contextArchaelogical 0+(4,4)(4,14)(4,29)(5,48) copyrightRestriction 0+(4,4)(4,14)(4,29)(5,54) wallTextLabel 0+(4,4)(4,14)(4,29)(2,9) displayObject 0+(4,4)(4,14)(4,29)(5,68) administrativeEventGeneral 0+(4,4)(4,14)(4,29)(5,66) administrativeEvent 0+(4,4)(4,14)(4,29)(5,69) administrator 0+(4,4)(4,14)(4,29)(5,28) mrObject 0+Наборы элементов b , mb , fСервер создает результирующий набор в ответ на запрос. Результирующийнабор — это множество указателей на записи в одной или более базах


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 39данных. Именованные наборы элементов идентифицируют группы элементовв записи базы данных, возвращаемой клиенту сервером. CIMI профильопределяет следующие три именованные набора элементов для абстрактнойструктуры извлеченной записи: b , mb , f .Набор элементов b (brief record) предназначен для извлечения краткойформы записи базы данных, составленной из элементов tagSet–G верхнегоуровня абстрактной структуры извлеченной записи, который соответствуетосновному (общему) уровню поиска и извлечения при использовании элементовDublin Core Metadata. Что касается элементов, составляющих наборэлементов b, они в точности совпадают с набором элементов общего уровняабстрактной структуры записи и уже были приведены выше в табл. 21. Серверможет также включать в запись другие элементы из tagSet–G и tagSet–M.Набор элементов mb (museum brief record) предназначен для извлечениякраткой формы записи базы данных согласно принятым в музейныхсистемах стандартам. Цель этой краткой формы — предоставить CIMI клиентамдостаточное количество элементов для построения краткой записи(tombstone record). Набор элементов mb включает элементы уровней DigitalCollections и CIMI абстрактной структуры записи, которые приведены втаблицах 22 и 23. Сервер может также включать в запись элементы изtagSet–G и tagSet–M.Набор элементов f (full record) включает все имеющиеся элементы записибазы данных. Элементы записи базы данных, которые могут быть помеченыимеющимися тэгами из tagSet–G, tagSet–M, tagSet–Collections иtagSet–CIMI, должны быть помечены соответствующим образом. Дополнительныеэлементы, возвращаемые сервером, должны быть или включены вэлемент displayObject, или должны использоваться строковые тэги изтретьего типа тэгов для локально определенных элементов. Строковые тэгии содержащиеся в displayObject данные клиент не обрабатывает, а предоставляетпользователю в неизмененном виде.ПередачаСхема CIMI и ассоциированная с ней абстрактная структура записи описывают,как должны быть однозначно помечены сервером элементы/полябазы данных. Передача элементов от сервера к клиенту требует еще одногонабора спецификаций. Z39.50 использует понятие синтаксиса записей дляопределения того, каким образом сервер упаковывает элементы базы данныхдля отсылки клиенту. Синтаксис записи предписывает серверу, каким


40 Программные средства и математические основы информатикиобразом должны быть отформатированы элементы/поля базы данных передотсылкой их клиенту.Общий синтаксис записи GRS-1 (Generic Record Syntax) Z39.50 позволяетсерверу использовать произвольно структурированные данные. ПрофильCIMI требует поддержки только синтаксиса записи GRS-1, обязательнойявляется поддержка следующих параметров GRS-1: tagType, tagValue,tagOccurrence, content, appliedVariant.Для обеспечения интероперабельности между библиотеками и музеямисервера могут поддерживать другие синтаксисы записи, включая USMARCи SUTRS (Simple Unstructured Text Record Syntax).Схема CIMI может быть использована и вне протокола Z39.50. Тогда,когда работа происходит за рамками профиля CIMI, можно создавать и передаватьзаписи баз данных, соответствующих схеме CIMI, в других форматах,таких как, например, XML.6. ПРИМЕР РАСПРЕДЕЛЕННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫНА БАЗЕ Z39.50В заключение приведем пример распределенной информационной системына базе Z39.50, схема которой приведена на рис. 2.Центральное место в информационной системе занимают несколькосерверов Z39.50, каждый из которых обеспечивает доступ к своим базамданных. Все серверы Z39.50 связаны механизмом перенаправления запросов.В качестве клиентского программного обеспечения для простого доступак информационной системе можно использовать шлюз Z39.50-WWW,представляющий собой CGI-приложение с функциями клиента Z39.50. Дляэтого система должна содержать WWW-сервер, на котором исполняетсяпрограмма шлюза WWW-Z39.50.Доступ пользователей к информационной системе может осуществлятьсяиз обычных WEB-броузеров (клиент WWW) через шлюз WWW-Z39.50или из специализированных рабочих мест по протоколу Z39.50 (клиентZ39.50).


Волянская Т. А. Стандарт ANSI/NISO Z39.50 и профиль CIMI 41Рис. 2. Схема распределенной информационной системы на базе Z39.50ЗАКЛЮЧЕНИЕПрофиль CIMI отражает набор спецификаций при использовании Z39.50для поиска и извлечения информации о культурном наследии. Он такжепредоставляет две значительных области стандартизации, которые могутбыть полезны вне области применения Z39.50.Во-первых, набор атрибутов CIMI-1 определяет большой набор пунктовдоступа, который может быть использован для поиска информации о культурномнаследии. Поскольку этот набор пунктов доступа был получен врезультате эмпирических исследований и обсуждений с членами музейногосообщества, он может рассматриваться как представление общего наборапунктов доступа, полезных в области информации о культурном наследии.Во-вторых, схема CIMI предоставляет стандартный список элементовбаз данных и организации этих элементов для обмена информацией о культурномнаследии. Стандартный список может быть использован как конверторили метаязык, для того чтобы пометить элементы локальной базыданных и обмена этими элементами с другими системами.Z39.50 как протокол обмена использует этиструктуры, для того чтобы сделать возможным интероперабельный поиск и


42 Программные средства и математические основы информатикиизвлечение информации. В контексте приложения к информации о культурномнаследии профиль CIMI определяет использование взаимопонятныхатрибутов и элементов схемы для стабильного извлечения информации посредствомZ39.50.Возможно, в скором времени и музейное сообщество России подключитсяк программе предоставления доступа к своим информационным ресурсампо протоколу Z39.50 с использованием профиля CIMI.СПИСОК ЛИТЕРАТУРЫ1. Жижимов О.Л. Введение в Z39.50. — Новосибирск: Изд-во НГОНБ, 2000.2. Жижимов О.Л., Мазов Н.А. О доступе к информационным ресурсам по культурномунаследию по протоколу Z39.50 // Матер. конф. EVA'2000. «Электроннаяконвергенция: новые технологии в музеях, галереях, библиотеках и архивах»,30 окт.–3 нояб. 2000 г. — М.: Центр ПИК Минкультуры РФ, 2000. —08-2-1–08-2-2.3. Касьянов В.Н., Несговорова Г.П., Волянская Т.А. Виртуальный музей историиинформатики в Сибири. // Современные проблемы конструирования программ.— Новосибирск, 2002. — С. 169–181.4. Мазов Н.А., Жижимов О.Л. Профиль Z39.50-CIMI как основа интеграции информационныхресурсов по культурному наследию // Матер. конф. EVA'2003.«Информация для всех: культура и технологии информационного общества»,1–5 дек. 2003 г. — М.: Центр ПИК Минкультуры РФ, 2003.5. ANSI/NISO Z39.50-1995. Information Retrieval (Z39.50): Application Service Definitionand Protocol Specification. // Z39.50 Maintenance Agency Official Text forZ39.50-1995. — 156 p. 6. ANSI/NISO Z39.50-2003. Information Retrieval (Z39.50): Application Service Definitionand Protocol Specification. // NISO Press, Bethesda, Maryland, U.S.A. — 276p. 7. Attribute Set Bib-1 (Z39.50-1995): Semantics. (1995, September)..8. Janney, Kody and Sledge, Jane. (1995, September). A User Model for CIMI Z39.50Application Profile..9. Library of Congress. (1996, May). Z39.50 Profile for Access to Digital Collections..10. The CIMI Profile Release 1.0H. A Z39.50 Profile for Cultural Heritage Information.(1998, November).11. Weibel, S., Kunze, J., Lagoze, C., Wolf, M. (1998, September). RFC 2413: DublinCore Metadata for Resource Discovery.


П. А. ДортманПОДХОДЫ К ОПТИМИЗАЦИИ ПРОГРАММ В СИСТЕМЕ SFP *1. ВВЕДЕНИЕНастоящая работа выполняется в рамках проекта по созданию системыфункционального программирования SFP [1]. Эта система позволяет прикладномупрограммисту разрабатывать вычислительные алгоритмы на языкеSisal 3.0 на своей рабочей станции под управлением Windows и генерироватьпрограммы для последующего исполнения на суперЭВМ. Системаразрабатывается с использованием Microsoft Visual Studio.Язык Sisal 3.0 — функциональный язык однократного присваивания —был разработан как альтернатива ФОРТРАНу для реализации сложных вычислительныхалгоритмов главным образом для научных вычислений [2, 3].Традиционно для представления Sisal-программ используют представлениепрограммы в виде иерархического ациклического потокового графа (например,IF1-представления [4]). В системе SFP внутреннее представлениеSisal-программ (будем называть его IR1-представлением) также реализованокак набор классов языка Си++, реализующих средства для работы с IF1-графами.2. IF1-ПРЕДСТАВЛЕНИЕКаждый IF1-граф служит для представления некоторой логически целостнойчасти вычислений, например, для представления в программе функций,отдельных итераций цикла и т.п. А сама программа, таким образом,представляется в виде набора графов функций.Каждый IF1-граф состоит из вершин (операций) и дуг, которые представляютсобой передачу значения между операциями во время исполнения.Количество различных дуг ограничено, и для каждого типа дуг известно,сколько и какого типа значения вершина принимает. Для удобства упорядоченныеместа вершин, к которым прикрепляются дуги, будем называть* Работа выполнена при финансовой поддержке Научной программы «Университеты России»(грант № УР.04.01.027) и Министерства образования РФ (грант № Е02-1.0-42).


44 Программные средства и математические основы информатикивходными портами. Места вершин, из которых выходят исходящие дуги свычисленными значениями, будем называть выходными портами. Длявершин каждого типа определено, какие значения на какие входные портыдолжны приходить, как значения участвуют в вычислении и какие значенияформируются на соответствующих выходных портах.Существуют также специальные константные простые вершины безвходных портов, они служат для представления константных значений ввычислениях.Наряду с простыми вершинами, которые олицетворяют простые операции,такие как арифметические действия, доступ к элементу массива иливызов функции, существуют и составные вершины, состоящие из несколькихподграфов, которые служат для представления циклов и условных конструкций.Так, например, вершина для цикла с предусловием состоит изтрех подграфов: граф для представления вычисления условия цикла, графдля вычисления каждой итерации цикла и граф для формирования возвращаемогоциклом результата, формируемого по вычисляемым в каждой итерациизначениям. Наличие составных вершин в IF1-графах делает их иерархичными.Ниже приведены примеры графов с простыми и составными вершинами.Рис. 1. Граф для вычисления выражения ( x − y ) /( x + y )2222


Дортман П. А. Подходы к оптимизации программ в системе SFP 45Пример Sisal-функции и его внутреннего представления.function sample(X1, X2, h: real returns real)for initialX := X1;m := 0.0while X


46 Программные средства и математические основы информатикиПрежде всего отметим, что для ациклического графа, каким являетсяIF1-граф, существует такая нумерация его вершин, которая сохраняет частичныйпорядок зависимости по данным.3. ПОДСТАНОВКА ФУНКЦИИ ВМЕСТО ВЫЗОВАВызовы функций и процедур зачастую затрудняют автоматический анализпрограмм в императивных языках. В языке Sisal же вызовы функций неимеют побочных эффектов, их результаты зависят только от своих параметров.В таком случае вызов любой функции может быть заменен кодом стелом этой функции. В IF1-графах подобная подстановка вызова функциина граф тела функции легко алгоритмизируется. И после такой подстановкирасширенный граф может быть оптимизирован с помощью других оптимизирующихпреобразований, таких как исключение общих подвыражений ивынос инвариантов циклов.Обычно, когда говорят о подстановке функции, имеют в виду нерекурсивныефункции. Однако это вовсе не жесткое правило, раскрытие одногоили более рекурсивного вызова может дать дополнительные возможностидля проведения других оптимизаций.4. ИСКЛЮЧЕНИЕ ОБЩИХ ПОДВЫРАЖЕНИЙГлавной целью преобразования, известного как исключение общих подвыражений,является удаление избыточных вычислений. Отдельные вычисленияявляются избыточными, если они вычисляются неоднократно прирасчете. В IF1-графе избыточные вычисления приобретают форму эквивалентныхвершин.Дадим определение эквивалентных вершин. Две простые вершины называютсяэквивалентными, если они представляют одну и ту же операцию(являются вершинами одного типа) и имеют эквивалентные входы. Две составныевершины называются эквивалентными, если они являются вершинамиодного типа, их входы эквивалентны и их подграфы соответственноизоморфны. Два графа называются изоморфными, если можно установитьбиективное отображение между их вершинами так, что соответствующиевершины эквивалентны. Будем говорить, что две вершины имеют эквивалентныевходы, если они имеют одинаковое число входов и для каждойпары входных портов верно одно из следующих утверждений: входные дугиидут от константных вершин с одинаковым значением и типом, входные


Дортман П. А. Подходы к оптимизации программ в системе SFP 47дуги идут от одинаковых входных портов границы графа либо входные дугиидут от соответствующих портов эквивалентных вершин.Понятно, что эквивалентные вершины можно отождествить, так как ведутони себя одинаково, и, таким образом, сократить число вершиноперацийв графе. Например, на рис.1 вершины с номерами 1 и 3, а также 2и 4 — эквивалентны. Исключение общих подвыражений и есть процесссклеивания эквивалентных вершин. Приведем формальный алгоритм исключенияобщих подвыражений для IF1-графов.Алгоритм исключения общих подвыражений из графа.Вход: пронумерованный указанным образом граф G.Выход: Эквивалентный граф, в котором все эквивалентные вершины склеены.проц ИСКЛЮЧЕНИЕдля каждого типа T вершин графа циклСоздать пустое множество вершин S(T)вседля каждой вершины N из G в порядке нумерации циклесли N — составная тодля каждого подграфа H из N циклИСКЛЮЧЕНИЕ(H)всевсе{ поиск эквивалентных вершин }пусть S=S(T(N)) — подмножество вершин с таким же типомоперации T(N), что и у вершины NF := 1для каждого M из S и пока F=1 циклесли M эквивалентно N тоСклеить N и MF:=0всевсеесли F=1 то S := S+{ N } всевсевсе.Как мы видим, настоящий алгоритм оптимизирующего преобразованияграфа получился довольно простым и эффективным. Проверка составныхвершин теоретически сложна, но на практике не требуется много действий,


48 Программные средства и математические основы информатикичтобы выяснить, что вершины не эквивалентны, так как составные вершиныочень отличаются друг от друга.Некоторые вершины служат для представления коммутативных операций(например сложения или умножения). Однако наш алгоритм не воспринимает,например, 5*G и G*5 как одинаковые выражения. Также настоящийалгоритм не пытается изменить порядок действий для нахождения одинаковыхвыражений: 5*(G*H) всегда отлично от (5*G)*H.5. ВЫНОС ИНВАРИАНТОВ ЦИКЛАОпределение выражений, являющихся инвариантом для цикла, и выносих за цикл, исключают многократное выполнение одного и того же вычисленияи являются еще одним традиционным оптимизирующим преобразованием,присущим почти всем оптимизирующим компиляторам. Инвариантомцикла называется выражение, которое вычисляется в одно и то же значениена каждой итерации цикла. Такие выражения могут создаваться программистомс целью повышения читаемости кода или появляться вследствиевыполнения каких-либо еще преобразований. Мы сейчас определим,что значит, что IF1-вершина внутри подграфа одной из составных вершинцикла является инвариантом.Пусть X — вершина внутри подграфа G, содержащегося в графе L цикла.Будем говорить, что X является инвариантом цикла в L, если каждый еевходящий порт принимает значение:1) либо от константной вершины,2) либо с порта входных значений L,3) либо от вершины, являющейся инвариантом цикла.Предположим, что вершина X является инвариантом цикла или не зависитот каких-либо других вершин, т.е. все ее входящие порты удовлетворяютусловиям (1) и (2). В этом случае мы можем вынести Х из подграфа Gцикла L, последовательно выполняя следующие действия.1. Вынести X вместе со своими входными дугами из графа G.2. Поместить вершину X в граф, содержащий L непосредственно передL в порядке зависимости по данным. Присоединим каждую входную дугувершины X к соответствующему входному порту L и соединяем выходнойдугой исходящие порты с создаваемыми входными портами на L.3. Соединить вершины, получавшие значения из X, с созданными портамина G.


Дортман П. А. Подходы к оптимизации программ в системе SFP 494. Удалить все входы L, которые использовались исключительно вершинойX.Понятно, что если мы будем обходить вершины в порядке, сохраняющемзависимость по данным, то проверка условия (3) будет излишней, достаточнопроверять только первые два условия. Так как в алгоритме исключенияобщих подвыражений также использовался обход в порядке, сохраняющемзависимость по данным, то совместное применение этих двух оптимизацийможно естественным образом алгоритмизировать. При этомнаиболее удачной нам представляется стратегия, при которой вынос инвариантовцикла выполняется для всех циклов графа, а затем происходит поискобщих подвыражений. Такая стратегия позволяет не упустить шанссклеить только что вынесенные из циклов вершины с другими вершинами вграфе.6. ЗАКЛЮЧЕНИЕСемантика IF1-графов позволяет проводить оптимизирующие преобразованияпрограмм как эффективные преобразования IF1- графов. И мы продемонстрировалиэто на примере трех традиционных преобразований.СПИСОК ЛИТЕРАТУРЫ1. Глуханков М.П., Дортман П.А., Павлов А.А., Стасенко А.П. Транслирующиекомпоненты системы функционального программирования SFP // Современныепроблемы конструирования программ. — Новосибирск, 2002. — С. 69–872. Cann D. Retire FORTRAN? A debate rekindled // CACM. —1992. — Vol. 35, N 8.— P. 81–89.3. Касьянов В.Н., Бирюкова Ю.В., Евстигнеев В.А. Функциональный язык Sisal 3.0// Поддержка супервычислений и Интернет-ориентированные технологии. —Новосибирск, 2001. — С. 54–67.4. Густокашина Ю.В., Евстигнеев В.А. IF1 — промежуточное представление Sisalпрограмм// Проблемы конструирования эффективных и надежных программ. —Новосибирск, 1995. — С. 70–78.


А. А. ДунаевПРОГРАММНЫЙ КОМПЛЕКСДЛЯ ИССЛЕДОВАНИЯ БОЛЬШИХ ОДНОМЕРНЫХ МАССИВОВДАННЫХ С ПРИМЕНЕНИЕМ КРАТНОМАСШТАБНОГОАНАЛИЗА *ВВЕДЕНИЕПри решении ряда научно-исследовательских и практических задач возникаетпроблема обработки больших массивов данных. В качестве примеровможно привести обработку нуклеотидных последовательностей, глобальноемоделирование климата, численные эксперименты в области физикии химии. Основная особенность этих задач заключается в том, что обрабатываемыеданные из-за большого объема не могут быть целиком помещеныв оперативную память ЭВМ. Так, при обработке нуклеотиднойпоследовательности объем исходных данных имеет порядок 1Гб.Цель данной статьи — исследовать оптимальные методы работы сбольшими массивами данных и создать программу, использующую эти методыпри обработке данных методом кратномасштабного анализа. Исходнымиданными для программы является массив данных, сохраненный вфайл в том или ином формате. Результаты вычислений сохраняются в файлахи отображаются на экране. Основными требованиями к программе являютсяпо возможности высокая скорость обработки данных и полнаяфункциональность в рамках стандартных средств, предоставляемых операционнойсистемой.Программа разработана для операционной системы Microsoft WindowsNT/2000. Вычислительные блоки, реализующие исследуемые методы, могутбыть с минимальными изменениями использованы при разработке другихпрограмм.* Работа выполнена при финансовой поддержке Научной программы «Университеты России»(грант № УР.04.01.027) и Министерства образования РФ (грант № Е02-1.0-42).


Дунаев А. А. Исследование больших одномерных массивов данных 511. ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ АЛГОРИТМОВ1.1. Описание вычислительной задачиВ качестве вычислительной задачи была выбрана реализация методакратномасштабного анализа. При обработке одномерного массива чиселдлины N этим методом (где N является степенью числа 2) получается наборпромежуточных массивов, причем каждый последующий массив в двараза короче предыдущего. Общее количество промежуточных массивовравно ( log2N ) − 1. Один из наиболее полных способов визуализации результатовтаких вычислений предполагает одновременный параллельныйдоступ к различным участкам полученных промежуточных массивов.Именно поиск оптимального способа организации такого доступа являетсяосновной целью настоящей работы.1.2. Подготовка исходных данныхВ зависимости от конкретного приложения исходные данные могутбыть поданы в различных форматах. С другой стороны, для выполненияпреобразования наиболее удобным является формат представления данных,при котором отсчеты записаны последовательно в виде чисел с плавающейзапятой в двоичном формате. В таком случае становится возможным выполнятьвычисления непосредственно после чтения фрагмента файла. Условимсяназывать файл, содержащий исходные данные, исходным файлом, аего формат — исходным форматом. Внутренний формат представленияданных будем называть естественным форматом.Преобразованные данные записываются в файл в естественном формате,который после исчерпания данных в исходном файле дополняется нулямидо оптимального размера, зависящего от конкретного вейвлета, применяемогов данный момент.1.3. Выполнение вейвлет-преобразованияДля анализа данных используется видоизмененное быстрое вейвлетпреобразование(далее — БВП), опирающееся на метод кратномасштабногоанализа, разработанного Малла и Мейером (известного также как пирамидальныйалгоритм Малла). Во избежание путаницы будем называть исход-


52 Программные средства и математические основы информатикиный вариант БВП классическим. Классический метод достаточно хорошоизучен и описан [3, 4, 5].В классическом БВП заложена возможность восстановления первоначальноговектора из его гладких компонент и деталей. Поскольку в нашемслучае не требуется восстанавливать исходный сигнал, а рассматриваютсятолько гладкие компоненты, можно исключить из рассмотрения компонентыматрицы преобразования, вычисляющие детали. В этом заключаетсяпервое отличие применяемого метода от классического БВП.Второе отличие заключается в длине массива данных, обрабатываемогона отдельном шаге алгоритма. Классическое БВП выполняет свертываниепериодического сигнала. Для устранения краевых эффектов последние рядыматрицы преобразования классического БВП выполняют своего рода переносданных из начала исходного вектора. С другой стороны, в случае, когдасигнал не является периодическим, такой перенос, напротив, вносит нежелательныекраевые эффекты. Например, в случае, когда x0 ≠ 0 и00xm − k… m − 1= 0 , причем 0< k < m− 1, мы получим в первом же векторе гладкихкомпонент ≠ 0 . Для такого «непериодического»1преобразованияx m−120длина исходного вектора Len( x ) данных должна быть равна одному изчленов последовательности:В случае, еслиl : l = 4, l = ( l + 1) ⋅2, k∉ Z, k >= 2.n 1 k x−10k: lxLen( x ) lk + 1∀ < < ,т. е. длина исходного вектора попадает между двумя допустимыми величинами,мы расширяем исходный вектор до большего допустимого значения:0 0⎧0 0 ⎪xa, a∉ Z,0


Дунаев А. А. Исследование больших одномерных массивов данных 53⎡c0 c1 c2 c30 0 0 0 0 0 ⎤⎢0 0 0 0 0 0 0 0 0 0⎥⎢⎥⎢0 0 c0 c1 c2 c30 0 0 0 ⎥⎢⎥T = ⎢ 0 0 0 0 0 0 0 0 0 0 ⎥⎢⎥⎢⎥⎢0 0 0 0 0 0 c0 c1 c2 c3⎥⎢0 0 0 0 0 0 0 0 0 0 ⎥⎣⎦1.4. Хранение данных и стратегии обмена даннымиПосле выполнения преобразования программа должна обеспечить визуализациюрезультатов. Результаты вычислений помещаются в хранилище,задача которого состоит в минимизации задержек в передаче запрашиваемыхданных. Внешний программный модуль, получающий данные из массива,управляемого хранилищем, запрашивает блок данных d размера Sdсо смещением O . В хранилище организуется специальный промежуточныйбуфер b размераdSbсо смещениемOb. ЗначенияSbиObи их пересчетпри запросе следующего блока определяются выбранной стратегиейпредварительной выборки 1 . Для каждой стратегии оптимальными считаютсяпараметры, обеспечивающие минимальное количество операций чтенияиз файла и минимальный расход памяти.Были исследованы несколько различных стратегий.Стратегия 1. При первом запросе блока данных выделяется буфер размеромSb= k⋅Sd, k∈ Z, k > 3, после чего в буфер считываются данные из файласо смещением Ob= Od− ⎜⎛Sd− Sb⎞2 ⎟ . При последующих запросах контролируетсяR = min( Od − Ob, Ob + Sb − ( Od + Sd))— расстояние между грани-⎝ ⎠цами запрашиваемого блока и промежуточного буфера. Чтение нового блокаданных из файла производится, когда после запроса очередного блокаданных R становится меньше некоторого порогового значения R , приmin1 Для всех описываемых стратегий размер Sd запрашиваемого блока не меняется от запросак запросу.


54 Программные средства и математические основы информатикиэтом смещение Obвыбирается так, что восстанавливается равенство расстояниймежду границами запрашиваемого блока и буфера:Od − Ob = Ob + Sb − ( Od + Sd).1 2Пусть Odи Od— смещения блока данных, переданные с двумя следующимидруг за другом запросами. Положим C = Od− Od— относитель-2 1ное изменение смещения для следующего запроса. Оптимальные значенияk и Rminможно подобрать, зная C — наиболее статистически вероятноеC . Эта величина отражает характер способа работы с данными конкретногоприложения, поэтому расчет k и Rminвозлагается на приложение, использующеехранилище с такой стратегией.Стратегия симметрична относительно знака C , что позволяет наиболееэффективно использовать ее в таких схемах работы с данными, в которыхположительные и отрицательные значения C встречаются приблизительноравновероятно. В то же время, если схема доступа предполагает серии последовательногоизвлечения данных (в прямом или обратном направлении),такая стратегия становится менее эффективной, поскольку часть буфера bостается неиспользованной.Стратегия 2. Аналогично первой стратегии, данные буферизуются в промежуточномбуфере размером Sb= k⋅Sd, k∈ Z, k > 3, и размер буфера остаетсянеизменным все время работы с файлом. Отличие от первой стратегиизаключается в способе пересчета Obпри очередном запросе.При получении очередного запроса проверяется параметр R . Если Rоказывается меньше некоторого порогового значения Rmin, вычисляетсяC — изменение смещения по сравнению с предыдущим запросом. В зависимостиот знака C смещение Obвыбирается так, что устанавливается «перекос»расстояний между границами запрашиваемого блока и буфера в туили иную сторону:O = O + S − ( O + S ) + D⋅ sgn( C).b d b d dПараметр D выбирается в диапазоне от 0 до ( Sd− Sb). При D = 0 получаемрезультаты, идентичные достигающимся при применении стратегии1. При D = ( Sd− Sb)получаем вариант, оптимальный для однонаправленногодоступа: при изменении знака C необходимо немедленно выполнитьчтение блока из файла, что вызывает задержку.


Дунаев А. А. Исследование больших одномерных массивов данных 55Такая стратегия в сравнении со стратегией 1 позволяет уменьшить количествообращений к файлу при тех же затратах памяти. Наиболее эффективностратегия работает в схемах доступа, предполагающих чередованиесерий запросов с разным знаком C .Дополнительное усовершенствование можно внести вводом зависимостиD от величины C , и при больших значениях C делать больший перекосрасстояний.Хотя вторая стратегия позволяет оптимально использовать память, неизменныйразмер буфера накладывает ограничение на максимальное значениеC . Если при очередном запросе C превышает этот порог, становитсянеобходимым немедленное пополнение буфера из файла.Стратегия 3. Аналогично стратегии 2, при вычислении смещения Obмогутучитываться знак и величина C . Основное отличие состоит в том, что Sbтакже изменяется в зависимости от величины C . Динамическое изменениеразмера буфера позволяет уменьшить количество операций чтения из файлаза счет увеличения объема используемой памяти.Модель 1 — «линейная». Размер буфера вычисляется по формуле:S = S + k⋅ C .b0Эта модель самая простая.0S подбирается опытным путем; следуетучитывать, что слишком малый размер буфера приведет к увеличению числаопераций чтения, а слишком большой — к неэффективному использованиюпамяти. В этой модели учитывается только последнее значение C .Модель 2 — «усредняющая». Вычисляется среднее арифметическое средиC для нескольких последних запросов, затем полученное значение используетсяаналогично первой модели.Модель 3 — «прогрессирующая». Для нескольких последних запросовопределяется тенденция изменения C , в соответствии с которой вычисляетсяожидаемое смещение для следующего запроса и новый размер буфера.В качестве вычисляемого параметра, характеризующего эту тенденцию,можно использовать, например, приращение C для последнего запросаотносительно предпоследнего.


56 Программные средства и математические основы информатики2. ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТОВ ВЫЧИСЛЕНИЙКак уже было отмечено выше, результатом вычислений являются нескольковекторов, являющихся приближениями одного и того же исходноговектора. Применительно к исследованиям нуклеотидных цепочек, существуетнесколько методов визуализации информации подобного рода [6]. Внастоящей работе был выбран наиболее наглядный, с точки зрения автора,способ, который заключается в следующем.Среди всех значений, содержащихся в полученных массивах, выбираетсяминимальное и максимальное значения. После этого строится цветоваяшкала соответствия значения оттенку цвета H в системе цветовых координатHSV. Минимальному значению соответствует цвет с оттенком 0, максимальному— с оттенком 360. После этого массивы отображаются наплоскости рядами цветных точек; цвет точки соответствует значению элементамассива. Такой способ отображения дает возможность визуально выделятьхарактерные участки в массиве данных (рис. 1, 2).Направление укрупнения масштабаНаправление увеличения координатыРис. 1. Визуализация результатов вычислений.Показан пример графика в увеличенном виде для вектора из 16 элементов.Каждый ряд точек соответствует масштабу преобразования.0Нижний ряд — исходный вектор x .Точка графика соответствует элементу вектора.1Второй снизу ряд — первый уровень преобразования (вектор x ), и так далее до4x


Дунаев А. А. Исследование больших одномерных массивов данных 57Рис. 2. Показан фрагмент графика для длинного вектора.График вытянут по оси масштаба для облегчения визуального выделения нужногоуровня3. РЕЗУЛЬТАТЫ3.1. Практическое применениеПрограмма использовалась при распознавании экзон-интронной структурыДНК. Последовательность ДНК, состоящая из элементов A, C, G, T,называемых нуклеотидами, была преобразована к n-мерному вектору.Возможны следующие варианты преобразования.1. Метод простого сопоставления [8]. На отрезке [0,1] выбираются 4точки A, C, G, T и сопоставляются соответствующим нуклеотидам. Этотметод использовался в программе.2. Метод сайт-потенциала [9]. Существует ряд методов [10], [11], позволяющихкаждому участку ДНК фиксированной длины сопоставить числов диапазоне [0,1], характеризующее потенциал сайта 2 на данном участке.Потенциал характеризует вероятность того, что с этим сайтом будет связыватьсяопределенный белок. Таким образом, исходная последовательностьможет быть преобразована к аналогичному вектору, как и в первом пункте.Далее применение кратномасштабного анализа позволяет на основе анализауже известных генов выявить участки, сходные по структуре с генами,2Здесь сайт — потенциальный сайт связывания транскрипционного фактора. Дляраскрытия механизмов регуляции экспрессии генов интенсивно проводятся исследования какэкспериментального, так и теоретического характера. Одним из базовых понятий, занимающихключевую роль в процессах транскрипции, являются транскрипционные факторы, которыепредставляют собой регуляторные белки, обладающие способностью распознаванияспецифических коротких участков ДНК. Поэтому детальному изучению и распознаваниюсоответствующих нуклеотидных фрагментов, называемых цис-элементами или сайтамисвязывания танскрипционных факторов (ССТФ или сайтами), отводится большое внимание.


58 Программные средства и математические основы информатикичто дает реальную альтернативу существующим на данный момент методампредсказания генов.3.2. ВыводыВ процессе разработки программного комплекса были исследованы, содной стороны, различные способы обработки больших массивов данных,стратегии предварительной выборки и алгоритмы сжатия; с другой — возможностиприменения на практике метода кратномасштабного анализа.Соответственно, результаты работы можно разделить на две части.Во-первых, разработан программный модуль, позволяющий оптимальнымобразом организовать работу с большими массивами данных. Реализованавозможность выбора различных стратегий предварительной выборки,что позволяет подобрать наилучшую стратегию для каждого конкретногослучая.Во-вторых, построен программный комплекс, использующий описанныймодуль для доступа к данным при выполнении кратномасштабногоанализа больших массивов данных. Проведена опытная эксплуатация программы.Применение разработанного комплекса дает альтернативусуществующим на данный момент методам предсказания генов.СПИСОК ЛИТЕРАТУРЫ1. Mowry T. C., Demke A. K. and Krieger O. Automatic Compiler-Inserted I/O Prefetchingfor Out-of-Core Applications // Proc. of the USENIX 2nd Symp. on OS Designand Implementation (OSDI '96)2. Kimbrel T., Tomkins A, Patterson R. H. et al. A Trace-Driven Comparison of Algorithmsfor Parallel Prefetching and Caching // Proc. of the USENIX 2nd Symp. on OSDesign and Implementation (OSDI '96)3. Дремин И. М., Иванов О. В., Нечитайло В. А. Вейвлеты и их использование //Успехи физических наук. — 2001. — Т. 171, № 5.4. Воробьев В. И., Грибунин В. Г. Теория и практика вейвлет-преобразования. —ВУС, 1999.5. Астафьева Н. М. Вейвлет-анализ: основы теории и примеры применения // Успехифизических наук. — 1996. — Т. 166, № 11.6. Дунаев А. А., Кель А. Э., Лобив И. В., Мурзин Ф. А., Половинко О. Н., ЧеремушкинЕ. С. Визуализация генетической информации // Новые информационныетехнологии в науке и образовании. — Новосибирск, 2003. — С. 147–156.7. Nelson M. The Data Compression Book. — IDG Books Worldwide, Inc.


Дунаев А. А. Исследование больших одномерных массивов данных 598. Cheremushkin E. S., Kel A. E., Lobiv I. V., Murzin F. A., Polovinko O. N. Visualizationof DNA sequences by Color Cube Transformation // The 3-d Internat. Conf. onBioinformatics of Genome Regulation and Structure, 2002.9. Cheremushkin E. S., Kel A. E. Whole Genome Human/Mouse Phylogenetic Footprintingof Potential Transcription Regulatory Signals // Pacific Symp. on Biocomputing.— 2003. — Vol. 8. — P. 291–302.10. Kel A. E., Kondrakhin Y. V., Kolpakov Ph. A., Kel O. V., Romashenko A. G., WingenderE., Milanesi L., Kolchanov N. A. Computer tool FUNSITE for analysis of eukaryoticregulatory genomic sequences // Proc. of Third Internat. Conf. on IntelligentSystems in Molecular Biology. — 1995. — P.197–205.11. Kel AE, Gosling E, Reuter I, Cheremushkin ES, Kel-Margoulis OV, Wingender E.MATCH TM : a tool for searching transcription factor binding sites in DNA sequences //Nucleic Acids Research. — 2003. — Vol. 31, No. 13. — P. 1–4.


В. А. ЕвстигнеевМНОГОЧЛЕНЫ ЭРХАРТА ∗ВВЕДЕНИЕИсследование различных свойств программ и преобразований частосводится к определению числа целочисленных точек (т.е. точек с целочисленымикоординатами) в многогранниках (в частности, в многоугольниках).К такой задаче, например, сводится определение мощностимножества итераций гнезда циклов, заданного в виде многогранника,в том числе и параметризованного многогранника, в котором числоцелочисленных точек есть функция от этих параметров. Такие функцииназываются энумераторами многогранника.В 50-е годы прошлого столетия французский математик Эжен Эрхарт(Eugène Ehrhart) обнаружил, что некоторое расширение полиномов,которые потом стали называть полиномами Эрхарта, даёт возможностьописать энумератор любого многогранника. При этом некоторыесвойства таких полиномов находятся в непосредственной связисо свойствами многогранника.В настоящей статье излагаются основы теории полиномов Эрхарта,следуя работе [1].1. ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ1.1. Периодические числаОпределим вначале периодические числа, которые будут служитькоэффициентами для псевдополиномов.Определение 1. Одномерное периодическое число есть выражение⎧⎪⎨ u 0 , если n mod p =0,u(n) =[u 0 ,...,u p−1 ]:=u n mod p =⎪⎩.u p−1 , если n mod p = p − 1∗ Работа выполнена при финансовой поддержке Российского фонда фундаментальныхисследований (гранты № 02-07-90409 и 04-07-90441).,


Евстигнеев В. А. Многочлены Эрхарта 61равное тому значению, индекс которого равен n mod p. При этом p называетсяпериодом для u(n).Определение 2. q-мерное периодическое число u(n 1 ,...,n q ) определяетсячерез q-мерное поле U величины p 1 ×···×p q :u(n 1 ,...,n q ):=U (n1 mod p 1,...,n q mod p q).При этом q есть размерность поля U. Вектор p =(p 1 ,...,p q ) называетсямультипериодом u. Наименьшее общее кратное чисел p i называетсяпериодом u. i-й коэффициент мультипериода называется периодом размерностиi.Двумерные периодические числа могут изображаться матрицами.Для более высоких размерностей используется способ представления,известный как “вектор векторов”. Примером периодического числа служит[[[0, 1] k , [2, 3] k ] l , [[4, 5] k , [6, 7] k ] l , [[8, 9] k , [10, 11] k ] l ] m .Его размерность равна 3, а его мультипериод равен {2, 2, 3}. Следовательно,его период — 6; период размерности 1 есть 2 и т.д.Период периодического числа может быть увеличен многократно.При этом компоненты соответствующим образом сцепляются. Это жесправедливо для периода размерности i многомерного периодическогочисла. Например, период размерности 2 двумерного периодическогочисла [[1, 2, 3] k , [3, 4, 5] k ] l может быть удвоен:[[1, 2, 3] k , [3, 4, 5] k , [1, 2, 3] k , [3, 4, 5] k ] l .Значение числа при этом не изменится. Соответственно, периодическоечисло может быть редуцировано, если составляющие элементы в размерностиповторяются.Различные периодические числа одинаковой размерности могут складываться.Пусть p i и q i — периоды размерности i двух чисел. Периодыдолжны быть заменены на наименьшее общее кратное kgV (p i ,q i ),послечего числа складываются покомпонентно. Например, нам нужно сложитьдва числа [2, 3] n и [4, 5, 6] n . Наименьшее общее кратное периодовравно 6; следовательно, числа преобразуются к виду [2, 3, 2, 3, 2, 3] n и[4, 5, 6, 4, 5, 6] n . Результатом будет число [6, 8, 8, 7, 7, 9] n . Периодическиечисла могут также покомпонентно перемножаться.


62 Программные средства и математические основы информатикиОпределение 3. Псевдополином есть функция f : Z q → Z(n 1 ,...,n q ) ↦→k∑k−i∑ 1i 1=0 i 2=0k−i 1−···−i∑ q−1···i q=0c i1,...,i qn i11 ···niq q ,где c i1,...,i q— коэффициенты периодического числа, наибольшая размерностькоторого равна q.Псевдополином характеризуется размерностью, степенью и псевдопериодом.Размерность равна q, степень есть наибольший показательk, ипсевдопериод есть наименьшее общее кратное периодов коэффициентов.1.2. МногогранникиВведём ряд определений, касающихся многогранников и необходимыхв дальнейшем.Определение 4. Полииэдром называется пересечение конечного числаполупространств. Ограниченный полиэдр называется многогранником(политопом). Размерностью полиэдра P называется размерностьаффинного подпространства, целиком содержащего P.Как альтернатива может быть использовано определение многогранникакак выпуклой оболочки конечного множества точек.Когда речь идёт о двух- или трёхмерных полиэдрах, то интуитивноясно, что подразумевается под “вершинами” или “рёбрами”. Следующееопределение формализует эти понятия и обобщает их на полиэдры любойразмерности.Определение 5. Пусть P⊆Q n — полиэдр и H⊆Q n — гиперплоскость.Пусть далее F := P∩H + .ЕслиF ≠ ∅∧F ⊆H,тоH называетсяопорной гиперплоскостью, аF — гранью многогранника P. Каждаягрань в P — снова многогранник.Грань размерности 0 называется вершиной, размерности 1 — ребром,размерности dim(P) − 1 — собственно гранью.Если отдельные неравенства, которые описывают различные полупространства,собраны вместе и их коэффициенты сведены в матрицу,то полиэдр может быть представлен в следующем виде:P = {⃗x| A⃗x + ⃗ b ≥ 0}.


Евстигнеев В. А. Многочлены Эрхарта 63Прежде чем приступить к выводу компактной формулы для подсчётачисла целочисленных точек в полиэдре, определим области допустимостипараметров.Введённые многогранники используются, например, для описанияпространства итераций гнезда циклов, причём границы циклов описываютсяаффинными функциями. Так как эти описания часто зависят отимеющихся в программе параметров, то введём в рассмотрение векторпараметров ⃗n, символически охватывающий все имеющиеся параметры.С помощью этого вектора можно будет параметрически описыватьполиэдры. Коэффициенты матрицы A при этом остаются неизменными,изменяться в зависимости от параметров будет только смещение ⃗ b.Определение 6. Параметрический полиэдр, соотнесённый с векторомпараметров ⃗n =(n 1 ,...,n r ), есть полиэдр формы P = {⃗x| A⃗x +C⃗n + ⃗ b ≥ 0}. Параметрическое пространство есть подмножество Dпространства N0 r , которое содержит только допустимые значения ⃗n.Ясно, что параметры никогда не принимают отрицательные значения.В исследуемом классе регулярных программ границы массивов сутьконстанты, а границы циклов зависят от параметров программы.Определение 7. Параметрическая константа f размерности mесть m-мерная параметризованная функцияf(⃗x) =F⃗x + F n ⃗n + f, ⃗для которой F =0. Так как значение функции при этом больше независит от ⃗x, то применяется следующее обозначение:f = F n ⃗n + f. ⃗1.3. ПримерПусть дан следующий многогранник с вектором параметров ⃗n =(P, Q):⎧ ⎛ ⎞ ⎛ ⎞⎪⎨ ) 1 0 ( ) 0 0⎫⎪i P = | ⎜ −2 0⎟ i ⎪⎩(j ⎝ −1 1 ⎠ + ⎜ 1 0⎬⎟j ⎝ 0 0 ⎠ ⃗n ≥ 0 =⎪ ⎭{( ) 0 −2} 0 1i= | 0


64 Программные средства и математические основы информатикиКонфигурация этого многогранника зависит от параметров P и Q.Возможны два случая (см. рис. 1).ja) Q ≤ P б) Q>PjP/2Q/2jij


Евстигнеев В. А. Многочлены Эрхарта 65Определение 10. Многогранник называется целочисленным, есливсе его вершины для всех значений параметров имеют целочисленныекоэффициенты. Иначе он — рациональный. Знаменатель рациональныхточек есть наименьшее общее кратное знаменателей их координат. Знаменательрационального многогранника есть наименьшее общее кратноезнаменателей его вершин.Следующее предложение, доказательство которого опускается, утверждает,что знаменатель рационального полиэдра не зависит от параметровкак от констант.Предложение 1. Пусть P(⃗n) — параметризованный многогранник.Координаты его параметризованных вершин допускают представлениев виде аффинных функций параметров.2.1. Пример (продолжение)Для заданного выше многогранника общее пространство параметровимеет вид D = {(P, Q)| P ≥ 0,Q≥ 0}, что означает, что возможныезначения параметров ничем больше не ограничены. Чтобы можно былопринять во внимание различные формы многогранника, это пространстворазбивается на области допустимости. Первая область допустимостиесть D 1 = {(P, Q)| Q ≤ P }∩D, вторая — D 2 = {(P, Q)| Q>P}∩D.Имеем D = D 1 ∪D 2 .Для этих областей допустимости множества параметризованных вершинопределяются как:{ ( )E 1 = (0, 0), Q2 , Q {2E 2 = (0, 0), ( P2 , P 2Только две вершины (0, 0) и(,0, Q 2),(P2 , Q 2)},),(0, Q 2)}.( )0, Q 2входят в обе области допустимости.3. ВЫЧИСЛЕНИЕ ПОЛИНОМОВСледующее фундаментальное утверждение Эрхарта даёт основу дляалгоритма вычисления полиномов.Предложение 2. Пусть ⃗n = (n 1 ,...,n p ) — вектор параметров.Каждый энумератор E(⃗n) d-многогранника P(⃗n) со знаменателем q есть


66 Программные средства и математические основы информатикипсевдополином размерности d и степени d. Период его коэффициентовесть максимум q.Размерность многогранника определяет степень полинома, знаменатель— максимальный период, а число параметров — размерность.Тем самым определяется схематический вид полинома и нужно толькоопределить его коэффициенты.Знание структуры делает возможным следующий подход к определениюмногогранника. Нужно придавать параметрам различные конкретныезначения и определять число целочисленных точек. Тем самымбудут получены значения энумераторов в определенных точках. Отсюдавытекает возможность определять коэффициенты, для чего нужнорешить систему уравнений, соответствующих выбранным конкретнымзначениям.3.1. Пример (продолжение)В качестве примера снова возьмём наш многогранник P с областьюдопустимости D 2 . Размерность многогранника равна 2; кроме того, степеньразыскиваемого полинома также равна 2. Знаменатель также равен2 (см. формулы для величин E 1 и E 2 ). Отсюда следует, что максимальныйпериод коэффициентов равен 2. Так как число параметровравно 2, размерность полинома должна быть равной 2. Полином теперьимеет следующий вид:E P (P, Q) =[[c 1 ,c 2 ] Q , [c 3 ,c 4 ] Q ] P P 2 +[[c 5 ,c 6 ] Q , [c 7 ,c 8 ] Q ] P Q 2+[[c 9 ,c 10 ] Q , [c 11 ,c 12 ] Q ] P PQ+[[c 13 ,c 14 ] Q , [c 15 ,c 16 ] Q ] P P+[[c 17 ,c 18 ] Q , [c 19 ,c 20 ] Q ] P ]Q +[[c 21 ,c 22 ] Q , [c 23 ,c 24 ] Q ] P .В совокупности нужно определить 24 неизвестных от c 1 до c 24 .Будемопределять периодические числа, исходя из известных четырех частныхслучаев, указанных на рис. 2. Для случая (а) Q и P — чётные, имы имеем следующий энумератор:E P (P, Q) =c 1 P 2 + c 5 Q 2 + c 9 PQ+ c 12 P + c 17 Q + c 21 .Аналогично получаем ещё три энумератора для оставшихся трёхслучаев (б)–(г). Для рассматриваемого случая 6 неизвестных определяютсяпутём подсчёта числа точек для 6 пар конкретных значений дляP и Q. Результаты приведены в табл. 1. Из этой таблицы извлекаетсясистема из 6 линейных уравнений:


Евстигнеев В. А. Многочлены Эрхарта 67Q/2 5 Q/2 54 4P/2 3 P/2 32 21 11 2 3 P/2 1 2 3 P/2а) P, Q —четные б)Q нечетноQ/2 5 Q/2 54 4P/2 3 P/2 32 21 11 2 3 P/2 1 2 3 P/2в) P нечетно г) P, Q — нечетныеРис. 2.


68 Программные средства и математические основы информатикиРезультаты вычисления многогранника PP Q # точек E P (P, Q)0 0 1 c 210 2 2 4c 5 +2c 17 + c 212 2 3 4c 1 +4c 5 +4c 9 +2c 13 +2c 17 + c 212 4 5 4c 1 +16c 5 +8c 9 +2c 13 +4c 17 + c 214 6 9 16c 1 +36c 5 +24c 9 +4c 13 +6c 17 + c 214 8 12 16c 1 +64c 5 +32c 9 +4c 13 +8c 17 + c 21Таблица1⎛⎜⎝0 0 0 0 0 10 4 0 0 2 14 4 4 2 2 14 16 8 4 2 116 36 24 4 6 116 64 32 4 8 1⎞ ⎛⎟ ⎜⎠ ⎝c 1c 5c 9c 13c 17c 21⎞ ⎛=⎟ ⎜⎠ ⎝1235912⎞.⎟⎠Решение этой системы даёт следующие значения для коэффициентовc 1 = − 1 8 ,c 5 =0,c 9 = 1 4 .c 13 = 1 4 ,c 17 = 1 2 ,c 21 =1.В остальных трёх случаях также имеем дело с 6 неизвестными. Послеупрощения получим следующий полином:E(P, Q) = 1 4 QP − 1 8 P 2 + 1 4 [[1, 0] Q, [2, 1] Q ] PP +14 [2, 1] P Q + 1 8 [[1, 4] Q, [5, 3] Q ] P.4. ПРИЛОЖЕНИЯ К NUMA-АРХИТЕКТУРАМ4.1. ВведениеВысоко масштабируемые параллельные компьютеры, например SCIсцепленныекластеры рабочих станций, относятся к NUMA-архитектурам[2]. Таким образом, хорошая статическая локальность существенна длявысокой производительности и масштабируемости параллельных программна этих машинах. В этом разделе, следуя работе [3], описывается


Евстигнеев В. А. Многочлены Эрхарта 69новая техника для оптимизации статической локальности во время компиляциипутём применения преобразования и распределения данных.Метрика, с помощью которой оценивается оптимизация, использует полиномыЭрхарта и допускает точное вычисление количества статическойлокальности. Эффективность новой техники подтверждается экспериментами,которые проводились на SCI-сцепленных кластерах рабочихстанций в университете в Падерборне.Мы используем ограниченную версию блочно-циклической моделираспределения, начиная с гнезда параллельных циклов, которые включаютаффинные границы циклов и аффинные индексные функции длямногомерных массивов. Предполагается, что гнезда содержит толькоодин параллельный цикл. Мы предполагаем, что массивы нарезаны блокамивдоль одной размерности, которые распределены по обрабатывающимузлам. В лучшем случае любой такой блок доступен исключительнодля обрабатывающего узла, который владеет блоком. Следовательно,обязанностью преобразований данных является выявление регулярногошаблона блоков, которые доступны из отдельных узлов. Последующеераспределение данных должно определить назначение блоков обрабатывающимузлам, которое совместимо с шаблоном. Мы сохраняемраспределение вычислений по процессорам, которое было использованона предыдущих шагах компиляции.В итоге, для каждого массива в регулярной программе мы автоматическиисполняем унимодулярные преобразования данных, которыепреобразуют массив, и блочно-циклическое преобразование данных, котороераспределяет элементы массива по обрабатывающим узлам. Распределениеиспользует некоторую длину цикла и некоторое смещение.4.2. Геометрический подходМы будем использовать многосеточное приложение из области гидродинамикидля иллюстрации нашего подхода. Вычислительное ядро —один из вариантов SOR-цикла.DO I = 2, M+N-2FORALL J = MAX(1, I-M+1), MIN(I-1, N-1)U(S, I-J, J-1) = (F(S, I-J, J) + U(S, I-J, J-1)+ U(S, I-J-1, J) + U(S, I-J, J+1)+ U(S, I-J+1,J)/4.0ENDFORALLEND DO


70 Программные средства и математические основы информатикиЭто двумерное гнездо циклов с пятью ссылками на массив U иоднойссылкой на массив F . Мы сосредоточимся на ссылках на массив U.Параллельная программа приведённой версии SOR-цикла была полученаавтоматическим параллелизатором нашего прототипа компилятора.Гнездо циклов показывает параллелизм в самом внутреннем уровне ипредставляет собой субъект для последующей оптимизации локальностиданных.Теперь мы введём некоторые удобные сокращения и определим фундаментальныегеометрические абстракции, приспособленные для классификациипреобразований и распределений.Гнездо циклов N определяет итерационное пространство I N .МассивX, который доступен через ссылку R l ,l≥ 1, определяет индексноепространство D X . Через f l мы сошлёмся на индексную функцию ссылкиR l . Кроме того, P обозначает число процессоров, d — размерностьраспределения, B —размерблока,j — параллельную размерность. Отнынемы опускаем индексы, если это не вызовет недоразумения. Хорошоизвестно, что пространство итераций I и индексное пространствоD оба определяют выпуклые многогранники. Обычно мы представляемвыпуклый многогранник P множеством неравенств, т.е. имеем:P = {⃗x ∈ Z k | A · ⃗x + C · ⃗n + ⃗ b ≥ 0}.Полином Эрхарта E параметризованного выпуклого многогранника Pесть функция от параметров многогранника, отображающая число целочисленныхточек, содержащихся внутри P. Фундаментальная идеянашего подхода — закодировать итерационные точки, которые вызываютлокальные доступы через выпуклые многогранники. Тогда полиномыЭрхарта обеспечивают средства для оценки качества преобразованияи распределения данных. Мы используем обычную нотацию дляполиномов Эрхарта. Обозначение E(M,N) =[10, 5] N · M есть сокращение,позволяющее различать два случая: E(M,N) = 10 · M, еслиN mod 2 = 0, иE(M,N) = 5 · M, если N mod 2 = 1, соответственно.Эта вычислительная схема расширяет циклические коэффициентыбольших размерностей. Более того, многогранник может иметь множествополиномов Эрхарта. В этом случае его полиномы определяютсядля выпуклых подмножеств пространства параметров, называемых областямиправильности (validity domains).Теперь наши два примитива для распределения данных — агрегированиеблоков (block aggregation) и свёртка блоков (block convolution) —


Евстигнеев В. А. Многочлены Эрхарта 71могут быть оттранслированы в терминах выпуклых многогранников.Мы начнём с примитива, который адресует агрегирование блоков. Онсобирает эффект от распределения данных с блоками одинакового размера.Пусть ⃗x ′ = f l (⃗x) ∈Dобозначает индексную точку, доступную черезссылку R l в итерационной точке ⃗x ∈ I. Так как распределениеданных применяется к размерности d, блок, идентифицируемый какx ′ d = ⌊x d/B⌋, доступен в ⃗x. Нелинейное выражение ⌊x d /B⌋ может бытьпреобразовано в линейное за счёт дополнительной неизвестной b иограниченияC d . Если мы встретим уравнение, содержащее ⌊x d /B⌋, тозаменимего на новую свободную переменную b и дополнительное ограничениена допустимые границы изменения x d для удовлетворения C d :B · b ≤ x d ≤ B · (b +1).Мы продолжим с примитивом для свёртки (конволюции) блоков. Онсуммирует эффект циклического распределения данных. Поэтому пустьb = f l (⃗x) обозначает выражение, которое вычисляет в блоке, доступномчерез ссылку R l в итерационной точке ⃗x ∈I N . Потом этот блок будетраспределён процессору b mod P . Выражение b mod P должно бытьпреобразовано в линейное выражение для подстановки в наш линейныйшаблон. Мы заменяем его на (b − P · z), гдеz — новая свободная переменная,и дополнительно ограничим выражение b для удовлетворенияC b : P · z ≤ b ≤ P · (b +1).Таким образом, мы можем использовать приведённые выше примитивыдля описания множеств итерационных точек, не покидая областивыпуклых многогранников.4.3. Преобразование данныхПредлагаемый метод для выбора преобразований данных может бытьразделён на две фазы. Первая фаза вычисляет множество оптимальныхпреобразований и распределений для каждой ссылки отдельно. Этотподход гарантирует достижение цели в случае инъективных индексныхфункций, и оптимальность совпадает с отсутствием отдалённыхдоступов. Вторая фаза упорядочивает эти преобразования-кандидаты;она сравнивает сопоставленные им полииномы Эрхарта, рассматриваявсе (!) ссылки совместно и выбирая лучшее преобразование из всехпреобразований-кандидатов.На рис. 3 показаны три главных шага в генерации преобразованийкандидатов.В течение первого шага выбираются базисные векторы, ко-


72 Программные средства и математические основы информатикиторые стягивают подпространства итерационного пространства так, чтоэти подпространства доступны только одному процессору (а). Потомэти векторы отображаются в индексное пространство, где они стягиваютподпространства, которые доступны уже более чем одному процессору(б). Внутри следующего шага определяется унимодулярное преобразование,которое делает эти подпространства ортогональными однойиз осей (в). Полученный массив нарезается на блоки вдоль выбраннойоси. Каждый из этих блоков либо не используется, либо используетсятолько одним процессором, что ведёт к некоторому шаблону использования(utilization pattern) блоков памяти. Наконец, определяется смещениедля перемещения шаблона так, чтобы он отображал распределениеданных. Результатом является преобразование, которое возвращает все(!) доступы, исполняемые одной ссылкой в локальных доступах.4.3.1. Упорядочение ссылокВначале покажем, как упорядочить преобразование данных относительноотдельной ссылки R. Мы начинаем с выпуклого многогранникаитерационного пространства I и разлагаем его на подпространства I pтак, что подпостранство I p исполняется на процессоре P p . Таким образом,I = {⃗x ∈ Z k | A · ⃗x + C · ⃗n + ⃗ b ≥ 0}для подходящих матриц A, C и вектора ⃗ b. Полином Эрхарта I для Iпоказывает число итераций, которые могут исполняться всеми параллельнымипроцессорами. В случае примера с мультирешётками получаемполином следующего вида:I(M,N) =M · N − M − N +1.Так как мы предположили циклическое отображение итерационных точекв параллельной размерности j в множество из P параллельныхпроцессоров, то получаем, чтоI p = {⃗x| ⃗x ∈ I ∧ x j mod P = p}.Таким образом, каждое множество I p также есть выпуклый многогранник,и существует полином Эрхарта I p для I p . Например, для рассматриваемогопримераI p (M,N) = 1 2 (M · N − M − [2 10 1]p,M[2 1· N +0 1]).p,M


Евстигнеев В. А. Многочлены Эрхарта 73jw 1w 21а) итерационное пространствоijj109v 1v 287654iiб) индексное пространство в) новое индексное пространствоРис. 3.


74 Программные средства и математические основы информатикиЧтобы вычислить индексную точку внутри преобразованного индексногопространства, нам нужно применить преобразование⃗x ↦→ T · ⃗x + T n · ⃗n + ⃗tдля индексной точки f(⃗x). Потом мы можем исследовать блочно циклическоераспределение массива, для того чтобы выявить, является лиэлемент массива t(f(⃗x)) = ⃗x ′′ , к которому имеется доступ из итерационнойточки ⃗x, локальным элементом массива процессора P p .Согласованноеограничение C p , таким образом, имеет вид:C p : B · p ≤ π d (⃗x ′′ ) − (B · P ) · z 2


Евстигнеев В. А. Многочлены Эрхарта 75Если мы опустим параметр p, который представляет процессор P p ,томы получим желаемый многогранник L l .Объём многогранника L l представляется полиномом Эрхарта L l ,которыйслужит в качестве метрики для ранжирования преобразованийотносительно ссылки R l . Таким образом, сумма ∑ l L l по всем ссылкам,дополненная полиномом G, который изображает полное число доступовк памяти, отражает отношение локальных (удалённых) доступовисходного гнезда циклов N и обеспечивает желаемую метрику для ранжированиякомбинаций линейного преобразования данных и блочноциклическогораспределения данных.Мы не рассматриваем случай кратных областей правильности длямногогранников L l . В этом случае нужно больше информации относительнопараметров программы, для того чтобы выбрать правильнуюобласть правильности.4.3.3. Заключительный отборЧтобы окончательно выбрать преобразование, которое хорошо реализуетсядля входного гнезда циклов, мы символически сравним полиномыЭрхарта для различных преобразований и сохраним лучшееиз всех преобразований-кандидатов. Для заданного конечного множествапреобразований, которое будет сконструировано ниже в разд. 4.4,сравним полиномы L этих преобразований. Без дальнейших знаний опараметрах программы мы вначале упростим периодические коэффициенты,т.е. мы заменим их арифметическими средними, унифицируемпараметры программы и потом сравним коэффициенты полиномов внисходящем порядке. Следующие полиномы Эрхарта E M и E N сутьполиномы для нашего текущего примера для двух параллельных процессоров:E(M,N,p) = 1 4 · (5 · M · N − [10 50 5[ [12 106 5]N,ME(M,N,p) = 1 4 · (6 · M · N − [ 12 60 6]p,N[0 0,4 5]p,N][6 5· M −4 5N,M]p),· M − 6 · N +]p,M[ 12 60 6· N+]).p,N


Евстигнеев В. А. Многочлены Эрхарта 77Следующая импликация применяется к индексному пространству.Теорема 4.2. Пусть ⃗w 1 ,...,⃗w n−1 суть линейно независимые векторыиз Z n , удовлетворяющие приведённому выше ограничению. Пустьf(⃗x) = F · ⃗x + F n · ⃗n + ⃗ b обозначает индексную функцию, имеющуюквадратную обратимую матрицу доступа F . Пусть далее ⃗v i = F · ⃗w iобозначают образы векторов ⃗w относительно линейной части индекснойфункции f. Тогда:n−1∑f(⃗x ′ )=f(⃗x)+ k i · ⃗v i ⇒ x p mod P = x ′ p mod P.i=1Таким образом, векторы ⃗v i , упоминаемые в теореме 4.2, стягиваютподпространства индексного пространства, которые доступны из самоебольшее одного процессора. Формулировка теоремы 4.2 влечёт, чтовключаются только те индексные точки, которые имеют копию в итерационномпространстве. Рис. 3(а) иллюстрирует порождающие векторы⃗w i , в то время как рис. 3(б) иллюстрирует векторы ⃗v i для обеих теорем.Остаётся вычислить преобразование T .Пусть⃗v i ′ = T · ⃗v i обозначаетобраз ⃗v i при преобразовании T . Если существует индекс j такой,что все векторы ⃗v i′ имеют 0-позицию в их j-й компоненте, тогда достаточнораспределить индексные точки вдоль этой размерности. Мывычисляем такое преобразование T , применяя гауссовское исключение,комбинируя векторы ⃗v i в матрицу из n строк и n − 1 столбцов. Её рангравен n − 1, потому что векторы ⃗v i линейно независимы. Теперь мыисключаем элементы последней строки гауссовским исключением и замещаемэту строку на желаемом уровне. Алгоритм исключения даётнам преобразование T .4.5. Распределение данныхПока мы вычислили матрицу преобразования. Остаётся определитьпараметры распределения. Это делается в два этапа. Вначале мы определяемокончательный шаблон использования (utilization pattern), а потомбудет вычислено смещение для функции преобразования.4.5.1. Шаблон использованияВначале мы введём важное понятие вырезки массива (array slice).


78 Программные средства и математические основы информатикиОпределение 11. Вырезкой массива X относительно размерности dназывается подпространство индексного пространства D X , которое естьрезультат оценки фиксированной координаты в размерности d. Говорят,что процессор владеет вырезкой S k , если он имеет доступ к элементамвнутри вырезки, но никакой другой процессор такого доступа не имеет.Шаблон пользования состоит из вырезок, которыми владеет специфицированныйпроцессор, и из неиспользуемых вырезок. Используя ′ ∗ ′для обозначения неиспользуемых вырезок, мы можем описать шаблондля преобразований-кандидатов на рис. 3(в) как ′ 0, ∗, ∗, ∗, 1, ∗, ∗, ∗ ′ .Имеемвырезку, принадлежащую процессору 0, за ней следуют три неиспользуемыевырезки, затем вырезка, принадлежащая процессору 1 ит.д. Этот шаблон повторяется циклически. Блоки с неиспользуемымивырезками всегда имеют один и тот же размер: в нашем случае 3.Поэтому для вычисления этого шаблона может быть использованпростой итеративный алгоритм. Должны быть выделены три случая.В первом случае шаблон непосредственно встраивается в циклическоеразбиение. Во втором случае к массиву должно быть применено обратноепреобразование, чтобы сделать возможным включение шаблона враспределение, что, например, верно для шаблона ′ 2, ∗, 1, ∗, 0, ∗ ′ .Втретьемслучае шаблон не может быть встроен в распределение. Следовательно,эти пребразования удаляются из множества законных кандидатов.4.5.2. СмещениеВплоть до данного момента мы точно знали порцию T преобразованияt(⃗x) =T · ⃗x + T n · ⃗n + ⃗t. Смещение T n · ⃗n + ⃗t должно быть выбранотак, чтобы каждый процессор имел доступ только к тем вырезкам, которымион сам владеет. Это свойство удовлетворяется для индекснойфункции без смещения. Мы должны определить смещение преобразованияt так, чтобы оно компенсировало бы смещение f.В контексте нашего простого процессорного отображения итерационнаяточка ⃗0 исполняется на процессоре 0. Более того, вырезка S 0 всегданаходится во владении процессора 0. Таким образом, достаточно выбратьсмещение так, чтобы итерационная точка ⃗0 вызывала бы доступ квырезке S 0 . Начиная с t(f(⃗0)) = ⃗0, мы получаем T n = −T ·F n ∧⃗t = −T · ⃗f.


Евстигнеев В. А. Многочлены Эрхарта 795. ЗАКЛЮЧЕНИЕИз экспериментов следует, что техника, основанная на полиномахЭрхарта, значительно улучшает обработку регулярных программ наNUMA-архитектурах. Она годится для улучшения распределения данныхв программах с явным параллелизмом и для руководства оптимизациейраспределения данных в распараллеливающих компиляторах.СПИСОК ЛИТЕРАТУРЫ1. Heine F. Optimierung der Datenverteilung für SCI-gekoppelte Workstation-Cluster.Master’s thesis, Universität-GH Padeborn, May 1999.2. Евстигнеев В.А., Мирзуитова И.Л. Развитие NUMA-архитектуры: текущее состояние// Современные проблемы конструирования программ. — Новосибирск,2002. —- С. 139–154.3. Heine F., Slowik A. Volume driven data distribution for NUMA-machines // Lect.Notes Comp. Sci. — Vol. 1900. — 2000. — P. 415 – 424.


В. Н. Касьянов, Е. В. КасьяноваДИСТАНЦИОННОЕ ОБУЧЕНИЕ:МЕТОДЫ И СРЕДСТВА АДАПТИВНОЙ ГИПЕРМЕДИА *ВВЕДЕНИЕВ недавнем прошлом хороший почерк был гарантией спокойной и обеспеченнойжизни до старости. Последние десятилетия характерны ускорениемобновляемости технологий и знаний в различных сферах деятельностичеловека. Поэтому школьного и даже вузовского образования надолго ужене хватает. Сегодня особенно актуальна концепция непрерывного образованияна протяжении всей жизни или, как говорят, пожизненного обучения(long-life education). Так, на последнем в XX веке 16-ом Всемирном компьютерномконгрессе IFIP, который проходил в Пекине в 2000 г. под лозунгом«Обработка информации. За рубежом 2000», из 132 докладов по использованиюинформационных и коммуникационных технологий в обучении 38докладов было посвящено пожизненному обучению, 55 — подготовке преподавателейи лишь 39 — обучению информатике [4].В разных странах создаются специализированные открытые университеты:например, Каталонский открытый университет, Британский открытыйуниверситет и др. В Европе и Северной Америке создаются консорциумыведущих университетов, предоставляющих широкий спектр дистанционныхобразовательных услуг. Так, ассоциация дистанционного обучения в СШАобъединяет в своем составе пять тысяч учебных заведений. ЮНЕСКО(UNESCO) ведет работу по организации распределенного университета,обучение в котором будет происходить в виртуальном пространстве, внезависимости от расселения и границ и без ограничений по времени.Поиск соответствующей организационной структуры и учреждений образования(особенно образования взрослых), которые обеспечили бы переходот принципа «образование на всю жизнь» к принципу «образованиечерез всю жизнь» — важнейшая проблема XXI века.Открытое образование — это образование, доступное всем. Его развитиенеизбежно приведет к существенному пересмотру традиционных мето-* Работа выполнена при финансовой поддержке Министерства образования РФ (грант№ Е02-1.0-42).


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 81дик и технологий учебного процесса, а также к формированию единого открытогообразовательного пространства.Книги, а в более ранние времена — папирус, телячья кожа или каменныеплиты, были излюбленными носителями информации со времени изобретенияписьменности. Хранение информации в виде книг имеет множествопреимуществ: информация сгруппирована воедино, и зачастую одна темаисследуется от начала до конца.Вы можете учиться, читая книги или дискутируя с другим человеком.Основное различие этих двух подходов состоит в том, что партнер-человекпринимает во внимание особенности конкретного ученика и адаптируетскорость подачи и глубину информации к способностям своего визави.Обычная книга не в состоянии адаптировать себя к текущим потребностямчитателей — однажды напечатанная, она остается статичной. Если представитьсебе книгу, написанную специально для нас, она наверняка будет обладатьмножеством достоинств. Например, нам не придется скучать, читаято, что нам уже известно или вовсе неинтересно. Представьте учебник, иллюстрирующийсложные предметы примерами из области вашего главногохобби, учебник, дающий полное и серьезное изложение определенной темыи всегда — даже через много лет — ссылающийся на самые последние исследованияпо этой теме. Вообразите учебник, всегда привлекающий к себевнимание, потому что в нем в любой момент есть новая, интересная и полезнаявам информация и пояснения, специально подобранные к вашемууровню знаний.С момента появления Всемирной Сети (WWW) в 1991 г. [10] информацияприобрела новое измерение. Сегодня миллионы компьютеров соединенычерез Интернет, и их пользователи могут получить информацию из любойточки мира.Такое огромное количество информации дает возможность обучения иприобретения опыта. Но эффективное извлечение информации из Интернетавсе еще остается важной темой для исследований, так как эффективностьпоисковых машин возрастает с увеличением точности запроса. Информацияиз Интернета часто остается бесполезной для целей обучения, посколькуобучающийся нуждается в руководстве для построения ментальной моделиобласти, в которой он работает, прежде чем он сможет задавать достаточноточные запросы.Было бы очень полезным иметь разные учебники для разных типов учеников,для студентов с различными интересами и различным уровнем начальнойподготовки в изучаемой области. Делая шаг в этом направлении,адаптивные гиперкниги персонализируют свое содержание применительно


82 Программные средства и математические основы информатикик конкретным потребностям пользователей. Они дают пользователю способностьсамим определять цели своего обучения, предлагают разумныепоследующие шаги, поддерживают обучение, основанное на проектах, даютальтернативный взгляд и могут быть дополнены документами, написаннымисамими обучающимися. Адаптивные гиперкниги являются информационнымирепозиториями с доступом к распределенной информации. Реализованныев качестве Интернет-приложений, они могут интегрировать документы,расположенные где угодно в Интернете, и адаптировать эти документык целям и способностям конкретного пользователя.Многообещающие результаты дают исследования в области адаптивныхгипермедиа-систем [17], которые объединяют гипермедиа-системы с интеллектуальнымиобучающими программами для адаптации системы к потребностямконкретного пользователя.В данной работе рассматриваются вопросы поддержки дистанционногообучения, особое внимание уделяется анализу методов и средств адаптивнойгипермедиа, используемых современными адаптивными обучающимиWeb-системами.Статья начинается с описания свойств пяти поколений систем дистанционногообучения, начиная от систем обучения по переписке, больше известныхв СССР как системы заочного обучения, и кончая системами гибкогообучения и системами интеллектуального гибкого обучения, определяющихнастоящее и будущее дистанционного образования и базирующихсяна Web-технологиях (разд. 1). В разд. 2 определяются адаптивные гипермедиа-системы,рассматриваются их основные типы и области применения.Разд. 3 отвечает на вопрос, к чему адаптируются адаптивные обучающиесистемы; здесь изучаются такие характеристики пользователя, важные дляадаптации, как цели пользователя, его знания, уровень подготовки пользователяи имеющийся у него опыт, предпочтения и личностные характеристикипользователя. Вопросу, что адаптируется в системах Web-обучения,посвящен разд. 4; в нем рассматриваются такие технологии, как выстраиваниепрограммы обучения, интеллектуальный анализ решений обучаемого,поддержка в решении задач, привнесенных в обучающие Web-системы изнесетевых интеллектуальных обучающих систем, а также технологии адаптациисодержания и навигации, характерные для адаптивных гипермедиасистем.Моделям предметной области, пользователя и адаптации, используемымв адаптивных гипермедиа-системах, посвящен разд. 5. Разд. 6 содержитпримеры существующих экспериментальных адаптивных обучающихWeb-систем. Завершает изложение заключение, в котором объясняется,почему среди коммерческих обучающих Web-систем мало адаптивных.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 831. ПЯТЬ ПОКОЛЕНИЙ СИСТЕМ ДИСТАНЦИОННОГО ОБУЧЕНИЯМногие годы университеты, активно работающие в области дистанционногои открытого образования, находились и находятся на передовыхпозициях в использовании новых технологий для увеличения доступа к возможностямобучения и подготовки. Модели дистанционного обучения, используемыеими, постепенно эволюционировали, пройдя через следующиечетыре стадии [88]: модель обучения по переписке, мультимедийная модельобучения, модель телеобучения, модель гибкого обучения.Модель обучения по переписке поддерживается системами дистанционногообучения первого поколения, которые основываются на печатной технологиии являются гибкими с точки зрения времени, места и пространства.Эти системы не обладают высокой интерактивностью, но предоставляютхорошо проработанный учебный материал.Мультимедийная модель характеризуется системами дистанционногообучения второго поколения, которые, сохраняя гибкость с точки зрениявремени, места и пространства и хорошую проработанность учебного материала,используют в качестве технологий доставки не только печатнуюпродукцию, но и аудиокассеты и видеозаписи, а также такие высоко интерактивныесредства доставки, как компьютерное обучение и интерактивноевидео.Модель телеобучения связана с системами дистанционного обучениятретьего поколения, которые базируются на следующих технологиях: аудиоконференция,видеоконференция, широковещательное ТВ/радио и аудиовидеоконференции.Эти системы привязаны к определенному времени,месту и пространству, обладают высокой интерактивностью, но в случае саудиовидеоконференциями могут поставлять не вполне проработанныйучебный материал.Модель гибкого обучения поддерживается системами дистанционногообучения четвертого поколения, которые используют в качестве технологийдоставки интерактивный мультимедийный диалог, основанный на Интернете,доступ к WWW-ресурсам и компьютерное взаимодействие. Эти системыобладают высокой интерактивностью и предоставляют хорошо проработанныйучебный материал.И хотя в последние годы многие университеты только начинают разворачиватьсистемы дистанционного обучения четвертого поколения, эволюционныйпроцесс продолжается, и на основе дальнейшего использованияновых технологий уже начинают появляться системы дистанционного обу-


84 Программные средства и математические основы информатикичения пятого поколения, поддерживающие так называемую модель интеллектуальногогибкого обучения [88].Системы дистанционного обучения пятого поколения используют длядоставки следующие технологии: интерактивный мультимедийный диалог,основанный на Интернете; доступ к WWW-ресурсам; компьютерное взаимодействиена основе автоматизированных ответных систем; доступ черезпортал кампуса к процессам и ресурсам учреждения. Эти системы обладаютвысокой интерактивностью и предоставляют хорошо проработанный учебныйматериал.Следует отметить, что системы первых трех поколений, а также системычетвертого поколения, опирающиеся на компьютерное взаимодействие,характеризуются переменной стоимостью, которая имеет тенденцию к увеличениюили уменьшению, напрямую связанную (часто линейно) с изменениемобъема активности; например, в системах доставки второго поколенияраспространение пакетов материалов для самостоятельного обучения имеетпеременную стоимость, которая изменяется прямо пропорционально числуобучаемых студентов. В отличие от таких систем, системы дистанционногообучения пятого поколения обладают тенденцией к значительному уменьшениюстоимостей, связанных с обеспечением доступа к учрежденческимпроцессам и онлайновому обучению отдельных пользователей.Центральной составляющей систем пятого поколения является разработкапринимаемого e-интерфейса, портала кампуса, через который студенты,преподаватели и другие штатные сотрудники могут связываться с университетомвысокоинтерактивным и вынужденным образом. Для успеха напоявляющемся глобальном рынке пожизненного обучения университетунужно создать портал кампуса, который достигнет такой степени интерактивности,пользовательской дружественности и персонализации, которыхсегодня нет у громадного большинства Web-сайтов кампусов.2. АДАПТИВНЫЕ ГИПЕРМЕДИА-СИСТЕМЫАдаптивные гипермедиа-системы повышают функциональность гипермедиа-систем.Целью этих систем является персонализация гипермедиасистем,ее настройка на особенности индивидуальных пользователей. Такимобразом, каждый пользователь имеет свою собственную картину и индивидуальныенавигационные возможности для работы с гипермедиасистемой.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 85Адаптивные гипермедиа-системы сводят воедино идеи гипермедиасистеми интеллектуальных обучающих систем. Они принадлежат к группеадаптируемых пользователем систем, таких как адаптируемый пользовательскийинтерфейс или интерфейс, основанный на модели пользователя.Более подробное обсуждение адаптивных гипермедиа-систем в контекстеадаптируемых пользователем систем можно найти в [57].Адаптивные системы используют модель пользователя для сбора информациио его знаниях, целях, опыте и т.д. для адаптации содержания инавигационной структуры. Приведем пример. Для пользователя с невысокимуровнем знаний может быть полезно вначале прочитать более общуювводную информацию, прежде чем углубляться в детали. Однако эта жеинформация не будет столь же интересной для эксперта. Здесь выбор нужнойинформации в нужное время является задачей для модели пользователя.Другой пример: информационная система по туризму должна рассматриватьспособности и ограничения своих пользователей. Если пользователь,имеющий физические недостатки, запрашивает время начала работы муниципалитета,ответ системы должен содержать также сведения о ближайшихпарковках или остановках общественного транспорта, также как и о возможностивъезда в здание на коляске и т.п. (примеры см. в [44, 66, 72, 84]).Адаптация гипермедиа-систем является также попыткой преодолетьвозможность «заблудиться в гиперпространстве» (см. обсуждение этой проблемыв [68]). Цели и знания пользователя могут быть использованы дляограничения количества возможных ссылок гипермедиа-системы.По возможностям адаптации различаются следующие типы гипермедиасистем[30]:1. Адаптированные (приспособленные) гипермедиа-системы (adaptedhypermedia systems) — системы, в которых адаптация привносится в системусамим разработчиком после фазы тестирования. В этом случае адаптацияне может быть корректной для каждого отдельного пользователя.2. Адаптируемые (приспосабливаемые) гипермедиа-системы (adaptablehypermedia systems) — системы, которые могут модифицироваться толькопо явному требованию пользователя. Адаптируемые системы позволяютпользователю явно устанавливать предпочтения или предоставляют профильчерез заполнение формы. Вся информация, предоставленная пользователем,хранится в модели пользователя, которая модифицируется толькопо явному запросу пользователя. Представление информации затем адаптируетсяк этой модели. Некоторые системы могут иметь очень сложные моделипользователя, в то время как другие различают только несколько стереотипныхпользователей типа «начинающего», «среднего» и «эксперта».


86 Программные средства и математические основы информатики3. Адаптивные гипермедиа-системы (adaptive hypermedia systems) —системы, которые сами могут адаптироваться к потребностям пользователя.Адаптивные системы формируют модель пользователя, отслеживая навигациюпользователя в информационном пространстве, а также посредствомтестов в системах обучения. Представление адаптируется к модели пользователя,и модель пользователя постоянно обновляется, по мере того какпользователь просматривает информацию.Таким образом, класс адаптивных гипермедиа-систем состоит из всехтаких гипертекстовых и гипермедиа-систем, которые отражают некоторыеособенности пользователя в модели пользователя и применяют эту модельдля адаптации различных видимых для пользователя аспектов системы.Поддержка адаптивных методов в гипермедиа-системах оказываетсявесьма полезной в тех случаях, когда имеется одна система, обслуживающаямножество пользователей с различными целями, уровнем знаний иопытом, и когда лежащее в ее основе гиперпространство является относительнобольшим [17].Обучающие гипермедиа-системы, в которых пользователь или ученикимеет конкретную цель обучения (включая и такую цель, как общее образование),являются типичным приложением адаптивных гипермедиа-систем.В этих системах основное внимание уделяется знаниям обучающихся, которыемогут сильно различаться. Состояние знаний изменяется во времяработы с системой. Таким образом, корректное моделирование изменяющегосясостояния знаний, надлежащее обновление модели и способность делатьправильные заключения на базе обновленной оценки знаний являютсяважнейшей составляющей обучающей гипермедиа-системы.Отметим, что области применения выходят далеко за границы обучающихсистем. Например, другим важным приложением являются онлайновыеинформационные системы (on-line information systems), а также онлайновыесправочные системы (on-line help systems). К онлайновым информационнымсистемам относятся, например, электронные энциклопедии, хранилищадокументов или туристические справочники. Чтобы выдать правильнуюинформацию пользователям с различным уровнем квалификации, этим системамтакже требуется модель знаний пользователя. Важен также контекстзапроса: нужна ли информация пользователю для краткой справки, для разработкипрезентации, для освежения знаний? Онлайновые справочные системыпринимают во внимание конкретную среду, например, место вызова(контекстно-зависимые справочные системы).Для ограничения вариантов навигации адаптивные гипермедиа-системымогут быть объединены со средствами поиска информации [59] в гиперме-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 87диа-системы с поиском информации. Ссылки в таких системах не вводятсяавтором системы, а формируются на основе сходства: ссылка между двумядокументами устанавливается в том случае, если оба документа удовлетворяютнекоторому условию похожести.Подробное рассмотрение различных областей приложения адаптивныхгипермедиа-систем сделано в работе [13] (см. также [1, 2]).3. К ЧЕМУ АДАПТИРУЮТСЯ АДАПТИВНЫЕ ОБУЧАЮЩИЕ СИСТЕМЫ?Адаптивная гипермедиа-система собирает информацию о пользователях.На основе их индивидуальных характеристик она адаптирует свое содержаниеи навигационные возможности к конкретному пользователю (рис. 1).Рис. 1. Схематическое представление адаптивной гипермедиа-системыПервый вопрос, возникающий при рассмотрении модели конкретнойадаптивной системы, состоит в следующем: какие характеристики пользователямогут быть приняты во внимание для обеспечения адаптации? К какимпараметрам (различным для различных пользователей и, возможно,


88 Программные средства и математические основы информатикиразличным для одного и того же пользователя в разные моменты времени)система может адаптировать свое поведение? Вообще, существует довольномного параметров, связанных как с конкретным видом текущей деятельностипользователя, так и с пользователем как таковым, которые адаптивнаясистема может принять во внимание: знания пользователя, его цели, предпочтения,подготовка, опыт и скорость обучения. Некоторые характеристикисреды, в рамках которой пользователь осуществляет связь с Webсистемой,могут также использоваться системой для адаптации, хотя и неотносятся к самим пользователям, как таковым, и не могут быть выведеныиз характеристик пользователя.Некоторые авторы [3] помимо адаптации к отдельному пользователюрассматривают еще адаптации к множествам пользователей, выделяя прикомпьютерном обучении три иерархических уровня адаптации к обучаемым.1. Адаптация к студентам как категории пользователей.2. Адаптация к группе студентов.3. Адаптация к отдельному студенту.Первый уровень адаптации предусматривает адаптацию к каждой категориипользователей компьютерной системы обучения в зависимости от ихпотребностей и обычно реализуется созданием специального интерфейсадля каждого класса пользователей. Такой подход характерен для любыхкомпьютерных систем. В интеллектуальных обучающих системах учащемусянеобходимо предоставить следующие возможности: обучение, проверказнаний, упражнения, помощь и справочная информация, видеолекциии их презентации, вопросы преподавателю, конференции, студенческие форумы,электронные методические пособия, ввод комментариев по ходу занятияи др.Адаптация к группе студентов предполагает адаптацию в зависимостиот выбранной специальности, образовательной программы, возраста и психологическойнаправленности личности. Этот уровень адаптации базируется,в первую очередь, на решении двух основных вопросов дидактики: «чемуучить?» и «как учить?». Ответ на первый вопрос определяет цели обучения,т.е. объем необходимых знаний, умений и навыков и степень их освоения.Решение второго вопроса дидактики («как учить?») обуславливает выборметодов обучения, наиболее подходящих для группы учащихся, а такжеспособов представления информации. На выбор методов обучения и способовпредставления информации влияют как возраст обучаемого, так и егопсихологическая направленность личности (ориентация на себя, на задачу,на взаимодействие).


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 893.1. Цели пользователяЦель пользователя (или задача пользователя) — это параметр, зависящийв большей степени от самой природы текущей работы пользователя вданной гипермедиа-системе, нежели от пользователя как такового. В зависимостиот типа системы, это может быть рабочая цель (в прикладных системах),цель поиска (в информационно-поисковых системах) или цель обученияили решения (в обучающих системах). Во всех этих случаях цель являетсяответом на вопрос: «Почему пользователь использует гипермедиасистемуи чего пользователь хочет в итоге достичь?». Цель пользователя —это наиболее изменчивая его характеристика. Она почти всегда будет другойпри новом сеансе работы с системой, а иногда может изменяться и вовремя одного сеанса работы.В обучающих системах целесообразно различать локальные, или целинижнего уровня, которые могут изменяться достаточно часто, и общие, илицели (задачи) высокого уровня, являющиеся более стабильными. Например,цель изучения курса или некоторой темы курса — это цель высокого уровня,которая сможет сохраняться в течение нескольких сеансов, в то времякак цель решения задачи — цель нижнего уровня, которая может изменятьсяот одной учебной задачи к другой несколько раз за один сеанс работы.Цель пользователя рассматривается как очень важная его характеристикав адаптивных гипермедиа-системах. Почти третья часть существующихтехнических приемов адаптации основывается на этой характеристике. Интересно,что почти все эти приемы относятся к технологиям адаптивнойподдержки навигации.3.2. Знания пользователяВ существующих в настоящее время адаптивных гипермедиа-системахуровень знаний пользователя является наиболее важной информацией дляадаптации. Особенно учет уровня знаний важен в образовательных системах,где изменение состояния знаний пользователя является важнейшейсоставляющей адаптации. Система должна всегда обновлять свою оценкууровня знаний пользователя, и адаптационная компонента должна использоватьреальное состояние знаний для выполнения шагов адаптации.Эта характеристика используется при реализации примерно одной третитехнических приемов адаптации. Почти все приемы адаптивного представленияиспользуют знания пользователя как источник адаптации. Уровеньзнаний является переменной величиной для каждого конкретного пользователя.Это означает, что адаптивная гипермедиа-система, использующая зна-


90 Программные средства и математические основы информатикиния пользователя, должна фиксировать изменения уровня этих знаний исоответствующим образом модифицировать модель пользователя.3.3. Уровень подготовки пользователя и имеющийся у него опытУровень подготовки пользователя и имеющийся опыт работы пользователяс данной гипермедиа-системой — это две характеристики пользователя,которые имеют нечто общее с уровнем знаний пользователя, но функциональноотличаются от него.Под уровнем подготовки пользователя понимается вся та информация,связанная с предыдущим опытом работы пользователя, которая не относитсяк теме данной гипермедиа-системы. Подготовка включает в себя профессиюпользователя, опыт работы в смежных областях, а также точку зренияпользователя и его перспективу.Опытом работы пользователя в данной гипермедиа называется характеристика,отражающая то, насколько хорошо пользователь знаком соструктурой гипермедиа и то, насколько легко он может осуществлять навигациюв данной гипермедиа. Это не то же самое, что уровень знаний пользователяпо теме, представленной в гипермедиа [89]. Иногда бывает так, чтопользователь хорошо знаком с темой, но абсолютно не знаком со структуройгиперпространства. И наоборот, пользователь может быть хорошо знакомсо структурой гиперпространства, но не иметь глубоких знаний по теме,представленной в нем. Еще одной причиной того, что необходимо различатьопыт работы в гипермедиа и уровень знаний пользователя, являетсясуществование технического приема адаптивной поддержки навигации [78,89], который основан на этой характеристике пользователя.Такие индивидуальные характеристики пользователя, как уровень подготовкиили опыт, обычно моделируются стереотипной моделью пользователя(MetaDoc, Anatom-Tutor, EPIAIM, C-Book). Стереотип может быть стереотипомопыта [78], [89] или стереотипом уровня подготовки для такихкатегорий, как профессия [39], перспектива [9] или родной язык.3.4. Предпочтения пользователяВажной характеристикой пользователя, рассматриваемой системамиадаптивной гипермедиа, является набор (система) предпочтений пользователя.По различным причинам пользователь может предпочитать одни узлы,ссылки и части страниц гипермедиа другим. Эти предпочтения могутбыть абсолютными (Hypadapter, Information Islands) или относительными,т. е. зависящими от текущего узла, цели (PUSH, HYPERFLEX) или текуще-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 91го контекста вообще (WebWatcher, CID, DHS, Adaptive HyperMan). Предпочтениянаиболее тяжело использовать в поисковой гипермедиа. В то жесамое время, в наиболее адаптивных поисковых гипермедиа-системах предпочтения— единственная накапливаемая информация о пользователе.Некоторые предпочтения, например, по отношению к шрифту, иллюстрациям,примерам не могут быть определены системой без ввода данныхпользователем. Системы, которые отражают различные типы предпочтений,позволяют своим пользователям настраивать эти свойства. При этом предполагается,что пользователь не склонен часто менять свои предпочтения.3.5. Личностные характеристики пользователяДанная группа характеристик связана с определением пользователя какиндивидуума. Примерами личностных характеристик являются персональныефакторы (например, интроверт или экстраверт), когнитивные факторы(например, скорость обучения) и стили обучения.Подобно характеристикам пользовательской подготовки личностные характеристикипользователя являются его стабильными чертами, которыелибо совсем не могут быть изменены, либо для своего изменения требуютдлительный период времени. Однако в отличие от характеристик подготовкипользователя личностные характеристики как правило извлекаются не впроцессе простого опроса, а с помощью специально разработанных психологическихтестов. Многие исследователи согласны с важностью использованиядля адаптации личностных характеристик пользователя, но пока срединих мало согласия в том, какие характеристики можно и нужно использоватьили как их использовать. В качестве примера можно привести рядсистем, в которых сделана попытка адаптации к стилю обучения [25, 29, 45,87], отметив, что еще нет достаточной ясности в том, какие аспекты стиляобучения полезно моделировать и что можно сделать по-разному для пользователейс разными стилями.3.6. Адаптация к среде пользователяПоскольку пользователи одного и того же серверного Web-приложениямогут находиться виртуально повсеместно и могут использовать различноеоборудование, важной задачей становится адаптация к пользовательскойсреде. Имеется целый ряд систем, предлагающих некоторые технологии дляадаптации как к местонахождению пользователя, так и к его платформе.Простая адаптация к платформе (оборудование, программное обеспечение,пропускная способность сети) обычно включает выбор типа представления


92 Программные средства и математические основы информатикисодержимого: материал или медиа (т.е. неподвижная картинка против ролика)[58]. Более продвинутые технологии могут обеспечить существенно болееразный интерфейс для пользователей с разными платформами и дажеиспользовать платформные ограничения для получения преимуществ отмоделирования пользователя. Например, одна из версий системы AIS требует,чтобы пользователь явно запрашивал следующие страницы истории вновостях, посылая сообщения системе о том, какая история представляетинтерес.4. ЧТО АДАПТИРУЕТСЯ В СИСТЕМАХ WEB-ОБУЧЕНИЯ?Сетевые обучающие системы успешно объединяют технологии адаптации,используемые в интеллектуальных обучающих системах и адаптивныхгипермедиа-системах.Целью различных интеллектуальных обучающих систем является использованиезнаний о сфере обучения, обучаемом и о стратегиях обучениядля обеспечения гибкого индивидуализированного изучения и обучения.Для достижения этого ими традиционно используются следующие основныетехнологии (см., например, в [17]): построение последовательностикурса обучения, интеллектуальный анализ ответов обучаемого и интерактивнаяподдержка в решении задач. Все эти три технологии можно рассматриватьтехнологиями интеллектуальной адаптации сетевых обучающих систем.К группе технологий интеллектуальных адаптаций сетевых обучающихсистем следует отнести также технологию, получившую название подборамоделей обучаемых (или просто подбором моделей) [11]. Суть ее состоит ванализе и подборе модели для многих обучаемых одновременно, и поэтомуона почти не имеют корней в несетевых (доинтернетовских) образовательныхсистемах, поскольку обычные адаптивные и интеллектуальные образовательныесистемы работают с одним обучаемым (и одной моделью обучаемого)за раз.Что касается гипермедиа-систем, то в них область адаптации весьма ограниченаи существует не так уж много параметров, которые можно изменять.С общей точки зрения гипермедиа-система состоит из набора узловили гипердокументов (для краткости, будем называть их "страницами"),связанных ссылками. Каждая страница содержит некоторую локальнуюинформацию и несколько ссылок на релевантные страницы. Системы гипермедиамогут также содержать индексную структуру и глобальную карту,которые обеспечивают доступ по ссылкам ко всем возможным страницам.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 93Поэтому адаптация в адаптивной гипермедиа может состоять в настройкесодержания очередной страницы (адаптация на уровне содержания) или визменении ссылок с очередной страницы, индексных страниц и страницкарт (адаптация на уровне ссылок). Поэтому различаются адаптации науровне содержания и на уровне ссылок как два различных класса гипермедиа-адаптации,первый из которых называется адаптивным представлением(adaptive presentation), а второй — адаптивной поддержкой навигации(adaptive navigation support).4.1. Выстраивание программы обученияЦель технологии выстраивания последовательности обучения(curriculum sequencing), также называемой технологией учебного планирования(instructional planning technology), — помочь обучаемому найти свой«оптимальный путь» через учебный материал. Для этого нужно обеспечитьобучаемого наиболее подходящей, индивидуально спланированной последовательностьюблоков знаний для изучения и последовательностью учебныхзаданий (примеров, вопросов, задач и т.д.) для их выполнения.Различают два вида выстраивания: активный и пассивный. Активноевыстраивание подразумевает наличие цели обучения (подмножество понятийили тем, которыми надо овладеть). Системы с активной последовательностьюмогут построить лучший индивидуальный путь для достижения цели.Пассивное выстраивание (которое также называется корректировкой)является реактивационной технологией и не требует активной цели обучения.Она начинает действовать, когда пользователь не способен решить задачуили ответить правильно на вопрос (вопросы). Ее цель — предложитьпользователю подмножество доступного материала для изучения, котороеможет заполнить пробел в знаниях студента для разрешения непонимания.В системах с активной последовательностью различают системы с жесткойи приспосабливаемой целью обучения. Большинство существующих системмогут провести своих студентов к фиксированной цели обучения — полномумножеству понятий сферы обучения. Несколько систем с приспосабливаемойцелью позволяют учителю или студенту выбирать подмножествовсех понятий сферы обучения как текущую цель.Разделяют два уровня выстраивания: высокий и низкий. Выстраиваниевысокого уровня (или выстраивание знаний) определяет следующую подцельдля изучения: следующее понятие, набор понятий, тему или урок, которыенеобходимо выучить на следующем шаге. Выстраивание низкогоуровня (или выстраивание заданий) определяет следующее учебное задание


94 Программные средства и математические основы информатики(задачу, пример, тест) внутри текущей подцели. Последовательности высокогои низкого уровней часто исполняются различными механизмами. Вомногих системах обучения только один из этих двух механизмов интеллектуальный,например, урок выбирает обучаемый, в то время как учебныезадания внутри этого урока выбирает система. Некоторые системы могутуправлять только порядком заданий конкретного вида: обычно задач иливопросов.Активные выстраивания преобладают в существующих учебных системах.Только несколько систем (InterBook, PAT-InterBook, CALAT, VCProlog Tutor, and Remedial Multimedia System) могут осуществлять пассивныекорректирующие выстраивания. Среди систем с активными выстраиваниямитолько единицы, такие как ELM-ART-II — и KBS-Hyperbook, способныосуществлять выстраивания как высокого, так и низкого уровней.Большинство систем обучения поддерживает выстраивания с фиксированнымицелями (равнозначными полному курсу). Только несколько системподдерживают приспосабливаемые цели изучения, позволяющие преподавателю(как в DCG) или обучаемому (как в InterBook и KBS Hyperbook)выбирать индивидуальную цель. Обучаемый может выбрать цель в видеподмножества понятий области обучения (InterBook) или проекта (KBSHyperbook).Активная последовательность в большинстве систем управляется знаниямиобучаемого (точнее разницей между знаниями обучаемого и глобальнойцелью). Однако несколько систем и проектов экспериментируют сиспользованием предпочтений обучаемого в типе и способах представлениядоступного учебного материала для управления последовательностью заданийвнутри темы [25, 29].4.2. Интеллектуальный анализ решений обучаемогоТехнология интеллектуального анализа решений обучаемого имеет делос окончательными ответами студента на обучающие задания (которые могутколебаться от простых вопросов до сложных задач программирования)без разъяснения причин, по которым ответ был получен. В отличие от неинтеллектуальныхпроверяющих программ, которые не могут сказать ничегокроме того, что правильный ответ или нет, интеллектуальные анализаторымогут подсказать обучаемому, что именно неправильно или неполно икакие отсутствующие или неверные знания ответственны за ошибку.Интеллектуальные анализаторы могут предоставлять обучаемому интенсивнуюобратную связь об ошибках и корректировать модель обучаемого.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 95Классический пример из области обучения программированию — это системаPROUST. Интеллектуальный анализ решений — очень подходящаятехнология для медленных сетей. В рамках этой технологии необходимотолько одно взаимодействие между браузером и сервером для принятияокончательного решения. Она может предоставлять интеллектуальную обратнуюсвязь и выполнять моделирование студента, когда другие интерактивныетехники использовать затруднительно. В качестве примера укажемна две адаптивные обучающие Web-системы, которые реализуют интеллектуальныйанализ решений обучаемого адаптивно в WWW (т.е. обучаемые сразличными моделями могут получать различную обратную связь): интеллектуальнуюсистему ELM-ART для обучения программированию на языкеLISP [22] и интеллектуальную системы WITS для обучения дифференциальномуисчислению [75].4.3. Поддержка в решении задачВ течение многих лет поддержка в решении задач рассматривалась главнойобязанностью интеллектуальных обучающих систем и их основнымдостоинством. Интеллектуальные обучающие системы используют три технологииподдержки в решении задач: интеллектуальный анализ решенийобучаемого, интерактивная поддержка в решении задач и поддержка в решениизадач на примерах. Все эти технологии позволяют помочь студенту впроцессе решения учебной задачи, но делают они это разными способами.Интеллектуальный анализ решений обучаемого имеет дело с конечнымиответами обучаемого на учебные задачи (как были получены эти ответыневажно). Чтобы считаться интеллектуальным, анализатор решений долженне только уметь оценить правильность решения, но и найти, что в решенииконкретно неправильно или неполно, и, возможно, определить, какие недостающиеили неправильные знания могут быть ответственны за ошибку(последнее действие относится к определению знаний). Интеллектуальныеанализаторы могут предоставлять обучаемым далеко идущую обратнуюсвязь и обновлять модель обучаемого. Классическим примером считаетсясистема PROUST.Интерактивная поддержка в решении задач более современная и болеемощная технология. Вместо ожидания конечного решения эта технологияпредоставляет обучаемому интеллектуальную помощь на каждом шаге решениязадачи. Уровень помощи может быть разным: от оповещения о неправильносделанном шаге до выдачи совета и выполнения следующегошага за студента. Системы (часто называемые интерактивными тренаже-


96 Программные средства и математические основы информатикирами), в которых реализуется эта технология, могут наблюдать за действиямистудента, понимать их и использовать их понимание для предоставленияпомощи и обновления модели обучаемого. Классический пример —это система LISP-TUTOR.Технология поддержки в решении задач на примерах — самая новая.Эта технология помогает обучаемым решать новые задачи, не выделяя ихошибки, а предлагая примеры успешного решения схожих задач из их болеераннего опыта (это могут быть примеры, объясненные им, или задачи, решенныеими ранее). Пример — это система ELM-PE.В области традиционных интеллектуальных обучающих систем технологияподдержки в решении задач на примерах абсолютно преобладает.Интерактивная поддержка в решении задач является главной целью почтивсех интеллектуальных обучающих систем, в то время как интеллектуальныйанализ решений обучаемого обычно, если и используется, то весьманесовершенен, а поддержка в решении задач на примерах вообще используетсякрайне редко. Но для сетевых адаптивных интеллектуальных системситуация меняется: и интеллектуальный анализ решений обучаемого, иподдержка в решении задач на примерах кажутся для них очень естественнымии полезными. Обе технологии пассивны (работают по запросу обучаемого)и соответственно могут быть относительно легко реализованы всети при помощи интерфейса CGI. Более того, старые однопользовательскиепрограммы адаптивных интеллектуальных обучающих систем, использующиеэти технологии, могут быть относительно легко размещены в сетиреализацией CGI-шлюзов к ним. Неудивительно, что эти технологии былисреди первых, реализованных для сетевых систем. Важным преимуществомприменения этих двух технологий в сети является их низкая интерактивность:им обеим обычно требуется только одно взаимодействие междубраузером и сервером для цикла решения задачи. А это очень важно в случаемедленной Интернет-связи. Эти технологии могут обеспечивать интеллектуальнуюподдержку в случае, когда трудно использовать более интерактивныетехнологии. В настоящее время эти технологии преобладают всетевой среде над более мощной, но жадной до взаимодействия интерактивнойподдержкой в решении задач.Технология интерактивной поддержки в решении задач последней изтехнологий интеллектуальных обучающих систем переселилась в сеть.Проблема в том, что подход к реализации сетевых обучающих систем «наспех»(разработка интерфейсов CGI к старым однопользовательским интеллектуальнымобучающим системам), использовавшийся в первых системах,не проявил себя должным образом для этой технологии. Это можно проде-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 97монстрировать на примере системы PAT-Online [82], которая вероятно былапервой попыткой реализации интерактивной поддержки в решении задач вcети. Эта система использует основанный на разновидности CGI-AppleScript интерфейс для однопользовательской системы Репетитор попрактической алгебре (Practical Algebra Tutor — PAT). Поскольку интерфейсCGI пассивный, cетевая версия должна предоставлять обучаемомукнопку «подчинения» для получения обратной связи с системой. Естественноэто также добавляло еще одну особенность, которая была важна дляобучаемых с медленным Интернет-соединением: возможность требованияобратной связи после выполнения нескольких шагов решения задачи. Врезультате PAT-Online переместилась в категорию интеллектуальных анализаторовзадач, точнее в подкатегорию анализаторов, способных анализироватьнеполные решения (ELM-ART также принадлежит к этой подкатегории).Интеллектуальные анализаторы этой подкатегории можно расположитьмежду традиционными анализаторами и интерактивными репетиторами.Настоящий интерактивный репетитор должен быть не только интерактивным,но и активным. Он не должен спать в промежутках от одного запросак другому, а вместо этого он должен быть способен наблюдать, чтоделает обучаемый и немедленно реагировать на ошибки. Но это просто неможет быть реализовано при помощи обычной интерактивности CGI насервере и требует клиентской интерактивности, основанной на Java. Javaобеспечивает надежное решение проблемы для cетевых интерактивных репетиторов.Если быть более точным, то Java предлагает два различных решения.Одно состоит в том, что репетитор полностью реализован на Java.Это может быть как апплет, работающий в браузере, так и приложение Java.Другим решением является распространяемый клиент-серверный репетитор,в котором часть функций реализована на Java и работает на клиентскойстороне, а другая часть работает на сервере. Части связаны через Интернет.Хотя чистое Java-решение выглядит проще (всего лишь новый язык длясоздания адаптивных интеллектуальных обучающих систем), клиентсервернаяархитектура предлагает более привлекательный выбор для развитиясетевых репетиторов. Это определенный выбор для размещения однопользовательскихинтерактивных репетиторов в Сети. D3-WWW-Trainer[42] и AlgeBrain [7] показывают, как заново использовать интеллектуальныефункции предшествующих однопользовательских репетиторов, заменяя ихна серверные приложения и разрабатывая относительно слабых "безмозглых"Java-клиентов, которые реализуют интерфейсные функции и связываютсяс интеллектуальным сервером. Такие событийные репетиторы, как


98 Программные средства и математические основы информатикиADIS [92] и ILESA [67], которые могут быть легко реализованы на чистойJava, в отличие от клиент-серверной архитектуры имеют такое преимуществокак централизованное построение модели обучаемого. В конечном итогенакладные расходы клиент-серверного подхода (необходимость иметь распространяемуюсистему) не такие большие, с тех пор как Java естественнымобразом поддерживает несколько способов клиент-серверной взаимосвязи— HTTP/CGI, сокеты или RMI/CORBA. Считается, что клиент-сервернаяархитектура становится стандартом реализации сетевых интерактивныхрепетиторов и весьма популярным средством для реализации всех видоввысоко интерактивных сетевых адаптивных интеллектуальных обучающихсистем. Мы уже видим примеры ее использования: в реализации интерфейса,основанного на пере в WITS-II [55], и одушевленного педагогическогоагента Винсента в TEMAI [76].4.4. Подбор моделей обучаемыхСуть технологии подбора моделей обучаемых состоит в способностианализировать и подбирать модели для многих обучаемых одновременно. Вобычных (несетевых) интеллектуальных образовательных системах она неработает, поскольку несетевая система обычно работает с одним обучаемым(и одной моделью обучаемого) при каждом ее применении. Иначе обстоитдело в случае сетевых систем, для которых возможность подбора моделейестественна, поскольку записи обучаемых хранятся централизованно насервере (по крайней мере, в административных целях). Это обеспечиваетотличную основу для развития различных адаптивных и интеллектуальныхтехнологий, которые смогут как-то использовать подбор моделей для различныхобучаемых.Используются два вида подбора моделей обучаемых: адаптивная поддержкасотрудничества и интеллектуальное наблюдение за классом. Этивиды полностью отличаются друг от друга и рассматриваются как различныетехнологии внутри группы подбора моделей обучаемых [11]. Цельюадаптивной поддержки сотрудничества является использование знанийсистемы о разных обучаемых для подбора групп для различных видов сотрудничества(см., например, [48], [54]). Интеллектуальное наблюдение заклассом также основано на возможности сравнивать записи о разных обучаемых,но вместо поиска совпадений ищутся различия. Цель сравнения —определение тех обучаемых, которые учатся существенно отличающимсяобразом от своих сокурсников. Эти обучаемые могут отличаться от остальныхпо-разному. Они, например, могут развиваться слишком быстро или


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 99слишком медленно или просто осуществить доступ к гораздо меньшемуматериалу, чем остальные. В любом случае эти обучаемые нуждаются вбольшем внимании преподавателя, чем остальные, для того чтобы броситьвызов тем, кто может, дать больше объяснений тем, кто не может, а такжеподтолкнуть тех, кто мешкает. В обычной аудитории преподаватель можетследить за посещаемостью и вниманием обучаемых, чтобы найти обучаемых,нуждающихся в особом внимании. В сетевой аудитории преподавательв лучшем случае имеет только данные из журнала, из которых сложносделать правильные выводы. В то же время необходимость распознаваниянебольшого подмножества обучаемых, нуждающихся в помощи больше,чем остальные, является весьма важной. В сетевой среде обучения на общениемежду преподавателем и обучаемыми обычно тратится больше времени,чем в обычной аудитории, и отдаленный преподаватель может индивидуальнообратиться лишь к небольшому числу обучаемых. СистемаHyperClassroom представляет интересный пример использования нечеткихмеханизмов для определения застоявшихся обучаемых в аудитории сетевойобучающей системы.4.5. Адаптация на уровне содержания, цели адаптацииОсновная идея всех технологий адаптации на уровне содержания состоитв том, чтобы адаптировать представление страницы, к которой обращаетсяпользователь, к его текущему уровню знаний, целям и другим характеристикам.Адаптивное представление текста позволяет изменить текстовое содержаниегипермедиа-страницы в зависимости от модели пользователя.Например, за счет адаптации текста квалифицированный пользователь можетбыть обеспечен более детальной и полной информацией, в то время какновичок может получать дополнительные объяснения.В гипермедиа-системах страница может содержать не только текст, как вклассических гипертекстовых системах, но и всевозможную мультимедиаинформацию.Адаптация мультимедиа предполагает, что элементы мультимедиа-содержаниямогут быть адаптированы к индивидуальному пользователю,но текущие реализации ограничены выбором средств; в отличие оттекста, содержание анимации, аудио- или видеофрагментов трудно адаптировать.Адаптация модальности — новая технология адаптации содержаниявысокого уровня [13]. Современные адаптивные гипермедиа-системы могутиметь выбор различных типов средств для представления информации


100 Программные средства и математические основы информатикипользователю, т. е. в дополнение к традиционному тексту может использоватьсямузыка, видео, речь, анимация и т.д. Весьма часто фрагменты различныхсредств представления информации имеют то же самое содержание,и, следовательно, система может выбрать тот, который наиболее релевантенпользователю для данного узла. В других случаях эти фрагменты могут использоватьсяпараллельно, таким образом позволяя системе выбрать наиболеерелевантное подмножество элементов средств представления информации.В настоящее время можно идентифицировать несколько различныхметодов для адаптации модальности представления на основе предпочтенийпользователя, способностей, стиля изучения и контекста работы в несколькихвидах адаптивных гипермедиа-систем.В процесс адаптации на уровне содержания происходит «подгонка» содержаниядокумента под конкретного пользователя, к примеру, за счетскрытия слишком специализированной информации или за счет вставкидополнительных объяснений.Согласно [17] можно выделить следующие цели (методы) адаптации науровне содержания.1. Дополнительные объяснения. Только те части документа должны выдаватьсяпользователю, которые соответствуют его уровню знаний или егоцели.2. Предварительные объяснения. Цель — снабдить пользователя необходимойему информацией для понимания документа. По модели пользователяпроверяются предварительные знания, требуемые для понимания содержаниястраницы. Если пользователь не обладает какими-то знаниями,соответствующая информация должна быть добавлена к странице.3. Сравнительные объяснения. Идея сравнительных объяснений состоитв пояснении новых тем путем подчеркивания их связей с уже известнымитемами.4. Варианты объяснений. Предоставляя различные объяснения для некоторыхчастей документа, мы можем выбрать те из них, которые максимальноподходят для данного пользователя. Этот подход является расширениемметода предварительных объяснений.5. Сортировка. Различные части документа сортируются в соответствиис их актуальностью для пользователя.4.6. Технологии адаптации на уровне содержанияАдаптация на уровне содержания требует хорошо разработанных технологийдля улучшения представления. Существующие системы, осуществ-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 101ляющие адаптацию на уровне содержания, достигают этого путем обогащениясвоих документов мета-информацией о предварительных условиях илитребуемых знаниях, результатах и т.д. Документы или их фрагменты, хранящиесяв таких системах, должны включаться помногу раз, чтобы сделатьвозможными варианты объяснений.Для достижения целей адаптации на уровне содержания используютсяследующие техники [17].1. Условный текст (conditional text) предполагает, что вся информация опонятии разбивается на определенные текстовые куски. Для каждого изэтих кусков определяется требуемый уровень знаний пользователя, при наличиикоторого производится его вывод.Технология условного текста является технологией нижнего уровня,требующей от разработчика некоторой работы по «программированию» дляустановления всех требуемых условий. Выбирая соответствующие условияна уровне знаний текущего понятия и связанных с ним понятий, представленныхв модели пользователя, можно реализовать все методы адаптации,перечисленные выше, за исключением сортировки. Простой пример — этоскрытие частей текста с неподходящими объяснениями, если уровень знанийпользователя текущего понятия достаточно хорош, или включение частитекста со сравнительными объяснениями, если соответствующее сходноепонятие уже известно.2. Эластичный текст (stretchtext). Технология более высокого уровня,которая может также включать и выключать различные части текста в соответствиис уровнем знания пользователей, когда некоторые ключевые словадокумента могут заменять более длинные описания или заменяться ими,если этого требует реальный уровень знаний пользователя. В обычном гипертекстерезультатом активации ключевого слова является перемещениена другую страницу со связанным текстом. В эластичном тексте этот связанныйтекст может просто заменять активизированное слово (или фразу сэтим словом), расширяя текст текущей страницы. Если требуется, этот расширенныйили «развернутый» текст может быть свернут обратно в слово.Каждый узел — эластичная страница, которая может содержать много«свернутых» слов. Идея адаптивного эластичного представления состоит втом, чтобы представить требуемую страницу со всеми свернутыми расширениями,нерелевантными для пользователя, и всеми развернутыми расширениями,релевантными для пользователя.Важная особенность данной адаптивной технологии в том, что она позволяети пользователю, и системе адаптировать содержание отдельнойстраницы и что она может принимать во внимание и знания, и предпочте-


102 Программные средства и математические основы информатикиния пользователя. После произвольного представления эластичной страницы,она может быть далее адаптирована пользователем, который можетсворачивать или разворачивать соответствующие объяснения и подробностив соответствии со своими предпочтениями. Модель пользователя можетобновляться в соответствии с демонстрируемыми пользователем предпочтениями,чтобы гарантировать, что пользователь всегда будет видеть предпочитаемуюкомбинацию сокращенных и несокращенных частей. Например,если пользователь свернул дополнительные объяснения отдельногопонятия, они будут показываться свернутыми до тех пор, пока пользовательне изменит предпочтения.3. Варианты страниц или фрагментов страниц — техники, позволяющиереализовывать метод вариантного объяснения.Варианты фрагмента (fragment variants) — более мелкомодульная реализацияметода вариантного объяснения. Система хранит несколько вариантовобъяснения каждого понятия (варианты фрагментов), и пользовательполучает страницу, содержащую те варианты, которые соответствуют егознанию о представленных понятиях. Технологии вариантов страницы и вариантовфрагмента могут быть скомбинированы, например, для обеспеченияадаптации и к подготовке, и к знанию пользователя. Текущий вариантстраницы для конкретного узла выбирается согласно подготовке пользователя.Эта страница затем может быть адаптирована: для каждого понятия,представленного на странице, система выбирает объяснение, которое наиболеесоответствует уровню знаний пользователя.Варианты страницы (page variants) — наиболее простая технологияадаптивного представления. При использовании этой технологии системахранит несколько вариантов страницы с различными представлениями еесодержания. Как правило, каждый вариант подготовлен для одного из возможныхстереотипов пользователя. При представлении страницы системавыбирает вариант страницы согласно стереотипу пользователя.4. Технология, основанная на фреймах, (frame-based technique) являетсянаиболее мощной из всех технологий адаптации содержания. При использованииэтой технологии вся информация об отдельном понятии представленав форме фрейма. Слоты фрейма могут содержать несколько вариантовобъяснения понятия, связи с другими фреймами, примерами и т.д. При использованиитехнологии естественного языка страницы монтируются измаленьких информационных элементов подобно словам и частям предложений.Используются специальные правила представления для решениятого, какие слоты должны быть представлены конкретному пользователю ив каком порядке. Более точно, эти правила позволяют сделать выбор одной


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 103из существующих схем представления (каждая схема — это упорядоченноеподмножество слотов), которая и используется для представления понятия.Могут применяться правила для вычисления «приоритета представления»для каждого слота, и затем подмножество слотов с высоким приоритетомпредставляется в порядке уменьшения приоритета. В своих условных частяхэти правила могут ссылаться не только на уровень знаний пользователемпредставляемого понятия, но также и на любую характеристику, представленнуюв модели пользователя. В частности, система может приниматьво внимание подготовку пользователя.Технология, основанная на фреймах, может использоваться для реализациивсех методов, упомянутых выше. Методы предварительных и сравнительныхобъяснений могут быть реализованы с фреймовой технологией,при этом соответствующие условия ставятся на уровне знаний связанныхпонятий.4.7. Адаптация на уровне ссылок: цели адаптации навигацииИспользуя адаптацию на уровне ссылок, можно персонализовать возможностинавигации пользователя по гипермедиа-системе с учетом целей,знаний и других характеристик индивидуального пользователя. Техникиадаптации на уровне ссылок приведены, к примеру, в [17]; они зависят отконкретной системы. В них предположения системы о пользователе играютважную роль для определения того, что и как адаптировать.Адаптация на уровне ссылок ограничивает количество ссылок и, следовательно,объем навигационных возможностей. Она полезна для исключенияситуации «затерянности в гиперпространстве». Как и в случае адаптациина уровне содержания, для реализации задач адаптации требуется описаниесодержания документов.Различают следующие пять целей адаптации навигации: глобальное руководство,локальное руководство, локальная ориентация, глобальная ориентацияи управление индивидуализированными представлениями в информационныхпространствах [16, 17]. Рассмотрим их более подробно.1. Глобальное руководство (global guidance) можно обеспечить в гипермедиа-системах,в которых пользователи имеют некоторую «глобальную»информационную цель (т. е. нуждаются в информации, которая содержитсяв одном или нескольких узлах где-нибудь в гиперпространстве) и просмотр— способ нахождения требуемой информации. Цель методов глобальногоруководства состоит в том, чтобы помочь пользователю найтисамый короткий путь к информационной цели с минимальным блужданием.


104 Программные средства и математические основы информатикиГлобальное руководство — основная цель адаптивной навигационнойподдержки в информационно-поисковых гипермедиа-системах, а такжеважная цель в информационных и справочных системах с достаточно большимгиперпространством. Информационная цель пользователя, котораяобычно полностью или частично предоставляется пользователем — основнаяхарактеристика пользователя для адаптивного руководства.Наиболее полный метод обеспечения глобального руководства состоит втом, чтобы на каждом шаге просмотра предлагать пользователю ссылку длядальнейшего перехода (т. е. применять технологию полного руководства).Более поддерживающий метод состоит в применении технологии адаптивнойсортировки: все ссылки от данного узла сортируются в соответствии срелевантностью глобальной цели (наиболее релевантные — сначала). Приэтом пользователи все еще имеют возможность перехода по первой наиболеерелевантной ссылке, но также имеют некоторую информацию (релевантностьдругих ссылок), чтобы сделать свободный выбор.2. Локальное руководство (local guidance). Цель методов локального руководствасостоит в том, чтобы помочь пользователю сделать один навигационныйшаг, предлагая ссылки от текущего узла, наиболее подходящиедля перехода. Эта цель отчасти подобна цели глобального руководства, ноболее «скромна». Методы локального руководства не предполагают глобальнуюцель для обеспечения руководства. Они делают указание согласнопредпочтениям, знанию и подготовке пользователя — что наиболее важнодля данной прикладной области. Например, подходящий метод локальногоруководства для ИП гипермедиа и сетевых информационных систем — этосортировка ссылок согласно предпочтениям и подготовке пользователя.Методы, используемые в гипермедиа-системах обучения: сортировкассылок согласно знанию пользователя и полное руководство в соответствиисо знанием пользователя. Последний метод обычно применяется для выборанаиболее подходящей задачи из набора задач, доступных из текущегопункта.3. Поддержка локальной ориентации (local orientation support). Цель методовподдержки локальной ориентации состоит в том, чтобы помочь пользователюв локальной ориентации (т. е. помочь пользователю понять, чтонаходится вокруг и какова его относительная позиция в гиперпространстве).Существующие адаптивные гипермедиа-системы осуществляют поддержкулокальной ориентации двумя различными способами: предоставляядополнительную информацию об узлах, доступных от текущего узла (использованиетехнологии аннотирования), и ограничивая число навигационныхвозможностей для уменьшения познавательной перегрузки, позволив


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 105пользователям сфокусироваться на анализе наиболее релевантных ссылок(использование технологии сокрытия).Методы, основанные на технологии сокрытия, имеют ту же самуюидею: скрыть от пользователя все ссылки (или от индекса, или от локальногоузла), которые не подходят ему в данный момент, или, другими словами,показывать только релевантные ссылки (соответствующие знанию, цели,опыту или предпочтениям пользователя). Другой метод, основанный наопыте пользователя в данном гиперпространстве, состоит в том, чтобы показыватьпользователям тем больше ссылок, чем больше опыта они имеют вгиперпространстве.В гипермедиа-системах обучения применяются два специфичных метода,основанных на технологии сокрытия: смысл первого метода состоит всокрытии ссылок к узлам, которые пользователь не готов еще изучить, авторого — к узлам, которые принадлежат целям обучения последующихуроков и не принадлежат текущей цели обучения.Цель методов, основанных на технологии аннотирования, состоит втом, чтобы информировать пользователя о текущем «состоянии» узлов завидимыми ссылками. Аннотирование может использоваться, чтобы показатьнесколько градаций релевантности ссылки или несколько уровней знанияпользователем узлов за аннотируемыми ссылками, а также чтобы выделитьссылки, соответствующие текущей цели, и затемнить несоответствующие.Методы поддержки локальной ориентации не руководят пользователемнепосредственно, но обеспечивают помощь в понимании того, что являетсяближайшими ссылками, а также в создании обоснованного навигационноговыбора.4. Поддержка глобальной ориентации (global orientation support). Цельметодов поддержки глобальной ориентации состоит в том, чтобы помочьпользователю понять структуру всего гиперпространства и свою абсолютнуюпозицию в нем. В неадаптивной гипермедиа эта цель обычно достигается,обеспечивая визуальные ориентиры и глобальные карты. Адаптивнаягипермедиа может обеспечить большую поддержку для пользователя, применяятехнологии аннотирования и сокрытия.Аннотации функционируют как ориентиры: так как узел сохраняет туже самую аннотацию, когда пользователь видит его из различных мест гиперпространства,пользователь легко может узнавать узлы, которые онвстречал прежде, и понимать свою текущую позицию. Сокрытие уменьшаетразмер видимого гиперпространства и может упростить и ориентацию, иобучение, обеспечивая постепенное изучение гиперпространства. Перспек-


106 Программные средства и математические основы информатикитивное направление адаптивной поддержки глобальной ориентации —адаптация локальных и глобальных карт, когда сама структура карты можетзависеть от характеристик пользователя.5. Управление индивидуализированными представлениями (managingpersonalized views). Индивидуализированные представления — способ организацииэлектронного рабочего места для пользователей, которые нуждаютсяв доступе к достаточно небольшой части гиперпространства длясвоей повседневной работы. Каждое представление — просто список ссылокко всем гипердокументам, которые соответствуют конкретной рабочейцели. Классические гипермедиа-системы и современные WWW-браузерыпредлагают закладки и рабочие списки как способы делать персональныепредставления. Более развитые системы предлагают некоторые механизмыадаптируемости более высокого уровня, основанные на метафорах и моделяхпользователя.Адаптивные решения, т. е. управляемая системой поддержка индивидуализированныхпредставлений, требуются в WWW-подобных динамическихинформационных пространствах, где объекты могут появляться, исчезатьили изменяться. Для этого используются интеллектуальные агенты,которые могут регулярно искать новые релевантные объекты и распознаватьизмененные объекты или объекты с истекшим сроком хранения.4.8. Технологии поддержки адаптивной навигацииТехнологии адаптивной навигационной поддержки могут быть классифицированысогласно способу, который они используют для адаптациипредставления ссылок. Различаются шесть технологий для адаптированияпредставления ссылок: полное руководство (direct guidance), сортировкассылок (link sorting), сокрытие ссылок (link hiding), аннотирование ссылок(link annotation), генерирование ссылок (link generation) и адаптация карты(map adaptation) [13, 15, 17, 30, 35, 36].Для сравнения этих технологий сначала следует понять, как и в какомконтексте обычно представляются ссылки. Здесь мы понимаем ссылки всмысле пользователя (т. е. видимое изображение связанных страниц, к которымпользователь может перейти). Определим четыре вида представленияссылок, которые отличаются тем, что в них может быть изменено иадаптировано [17]:(1) локальные неконтекстные (контекстно-независимые) ссылки. Этоттип включает все виды ссылок на обычных гипермедиа-страницах, которыене зависят от содержания страницы. Они могут выглядеть как список, набор


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 107кнопок или всплывающее меню. Этими ссылками просто управлять — онимогут быть отсортированы, скрыты или аннотированы;(2) контекстные (контекстно-зависимые) ссылки или «настоящие гипертекстовые»ссылки. Этот тип включает «горячие слова» (слова, связывающиетекст с объектом) в текстах, «горячие точки» в изображениях идругие виды ссылок, которые встроены в контекст содержания страницы ине могут быть удалены из него. Эти ссылки могут быть аннотированы, ноне могут быть отсортированы или полностью скрыты;(3) ссылки индексов и страниц содержания. Индекс или страница содержанияможет рассматриваться как специальный вид страницы, которыйсодержит только ссылки. Эти ссылки обычно представляются в фиксированномпорядке (порядок содержания для страниц содержания и алфавитныйпорядок для страниц индексов). Как правило, ссылки с индексов истраниц содержания контекстно-независимые, если страница не реализованав форме изображения;(4) ссылки на локальных и глобальных картах гиперпространства. Картыобычно графически представляют гиперпространство или локальнуюобласть гиперпространства как сеть узлов, связанных стрелками. При использованиикарт пользователь может прямо перейти ко всем узлам, видимымна карте, просто «щелкая» по изображению желаемого узла. С навигационнойточки зрения, эти изображения узлов — именно то, что мы понимаемпод ссылками, в то время как стрелки, служащие изображением ссылок,не используются для прямой навигации.Полное руководство, сортировка, сокрытие, аннотирование и адаптациякарты, рассмотренные ниже, — основные технологии для адаптивной навигационнойподдержки. Большинство из существующих технологий адаптациииспользуют ровно один из этих способов для обеспечения адаптивнойнавигационной поддержки. Однако эти технологии не противоречивы имогут использоваться в комбинациях. В частности, технология полного руководстваможет легко использоваться в комбинации с любой другой технологией.Рассмотрим основные технологии поддержки адаптивной навигацииболее подробно.1. Полное руководство (direct guidance) — наиболее простая технологияадаптивной навигационной поддержки. Полное руководство может применятьсяв любой системе, которая может решить, какой следующий «наилучший»узел для посещения пользователем в соответствии с целью пользователяи другими параметрами, представленными в модели пользователя.Ссылка предоставляется к той странице, которую система считает наиболееподходящей для следующего перехода пользователя.


108 Программные средства и математические основы информатикиРазличаются два метода полного руководства: метод «следующего наилучшего»(next best), который предполагает предоставление кнопки «next»для дальнейшей навигации через гиперпространство, и метод установленияпоследовательности страниц или следа (page sequencing or trails), которыйпредполагает генерирование последовательности страниц для просмотравсей гипермедиа-системы или ее части.Полное руководство может использоваться со всеми четырьмя видамипредставления ссылок, перечисленных выше, но оно вряд ли может бытьосновной формой навигационной поддержки, поскольку не обеспечиваетникакой помощи для пользователей, которые не хотели бы следовать указаниямсистемы.2. Адаптивная сортировка (упорядочение) ссылок (adaptive sorting(ordering) of links) — технология, которая вместо одной «наилучшей» ссылкипредоставляет список ссылок, упорядоченный по убыванию релевантности,в соответствии с моделью пользователя.Различаются два метода сортировки: метод сортировки по подобию(similarity sorting), когда ссылки сортируются, исходя из их подобия даннойстранице, и метод предварительных знаний (prerequisite knowledge), когдассылки упорядочиваются согласно предварительно необходимым знаниям.Адаптивное упорядочение имеет ограниченную применимость: оно можетиспользоваться только с контекстно-независимыми ссылками. Другаяпроблема с адаптивным упорядочением состоит в том, что эта технологияделает порядок ссылок неустойчивым: он может изменяться каждый разпри входе пользователя на страницу. В то время как некоторые недавниеисследования показали, что устойчивый порядок параметров в меню важендля начинающих. Тем не менее эта технология полезна для приложенийинформационного поиска.3. Адаптивное сокрытие ссылок (adaptive link hiding) — в настоящеевремя наиболее часто используемая технология для адаптивной навигационнойподдержки. Идея навигационной поддержки с помощью сокрытиясостоит в том, чтобы ограничить навигационное пространство, скрываяссылки к «нерелевантным» страницам. Страница может рассматриватьсякак нерелевантная по нескольким причинам: например, если она не связанас текущей целью пользователя или если она представляет материал, которыйпользователь не готов еще понять. Сокрытие защищает пользователейот запутанности неограниченного гиперпространства и уменьшает их познавательнуюперегрузку, также оно более понятно пользователю и выглядитболее «стабильно» для них, чем адаптивное упорядочение.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 109Различают следующие три вида сокрытия ссылок: сокрытие ссылок(link hiding), удаление ссылок (link removal) и отключение ссылок (link disabling)[17], [30].Адаптивное сокрытие ссылок делает анкер ссылки неотличимым отнормального текста. Сокрытие имеет широкую применимость: оно можетиспользоваться со всеми видами контекстно-независимых, индексных ссылоки ссылками карт с помощью реального сокрытия кнопок или пунктовменю и с контекстно-зависимыми ссылками, превращая «горячие слова» вобычный текст.Адаптивное удаление ссылок удаляет анкер ссылки для нерелевантныхссылок. Это может быть выполнено только тогда, когда окружающий ссылкутекст таков, что он не становится бессмысленным после удаления ссылки.Хотя адаптивное удаление ссылок эффективно сокращает число навигационныхшагов, предварительные оценки показывают, что пользователямне нравится эта технология.Адаптивное отключение ссылок предполагает удаление функциональныхвозможностей ссылки без удаления текста ссылки. Отключение ссылкичасто объединяется с сокрытием ссылки, потому что, если вид анкера остается,но ссылка не «работает», пользователь может подумать, что это ошибкав системе. Пользователям не нравится адаптивное отключение ссылок,но все же они предпочитают его адаптивному удалению ссылок.4. Адаптивное аннотирование ссылок (adaptive link annotation) — технология,смысл которой состоит в пополнении ссылок некоторыми комментариями,чтобы дать пользователю подсказку относительно содержаниястраницы за аннотируемыми ссылками. Аннотации могут быть представленыв текстовой форме или в форме визуальных подсказок, например, используяразличные значки, цвета или размеры шрифтов.Наиболее популярный способ аннотирования ссылок — использованиеметафоры светофора (traffic light metaphor). Ссылка аннотируется цветнойточкой: красная точка перед ссылкой указывает, что у пользователя недостаточнознаний для понимания этой страницы, таким образом, страница нерекомендуется для чтения. Желтая точка означает, что страница не рекомендуетсядля чтения, эта рекомендация менее строга, чем в случае краснойточки. Зеленая точка ставится перед ссылками на страницы, рекомендуемымидля чтения. Серая точка указывает пользователю, что содержаниеэтой страницы уже известно. Существуют и другие варианты.Типичный вид аннотирования, рассматриваемый в традиционной гипермедиа— статическое (независимое от пользователя) аннотирование.Адаптивное аннотирование в самой простой, основанной на предыстории


110 Программные средства и математические основы информатикиформе (выделение ссылок к ранее посещенным узлам) применяется в некоторыхгипермедиа-системах, включая большинство WWW-браузеров. Текущиеадаптивные гипермедиа-системы могут различать и аннотировать поразномудо шести состояний на основе модели пользователя.Аннотирование может использоваться со всеми четырьмя возможнымитипами ссылок. Эта технология поддерживает стабильный порядок ссылоки избегает проблем с формированием неправильных ментальных карт. Аннотирование— более мощная технология, чем сокрытие: сокрытие можетразличать только два состояния узлов — уместные и неуместные, в то времякак аннотирование — до шести состояний, в частности, несколько уровнейрелевантности. Эксперименты привели к заключению, что адаптивноеаннотирование ссылок является полезным для сокращения числа навигационныхшагов и в улучшении понимания учебного материала.5. Адаптивное генерирование ссылок (adaptive link generation). Рост системрекомендаций делает необходимым различать два по существу различныхспособа адаптивной навигационной поддержки: адаптация ссылок,представленных на странице во время разработки гиперпространства, и генерированиеновых (неразработанных) ссылок для страницы. Генерированиессылок включает три случая: обнаружение новых полезных ссылок междудокументами и добавление их к постоянному набору существующихссылок, генерирование ссылок для навигации между элементами, основаннойна подобии, и динамическая рекомендация релевантных ссылок.Адаптивное генерирование ссылок было описано в [17] как новая технологияадаптивной навигационной поддержки высокого уровня. Эта технологияможет использоваться вместе с другими технологиями типа аннотированияи сортировки.6. Адаптация карты (map adaptation) — технология, которая включаетразличные пути адаптации формы глобальных и локальных гипермедиакарт (графические представления структуры ссылок), предоставляемыхпользователю. Карты могут быть адаптивно фильтрованы, чтобы обеспечитьпредставление частей гипердокумента, которые релевантны для пользователя.Такие технологии, как полное руководство, сокрытие и аннотирование,могут использоваться для адаптации гипермедиа-карты, но все этитехнологии не изменяют форму или структуру карт.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 1115. АРХИТЕКТУРА АДАПТИВНОЙ ГИПЕРМЕДИА-СИСТЕМЫНа абстрактном уровне в любой адаптивной гипермедиа-системе можновыделить следующие три основные взаимодействующие компоненты [37,100].• Модель предметной области (domain model), которая описывает,как структурировано информационное содержимое приложения(или гипердокумента). Эта модель должна указывать, какие имеютсяотношения между концептами и как концепты привязаны к информационнымфрагментам и страницам.• Модель пользователя (user model), которая представляет пользовательскиепредпочтения, знания, цели, историю навигации и другиеотносящиеся к пользователю характеристики. Система узнает дополнительнуюинформацию о характеристиках пользователя, отслеживаяего поведение. Одновременно система должна делать заключенияо том, как изменяются соответствующие характеристикипользователя во время использования пользователем данного приложения.• Модель обучения (teaching model), называемая также моделью адаптации(adaptation model), которая позволяет осуществить необходимыеадаптации системы, например, с помощью так называемых педагогическихправил (pedagogical rules) или правил адаптации (adaptationrules).Следует отметить, что в большинстве существующих адаптивных системуказанные три составляющих не являются разделенными, что связаносо следующими причинами [37, 100].1. Отношения между страницами и концептами иногда слишком неопределены.Когда две страницы представляют 30% одного и того же концептакаждая, нет способа понять вместе они представляют 30%, 60% или любоедругое значение между ними. В других системах это отношение строговзаимно однозначно, что приводит к большой фрагментации пользовательскоймодели без концепций высокого уровня.2. Часто педагогические правила не могут быть определены на концептуальномуровне, поскольку они связаны со ссылками или (условными) текстовымифрагментами, и поэтому должны специфицироваться в терминахреальных информационных страниц.3. Имеется определенное несоответствие между высоким уровнем составляющихпользовательской модели и мало надежной информацией, наосновании которой система должна изменять эту модель. Основная инфор-


112 Программные средства и математические основы информатикимация, которая доступна большинству систем — это время, на которое затребовалпользователь некоторую страницу. Поэтому часто пользовательскаямодель является ненадежной только в силу того, что система получаетненадежные входные данные. Многие обучающие системы компенсируютданную ненадежность с помощью различных тестов.Помимо трех моделей (предметной области, пользователя и адаптации)адаптивная гипермедиа система может содержать так называемый механизмадаптации (adaptive engine). Это — реальный программный продукт, являющийсячастью системы, который используется ею для конструированияи адаптации содержимого и ссылок. Механизм поддерживает некоторуюбиблиотеку функций для конструирования информационных страниц изфрагментов, основанных на элементах из моделей предметной области,пользователя и адаптации. Имеется язык (обычно довольно простой) длявыбора «конструктора» для использования. Некоторые механизмы адаптациимогут поддерживать способ определения новых конструкторов илирасширения существующих. Однако, достаточно мощный механизм долженподдерживать достаточно стандартную функциональность для облегченияпотребностей авторов явно специфицировать новые конструкторы в большинствеприложений. Механизм адаптации также изменяет пользовательскуюмодель, отслеживая поведение пользователя и, таким образом, принимаяво внимание, как изменяются пользовательские знания.5.1. Модели предметной областиМодель предметной области дает описание предметной области на концептуальномуровне и представляет собой совокупность объектов (концептови межконцептных отношений), каждый из которых имеет уникальноеимя.Концепты — это абстрактные объекты, используемые для представленияэлементов информации предметной области. Существуют концептынижнего уровня или атомарные концепты, которые соответствуют одномуфрагменту информации, и концепты высшего уровня или составные концепты,которые состоят из множества других концептов [35, 37, 96, 99,100].Атомарные концепты являются первичными в модели и могут не подвергатьсяадаптации. Их атрибутные и анкерные значения принадлежат«внутрикомпонентному уровню» и таким образом являются зависимыми отреализации и не описываемыми в модели. Составные концепты имеют дваспециальных атрибута: последовательность детей (концептов) и функция


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 113конструктора (для обозначения, как дети соединяются). Если все дети некоторогоконцепта атомарны, то такой концепт называют страницей (рис. 2).Рис. 2. Часть иерархии концептовМежконцептные отношения представляют различные отношения междудвумя или более концептами. Например, часто используются следующиетипы бинарных отношений между парами концептов (рис. 3):• тип часть (part-of) — это композиционное отношение, которое означает,что первый концепт представляет часть второго;• тип связь (link) означает, что существует связь первого концепта совторым (например, в виде гиперссылки);• тип предпосылка (prerequisite) означает, что первый концепт долженбыть предварительно изучен до изучения второго концепта;• тип блокиратор (inhibitor) означает, что первый концепт не долженизучаться до тех пор, пока не будет изучен второй.Межконцептные отношения могут иметь атрибуты. Например, приписываянекоторое вещественное число из интервала [0,1] тому или другомубинарному отношению, можно указать:• для отношения типа часть, какую часть второго концепта представляетпервый концепт;


114 Программные средства и математические основы информатики• для отношения типа предпосылки, как много знаний о первом концептедолжно быть у пользователя, чтобы информация о второмконцепте становилась желаемой;• для отношения типа блокировки, какую границу знаний о первомконцепте должны превысить знания пользователя, чтобы стало нежелательнымполучение знания о втором концепте.Рис. 3. Пример структуры межконцептных отношенийМожно выделить три типа моделей предметной области, различающихсяпо уровню сложности структуры [14].• Самую простую структуру имеет модель первого уровня, являющаясянезависимым множеством концептов (отсутствуют межконцептныеотношения).• Модель второго уровня (сетевая модель предметной области) предполагаетналичие связей между концептами и представляет собойсемантическую сеть, состоящую из концептов и межконцептных от-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 115ношений. Может существовать несколько типов концептов и межконцептныхотношений.• Модель третьего уровня (фреймовая модель предметной области)предполагает наличие у концептов внутренней структуры в видемножества атрибутов, при этом концепты различных типов могутиметь различные множества атрибутов.Одной из самых важных функций модели предметной области являетсяобеспечение структуры для представления знаний пользователя системой.Адаптивные гипермедиа-системы можно подразделить на три основныегруппы в зависимости от метода организации связи между моделью предметнойобласти (концептами) и гиперпространством системы (гипермедиастраницами)[14].• Самый простой метод — это индексация страниц концептами, относящимисяк содержимому этих страниц; он может применяться дажедля моделей предметной области первого уровня.• Второй метод, похожий на предыдущий, это — индексация фрагментов:содержимое страницы разбивается на множество фрагментов,каждый из которых отдельно индексируется множеством концептов,относящихся к содержимому данного фрагмента. При разбиениина относительно небольшие фрагменты каждый фрагментиндексируется ровно одним концептом. Этот метод также можноиспользовать в моделях предметной области первого уровня.• Третий метод (прямая связь) отличается от предыдущих методовтем, что для страниц не поддерживаются индексы; гиперпространствоадаптивной гипермедиа-системы строится непосредственно исходяиз структуры модели предметной области. Таким образом, каждыйконцепт модели представлен гипермедиа-страницей или гипердокументом,а отношения между концептами соответствуют гиперссылкаммежду страницами. Страница или документ, представляющийконцепт, могут быть как статическими, так и динамическими:т.е. генерироваться налету, исходя из внутренней структурыконцепта. Последний метод является самым мощным из всех вышеперечисленных,однако он требует использования модели предметнойобласти второго, а лучше третьего уровня.5.2. Модели пользователяМодель пользователя адаптивной гипермедиа-системы предполагает явноепредставление знаний, предпочтений, целей, интересов, истории нави-


116 Программные средства и математические основы информатикигации и других характеристик пользователя и служит для адаптации к пользователюразличных аспектов адаптивной гипермедиа-системы. Модельпользователя состоит из именованных элементов, для которых хранитсянабор пар вида атрибут-значение (компонентов модели пользователя). Наконцептуальном уровне можно представлять модель пользователя в видетабличной структуры, в которой для каждого элемента хранятся значенияатрибутов. Большинство элементов в модели пользователя представляютконцепты модели предметной области. Некоторые другие элементы могутпредставлять различные аспекты пользователя, такие как цели, предпочтения,интересы или стереотипную классификацию (типа новичок, эксперт) ит.д. [35, 37, 96, 99, 100].Можно классифицировать модели пользователей согласно следующимосновным свойствам.• Способ получения информации: явный или неявный. При явном способесистема в явном виде запрашивает у пользователя информацию,необходимую для создания и обновления модели. Альтернативныйподход, при котором система сама и незаметно для пользователяконструирует модель пользователя, отслеживая и анализируявзаимодействия с пользователем (например, историю навигации)для выведения различных предположений о пользователе, необходимыхдля построения его модели.• Степень специализации модели: общие или индивидуальные модели.Общая модель предполагает наличие одной модели для всех пользователейсистемы, она используется в тех случаях, когда системапредназначена для эксплуатации однородной группой пользователей.Индивидуальная модель принимает во внимание персональныеособенности пользователей, и поддерживается своя для каждогопользователя. Стереотипная модель является способом комбинированиядвух вышеперечисленных моделей: стереотип — набор характеристик,связанных друг с другом, определяющий некоторый класспользователей.• Модифицируемость модели: статические или динамические модели.В то время как статическая модель сохраняет характеристикипользователя, динамическая модель постоянно обновляется по мереполучения новой информации в течение сеанса взаимодействия спользователем.• Временная протяженность: краткосрочные или долгосрочные модели.В отличие от краткосрочных моделей, долгосрочные модели


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 117сохраняются от одного сеанса взаимодействия с пользователем додругого.• Метод использования модели: дескриптивные или прескриптивныемодели. Более традиционным является дескриптивное использованиемодели пользователя, когда модель пользователя — просто базаданных, содержащая информацию о пользователе, у которой системаможет запрашивать текущие данные о пользователе. Прескриптивноеиспользование модели предполагает, что система моделирует(имитирует) пользователя для проверки интерпретации ответа пользователем.Модель пользователя хранит информацию об индивидуальном пользователе.Дискуссии о моделировании пользователя можно найти в [60, 65].Различаются два основных типа техник, моделирующих пользователя: моделированиеперекрытий и моделирование стереотипного пользователя.5.2.1. Моделирование перекрытийОверлейное моделирование или моделировании перекрытий (overlaymodeling) [47] чаще всего используется в интеллектуальных системах обучениядля моделирования знаний, при этом знания пользователя описываютсякак подмножество знаний эксперта в данной области, отсюда сам термин«перекрытие» («оверлей»). Недостаток знаний обучающегося выводитсяпосредством сравнения их со знаниями эксперта.Для каждого концепта модели предметной области в модели знанийпользователя вычисляется и сохраняется некоторое значение (или несколькозначений), оценивающее уровень знания пользователем этого концепта(оверлейная модель). Оверлейная модель знаний (overlay model) может бытьпредставлена как множество пар «концепт — значения атрибутов».Следующие атрибуты обычно используются для обозначения уровнязнаний концепта пользователем [96, 99, 100].• «Значение знания» (или просто значение) показывает уровень знанияконцепта пользователем. Все пары концепт-значение вместеформируют оверлейную модель, которая представляет «знания»пользователя. Некоторые адаптивные гипермедиа-системы используютбулеву модель пользователя, в которой для каждого концептаопределено, знает или не знает пользователь концепт. Другие используютнебольшой набор значений, например «не известен»,«изучен», «хорошо изучен» и «известен», или большой набор (например,проценты).


118 Программные средства и математические основы информатики• Атрибут «чтения» показывает, просматривал (читал, изучал) липользователь какую-нибудь информацию (фрагмент, страницу илинабор страниц) о концепте. В Web-системах атрибут чтения используется,чтобы генерировать различное представление для гиперссылокк посещенным и непосещенным страницам (по умолчанию этофиолетовый и синий цвета). Атрибут чтения может иметь булевызначения в некоторых адаптивных гипермедиа-системах, в то времякак в других это может быть список времен доступа.• Менее распространенный атрибут — это «готовность для чтения»,который показывает, готов ли пользователь для просмотра и изученияинформации об этом концепте (это означает, например, чтопользователь уже приобрел достаточное количество предварительнонеобходимых знаний).Использование оверлейной модели особенно целесообразно, когда материалобучения может быть представлен в виде иерархии предварительныхусловий. Критичным в ее использовании является начальная оценка уровнязнаний пользователя, поскольку количество наблюдений для достаточнойоценки знаний должно быть небольшим.Как уже было сказано выше, в рамках модели перекрытий предполагается,что знание пользователя составляет некоторое подмножество знанияэксперта, и цель обучения состоит в расширении этого подмножества. Модельтакже предполагает, что пользователь не будет изучать того, чего незнает эксперт. В частности, не принимаются во внимание неправильныепредставления и заблуждения, изначально имеющиеся у пользователя, илиприобретенные им в процессе обучения. Второй недостаток оверлейноймодели заключается в том, что нет механизма для разграничения знаний,которые пользователь еще не приобрел, и знаний, которые еще не были емупредставлены, что имеет смысл для стратегии обучения.Дифференциальная модель (differential model) является расширениемоверлейной модели, которое предполагает разделение знания предметнойобласти на представленное и не представленное пользователю. Оверлейнаямодель применяется к тому знанию, которое уже представлено пользователю.В отличие от оверлейной, дифференциальная модель принимает вовнимание неправильные представления и ошибки пользователя.Пертурбационная модель (pertubation model) принимает во вниманиезнания, которыми обладает пользователь, но которые не представлены вмодели знания эксперта предметной области. Пертурбационная модельрасширяет модель эксперта добавлением библиотеки ошибок (bug library).Процесс ее создания может быть перечисляющим или порождающим. Пе-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 119речисляющий процесс составляет список всех возможных неправильныхпредставлений с помощью анализа предметной области и ошибок, которыедопускает пользователь. Порождающий метод пытается генерироватьошибки исходя из лежащей в основе теории познания. Оверлейная модельможет быть применена поверх комбинированной модели эксперта и библиотекиошибок. Как и для простой оверлейной модели, цель обучения —увеличить подмножество знания эксперта при исключении неправильныхпредставлений.5.2.2. Моделирование стереотипного пользователяСтереотипное моделирование (stereotype modeling) — один из первыхметодов в области моделирования пользователя [81], который классифицируетпользователей по стереотипам. Предполагается, что пользователи, относящиесяк одному классу, имеют одни и те же характеристики. Классификацияпо стереотипам может быть проведена для каждого адаптационногопризнака. Этот метод целесообразно использовать в случаях, когда требуетсябыстрая, но не обязательно правильная оценка пользователя.Можно определить стереотип как набор некоторых взаимосвязанныххарактеристик, присущих всем членам определенной подгруппы пользователей.Стереотипная модель различает несколько типичных (или «стереотипных»)пользователей, например, «новичок», «средний», «эксперт» и т.п.В процессе моделирования пользователи образуют разные группы, причемкаждый пользователь ассоциируется с одним стереотипом или несколькими.При этом предполагается, что пользователи, принадлежащие к однойгруппе, имеют одинаковые характеристики, присущие данной группе. Стереотипнаяклассификация может быть использована для каждого аспектаадаптации.Стереотипная модель может быть представлена как множество пар «стереотип—значение»,где значением может быть «истина» или «ложь» (означающее,принадлежит ли пользователь данному стереотипу).При использовании стереотипной модели иногда полезно различать дватипа стереотипного моделирования: фиксированное моделирование и моделированиепо умолчанию. При фиксированном моделировании обучаемыеассоциируются с предопределенными стереотипами на базе их представления.Стереотипное моделирование по умолчанию — более гибкий подход: вначале сессии обучаемые ассоциируются со стандартными стереотипами,но затем, по ходу процесса обучения, установки начальных стереотиповпостепенно заменяются более индивидуальными установками.


120 Программные средства и математические основы информатикиКроме характеристик подгрупп пользователей, стереотипы могут содержатьтак называемые триггеры (инициирующие условия), которые представляютключевые характеристики, позволяющие идентифицировать пользователякак принадлежащего к соответствующей подгруппе пользователей.Триггеры могут относиться к текущим пользовательским характеристикам,эксплуатационным характеристикам (например, истории навигации), даннымокружения (например, данным о конфигурации, оборудовании). Стереотипыприменяются к пользователю, если они назначены «вручную» илиесли их триггеры совпадают с доступной информацией о пользователе (автоматическаяклассификация). В результате, все характеристики соответствующегостереотипа приписываются пользователю.Суммируя вышесказанное, можно представить стереотип состоящим изследующих частей:• множества инициирующих условий (триггеров), являющихся логическимивыражениями, активирующими стереотип;• множества условий отвода (ретракций), которые ответственны задеактивацию активного стереотипа;• множества предположений (выводов) стереотипа, которые служатпредположениями по умолчанию при связывании пользователя состереотипом.Можно сформулировать три этапа, которые нужно выполнить при разработкестереотипов:• определение подгрупп пользователей: необходимо выделить внутригруппы пользователей подгруппы, члены которых имеют некоторыеоднородные характеристики;• идентификация ключевых характеристик: требуется определить небольшоечисло ключевых характеристик, позволяющих идентифицироватьчленов подгруппы пользователей (присутствие или отсутствиеэтих характеристик должно быть распознаваемо системой);• представление в виде (иерархически упорядоченных) стереотипов:требуемые характеристики определенных групп пользователейдолжны быть формализованы в подходящей системе представления.Совокупность представленных характеристик подгруппы пользователейназывается «стереотипом» этой подгруппы. Если содержимоеодного стереотипа образует подмножество содержимогодругого, может быть построена иерархия стереотипов, в которойсодержимое стереотипа более высокого уровня наследуется стерео-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 121типом более низкого уровня и таким образом представлено одинраз.При использовании стереотипного моделирования может возникнутьследующая проблема: стереотипы могут быть так специализированы, чтобудут состоять только из одного пользователя, или пользователь вообще несможет быть классифицирован.Можно определить четыре модели согласно типу организации связи междустереотипами: луковая (многоуровневая) модель, летисная модель,многоядерная летисная модель, ориентированный ациклический граф.• Многоуровневая (или луковая) модель (onion model) — это иерархическаямодель, в которой содержимое стереотипов линейно упорядоченопо отношению быть подподмножеством. Пользователи, принадлежащиек некоторому стереотипу S, наследуют все знание, ассоциированноес более общими стереотипами, чем S (наследование без исключений).В качестве примера можно привести классификацию пользователей,в которой «новички» знают подмножество концептов А; «продвинутые»пользователи имеют знание новичков, но они также знают концептыиз подмножества B; наконец, «эксперты» знают концепты из A, Bи C.• Летисная (или салатная) модель (lettuce model) характеризуется наличиемстереотипа-ядра, содержимое которого является подмножествомсодержимого всех других стереотипов, которые в остальном могут бытьнезависимы друг от друга. Эта модель часто используется для представлениязнаний пользователей программных систем подобных командамUNIX: пользователи владеют только относительно небольшиммножеством основных команд и рядом функционально связанных команд(например, для управления файловой системой, электронной почтойи т.д.).• Многоядерная летисная (или многоядерная салатная) модель(multikernel lettuce model) является обобщением летисной модели, в которомдопускается существование нескольких ядер, являющихся пересеченияминекоторых стереотипов.• Ориентированный ациклический граф (DAG) является обобщениеммногоядерной модели, в котором допускается существование общихчастей у двух или более ядер, которые также представляются ядрами, ит.д. В результате получается иерархия стереотипов, в которой каждыйузел может иметь больше одного узла высшего уровня.


122 Программные средства и математические основы информатики5.3. Модели адаптацииМодель адаптации описывает, как должна происходить адаптация в зависимостиот моделей пользователя и предметной области. Она состоит изправил адаптации, которые формируют связь между моделью предметнойобласти и моделью пользователя и определяют представление генерируемойинформации и обновление модели пользователя [35, 37, 99, 100].Обычно правило содержит две основные части: условие, при которомпроисходит срабатывание данного правила, и трансформация — описаниетого действия, которое задается данным правилом. Условие может предполагатьвозникновение некоторого внешнего события (такие правила называютсяECA-правилами, в отличие от CA-правил, в которых условие — этопросто логическое выражение), например, обращения к странице, а такжеистинность некоторого логического выражения, построенного над значениямиатрибутов из моделей пользователя и предметной области и проверяемогов те моменты, когда событие возникает. Действие может состоять вмодификации значений атрибутов в модели пользователя или в присваиванииобъекту спецификации представления. Также, в правиле может быть«фаза» выполнения, указывающая на момент времени, в который должноприменяться правило: до или в течение генерации (фаза “pre”) и после генерациистраницы (фаза “post”). Основанием для наличия двух стадий выполненияявляется то, что сначала может потребоваться осуществить некоторуюадаптацию, основываясь на «текущем» состоянии модели пользователя(фаза “pre”), а затем модифицировать модель пользователя после генерациипредставления страницы (фаза “post”). Также в правиле может быть определено,может ли оно инициировать запуск других правил или нет.Как показано в работе [8], многие из реальных приложений используюттакие ECA-правила, в которых логические выражения принимают истинныезначения в точности тогда, когда возникают события, составляющие условияданных правил; такие правила получили название квази-CA-правил.Все правила адаптации подразделяются [98] на родовые или обобщенныеправила (generic rules) и специфические или конкретные правила (specificrules). В отличие от обобщенных правил, которые применимы ко всем концептами всем межконцептным отношениям некоторого заданного типа ииспользуют связанные переменные для представления в них концептов имежконцептных отношений, специфические правила описывают преобразованиядля конкретных концептов, множеств концептов и межконцептныхотношений и не используют переменных. Специфические правила имеют


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 123приоритет над обобщенными правилами, и таким образом, они используютсядля определения исключений в общих правилах.В качестве примера можно привести два простых правила, написанных сиспользованием произвольно выбранного синтаксиса.Например, следующее правило определяет, что при обращении к страницедля соответствующего концепта в модели пользователя устанавливаетсяатрибут «чтение» равным истине в фазе “post”: C.read:= true; post; true>Правило также утверждает, что оно запустит другие правила, которыеимеют атрибут «чтения» (C.read:= true) в своей левой части.Другой пример. Следующее правило выражает, что когда пользовательобращается к странице, определяющей концепт, «готовый для чтения», тозначение знания для этого концепта становится «изученным» в фазе “pre”: C.knowledge-value:=learned; pre; true>Одной из важных проблем, возникающих при построении модели адаптации,является обеспечение таких свойств систем правил адаптации, какнетеровость и завершаемость [5], позволяющих не следить за порядкомприменения правил адаптации (с помощью механизма адаптации).6. ПРИМЕРЫ АДАПТИВНЫХ ГИПЕРМЕДИА-СИСТЕММного интересных адаптивных гипермедиа-систем для обучения былоразработано в начале 90-х годов прошлого столетия. Интерес, вызванныйразвитием дистанционного Web-обучения, заметно усилил эти исследования,увеличив количество и типы разрабатываемых систем. Все первые системыбыли в значительной степени лабораторными, построенными исключительнодля исследования тех или иных методов адаптации в контекстеобучения. В отличие от них, ряд более современных систем обеспечиваетсреды и авторизованные инструменты для разработки Web-курсов. Появлениебольшого числа авторизованных инструментов демонстрирует зрелостьадаптивной обучающей гипермедиа и является ответом на Webспровоцированнымзапросом на адаптивных к пользователям дистанционныхучебных курсов.Выбор Web в качестве платформы разработки адаптивных гипермедиастал стандартом. Этот выбор дал долгую жизнь ряду основанных на Webадаптивныхучебных гипермедиа-систем, разработанных до 1996 г., таких


124 Программные средства и математические основы информатикикак ELM-ART, InterBook и 2L670. Эти системы были существенно модифицированыпосле 1996, расширены большим числом новых технологий ииспользованы для ряда экспериментальных исследований. Не удивительно,что почти все адаптивные учебные гипермедиа-системы, разработанныепосле 1996 г., являются Web-системами.6.1. ELM-ARTСистема ELM-ART [22] и ее «наследники» ELM-ART II [95] и INTER-BOOK [21] были одними из первых адаптивных гипермедиа-систем, используемыхв Интернете. Они основаны на отдельной системе ELM-PE [93],вводном курсе по программированию на LISP. Ее авторы используют эпизодическуюмодель ученика [94] (ELM) для диагностики полных и неполныхрешений проблем. Эпизодическая модель хранит информацию о пользователев виде коллекции эпизодов. Эти эпизоды могут сравниваться с прецедентамив обучении, основанном на прецедентах [85]. Для построения моделиученика код написанной им программы анализируется в терминах областизнаний, с одной стороны, и описания задачи, с другой. Эта диагностикадает в итоге дерево вывода понятий и правил, которые ученик мог использоватьпри написании программы.В ELM-ART понятия связаны друг с другом посредством предварительныхусловий и результатов. Таким образом, строится понятийная сеть. Наблюденияза пользователем производятся посредством мониторинга посещенныхстраниц: понятие, соответствующее посещенной странице, помечаетсяв понятийной сети как известное пользователю. Для аннотации ссылокавторы используют метафору светофора. Красный кружок обозначает страницы,для изучения которых пользователю недостает знаний; зеленый обозначаетстраницы, на которые предлагается обратить внимание, и т.д. ELM-ART также содержит интерактивные примеры, которые могут быть оттранслированыLISP-компилятором через Интернет.Система ELM-ART II была разработана для перевода обычных учебниковв электронные. Она улучшает представление знаний, имевшееся в ELM-ART. Понятийная сеть иерархически организована в лекции, секции, подсекциии конечные страницы. Каждый элемент понятийной сети имеет слот,содержащий текст для страницы и информацию о связи этой страницы сдругими элементами. Статические слоты содержат предварительные требования,родственные понятия и результат. Конечные страницы содержат тестовыеслоты. Страницы с задачами имеют определенный слот для храненияописания программной задачи. Индивидуальная модель ученика хранит


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 125посещенные страницы, решенные тесты и решенные программные задачи,помечая соответствующие понятия в понятийной модели как «известные».Прямое руководство осуществляется с помощью кнопки «следующийлучший», подсказка предоставляется с помощью нахождения наиболее подходящегопримера из индивидуальной истории обучения, основываясь надиагностике программного кода, использованного учеником в своих решениях.Системы способны делать заключения о знаниях пользователей, основываясьна помеченных понятиях в понятийной модели. Все предварительныетребования, считающиеся необходимыми для известных пользователюпонятий, также рекурсивно помечаются как известные.6.2. INTERBOOKВ проекте INTERBOOK [22] электронные учебники создаются на базеиерархически структурированных файлов MS-Word. Для этого должныбыть выполнены такие операции, как создание списка понятий предметнойобласти, структурирование и аннотирование страниц с выдаваемыми результатамии предварительными требованиями, трансляция в HTML и разборинформации на структуры LISP.INTERBOOK использует и модель предметной области, и модель пользователя.Глоссарий и учебник основаны на модели области. Глоссарий естьвизуализированная понятийная сеть. Структура глоссария напоминает дидактическуюструктуру знаний данной области. Каждый пункт глоссариясоответствует одному из понятий области. Вдобавок к этому каждая записьв глоссарии содержит ссылки на все разделы книги, которые используютэто понятие.Каждый элемент учебника помечен некоторыми понятиями модели области.Эти понятия играют различную роль. Некоторые из них описываютрезультаты — знания, которые пользователь получил после изучения страницы,другие описывают предварительные условия, или знания, необходимыедля понимания этой страницы.INTERBOOK поддерживает адаптивную аннотацию ссылок, используяметафору светофора. Подсказка, основанная на предварительных условиях,осуществляется с помощью предоставления аннотированного списка страниц,содержащих предварительно необходимую информацию.Упорядочение страниц производится в три этапа. Вначале система вычисляетобщее количество «очков», отражающих предполагаемое состояниезнаний, для каждого понятия. Основываясь на этих цифрах, система решает,


126 Программные средства и математические основы информатикихорошо ли усвоено понятие или нет. Затем система решает, какие страницысодержат рекомендованную обучающую информацию либо недостающиепредварительные знания. Ссылки на понятия и разделы разных образовательныхсостояний аннотированы различными пиктограммами. Наконец,система выбирает наиболее оптимальную страницу среди всех доступныхстраниц, на которых вводятся неизученные понятия и все предварительныеусловия которых уже известны. Всем страницам присваивается определенныйприоритет их представления, который выводится из базового значенияв соответствии с состоянием знаний о требуемых и вводимых понятиях.6.3. INTERBOOK: адаптивный интерфейсПодход к реализации адаптивного пользовательского интерфейса дляпроекта INTERBOOK предложен в [20]. Модель области и модель ученикаиспользуются для его представления. Каждое свойство интерфейса рассматриваетсякак понятие области, а каждая подсказка — это обучающийэлемент. Применяя алгоритм упорядочения страниц, подобный описанномувыше, генерируются последовательность свойств интерфейса, которыенужно изучить, и последовательность подсказок, которые нужно показатьпользователю.6.4. PTPT (персонализированная текстовая система) — это учебник по изучениюпрограммирования на языке C [61, 62]. Она использует обычную книгуо C и генерирует на ее основе гипермедиа-систему. Курсом, который поддерживаетсяPT, является курс по программированию на C для программистовна Pascal.PT использует стереотипную пользовательскую модель целевой аудитории(программистов на Pascal) в дополнение к индивидуальной модели.Стереотип дает определенные значения компонентов знания, инициализируятаким образом модель пользователя. В индивидуальной модели хранятсязначения знаний индивидуального пользователя во время его работы сPT.Для того чтобы сделать возможной адаптацию, PT использует сходствоязыков Pascal и C при представлении информации пользователю. Командыпрепроцессора добавляются в «сырой» HTML-код страницы из моделипользователя, например:#define PASCAL 3,#define active-learner 1,


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 127#if PASCAL > 2.Команды «if» препроцессора на HTML-странице используются для контролятого, какие именно части страницы передаются пользователю. Эта жетехника препроцессинга используется для выбора ссылок.6.5. PUSHПроект PUSH (подсказка, настроенная на пользователя и план) ставитцелью разработку и тестирование интеллектуальных справочных решений кзадачам поиска информации [53]. Пользователь может вводить вопросы, втом числе повторные, или перемещаться по графическому представлениюпредметной области. Когда пользователь сформулировал вопрос, он можетвоздействовать на ответ системы, открывая и закрывая подсекции, изменяяграфику или выбирая последующие предлагаемые вопросы.Знания о предметной области моделируются isA-иерархией. Идея системысостоит в том, чтобы заготовить вопросы, которые могут возникнуть упользователя при чтении документа. Вопросы затрагивают родственныепонятия и знания. Так как комбинаторная конструкция всех возможныхвопросов, основанных на понятиях и их взаимосвязях в isA-иерархии, будетслишком сложной и содержащей слишком много информации, множествовозможных вопросов ограничено понятиями, содержащимися на странице,и повторными вопросами для этих понятий. Система реализует подход кзапросам, основанный на правилах. Как только пользователь верифицируеткаждую из своих задач, выбирая некоторые из предлагаемых ссылок, системаполучает практически точную информацию о знаниях пользователя.6.6. AHAБесплатный Web-курс по гипермедиа-структурам и системам [23, 33]реализован в системе AHA. AHA (адаптивная гипермедиа-архитектура)может быть использована для генерации условных тестов, а также для адаптацииссылочной структуры с помощью удаления, скрытия и аннотацииссылок. Команды препроцессора на HTML-страницах используются CGIскриптамидля фильтрации содержания фрагментов страницы, таким способомреализуется адаптация на уровне содержания. Та же препроцессорнаятехника используется для адаптации на уровне ссылок.AHA! Версии 1.0 [38] делает возможным создание сайтов, в которыхссылки могут быть спрятаны или аннотированы, а фрагменты — включеныили опущены, основываясь на правилах адаптации и модели пользователя сочень гибкой структурой (продукционные правила работают в структуре


128 Программные средства и математические основы информатикиконцептов и атрибутов). AHA! 1.0 — инструмент широкого назначения втом смысле, что он не навязывает один стиль презентации и что адаптацияможет быть основана на произвольных событиях (arbitrary events) и зависимостяхмежду концептами (в отличие от, например, обучающих систем, вкоторых предполагается монотонный процесс усвоения знаний посредствомчтения страницы). Однако в данной версии AHA! все еще довольно простаясистема. Она работает только с правилами, созданными вручную, и условноевключение фрагментов — единственный тип адаптации содержания,который она поддерживает.В AHA! Версии 2.0 авторы направили силы на создание более богатойструктуры модели пользователя, предметной области и модели адаптации сболее развитыми требованиями и правилами генерации. Новые особенностисистемы, разработанные авторами, основаны на ссылочной (reference)модели AHAM [37], которая является расширением хорошо известной ссылочноймодели Dexter для гипермедиа [50]. AHA! отличается от ссылочноймодели AHAM [37] тем, что в ней не отделена модель предметной областиот модели адаптации. В AHA! автор определяет концепты наряду с требованиями,которые определяют условия, когда пользователь “готов” перейтик концепту, и правилами генерации, которые определяют, как поведениепросмотра (browsing behavior) пользователя интерпретируется при обновлениимодели пользователя. Правила генерации являются продукционнымиправилами (condition-action rules), как принято в теории активных баз данных[8]. AHA! 2.0 поддерживает хранение структуры концептов в XMLфайлахили в базе данных mySQL.6.7. OLAE, POLAСистема OLAE [69] нацелена на дифференцированное и надежное определениезнаний обучающегося в области физики. Сеть Байеса [77] строитсядля каждой проблемы, над которой работает пользователь. Эта сеть отражает,среди прочего, вероятность того, что пользователь вводит определенныеуравнения, если он знает соответствующие правила. Таким образом, системаиспользует ретроспективную диагностику, называемую отслеживаниемзнаний. POLA [27] разработана для отслеживания моделей: она может вызыватьсямногократно во время процесса решения проблемы. POLA строитбазовую сеть Байеса с помощью приращения узлов, добавляя их каждыйраз, когда обучающийся производит наблюдаемое действие.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 1296.8. POKSСистема POKS [40] основана на когнитивной теории структур знания.Она строит сеть выводов на элементах знаний из небольшого образца измножеств данных пользователя и использует эту «наведенную» сеть длядоступа к состоянию знаний, обладая ограниченным количеством наблюденийили вопросов. Система применяется для адаптированного построенияпользовательских интерфейсов. Представлено моделирование перекрытий.6.9. EPI-UMODСистема EPI-UMOD [83] реализует модель стереотипного пользователя,основанную на сетях Байеса. Она использует отдельную сеть Байеса длякаждого стереотипа, в которой реализованы специальные условные зависимостимежду единицами знаний. Каждый атрибут этого стереотипа представляетсобой утверждение, что пользователю известно определенное понятие.6.10. HYDRIVEСистема HYDRIVE [70] нацелена на обучение технического и летногоперсонала в области функционирования гидравлических систем самолетаF15. Основной упор делается на понимание системы и стратегии разрешенияпроблем, а не на оптимизацию действий, которые необходимо предприниматьв заданном пункте проблемы. Авторы используют иерархическуюмодель необходимых способностей обучающихся и строят сеть Байесадля всего сценария приложения. Однако эта сеть модифицируется толькочастично.6.11. Система KBS-гиперкнигЦелью системы KBS-гиперкниг [51, 52] является построение структурыдля разработки и поддержки открытых адаптивных гипермедиа-систем вИнтернете. Она реализует обучение, основанное на проектах [85].В системах баз знаний (KBS, knowledge-based systems) понятия связаныдруг с другом на базе понятийной модели гиперкниги. Наблюдения за пользователямипроизводятся, когда они выполняют некоторые проекты в библиотекепроектов гиперкниги.Каждый элемент гиперкниги индексирован некоторыми понятиями изобласти знаний. Строится отдельная модель знаний, содержащая понятия


130 Программные средства и математические основы информатикизнаний из предметной области и зависимости, их обучающие. Таким образом,сам по себе гипертекстовый документ не содержит никакой информациио предварительных требованиях или результатах.Генерируется глоссарий, содержащий понятия из модели знаний. Длякаждого пункта глоссария генерируются ссылки на примеры, на элементыгиперкниги и на страницы других электронных книг, доступных в Интернете.KBS использует метафору светофора для адаптивной аннотации. Алгоритмупорядочения страниц генерирует последовательность чтения в соответствиис целями и знаниями пользователя. Чтобы помочь пользователюпроложить собственный путь через гиперкнигу, система также генерируетследующий обучающий шаг путем сравнения текущего состояния знанийпользователя с состоянием знаний, которое он должен иметь после завершенияработы с книгой.KBS поддерживает обучение, основанное на целях. Пользователи могутопределять собственные цели обучения или запрашивать следующую цель усистемы. Для каждой из этих целей генерируется последовательность чтения,содержащая необходимые знания (как предварительные требования,так и текущее состояние знаний) для достижения цели. Вдобавок к этому,выбираются подходящие проекты и предлагается информационный индекс,содержащий как документы из самой гиперкниги, так и другие доступные вИнтернете материалы.Выбор подходящих проектов основывается на алгоритмах, которые отражаюткак предварительные знания, необходимые для выполнения проекта,так и то, насколько хорошо проект соответствует текущей цели обучения.KBS также адаптируется к различным скоростям обучения пользователей,поддерживая эту разновидность обучения, основанного на целях. Пользователимогут сами определять, сколько и чего именно они хотят изучитьна следующем шаге. Если система замечает, что пользователь овладеваетпроектами повышенной сложности достаточно успешно, она модифицируетсвою оценку данного пользователя в отношении пройденных тем, а такжепредварительных знаний. Таким образом, пользователь сможет перейти кдругим, более продвинутым темам. Если система обнаруживает, что пользовательнедостаточно знаком с некоторой темой, она предлагает сходныепримеры или проекты, содержащие минимальное количество новой информации.Техника реализации, использованная в KBS, представляет собой сетьБайеса над полной моделью предметной области. Когда бы ни были произ-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 131ведены наблюдения над конкретным пользователем, они далее распространяютсяпо всей сети.Важное внимание в KBS уделяется расширяемости системы по отношениюк Интернету. Чтобы иметь возможность создавать открытые адаптивныегипермедиа-системы, выбранный в KBS подход к индексированию позволяетобрабатывать каждую информационную единицу одинаково независимоот ее происхождения. Таким образом, HTML-страницы, найденныев Интернете, могут быть интегрированы в систему таким же образом, как идокументы, размещенные в библиотеке гиперкниги.6.12. TILEСистема TILE разрабатывается [63] как интегрированная адаптивнаясистема для дистанционного обучения с моделью пользователя, основаннойна клиент-серверном подходе. TILE поддерживает модели отдельных студентови групп студентов.Индивидуальная модель содержит четыре основных составляющих:глобальные предпочтения; специфическое представление содержания, связанноес предпочтениями обучаемого; компетентность в предметной области;история работы студента. Она используется системой для обеспеченияадаптивного навигационного управления, выбора граннулированности содержанияпредметной области, обеспечения основанных на контекстах экскурсийк другим единицам обучения, нахождения аналогий с ранее изученнымматериалом, создания прямых ссылок на ранее изученный материал,обеспечения динамических сообщений и обратных связей.Система суммирует общее поведение студентов и предпочтений длясоздания и сопровождения групповой модели. Студенты, использующиесистему, разбиваются на различные группы, соответствующие их поведениюи компетентности в предметной области, которые отражаются в моделиопределенных студенческих групп. Структура групп многомерна, и одинстудент может принадлежать одной или нескольким таким группам.Групповая и частично индивидуальная модели размещаются на сервере,в то время как у клиента находится только частично индивидуальная модель.Функционально система TILE содержит следующие компоненты: модульстуденческой модели; модуль предметной области ( представлениебазы знаний); модуль эксперта, поддерживающий единицы обучения (лекции,примеры, тесты и т.д.), каталог ошибок и объяснения для элементов


132 Программные средства и математические основы информатикиучебного плана; модуль обучения, содержащий действия по адаптации иобработке студенческих действий.6.13. SACСистема SAC [26] — система регулируемого адаптивного обеспечениякурсов, основанная на ссылочной модели AHAM [37]. Структура курса,материалы и цели обучения представляются абстракциями вершин курса,единиц курса и материала курса, как это описано в модульной системе обученияMTS [91].Курсовое обеспечение реализуется с помощью архитектуры моделитрехярусного приложения. Первый ярус реализуется с помощью браузера,который связан с представлением обеспечения курса. Средний уровень реализуетсяи обеспечивается комбинацией Web-сервера и сервера приложений.Сервер приложений генерирует XML, DHTML и клиентский Джаваскрипт,динамически используя модельную информацию, сохраняемую втретьем ярусе системы базы данных.Адаптивные возможности SAC обеспечиваются адаптивным агентом,который состоит из следующих трех частей: предвходовый адаптивныймеханизм, онлайновый индивидуальный адаптивный механизм и адаптивныймеханизм предметной области.6.14. WebVTСистема WebVT [90] является адаптивной сетевой интеллектуальнойпрограммой обучения языку с помощью компьютера, которая предназначенадля пассивного овладения английским языком лицами, для которых онне является родным языком.Система объединяет возможности интеллектуальных систем обучения иадаптивных гипермедиа-систем. Она использует комбинацию стереотипногомоделирования и моделирования перекрытий для инициализации студенческоймодели. Эта модель в дальнейшем уточняется в процессе наблюденияза студентом, когда он работает с системой. Результирующая модельстудента используется для аннотаций ссылок на топики, представляемыестуденту. Кроме того, она также используется в процессе диагностики ошибоки адаптации обратной связи и советов, выдаваемых студенту.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 1336.15. ITSИнтеллектуальная система обучения ITS [79] предназначена для обученияиспользованию новых технологий преподавателей высших учебныхзаведений. Она предлагает единицы курса, покрывающие потребностипользователей с различными уровнями знаний и различными характеристиками.Система настраивает представление учебного материала на различныепользовательские потребности с использованием технологий искусственногоинтеллекта для спецификации каждой пользовательской модели и принятияпедагогических решений. Это достигается с помощью экспертной системы,которая использует формализм гибридного представления знаний,интегрирующий символические правила с нейровычислениями.ЗАКЛЮЧЕНИЕСистемы дистанционного обучения в настоящее время активно исследуютсяи развиваются. Выгоды сетевого обучения ясны: аудиторная и платформеннаянезависимости. Сетевое обучающее программное обеспечение,один раз установленное и обслуживаемое в одном месте, может использоватьсяв любое время и по всему миру тысячами учащихся, имеющих любойкомпьютер, подключенный к Интернету. Тысячи программ сетевогообучения и других образовательных приложений стали доступны в сети запоследние годы. Проблема состоит в том, что большинство из них являютсяне более чем статичными гипертекстовыми страницами. Поэтому цельюведущихся исследований является развитие продвинутых сетевых образовательныхприложений, которые смогли бы предложить некоторое количествоадаптивности и интеллектуальности. Эти свойства стали особенно важныдля Web-систем дистанционного обучения с тех пор, как обучаемые сталиобучаться в основном самостоятельно (обычно из дома). Интеллектуальноеи личное содействие, которое могут дать учитель или студент-сокурсникпри обычном (аудиторном) обучении, при дистанционном обучении нелегкодостижимо. Адаптивность важна для программного обеспечения дистанционногообучения еще и потому, что оно должно использоваться намногоболее разнообразным множеством студентов, чем любое “однопользовательское”учебное приложение. Сетевое программное обеспечение, разработанноедля одного класса пользователей (с одним складом ума), можетсовсем не подойти другим обучаемым.


134 Программные средства и математические основы информатикиВ статье мы рассмотрели методы и средства адаптации, используемые всовременных обучающих Web-системах. Не вызывает сомнения, что какадаптивные, так и интеллектуальные технологии могут повысить качествообразовательных систем, используемых в сети. Например, адаптивное представлениеможет сделать представление учебного материала более удобнымдля использования. Адаптивная поддержка в навигации и адаптивное построениепоследовательности могут использоваться как для повсеместногоконтроля над курсом обучения, так и для помощи студенту в выборе наиболееподходящих тестов и заданий. Поддержка в решении задач и интеллектуальныйанализ решений могут значительно улучшить процесс выполнениязаданий студентами, обеспечивая их интерактивной и интеллектуальнойобратной связью на фоне значительного уменьшения нагрузки на преподавателя.Технологии подбора моделей могут улучшить как управлениедистанционными курсами, так и взаимодействие между обучаемыми и преподавателями.Однако, несмотря на имеющий потенциал, адаптивные и интеллектуальныетехнологии пока еще не нашли себе место в «реальной» виртуальнойаудитории, т.е. пока их нет в массово используемых средствах обучения.Большинство систем, обсуждавшихся выше, — это типичные «лабораторные»(экспериментальные) системы, которые вообще не имели практикииспользования в реальных дистанционных курсах. Небольшая часть систем(в основном это системы из семейств ELM-ART и AHA) имеют небольшуюпрактику использования, скорее экспериментального характера. В то жевремя ни одна из существующих коммерческих и «университетских» системобучения, поддерживающих сотни дистанционных курсов, не используетни адаптивные, ни интеллектуальные технологии.Здесь авторы разделяют позицию П. Бруселовского [11], заключающуюсяв следующем. Сетевое образование само по себе относительно молодо.До настоящего времени различные компании, производящие системы длясетевого образования, были способны конкурировать на рынке, создаваяпростые не- адаптивные системы. Однако большое количество экспериментальныхсистем демонстрирует явные преимущества адаптивных и интеллектуальныхтехнологий. По ходу увеличения конкуренции на рынке образовательныхWeb-систем “быть адаптивной” или “быть интеллектуальной”станет важным фактором для завоевания покупателей. Традиционные компаниисоздания систем сетевого образования начнут использовать адаптивныеи интеллектуальные методы. Команды исследователей с серьезнымопытом использования адаптивных и интеллектуальных технологий получатвозможность для вывода своих технологий на рынок. Первыми техно-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 135логиями для использования в коммерческих системах, вероятно, будут технологиипостроения последовательностей (последо-вательность страниц ипоследовательность вопросов), так как они вполне подходят к существующейструктуре обучающих систем дистанционного образования. Потом наступиточередь адаптивной поддержки в навигации и подбора модели. Технологииподдержки в решении задач будут оставаться на уровне исследованийдольше, хотя мы можем ожидать появления небольших Webтренажеров,предназначенных для поддержки изучения тех или иных частейнекоторых предметов. Можно надеяться, что в ближайшие годы появитсянесколько примеров адаптивных и интеллектуальных систем коммерческогоуровня, так же как и множество новых и перспективных разработок экспериментальныхсистем для дистанционного обучения.СПИСОК ЛИТЕРАТУРЫ1. Волянская Т.А. Виртуальный музей истории информатики в Сибири: модельпредметной области и модель пользователя // Новые информационные технологиив науке и образовании. — Новосибирск, 2003. — С. 124–146.2. Волянская Т.А. Методы и технологии адаптивной гипермедиа // Современныепроблемы конструирования программ. — Новосибирск, 2002. — С. 38–68.3. Зайцева Л.В. Методы и модели адаптации к учащимся в системах компьютерногообучения // Educational Technology & Society. — 2003. — Vol. 6, N 4. — P.204–211.4. Касьянов В.Н. О работе 16 Всемирного компьютерного конгресса ИФИП //Поддержка супервычислений и интернет-ориентированные технологии. — Новосибирск,2001. — С. 9–30.5. Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализацияи применение. — СПб.: БХВ-Петербург, 2003. — 1104 С.6. Albrecht D., Zukerman I., Nicholson A., Bud A. Towards a Bayesian model forkeyhole plan recognition in large domains // Proc. of the Sixth Internat. Conf. onUser Modeling (UM97). — Sardinia, 1997.7. Alpert S.R., Singley M.K., Fairweather P.G. Deploying intelligent tutors on theWeb: An architecture and an example // Intern. J. of Artificial Intelligence in Education.— 1999. —Vol. 10. — P. 183–197.8. Baralis E., Widom J. An algebraic approach to static analysis of active databaserules // ACM Transactions on Database Systems. — 2000. — Vol. 20, N 1. —P. 269–332.9. Beaumont J. User modelling in the interactive anatomy tutoring system ANATOM-Tutor // User Modeling and User Adapted Interaction. — 1994. — Vol. 4, N 1. — P.21–45.


136 Программные средства и математические основы информатики10. Berners-Lee T. World Wide Web: An illustrated seminar. Held as an Online Seminarin 1991. http://www.w3.org/pub/WWW/Talks/General.html.11. Brusilovsky P. Adaptive and Intelligent Technologies for Web-based Education //Konstliche Intelligenz. Special Issue on Intelligent Systems and Teleteaching. —1999. — N 4. — P. 19–25.12. Brusilovsky P. Adaptive Educational Systems on the World-Wide-Web: A Reviewof Available Technologies // Proc. of Workshop «WWW-Based Tutoring» at 4th InternationalConference on Intelligent Tutoring Systems (ITS'98). — San Antonio,1998.13. Brusilovsky P. Adaptive Hypermedia // User Modeling and User-Adapted Interaction.— 2001. — Vol 11. —P. 87–110.14. Brusilovsky P. Adaptive hypermedia, an attempt to analyze and generalize. // Lect.Notes. Comput. Sci. — 1996. — Vol. 1077. — P. 288–304.15. Brusilovsky P. Efficient techniques for adaptive hypermedia // Lect. Notes. Comput.Sci. — 1997. — Vol. 1326. — P. 12–30.16. Brusilovsky P. Methods and techniques of adaptive hypermedia // Adaptive Hypermediaand Hypermedia. —Dordrecht: Kluwer Academic Publishers, 1998. — P. 1–43.17. Brusilovsky P. Methods and techniques of adaptive hypermedia // User Modelingand User-Adapted Interaction. — 1996. — Vol 6, N 2-3. — P. 87–129.18. Brusilovsky P., Cooper D. W. Domain, Task, and User Models for an Adaptive HypermediaPerformance Support System. // Proc. of 2002 Internat. Conf. on IntelligentUser Interfaces. — San Francisco, CA, 2002. — P. 23–30.19. Brusilovsky P., Pesin L. ISIS-Tutor: An intelligent learning environment forCDS/ISIS users // Proc. of the interdisciplinary workshop on complex learning incomputer environments (CLCE'94). — Joensuu, 1994.20. Brusilovsky P., Schwarz E. User as student: Towards an adaptive interface for advancedWeb-based applications // Proc. of the Sixth Internat. Conf. on User Modeling(UM97). — Sardinia, 1997.21. Brusilovsky P., Schwarz E., Weber G. A tool for developing adaptive electronictextbooks on WWW // Proc. of World Conf. of the Web Society (WebNet'96). —Boston, 1996.22. Brusilovsky P., Schwarz E., Weber G. ELM-ART: An intelligent tutoring system onworld wide web // Lect. Notes Comput. Sci. — 1996. — Vol. 1086. — P. 261–269.23. Calvi L., De Bra P. Improving the usability of hypertext courseware through adaptivelinking // Proc of the Eighth ACM Internat. Hypertext Conf. — Southampton,1997.24. Carver C.A., Howard R.A., Lavelle E. Enhancing student learning by incorporatingstudent learning styles into adaptive hypermedia // Proc. of World Conf. on EducationalMultimedia and Hypermedia (ED-EDIA'96), — Boston, MA, 1996. —P. 118–123.25. Carver C.A., Howard R.A., Lavelle E. Enhancing student learning by incorporatingstudent learning styles into adaptive hypermedia //Proc. of World Conf. on Educa-


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 137tional Multimedia and Hypermedia (ED-MEDIA'96). — Boston, 1996. — P. 118–123.26. Chan A.T.S., Chan S.Y.C., Cao J. SAC: a self-paced and adaptive courseware systems// Proc of IEEE Intern. Conf. on Advanced Lerning Technologies. — IEEEComputer Society, 2001. — P. 78–81.27. Conati C., Gertner A.S., Van Lehn K., and Druzdzel M. J. Online student modelingfor coached problem solving using bayesian networks // Proc. of the Sixth Internat.Conf. on User Modeling (UM97). — Sardinia, 1997.28. Dagum P., Galper A., Horvitz, E. Dynamic network models for forecasting // Proc ofthe Eighth Conf. on Uncertainty in Artificial Intelligence. — San Mateo, 1992. — P.41–48.29. Danielson R. Learning styles, media preferences, and adaptive education // Proc. ofWorkshop "Adaptive Systems and User Modeling on the World Wide Web” at 6thInternat. Conf. on User Modeling (UM97) — Sardinia, 1997. — P. 31–35.30. De Bra P. Adaptive Hypermedia on the Web: Methods, techniques and applications// Proc. of the AACE WebNet'98 Conf. — Orlando, 1998. — P. 220–225.31. De Bra P. Design issues in adaptive Web-site development // Proc. of the 2nd Workshopon Active Systems and User Modelling on WWW. — Eindhoven, 1999. —P. 29–39.32. De Bra P. Hypermedia structures and systems: Online Course at Eindhoven Universityof Technology, 1997. http://wwwis.win.tue.nl/2L690/.33. De Bra P. Teaching hypertext and hypermedia through the Web // Proc. of of theWeb Society (WebNet'96). — San Francisco, 1996.34. De Bra P., Aerts A., Smits D., Stash N. AHA! Version 2.0, More Adaptation Flexibilityfor Authors // Proc. of the AACE ELearn'2002 Conf. — 2002. — P. 240–246.35. De Bra P., Brusilovsky P., Houben G.-J. Adaptive Hypermedia: From Systems toFramework // ACM Computing Surveys. — 1999. — Vol. 31, N 4. — Article N 12.36. De Bra P., Calvi L. AHA! An open Adaptive Hypermedia Architecture // The NewReview of Hypermedia and Multimedia. — 1998. — P. 115–139.37. De Bra P., Houben G.J., Wu H., AHAM: A Dexter-based Reference Model forAdaptive Hypermedia // Proc. of ACM Hypertext'99. — Darmstadt, 1999. — P.147–156.38. De Bra P., Stash N. AHA! A General-Purpose Tool for Adaptive Websites // Proc.of the World Wide Web Conf. — Lect. Notes Comput. Sci. — 2002. — Vol. 2347.— P. 381–384. — ().39. De Rosis F., De Carolis B., Pizzutilo S. User tailored hypermedia explanations //INTERCHI'93 Adjunct proc. — Amsterdam,1993. — P. 169–170.40. Desmarais M.C., Maluf A. User-expertise modeling with empirically derived probabilisticimplication networks // User Modeling and User Adapted Interaction. —1996. — Vol. 5. — P. 283–315.41. Engelbart D. The augmented knowledge workshop // A History of Personal Workstations.— Addison Wesley, 1988.


138 Программные средства и математические основы информатики42. Faulhaber S. Reinhardt B. D3-WWW-Trainer // Entwiklung einer Oberfläche für dieNetzanwendung. — München, Technische Universität München, 1997. P. 31–40.43. Faulmann C. Illustrierte Geschichte der Schrift. — Augustus Verlag, 1980. Originallypublished in 1880.44. Fink J., Kobsa A., Schreck J. Personalized hypermedia information provisionthrough adaptive and adaptable systems features: User modeling, privacy and securityissues // Intelligence in Services and Networks: Technology for CooperativeCompetition. — Springer-Verlag, 1997. — P. 459–467.45. Gilbert J. E., Han C.Y. Arthur: Adapting Instruction to Accommodate LearningStyle // Proc. of World Conf. of the WWW and Internet (WebNet'99). — Honolulu,HI, 1999. — P. 433–438.46. Gloor P. Elements of Hypermedia Design. Birkhauser, 1997.47. Goldstein I. The genetic graph: A represenation for the evolution of proceduralknowledge // Intelligent Tutoring Systems. — Academic Press, 1982.48. Greer J., McCalla G., Collins J., Kumar V., Meagher P., Vassileva J. Supportingpeer help and collaboration in distributed workplace environments // Intern. J. of ArtificialIntelligence in Education. — 1998. — Vol. 9. — P.159–177.49. Gronbaek K., Trigg R.H. From Web to Workplace: Designing Open HypermediaSystems. — The MIT Press, 1999.50. Halasz F., Schwartz M. The Dexter Hypertext Reference Model // Communs. of theACM. — 1994. — Vol. 37, N 2. — P. 30–39.51. Henze N., Nejdl W. Adaptivity in the KBS hyperbook system // Proc. of 2nd Workshopon Adaptive Systems and User Modeling on the WWW. — Toronto, 1999.52. Henze N., Nejdl W., Wolpers M. Modeling constructivist teaching functionality andstructure in the KBS hyperbook system // CSCL'99: Computer Supported CollaborativeLearning. — Standford, 1999.53. Hook K., Karlgren J., Waern A., Dahlback N., Jansson C., Karlgren K., Lemaire B.A glass box approach to adaptive hypermedia // User Modeling and User AdaptedInteraction. — 1996. — Vol. 6, N 2-3. — P. 157–184.54. Hoppe U. Use of multiple student modeling to parametrize group learning // Proc. of7th World Conference on Artificial Intelligence in Education (AI-ED'95). — Washington,DC, 1995. — P. 234–249.55. Ito J., Okazaki Y., Watanabe K., Kondo H., Okamoto M.: Pen based user interfacefor an ITS on WWW client // Proc. of ICCE'98. — Beijing, AACE, 1998. — P. 324–327.56. Jameson A. Numerical uncertainty management in user and student modeling: Anoverview of systems and issues // User Modeling and User Adapted Interaction. —1996. — Vol. 5, N 3-4. — P. 193–251.57. Jameson A. What can the rest of us learn from research on adaptive hypermedia —and vice versa? . — Saarbrucken, 1999. — (Tech. rep. / University of Saarbrucken).58. Joerding T. A temporary user modeling approach for adaptive shopping on the Web// Proc. of Second Workshop on Adaptive Systems and User Modeling on the WorldWide Web. — Eindhoven University of Technology, 1999. — P. 75–79.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 13959. Jones K.S., Willet P., Eds. Readings in Information Retrieval. — Morgan Kaufmann,1997.60. Kass R. Student modeling in intelligent tutoring systems — implications for usermodeling // User Models in Dialog Systems. — Springer, 1989.61. Kay J., Kummerfeld B. User Models for Customized Hypertext // Lect. Notes Comput.Sci. — 1997. — Vol. 1326.62. Kay J., Kummerfeld R. An individualised course for the C programming language //Proc. of the 2nd International World Wide Web Conference. — Chicago, 1994.63. Kinshuk, Han B., Hong H., Ratel A. Stundent adaptivity in TILE // IEEE Intern.Conf. on Advanced Lerning Technologies. — IEEE Computer Society, 2001. — P.297–300.64. Kobsa A. User Modeling in Dialog Systems: Potentials and Hazards. // AI & Society.— 1990. — Vol. 4. — P. 214—240.65. Kobsa A. User Modeling: Recent Work, Prospects and Hazards. // Adaptive UserInterfaces: Principles and Practice. — Amsterdam, North Holland Elsevier. — 1993.66. Kobsa A., Pohl W. The user modeling shell system BGP-MS. — Konstanz, 1995 —(Tech. rep. / University of Konstanz).67. López J.M., Millán E., Pérez-de-la-Cruz J.L., Triguero F. ILESA: a Web-based intelligentlearning environment for the simplex algorithm // Proc. of CALISCE'98,4th Intern. Conf. on Computer Aided Learning and Instruction in Science and Engineering.— Göteborg, 1998. — P. 399–406.68. Lowe D., Hall W. Hypermedia and the Web. — J. Wiley and Sons, 1999.69. Martin J., Van Lehn, J. OLAE: Progress toward a multi-activity, Bayesian studentmodeler // Proc. of Artificial intelligence in education AIED. — Edinburgh, 1993.— P. 441–417.70. Mislevy R., Gitomer D. The role of probability-based inference in an intelligenttutoring system // User Modeling and User-Adapted Interaction. — 1996. — Vol. 5.— P. 253–282.71. Nelson T. Replacing the printed word: A complete literary system // Proc. of IFIPCongress. — Netherlands, 1980. — P. 1013–1023.72. Nielsen J. Multimedia, Hypertext und Internet: Grundlagen und Praxis des elektronischenPublizierens. — Vieweg, 1995.73. Nissen H., Jeusfeld M., Jarke M., Zemanek G., and Huber, H. Requirements analysisfrom multiple perspectives: Experiences with conceptual modeling technology //IEEE Software. — 1996. — Vol. 13, N 2.74. Nyce J., and Kahn P. A Machine for the Mind: Vannevar Bush's Memex. // FromMemex to Hypertext: Vannevar Bush and the Mind's Machine. — Academic Press,1991.75. Okazaki Y., Watanabe K., Kondo H. An Implementation of an intelligent tutoringsystem (ITS) on the World-Wide Web (WWW) // Educational Technology Research.— 1996. — Vol. 19, N 1. — P. 35–44.76. Paiva A., Machado I. Vincent, an autonomous pedagogical agent for on-the-jobtraining // Lect. Notes Comput. Sci. —1998. — Vol. 1452. — P. 584–593.


140 Программные средства и математические основы информатики77. Pearl J. Probabilistic Reasoning // Intelligent Systems: Networks of Plausible Inference.— Morgen Kaufmann Publishers, 1988.78. Pérez T., Gutiérrez J., Lopistéguy P. An adaptive hypermedia system // Proc. of 7thWorld Conf. on Artificial Intelligence in Education (AI-ED'95). — Washington, DC,1995. — P. 351–358.79. Prentzas J., Hatzilygeroudis I., Koutsojannis C. A Web-based ITS controlled by ahybrid expert system // Proc. of IEEE Intern. Conf. on Advanced Lerning Technologies.— IEEE Computer Society, 2001. — P. 131–134.80. Rada R. Interactive Media. — Springer, 1995.81. Rich E. User modeling via stereotypes // Cognitive Science. — 1978. —N 3. —P. 329–354.82. Ritter S. PAT-Online: A Model-tracing tutor on the World-wide Web // Proc. ofWorkshop «Intelligent Educational Systems on the World Wide Web» at AI-ED'97,8th World Conf. on Artificial Intelligence in Education — Kobe, ISIR, 1997. — P.11—17.83. Rosis F.D., Pizzutilo S., Russo A., Berry D.C., Molina F. J. Modeling the userknowledge by belief networks // User Modeling and User Adapted Interaction. —1992. — Vol. 2. — P. 367–388.84. Schafer R., Weyrath T. Assessing temporally variable user properties with dynamicBayesian networks // Proc. of the Sixth Internat. Conf. on User Modeling (UM97).— Sardinia, 1997.85. Schank R., Cleary C. Engines for Education. — Lawrence Erlbaum Associates,1994.86. Specht M. Empirical evaluation of adaptive annotation in hypermedia // ED-Mediaand ED-Telekom. — Freiburg, 1998.87. Specht M., Oppermann R. ACE — Adaptive Courseware Environment // The NewReview of Hypermedia and Multimedia. — 1998. — Vol. 4. — P. 141–161.88. Taylor J.C. Fifth Generations Distance Education // Proc. of 20th ICDE World Conf.on Open learning and Distance Education. — Dusseldroff, 2001.89. Vassileva J. A task-centered approach for user modeling in a hypermedia officedocumentation system // User Modeling and User-Adapted Interaction. — 1996. —Vol 6, N 2–3.90. Virvou M., Tsiriga V. Web-passive voice tutor: an intelligent computer assistedlanguage learning system over the WWW // Proc. of IEEE Intern. Conf. on AdvancedLerning Technologies. — IEEE Computer Society, 2001. — P. 131–134.91. Wang T., Hornung C. The Modular Training System (MTS) — a system architecturefor Internet-based learning and training. — Fraunhofer, Fr-IGD, 1997.92. Warendorf K., Tan C. ADIS — An animated data structure intelligent tutoring systemor Putting an interactive tutor on the WWW // Proc. of Workshop «IntelligentEducational Systems on the World Wide Web» at AI-ED'97, 8th World Conf. on ArtificialIntelligence in Education. — Kobe, ISIR, 1997. — P. 54–60.93. Weber G. Episodic learner modeling // Cognitive Science. —1996. — Vol. 20.


Касьянов В.Н., Касьянова Е.В. Дистанционное обучение 14194. Weber G., Mollenberg A. ELM programming environment: A tutoring system forlisp beginners // Cognition and Computer Programming. — Ablex Publishing Corporation,1995.95. Weber G., Specht M. User modeling and adaptive navigation support in WWWbasedtutoring systems // Proc. of the Sixth Intern. Conf. on User Modeling (UM97).— Sardinia, 1997.96. Wu H., De Bra P., Aerts A., Houben G.-J. Adaptation control in adaptive hypermediasystems // Lect. Notes Comput. Sci. — 2000. — Vol.1892. — P. 250–259.97. Wu H., De Bra P., Aerts A., Houben G.J., Adaptation Control in Adaptive HypermediaSystems. // Lect. Notes. Comput. Sci. — 2000. — Vol. 1892. — P. 250–259.98. Wu H., De Kort E., De Bra P. Design Issues for General-Purpose Adaptive HypermediaSystems. // Proc. of the ACM Conf. on Hypertext and Hypermedia. — Aarhus,2001. — P. 141–150.99. Wu H., De Kort E., De Bra P. Dessign issues for general-purpose adaptive hypermediasystems // Proc. of the 12th ACM Conf. On Hypertext and Hypermedia. — Aarhus,2001. — P.141–150.100. Wu H., Houben G.J., De Bra P. Supporting User Adaptation in Adaptive HypermediaApplications. // On-line Conf. and Informatiewetenschap 2000. — De Doelen,Rotterdam, 2000.


В. Н. Касьянов, И. Л. МирзуитоваРЕСТРУКТУРИРУЮЩИЕ ПРЕОБРАЗОВАНИЯ:АЛГОРИТМЫ РАСПАРАЛЛЕЛИВАНИЯ ЦИКЛОВ *1. ВВЕДЕНИЕСуществует три основных подхода к обеспечению эффективной эксплуатациисуперкомпьютеров как машин с параллельной архитектурой:использование параллельных языков, использование библиотек и автоматическоераспараллеливание программ. Все три направления интенсивно развиваются,но наиболее привлекательным остается третий подход, посколькурешает проблему переносимости старых последовательных программ насуперкомпьютеры.Несмотря на то что автоматическое распараллеливание программ —достаточно трудная задача, существующее ее решение обеспечило коммерческийуспех суперкомпьютеров на быстро меняющемся рынке вычислительнойтехники. В настоящее время по грубой оценке в мире эксплуатируетсяпорядка тысячи суперкомпьютеров различных параллельных архитектурс производительностью, измеряемой в гигафлопах и даже выше. Набольшинстве из них в качестве языка программирования используется Фортран(Фортран 77, Фортран 90), а в состав программного обеспечения входитраспараллеливающий Фортран-компилятор.Создание успешно работающих распараллеливающих компиляторов дляЭВМ с параллельной архитектурой (векторно-конвейерные ЭВМ, мультипроцессорныесистемы, машины с VLIW-архитектурой) стало возможнымза счет развития методов оптимизирующей трансляции. Произошло существенноерасширение класса преобразований, необходимых для достиженияприемлемой эффективности при трансляции с языков высокого уровня, засчет включения в него конвейеризующих, векторизующих и других преобразований,ориентированных на те или иные особенности архитектур перспективныхЭВМ [1–5, 7, 8, 10–12, 23, 18–22, 30, 31]. Класс оптимизаций* Работа выполнена при финансовой поддержке Научной программы «Университеты России»(грант № УР.04.01.027) и Министерства образования РФ (грант № Е02-1.0-42).


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 143расширился не только преобразованиями программ в рамках одной моделивычислений, например некоторой модели последовательных или асинхронныхвычислений, но и так называемыми конструирующими преобразованиями1 , переводящими программы из одних моделей в другие, например,сопоставляющими определенным последовательным программам эквивалентныеим параллельные. При этом процессы оптимизирующей трансляции,так или иначе реализуемые распараллеливающими компиляторами,осуществляются по «типовой» схеме трансформационного конструированияэффективной программы (трансформационного синтеза) [15, 16]. Схемапредполагает последовательное выполнение следующих шагов.1. Применение оптимизирующих преобразований, позволяющих приводитьпрограмму в рамках исходной модели вычислений к ориентированномуна применение конструирующих преобразований виду.2. Применение конструирующих преобразований, переводящих программуиз исходной модели в результирующую.3. Применение оптимизирующих преобразований в рамках результирующеймодели.Расширение оптимизаций привело к следующим изменениям в их классификации[10].Поскольку параллельные машины обладают большим разнообразиемархитектур, наряду с разбиением, имеющим место для оптимизаций дляпоследовательных ЭВМ, произошло выделение в классе машиннозависимыхоптимизаций не только машинно-ориентированных, но и архитектурно-ориентированныхоптимизаций. Этот подкласс, как и машинноориентированныепреобразования, содержит оптимизации, в которых зависимостиот конкретной машины могут быть вынесены в набор параметров,что позволяет реализовать их не на уровне машинного языка конкретнойЭВМ. Фактически машинно-ориентированные оптимизации можно рассматриватькак архитектурно-ориентированные преобразования для классапоследовательных машин. Степень зависимости преобразований от конкретнойархитектуры может быть различной, например, можно различатьмелкозернистые оптимизации, которые ориентированы на архитектуры,эксплуатирующие мелкозернистый параллелизм, и VLIW-оптимизации,реализуемые в рамках языка абстрактной VLIW-машины [31].В рамках разделения оптимизаций по способу реализации (смешаннаястратегия, оптимизирующие преобразования) произошли следующие изме-1 Здесь мы используем классификацию оптимизаций, предложенную В.Н. Касьяновым; онаявляется обобщением предложенной им классификации оптимизаций для последовательныхкомпьютеров [15] и подробно описана в [9].


144 Программные средства и математические основы информатикинения. Смешанная стратегия стала частью подкласса конструирующих преобразований,который наряду с преобразованиями для последовательныхпрограмм, такими как, например, заменяющие рекурсию на цикл, включаеттак называемые распараллеливающие преобразования, связанные с построениемпараллельной программы по последовательной: векторизующиепреобразования [3]; преобразования компактификации или упаковки [1, 20,31] и т. п. Что касается класса оптимизирующих преобразований, то онрасширился за счет оптимизаций параллельных программ и так называемыхреструктурирующих преобразований, которые ориентированы на приведениепреобразуемой программы к виду, более подходящему для выполненияконструирующих преобразований. Следует отметить, что последнее разделениене является абсолютным: одно и то же преобразование в одномтрансляторе (в рамках одной системы преобразований) может быть оптимизирующим,а в другом — реструктурирующим.Основная задача распараллеливающего компилятора — извлечь какможно больше скрытого параллеллизма из участков повторяемости последовательнойпрограммы, определяющих основное время ее выполнения:циклов и рекурсивных процедур. Это требует изменения порядка исполненияоператоров в участках повторяемости последовательной программы,которые до выполнения алгоритмов распараллеливания, в случае отсутствиярекурсивных процедур, можно привести к виду гнезд DO-циклов (см.,например, [5]). Поэтому гнездо DO-циклов берется в качестве модели программыдля рассматриваемых в статье алгоритмов распараллеливания. Условиявозможности проведения тех или иных преобразований выражаютсяв виде так называемых программных зависимостей. Зависимость в общемсмысле есть отношение между двумя вычислениями, которое налагает ограниченияна порядок их исполнения. Статический анализ зависимостейидентифицирует эти ограничения и дает информацию для проведения реструктурирующихпреобразований во время трансляции.Алгоритмы распараллеливания циклов — это весьма важный класс реструктурирующихпреобразований. Они особенно привлекательны тем, чтоих применение не требует знания целевой архитектуры. Эти алгоритмыможно рассматривать как завершающую стадию машинно-независимойчасти процесса генерации параллельного кода распараллеливающим компилятором.Распараллеливание циклов позволяет обнаружить параллелизм(преобразуя циклы DO в циклы DOALL) и выявить те зависимости, которыеответственны за изначально «последовательное» состояние некоторых операцийисходной программы.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 145Разумеется, следующая стадия генерации кода, связанная с выполнениемконструирующих преобразований и преобразований параллельных программ,должна будет принимать во внимание параметры целевой архитектуры.Нахождение подходящего уровня зернистости является ключом квысокой производительности. Кроме того, необходимо рассматривать такиеважные аспекты, как распределение данных и оптимизацию коммуникаций.Все эти проблемы весьма важны, но в данной работе не будут рассматриваться.Данная работа посвящена изучению различных алгоритмов обнаруженияпараллелизма (в гнездах циклов), основанных на:1) простой декомпозиции графа зависимостей на сильно связные компоненты(такие как алгоритм Аллена и Кеннеди [24]);2) унимодулярных преобразованиях цикла — либо специальных преобразованиях(алгоритм Банержи [27]), либо автоматически генерируемых(алгоритм Вольфа и Лэма [60]);3) планировании — либо одномерном [37, 39, 46] (особый случай — методгиперплоскостей [55]), либо многомерном [42, 47].Существующие алгоритмы распараллеливания циклов различаются помногим направлениям. Во-первых, они используют различные математическиеинструменты: графовые алгоритмы в случае (1), матричные вычисленияв (2), линейное программирование в (3). Во-вторых, они принимают навходе различные описания зависимостей по данным: графовое описание иуровни зависимостей в (1), векторы направления в (2), описание зависимостейв виде многогранников или аффинных выражений в (3). Для каждогоиз этих алгоритмов мы определим основные понятия, лежащие в их основе,и обсудим их сильные и слабые стороны как на примерах, так и в сравнении«оптимальных» результатов.Нас будет интересовать характеристика того, какой алгоритм наилучшимобразом подходит для того или иного заданного представления зависимостей.Понятно, что нет необходимости использовать усложненный алгоритманализа зависимостей, если алгоритм распараллеливания не сможетвоспользоваться точностью его результата. И наоборот, нет смысла в использованииточнейшего алгоритма распараллеливания, если представлениезависимостей не будет достаточно точным.Оставшаяся часть работы организована следующим образом. Разд. 2 посвященкраткому обзору предмета рассмотрения, а именно — алгоритмовраспараллеливания циклов. В разд. 3 мы рассмотрим основные абстракциизависимостей: уровни зависимостей, векторы направлений, многогранникизависимостей. Алгоритм Аллена—Кеннеди [24] приведен в разд. 4, алго-


146 Программные средства и математические основы информатикиритм Вольфа—Лэма [60] — в разд. 5. Показано, что оба алгоритма являются«оптимальными» в классе алгоритмов распараллеливания, использующихту же самую абстрактную конструкцию в качестве входного представления,а именно — уровни зависимостей у Аллена и Кеннеди и векторынаправлений у Вольфа и Лэма. В разделе 6 мы представим алгоритм Дартье—Вивьена[36], охватывающий оба предыдущих. Он основан на обобщениивекторов направления — многогранниках зависимостей. В разд. 7мы приведем краткий обзор алгоритма Фотрие [46, 47], основанного наточных аффинных зависимостях. Наконец, в разд. 8 будут высказаны некоторыезаключения.2. ВХОД И ВЫХОД РАСПАРАЛЛЕЛИВАЮЩИХ АЛГОРИТМОВВложенные DO-циклы в состоянии описывать объем вычислений, размеркоторого значительно превосходит размер соответствующей программы.Например, рассмотрим n вложенных циклов, счетчики которых описываютn-мерный куб с ребром N: эти циклы вмещают в себя объем вычисленийразмером N n . Часто случается, что такие гнезда циклов содержат ненулевуюстепень параллелизма, т. е. множество независимых вычисленийразмером Ω(N r ) для r ≤ 1.Это делает задачу распараллеливания вложенных циклов очень труднойи интересной: распараллеливающий компилятор должен уметь определятьпо возможности ненулевую степень параллелизма за время, непропорциональноепо сравнению с последовательным исполнением цикла. Чтобы такоестало возможным, эффективные алгоритмы распараллеливания должныиметь сложность, входной размер и выходной размер, зависящие только отn, но ни в коем случае не от N, т. е. зависящие от размера последовательногокода, а не от количества описываемых им вычислений.Входом распараллеливающего алгоритма является описание зависимостей,которые связывают отдельные вычисления. Выходом является описаниеэквивалентного кода с явным параллелизмом.2.1. Вход: граф зависимостейКаждый оператор гнезда циклов окружен несколькими циклами. Каждаяитерация этих циклов определяет конкретное исполнение оператора, называемоеоперацией. Зависимости между операциями представлены ориенти-


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 147рованным ациклическим графом 2 — расширенным графом зависимостей(РГЗ). Количество вершин РГЗ равно количеству операций в гнезде циклов.Исполнение операций гнезда циклов в соответствии с определяемым РГЗчастичным порядком гарантирует сохранение корректности результата вычисления.Распознавание параллелизма в гнезде циклов сводится к нахождениюцепей антизависимостей в РГЗ. Понятие «расширенного графа зависимостей»иллюстрирует пример 1. Соответствующий РГЗ изображен нарис. 1.Пример 1.DO i=1,nDO j=1,na(i,j)=a(i-1,j-1)+a(i,j-1)ENDDOENDDOРис. 1. РГЗ фрагмента примера 12 Здесь и далее мы используем стандартную терминологию теории графов (см., например,[13]).


148 Программные средства и математические основы информатикиК сожалению, РГЗ не может быть использован в качестве входногопредставления для распараллеливающих алгоритмов, так как обычно онслишком велик и не может быть точно описан во время компиляции. Вместонего используется так называемый сокращенный граф зависимостей(СГЗ) — сжатое и приближенное представление РГЗ. Это приближениедолжно быть надмножеством РГЗ, чтобы сохранить отношения зависимости.В СГЗ имеется одна вершина для каждого оператора гнезда циклов, егодуги помечены в соответствии с выбранным приближением зависимостей(см. более подробное изложение в разделе 3). На рис. 2 представлены двавозможных СГЗ для программы из примера 1, соответствующих двум различнымприближениям зависимостей.Поскольку входом является СГЗ, а не РГЗ, распараллеливающий алгоритмне способен отличить два различных РГЗ, имеющих один СГЗ. Следовательно,удастся распознать только параллелизм, содержащийся в СГЗ.Таким образом, качество распараллеливающего алгоритма должно оцениватьсяотносительно анализа зависимостей.Например, программы из примеров 1 и 2 имеют один и тот же СГЗ суровнями зависимостей (рис. 2(а)). Таким образом, распараллеливающийалгоритм, принимающий на входе СГЗ с уровнями зависимостей, не в состоянииразличить две программы. Однако программа из примера 1 содержитодин уровень параллелизма, тогда как программа из примера 2 являетсясущественно последовательной.Пример 2.DO i = 1, nDO j = 1, na(i, j) = 1 + a(i-1, n) + a(i, j-1)ENDDOENDDOaРис. 2. Сокращенный граф зависимостей: (а) с уровнями зависимостей;(б) с векторами направленийб


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 1492.2. Выход: вложенные циклыРазмер распараллеленного кода, как упоминалось ранее, не должен зависетьот количества описываемых им операций. В этом причина того, чторезультат работы распараллеливающего алгоритма всегда должен описыватьсямножеством циклов 3 .Имеются по крайней мере три способа определить новый порядок наоперациях заданного гнезда циклов (то есть три способа определить выходраспараллеливающего алгоритма) в терминах вложенных циклов.1. Использование элементарных преобразований циклов в качестве базовыхшагов алгоритма, таких как распределение цикла (в алгоритмеАллена и Кеннеди), перестановка или перекос циклов (как в алгоритмеБанержи).2. Линейное изменение базы области итераций, то есть применениеунимодулярного преобразования на векторах итераций (как в алгоритмеВольфа и Лэма).3. Определение d-мерного плана, т. е. применение аффинного преобразованияиз Ζ n в Ζ d и интерпретация преобразования как многомернойвременной функции. Каждая компонента соответствует последовательномуциклу, а недостающие (n – d) размерностей соответствуютциклам DOALL (как в алгоритмах Фотрие и Дарте—Вивьен).Результат работы этих трех схем преобразований, разумеется, можетбыть описан в терминах гнезд циклов после более или менее сложного процессапереписывания (см. [32, 35, 39, 60, 65]). Здесь мы не будем говорить опереписывании. Вместо этого мы сосредоточимся на связи между представлениемзависимостей (входом) и преобразованиями циклов, используемымираспараллеливающим алгоритмом (выходом). Нашей целью является формулировкатого, какой алгоритм окажется оптимальным для заданногопредставления зависимостей. «Оптимальный» означает здесь, что алгоритмв состоянии выявить максимальное количество параллельных циклов.3 Эти циклы могут быть произвольно сложными, при условии, что их сложностьзависит только от размера исходного кода. Очевидно, что чем проще результат, темлучше. Но в этом контексте значение слова «проще» не совсем тривиально, посколькувсе зависит от оптимизаций, которые могут последовать далее. Обычнополагается, что структурная простота предпочтительна.


150 Программные средства и математические основы информатики3. АБСТРАКЦИИ ЗАВИСИМОСТЕЙДля ясности мы ограничим изложение случаем совершенного гнездаDO-циклов с аффинными границами. Это ограничение позволяет описатьитерации n вложенных циклов (n называется глубиной гнезда циклов) с векторамииз Ζ n (называемыми векторами итераций), содержащимися в конечномвыпуклом многограннике (называемом областью итераций), ограниченномграницами циклов. i-я компонента вектора итерации являетсязначением счетчика i-го цикла в гнезде, считая от самого внешнего к самомувнутреннему. Таким образом, в последовательной программе итерацииисполняются в лексикографическом порядке их векторов итераций.Введем следующие обозначения:D — область итераций в виде многогранника; I и J — n-мерные векторыитераций в D; S i — i-й оператор в гнезде циклов, где 1 ≤ i ≤ s. Мы будемписать I > l J, если I лексикографически больше J, и I ≥ l J, если I > l J илиI = J.В разд. 3.1 описываются различные концепции графов зависимостей,неформально введенные в разд. 2.1: расширенные графы зависимостей(РГЗ), сокращенные графы зависимостей (СГЗ), графы истинных зависимостей(ГИЗ), а также понятие множеств расстояний. В разд. 3.2 мы формальноопределим понятие многогранного сокращенного графа зависимостей(МСГЗ), то есть сокращенного графа зависимостей, дуги которого помеченымногогранниками. Наконец в разд. 3.3 мы покажем, как модель МСГЗобобщает классические абстракции множеств расстояний, такие как уровнизависимостей и векторы направления.3.1. Графы зависимостей и множества расстоянийОтношения зависимостей между операциями определяются условиямиБернштейна [30]. Вкратце, две операции связаны зависимостью, если обеони обращаются к одной и той же области памяти и по меньшей мере одноиз обращений производит запись в эту область. Зависимость имеет направлениев соответствии с последовательным порядком, от первой исполненнойоперации к последней. В зависимости от порядка операций записии/или чтения, зависимость называется потоковой зависимостью, антизависимостьюили выходной зависимостью. Мы будем писать S i (I) ⇒ S j (I), еслиоператор S j на итерации J зависит от оператора S i на итерации I. Частичныйпорядок, определяемый отношением ⇒, описывает расширенный граф за-


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 151висимостей (РГЗ). Заметим, что (J - I) всегда является лексикографическиненулевым, когда S i (I) ⇒ S j (J).В общем случае РГЗ не может быть вычислен во время компиляции, либов силу недостатка информации (такой как значения параметров границцикла или даже точное число обращений к памяти), либо из-за того, чтогенерация полного графа обходится слишком дорого (см. в [61, 66] обзоралгоритмов проверки зависимостей, таких как проверка наибольших общихделителей [24, 28], тест Банержи [27–29], ω-тест [58], λ-тест [56], I-тест [48];в [45] — более детальное изложение точного анализа зависимостей). Вместоэтого рассматривается представление зависимостей в виде меньшего поразмеру ориентированного графа с циклами, имеющего s вершин (по количествуоператоров), который называется сокращенным графом зависимостей(СГЗ) (или графом зависимостей на уровне операторов).СГЗ представляет собой сжатие РГЗ. В СГЗ два оператора S i и S j являютсязависимыми (мы будем обозначать это как e: S i → S j ), если существуетпо меньшей мере одна пара (I, J) такая, что S i (I) ⇒ S j (J). Дуга 4 e от S i к S j вСГЗ помечена множеством {(I, J) ∈ D 2 | S i (I) ⇒ S j (J)} или аппроксимациейD e , содержащей это множество. Точность этой аппроксимации и ее представлениеи составляют силу алгоритма анализа зависимостей.Другими словами, СГЗ описывает в сокращенной форме граф зависимостейна уровне итераций, называемый (максимальным) графом истинныхзависимостей (ГИЗ), представляющий собой подмножество РГЗ. ГИЗ и РГЗимеют одни и те же вершины, но ГИЗ имеет большее количество дуг, определяемыхследующим образом:(S i ,I) ⇒ (S j ,J) (в ГИЗ) ⇔∃ e = (S i , S j ) (в РГЗ), такая, что (I, J) ∈ D e .Для определенного класса вложенных циклов существует возможностьвыразить в точности это множество пар (I, J) (см. [45]): I задается как аффиннаяфункция (в некоторых конкретных случаях, включающих функциинахождения ближайшего целого снизу или сверху) f i,j от J, где J изменяетсяв пределах многогранника P i,j :{(I, J) ∈ D 2 | S i (I) ⇒ S j (J)} = {(f i,j (J),J) | J ∈ P i,j ⊂ D}. (1)4 Такая дуга существует для каждой пары обращений к памяти, вызывающих зависимостьмежду S i и S j .


152 Программные средства и математические основы информатикиОднако большинство алгоритмов анализа зависимостей вместо множествапар (I, J) вычисляет множество E i,j всех возможных значений (J - I). E i,jназывается множеством векторов расстояния, или множеством расстояний:E i,j = {(J – I) | S i (I) ⇒ S j (J)}.В случаях, когда возможно провести точный анализ зависимостей, равенство1 показывает, что множество векторов расстояния является проекциейцелочисленных точек многогранника. Это множество может быть аппроксимированоего выпуклой оболочкой или более или менее точныммногогранником большего размера (или конечным объединением многогранников).Когда множество векторов расстояния представлено конечнымобъединением многогранников, соответствующая дуга зависимостей в СГЗразлагается на кратные дуги.Заметим, что представление с помощью векторов расстояния не эквивалентнопредставлению с помощью пар (как в равенстве 1), поскольку теряетсяинформация о расположении в РГЗ этого вектора. Это может вызватьдаже некоторое уменьшение количества параллелизма, как будет показано впримере 9. Однако такое представление все же остается полезным, особеннов случаях, когда точный анализ зависимостей слишком накладен иливообще неосуществим.Классическими представлениями множеств расстояний (в порядкеуменьшения точности) являются:−уровни зависимостей, введенные и использованные в распараллеливающемалгоритме Аллена и Кеннеди [24, 25];− векторы направления, введенные Лампортом [55] и Вольфом [62,63], а затем использованные в распараллеливающем алгоритмеВольфа и Лэма [60];−многогранники зависимостей, введенные в работе [50] и использованныев алгоритме с разделением супервершин Иригойна и Триоле[51]. Более подробное описание многогранников зависимостей можнонайти в работах по проекту PIPS [49].Теперь мы дадим формальное определение сокращенных графов зависимостей,дуги которых помечены многогранниками зависимостей. Затеммы покажем, что это представление объединяет два других представления, аименно — уровни зависимостей и векторы направления.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 1533.2. Многогранные сокращенные графы зависимостейВспомним математическое определение многогранника и то, как можнопровести его декомпозицию на вершины, лучи и линии.Множество P векторов в пространстве Q n называется (выпуклым) многогранником,если существуют целочисленная матрица A и целочисленныйвектор b такие, чтоP = {x | x ∈ Q n , Ax ≤ b}.Политопом называется ограниченный многогранник.Справедливы следующие свойства. Любой многогранник может бытьразложен на сумму политопа и многогранного конуса. Политоп определяетсяего вершинами, и каждая точка политопа является неотрицательной барицентрическойкомбинацией вершин политопа. Многогранный конус можетбыть определен с помощью его лучей и линий. Любая точка многогранногоконуса есть сумма неотрицательной комбинации его лучей и произвольнойкомбинации его линий.Таким образом, многогранник зависимостей P может быть эквивалентноопределен с помощью множества вершин (обозначаемых {v 1 , ..., v ω }), множествалучей (обозначаемых {r 1 , ..., r ρ }) и множества линий (обозначаемых{l 1 , ..., l λ }). Тогда P есть множество всех векторов p таких, чтогде µ i∈ Q+ , ν i∈ Q+ , ξi ∈Qиwp = µ υ + υ r + ξlρi i i i i ii= 1 i= 1 i=1λ∑ ∑ ∑ , (2)w∑i=1µ = 1.iТеперь мы определим то, что называется многогранным сокращеннымграфом зависимостей (или МСГЗ), а именно — сокращенный граф зависимостей,помеченный многогранником зависимостей. На самом деле намнужны только целочисленные векторы, принадлежащие к многогранникузависимостей, поскольку расстояния зависимостей в сущности являютсяцелочисленными векторами.Многогранный сокращенный граф зависимостей (МСГЗ) есть СГЗ, в которомкаждая дуга e: S i → S j помечена многогранником P(e), аппроксимирующиммножество векторов расстояний: ассоциированный истинный графзависимостей содержит дугу из экземпляра I вершины S i к экземпляру Jвершины S j в том и только том случае, когда (J – I) ∈ P(e).В разд. 6 это представление зависимостей рассматривается более подробно;пока будем воспринимать многогранник зависимостей как некотороеобобщение векторов направления.


154 Программные средства и математические основы информатики3.3. Векторы направленийКогда множество векторов расстояния содержит только один элемент,зависимость называется униформной, и единственный вектор расстоянияназывается униформным вектором зависимости.В противном случае множество векторов расстояния может быть представленоn-мерным вектором (вектором направления), компоненты которогопринадлежат к Z ∪ {∗} ∪ (Z × {+, -}). Его i-я компонента представляетсобой аппроксимацию i-х компонент всех возможных векторов расстояния:она равна z+ (соответственно z-), если i-я компонента больше (соответственноменьше) или равна z. Она равна *, если i-я компонента может приниматьлюбое значение, и z, если зависимость является униформной по этойразмерности с единственным значением z. Обычно + (соответственно -) используетсякак сокращение для 1+ (соответственно для (-1)-).Мы обозначаем как e i i-й канонический вектор, то есть n-мерный вектор,все компоненты которого являются нулевыми, за исключением i-й компоненты,равной 1. Тогда вектор направления — не что иное, как аппроксимациямногогранником, имеющим одну вершину, все лучи и линии которого,если они имеются, суть канонические векторы.Действительно, рассмотрим дугу e, помеченную вектором направленияd, и обозначим через I + , I - и I * множества компонент d, которые равны z+(для некоторого целого z), z- и ∗, соответственно. Наконец, обозначим черезd z n-мерный вектор, чья i-я компонента равна z, если i-я компонента d равнаz, z+ или z-, и равна 0 в противном случае.Теперь, в силу определения символов +, - и ∗, вектор направления dпредставляет в точности все n-мерные векторы p, для которых существуюттакие целые (v, v′, ξ) в N |I+| x N |I-| x Z |I*| , что∑ ∑ ∑ . (3)p= d + ve − ve + ξ e'z i i i i i i+i∈I −i∈I *i∈IДругими словами, вектор направления d представляет все целые точки,которые принадлежат многограннику, определяемому единственной вершинойd z , лучами e i для i ∈ I + , лучами –e i для i ∈ I - и линиями e i для i ∈ I * .Например: вектор направления (2+, ∗, -, 3) определяет многогранник содной вершиной (2, 0, -1, 3), двумя лучами (1, 0, 0, 0) и (0, 0, -1, 0) и однойлинией (0, 1, 0, 0).


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 1553.4. Уровни зависимостейПредставление с помощью уровня является менее точной абстракциейзависимостей. В гнезде из n вложенных циклов множество векторов расстоянияаппроксимируется целым числом l из интервала [1, n] ∪ {∞}, котороеопределяется как наибольшее целое, такое, что первые l – 1 компонентвекторов расстояний оказываются нулевыми.Зависимость на уровне l ≤ n означает, что зависимость обнаруживаетсяна уровне l гнезда циклов, т. е. на заданной итерации l – 1 внешних циклов.В этом случае говорят, что зависимость является циклически порождаемойзависимостью на уровне l. Если l = ∞, то зависимость происходит внутритела цикла, между двумя различными операторами, и называется циклическинезависимой зависимостью. Сокращенный граф зависимостей, дугикоторого помечены уровнями зависимостей, называется сокращеннымуровневым графом зависимостей (СУГЗ).Рассмотрим дугу e уровня l. Согласно определению уровня, первой ненулевойкомпонентой вектора расстояния является l-я компонента, и теоретическиона может принимать любое положительное целое значение. Обоставшихся компонентах у нас нет никакой информации. Следовательно,дуга уровня l < ∞ эквивалентна вектору направления (0, … , 0, 1+, ∗, … ,∗),начинающемуся с (l-1) нулевой компоненты, а дуга уровня ∞ соответствуетнулевому вектору зависимости. Подобно тому как любой вектор направлениядопускает построение эквивалентного многогранника, то же можнопроделать и с представлением с помощью уровня. Например, зависимостьуровня 2 в трехмерном гнезде циклов дает вектор направления (0, 1+, ∗),который соответствует многограннику с одной вершиной (0, 1, 0), однимлучом (0, 1, 0) и одной линией (0, 0, 1).4. АЛГОРИТМ АЛЛЕНА—КЕННЕДИАлгоритм Аллена—Кеннеди [24] был первоначально разработан длявекторизации циклов. Затем он был расширен с тем, чтобы максимизироватьколичество параллельных циклов и минимизировать количество синхронизацийв преобразованном коде. Алгоритм принимает на входе сокращенныйуровневый граф зависимостей.Алгоритм базируется на следующих фактах.1. Цикл является параллельным, если он не содержит циклически порождаемыхзависимостей, т.е. если не существует зависимости, уро-


156 Программные средства и математические основы информатикивень которой равен глубине цикла, которая относится к оператору,окруженному циклом.2. Все итерации оператора S 1 могут быть осуществлены перед любойитерацией оператора S 2 , если в СУГЗ не существует зависимости изS 2 в S 1 .Свойство (1) позволяет пометить цикл как DOALL или DOSEQ, тогдакак свойство (2) указывает на то, что нахождение параллелизма может бытьпроведено независимо в каждой сильно связной компоненте СУГЗ. Извлечениепараллелизма производится посредством разделения циклов.4.1. АлгоритмДля графа зависимостей G через G(k) обозначается такой его подграф,который получается из G удалением всех зависимостей на уровнях, строгоменьших k. Ниже приведен набросок алгоритма Аллена—Кеннеди в егобазовой формулировке. Работа алгоритма начинается с вызова ALLEN-KENNEDY(СУГЗ, 1).проц ALLEN-KENNEDY(G: граф, k: целое)=если k≤n тоПроизвести декомпозицию G(k) на сильно связные компонентыG i и топологически отсортировать их;Переписать код таким образом, чтобы каждая G i принадлежаласвоему гнезду циклов (на уровне k) и сохранялся порядок на G i(распределение циклов на уровне больше или равном k);для всех G i циклесли G i не имеет дуг на уровне k топометить цикл на уровне k как цикл DOALLиначе пометить его как цикл DOSEQвсевсе;для всех G i цикл ALLEN-KENNEDY(G i , k+1) всевсевсе.Проиллюстрируем работу алгоритма на следующем фрагменте кода:


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 157Пример 3.DO i = 1, nDO j = 1, nDO k = 1, nS1: a(i, j, k) = a(i-1, j+i, k) + a(i, j, k-1) + b(i, j-1, k)S2: b(i, j, k) = b(i, j-1, k+j) + a(i-1, j, k)ENDDOENDDOENDDOГраф зависимостей G = G(1) для данного гнезда циклов приведен нарис. 3. Он имеет только одну сильно связную компоненту и по меньшеймере одну дугу на уровне 1, в силу чего первый вызов процедуры обнаружит,что самый внешний цикл является последовательным. Тем не менее, науровне 2 (дуга на уровне 1 более не рассматривается) G(2) имеет две сильносвязных компоненты: все итерации оператора S 2 могут быть вынесены передитерациями оператора S 1 .Рис. 3. СУГЗ для программы примера 3Проведем разделение цикла. Сильно связная компонента, включающаяS 1 , не содержит дуг на уровне 2 и содержит одну дугу на уровне 3. Такимобразом, второй цикл, окружающий S 1 , помечается как DOSEQ, а третий —как DOALL. Сильно связная компонента, включающая S 2 , содержит однудугу на уровне 2 и не содержит дуг на уровне 3. Следовательно, второйцикл, окружающий S 2 , помечается как DOALL, а третий — как DOSEQ. Витоге мы получаем:


158 Программные средства и математические основы информатикиDOSEQ i = 1, nDOSEQ j = 1, nDOALL k = 1, nS2: b(i, j, k) = b(i, j-1, k+j) + a(i-1, j, k)ENDDOENDDODOALL j = 1, nDOSEQ k = 1, nS1: a(i, j, k) = a(i-1, j+i, k) + a(i, j, k-1) + b(i, j-1, k)ENDDOENDDOENDDO4.2. Сильные и слабые стороны алгоритмаВ работе [32] было показано, что для каждого оператора исходного кодаалгоритм Аллена—Кеннеди обнаруживает столько объемлющих параллельныхциклов, сколько вообще возможно. Более точно, рассмотрим операторS исходного кода, и пусть L i — один из объемлющих циклов. Тогда L iбудет помечен как параллельный только в том случае, когда не существуетзависимости на уровне i между двумя экземплярами S. Однако этот результатпоказывает только то, что алгоритм Аллена—Кеннеди является оптимальнымсреди тех распараллеливающих алгоритмов, которые рассматриваютв преобразованном коде экземпляры S в точно тех же циклах, что и висходном коде. В действительности можно доказать намного более сильноеследующее утверждение [42].Теорема 1. Алгоритм Аллена—Кеннеди является оптимальным средивсех алгоритмов нахождения параллелизма, которые принимают СУГЗ вкачестве входа.В работе [43] доказано, что для любого гнезда циклов N 1 существуетгнездо циклов N 2 , имеющее тот же СУГЗ, такое, что для любого оператора Sиз N 1 , окруженного после распараллеливания d S последовательными циклами,в точном графе зависимостей N 2 существует путь зависимости, которыйdSвключает Ω( N ) экземпляров оператора S. Другими словами, алгоритмАллена—Кеннеди не различает гнезд N 1 и N 2 , которые имеют один и тот жеСУГЗ, и распараллеливающий алгоритм является оптимальным в сильномсмысле на гнезде N 2 , так как на каждом операторе он достигает верхней


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 159границы параллелизма, определенного самыми длинными путями зависимостейв расширенном графе зависимостей.Таким образом, доказано, что в случаях, когда вся доступная информация— это та, которая содержится в СУГЗ, не представляется возможнымобнаружить больше параллелизма, чем находится алгоритмом Аллена—Кеннеди. Другими словами, алгоритм Аллена—Кеннеди хорошо адаптированк представлению зависимостей в виде уровней. Следовательно, чтобыобнаружить большее количество параллелизма, чем этот алгоритм, требуетсяиметь больше информации о зависимостях. Классическими примерамитого, как можно превзойти алгоритм Аллена—Кеннеди, являются гнездоциклов примера 4, в котором параллелизм выявляется простой перестановкойциклов (рис. 4), и гнездо циклов примера 5, в котором для выявленияпараллелизма достаточно осуществить преобразования перекоса и перестановки(рис. 5).Пример 4.DO i=1,nDO j=1,na(i,j)=a(i-1,j-1)+a(i,j-1)ENDDOENDDOПример 5.DO i=1,nDO j=1,na(i,j)=a(i-1,j)+a(i,j-1)ENDDOENDDOРис. 4. СГЗ программы примера 4


160 Программные средства и математические основы информатикиРис. 5. СГЗ программа примера 55. АЛГОРИТМ ВОЛЬФА—ЛЭМАФрагменты программ примеров 4 и 5 содержат параллелизм, который неможет быть обнаружен с помощью алгоритма Аллена—Кеннеди. Следовательно,как показывает теорема 1, этот параллелизм не может быть извлечен,если зависимости представлены в виде уровней. Чтобы обойти это ограничение,Вольф и Лэм [60] предложили алгоритм, использующий в качествевхода векторы направления. Их работа объединяет все предыдущиеалгоритмы, основанные на операциях с элементарными матрицами, такиекак перекос цикла, перестановка циклов, обращение цикла, в единую структуру:структуру допустимых унимодулярных преобразований.5.1. ЦельЦель, которую преследовали Вольф и Лэм, состояла в построении множествполностью переставляемых гнезд циклов. Полностью переставляемыегнезда являются основой для всех техник мозаичного размещения [51,59, 60]. Мозаичное размещение используется для выявления среднезернистогои крупнозернистого параллелизма. Более того, множество d полностьюпереставляемых циклов может быть переписано в виде одного последовательногоцикла и d-1 параллельных циклов. Следовательно, этот методтакже может быть использован для выявления мелкозернистого параллелизма.Алгоритм Вольфа—Лэма строит максимальное множество самых внешнихполностью переставляемых 5 циклов. Затем он рекурсивно просматриваетоставшиеся размерности и зависимости, не задействованные этими цик-5i-й и i+1-й циклы являются переставляемыми в том и только том случае, когдаi-я и i+1-я компоненты любого вектора расстояния глубины ≥ i неотрицательны.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 161лами. Версия, представленная в [60], строит множество циклов с помощьюанализа более простых случаев, полагаясь на эвристики для гнезд циклов сглубиной 6 и более. В оставшейся части данного раздела мы рассмотримэтот алгоритм с теоретической точки зрения и дадим его наиболее общийвариант.5.2. Теоретическое обоснованиеУнимодулярные преобразования обладают двумя важными свойствами:линейностью и обратимостью. Для данного унимодулярного преобразованияT свойство линейности позволяет с легкостью определить, является лиT допустимым. Действительно, T является допустимым в том и только томслучае, когда Td > l 0 для всех ненулевых векторов расстояния d. Обратимостьпозволяет легко переписывать код, так как преобразование представляетсобой простое изменение базиса в Z n .В общем случае справедливость выражения Td > l 0 не может быть проверенадля всех векторов расстояния, число которых может быть слишкомбольшим. Следовательно, нужно попытаться гарантировать, что Td > l 0 длявсех ненулевых векторов направления, с обычными математическими соглашениями,в Z ∪ {∗} ∪ (Z × {+, -}). В дальнейшем мы ограничимся рассмотрениемтолько ненулевых векторов направления, известных как лексикографическиположительные векторы направлений.Обозначим через t(1), ..., t(n) строки T. Пусть Г — замыкание конуса,порождаемого всеми векторами направления. Для вектора направления d:Td > l 0 ⇔ ∃k d , 1 ≤ k d ≤ n | ∀i, 1 ≤ i ≤ k d , t(i).d = 0 и t(k d ).d >0.Это означает, что зависимости, представленные вектором d, порождаютсяв цикле уровня k d . Если k d = 1 для всех векторов расстояния d, тогда всезависимости порождаются в первом цикле, а все внутренние циклы являютсяциклами DOALL. Тогда t(1) называется вектором синхронизации илиразделяющей гиперплоскостью. Такой вектор синхронизации существуеттолько в том случае, когда Г является направленным, т. е. тогда и толькотогда, когда Г не содержит линейного пространства. Это также эквивалентнотому факту, что конусГ + = {y | ∀x ∈ Г, y.x ≤ 0}


162 Программные средства и математические основы информатикиявляется полномерным. Построение T по n линейно независимым векторамиз Г + позволяет преобразовывать циклы в n полностью переставляемыхциклов.Понятие вектора синхронизации лежит в основе метода гиперплоскостейи его вариаций (см., например, [37, 55]), особенно полезных при выявлениимелкозернистого параллелизма, тогда как понятие полностью переставляемыхциклов является базисом всех техник мозаичного размещения. Как былосказано ранее, обе формулировки эквивалентны для случая Г + .Когда конус Г не является направленным, Г + имеет размерность r, 1 ≤ r ≤n, r = n - s, где s — размерность пространства линейности Г. При наличии rлинейно независимых векторов в Г + , можно преобразовать гнездо цикловтаким образом, что r самых внешних циклов будут полностью переставляемыми.Затем можно рекурсивно применять ту же технику для преобразованияn-r внутренних циклов, рассматривая векторы направления, не задействованныееще ни одним из r внешних циклов, т. е. рассматривая векторынаправления, входящие в пространство линейности Г. Это основная идеяалгоритма Вольфа—Лэма [60], представленного ниже.5.3. Обобщенный алгоритмАлгоритм Вольфа—Лэма воспринимает на входе множество векторовнаправления D и последовательность линейно независимых векторов E(первоначально пустую), из которых он строит матрицу преобразования спомощью следующей процедуры:проц WOLF-LAM (D, E : множество векторов)=Определить Г как замыкание конуса, генерируемого векторами направленияиз D;Определить Г + = {y | ∀x ∈ Г, y.x ≤ 0}, и пусть r — размерность Г + ;Дополнить E до множества E' r линейно независимых векторов из Г +(по построению E ⊂ Г + );Пусть D' — подмножество D, определяемое по правилу: d ∈ D ⇔ ∀v∈ E', v.d = 0 (то есть D' = D ∩ E' ⊥ = D ∩ lin.space(Г));Вызвать WOLF-LAM(D', E')все.Поскольку процесс, описываемый данной процедурой, может дать витоге неунимодулярную матрицу, построение желаемой унимодулярной


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 163матрицы T может быть проведено выполнением следующей последовательностишагов.1. Взяв в качестве D множество векторов направления, а в качестве Eпустое множество ∅, вызвать WOLF-LAM(D, E).2. Построить невырожденную матрицу T 1 , первые строки которой являютсявекторами из построенного множества E (в том же порядке).Пусть T 2 = pT 1 -1 , где p выбирается таким образом, что T 2 будет целочисленнойматрицей.3. Вычислить левую эрмитову форму T2, T2 = QH, где H — неотрицательнаянижняя треугольная матрица, а Q — унимодулярная матрица.4. Q -1 есть искомая матрица преобразования (поскольку pQ -1 D =HT 1 D).Проиллюстрируем работу описанного алгоритма на следующем гнездециклов.Пример 6.DO i = 1, nDO j = 1, nDO k = 1, na(i, j, k) = a(i-1, j+i, k) + a(i, j, k-1) + a(i, j-1, k+1)ENDDOENDDOENDDOМножество векторов расстояния для данного гнезда равно D = {(1, −, 0),(0, 0, 1), (0, 1, -1)} (см. рис. 6).


164 Программные средства и математические основы информатикиРис. 6. СГЗ программы примера 6Нетрудно видеть, что для примера 6 пространство линейности Г(D) являетсядвумерным (оно порождается векторами (0, 1, 0) и (0, 0, 1)). Следовательно,Г + (D) является одномерным и порождается E 1 = {(1, 0, 0)}. ТогдаD' = {(0, 0, 1), (0, 1, –1)}, и Г(D') является направленным. E 1 пополняетсядвумя векторами из Г + (D'), например, E 2 = {(0, 1, 0}, (0, 1, 1)}. В данномконкретном случае матрица преобразования, имеющая строки E 1 и E 2 , ужеявляется унимодулярной и соответствует простому перекосу цикла. Длявыявления DOALL-циклов мы выбираем первый вектор E 2 в относительновнутренней части Г + , например, E 2 = {(0,2,1), (0,1,0)}. В терминах преобразованийциклов это сводится к перекосу цикла k со множителем 2 и последующейперестановке циклов j и k:DOSEQ i = 1, nDOSEQ k = 3, 3×nDOALL j = max(1, ⎡(k-n)/2⎤), min (n, ⎣(k-1)/2⎦)a(i, j, k-2×j)=a(i-1, j+i, k-2×j)+a(i, j, k-2×j-1)+a(i, j-1, k-2×j+1)ENDDOENDDOENDDO5.4. Сильные и слабые стороны алгоритмаВольф и Лэм показали оптимальность этой методологии (теорема B.6 из[60]): «алгоритм, который обнаруживает максимальный крупнозернистыйпараллелизм, а затем рекурсивно вызывает себя на внутренних циклах, производитпараллелизм максимально возможной степени». Однако и в этомслучае оптимальность следует понимать в контексте используемого анализа:а именно — наличие векторов расстояния при полном отсутствии какой-


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 165либо информации о структуре графа зависимостей. Поэтому корректнойявляется следующая формулировка данного утверждения [36].Теорема 2. Алгоритм Вольфа—Лэма является оптимальным среди всехалгоритмов нахождения параллелизма, принимающих на входе множествовекторов расстояния (неявно предполагается, что гнездо циклов имееттолько один оператор или все операторы образуют атомарный блок).Таким образом, как и для алгоритма Аллена—Кеннеди, частичная оптимальностьалгоритма Вольфа—Лэма в общем случае имеет причиной неметодологию алгоритма, но слабость его входного представления: то, чтоструктура СГЗ не принимается во внимание, может повлечь потерю параллелизма.Например, в противоположность алгоритму Аллена—Кеннеди,алгоритм Вольфа—Лэма не находит параллелизма в примере 3 (СГЗ которогоприведен на рис. 7) из-за типичной структуры векторов направления(1, −, 0), (0, 1, −), (0, 0, 1).Рис. 7. СГЗ с векторами направлений для программы из примера 36. АЛГОРИТМ ДАРТЕ—ВИВЬЕНАВ этом разделе рассматривается третий распараллеливающий алгоритм,который принимает на входе многогранные сокращенные графы зависимостей.Вначале мы изложим некоторую мотивацию необходимости новогоалгоритма (разд. 6.1), а затем приведем пошаговое описание алгоритма иобсудим его работу на примерах.


166 Программные средства и математические основы информатики6.1. Потребность в новом алгоритмеРассмотренные два распараллеливающих алгоритма таковы, что каждыйиз них может дать на выходе чисто последовательный код для той же самойпрограммы, в которой другой алгоритм обнаружит некоторый параллелизм.Это побуждает к поискам нового алгоритма, объединяющего достоинстваалгоритмов Вольфа—Лэма и Аллена—Кеннеди. Чтобы достичь такой цели,можно представить себе комбинацию алгоритмов, которая одновременноиспользует структуру СГЗ и структуру векторов направления, осуществляяследующую последовательность шагов.1. Вначале он строит конус, генерируемый векторами направления, ипреобразует гнездо циклов таким образом, чтобы выявить максимальноевнешнее полностью переставляемое гнездо циклов.2. Затем рассматривает подграф СГЗ, образованный векторами направления,которые не включены в самые внешние циклы, и вычисляетего сильно связные компоненты.3. Наконец, применяет распределение цикла для разделения этих компоненти рекурсивно применяет эту же технику к каждой компоненте.Такая стратегия позволяет выявить большее количество параллелизма,комбинируя унимодулярные преобразования и распределение циклов. Однакоона не является оптимальной, что демонстрирует пример 7. Действительно,в программе этого примера вышеописанное сочетание алгоритмовАллена—Кеннеди и Вольфа—Лэма позволяет определить только одну ступеньпараллелизма, так как на второй фазе СГЗ остается сильно связным.Результат не лучше, чем у базового алгоритма Аллена—Кеннеди. Однакоможно обнаружить две ступени параллелизма, назначив S 1 (i, j, k) на моментвремени 4i – 2k и S 2 (i, j, k) на момент времени 4i – 2k + 3.Пример 7.DO i = 1, nDO j = 1, nDO k = 1, nS 1 : a(i, j, k) = b(i-1, j+i, k) + b(i, j, k+2)S 2 : b(i, j, k) = a(i, j-i, k+j) + a(i, j, k-1)ENDDOENDDOENDDO


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 167Рис. 8. СГЗ программы примера 7Нам хотелось иметь простой распараллеливающий алгоритм, которыйбы находил некоторый параллелизм хотя бы во всех тех случаях, в которыхэто может сделать алгоритм Аллена—Кеннеди или алгоритм Вольфа—Лэма. Естественным решением было бы применить сначала алгоритм Аллена—Кеннеди,а затем алгоритм Вольфа—Лэма (или комбинацию обоих алгоритмов)и выдать наилучший результат. Но такой наивный подход не будетдостаточно мощным, поскольку он использует либо структуру графазависимостей, либо векторы направления, но не в состоянии воспользоватьсязнанием обоих структур одновременно. К примеру, предложенная комбинациядвух алгоритмов могла бы использовать структуру графа зависимостейдо или после вычисления максимального множества полностью переставляемыхциклов, но никогда — во время этого вычисления. Утверждается[36], что и графовая структура, и векторы направления должны бытьиспользованы одновременно — по той причине, что ключевым понятиемпри планировании СГЗ является не конус, генерируемый векторами направления(т. е. весами дуг СГЗ), а конус, генерируемый весами цикловСГЗ.Все вышеописанное является мотивацией создания многомерного планирующегоалгоритма, представленного ниже. Его можно рассматриватькак комбинацию унимодулярных преобразований, распределения цикла иметода сдвига индексов. Это алгоритм, объединяющий достоинства алгоритмовАллена—Кеннеди и Вольфа—Лэма, был предложен Дарте и Вивьеном[42]. Прежде чем переходить к его описанию, поясним выбор представлениязависимостей, используемый алгоритмом.


168 Программные средства и математические основы информатики6.2. Многогранные зависимости: примерВ данном разделе будет приведен пример гнезда циклов, содержащегопараллелизм, который не может быть обнаружен, если зависимости представленыв виде уровней или векторов направления. Вместе с тем, примертаков, что для нахождения параллелизма в этом гнезде циклов нет необходимостииспользовать точное представление зависимостей, а достаточноиметь представление зависимостей в виде многогранника.Рассмотрим пример 8. На рис. 9 представлены точные зависимости дляэтого фрагмента кода, а на рис. 10 изображены соответствующие (сокращенные)графы, дуги зависимостей которых помечены уровнями зависимостейи векторами направления, соответственно. Рассмотрим, что получаетсяв результате применения к данному гнезду циклов рассмотренных ранееалгоритмов.Пример 8.DO i = 1, nDO j = 1, nS : a(i, j) = a(j, i) + a(i, j-1)ENDDOENDDOflowS(i, j) ⎯⎯⎯→ S(i, j+1) для n≥i≥1, n≥j≥1,flowS(i, j) ⎯⎯⎯→ S(j, i) для n≥j>i≥1,antiS(j, i) ⎯⎯→ S(i, j) для n≥i>j≥1,Рис. 9. Точные отношения зависимостей для гнезда циклов из примера 8аРис. 10. СГЗ для фрагмента программы примера 8, в котором дуги помечены уровнямизависимостей (а) и векторами направления (б)б


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 169Алгоритм Аллена—Кеннеди базируется на рассмотрении уровней зависимостей.В программе примера 8 уровни трех зависимостей равны соответственно2, 1 и 1. Имеется цикл зависимостей на уровне 1 и на уровне 2.Таким образом, параллелизм не обнаруживается.Алгоритм Вольфа—Лэма рассматривает векторы зависимостей. В программепримера 8 векторы зависимостей выглядят как (0, 1), (+, –) и (+, –).Во втором измерении «1» и «–« не позволяют обнаружить два полностьюпереставляемых цикла. Следовательно, код остается без изменения и параллелизмне обнаруживается.Для сравнения рассмотрим также результат применения алгоритма Фотрие,который будет описан в разд. 7. Алгоритм воспринимает в качествевхода точные зависимости и на выходе дает допустимый план T(i, j) = 2i + j– 3. Таким образом, алгоритм обнаруживает один уровень параллелизма.Для данного конкретного гнезда циклов представление зависимостей ввиде уровней или векторов направления не является достаточно точным дляобнаружения параллелизма. В этом и состоит причина неудачи первых двухалгоритмов. Точный анализ зависимостей, связанный с методами линейногопрограммирования, требующими решения больших 6 параметрических линейныхпрограмм (как в алгоритме Фотрие), позволяет обнаружить однустепень параллелизма. Соответствующий распараллеленный код будет выглядетьследующим образом:DO j = 3, 3nDOPAR i = max (1, ⎡(j-n)/2⎤), min (n, ⎣(j-1)/2⎦)a(i, j-2i) = a(j-2i, i) + a(i, j-2i-1)ENDDOENDDOОднако для гнезда циклов примера 8 точное представление зависимостейвовсе не является необходимым условием для обнаружения параллелизма.Действительно, можно заметить, что имеется униформная зависимостьu = (0, 1) и множество векторов расстояний {(j – i, i – j) = (j – i) (1, –1)| 1 ≤ j – i ≤ n – 1}, которое может быть приближено (сверху) множеством P ={(1, –1) + λ(1, –1) | λ ≥ 0}. P является многогранником с одной вершиной v =(1, –1) и одним лучом r = (1, -1). Предположим теперь, что мы ищем линей-6Количество неравенств и переменных связано с количеством граничных условий,которые определяют область допустимых значений каждого отношения зависимости.


170 Программные средства и математические основы информатикиный план T(i, j) = x 1 i + x 2 j. Пусть X = (x 1 , x 2 ). Чтобы план T был допустимым,нужен такой X, чтобы выполнялось Xd ≥ 1 для любого вектора зависимостиd. Следовательно, X(0, 1) ≥ 1 и Xp ≥ 1 для всех p ∈ P. Последнеенеравенство эквивалентно следующему: X(1, -1) + λX(1, –1) ≥ 1 при λ ≥ 0,что эквивалентно X(1, –1) ≥ 1 и X(1, –1) ≥ 0, т. е. Xv ≥ 1 и Xr ≥ 0. Следовательно,достаточно решить следующие три неравенства:Xu ≥ 1 Xv ≥ 1 Xr ≥ 0, т.е.0X ⎛ ⎜ ⎞ ⎟≥1⎝1⎠0X ⎛⎜⎞ ⎟≥1⎝−1⎠0X ⎛⎜−⎞⎟≥0⎝ 1⎠что ведет, как у Фотрие, к X = (2, 1). Таким образом, в данном примереприближение зависимостей с помощью уровней или даже векторов направленияне является достаточным для определения параллелизма. Однако спомощью приближенного представления зависимостей в виде многогранникаможно обнаружить тот же параллелизм, что и с помощью точного анализазависимостей, но при этом решая более простое множество уравнений.Особенно важна здесь «униформизация», которая позволяет нам перейтиот неравенства на многограннике P к униформным неравенствам на v и r.Благодаря ей исчезают аффинные ограничения, и нам нет необходимостииспользовать аффинную форму леммы Фаркаша, как в алгоритме Фотрие(см. разд. 7). Чтобы лучше понять принцип «униформизации», будем рассуждатьв терминах путей зависимостей. Рассмотрим дугу e, ведущую изоператора S к оператору T и помеченную вектором расстояния p = v + λr,как путь ϕ, который использует один раз «униформный» вектор зависимостиv и λ раз «униформный» вектор зависимости r. Такой способ рассмотренияпредставлен на рис. 11, где введена новая вершина S', которая позволяетмоделировать ϕ и дугу нулевого веса, ведущую из S' обратно в начальнуювершину T. Принцип «униформизации» является основной идеей алгоритмараспараллеливания циклов, описанного в данном разделе.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 171Рис. 11. Моделирование дуги, помеченной многогранником,с одной вершиной и одним лучом«Униформизуя» зависимости, мы фактически «униформизовали» граничныеусловия и свели исходную проблему планирования с аффиннымиграничными условиями к простой проблеме планирования, где все зависимостиявляются униформными (u, v и r). Однако есть два фундаментальныхразличия между этой структурой и классической структурой униформногогнезда циклов.• Униформные векторы зависимостей не обязательно являются лексическиположительными (например, луч может быть равен (0, -1)).Поэтому задача планирования будет более сложной. Однако онаможет быть решена с помощью техник, подобных используемымпри решении задачи нахождения решений систем униформных рекуррентныхуравнений [52].• Ограничения, налагаемые на луч r, являются более слабыми, чем вклассическом случае, поскольку вместо Xr ≥ 1 требуется, чтобы Xr ≥0. Это ослабление должно приниматься во внимание распараллеливающималгоритмом.6.3. Работа алгоритма: примерРассмотрим пример, иллюстрирующий работу алгоритма. Будем считать,что в сокращенном графе зависимостей дуги помечены векторами направления.Граф зависимостей, изображенный на рис. 12, был построен спомощью анализатора зависимостей Tiny [62].


172 Программные средства и математические основы информатикиПример 9.DO i = 1, nDO j = 1, nDO k = 1, na(i, j, k) = с(i, j, k-1) + 1b(i, j, k) = a(i-1, j+i, k) + b(i, j-1, k)c(i, j, k+1) = c(i, j, k) + b(i, j-1, k+i) + a(i, j-k, k+1)ENDDOENDDOENDDOРис. 12. СГЗ программы примера 9Нетрудно убедиться, что алгоритмы Аллена—Кеннеди и Вольфа—Лэмане способны найти весь содержащийся в этой программе параллелизм: третийоператор кажется полностью последовательным. Однако алгоритм обнаруженияпараллелизма, который будет представлен в следующем разделе,способен построить следующий многомерный план: (2i + 1, 2k) для первогооператора, (2i, j) для второго и (2i + 1, 2k + 3) для третьего. Этот план соответствуеткоду с явным параллелизмом, приведенному ниже (в котором,


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 173однако, не было проведено никаких модификаций наподобие отшелушиванияцикла с целью устранения операторов IF). Таким образом, для каждогооператора может быть обнаружен один уровень параллелизма.DOSEQ i = 1, nDOSEQ j = 1, nDOPAR k = 1, jb(i, j, k) = a(i-1, j+i, k) + b(i, j-1, k)ENDDOENDDODOSEQ k = 1, n+1IF (k ≤ n) THENDOPAR j = k, na(i, j, k) = c(i, j, k-1) + 1ENDDOENDIFIF (k ≤ 2) THENDOPAR j = k-1, nc(i, j, k) = c(i, j, k-1) + b(i, j-1, k+i+1) + a(i, j-k+1, k)ENDDOENDIFENDDOENDDOЭтот код был сгенерирован из вышеприведенного плана с помощьюпроцедуры “codegen” программы Omega Calculator 7 , поставляемого в комплектеPetit [53]. Следует напомнить, что вышеприведенный код является«виртуальным» в том смысле, что алгоритм только выявляет скрытый параллелизм.Реальный код не обязательно должен быть именно таким.6.4. Шаг униформизацииВначале мы покажем, как МСГЗ (многогранные сокращенные графы зависимостей)могут быть изображены с помощью эквивалентной, но болеепростой в обращении структуры — униформных графов зависимостей, тоесть графов, дуги которых помечены константными векторами зависимо-7Omega Calculator служит для вычисления зависимостей, проверки допустимостипрограммных преобразований и преобразования программ заданным образом.


174 Программные средства и математические основы информатикистей. Такая униформизация достигается с помощью приведенного нижеалгоритма трансляции.Чтобы избежать путаницы между вершинами графа зависимостей ивершинами многогранника зависимостей, мы будем называть первые узлами,а вторые — вершинами. Будут использоваться также следующие соглашения.Исходный МСГЗ, описывающий зависимости в распараллеливаемомкоде, называется исходным графом и обозначается как G 0 = (V, E). УниформныйСГЗ, эквивалентный G 0 и построенный с помощью алгоритматрансляции, называется униформным графом или трансляцией G 0 и обозначаетсякак G u = (W, F).Алгоритм трансляции строит G u путем сканирования всех дуг G 0 . Он начинаетс G u = (W, F) = (V, ∅), и для каждой дуги e из E добавляет в G u новыеузлы и новые дуги в зависимости от вида многогранника P(e). Будемназывать вновь созданные узлы виртуальными узлами в отличие от реальныхузлов, соответствующих узлам G 0 .Пусть e — дуга из E. Обозначим через x e и y e соответственно начало иконец дуги e, т. е. узел, из которого e исходит, и узел, в который она заходит.Это определение обобщается до путей: начало (соответственно конец)пути — это начало (соответственно конец) его первой (соответственно последней)дуги.Будем следовать нотациям, введенным в разделе 3.2: ω, ρ и λ обозначаютколичество вершин v i , лучей r i и линий l i многогранника P(e).Трансляцию осуществляет следующий алгоритм:началоПусть W = V и F = ∅;для всех e: x e → y e ∈ E циклДобавить к W новый виртуальный узел n e ;Добавить к F ω дуг с весами v 1 , v 2 , ..., v ω , соединяющих x e с n e ;Добавить к F ρ петель, соединяющих n e , с весами r 1 , r 2 , ..., r ρ ;Добавить к F λ петель, соединяющих n e , с весами l 1 , l 2 , ..., l λ ;Добавить к F λ петель, соединяющих n e , с весами -l 1 , -l 2 , ..., -l λ ;Добавить к F дугу с нулевым весом, ведущую из n e в y e .всеконец.Вернемся к программе примера 9. Граф МСГЗ данной программы изображенна рис. 12. Рис. 13 представляет связанный с ней униформный графзависимостей. Граф имеет три виртуальных узла, соответствующих символу


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 175«+» и двум символам «–» в исходных векторах направления; это узлы, помеченныесимволами S' 1 , S' 2 и S' 3 .Рис. 13. Транслированный униформный сокращенный граф зависимостей6.5. Шаг планированияШаг планирования принимает на входе транслированный граф зависимостейG u и строит многомерный план для каждого реального узла, т. е. длякаждого узла G u , который соответствует узлу G 0 . G u предполагается сильносвязным (в противном случае нужно вызывать алгоритм для каждой сильносвязной компоненты G u ).Алгоритм является рекурсивным. Каждый шаг рекурсии строит определенныйподграф G' текущего обрабатываемого графа G. Как только G' построен,выводится множество линейных ограничений и может быть вычислендопустимый план, охватывающий все дуги зависимостей, не входящиев G'. Затем алгоритм продолжает работу с оставшимися дугами, то есть дугамииз G' (более точно, с дугами из G' и некоторыми добавочными дугами— см. ниже).G' определяется как подграф G, генерируемый всеми дугами G, принадлежащимипо меньшей мере к одному мультициклу нулевого веса. Мультициклесть объединение циклов, не обязательно связанных, а его вес есть


176 Программные средства и математические основы информатикисумма весов составляющих его циклов. G' строится на основе решения линейнойпрограммы (см. разд. 6.6).Шаг планирования описывается нижеприведенным рекурсивным алгоритмом.Первым вызовом является DARTE-VIVIEN(G u , 1). Для каждогореального узла S из G u алгоритм строит последовательность векторов X 1 S,..., X dS S и последовательность констант ρ 1 S, ..., ρ dS S, которые определяютдопустимый многомерный план.проц DARTE-VIVIEN(G: граф, k: целое)=1. Построить G' — такой подграф G, который порожден всеми дугами,принадлежащими по меньшей мере одному мультициклу нулевоговеса в G;2. Добавить к G' все дуги, ведущие из реального узла x e к виртуальномуузлу y e , и все петли, соединяющие y e , если дуга e = (x e , y e ) ужевходит в G';3. Выбрать вектор X и константу ρ S для каждого узла S из G такимобразом, чтобы выполнялось два условия:e = (x e ,y e )∈G' или x e — виртуальный узел ⇒Xω(e) + ρy− ρe x≥ 0ee = (x e , y e ) ∉ G' или x e — реальный узел ⇒Xω(e) + ρy− ρe x≥ 1,eи для всех реальных узлов S из G положить ρ k S = S и X k S = X.4. если G' — пустой граф или содержит только виртуальные узлыто возврат все;5. если G' — сильно связный граф и содержит реальные узлыто G является невычислимым (а исходный МСГЗG 0 — несогласованным); возвратвсе;.Провести декомпозицию G' на сильно связные компоненты G i ;для всех G i , имеющих реальные узлы, циклDARTE-VIVIEN(G i , k+1)все.все.К данному описанию алгоритма можно сделать следующие два замечания.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 1771. Шаг (2) является необходимым только для МСГЗ общего вида:его можно опустить, к примеру, для СГЗ, помеченных вектораминаправления (см. [44] для более подробного изложения).В этом случае решение простой линейной программы можетзаменить одновременно шаг (1) и шаг (3).2. На шаге (3) мы сознательно не указываем, каким образом выбираютсявектор X и константы ρ, что позволяет применятьразличные критерии выбора. Например, можно выбрать максимальноемножество линейно независимых векторов X, еслицелью является построение полностью переставляемых циклов(см. [46]).Вернемся к примеру 9. Рассмотрим униформный граф зависимостей нарис. 13. Имеются два элементарных цикла с весами (1, 0, 1) и (0, 1, 1) и пятьпетель с весами (0, 0, 1), (0, 0, –1), (0, 1, 0) (дважды) и (0, –1, 0). Следовательно,все дуги (кроме дуг, принадлежащих только к циклу с весом (1, 0,1)) принадлежат к мультициклу нулевого веса. Подграф G' показан нарис. 14.Рис. 14. Подграф мультициклов нулевого веса для примера 9


178 Программные средства и математические основы информатикиОграничения, следующие из дуг подграфа G', устанавливают, что X =(x, y, z) должен быть ортогонален к весам всех циклов G'. Следовательно, y= z = 0. Наконец, рассматривая остальные ограничения, мы находим решение:X = (2, 0, 0), ρ S1 = ρ S3 = 1 и ρ S2 = 0. В G' остаются четыре сильно связныхкомпоненты, две из которых не рассматриваются, так как имеют тольковиртуальные узлы. Две оставшиеся компоненты не содержат мультицикловнулевого веса. Сильно связная компонента с единственным узлом S 2 можетбыть спланирована с вектором X = (0, 1, 0), тогда как исследование второйсильно связной компоненты приводит к одному из возможных решений: X= (0, 0, 2), ρ S1 = 0 и ρ S3 = 3.Суммируя все результаты, мы находим уже рассмотренные в разд. 6.3.двумерные планы: (2i, j) для S 2 , (2i + 1, 2k) для S 1 и (2i + 1, 2k + 3) для S 3 .6.6. Схематические поясненияГраф G u не всегда соответствует СГЗ гнезда циклов, так как его векторызависимостей не обязательно лексически неотрицательны. Фактически, еслизабыть о том, что некоторые узлы виртуальны, то G u — это сокращенныйграф зависимостей Системы Униформных Рекуррентных Уравнений, введеннойКарпом, Миллером и Виноградом в [52]. Карп, Миллер и Виноградисследовали проблему вычислимости таких систем. Они показали, что еевычислимость связана с проблемой нахождения циклов нулевого веса в ееСГЗ G, что может быть проделано посредством рекурсивной декомпозицииграфа, основанной на нахождении мультициклов нулевого веса. Ключевойструктурой их алгоритма является G', подграф G, генерируемый дугами,принадлежащими к мультициклу нулевого веса.G' может быть успешно построен с помощью решения простой линейнойпрограммы (программа примера 7 или двойственная ей программапримера 8). Это решение позволяет построить алгоритм распараллеливания,принцип которого двойственен алгоритму Карпа, Миллера и Винограда:⎧⎫min ⎨∑ ve: q ≥0, v ≥0, w≥ 0, q+ v = 1 + w, Bq = 0⎬, ⎩ e⎭(4)⎧⎫max ⎨∑ ze : z ≥0, 0 ≤ ze ≤ 1, Xw( e)+ ρy −ρe x≥ ze e⎬, ⎩ e⎭(5)где w(e) — вектор зависимостей, связанный с дугой e, B = [CW] t , C — матрицасвязей, а W — матрица векторов зависимостей.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 179Если не вдаваться в детали, X — это n-мерный вектор, имеется одна переменнаяρ для каждой вершины СГЗ и одна переменная z для каждой дугиСГЗ. Дугами G' (или G\G') являются дуги e = (x e , y e ), для которых z e = 0 (соответственноz e = 1) в оптимальном решении двойственной программы 8, и,эквивалентно этому, для которых v e = 0 (соответственно v e = 1) в изначальнойпрограмме 7. Суммируя неравенства Xw(e) + ρ ye - ρ xe ≥ z e в цикле C в G,мы находим, что Xw(C) = 0, если C — цикл из G', и Xw(C) ≥ l(C) > 0 в противномслучае (l(C) — количество дуг C, не принадлежащих G').Чтобы увидеть связь с алгоритмом Вольфа—Лэма, можно рассмотретьконус Г, генерируемый весами циклов (а не весами дуг); тогда G' — подграф,веса циклов которого генерируют пространство линейности Г, а X —вектор в относительно внутренней части Г + . Однако нет необходимости дляпостроения G' реально строить Г. Это просто одно из любопытных свойствпрограмм примеров 7 и 8.Мы обрисовали основные идеи алгоритма Дарте—Вивьена [44]. Требуютсянекоторые технические модификации для распознавания виртуальныхи реальных узлов и для учета природы дуг (помеченных вершинами, лучамиили линиями многогранника зависимостей). Отсылаем читателя к работе[42] за полным изложением алгоритма.6.7. Сильные и слабые стороны алгоритмаТеперь, когда у нас есть многомерный план T, мы можем доказать егооптимальность в терминах степени параллелизма. Можно показать [41, 42],что для каждого оператора S (то есть для каждого узла G 0 ) количество экземпляровS, исполняемых последовательно в результате применения T,имеет тот же порядок, что и количество экземпляров S, являющихся врожденнопоследовательными в силу действия зависимостей.Теорема 3. Планирующий алгоритм является почти оптимальным, еслиобласть итерации содержит полномерный куб размера Ω(N) (соответственносодержится в кубе размерности O(N)) и если d — глубина (количествовложенных рекурсивных вызовов) алгоритма, то время ожидания планаравно O(N d ) и длина самого длинного пути зависимостей равна Ω(N d ). Болееточно, после генерации кода каждый оператор S окружен в точности d Sпоследовательными циклами, и эти циклы считаются врожденно последовательнымитакже после анализа зависимостей.Этот алгоритм также является оптимальным относительно анализа зависимостей.Рассмотрим следующий пример.


180 Программные средства и математические основы информатикиПример 10.DO i = 1, nDO j = 1, nS 1 : a(i, j) = b(i-1, j+i) + a(i, j-1)S 2 : b(i, j) = a(i-1, j-i) + b(i, j-1)ENDDOENDDOРис. 15. СГЗ программы примера 10Если зависимости описываются с помощью векторов расстояния, СГЗимеет две автозависимости (0, 1) и две дуги, помеченные многогранниками,обе имеющие по одной вершине и одному лучу — (0, 1) и (0, –1), соответственно(см. рис. 15). Следовательно, существует мультицикл нулевого веса.Далее, две реальных вершины принадлежат к G'. Таким образом, глубинаалгоритма Дарте—Вивьена равна 2, и никакого параллелизма не обнаруживается.Однако вычисление итерации (i, j) первым (вторым) оператором на шагу2i + j (соответственно i + j) приводит к допустимому плану, который обнаруживаетодну степень параллелизма 8 . Алгоритм Дарте—Вивьена не способеннайти параллелизм в этом примере, так как аппроксимация зависимостейуже потеряла весь параллелизм.Используемая здесь нами техника нахождения параллельных циклов заключаетсяв поиске многомерных планов, линейные части которых (векто-8Планы ⎣(3/2)i + j + 1/2⎦ и ⎣(1/2)i + j⎦ минимизируют время ожидания, но написаниекода становится более сложным.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 181ры X) могут быть разными для разных операторов, даже если они принадлежатк одной и той же сильно связной компоненте. Это является основойалгоритма Фотрие [47], математической базой которого является аффиннаяформа леммы Фаркаша. Однако теорема 3 показывает, что нет необходимостиискать различные линейные части (построение которых будет болеедорогим и приведет к усложнению процесса переписывания) в заданнойсильно связной компоненте текущего подграфа G', если зависимости заданыс помощью векторов расстояния. С другой стороны, пример 10 показывает,что такое усовершенствование может быть полезным только тогда, когдадоступен более точный анализ зависимостей.7. АЛГОРИТМ ФОТРИЕВ работе [47] Пол Фотрие предложил алгоритм планирования статическихуправляющих программ с аффинными зависимостями. Этот алгоритмиспользует точный анализ зависимостей, который всегда является осуществимымдля таких типов программ [45]. В этом его отличие от трех ранеерассмотренных алгоритмов (Аллена—Кеннеди, Вольфа—Лэма, Дарте—Вивьена), которые работают с теми или другими аппроксимациями зависимостей.Алгоритм Фотрие принимает на входе сокращенный граф зависимостейG, в котором дуга e: S i → S j помечена множеством пар (I, J) таких, что S j (J)зависит от S i (I). Далее он рекурсивно строит многомерный аффинный пландля каждого оператора гнезда циклов.проц FEAUTRIER(G : граф) =Провести декомпозицию G на сильно связные компоненты G i и топологическиотсортировать их.для всех сильно связных компонент G i циклНайти аффинный план с участием оператора, который налагаетнеотрицательную задержку на все зависимости и задействованв наибольшем возможном количестве зависимостей;Построить множество G' i незадействованных дуг;если G' i ≠ ∅ то FEAUTRIER(G' i ) всевсевсе


182 Программные средства и математические основы информатикиДанный алгоритм похож на алгоритм Дарте—Вивьена по своей структуреи по выдаваемому результату, а также тем, что оба алгоритма используютлинейные программы для построения аффинных планов. Приведем основныесвойства, связанные со сравнением данных двух алгоритмов (см.[36]).1. Алгоритм Дарте—Вивьена способен планировать программы, даже еслиточный анализ зависимостей не является осуществимым, но дан СГЗ смногогранником зависимостей. Алгоритм Фотрие способен обрабатыватьтолько статические управляющие программы с аффинными зависимостями.В этом смысле первый алгоритм является более мощным. Однакоукажет на попытки обобщить подход, реализованный в алгоритмеФотрие, путем ослабления ограничений на вход за счет использованияанализа потока данных на нечетких массивах (Fuzzy Array DataflowAnalysis) [33].2. Когда доступен анализ зависимостей, алгоритм Фотрие становится намногоболее мощным. Этот алгоритм способен обрабатывать любоемножество циклов, описывающих многогранник, даже если циклы необразуют совершенное гнездо. Алгоритм Дарте—Вивьена также можетобрабатывать не являющиеся совершенными вложенные гнезда циклов,либо рассматривая каждый блок совершенно вложенных циклов по отдельности,либо искусственно сливая несовершенно вложенные гнезда.Однако согласно теории, этот подход будет менее естественным и менеемощным.3. Алгоритм Дарте—Вивьена основан на решении линейных программ, подобныхтем, что решает алгоритм Фотрие. Единственное (но фундаментальное)различие состоит в том, что первый ищет менее общие аффинныепреобразования. Следовательно, на статических управляющих программахс аффинными зависимостями, алгоритм Фотрие всегда находит большепараллелизма, чем алгоритм Дарте—Вивьена (см. пример 10). Однако, несмотряна это различие, результат оптимальности для алгоритма Дарте—Вивьена дает некоторые указания на случаи оптимальности для Фотрие,которые были впервые введены как «жадные эвристики».4. Алгоритм Фотрие должен использовать аффинную форму леммы Фаркашадля получения линейных программ, чего алгоритм Дарте—Вивьенаизбегает благодаря своей схеме униформизации. Следовательно, линейныепрограммы алгоритма Фотрие более сложны.5. Оба алгоритма расширяют действие от мелкозернистого параллелизмадо среднезернистого путем поиска полностью переставляемых циклов.Дарте и др. [40] предложили расширение алгоритма Дарте—Вивьена,


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 183которое представляет собой простое обобщение Вольфа—Лэма. Лим иЛэм [57] предложили расширение алгоритма Фотрие, которое находитмаксимальные множества полностью переставляемых циклов, минимизируяпри этом количество синхронизаций, необходимых в распараллеленномкоде.6. Алгоритм Дарте—Вивьена производит настолько регулярные планы,насколько это возможно, чтобы получить возможно более простой код.Действительно, этот алгоритм переписывает код с использованием аффинныхпланов, но, в отличие от алгоритма Фотрие, эти аффинные планывыбираются таким образом, чтобы возможно большее количествооператоров имели одну и ту же линейную часть: после этого генерациякода может рассматриваться как последовательность частичных унимодулярныхпреобразований и распределений циклов. В результате полученныепрограммы выходят гарантированно более простыми, чем программы,получаемые с помощью алгоритма Фотрие.В работе [36] приводятся результаты небольшого сравнительногоисследования алгоритмов, которое проводилось на четырех примерах.Как и ожидалось авторами, в этих исследованиях сложность алгоритмаДарте—Вивьена была намного ниже, чем у алгоритма Фотрие. Болееудивительным оказался тот факт, что оба алгоритма дали один и тот жерезультат на всех четырех рассмотренных примерах. Разумеется, дляполучения окончательного заключения о сравнительных характеристикахалгоритмов данного исследования явно не достаточно: необходимосравнительное исследование алгоритмов на существенно большем числереальных программ.На рис. 16 приведен пример кода, который с очевидностью содержитнекоторый параллелизм, но не поддается распараллеливанию ни однимиз четырех рассмотренных в данной статье алгоритмов.DOPAR i = 1, ⎣n/2⎦a(i) = 1 + a(n-i)DO i = 1, n ENDDOa(i) = 1 + a(n-i) DOPAR i = ⎣n/2⎦ + 1, nENDDOa(i) = 1 + a(n-i)ENDDOРис. 16. Пример исходного (слева) и распараллеленного (справа) кода


184 Программные средства и математические основы информатики8. ЗАКЛЮЧЕНИЕВ статье рассмотрены основные существующие алгоритмы распараллеливанияциклов — одного из наиболее важных реструктурирующих преобразований.Суммируя их свойства, следует отметить следующее: алгоритмАллена—Кеннеди является оптимальным для представления зависимостейв виде уровней, а алгоритм Вольфа—Лэма — для представления зависимостейв виде векторов направления (но для гнезда циклов с единственнымоператором). Ни один из двух алгоритмов не охватывает другой, посколькукаждый использует информацию, которая не может быть использована вторым(графовая структура для первого алгоритма, векторы направления —для второго). Однако оба алгоритма охватываются алгоритмом Дарте—Вивьена, который является оптимальным для любого многогранного представлениявекторов расстояния. Алгоритм Фотрие охватывает алгоритмДарте—Вивьена в случаях, когда зависимости могут быть представлены какаффинные, но вопрос об его оптимальности остается открытым.Рассмотренная классификация алгоритмов распараллеливания цикловимеет практический интерес. Она дает возможность распараллеливающемукомпилятору выбрать наиболее подходящий алгоритм: при условии, чтозадан определенный анализ зависимостей, должен выбираться самый простойи дешевый распараллеливающий алгоритм, который остается оптимальным.Это будет именно тот алгоритм, который лучше всего подходит кдоступному представлению зависимостей.СПИСОК ЛИТЕРАТУРЫ1. Булышева Л.А. Методы и средства оптимизации вычислений для процессоров сVLIW-архитектурой. — Новосибирск, 1993. — (Препр. / РАН. Сиб.отд-ние. ВЦ;N 976).2. Вальковский В. А. Распараллеливание алгоритмов и программ. Структурныйподход. — М.: Радио и связь, 1989.3. Векторизация программ: теория, методы, реализация: Сб. статей / Под ред. Г.Д.Чинина. — М.: Мир, 1991.4. Воеводин В. В. Математические основы параллельных вычислений. — М.: МГУ,1991.5. Воеводин Вл. В. Теория и практика исследования параллелизма последовательныхпрограмм // Программирование. — 1992. — N 3. — С. 38–54.6. Глушков В.М., Капитонова Ю.В., Летичевский А.А. Алгебра алгоритмов и динамическоераспараллеливание последовательных программ // Кибернетика. —1982. — N 5. — С. 4–10.


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 1857. Дорошенко А.Е. Математические модели и методы организации высокопроизводительныхпараллельных вычислений. — Киев: Наукова думка, 2000.8. Дорошенко А.Е. О преобразованиях циклических операторов к параллельномувиду // Кибернетика. — 1984. — N 4. — С. 22–28.9. Евстигнеев В.А., Касьянов В.Н. Оптимизирующие преобразования в распараллеливающихкомпиляторах // Программирование. — 1996. — N 6. — С. 12–26.10. Евстигнеев В.А., Мирзуитова И.Л. Анализ циклов: выбор кандидатов на распараллеливание.— Новосибирск, 1999. — (Препр. / ИСИ СО РАН; N 58).11. Евстигнеев В. Анализ зависимостей: состояние проблемы // Системная информатика.— Новосибирск: Наука, 2000. — Вып. 7. — С.112–173.12. Иванников В.П., Гайсарян С.С. Особенности систем программирования для векторно-конвейернойЭВМ // Кибернетика и вычислительная техника. — М.: Наука,1986. — Вып. 2. — С. 3–17.13. Касьянов В.Н., Евстигнеев В.А. Графы в программировании: обработка, визуализацияи применение. — СПб.: БХВ-Петербург, 2003.14. Касьянов В.Н. Оптимизация программ // Прикладная информатика. — М.: Статистика,1983. — Вып. 2. — С. 38–76.15. Касьянов В.Н. Оптимизирующие преобразования программ. — М.: Наука , 1988.16. Касьянов В.Н. Трансформационный подход к конструированию и оптимизациипрограмм // Смешанные вычисления и преобразование программ. — Новосибирск,1991. — С. 30–43.17. Касьянов В.Н. Трансформационные методы и средства конструирования эффективныхи надежных программ // Кибернетика и системный анализ. — 1993. —N 2. — C. 30–39.18. Системное и математическое обеспечение многопроцессорного вычислительногокомплекса ЕС / Под ред. Ю.В. Капитоновой. — М.: ВВИА им. Н.Е. Жуковского,1985.19. Трантенгерц Э. А. Программное обеспечение параллельных процессов. — М.:Наука, 1987.20. Французов Ю. А. Обзор методов распараллеливания кода и программной конвейеризации// Программирование. — 1992. — N 3. — С. 16–37.21. Черняев А.П. Системы программирования для высокопроизводительных ЭВМ.— Т.3. Вычислительные науки. — М., 1990. — С. 1–141. — (Итоги науки и техн.ВИНИТИ АН СССР).22. Черняев А.П. Программные системы векторизации и распараллеливания Фортран-программдля некоторых векторно-конвейерных ЭВМ (обзор) // Программирование.— 1991. — N 2. — С. 53–68.23. Allan V.H., Jones R.B., Lee R.M., Allan S.J. Software pipelining // ACM ComputingSurveys. — 1996. — Vol. 27, N 3. — P.367–432.24. Allen J.R., Kennedy K. Automatic translation of Fortran programs to vector form //ACM Trans. Program Lang. Syst. — 1987. —Vol. 9, N 4. — P. 491–542.


186 Программные средства и математические основы информатики25. Allen J.R., Kennedy K. PFC: a program to convert programs to parallel form. —Houston, 1982. — (Tech. Rep. / Dept. of Math. Sciences, Rice University; MASC-TR82-6).26. Bacon D. F., Graham S. L., Sharp O. J. Compiler transformations for highperformancecomputing // ACM Computing Surveys. — 1994. — Vol. 26, N 4. —P.345–420.27. Banerjee U. A theory of loop permutations // Languages and Compilers for ParallelComputing. — MIT Press, 1990. — P. 54–74.28. Banerjee U. Data dependence in ordinary programs. — Urbana, 1976. — (Tech. Rep. /Univ. Ill., 76-837).29. Banerjee U. Dependence analysis for supercomputing. —Norwell: Kluwer AcademicPublishers, 1988.30. Bernstein A. J. Analysis of programs for parallel processing. // IEEE Trans. on ElectronicComputers. — 1966. — Vol. 15, N 5. — P. 757–763.31. Bockle G. Exploitation of fine-grain parallelism. — Berlin: Springer-Verlag, 1995. —(Lect. Notes Comput. Sci.; Vol. 942).32. Callahan D. A Global Approach to Detection of Parallelism: PhD thes. — Dept. ofComputer Science, Rice University. — Houston, 1987.33. Collard J.-F., Barthou D., and Feautrier P. Fuzzy Array Dataflow Analysis // Proc. of5th ACM SIGPLAN Symp. on Principles and practice of Parallel Programming. —Santa Barbara, CA, 1995.34. Collard J.-F., Feautrier P., Risset T. Construction of DO loops from systems of affineconstraints // Parallel Processing Letters. — 1995. — Vol. 5, N 3. — P. 421–436.35. Collard J-F. Code generation in automatic parallelizers // Proc. Int. Conf. on Applicationin Parallel and Distributed Computing. — North Holland, 1994. — P. 185–194.36. Computer optimizations for scalable parallel systems: languages, compilation techniques,and run time systems / Santosh Pande; Dharma P. Agrawal (ed.). — Berlin:Springer-Verlag, 2001. — (Lect. Notes Comput. Sci.; Vol. 1808).37. Darte A., Khachiyan L., Robert Y. Linear scheduling is nearly optimal // ParallelProcessing Letters. — 1991. — Vol. 1, N 2. — P. 73–81.38. Darte A., Robert Y. Affine-by-statement scheduling of uniform and affine loop nestsover parametric domains // J. Parallel and Distributed Computing. — 1995. — Vol.29. — P. 43–59.39. Darte A., Robert Y. Mapping uniform loop nests onto distributed memory architectures// Parallel Computing. — 1994. — Vol. 20. — P. 679–710.40. Darte A., Silber J.-A., Vivien F. Combining retiming and scheduling techniques forloop parallelization and loop tiling. — ENS-Lyon, 1996. — (Tech. Rep. / LIP; 96-34).41. Darte A., Vivien F. Automatic parallelization based on multi-dimensional scheduling.— Lyon, 1994. — (Tech. Rep. / LIP; 94-24).42. Darte A., Vivien F. On the optimality of Allen and Kennedy's algorithm for parallelismextraction in nested loops //. J. of Parallel Algorithms and Application. — 1996.— (Special issue on Optimizing Compilers for Parallel Languages).


Касьянов В. Н., Мирзуитова И. Л. Алгоритмы распараллеливания циклов 18743. Darte A., Vivien F. Optimal fine and medium grain parallelism detection in polyhedralreduced dependence graphs. — Lyon, 1996. — (Tech. Rep. / LIP; 96-06).44. Darte A., Vivien F. Optimal fine and medium grain parallelism detection in polyhedralreduced dependence graphs // Proc. of PACT'96. — Boston: IEEE Computer SocietyPress, 1996.45. Feautrier P. Dataflow analysis of array and scalar references // Int. J. Parallel Programming.— 1991. — Vol. 20, N 1. — P. 23–51.46. Feautrier P. Some efficient solutions to the affine scheduling problem, part I, onedimensionaltime // Int. J. Parallel Programming. — 1992. — Vol. 21, N 5. —P. 313–348.47. Feautrier P. Some efficient solutions to the affine scheduling problem, part II, multidimensionaltime // Int. J. Parallel Programming. — 1992. — Vol. 21, N 6. —P. 389–420.48. Goff G., Kennedy K., Tseng C.-W. Practical dependence testing // Proc. of the SIG-PLAN Conf. on Programming Language Design and Implementation. — SIGPLANNot. — 1991. —Vol. 26, N 6. — P. 15–29.49. Irigoin F., Jouvelot P., Triolet R. Semantical interprocedural parallelization: an overviewof the PIPS project // Proc. of the 1991 ACM Internat. Conf. on Supercomputing.—Cologne, 1991.50. Irigoin F., Triolet R. Computing dependence direction vectors and dependence coneswith linear systems. — Fontainebleau, 1987. — (Tech. Rep. / Ecole des Mines deParis; ENSMP-CAI-87-E94).51. Irigoin F., Triolet R. Supernode partitioning // Proc. 15th Annual ACM Symp. Principlesof Programming Languages. — San Diego: CA, 1988. — P. 319–329.52. Karp R.M., Miller R.E., Winograd S. The organization of computations for uniformrecurrence equations // J. of the ACM. — 1967. — Vol. 14, N 3. — P. 563–590.53. Kelly W., Maslov V., Pugh W., Rosser E., Shpeisman T., and Wonnacott D. New userinterface for Petit and other interfaces: user guide. — University of Maryland, 1995.54. Kong X., Klappholz D., Psarris K. The I test: an improved dependence test for automaticparallelization and vectorization // IEEE Trans. Par. Distr. Syst. — 1991. —Vol. 2, N 3. — P. 342–349.55. Lamport L. The parallel execution of DO loops // Commun. of the ACM. — 1974. —Vol. 17, N 2. — P. 83–93.56. Li Z. Array privatization for parallel execution of loops // Proc. of the 1992 Intern.Conf. on Supercomputing. — 1992. — P. 313—322.57. Lim A.W., Lam M.S. Maximizing parallelism and minimizing synchronization withaffine partitions // Parallel Computing. — 1998. — Vol. 24, Iss. 3-4. — P. 445–475.58. Pugh W. A practical algorithm for exact array dependence analysis // Commun. ACM.— 1992. — Vol. 35, N 8. — P. 102–115.59. Schreiber R., Dongarra J.J. Automatic blocking of nested loops. — Knoxville, 1990.— (Tech. Rep. / The University of Tennessee; 90-38).


188 Программные средства и математические основы информатики60. Wolf M.E., Lam M.S. A loop transformation theory and an algorithm to maximizeparallelism // IEEE Trans. Parallel Distributed Systems. — 1991. — Vol. 2, N 4. — P.452–471.61. Wolfe M. High Performance Compilers For Parallel Computing. — Addison-WesleyPublishing Company, 1996.62. Wolfe M. Optimizing Supercompilers for Supercomputers: PhD thes. — Dept. ofComputer Science, University of Illinois. — Urbana-Champaign, 1982.63. Wolfe M. Optimizing Supercompilers for Supercomputers. —Cambridge: MIT Press,1989.64. Wolfe M. TINY, a loop restructuring research tool. — Oregon Graduate Institute ofScience and Technology, 1990.65. Xue J. Automatic non-unimodular transformations of loop nests // Parallel Computing,1994. — Vol. 20, N 5. — P.711–728.66. Zima H. and Chapman B. Supercompilers for Parallel and Vector Computers. — ACMPress, 1990.


Е. В. КасьяноваЯЗЫК ПРОГРАММИРОВАНИЯ ZONNON ДЛЯ ПЛАТФОРМЫ .NET *ВВЕДЕНИЕДанная статья описывает состояние пока еще не завершенной работынад языком, получившим название языка Zonnon [1]. Это новый универсальныйязык программирования в семействе языков Паскаль, Модула-2 иОберон. Он сохраняет стремление к простоте, ясному синтаксису и независимостиконцепций, а также уделяет внимание параллельности и легкостикомпозиции и выражения. Унификация абстракций является стержнем проектированияязыка Zonnon, и она отражается в его концептуальной модели,основанной на модулях, объектах, определениях и реализациях. Язык Zonnonсодержит такие новые черты, как активность в объектах, основанный намежобъектном взаимодействии диалог, перегрузка операций и обработкаисключительных ситуаций. Язык Zonnon специально разрабатывается какплатформно-независимый язык.Сам проект по разработке Zonnon языка возник как продолжение работыего авторов над языком Оберон (Oberon) в проекте 7, который был начатMicrosoft Research в 1999 году с целью реализации значительного числанестандартных языков программирования для платформы .NET [2]. ЯзыкОберон [3, 4] является хорошо известным преемником языков Паскаль (Pascal)и Модула-2 (Modula-2). Мотивация авторов на продолжение работы поразвитию языка Оберон связана со следующими двумя целями [5]:a) экспериментально исследовать потенциальные возможности платформы.NET в комбинации с новой технологией CCI интеграциикомпиляторов для проектирования языков;b) реализовать для платформы .NET язык Zonnon, являющийся эволюциейязыка Oberon для .NET.Поскольку язык Zonnon задуман как дальнейшая эволюция языка Оберон,авторы стремятся сохранить такие важные черты языка Оберон и егопреемников, как компактность языка, ясность, недвусмысленность и ортогональностьего основных понятий. Вместе с тем, чтобы создать современнуюальтернативу языку Оберон, авторы внесли в язык ряд изменений, основнымииз которых являются:* Работа выполнена при финансовой поддержке Министерства образования РФ (грант№ Е02-1.0-42) и компании Майкрософт.


190 Программные средства и математические основы информатики• более развитая модульная структура языка;• продвинутая и одновременно простая и ясная объектная модель;• концепция активных объектов.«Общеалгоритмическая» часть языка Zonnon практически полностьюповторяет соответствующие части Оберона, поэтому данный язык можнорассматривать как естественную замену Оберону там, где последний традиционноиспользуется для обучения программированию.Язык Zonnon возник как естественный результат исследований, проводившихсяв течение последних нескольких лет в Федеральном ТехнологическомИнституте (ETH) в Цюрихе. Непосредственными предшественникамиязыка следует считать Active Oberon [6], реализованный как базовыйязык ядра операционной системы BlueBottle, а также реализацию языкаOberon для платформы .NET (Oberon.NET). Язык Zonnon, имея ряд общихчерт с указанными языками, вместе с тем, существенно отличается от нихпо ряду принципиальных моментов. Первая реализация Zonnon выполняетсядля платформы .NET. Кроме того, предполагается интеграция компиляторав систему программирования Visual Studio .NET (в сотрудничестве скомпанией Microsoft).Статья начинается с изложения основных особенностей языка Zonnon(разд. 1). Разд. 2 посвящен вопросам отображения языка Zonnon на платформу.NET. Разд. 3 содержит описание разрабатываемого компилятора сязыка Zonnon для платформы .NET. Полный синтаксис языка Zonnon в егосостоянии на август 2003 г. приведен в приложении.1. ЯЗЫК ПРОГРАММИРОВАНИЯ ZONNONЯзык Zonnon — это универсальный императивный язык программирования.Он характеризуется богатой и мощной, но сильно унифицированнойобъектной моделью, которая поддерживает разнообразные стили программирования,включая обычный стиль алгоритмов и структур данных, стилимодульного и объектно-ориентированного программирования, а также моделивычислений, основанные на агентах (actor-based computing models).Основными чертами объектной модели являются• унифицированная концепция абстракции, так называемое определение(definition),• соответствующее понятие реализации (implementation) по умолчанию,• комбинация обычных объекта и нити (thread), называемая активнымобъектом (active object),


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 191• конструкция модуля (module).Нестрого говоря, определения относят к одной категории и унифицируютобщие абстракции суперкласса и интерфейса и в комбинации с механизмомстатического агрегирования реализаций заменяют концепции иерархииклассов и единственного наследования. Активные объекты появляются вместес интегрированной нитью управления, которая описывает их поведениево время исполнения. Модули — это объекты с управляемой системой жизненнымциклом. Кроме того, к языку добавлен оператор блока (block statement)с факультативными модификаторами обработки в фигурных скобкахи предложением перехвата исключений. Типичными модификаторами обработкиявляются ACTIVE (исполнять как отдельный поток), EXCLUSIVE(исполнять при взаимном исключении с соответствующей областью действияобъекта) и CONCURRENT (все операторы потенциально могут исполнятьсяпараллельно). Ниже данные новые языковые понятия будут проиллюстрированына небольшом наборе простых, но типичных примеров, приведенныхавторами языка [3].1.1. Определения и реализацииПатефон-автомат имеет две “грани” (“facets”): его можно восприниматьлибо как хранилище записей, либо как проигрыватель. Соответственно,можно использовать следующие определения:DEFINITION Store;PROC Clear;Add (s: Lib.Song);END Store.DEFINITION Player;VAR cur: Lib.Song;PROC Play (s: Lib.Song);PROC Stop;END Player.Предположим, что, кроме того, имеется следующая реализация Storeпо умолчанию:IMPLEMENTATION Store;VAR rep: Lib.Song;PROC Clear;BEGIN rep := NIL


192 Программные средства и математические основы информатикиEND Clear;PROC Add (s: Lib.Song);BEGIN s.next := rep; rep := sEND Add;BEGIN ClearEND Store.Тогда можно использовать следующее определение объекта патефонаавтомата:OBJECT JukeBox IMPLEMENTS Player, Store;IMPORT Store; (* aggregate *)PROCEDURE Play (s: Lib.Song);IMPLEMENTS Player.Play;PROCEDURE Stop IMPLEMENTS Player.Stop;..END JukeBox.Заметим, что реализация Store по умолчанию неявно агрегируется спространством объектного состояния.1.2. Активные объектыВ некотором простом террариуме поддерживается следующий вид поведениясодержащихся в нем живых тварей. Если температура опускаетсяниже некоторого определенного минимума, представители всех видов погружаютсяв спячку, иначе они либо перемещаются случайным образом,либо, если голодны, требуют помощи.OBJECT Creature;VAR X, Y, temp, hunger, kill: INTEGER;PROCEDURE NEW (x, y, t: INTEGER);BEGIN X := x; Y := y; temp := t;hunger := 0END;PROCEDURE SetTemp (dt: INTEGER);BEGIN { EXCL } temp := temp + dtEND SetTemp;BEGIN { ACTIVE }LOOPAWAIT temp >= minTemp;


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 193WHILE hunger > minHunger DOHuntStep(5, kill);hunger := hunger — kill;WHILE (kill > 0) & (hunger > 0) DOHuntStep(7, kill);hunger := hunger — killEND;RandStep(2)END;RandStep(4); hunger := hunger + 1ENDEND Creature;Заметим, что тело определения объекта последовательно описываетполную историю жизни таких живых тварей. Также заметим, что их поведениееще зависит существенным образом от среды, вызывающей методSetTemp. В частности, любое существо, находящееся в террариуме, можетбыть заблокировано оператором WAIT до тех пор, пока температура неподнимется выше минимума.1.3. МодулиМодули — это объекты системного уровня, чей жизненный цикл управляетсясистемой автоматически. В частности, модуль динамически загружаетсяв момент первого вызова. Модули относятся к “статическим” объектам,которые статически могут импортировать другие модули. Хорошимпримером системно-ориентированных модулей является менеджер ресурсов.Следующий набросок показывает менеджера окнами с инкапсулированнойструктурой данных, которая представляет текущую конфигурациюокна в дисплейном пространстве системы. Заметим, что менеджер окнамисодержится в пространстве имен, называемом System, и что он базируетсяна другом модуле, называемом DisplayManager.MODULE System.WindowManager;IMPORT System.DisplayManager;(* static import *)OBJECT { VALUE } Pos;VAR X, Y, W, H: INTEGEREND Pos;DEFINITION Window;VAR pos: Pos;


194 Программные средства и математические основы информатикиPROCEDURE Draw ();END Window;VAR { PRIVATE } W, H: INTEGER;bot: OBJ { Window };PROCEDURE Open(this:OBJECT{Window},p:Pos);BEGIN ...END Open;PROCEDURE Change(this:OBJECT{Window},p:Pos);BEGIN ...END Change;BEGIN (* module initialization *) bot:=NIL;W := System.DisplayManager.Width();(* delegation *)H := System.DisplayManager.Height();END WindowManager.Структурно унифицировано можно представлять систему периода исполнениякак ациклическую иерархию модулей. Обычно внизу и наверхуиерархии расположены системные модули и модули приложений соответственно.2. ОТОБРАЖЕНИЕ ЯЗЫКА ZONNON НА ПЛАТФОРМУ .NETДля любого языка необходимым условием возможности его реализациидля .NET является существование отображения его конструкций на общеязыковуюисполняющую среду CLR (Common Language Runtime) [2]. В зависимостиот парадигмы и модели, представленных языком, это может создаватьсерьезную проблему. В данном случае императивного языка отображениеисполнимой части на механизм исполнения CLR осуществляетсянепосредственным образом. Что нужно уточнить по существу — это специфицироватьотображение определений, реализаций, активных объектов имодулей.2.1. Отображение определений и реализацийСуществуют различные опции отображения. Если переменные состоянийв определениях отображаются в properties или virtual fields (пусть онисуществуют), полное пространство состояний может теоретически синтезироватьсяв реализующем объекте, но с некоторой потерей эффективности. Вотличие от этого решение по отображению на C# (канонический язык для


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 195.NET), приведенное ниже, основывается на внутреннем подручном классе,который обеспечивает пространство агрегированных состояний.отображается наDEFINITION D;TYPE e = (a, b);VAR x: T;PROCEDURE f (t: T);PROCEDURE g (): T;END D;IMPLEMENTATION D;VAR y: T;PROCEDURE f (t: T);BEGIN x := t; y := tEND f;END D;interface D_i {T x { get; set; }void f(T t); T g (); }internal class D_b {private T x_b;public enum e = (a, b);public T x {get { return x_b };set { x_b = ... } } }public class D_c: D_b {T y;void f(T t) {x_b = t; y = t; } }2.2 Отображение активных объектовОтображение активных объектов в большей степени техническая, а неконцептуальная проблема. Очевидно, что средства многопоточности платформы.NET [6] должны служить в этом случае как образы активных конструкцийязыка Zonnon. Ниже приводится «лобовое» решение для отображенияоператора AWAIT. Оно основывается на массовом упоминании ожидаемыхобъектов в конце каждой критической секции. Авторы надеются,что в дальнейшем им удастся уточнить это решение.


196 Программные средства и математические основы информатикиBEGIN { ACTIVE } S ENDMethod void body() { S };Field Thread thread;NEW(x)x.thread = new Thread(new ThreadStart(body));x.thread.Start()AWAIT cwhile !c { Monitor.Wait(this); }BEGIN { EXCL } S ENDMonitor.Enter(this); S;Monitor.PulseAll(this);Monitor.Exit(this);2.3. Отображение модулейПо существу модули просто отобразить на “статические” классы, которыепредставляют собой классы только со статическими членами. Нижеприведен набросок описания образа при отображении Zonnon-программ наплатформу .NET для приведенного в разд. 1.3. менеджера окнами:namespace System {namespace WindowManager {public struct Pos { ... };public class Window { public Pos pos;public virtual Draw ();}public sealed class WindowManager {private static int W, H; Window bot;public static Open (Window this;Pos p){ ... };public static Change(Window this;Pos p){ ... }public static void WindowManager () {...W :=System.DisplayManager.DisplayManager.Width();...}}}


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 1973. КОМПИЛЯТОР С ЯЗЫКА ZONNON ДЛЯ .NETКомпилятор с языка Zonnon разработан для платформы .NET и работаетнаверху нее. Компилятор воспринимает Zonnon исходники (единицы компиляции)и производит обычный ассемблерный код платформы .NET, содержащийMSIL код и метаданные.Имеются две версии компилятора: компилятор командной строки икомпилятор, интегрированный в среду Visual Studio [7]. Компилятор реализованна языке C# с использованием Common Compiler Infrastructure framework(см. ниже), он спроектирован и разработан в Microsoft Research, г.Редмонде [5].3.1. Common Compiler InfrastructureОбщекомпиляторная инфраструктура CCI (Common Compiler Infrastructure)— это множество ресурсов программирования (C# классы), обеспечивающихподдержку для реализации компиляторов и других языковых инструментовдля платформы .NET. Эта поддержка не является полной: не поддержанынекоторые аспекты функциональности компилятора, например,лексический и синтаксический анализ. Но очень важно то, что CCI поддерживаетинтеграцию в среду MS Visual Studio. Потенциально, возможно достичьполной интеграции компилятора со всеми компонентами VS, такимикак редактор, отладчик, менеджер проектов, система онлайновой помощи ит.д.Среда CCI могла бы рассматриваться как часть всей платформы .NET;пространство имен Compiler, содержащее ресурсы CCI, включено в пространствоимен System. CCI состоит из трех главных частей: промежуточноепредставление, множество трансфомеров и интеграционная служба.Промежуточное представление IR (Intermediate Representation) — этобогатая иерархия C# классов, представляющих наиболее общие и типичныепонятия современных языков программирования. IR иерархия основываетсяна архитектуре языка C#: ее классы отражают все C# и CLR понятия, такиекак класс, метод, оператор, выражение и т.д. Это позволяет разработчикукомпилятора представлять напрямую подобные понятия его языка. В случае,когда язык имеет понятия или конструкции, которые не представленымножеством IR классов, есть возможность расширять исходную IR иерархиюдобавлением новых IR классов. При этом должны быть добавленытакже соответствующие трансформации — либо как расширения стандартных“визитёров” (см. ниже), либо в виде полностью нового визитёра.


198 Программные средства и математические основы информатикиТрансфомеры (“визитёры”) представляют собой множество основанныхклассов, выполняющих последовательные преобразования из IR в ассемблерныйкод платформы .NET. Имеются пять стандартных визитёров,предопределенных в CCI: наблюдатель (Looker), описатель (Declarer), решатель(Resolver), проверяющий (Checker), и нормализатор (Normalizer).Все визитёры обходят IR, выполняя преобразования различных видов. Визитёрнаблюдатель (в компании с визитёром-описателем) заменяет вершиныIdentifier на числа/локалы, к которым они сводятся. Визитёр-решатель разрешаетперегрузки операций и выводит типы результатов выражений. Проверяющийвизитёр выявляет семантические ошибки и пытается устранитьих, а визитёр-нормализатор готовит IR для выстраивания в MSIL и метаданные.Все визитёры реализованы как классы, наследуемые от класса Standard-Visitor из CCI. Допускается как расширение функциональности некотороговизитёра путем добавления методов, обрабатывающих специфические языковыеконструкции, так и создание некоторого нового визитёра. CCI требует,чтобы все визитёры, используемые в компиляторе, наследовались (прямоили косвенно) от класса StandardVisitor.Интеграционная служба представляет собой разнообразные классы иметоды, обеспечивающие интеграцию в среду Visual Studio. Указанныеклассы инкапсулируют специфические структуры данных и функциональность,необходимые для редактирования, отладки, фоновой компиляции ит.д.3.2. Архитектура компилятора с языка ZonnonКонцептуально организация компилятора вполне традиционна: сканер(Scanner) осуществляет преобразование исходного текста в лексическуюсвертку, которая воспринимается парсером (Parser). Парсер осуществляетсинтаксический анализ и строит абстрактное синтаксическое дерево (AST),используя для входной единицы компиляции классы CCI IR. Каждая вершинаAST является экземпляром класса IR. “Семантическая” часть компиляторасостоит из серии последовательных преобразований AST, построенногопарсером. Результатом таких трансформаций является ассемблерныйкод платформы .NET, который и является результатом работы компилятора.Однако с архитектурной точки зрения компилятор с языка Zonnon отличаетсяот большинства “традиционных” компиляторов. Вместо использованиятехнологии “черного ящика”, когда все алгоритмы компилятора иструктуры данных инкапсулируются в компиляторе и не видны извне, ком-


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 199пилятор с языка Zonnon, по существу, представляет собой открытый наборресурсов. В частности, такие структуры данных, как лексическая свертка идерево AST доступны (через специальный интерфейс) извне компилятора.Аналогичное свойство имеет место для компонентов компилятора: например,возможно вызвать сканер с тем, чтобы извлечь лексемы из конкретнойчасти входа, а затем вызвать парсер, чтобы построить поддерево для этойчасти входа.Такая архитектура поддерживается схемой CCI и обеспечивает глубокуюи естественную интеграцию компилятора в среду Visual Studio. Длятого чтобы поддержать интеграцию, CCI содержит прототипные классы длясканера и парсера. Фактические реализации компонентов сканера и парсеракомпилятора с языка Zonnon представляют собой классы, наследуемые отэтих прототипных классов.Компилятор расширяет множество вершин IR путем добавления большогочисла конкретных типов вершин для понятий Module, Definition, Implementation,Object и для некоторых других конструкций языка Zonnon,которые не имеют прямых прототипов среди CCI-вершин. Дополнительныевершины обрабатываются расширенным визитёром-наблюдателем, которыйнаследует стандарный класс Looker из CCI. Результат работы расширенногонаблюдателя семантически эквивалентен дереву AST, содержащему толькопредопределенные типы CCI. Следовательно, расширенный наблюдательреализует отображение, описанное в разд. 2.ЗАКЛЮЧЕНИЕВ статье представлен язык программирования Zonnon, работа над которымведется в Цюриховском институте информатики. Разрабатываемыйязык задуман как дальнейшая эволюция хорошо известного языка Оберон,являющегося преемником языков Паскаль и Модула-2. Развивая язык Оберон,исходя из современных потребностей в программировании, авторыстремятся сохранить такие важные черты Оберона и его предшественников,как компактность языка, ясность, недвусмысленность и ортогональностьего основных понятий. Поэтому можно ожидать, что язык будет востребовантеми учебными заведениями, которые в настоящее время используютПаскаль в качестве языка начального обучения программированию, ноимеют желание перейти к более современному курсу программирования,охватывающему концепции языков программирования нового поколения,


200 Программные средства и математические основы информатикитаких как Java и C#, но осуществить этот переход плавно, без резкого изменениясложившегося стиля преподавания программирования.СПИСОК ЛИТЕРАТУРЫ1. Gutknecht J., Zueff E. Zonnon Language Report. — Zurich: Institute of ComputerSystems ETH Zentrum, 2003.2. Уоткинз Д., Хаммонд М., Эйбрамз Б. Программирование на платформе .NET. —М.: Вильямс, 2003.3. Wirth N. The programming language Oberon // Software — Practice and Experience.— 1988. — Vol. 18, N 6. — P. 671–690.4. Wirth N. From Modula to Oberon // Software — Practice and Experience. — 1988. —Vol. 18, N 6. — P. 661– 670.5. Gutknecht J., Zueff E. Zonnon Language Experiment, or How to Implement a Non-Conventional Object Model for .NET // OOPSLA’02. — Seattle, Washington, 2002.6. Просиз Дж. Программирование для .NET. — М.: Русская Редакция, 2003.7. Джонсон Б., Скибо К., Янг М. Основы Microsoft Visual Studio .NET 2003. — М.:Русская Редакция, 2003.ПРИЛОЖЕНИЕНиже для описания синтаксиса языка Zennon используется РасширенныйБекуса—Наура Формализм (Extended Backus—Naur Formalism, EBNF),который характеризуется следующими свойствами:• альтернативы разделяются символом |;• скобки [ и ] обозначают факультативность выражения в скобках;• скобки { и } обозначают повторение (возможно 0 раз);• скобки ( и ) используются для формирования групп элементов;• нетерминальные символы начинаются с прописной буквы (например,Statement);• терминальные символы либо начинаются со строчной буквы (например,letter), либо записывается целиком строчными буквами (например,BEGIN), или представляются в виде строк (например, ":=");• комментарии начинаются с символа // и продолжаются до концастроки.


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 201// Синтаксис языка Zonnon в EBNF// Версия от 8 августа 2003// 1. Программа и программные единицыCompilationUnit = { ProgramUnit "." }.ProgramUnit = ( Module | Definition | Implementation | Object ).// 2. МодулиModule = MODULE ModuleName [ ImplementationClause ] ";"[ ImportDeclaration ]ModuleDeclarations( BlockStatement | END ) SimpleName.ModuleDeclarations = { SimpleDeclaration | NestedUnit ";" }{ ProcedureDeclaration | OperatorDeclaration }{ ActivityDeclaration }.NestedUnit = ( Definition | Implementation | Object ).ImplementationClause = IMPLEMENTS DefinitionName { "," DefinitionName }.ImportDeclaration = IMPORT Import { "," Import } ";".Import = ImportedName [ AS ident ].ImportedName = ( ModuleName | DefinitionName | ImplementationName | Namespace-Name ).// 3. ОпределенияDefinition = DEFINITION DefinitionName [ RefinementClause ] ";"[ ImportDeclaration ]DefinitionDeclarationsEND SimpleName.RefinementClause = REFINES DefinitionName.DefinitionDeclarations = { SimpleDeclaration } { ProcedureHeading | ActivitySignature";" }.ActivitySignature =ACTIVITY ActivityName[ TYPE "{" ProtocolEBNF "}" [ EnumType] END Simple-Name] ";".ProtocolEBNF = Спецификация протокола в EBNF на основе алфавита лексем.// 4. РеализацииImplementation = IMPLEMENTATION ImplementationName ";"[ ImportDeclaration ]Declarations( BlockStatement | END ) SimpleName.// 5. ОбъектыObject = OBJECT [ ObjModifier ] ObjectName [ FormalParameters ] [ Implementation-Clause ] ";"[ ImportDeclaration ]Declarations{ ActivityDeclaration }( BlockStatement | END ) SimpleName.


202 Программные средства и математические основы информатикиObjModifier = "{" ident "}". // VALUE or REF; VALUE by defaultActivityDeclaration = ACTIVITY ActivityName [ ImplementationClause ] ";"Declarations ( BlockStatement | END SimpleName ).// 6. ОбъявленияDeclarations = { SimpleDeclaration } { ProcedureDeclaration }.SimpleDeclaration = ( CONST [DeclModifier] { ConstantDeclaration ";" }| TYPE [DeclModifier] { TypeDeclaration ";" }| VAR [DeclModifier] { VariableDeclaration ";" }).DeclModifier = "{" ident "}". // PUBLIC or PRIVATE or IMMUTABLEConstantDeclaration = ident "=" ConstExpression.ConstExpression = Expression.TypeDeclaration = ident "=" Type.VariableDeclaration = IdentList ":" Type.// 7. ТипыType = ( TypeName [ Width ] | EnumType | ArrayType | ProcedureType | InterfaceType ).Width = "{" ConstExpression "}".ArrayType = ARRAY Length { "," Length } OF Type.Length = ( Expression | "*" ).EnumType = "(" IdentList ")".ProcedureType = PROCEDURE [ ProcedureTypeFormals ].ProcedureTypeFormals = "(" [ PTFSection { ";" PTFSection } ] ")" [ ":" FormalType ].PTFSection = [ VAR ] FormalType { "," FormalType }.FormalType = { ARRAY OF } ( TypeName | InterfaceType ).InterfaceType = OBJECT [ PostulatedInterface ].PostulatedInterface = "{" DefinitionName { "," DefinitionName } "}".// 8. Процедуры и знаки операцийProcedureDeclaration = ProcedureHeading [ ImplementationClause ] ";" [ ProcedureBody";" ].ProcedureHeading = PROCEDURE [ ProcModifiers ] ProcedureName [ FormalParameters].ProcModifiers = "{" ident { "," ident } "}". // PRIVATE, PUBLIC, SEALEDProcedureBody = Declarations BlockStatement SimpleName.FormalParameters = "(" [ FPSection { ";" FPSection } ] ")" [ ":" FormalType ].FPSection = [ VAR ] ident { "," ident } ":" FormalType.OperatorDeclaration = OPERATOR [ OpModifiers ] OpSymbol [ FormalParameters ] ";"OperatorBody ";".OperatorBody = Declarations BlockStatement OpSymbol.OpModifiers = "{" ident { "," ident } [ "," Priority ] "}".| "{" Priority "}".Priority = ConstExpression.OpSymbol = string. // Строка из 1, 2 или 3 символов из// ограниченного множества возможных символов


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 203// 9. ОператорыStatementSequence = Statement { ";" Statement }.Statement = [ Assignment| ProcedureCall| IfStatement| CaseStatement| WhileStatement| RepeatStatement| LoopStatement| ForStatement| AWAIT Expression| EXIT| RETURN [ Expression ]| BlockStatement| Send| Receive].Assignment = Designator ":=" Expression.ProcedureCall = Designator.IfStatement = IF Expression THEN StatementSequence{ ELSIF Expression THEN StatementSequence }[ ELSE StatementSequence ]END.CaseStatement = CASE Expression OFCase { "|" Case }[ ELSE StatementSequence ]END.Case = [ CaseLabel { "," CaseLabel } ":" StatementSequence ].CaseLabel = ConstExpression [ ".." ConstExpression ].WhileStatement = WHILE Expression DO StatementSequence END.RepeatStatement = REPEAT StatementSequence UNTIL Expression.LoopStatement = LOOP StatementSequence END.ForStatement = FOR ident ":=" Expression TO Expression [ BY ConstExpression ]DO StatementSequence END.BlockStatement = BEGIN [ BlockModifiers ]StatementSequence{ ExceptionHandler }[ CommonExceptionHandler ]END.BlockModifiers = "{" ident { "," ident } "}". // LOCKED, CONCURRENT, BARRIERExceptionHandler = ON ExceptionName { "," ExceptionName } DO StatementSequence.CommonExceptionHandler = ON EXCEPTION DO StatementSequence.Send = [Designator] "!" Expression.


204 Программные средства и математические основы информатикиReceive = [Designator] "?" Designator.// 10. ВыраженияExpression = SimpleExpression[ ( "=" | "#" | "=" | IN ) SimpleExpression ]| Designator IMPLEMENTS DefinitionName| Designator IS TypeName.SimpleExpression = [ "+"|"" ] Term { ( "+" | "" | OR ) Term }.Term = Factor { ( "*" | "/" | DIV | MOD | "&" ) Factor }.Factor = number| CharConstant| string| NIL| Set| Designator| NEW TypeName [ "(" ActualParameters ")" ]| NEW ActivityInstanceName| "(" Expression ")"| "~" Factor.Set = "{" [ SetElement { "," SetElement } ] "}".SetElement = Expression [ ".." Expression ].Designator = Instance| Designator "^" // Dereference| Designator "[" Expression { "," Expression } "]"// Array element| Designator "(" [ ActualParameters ] ")" // Function call| Designator "." MemberName // Member selectorInstance = ( SELF | InstanceName | DefinitionName "(" InstanceName ")" ).ActualParameters = Actual { "," Actual }.Actual = Expression [ "{" [ VAR ] FormalType "}" ]. // Аргумент с сигнатурой типа// 11. Константыnumber = (integer | real) [ "{" Width "}" ].integer = digit { digit } | digit { HexDigit } "H".real = digit { digit } "." { digit } [ ScaleFactor ].ScaleFactor = "E" ["+" | "" ] digit { digit }.HexDigit = digit | "A" | "B" | "C" | "D" | "E" | "F".digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9".CharConstant = '"' character '"' | "'" character "'" | digit { HexDigit } "X".string = '"' { character } '"' | "'" { character } "'".character = letter | digit | Other.Other = // Любой символ алфавита, кроме тех, которые используются …// 12. Идентификаторы и именаident = ( letter | "_" ) { letter | digit | "_" }.letter = "A" | ... | "Z" | "a" | ... | "z" | любая другая "культурно-определенная" букваIdentList = ident { "," ident }.


Касьянова Е. В. Язык программирования Zonnon для платформы .NET 205QualIdent = { ident "." } ident.DefinitionName = QualIdent.ModuleName = QualIdent.NamespaceName = QualIdent.ImplementationName = QualIdent.ObjectName = QualIdent.TypeName = QualIdent.ExceptionName = QualIdent.InstanceName = QualIdent.ActivityInstanceName = QualIdent.ProcedureName = ident.ActivityName = ident.MemberName = ( ident | OpSymbol ).SimpleName = ident.


Ю. В. МалининаЭЛЕКТРОННАЯ СРЕДА КОЛЛЕКТИВНОГО НАКОПЛЕНИЯИ КАТАЛОГИЗАЦИИ ИНФОРМАЦИИПО ПРЕОБРАЗОВАНИЯМ ПРОГРАММ *ВВЕДЕНИЕПередача знаний происходит во время общения между людьми, направленногона получение необходимых знаний для решения задач или принятиярешений. Коммуникации могут быть персональными и групповыми,непосредственными или заочными. Персональные коммуникации (общение)используются в повседневной жизни, например, тогда, когда человекобращается за советом или консультацией к коллеге. Для обеспечения эффективностигрупповых коммуникаций применяются различные мероприятия,организующие процесс общения в группах. К таким мероприятиямможно отнести привычные совещания, семинары, конференции, съезды ит.д. Заочные коммуникации обычно происходят, например, посредствомбумажных или электронных документов и писем.Между учеными до сих пор нет единого мнения о том, что такое теориякоммуникации и что должно быть предметом ее исследования. ПрофессорРоберт Т. Крейг [2] считает, что существование разных трактовок понятия«коммуникация» связано с тем, что исследованиями в этой области занимаютсяспециалисты разных профессий, каждый из которых рассматриваеткоммуникации применительно к своему роду деятельности и зачастую неинтересуется работами коллег из других сфер. Однако уже не вызывает сомнениято, что Интернет и сетевые технологии могут существенно влиятьна процесс коммуникаций. Особое внимание привлекают различные способыасинхронного взаимодействия, которые снимают трудности, связанные сорганизацией групповых и заочных коммуникаций. Если раньше они былиограничены текстовой формой электронных писем и бюллетеней, то теперьэта форма взаимодействия стала более гибкой.Если обратится к творческому наследию Герберта Маршалла Маклюэна,то в своих монографиях он утверждал, что западная цивилизация дос-* Работа выполнена при финансовой поддержке Научной программы «Университеты России»(грант № УР.04.01.027) и Министерства образования РФ (грант № Е02-1.0-42).


Малинина Ю. В. Среда каталогизации информации по преобразованиям программ 207тигла «водораздела» в ХХ веке, имеющего не меньшее значение, чем эпохаРенессанса. Качественные сдвиги в истории человечества, согласно Маклюэну[3], связаны с появлением новых технических средств коммуникации.Отсюда и следует его знаменитое высказывание о том, что "средство и естьсодержание" (“The Medium is the Message” ― сообщением, передаваемымсредством общения, является само это средство). Он говорит, что попыткивыполнять сегодняшние обязанности с помощью вчерашних орудий ― вчерашнихконцепций, где информация скудна, но упорядочена и построенапо отдельным классифицированным планам, темам и графикам, уже не отвечаютсовременным требованиям. “Технологии ― это не просто изобретения,которые используют люди, это средства, с помощью которых людисоздаются заново... Будущее ― адрес нашего проживания".Согласно Нельсону [4], одному из пионеров гипертекстов, реальнаяструктура документов и источников игнорируется существующими сегодняформатами, имитирующими бумажные документы. Пересечение и параллелизмдокументов, ключевыми примерами которых могут служить аннотациии взаимные связи, различные схемы цитирования и доступность оригиналацитируемого текста, практически не используются в повседневнойработе.Сегодня можно заметить, что компьютерные науки ставят в центр своихизысканий два традиционных конструкта ― имитацию иерархии и имитациюбумаги. Существует популярный миф, что «структура» всегда означаетиерархию. Существует также популярная концепция, что электронный документдолжен имитировать документ бумажный.Зачастую информационная структура не может быть верно представленаиерархией. Такие взаимосвязи, как параллелизм, перекрестные связи, взаимноепроникновение и взаимное присутствие (присутствие одного элементав нескольких местах), теряются при построении иерархии, когда делаетсявыбор в пользу только одного типа отношений. Например, в представлениифайловых систем вы можете выбрать только один тип иерархии и расположитьобъекты по шкале времени или важности в ущерб всем остальнымтипам отношений. Эти отношения становятся основными и определяютвсе последующие соглашения ― псевдонимы, сокращения и базы данных.Как следствие, суперсовременные системы работы с документами не соответствуюттому гигантскому потенциалу, которым обладает компьютер,не используют и малой толики из возможностей, которые открываются вслучае, если документ представлен в форме, читаемой машиной. Вот и вы-


208 Программные средства и математические основы информатикиходит, что, в конечном счете, компьютер на столе служит не более чемудобной пишущей машинкой и компактным, безопасным архивом.Однако если прислушаться к Нельсону и покинуть привычное для насполе традиционных структур, перед нами открываются многочисленныеальтернативные возможности. Рассмотрим некоторые из них.НОВЫЕ ВОЗМОЖНОСТИТот факт, что научная деятельность и творчество уже не возможны безсущественных изменений в способах коммуникации и способах размышления,отмечался уже в середине прошлого столетия в работах основателейкибернетики. Еще Ваннавер Буш описывал новый способ мышления припомощи машинных средств обработки и передачи информации [1]. ВалентинТурчин рассматривает творчество как метасистемный переход и такжеполагает, что использование машин позволит перевести мыслительную деятельностьна более высокий уровень [5]. Новые цифровые технологии могутосвободить наш мозг от механических аспектов мышления для решениятворческих задач.WikiWiki ― коллективный гипертекстНе секрет, что процесс мышления обладает определенной спецификой:идеи развиваются на разных уровнях, в разных направлениях одновременнои взаимосвязано. Записывать такую систему идей и потом читать ее достаточнотрудно. Традиционные плоские текстовые файлы связывают нас необходимостьюписать и читать параграфы текста, главным образом, в линейнойформе. В традиционной книжной форме представления текста присутствуютэлементы нелинейности: комментарии в скобках, комментарии всносках, ссылки на предыдущие или последующие разделы, ссылки на литературу,фрагменты текста, выделенные другим шрифтом, которые позволяютавтору неявно сказать: «Это не входит в основной текст, но имеет кнему отношение; если Вам интересно, можете посмотреть». Кроме того,существует много стилистических оборотов, позволяющих представитьнелинейный по существу ход рассуждений в последовательной линейнойформе. Однако этих форм нелинейности не всегда бывает достаточно, невсегда они удобны при просмотре текста, особенно на компьютере.Известно, что существующие тексты и без компьютерных сетей образуютединое пространство [6]. Но при этом система адресации имеет достаточнозапутанный характер, поскольку хранится частично в книжной, а час-


Малинина Ю. В. Среда каталогизации информации по преобразованиям программ 209тично ― в человеческой памяти. В действительности библиотечные и информационныенауки в основном и состоят из исследования возможностейссылок. Любой, кто проводил исследования, понимает, что значительнуючасть работы составляет получение нужной литературы, просмотр ссылокна литературу, просмотр терминов в справочниках или глоссариях, проверкатаблиц или рисунков, анализ оглавлений или перечислений, составлениесобственных пометок. Даже при простом чтении постоянно встречаютсяссылки на другие разделы или главы, подстрочные комментарии, литературу,примеры, таблицы, рисунки, приложения. Часто некоторые главы пропускаютсячитателем, которого не интересуют технические подробности.Однако перед традиционной литературой стоят определенные проблемы.• Большинство ссылок не помогают вернуться назад: читателю бываеточень сложно найти те книги или статьи, которые ссылаются на тустатью, которую он читает. И электронные варианты публикаций неявляются исключением, а с завидным упорством повторяют этотподход.• Читатель должен размещать свои пометки либо на полях книги илистатьи, либо помещать их на отдельном листе. Подобный подходобычно применяется и при работе с файлами.• Наконец, следование по ссылкам в бумажных документах (или ихэлектронных аналогах) требует постоянной затраты сил, внимания,дает задержки, даже если читатель работает в хорошо оборудованнойбиблиотеке.Обратим свое внимание на ставший уже привычным при нынешнем развитииИнтернета – гипертекст и попробуем посмотреть на него с другойстороны.Сама концепция гипертекста достаточно проста. Однако несмотря насвою простоту, эта идея дала толчок многим интересным идеям и разработкам.Фактически, гипертекст ― это множество документов, связанных междусобой ссылками. На первый взгляд, основная суть гипертекста состоит втом, чтобы предоставлять быстрый и удобный интерфейс к текстовымфрагментам. Но такое описание ничего не говорит об его реальной роли вразвитии коммуникаций. Однако, если рассмотреть гипертекст как специальную,поддерживаемую компьютером среду для мышления и общения,можно сделать ряд интересных наблюдений.


210 Программные средства и математические основы информатикиНаиболее прогрессивная и радикальная модель коллективного гипертекста― WikiWiki. Тексты WikiWiki связаны между собой при помощи самойпростой системы адресации. Само слово ― название ресурса ― и являетсяего адресом в базе данных. Для того чтобы сделать ссылку на ресурс, достаточнопросто упомянуть это слово в тексте.Гипертекст (WikiWiki) позволяет автору делать подобные ссылки, а читателюсамому выбирать, по каким связям он будет идти при просмотреданного текста. С этой точки зрения, WikiWiki упрощает работу мыслителяи автора: не требуется постоянно решать ― вводить ли данную мысль восновной поток изложения или нет. В этом смысле «ссылочность» являетсяосновой мощности гипертекстов: именно ссылки, поддерживаемые компьютером,расширяют текст за пределы одномерного потока.В то же время, если гипертекст используется как инструмент для мышления,написания, проектирования, может возникнуть естественное соответствиемежду объектами окружающего мира и узлами в базе данных гипертекста.Пользуясь достоинствами такого объектно-ориентированногоаспекта, при помощи гипертекста можно построить гибкую сеть, котораябудет моделировать некоторую проблему (или ее решение). В таких приложенияхсвязи могут быть даже менее важными, чем узлы: связи формируютсмысловые группы, которые собирают узлы вместе, но основной акцентделается именно на узлы.WikiWiki позволяет легко использовать в повседневной деятельностивсе преимущества, предоставляемые гипертекстами.• Простота следования по ссылкам: поддержка компьютером приследовании по ссылкам позволяет одинаково легко следовать каквперед по ссылкам, так и возвращаться назад.• Простота создания новых ссылок: пользователь может развиватьсвою сеть или просто комментировать чей-то документ.• Структуризация информации: к неструктурированной информацииможно применять как иерархический способ организации, так и неиерархический;более того, можно на одном и том же материале организоватьнесколько разных иерархий.• Глобальный взгляд: специальные системы просмотра могут обеспечитьглобальный взгляд на документ как на сеть узлов, что существеннодля очень больших или сложных документов.


Малинина Ю. В. Среда каталогизации информации по преобразованиям программ 211• Текстовые узлы могут быть собраны вместе различными способами,давая возможность одному и тому же документу выполнять различныефункции.• Модульность информации: так как на один и тот же текстовый сегментможно ссылаться из нескольких мест, мысли могут быть выраженыс меньшими перекрытиями и дублированием.• Связность информации: ссылки становятся неотъемлемой частьютекста, и если какая-то часть текста переносится в другое место, дажев другой документ, информационные ссылки продолжают даватьпрямой доступ к данному фрагменту текста.• Взаимодействие с использованием документа: то, что пользовательсам выбирает путь, по которому он просматривает гипертекст, делаетпользователя активным участником процесса соотнесения гипертекстовогодокумента к задаче, стоящей перед пользователем.• Совместная работа: возможность совместной работы несколькихавторов над одним документом, что дает принципиально новые возможности.Конечно, при увеличении объема и сложности информации, представляемойв виде гипертекста, зачастую читателю все труднее становится понимать,в каком месте сети он сейчас находится и как ему перейти в другоенужное место гипертекста. Эта проблема возникает из-за того, что вгипертексте, в отличие от линейного текста, у пользователя гораздо большевозможных путей просмотра, больше степеней свободы.Существуют два основных технических решения, помогающих решатьэту проблему: подсистема графического просмотра гипертекстовой сети имеханизм поиска по запросу. Подсистема графического просмотра сети ―это подсистема, позволяющая в явном виде представить структуру гипертекстав виде сетевого графа и показать положение пользователя в этой сети.Естественно, такие подсистемы требуют очень высокой разрешающейспособности компьютерных дисплеев. Кроме того, для того чтобы разместитьузлы и связи в двух- или трехмерном пространстве, придать им полезныевизуальные особенности (цвет, форму, размер, фактуру), придерживатьсяполезных соглашений (не размещать два узла слишком близко другот друга и т.п.), разработчики таких подсистем должны решить очень сложнуюпрограммистскую задачу. Но даже и такое сложное программированиевсе равно оказывается стоящим перед тем фактом, что для сложного ин-


212 Программные средства и математические основы информатикиформационного пространства просто не существует естественной топологии.Другое решение этой проблемы ― применить типовую технику поискапо запросу из баз данных. Запрос на поиск обычно организуется в виде некоторойлогической комбинации поиска по ключевому слову, по подстроке,по свойствам узлов или связей.Создание документа в WikiWikiРабота авторов документов обычно рассматривается как работа на уровнеслов и предложений. Ясно, что текстовый редактор ― это хороший инструментдля авторов. Если же рассматривать работу по написанию текстовкак работу по структуризации идей, упорядочиванию представлений, использованиюпонятий, текстового редактора становится недостаточно.Очень немногие авторы просто садятся и пишут законченный текст. В каком-тосмысле авторы ― это проектировщики текстовых документов. Иединицей такого уровня авторской работы является мысль или понятие, иработа такого уровня может быть легко поддержана при помощи гипертекстов.По мере того как автор приходит к новым мыслям, он может развиватьих в виде узлов и затем привязывать эти мысли к единому целому илиделать их изолированными. Таким образом, гипертексты помогают авторудвигаться от слабо структурированной сети мыслей к законченному документу,годному для печати.WikiWiki вводит иной подход создания Интернет страниц. Обычно требуется,чтобы сначала была создана страница, а уже затем на эту страницубыла бы сделана ссылка. В WikiWiki в таком предварительном создании нетнеобходимости. Всякое новое определение сначала вводится в тексте, а потомуже может быть разъяснено. Мы можем ввести в тексте новые термины,например, так называемое WikiWord-слово. После сохранения текстамы получаем страничку, на которой после слова-определения WikiWordпоявилась ссылка со знаком вопроса, сигнализирующая о том, что определениеэтого термина еще не задано. Нажав на эту ссылку, мы создадим новуюстраницу, которая будет содержать определение понятия WikiWord.Преимущество WikiWiki технологии заключается в том, что она позволяетреализовать коллективную работу с гипертекстовыми документами сиспользованием простого языка разметки и обычного браузера. Например,должно быть выработано общее определение и представление о понятии«преобразование программы». В WikiWiki нельзя завести несколько объектовПреобразованиеПрограммы. С другой стороны, к правке понятия Пре-


Малинина Ю. В. Среда каталогизации информации по преобразованиям программ 213образованиеПрограммы имеют доступ все участники, и таким образом реализуетсявозможность хранить несколько точек зрения на некоторое понятиев одном ресурсе, которая особенно важна в случаях, когда в рамкахсовместной работы формируются и обсуждаются термины и определения.На сегодня существует много различных реализаций WikiWiki; их объединяетто, что WikiWiki-страницы имеют два представления. Одно — этовид, который требуется для вывода (обычно это HTML), а второе, доступноедля пользователей, пишется на упрощенном языке разметки, незначительноотличающемся от естественного языка, синтаксис и стиль которогомогут варьироваться в зависимости от конкретной реализации. СистемаWikiWiki дает удобные возможности при создании сложных источниковинформации. Линейный (не гипертекстовый) документ нормально можетчитаться только единственным способом ― каким он организован. У нелинейногоже текста есть существенное достоинство: такой текст можно организоватьразличными способами, в зависимости от точек зрения.Идея WikiWiki хорошо воспринята целым рядом технологических сообществ,но подобные среды оставались атрибутами этих сообществ, невыходя вовне, размеры баз данных в них не превышали нескольких сотенстраниц. Настоящий прорыв произошел в 2001 г., когда Лари Сандр далстарт проекту WikiWikipedia. На октябрь 2003 г. число статей вWikiWikipedia превышает 150 тыс.Ссылки по теме:• http://c2.com/cgi/WikiWiki ― самый первый WikiWiki. ―WikiWiki история развивалась как техническая поддержка хранилищаобразцов и моделей (Patterns).• http://www.WikiWikipedia.org/ ― сайт-энциклопедия в стилеWikiWiki. (http://ru.WikiWikipedia.org/)К несомненным достоинствам WikiWiki относится то, что этот продуктможно использовать и в индивидуальной, и в коллективной практике. Дляиндивидуального использования достаточно на личном компьютере установитьИнтернет-сервер и какой-нибудь из клонов WikiWiki (возможно понадобитсяустановка Perl, php, java – в зависимости от выбранного клона), ивсе это будет быстро и хорошо работать. WikiWiki является хорошим инструментомдля хранения записок по разным темам.Обычно WikiWiki поддерживает следующие возможности редактирования.


214 Программные средства и математические основы информатики• Выделение текста.• Создание списочных структур.• Простое форматирование текста.• Автоматическое задание ссылки для слов определенного формата.• Явное указание ссылок или их отмена.• Использование некоторых HTML тэгов.Интересного эффекта можно добиться интеграцией WikiWiki с коллекцией.В результате этого симбиоза к привычной для всякой WikiWiki возможностисоздания и редактирования гипертекста добавилась возможностьнапрямую ссылаться на нередактируемые тексты, собранные в коллекции.Ссылки на авторов коллекции ведут к их текстам. К авторским текстам добавиласьвозможность «кликнуть» имя автора текста и получить страницыWikiWiki, на которых происходит обсуждение и использование этого текста(своего рода заметки на полях электронных текстов в стиле WikiWiki).Основные возможности, предоставляемые WikiWiki.• Относительная простота «входа» в систему.• Возможность редактирования любой страницы системы любым пользователем.• Возможность многопользовательской работы над документами.• При многопользовательской работе не надо строго формализоватьработу группы.• Контроль версий документов.• Возможность проставления ссылок на несуществующие страницы, атакже возможность проставления ссылок по названию страниц, а непо адресу.• Упрощенная разметка текста: это не WYSIWYG, но все же и неHTML. Впрочем, это можно отнести и к минусам, зависит от того,как вы привыкли редактировать.WikiWiki как хранилище групповой памятиИнтерес к WikiWiki связан с поиском средств, которые бы поддерживаликоллективную научную деятельность. Идея построения направленногографа из неформальных текстовых элементов близка идее семантическойсети из области искусственного интеллекта. Семантическая сеть ― это схемапредставления знаний, состоящая из направленного графа, в которомпонятия представляются как узлы, а отношения между этими понятиями ―как связи между узлами.


Малинина Ю. В. Среда каталогизации информации по преобразованиям программ 215Семантическую сеть отличает то, что понятия индексируются посредствомих семантического содержания, а не каким-либо внешним (возможно,алфавитным) порядком. Одно из преимуществ семантических сетей переддругими схемами представления знаний заключается в том, что использованиеих естественно, т.к. близкие понятия стремятся связаться в единыйпучок сети. Соответственно, легко распознать неполные или неадекватныепонятия, так как смысловой контекст определяется именно связями с соседнимипонятиями.Здесь можно увидеть прямую аналогию с гипертекстами, и в частности сWikiWiki технологией. Отличие состоит в том, что инженер знаний стремитсяпостроить такие представления, которые могли бы автоматическиинтерпретироваться, в то время как цель автора гипертекста ― собратьвзаимосвязанную систему мыслей, не претендуя на машинную интерпретацию.ЗАКЛЮЧЕНИЕИтак, WikiWiki — не случайное событие, а результат закономерногоэволюционного процесса развития гипертекстов. Использование WikiWiki вкачестве инструмента для организации среды построения каталога по преобразованиямпрограмм, на наш взгляд, позволит найти дополнительныевзаимосвязи в области преобразований программ и облегчить повседневнуюработу специалистов в этой области.WikiWiki позволяет организовать в сети для всех участников коллективнойдеятельности общее равнодоступное пространство, где они могут размещатьсвои мысли в форме письменных высказываний, связывать эти высказываниямежду собой, редактировать и корректировать свои и чужиевысказывания. Такую электронную среду можно рассматривать как аналогдоски, на которой может писать и рисовать каждый. Электронная средаимеет очевидное преимущество, поскольку неограниченные размеры позволяютхранить всю историю взаимодействия и все разнообразие связей.Публикуемые в сети документы наряду с текстом могут содержать ссылкина графику, диаграммы, звуковые файлы и другие связанные ресурсы. Общаядеятельность может быть представлена в форме, облегчающей индивидуальноевосприятие.


216 Программные средства и математические основы информатикиСПИСОК ЛИТЕРАТУРЫ1. Bush V. As we may think // The Atlantic Monthly. —1945. — Vol. 176(1). —Р.101–108 — http://www.csi.uottawa.ca/~dduchier/misc/vbush/awmt.html2. Craig R.T. Communication Theory as a Field // Communication Theory. —1999. —N 9 ― Р. 217–242 — http://www.comm.cornell.edu/comm680/craig.pdf.3. McLuhan M. The Medium is the Message. — NY, 1967. —http://uic.nnov.ru/pustyn/lib/maclu.ru.html4. Nelson T. Structure, traditions and possibility // Proc. of the 14th ACM Conf. on Hypertextand hypermedia, Nottingham, UK, August 26–30, 2003. — ACM Press, 2003. —P. 1–15. Турчин В. Феномен науки. Кибернетический подход к эволюции — М: ЭТС, 2000.— 368 с. — http://www.refal.ru/turchin/phenomenon/index.htm6. Фуко М. Археология знания. — Киев: Ника-центр, 1996. — 208с. —http://yanko.lib.ru/books/cultur/foucalt_larcheologie_du_savoir_ru.htm


В. А. Маркин, С. А. МаркинаСИСТЕМА ДЛЯ БЫСТРОГО ПРОТОТИПИРОВАНИЯРАСПАРАЛЛЕЛИВАЮЩЕГО КОМПИЛЯТОРАПРОГРЕСС-2.ЯДРО СИСТЕМЫ. СЦЕНАРИЙ СИСТЕМЫ *ВВЕДЕНИЕДанная статья является продолжением статьи [1], описывающей системудля быстрого создания прототипа распараллеливающего компилятора. Системасоздается как инструмент для манипулирования программами; чтоозначает пошаговое преобразование программ — начиная с исходного текстапрограммы на одном из языков высокого уровня, переводим программув одно из внутренних представлений и далее пропускаем программу черезразличные проходы-блоки. В конце концов, мы можем получить текстовоепредставление распараллеленной программы либо исполняемый код длязапуска программы на одной из целевых архитектур. Теоретические размышленияи предпосылки создания подобной системы можно найти в работах[2,3] по проекту ПРОГРЕСС, в рамках которого и начиналась работанад описанной далее системой.Центральным понятием работы системы является СЦЕНАРИЙ прототипасоздаваемого компилятора. В сценарии определяется множество и порядокисполнения функциональных и инструментальных компонент системы.Компонентом системы может быть либо front-end с одного из языков высокогоуровня, обход дерева внутреннего представления системы либо анализсвойств программ. Компонент может быть интерактивным, ориентированнымна взаимодействие с пользователем, иметь внешний графический интерфейс.Такие компоненты, например, могут служить для визуализацииодного из теоретико-графовых внутренних представлений программ. Однотипныекомпоненты могут быть объединены в функциональные блоки.Функциональные и инструментальные блоки реализуются как внешниебиблиотеки (dll либо элементы ActiveX) с учетом заданных интерфейсоввзаимодействия с системой, а точнее с Внутренним Представлением Систе-* Работа выполнена при финансовой поддержке Российского Фонда Фундаментальных Исследований(гранты № 02-07-90409 и 03-07-06-112).


218 Программные средства и математические основы информатикимы Прогресс-2. Регистрация либо загрузка соответствующих компонентовпроисходит во время запуска системы, либо во время начала работы надзаданным СЦЕНАРИЕМ.Исходя из выше сказанного, система рассматривается как КОНСТРУК-ТОР для построения прототипа компилятора, кирпичиками которого являютсяразличные функциональные и инструментальные компоненты. С помощьюзаданного СЦЕНАРИЯ пользователь сможет построить, исполнитьлибо исследовать прототип построенного компилятора.Компоненты системы могут быть реализованы как отдельные процедурывнешней библиотеки, взаимодействующие с заданными объектами внутреннегопредставления системы. Либо компонент может быть определенкак тип СООБЩЕНИЯ плюс множества ОБРАБОТЧИКОВ-ДЕЙСТВИЙ наданное сообщение для определенных типов объектов внутреннего представления.Для активизации данного типа компонента достаточно передатьсообщение объекту внутреннего представления, обычно вершине какоголибографового представления программы.ЯДРО И ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ СИСТЕМЫТребования и общая модельОсновным компонентом системы является расширяемое внутреннеепредставление системы (ВП), которое служит для связи между компонентами.Главными целями при его проектировании являлись универсальность(общность), расширяемость и гибкость. Данное представление должнобыло бы позволить переводить во внутреннее отображение многие широкораспространенные языки программирования, а также обобщить различныетеоретико-графовые внутренние представления, разработанные за последнеевремя.Модель разработанного внутреннего представления можно разделить надве составляющие: Языковая составляющая и Графовая составляющая.Языковая составляющая ВП — это множество синтаксических и семантическихобъектов, иерархически упорядоченных, отображающих большинствообщих конструкций входных языков. Все объекты распределяютсяна области видимости, тем самым ВП включает в себя таблицы объектовдля каждой области видимости и операторную часть. Операторная частьпредставлена в виде абстрактного синтаксического графа, узлы которогоделятся на семантические и управляющие вершины. К семантическим вер-


Маркин В.А., Маркина С.А. Быстрое прототипирование компилятора Прогресс-2 219шинам относятся if-вершины, loop-вершины, или операторные вершины. Куправляющим относятся вершины-директивы сценария, или дополнительныевершины ВП. Множество конструкций, соответствующих большинствуконструкций императивных языков программирования, расширено операторамис параллельной семантикой исполнения.К графовой составляющей ВП относятся различные теоретико-графовыепредставления программ, такие как управляющие граф, ГПЗ, граф зависимостейпо данным и т.д. Пользователь может реализовать свое графовоепредставление и встроить в систему, при условии, что типы вершин графабудут унаследованы от базового типа Node_Object, который, в свою очередь,унаследован от основного класса OMA_Object.Базовые классы и механизм передачи сообщенийБазовым классом для всех объектов ВП системы является классOMA_Object. Основным атрибутом данного класса является указатель наобъект типа OMA_ObjectType(*). Классы, наследованные от классаOMA_ObjectType, определяют типы различных объектов ВП и содержатлокальные кучи объектов OMA_Object данного типа, что в частности позволяетдинамически вести контроль выделения и удаления памяти. Внутренняяреализация класса (*) позволяет вести регистрацию всех наследуемыхот него типов, динамического создания объектов и контроль типов.При рассмотрении интерфейса класса OMA_Object:class PUBLIC OMA_Object: public OMA_Message{public:static OMA_ObjectType *Type();...private:OMA_Act *act;public:OMA_ObjectType *ObjectType() const…//void Act(OMA_Message &msg)OMA_Act *SetAct(OMA_Act *new_act=NULL)…static void ClassAct(OMA_Object *obj, OMA_Message &msg);};помимо указателя на тип объекта можно выделить дополнительную составнуючасть атрибутов и методов, связанных с обработкой СООБЩЕНИЙ


220 Программные средства и математические основы информатики(объекты, наследованные от класса OMA_Message). Данные СООБЩЕНИЯмогут быть реализацией какого-либо функционального компонента в видепрохода объектов ВП. При этом определенным типам объектов ВП устанавливаетсяопределенный обработчик выше указанного СООБЩЕНИЯ.Рассмотрим использование механизма передачи сообщений на примервычисление арифметического выражения. Допустим, что входное арифметическоевыражение(5+10-25)*2было переведено во ВП в виде бинарного дерева. Вершины данного дереваявляются экземплярами классаclass Exp_Node { // должен быть наследован от OMA_Objectили, если мы хотим воспользоваться средствами визуализацииграфовых представлений от Node_Object// Предположим второе…Uint type; // 0 — если числовая константа 1- если сложение 2 —минус и т.д.OMA_Variant val;// значение числовой константы Описание класса OMA_Variantсмотри ниже…}ПеременнаяExp_Node* Root //указатель на вершинууказывает на вершину.Определяем новый тип сообщениеClass Calc_Exp: public OMA_Message{…}OMA_Variant curVal;


Маркин В.А., Маркина С.А. Быстрое прототипирование компилятора Прогресс-2 221и определяем обработчик сообщений для типа вершин Exp_Node для сообщенияCalc_Exp.Static void OnCalcExp(Exp_Node* c, Calc_Exp & msg){ if (!c->type) msg.curVal=val;else{ c->son[0]->Act(msg);OMA_Varinat left=msg.curVal;c->son[1]->Act(msg);if (c->type==1) msg.curVal=left+msg.curVal;else… // Для остальных операций}}Теперь необходимо подключить обработчик сообщений к типу вершинExp_NodeExp_Node::Type()->SetAct(OnCalcExp, Calc_Exp::Type());и запустить проход, передав сообщение вершине дереваCalc_Exp msg;Root->Act(msg);После обработки сообщения в поле msg.curVal мы получим значениенашего арифметического выражения.Введение механизма передачи СООБЩЕНИЙ позволяет легко переноситьи модифицировать уже реализованные библиотечные компоненты.Допустим, что кем-то реализован алгоритм. Описаны множество типовобъектов ВП, с которыми реализация оперирует. Тогда, во-первых, данныйалгоритм сможет обрабатывать введенные новые типы объектов ВП ( приусловии, что они наследованы от описанных в реализации алгоритма). А вовторых,можно просто подключить свой обработчик сообщений для определенноготипы вершины, не переписывая всю реализацию.


222 Программные средства и математические основы информатикиДополнительные классы, типы данных, системные библиотекиОсновной целью при проектировании ВП ставилась его расширяемость.Поэтому ВП организовано в виде иерархии классов и библиотеки работы сними. При разработке новых функциональных компонентов системы пользовательможет либо по-своему интерпретировать зарезервированное поле,присутствующее в любом из классов, либо наследовать от уже существующихклассов новые типы объектов.Если говорить о языковой составляющей ВП, то базовым классом длявсех внутренних объектов является класс UIFFEO_Object (унаследованныйот базового класса OMA_Object), а для объектов операторной части —класс UIFFE_Object. Любой объект ВП содержит атрибуты, необходимыедля визуализации программы. Для каждого объекта хранятся координатыего текстового прообраза — это номер строки и номер литеры в строке потекстовому файлу, для начальной и конечной литеры конструкции в текстеисходной программы. К атрибутам визуализации также можно отнестиидентификатор исходной программы, вид объекта, цикла, безусловного переходаи информацию о переименование объектов в тексте исходной программы.Помимо основных объектов в ВП введены системно зависимые объекты,так называемые директивы компилятора. Они могут быть установленыпользователем между запуском различных частей компилятора и указыватьсистеме на вызов каких-либо библиотечных алгоритмов, функций и т.д. (восновном это объекты интерпретатора Сценария).Помимо реализации типов объектов ВП в системной библиотеке реализованыразличные структуры данных: массивы, неограниченные массивы,упорядоченные списки, древовидные структуры данных и т.д. Данныеструктуры и их реализации спроектированы с учетом поддержки механизмапередачи сообщений, что может упростить реализацию новых функциональныхкомпонентов.Дополнительно, в системной библиотеке реализован классOMA_Variant, инкапсулирующий в себя различные типы данных: integer,uint, float, double, char и т.д., а также указатель на базовый классOMA_Object. Вариантный тип может быть использован, когда тип объектаявно не определен, а типизация происходит в период выполнения программы.Более детально это будет видно при описании Языка Сценариев.Системная библиотека, которая автоматически подключается при запускеинтерпретатора Сценариев, предоставляет также функции для работы скомандной строкой, файловой системой, окнами и консолями, функции для


Маркин В.А., Маркина С.А. Быстрое прототипирование компилятора Прогресс-2 223обработки ошибок, для работы с внешними библиотеками, хэш-таблицамии механизмы обработки текстовых файлов.СЦЕНАРИЙДля создания своего собственного прототипа компилятора, пользователюнеобходимо определить СЦЕНАРИЙ его работы. Иными словами, пользователюнеобходимо задать набор программных библиотек, которыми онбудет пользоваться, определить множество типов объектов внутреннегопредставления и определить множество и порядок исполнения функциональныхкомпонентов (далее ПРОХОДОВ). Это может быть либо парсер,либо алгоритм оптимизации или преобразования дерева, либо компонентвизуализации, например, Графа Программных Зависимостей. Ниже приведенвозможный сценарий возможного прототипа компилятора “Конвертор cязыка Паскаль в С”:lib Pas=libPascal;libMy;Gr=libGraph;pass Pas.Translate {UIFFE_Assign=libMy.OnTranslate_UIFFE_Assign;};pass Gr.BuildGraph;pass Gr.VisCGraph;$Module:=Pas.PASP_OpenFile(@1);$Module:=PAS.PASP_TextParse($Module);if ($Error ) {$OutputError(ErrMes);}else{$Root:=Gr.Build_CGraph($Module);$Window_Title:="Control Graph";Gr.Out_Graph($Root);Run $Module(PAS.Translate); (***)IF ($Error) {$OutputError($ErrorMes) ;}}end.Далее разберем пример подробнее.


224 Программные средства и математические основы информатикиДекларация библиотек и сообщенийВ данном примере можно увидеть основные объекты и операторы ЯзыкаОписания Сценариев (ЯОС). В начале сценария пользователю необходимоопределить, какими программными библиотеками он будет пользоваться.Данные библиотеки он может взять из предложенных в системе либо написатьсвою, которую можно включить в сценарий. В нашем примере можновидеть, что используются три библиотеки: libPascal.dll (библиотека парсеровс языков Паскль и С), libMy.dll (дополнительная библиотека с измененнымобработчиком сообщений) и libGraph.dll (библиотека работы с графовымипредставлениями). Для задания используемых библиотек используетсяблок lib. Синонимы PAS и GR, заданные при объявлении библиотек,могут в дальнейшем использоваться пользователем для сокращения записивызываемых функциональных и инструментальных библиотек. При подключениибиблиотеки интерпретатор автоматически вызывает процедуру_Start , в которой программист, создающий библиотеку, можетинициализировать необходимые для работы библиотечных функций данные.Помимо этого, при завершении сценария интерпретатор вызывает длякаждой загруженной библиотеки процедуру _Finish, где можновставить вызовы деструкторов используемых объектов.С помощью декларации pass пользователь объявляет используемые вдальнейшем проходы из библиотек. Проходы — это вид СООБЩЕНИЙ,описанный выше. Для проведения необходимых инициализирующих действийдля проходов можно определить библиотечную функцию_Init, которая будет вызываться интерпретатором при объявлениипрохода. Кроме этого, пользователь во время декларации библиотечногопрохода может переопределить обработчик сообщений для конкретныхтипов объектов ВП системы. Так, в выше приведенном примере предлагаетсядля сообщения Translate, определенного в библиотеке libPascal,имеющей синоним PAS, переопределить обработчик сообщений для объектовВП типа UIFFE_Assign (присваивание) на другой, из пользовательскойбиблиотеки libMy. Теперь, например, на выходе в С-коде вместо текстаA= b+c;будем генерировать, к примеру, следующее:A= b+ c; // Input data b & c; Output data A.Тем самым, мы, не затрагивая всю реализацию С-кодогенератора и дереваразбора, поменяли лишь обработчик сообщений для вершин типа


Маркин В.А., Маркина С.А. Быстрое прототипирование компилятора Прогресс-2 225UIFFE_Assign (присваивание). А все остальные обработчики остались библиотечными.Здесь необходимо указать, что специальные библиотечные функциидолжны иметь определенную сигнатуру.• Функция инициализации библиотеки — void _Init ()• Функции деинициализации библиотек — void _Finish ()• Функции инициализации СООБЩЕНИЙ — void _Init()• Обработчики СООБЩЕНИЙ —void (OMA_Object *c, OMA_Message &msg)Уже внутри реализации обработчика необходимо проверять конкретныетипы входных параметров.Рассмотрим пример реализации переопределенного обработчика из нашегоскрипта:__declspec(dllexport) void OnTranslate_UIFFE_Assign(OMA_Object *c,OMA_Message &msg){if (msg.IsOf(Translate::Type()))OnTranslate((UIFFE_Assign*)c,(Translate&)msg);elsec->Act(msg);}Здесь OnTranslate — это статическая процедура с конкретными действиямиобработчика. В начале происходит проверка типа сообщения msg.Если данный объект типа Translate — это сообщение-проход, отвечающееза кодогенерацию, то выполняем свои действия. Иначе объектуOMA_Object передаем сообщение msg. Конечно, здесь необходимо былобы дополнительно проверить тип объекта с на его принадлежность кобъектам типа UIFFE_Assign, но в этом нет необходимости, если мыточно знаем, что данный обработчик определен только для объектов типаUIFFE_Assign.• Функциональный и инструментальный компонент —OMA_Variant (OMA_Variant& in)Как видно из сигнатуры, тип входного параметра и результата имеютвариантный тип. Данный подход позволяет создавать практически различныекомпоненты, не усложняя реализацию интерпретатора, но на-


226 Программные средства и математические основы информатикикладывает определенные требования к документированию библиотексистемы. Необходимо точно указать, какой тип передается на входе ввариантной переменной, и какой — на выходе. В нашем скрипте, например,компонент Gr.Build_CGraph (построение управляющего графа)на входе должен получить указатель на объект типа UIFFEO_Module(класс, инкапсулирующий в себе указатели на объекты транслируемогомодуля и указатель на вершины дерева разбора). А на выходе получаемуказатель на вершину управляющего графа типа, наследованного откласса Node_Object.Другими объектами ЯОС являются переменные. Имена переменных начинаютсясо знака $. Все переменные имеют вариантный тип OMA_Variant.Нет необходимости явно объявлять переменную. Она создается в моментпервого присваивания значения переменной. Переменные можно изменятьне только в скрипте, но и внутри библиотечных компонентов с помощьюбиблиотечных функций:OMA_Variant Get_Engine_Variable(const char* name)OMA_Variant Set_Engine_Variable(const char* name,OMA_Variant& val)Вторая функция возвращает старое значение переменной, если она существует,либо создает новую переменную с именем name и возвращаетновое значение.В нашем примере переменная $Window_Title используется компонентомBuild_CGraph для указания имени GUI окна компонента. Если переменнаяне задана, то задается заголовок по умолчанию (надпись “Graph”).Все переменные делятся на• пользовательские, обычные переменные;• системные переменные, существующие по умолчанию. Например,переменная $Error содержит код последней ошибки, а $ErrMes —текстовое представление;• аргументы командной строки. Имеют вид @n, где n — номер аргументаначиная с единицы.


Маркин В.А., Маркина С.А. Быстрое прототипирование компилятора Прогресс-2 227Операторная частьОстальные конструкции ЯОС представляют операторную часть языка.Ниже описаны эти операторы.Оператор вызова библиотечного компонента. В нашем примере это вызовпроцедур Pas.PASP_OpenFile, PASP_TextParse, Gr.Build_CGraph,Gr.Out_Graph. Первые два компонента отвечают за открытие текстовогофайла и разбор Паскаль-программы. Последние два используются для построенияУправляющего графа программы и вывода его на экран. Все такиекомпоненты имеют одинаковую сигнатуруOMA_Variant (OMA_Variant& in).Видно, что для передачи и возврата данных используется вариантныйтип, поэтому при описании создаваемого компонента пользователь долженбудет явно указать: что скрывается за вариантными параметрами. Данноетребование должно облегчить процесс создания новых функциональныхкомпонентов. Например, известно, что компонент визуализации произвольногографа Gr.Out_Graph на входе должен получить указатель на вершинутипа Node_Object. Соответственно, если мы хотим воспользоваться даннымкомпонентом, то все вершины нашего графового представления должнынаследоваться от типа Node_Object.Функциональный компонент, как видно выше, может возвращать значение,которое может быть присвоено переменной сценария. Переменная сценариявсегда имеет вариантный тип, и имя ее начинается со знака $. Переменныесценария служат для передачи данных между компонентами либодля вывода внутрисистемной информации.С помощью оператора IF_ELSE можно определять поток управления всценарии.И последний оператор — это оператор RUN. Семантика данного оператораопределяется как передача определенного сообщения объекту ВП. В нашемпримере в строке (***) объекту $Module передается сообщение Translate,где переменная $Module содержит указатель на объект типа UIF-FEO_Module, что можно рассматривать как корень языкового компонентаВП.


228 Программные средства и математические основы информатикиЗАКЛЮЧЕНИЕДанная публикация дает краткое представление об основных компонентахсистемы и ее архитектурных особенностях. Более детальное описание спримерами можно найти на сайте разработчиков системыhttp://pco.iis.nsk.su/progress.На текущем этапе работы идет создание программных библиотек длясистемы, их наполнение различными функциональными компонентами.Уже готовы такие компоненты системы, как парсеры с языка Паскаль и С,кодогенераторы в язык С, построение управляющего графа программы иего визуализации. Набор данных библиотек постоянно пополняется как авторамисистемы, так и некоторыми сторонними пользователями.СПИСОК ЛИТЕРАТУРЫ1. Маркин В.А., Маркина С.А. Проект системы для быстрого прототипированияраспараллеливающего компилятора. Универсальное внутреннее представлениесистемы // Современные проблемы конструирования программ. —Новосибирск,2002.2. Kasyanov V.N., Evstigneev V.A. The PROGRESS program manipulation system //Proc. of the Intern. Conf. “Parallel Computer Technologies”. — Obninsk, 1993. —Vol.3. — P. 651–6563. Kasyanov V.N., Evstigneev V.A., Gorodniaia L. The system PROGRESS is a tool forparallelizing compiler prototyping // Proc. of 8-th SIAM Conf. on Parallel Processingfor Scientific Computing (PPSC-97). — Minneapolis, 1997. — P. 301–306.


А. Л. СеребренниковСТАНДАРТНЫЕ И НОВЫЕ ПОДХОДЫ К АРХИТЕКТУРЕ И МЕТОДАМОБУЧЕНИЯ В СРЕДЕ SIGNIFICO,ОСНОВНЫЕ НАПРАВЛЕНИЯ РАЗВИТИЯ СРЕДЫ *1. ВВЕДЕНИЕВ данной работе описывается проектируемая интегрированная средасоздания, обучения и диагностики нейросетей под названием Significo. Потенциальныхпользователей среды Significo можно разделить на две категории.Первая категория пользователей — это исследователи как нейросетей,так и методов их обучения. Вторая категория — это разного рода аналитики.В данное время на рынке программных продуктов широко представленыпакеты для использования нейросетевых технологий, но эти пакеты, какправило, предназначены для финансового прогнозирования. Доминирующеечисло существующих пакетов использует традиционные подходы иметоды, имея только лишь продуманный и удобный интерфейс. Учитываявышесказанное, становится явной востребованность в интегрированнойсреде, которая позволила бы не только специалистам в области нейросетевыхтехнологий удобно проводить исследования, но и аналитикам анализироватьразличные предметные области.Эта статья содержит шесть основных разделов.• Задачи, решаемые с помощью нейросетевых технологий.• Преобработка данных.• Концепции передачи данных.• Новые подходы к задаче проектирования структуры сети.• Новые подходы к задаче обучения нейросетей.• Интерфейсная часть.В этих разделах сначала будут рассматриваться стандартные подходы, азатем сравниваться с новыми по временным и качественным характеристикам.* Работа выполнена при финансовой поддержке Министерства образования РФ (грант№ Е02-1.0-42).


230 Программные средства и математические основы информатики2. ЗАДАЧИ, РЕШАЕМЫЕ С ПОМОЩЬЮНЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙКлассификацияОтметим, что задачи классификации (типа распознавания букв) оченьплохо алгоритмизуются. Если в случае распознавания букв верный ответочевиден для нас заранее, то в более сложных практических задачах обученнаянейросеть выступает как эксперт, обладающий большим опытом испособный дать ответ на трудный вопрос.Примером такой задачи служит медицинскаядиагностика, где сеть можетучитывать большое количество числовыхпараметров (энцефалограмма, давление,вес и т.д.). Конечно, «мнение»сети в этом случае нельзя считать окончательным.Классификация предприятийпо степени их перспективности— это ужепривычный способ использованиянейросетей в практикезападных компаний.При этом сеть также используетмножество экономических показателей, сложным образом связанныхмежду собой.Нейросетевой подход особенно эффективен в задачах экспертной оценкипо той причине, что он сочетает в себе способность компьютера к обработкечисел и способность мозга к обобщению и распознаванию. Говорят,что у хорошего врача способность к распознаванию в своей области стольвелика, что он может провести приблизительную диагностику уже по внешнемувиду пациента. Можно согласиться также, что опытный трейдер чувствуетнаправление движения рынка по виду графика. Однако в первомслучае все факторы наглядны, т. е. характеристики пациента мгновенно воспринимаютсямозгом как «бледное лицо», «блеск в глазах» и т.д. Во второмже случае учитывается только один фактор, показанный на графике, — курсза определенный период времени. Нейросеть позволяет обрабатывать ог-


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 231ромное количество факторов (до нескольких тысяч) независимо от их наглядности;это универсальный «хороший врач», который может поставитьсвой диагноз в любой области.Кластеризация и поиск зависимостейПомимо задач классификации, нейросети широко используются для поисказависимостей в данных и кластеризации.Например, нейросеть на основе методикиМГУА (метод группового учета аргументов)позволяет на основе обучающейвыборки построить зависимость одногопараметра от других в виде полинома. Такая сеть может не только мгновенновыучить таблицу умножения, но и найти сложные скрытые зависимостив данных (например, финансовых), которые не обнаруживаются стандартнымистатистическими методами.Кластеризация — это разбиение наборапримеров на несколько компактных областей(кластеров), причем число кластеровзаранее неизвестно. Кластеризация позволяетпредставить неоднородные данные вболее наглядном виде и использовать далеедля исследования каждого кластера различныеметоды. Например, таким образомможно быстро выявить фальсифицированные страховые случаи или недобросовестныепредприятия.ПрогнозированиеЗадачи прогнозирования особенно важны для практики, в частности, дляфинансовых приложений, поэтому поясним способы применения нейросетейв этой области более подробно.Рассмотрим практическую задачу, ответ в которой неочевиден, — задачупрогнозирования курса акций на 1 день вперед.Пусть у нас имеется база данных, содержащая значения курса за последние300 дней. Простейший вариант в данном случае — попытаться построитьпрогноз завтрашней цены на основе курсов за последние несколькодней. Понятно, что прогнозирующая сеть должна иметь всего один выход истолько входов, сколько предыдущих значений мы хотим использовать дляпрогноза, например, 4 последних значения. Составить обучающий пример


232 Программные средства и математические основы информатикиочень просто: входными значениями будут курсы за 4 последовательныхдня, а желаемым выходом — известный нам курс в следующий день за этимичетырьмя.Если нейросеть совместима с какой-либо системой обработки электронныхтаблиц (например, Excel), то подготовка обучающей выборки состоитиз следующих операций.1. Скопировать столбец данных значений котировок в 4 соседних столбца.2. Сдвинуть второй столбец на 1 ячейку вверх, третий столбец — на 2ячейки вверх и т.д.Смысл этой подготовки легко увидеть на рисунке: теперь каждая строкатаблицы представляет собой обучающий пример, где первые 4 числа —входные значения сети, а пятое число — желаемое значение выхода. Исключениесоставляют последние 4 строки, где данных недостаточно, — этистроки не учитываются при тренировке. Заметим, что в четвертой снизустроке заданы все 4 входных значения, но неизвестно значение выхода.Именно к этой строке мы применим обученную сеть и получим прогноз наследующий день.Как видно из этого примера, объем обучающей выборки зависит от выбранногонами количества входов. Если сделать 299 входов, то такая сеть


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 233потенциально могла бы строить лучший прогноз, чем сеть с 4 входами, однаков этом случае мы имеем всего 1 обучающий пример, и обучение бессмысленно.При выборе числа входов следует учитывать это, выбирая разумныйкомпромисс между глубиной предсказания (число входов) и качествомобучения (объем тренировочного набора).3. ПРЕОБРАБОТКА ДАННЫХПреобработка данных имеет важнейшее значение, от возможностей этойчасти системы зависит в целом гибкость среды. Предполагается, что преобработкабудет содержать 3 раздела.Раздел символьной обработки конвертирует буквенно-численные выраженияв числовой вид, который уже может быть обработан нейросетью.Например, понятия «холодно», «тепло», «жарко» можно представить числами0, 1 и 2 соответственно.Раздел логической обработки конвертирует данные числового вида, руководствуясьправилами пользователя, здесь имеются в виду правила типа«если—то—иначе».Раздел спектральной обработки позволяет убрать из зависимостей помехи,например, различные циклически встречающиеся изменения в зависимостях.4. НОВЫЕ ПОДХОДЫ К РЕШЕНИЮ ЗАДАЧПРОЕКТИРОВАНИЯ СТРУКТУРЫ НЕЙРОСЕТИРассмотрим основные архитектуры нейросетей, имеющиеся на данныймомент. В этой статье выделено несколько нейросетевых архитектур. Каждаяархитектура наилучшим образом подходит для решения специфическогокруга задач.Стандартные сетиЭто стандартный тип сетей с обратным распространением, в которомкаждый слой связан только с непосредственно предшествующим слоем. Этосамая простая архитектура, и используется она в основном при решениизадач распознавания образов.


234 Программные средства и математические основы информатикиСети с обходными соединениямиВ сетях с обратным распространением этого типа каждый слой связан совсеми предшествующими слоями. Задачи, выполняемые сетями с обходнымипутями, сходны с задачами, решаемыми стандартными сетями, но в некоторыхслучаях данные сети более помехоустойчивы.Рекуррентные сетиРекуррентные сети с обратным распространением ошибки очень хорошоподходят для решения задач прогнозирования. Например, часто применяютсядля финансовых биржевых предсказаний, поскольку эти сети могутзапоминать последовательности. Благодаря этому свойству, такие сети являютсяпрекрасным инструментом для работы с данными, представляющимисобой временные серии.Обычные сети с обратным распространением дают всегда в точноститот же самый ответ на один и тот же предъявляемый образ, тогда как ответрекуррентной сети в подобных случаях будет зависеть от того, какие образыпредъявлялись сети перед этим. Рекуррентные сети обладают долговременнойпамятью, построенной на внутренних нейронах.Сети ВордаСети этого типа способны выделять различные свойства в данных, благодаряналичию в скрытом слое нескольких блоков, каждый из которыхимеет свою передаточную функцию. Передаточные функции (обычно сигмоидноготипа) служат для преобразования внутренней активности нейрона.Когда в разных блоках скрытого слоя используются разные передаточныефункции, нейросеть оказывается способной выявлять новые свойства впредъявляемом образе.Все вышеуказанные архитектуры являются архитектурами с обратнымраспространением ошибки и могут использовать разные способы подстройкивесов: Простой, С Моментом и др. При Простом способе тренировки припредъявлении каждого примера происходит подстройка весов с заданнойскоростью обучения. Подстройка С Моментом означает, что при модификациивесов учитывается не только заданная скорость обучения, но и предыдущееизменение веса. TurboProp — это такой способ тренировки, прикотором веса модифицируются после предъявления всех примеров (пакетнаяподстройка весов). Этот метод иногда работает гораздо быстрее, чемдругие алгоритмы обратного распространения ошибки.


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 235Все сети с обратным распространением ошибки используют Калибровку,что предотвращает возможность «переучивания» сети (и тем самымсильно сокращает время тренировки), а также улучшает способность сетиобобщать информацию.Сети КохоненаДанные сети называют Саморганизующейся Картой Кохонена. Эта архитектурапризвана решать задачи классификации. Сетям этого типа в процессеобучения не нужен «учитель», т.е. в процессе тренировки не требуется сообщатьсети правильный ответ при предъявлении примера. Эти сети способнынаходить распределение данных на различные категории (классы).Вероятностные нейронные сетиВероятностные Нейронные Сети (ВНС) известны своей способностьюобучаться на ограниченных наборах данных, причем для обучения нейросетидостаточно однократного предъявления тренировочного набора! ВНСразделяет данные на указанное количество выходных категорий. Сеть ВНСзачастую способна работать уже после предъявления ей всего двух примеровиз тренировочного набора, поэтому тренировка может осуществлятьсяпоэтапно.Нейронные сети с общей регрессиейПодобно сетям ВНС, Нейронные Сети с Общей Регрессией (НСОР) известнысвоей способностью обучения в результате однократного предъявлениятренировочных данных. Однако в отличие от сетей ВНС, которыеклассифицируют данные, сети НСОР способны предсказывать выходы снепрерывной амплитудой.НСОР особенно полезны для аппроксимации непрерывных функций и могутстроить многомерные поверхности, аппроксимирующие данные. Обнаружено,что для многих типов задач сети НСОР делают предсказания значительнолучше, чем сети с обратным распространением ошибки. ОбращаемВаше внимание: НСОР не использует приемов регрессионного анализа!Для сетей ВНС и НСОР термин «Калибровка» означает оптимизациюпараметра сглаживания, который используется в момент применения сетей.Модуль Калибровки с Генетическим Поиском использует генетический алгоритмдля нахождения индивидуальных параметров сглаживания для каж-


236 Программные средства и математические основы информатикидой входной переменной, что дает возможность получить сеть с очень хорошимиобобщающими свойствами.Полиномиальные сетиПолиномиальные сети представляют собой мощную архитектуру, называемуюМетодом группового учета аргумента (МГУА) или полиномиальнымисетями. На самом деле, сеть МГУА непохожа на обычные сети спрямой связью, и изначально эта архитектура обычно не представлялась ввиде сети. Сеть МГУА содержит в связях полиномиальные выражения ииспользует в некотором смысле аналогичный генетическим алгоритмаммеханизм принятия решения о том, сколько слоев необходимо построить.Результатом тренировки является возможность представить выход как полиномиальнуюфункцию всех или части входов.Новые подходы к проектированию архитектуры сети заключаются втом, что сеть должна быть разделена на отдельные взаимодействующиеблоки с различным функциональным назначением. Как правило, аналитик,работающий над какой-либо предметной областью, может разделить поставленнуюперед ним задачу на функциональные блоки и определить междуними связь. При данной архитектуре функционального разделения общаясеть обладает двумя бесспорными плюсами. Первый плюс — это то,что одна большая сеть делится на несколько, это даёт выигрыш во времениобучения и потребляемых ресурсах.В этом можно убедиться, рассмотрев график зависимости времени обучениянейросети на тестовом наборе обучающих пар от количества нейроновв нейросети (рис. 4.1).


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 23725002000150010005000506070801002003004005001000Рис. 4.1. График зависимости времени обучения нейросетиот количества нейронов в нейВторой плюс — это то, что отдельные блоки сети могут состоять из сетейразличной архитектуры, что позволяет решать различные функциональныезадачи сетями соответствующих архитектур.5. НОВЫЕ ПОДХОДЫ К ОБУЧЕНИЮ НЕЙРОСЕТЕЙОбучение сети — это самый ресурсоёмкий процесс в работе с нейросетями.Оптимизация методов обучения позволяет открыть новые возможностинейросетей. Рассмотрим стандартные методы обучения нейросетей обратногораспространения. Эти методы делятся в общем случае на 2 категории:рекурсивные и стохастические.Долгое время не было теоретически обоснованного алгоритма для обучениямногослойных искусственных нейронных сетей. А так как возможностипредставления с помощью однослойных нейронных сетей оказалисьвесьма ограниченными, то и вся область в целом пришла в упадок.Разработка алгоритма обратного распространения сыграла важную рольв возрождении интереса к искусственным нейронным сетям. Обратное распространение— это систематический метод для обучения многослойных


238 Программные средства и математические основы информатикиискусственных нейронных сетей. Он имеет солидное математическое обоснование.Несмотря на некоторые ограничения, процедура обратного распространениясильно расширила область проблем, в которых могут бытьиспользованы искусственные нейронные сети, и убедительно продемонстрироваласвою мощь.Сетевые конфигурацииНа рис. 5.1 показан нейрон, используемый в качестве основного строительногоблока в сетях обратного распространения. Подается множествовходов, идущих либо извне, либо от предшествующего слоя. Каждый из нихумножается на вес, и произведения суммируются. Эта сумма, обозначаемаяNET, должна быть вычислена для каждого нейрона сети. После того каквеличина NET вычислена, она модифицируется с помощью активационнойфункции и получается сигнал OUT.Рис. 5.1. Искусственный нейрон с активационнной функциейНа рис. 5.2 показана активационная функция, обычно используемая дляобратного распространения.1OUT = . (5.1)1+ e−NET


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 239Рис. 5.2. Сигмоидальная активационная функцияКак показывает уравнение (5.2), эта функция, называемая сигмоидом,весьма удобна, так как имеет простую производную, что используется приреализации алгоритма обратного распространения.∂OUT = OUT(1 − OUT) . (5.2)∂NETСигмоид, который иногда называется также логистической или сжимающейфункцией, сужает диапазон изменения NET так, что значение OUTлежит между нулем и единицей. Как указывалось выше, многослойные нейронныесети обладают большей представляющей мощностью, чем однослойные,только в случае присутствия нелинейности. Сжимающая функцияобеспечивает требуемую нелинейность.В действительности имеется множество функций, которые могли быбыть использованы. Для алгоритма обратного распространения требуетсялишь, чтобы функция была всюду дифференцируема. Сигмоид удовлетворяетэтому требованию. Его дополнительное преимущество состоит в автоматическомконтроле усиления. Для слабых сигналов (величина NET близкак нулю) кривая вход-выход имеет сильный наклон, дающий большое усиление.Когда величина сигнала становится больше, усиление падает. Такимобразом, большие сигналы воспринимаются сетью без насыщения, а слабыесигналы проходят по сети без чрезмерного ослабления.


240 Программные средства и математические основы информатикиМногослойная сетьНа рис. 5.3 изображена многослойная сеть, которая может обучаться спомощью процедуры обратного распространения (для ясности рисунок упрощен).Первый слой нейронов (соединенный с входами) служит лишь вкачестве распределительных точек, суммирования входов здесь не производится.Входной сигнал просто проходит через них к весам на их выходах. Акаждый нейрон последующих слоев выдает сигналы NET и OUT, как описановыше.Рис. 5.3. Двухслойная сеть обратного распространения (ε — желаемый сигнал)В литературе нет единообразия относительно того, как считать числослоев в таких сетях. Одни авторы используют число слоев нейронов (включаянесуммирующий входной слой), другие — число слоев весов. Так какпоследнее определение функционально описательное, то оно будет использоватьсяна протяжении всей статьи. Согласно этому определению, сеть нарис. 5.3 рассматривается как двухслойная. Нейрон объединен с множествомвесов, присоединенных к его входу. Таким образом, веса первого слояоканчиваются на нейронах первого слоя. Вход распределительного слоясчитается нулевым слоем.


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 241Процедура обратного распространения применима к сетям с любымчислом слоев. Однако для того чтобы продемонстрировать алгоритм, достаточнодвух слоев. Сейчас будут рассматриваться лишь сети прямого действия,хотя обратное распространение применимо и к сетям с обратными связями.Обучение сети обратного распространения требует выполнения следующихопераций.1. Выбрать очередную обучающую пару из обучающего множества;подать входной вектор на вход сети.2. Вычислить выход сети.3. Вычислить разность между выходом сети и требуемым выходом (целевымвектором обучающей пары).4. Подкорректировать веса сети так, чтобы минимизировать ошибку.5. Повторять шаги с 1 по 4 для каждого вектора обучающего множествадо тех пор, пока ошибка на всем множестве не достигнет приемлемогоуровня.Операции, выполняемые шагами 1 и 2, сходны с теми, которые выполняютсяпри функционировании уже обученной сети, т. е. подается входнойвектор и вычисляется получающийся выход. Вычисления выполняются послойно.На рис. 5.3 сначала вычисляются выходы нейронов слоя j, затемони используются в качестве входов слоя k, вычисляются выходы нейроновслоя k, которые и образуют выходной вектор сети.На шаге 3 каждый из выходов сети, которые на рис. 5.3 обозначеныOUT, вычитается из соответствующей компоненты целевого вектора, чтобыполучить ошибку. Эта ошибка используется на шаге 4 для коррекции весовсети, причем знак и величина изменений весов определяются алгоритмомобучения (см. ниже).После достаточного числа повторений этих четырех шагов разность междудействительными выходами и целевыми выходами должна уменьшитьсядо приемлемой величины, при этом говорят, что сеть «обучилась». Теперьсеть используется для распознавания, и веса не изменяются.На шаги 1 и 2 можно смотреть как на «проход вперед», так как сигналраспространяется по сети от входа к выходу. Шаги 3, 4 составляют «обратныйпроход», здесь вычисляемый сигнал ошибки распространяется обратнопо сети и используется для подстройки весов. Эти два прохода теперь будутдетализированы и выражены в более математической форме.


242 Программные средства и математические основы информатикиПроход вперед. Шаги 1 и 2 могут быть выражены в векторной формеследующим образом: подается входной вектор Х, и на выходе получаетсявектор Y. Векторная пара вход-цель Х и Т берется из обучающего множества.Вычисления проводятся над вектором X, чтобы получить выходной векторY.Как мы видели, вычисления в многослойных сетях выполняются слой заслоем, начиная с ближайшего к входу слоя. Величина NET каждого нейронапервого слоя вычисляется как взвешенная сумма входов нейрона. Затемактивационная функция F «сжимает» NET и дает величину OUT для каждогонейрона в этом слое. Когда множество выходов слоя получено, оно являетсявходным множеством для следующего слоя. Процесс повторяется слойза слоем, пока не будет получено заключительное множество выходов сети.Этот процесс может быть выражен в сжатой форме с помощью векторнойнотации. Веса между нейронами могут рассматриваться как матрица W.Например, вес от нейрона 8 в слое 2 к нейрону 5 слоя 3 обозначается w 8,5 .Тогда NET-вектор слоя N может быть выражен не как сумма произведений,а как произведение Х и W. В векторном обозначении N = XW. Покомпонентнымприменением функции F к NET-вектору N получается выходнойвектор О. Таким образом, для данного слоя вычислительный процесс описываетсяследующим выражением:О = F(XW). (5.3)Выходной вектор одного слоя является входным вектором для следующего,поэтому вычисление выходов последнего слоя требует примененияуравнения (5.3) к каждому слою от входа сети к ее выходу.Обратный проход. Подстройка весов выходного слоя. Так как для каждогонейрона выходного слоя задано целевое значение, то подстройка весовлегко осуществляется с использованием модифицированного дельтаправила.Внутренние слои называют «скрытыми слоями», для их выходовне имеется целевых значений для сравнения. Поэтому обучение усложняется.На рис. 5.4 показан процесс обучения для одного веса от нейрона р вскрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k, вычитаясьиз целевого значения (Target), дает сигнал ошибки. Он умножаетсяна производную сжимающей функции [OUT(1 — OUT)], вычисленную дляэтого нейрона слоя k, что дает величину δ:δ = OUT(1 — OUT)(Target — OUT). (5.4)


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 243Рис. 5.4. Настройка веса в выходном слоеЗатем δ умножается на величину OUT нейрона j, из которого выходитрассматриваемый вес. Это произведение, в свою очередь, умножается накоэффициент скорости обучения η (обычно от 0,01 до 1,0), и результат прибавляетсяк весу. Такая же процедура выполняется для каждого веса от нейронаскрытого слоя к нейрону в выходном слое.Следующие уравнения иллюстрируют это вычисление:∆w pq,k = η δ q,k OUT (5.5)w pq,k (n+1) = w pq,k (n) + ∆w pq,k , (5.6)


244 Программные средства и математические основы информатикигде w pq,k (n) — величина веса от нейрона p в скрытом слое к нейрону q в выходномслое на шаге n (до коррекции); отметим, что индекс k относится кслою, в котором заканчивается данный вес, т. е. согласно принятому здесьсоглашению, с которым он объединен; w pq,k (n+1) — величина веса на шаге n+ 1 (после коррекции); δ q,k — величина δ для нейрона q в выходном слое k;OUT p,j — величина OUT для нейрона р в скрытом слое j.Подстройка весов скрытого слоя. Рассмотрим один нейрон в скрытомслое, предшествующем выходному слою. При проходе вперед этот нейронпередает свой выходной сигнал нейронам в выходном слое через соединяющиеих веса. Во время обучения эти веса функционируют в обратномпорядке, пропуская величину δ от выходного слоя назад к скрытому слою.Каждый из этих весов умножается на величину δ нейрона, к которому онприсоединен в выходном слое. Величина δ, необходимая для нейрона скрытогослоя, получается суммированием всех таких произведений и умножениемна производную сжимающей функции (см. рис. 5.5):⎡ ⎤δq,k = OUTp,j(1−OUT p,j) ⎢∑ δq,kwpq,k⎥(5.7)⎣ q ⎦Когда значение δ получено, веса, питающие первый скрытый уровень, могутбыть подкорректированы с помощью уравнений (5.5) и (5.6), где индексымодифицируются в соответствии со слоем.Рис. 5.5. Настройка веса в скрытом слое


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 245Для каждого нейрона в данном скрытом слое должно быть вычислено δи подстроены все веса, ассоциированные с этим слоем. Этот процесс повторяетсяслой за слоем по направлению к входу, пока все веса не будут подкорректированыСтохастические методыСтохастические методы полезны как для обучения искусственных нейронныхсетей, так и для получения выхода от уже обученной сети. Стохастическиеметоды обучения приносят большую пользу, позволяя исключатьлокальные минимумы в процессе обучения. Но с ними также связан рядпроблем.Использование стохастических методов для получения выхода от ужеобученной сети рассматривалось в работе [2].Искусственная нейронная сеть обучается посредством некоторого процесса,модифицирующего ее веса. Если обучение успешно, то предъявлениесети множества входных сигналов приводит к появлению желаемого множествавыходных сигналов. Имеются два класса обучающих методов: детерминистскийи стохастический.Детерминистский метод обучения шаг за шагом осуществляет процедурукоррекции весов сети, основанную на использовании их текущих значений,а также величин входов, фактических выходов и желаемых выходов.Стохастические методы обучения выполняют псевдослучайные изменениявеличин весов, сохраняя те изменения, которые ведут к улучшениям.Чтобы увидеть, как это может быть сделано, рассмотрим рис. 5.6, на которомизображена типичная сеть, в которой нейроны соединены с помощьювесов. Выход нейрона является здесь взвешенной суммой его входов, котораяпреобразована с помощью нелинейной функции. Для обучения сетиможет быть использована следующая процедура.1. Выбрать вес случайным образом и подкорректировать его на небольшоеслучайное значение. Предъявить множество входов, и вычислитьполучающиеся выходы.2. Сравнить эти выходы с желаемыми выходами и вычислить величинуразности между ними. Общепринятый метод состоит в нахождении разностимежду фактическим и желаемым выходами для каждого элемента обучаемойпары, возведение разностей в квадрат и нахождение суммы этихквадратов. Целью обучения является минимизация этой разности, частоназываемой целевой функцией.


246 Программные средства и математические основы информатики3. Выбрать вес случайным образом и подкорректировать его на небольшоеслучайное значение. Если коррекция помогает (уменьшает целевуюфункцию), то сохранить ее, в противном случае вернуться к первоначальномузначению веса.4. Повторять шаги с 1 до 3 до тех пор, пока сеть не будет обучена в достаточнойстепени.Рис. 5.6. Двухслойная сеть без обратных связейЭтот процесс стремится минимизировать целевую функцию, но можетпопасть, как в ловушку, в неудачное решение. На рис. 5.7 показано, как этоможет иметь место в системе с единственным весом. Допустим, что первоначальновес взят равным значению в точке А. Если случайные шаги повесу малы, то любые отклонения от точки А увеличивают целевую функциюи будут отвергнуты. Лучшее значение веса, принимаемое в точке В,никогда не будет найдено, и система будет поймана в ловушку локальнымминимумом, вместо глобального минимума в точке В. Если же случайныекоррекции веса очень велики, то как точка А, так и точка В будут часто посещаться,но то же самое справедливо и для каждой другой точки. Вес будетменяться так резко, что он никогда не установится в желаемом минимуме.


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 247Рис.5.7. Проблема локальных минимумовПолезная стратегия для избежания подобных проблем состоит в большихначальных шагах и постепенном уменьшении размера среднего случайногошага. Это позволяет сети вырываться из локальных минимумов и вто же время гарантирует окончательную стабилизацию сети.Ловушки локальных минимумов досаждают всем алгоритмам обучения,основанным на поиске минимума, включая персептрон и сети обратногораспространения, и представляют серьезную и широко распространеннуютрудность, которой часто не замечают. Стохастические методы позволяютрешить эту проблему. Стратегия коррекции весов, вынуждающая веса приниматьзначение глобального оптимума в точке В, возможна.В качестве объясняющей аналогии предположим, что на рис. 5.7 изображеншарик на поверхности в коробке. Если коробку сильно потрясти вгоризонтальном направлении, то шарик будет быстро перекатываться отодного края к другому. Нигде не задерживаясь, в каждый момент шарикбудет с равной вероятностью находиться в любой точке поверхности.Если постепенно уменьшать силу встряхивания, то будет достигнуто условие,при котором шарик будет на короткое время «застревать» в точке В.При еще более слабом встряхивании шарик будет на короткое время останавливатьсякак в точке А, так и в точке В. При непрерывном уменьшениисилы встряхивания будет достигнута критическая точка, когда сила встряхиваниядостаточна для перемещения шарика из точки А в точку В, но недостаточнадля того, чтобы шарик мог передвинуться из В в А. Таким образом,окончательно шарик остановится в точке глобального минимума, когдаамплитуда встряхивания уменьшится до нуля.Искусственные нейронные сети могут обучаться по существу таким жеобразом посредством случайной коррекции весов. Вначале делаются большиеслучайные коррекции с сохранением только тех изменений весов, ко-


248 Программные средства и математические основы информатикиторые уменьшают целевую функцию. Затем средний размер шага постепенноуменьшается, и глобальный минимум в конце концов достигается.Это сильно напоминает отжиг металла, поэтому для ее описания частоиспользуют термин «имитация отжига». В металле, нагретом до температуры,превышающей его точку плавления, атомы находятся в сильном беспорядочномдвижении. Как и во всех физических системах, атомы стремятся ксостоянию минимума энергии (единому кристаллу в данном случае), но привысоких температурах энергия атомных движений препятствует этому. Впроцессе постепенного охлаждения металла возникают все более низкоэнергетическиесостояния, пока в конце концов не будет достигнуто низшееиз возможных состояний, глобальный минимум. В процессе отжига распределениеэнергетических уровней описывается следующим соотношением:P(e) = exp(–e/kT), (5.8)где Р(е) — вероятность того, что система находится в состоянии с энергиейе; k — постоянная Больцмана; Т — температура по шкале Кельвина.При высоких температурах Р(е) приближается к единице для всех энергетическихсостояний. Таким образом, высокоэнергетическое состояниепочти столь же вероятно, как и низкоэнергетическое. По мере уменьшениятемпературы вероятность высокоэнергетических состояний уменьшается посравнению с низкоэнергетическими. При приближении температуры к нулюстановится весьма маловероятным, чтобы система находилась в высокоэнергетическомсостоянии.Больцмановское обучениеЭтот стохастический метод непосредственно применим к обучению искусственныхнейронных сетей.1. Определить переменную Т, представляющую искусственную температуру.Придать Т большое начальное значение.2. Предъявить сети множество входов, и вычислить выходы и целевуюфункцию.3. Дать случайное изменение весу, и пересчитать выход сети и изменениецелевой функции в соответствии со сделанным изменением веса.4. Если целевая функция уменьшилась (улучшилась), то сохранить изменениевеса.Если изменение веса приводит к увеличению целевой функции, то вероятностьсохранения этого изменения вычисляется с помощью распределенияБольцмана:


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 249P(c) = exp(–c/kT), (5.9)где Р(с) — вероятность изменения с в целевой функции; k — константа,аналогичная константе Больцмана, выбираемая в зависимости от задачи;Т — искусственная температура.Выбирается случайное число r из равномерного распределения от нулядо единицы. Если Р(с) больше, чем r, то изменение сохраняется, в противномслучае величина веса возвращается к предыдущему значению.Это позволяет системе делать случайный шаг в направлении, портящемцелевую функцию, позволяя ей тем самым вырываться из локальных минимумов,где любой малый шаг увеличивает целевую функцию.Для завершения больцмановского обучения повторяют шаги 3 и 4 длякаждого из весов сети, постепенно уменьшая температуру Т, пока не будетдостигнуто допустимо низкое значение целевой функции. В этот моментпредъявляется другой входной вектор и процесс обучения повторяется.Сеть обучается на всех векторах обучающего множества, с возможным повторением,пока целевая функция не станет допустимой для всех них.Величина случайного изменения веса на шаге 3 может определятьсяразличными способами. Например, подобно тепловой системе весовое изменениеw может выбираться в соответствии с гауссовским распределением:P(w) = exp(–w 2 /T 2 ), (5.10)где P(w) — вероятность изменения веса на величину w, Т — искусственнаятемпература.Такой выбор изменения веса приводит к системе, аналогичной [З].Так как нужна величина изменения веса ∆w, а не вероятность изменениявеса, имеющего величину w, то метод Монте-Карло может быть использованследующим образом.1. Найти кумулятивную вероятность, соответствующую P(w). Это естьинтеграл от P(w) в пределах от 0 до w. Так как в данном случае P(w) не можетбыть проинтегрирована аналитически, она должна интегрироватьсячисленно, а результат необходимо затабулировать.2. Выбрать случайное число из равномерного распределения на интервале(0,1). Используя эту величину в качестве значения P(w), найти в таблицесоответствующее значение для величины изменения веса.


250 Программные средства и математические основы информатикиСвойства машины Больцмана широко изучались. В работе [1] показано,что скорость уменьшения температуры должна быть обратно пропорциональналогарифму времени, чтобы была достигнута сходимость к глобальномуминимуму. Скорость охлаждения в такой системе выражается следующимобразом:T0Tt () = , (5.11)log(1 + t)где T(t) — искусственная температура как функция времени; Т 0 — начальнаяискусственная температура; t — искусственное время.Этот разочаровывающий результат предсказывает очень медленнуюскорость охлаждения (и данные вычисления). Этот вывод подтвердилсяэкспериментально. Машины Больцмана часто требуют для обучения оченьбольшого ресурса времени.Обучение КошиВ работе [6] развит метод быстрого обучения подобных систем. В этомметоде при вычислении величины шага распределение Больцмана заменяетсяна распределение Коши. Распределение Коши имеет, как показано нарис. 5.8, более длинные «хвосты», тем самым увеличивается вероятностьбольших шагов. В действительности распределение Коши имеет бесконечную(неопределенную) дисперсию. С помощью такого простого изменениямаксимальная скорость уменьшения температуры становится обратно пропорциональнойлинейной величине, а не логарифму, как для алгоритма обученияБольцмана. Это резко уменьшает время обучения. Эта связь можетбыть выражена следующим образом.TTt ()1 tРаспределение Коши имеет видTt ()Px ( ) =Tt () + x0= . (5.12)+2 2где Р(х) есть вероятность шага величины х., (5.13)


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 251Рис. 5.8. Распределение Коши и распределение БольцманаВ уравнении (5.13) Р(х) может быть проинтегрирована стандартнымиметодами. Решая относительно х, получаем:x c = ρ T(t) tg(P(x)), (5.14)где ρ — коэффициент скорости обучения; х c — изменение веса.Теперь применение метода Монте Карло становится очень простым. Длянахождения х в этом случае выбирается случайное число из равномерногораспределения на открытом интервале (–π/2, π/2) (необходимо ограничитьфункцию тангенса). Оно подставляется в формулу (5.13) в качестве Р(х), и спомощью текущей температуры вычисляется величина шага.Метод искусственной теплоемкостиНесмотря на улучшение, достигаемое с помощью метода Коши, времяобучения может оказаться все еще слишком большим. Способ, полученныйна основе законов термодинамики, может быть использован для ускоренияэтого процесса. В этом методе скорость уменьшения температуры изменяетсяв соответствии с искусственной «теплоемкостью», вычисляемой в процессеобучения.Во время отжига металла происходят фазовые переходы, связанные сдискретными изменениями уровней энергии. При каждом фазовом переходеможет иметь место резкое изменение величины, называемой теплоемкостью.Теплоемкость определяется как скорость изменения температуры сэнергией. Изменения теплоемкости происходят из-за попадания системы влокальные энергетические минимумы.Искусственные нейронные сети проходят аналогичные фазы в процессеобучения. На границе фазового перехода искусственная теплоемкость можетскачкообразно измениться. Эта псевдотеплоемкость определяется как


252 Программные средства и математические основы информатикисредняя скорость изменения температуры с целевой функцией. В примерешарика в коробке сильная начальная встряска делает среднюю величинуцелевой функции фактически не зависящей от малых изменений температуры,т. е. теплоемкость близка к константе. Аналогично при очень низкихтемпературах система замерзает в точке минимума, так что теплоемкостьснова близка к константе. Ясно, что в каждой из этих областей допустимысильные изменения температуры, так как не происходит улучшения целевойфункции.При критических температурах небольшое уменьшение температурыприводит к большому изменению средней величины целевой функции. Возвращаяськ аналогии с шариком, при «температуре», когда шарик обладаетдостаточной средней энергией, чтобы перейти из A в B, но недостаточной— для перехода из B в A, средняя величина целевой функции испытываетскачкообразное изменение. В этих критических точках алгоритм долженизменять температуру очень медленно, чтобы гарантировать, что системане замерзнет случайно в точке A, оказавшись пойманной в локальный минимум.Критическая температура может быть обнаружена по резкомууменьшению искусственной теплоемкости, т. е. средней скорости изменениятемпературы с целевой функцией. При достижении критической температурыскорость изменения температуры должна замедляться, чтобы гарантироватьсходимость к глобальному минимуму. При всех остальных температурахможет без риска использоваться более высокая скорость снижениятемпературы, что приводит к значительному снижению времени обучения.В процессе работы с рекурсивным методом было сделано добавление кнему в виде модуля управления скоростью обучения и модуля калибровки.При обучении сети при каждой итерации вычисляется значение калибровочнойошибки на всём наборе векторов обучения, далее в зависимости отградиента ошибки вычисляется значение скорости. При использовании данногооптимизационного метода общая скорость обучения выросла, и в то жевремя уменьшилась вероятность попадания процесса обучения в локальныйминимум. Это можно заключить из проведённых опытов, состоящих в следующем:берутся две одинаковые нейросети и два одинаковых набора обучающихпар, производится обучение с одинаковым количеством рекурсий.В итоге опыта на стандартной процедуре обучения уровень ошибки получилсяравным 0,41, при обучении усовершенствованным методом при техже условиях ошибка составила 0,992. Также (что не маловажно) у пользователяпоявилась возможность контролировать степень облученности сети. Вдальнейшем предполагается автоматически определять количество итераций,необходимое для обучения сети с определённой точностью.


Серебренников А. Л. Подходы к архитектуре и методам обучения в среде Significo 2536. ИНТЕРФЕЙСНАЯ ЧАСТЬТак как предполагается использование среды как исследователями нейросетейтак и различного рода аналитиками, интерфейс должен включать всебя как простоту и наглядность происходящих процессов, так и многофункциональность.Наглядность происходящих процессов предполагает развитую системувизуализации с применением трехмерного моделирования. Также необходимоснабдить интерфейс удобным инструментом отслеживания процессаобучения с отображением истории различного рода ошибок в процессе обученияи других параметров.Гибкость интерфейса предполагает, помимо возможности его изменения,возможность легкого манипулирования результатами различных операцийс нейросетями. Предполагается использование OLE технологии дляпередачи результатов в пакет MS Office, что позволит пользователю доработатьрезультаты (например, составить диаграмму или график) или передатьданные для дальнейшей обработки в другие программы (например,MathCAD).Среда Significo должна поддерживать несколько стандартов результатныхфайлов. Это файлы, содержащие результаты работы отдельных модулейсреды. Планируется наличие проектных файлов, в которых будут связыватьсявсе поддерживаемые файлы среды.7. ЗАКЛЮЧЕНИЕПрактическим результатом данной работы является описание проектируемойинтегрированной среды Significo и описание применяемых в нейтехнологий, видов сетей, алгоритмов обучения. Приведены новые подходыв области проектирования архитектуры сетей с практическим обоснованиемвыигрыша по времени обучения. Подробно представлены стандартные методыобучения нейросетей и наряду с ними новые подходы к обучению сетейи усовершенствованию стандартных методов обучения. Представленрезультат проведённых опытов, которые показали, что средняя скоростьобучения нейросети увеличилась примерно в 4 раза.


254 Программные средства и математические основы информатикиСПИСОК ЛИТЕРАТУРЫ1. Geman S., Geman D. Stohastic relaxation, Gibbs distribution and Baysian restorationof images // IEEE Transactions on Pattern Analysis and Machine Intelligence. —1984. — Vol. 6. — P. 721–741.2. Hinton G. E., Sejnowski T. J. Learning and relearning in Boltzmann machines // Paralleldistributed processing. — Cambridge, MA: MIT Press. — 1986. — Vol. 1. —P. 282–317..3. Metropolis N., Rosenbluth A. W-.Rosenbluth M. N., Teller A. N., Teller E. Equationsof state calculations by fast computing machines // J. of Chemistry and Physics. —1953. — Vol. 21. — P. 1087–1091.4. Материалы сайта www.neuroproject.ru5. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика / Пер. на русскийязык Ю. А. Зуев, В. А. Точенов. — М.: Мир. 1992. — 66 c.6. Szu H., Hartley R. Fast Simulated annealing // Physics Letters. — 1987. — Vol. 1222,N 3,4. — P. 157–162.


Е. С. Черемушкин, Т. Г. Коновалова,Ф. А. Мурзин, А. Э. КельСИСТЕМА РАСПОЗНАВАНИЯ ЦИС-ЭЛЕМЕНТОВНА ПОСЛЕДОВАТЕЛЬНОСТЯХ ДНК *ВВЕДЕНИЕВ настоящее время проведены основные экспериментальные работы посеквенированию нуклеотидных последовательностей для достаточно большогочисла организмов [1,2]. Для хранения получаемой первичной информациисоздан и постоянно пополняется ряд баз данных как специализированных,так и широкого профиля. В то же время, несмотря на наличиебольшого количества отсеквенированных последовательностей, наши представленияо принципах их организации весьма ограничены. Поэтому однимиз ведущих направлений молекулярной биологии в последнее время становитсякомпьютерный анализ генетических текстов.Проблематика понимания структурно-функциональной организации геномаэукариот включает в себя широкий круг проблем. Наряду с такимивопросами, как распознавание интронов, экзонов или сайтов сплайсинга,существует все увеличивающийся круг задач, связанных с регуляциейтранскрипции генов позвоночных. В последнее время появилось большоеколичество разнообразных данных (таких как SNP или паттерны экспрессии),позволяющих углубить понимание механизмов регуляции экспрессиигенов. Одним из базовых понятий, занимающих ключевую роль в процессахтранскрипции, является понятие транскрипционных факторов, которыепредставляют собой регуляторные белки, обладающие способностью распознаванияспецифических коротких участков ДНК. Поэтому детальному изучениюи распознаванию соответствующих нуклеотидных фрагментов, называемыхцис-элементами или сайтами связывания транскрипционных факторов(ССТФ или сайтами), отводится большое внимание. Несмотря на разнообразиеподходов, проблема построения точных методов распознаванияССТФ в настоящее время не может считаться окончательно решенной.Причина этого состоит в большом разнообразии контекстных, физико-* Работа выполнена при финансовой поддержке Министерства образования РФ (грант№ Е02-1.0-42).


256 Программные средства и математические основы информатикихимических и конформационных особенностей ССТФ; механизмов ДНКбелковыхвзаимодействий между ССТФ и транскрипционными факторами;специфичности контекста, окружающего ССТФ, степени консервативностинуклеотидного контекста в эволюции. Поэтому перспективным представляетсяприменение методов, ориентированных в каждом конкретном случаена специфическую информацию, которой обладает биолог.С этой целью был разработан комплекс алгоритмов идентификации цисэлементови объектно-ориентированная среда, реализующая эти методы.1. СУЩЕСТВУЮЩИЕ ДАННЫЕВ распоряжении экспериментатора находится различная генетическаяинформация. От количества информации зависит качество распознавания.Регуляторная последовательность. Это классический объект, которымобладает каждый экспериментатор. Задача, которую он решает с помощьюопределенного метода, — предсказание потенциальных сайтов определенноготипа на этой последовательности. Отметим, что на основе только этойинформации предсказание будет крайне неточным.Гомологичные регуляторные последовательности разных организмов.В настоящее время экспериментатор зачастую обладает информациейоб эволюционном сходстве изучаемого участка последовательности ДНКодного организма с некоторыми участками ДНК других организмов. Имеясоответствующий метод, он может получить более точное предсказаниецис-элементов на этом наборе последовательностей. В зависимости отуровня гомологии целесообразно использовать различные методы.Функционально-связанные последовательности. Ввиду большихобъемов аннотированной ДНК экспериментатор часто имеет набор функционально-зависимыхпромоторов генов, например, генов, вовлеченных водин биологический процесс. Таким образом, используя специфическийметод, он имеет возможность предсказать транскрипционные факторы, регулирующиегены его выборки. Также может присутствовать нескольковыборок.Паттерн экспрессии генов. В настоящее время получили распространениепаттерны экспрессии генов (expression pattern, microarrayexperiments). Используя специфическую технологию, экспериментатор получаетнабор чисел, соответствующих уровню экспрессии для большого


Черемушкин Е. С. и др. Система распознавания цис-элементов 257количества генов (порядка 20 000). Точность метода в данный момент неочень велика, но достаточна для широкого и эффективного использованияэтой информации. Зачастую одновременно используют результаты двухэкспериментов: здоровой и больной клетки. Имея соответствующий метод,экспериментатор может предсказать цис-элементы, нарушающие нормальнуюдеятельность организма, чтобы впоследствии воздействовать на соответствующиетранскрипционные факторы.Однонуклеотидные полиморфизмы. Однонуклеотидные полиморфизмы(Single-Nucleotide Polymorphism) — это различия в ДНК между индивидамиодного вида. Они характеризуют индивидуальные особенности илиособенности популяции (этноса). Полиморфизмы в регуляторных областяхмогут влиять на регуляцию. Таким образом, используя соответствующийметод, можно предсказывать изменение регуляции в связи с SNP.2. МЕТОДЫ РАСПОЗНАВАНИЯ ЦИС-ЭЛЕМЕНТОВАвторами настоящей работы была создана объектно-ориентированнаясистема, реализующая как созданные ранее, так и разработанные авторамиметоды. Данная среда является инструментарием для решения широкогокруга задач распознавания цис-элементов.2.1. Метод весовых матрицОсновная идея метода весовых матриц [3] заключается в приписываниичетырех весов каждой позиции сайта в соответствии с четырьмя нуклеотидамиA, T, G и C. Эти веса связаны с вероятностью появления конкретногонуклеотида в конкретной позиции.Пусть F = fij— 4× 1матрица нуклеотидных частот, fij— абсолютнаячастота встречаемости i-го нуклеотида на j-ой позиции в обучающейвыборке выровненных нуклеотидных фрагментов, кодирующих известныесайты связывания (i=1,...,4; j=1,...,l). Элементы w ij весовой матрицыW определяются соотношением:⎛ fij s ⎞wij= ln ⎜ + ⎟ + ci,⎝ eij100 ⎠


258 Программные средства и математические основы информатикигде e ij — ожидаемые частоты, соответствующие величинамfij, c i — нуклеотидно-специфическиеконстанты, s — параметр сглаживания, измеряемыйв процентах.Таблица 1Матрица нуклеотидных частот (F) и весовая матрица (W),вычисленные для кэп-сайта 1позиции сайта-2 -1 0 1 2 3 4 5‘A’ 49 0 288 26 77 67 45 50F: ‘C’ 48 303 0 81 95 118 85 96‘G’ 69 0 0 116 0 46 73 56‘T’ 137 0 15 80 131 72 100 101‘A’ -1.1 -5.3 0.0 -1.5 -0.7 -0.6 -0.9 -0.8W: ‘C’ -1.2 0.0 -5.2 -0.4 -0.5 0.0 -0.3 -0.2‘G’ -0.8 -5.3 -5.2 0.0 -4.6 -0.9 -0.4 -0.7‘T’ 0.0 -5.3 -2.7 -0.3 0.0 -0.4 0.0 0.0Процедура распознавания функционального сайта (характеризуемоговесовой матрицей W) в произвольном нуклеотидном фрагменте длины Lзаключается в сопоставлении величины match и априорно заданного пороговогозначения match :( crit)x − xminmatch = 100 ×,x max − x minLLгде x max = max i wij xmin= min i wijj= 1 j=1∑ ( ), ∑ ( ), а значение x оценивает степеньблизости тестируемого фрагмента и обучающей выборки:Lx = ∑ wij.j=11 Идея метода весовых матриц заключается в приписывании четырех весов каждой позициисайта в соответствии с четырьмя нуклеотидами A, T, G и C. Эти веса связаны с вероятностьюпоявления конкретного нуклеотида в конкретной позиции.


Черемушкин Е. С. и др. Система распознавания цис-элементов 259Все потенциальные сайты в заданной нуклеотидной последовательностираспознаются с помощью применения вышеизложенного алгоритма к каждомускользящему окну из этой последовательности.2.2. Метод распознавания двойных сайтовСайты связывания некоторых транскрипционных факторов состоят издвух полусайтов с варьирующимся расстоянием между ними. Расстояниемежду полусайтами зависит от типа фактора, узнающего этот сайт. Полусайтымогут иметь схожую структуру. Так как сайт состоит из 2-х консервативныхдоменов с варьирующим расстоянием между ними (рис. 1), тозададим double-core модели распознавания M следующим образом:M = m , m , d , dkk1 2 1 2dРис.1. Сайт состоит из 2 консервативных доменовс варьирующимся расстоянием между нимиПри этом m1и m2— весовые матрицы [3], d 1, d2— минимальное имаксимальное расстояния между половинками сайтов. Пусть w () i и w ( j )1 2веса m1и m2в позиции i и j соответственно на последовательности. Сайтw1() i + w2( j)считается распознанным, если вес w = больше заданного порогаc и расстояние между половинками сайтов d∈ [ d1, d2].2Распознавание сайтов NR будем производить следующим образом. Еслина последовательности был распознан характерный полусайт, рассмотрим,какой максимальный вес wkраспознавания дает каждая из моделей Mk.Если модель Mkне распознана в данном районе, то считаем wk= 0 . Рассмотримметод получения моделей Mk. Пусть S = ( S1,..., S m) — обучающаявыборка последовательностей сайтов. Для каждого подмножества


260 Программные средства и математические основы информатики' ' 'S = ( S1,..., S m) множества S зададим два набора подпоследовательностей1 1 1 2 2 2 1 2 'jS = ( s1,..., s n) и S = ( s1,..., s n) , si,si ∈ Si, длина siравна 6.Найдем с помощью широко используемой в биоинформатике процедуры1 21гиббссамплинга [4] S и S такие, что siпохожи между собой в терминах2расстояния между последовательностями, и siпохожи между собой. На1 2основе S и S создадим соответствующие матрицы m1и m2. Затем выберемрасстояния d1 = min ( d( si, si))и d2 = max ( d( si, si)). Выберем началь-1 21 2iiное подмножество S[0], называемое коровой выборкой.Теперь построим модель M[0]и добавим в S[0]последовательность изS \ S[0], для которой вес w[0]модели M[0]максимален. Таким образом, получиммодель M[1]. Будем продолжать процедуру добавления до тех пор,пока вес w[ k ]превышает изначально заданный порог C.Core setdFull setРис.2. Процесс построения модели M[] iПосле окончания процедуры получим модель M, описывающую выборкуS. Таким образом, получим различные модели M ,..., 1MTдля различныхклассов сайтов.


Черемушкин Е. С. и др. Система распознавания цис-элементов 2612.3. Филогенетический футпринтМы разработали алгоритм для выравнивания двух или более нуклеотидныхпоследовательностей. Метод основывается на предположении, что впроцессе эволюции цис-элементы более консервативны, чем другие участкипромоторных последовательностей. Алгоритм схож с общепринятым алгоритмомНедельмана—Вунша[5]. Основные изменения сделаны в способеподсчета весов на нуклеотидные замены и в штрафах на делеции.1Штраф на делеции, при вставке гэпа в S между k − 1 и k над позицией2l в S :G( S ) ( )( )1 , k + R S 2 , l1 2GAP S , S , k,l = .2Штраф на замену:1 2 1 2SUB( S , S , k, l) =Ζ ( sk,sl),гдеG S 1 , k =Υ s 1 , s1 ,где( ) ( k−1k)Υ ( s ) ( )( )2 2 2 22l− 1, sl +Υ sl , sl+1, l =R S2CΥ ( ab , ) = gap+ Wgap⋅ sgap( ab , ),N∆Ζ ( ab , ) = ⋅Csub−Wsub⋅Nsgap( a,b)3∑i=1λ ⋅ si3∑i=1i( ab , )λ( a) = γ ( b)( a) = γ ( b)i, для ab∈ , Σ×Φ,⎧ ⎪1,γ /∆=⎨,⎪⎩ 0, γ2⎧ ⎪( ϕ( a) + ϕ( b)) , γ ( a) = γ ( b)= ⎨ 2 ,2⎩⎪ ϕ( a) + ϕ( b) , γ ( a) = / γ ( b)s1 ( ab , ) = sgap( ab , ),


262 Программные средства и математические основы информатикигдеγϕ( a)( a)∈Σ — нуклеотид,∈Φs2( a,b)⎧⎪ 0, m > Cmin= ⎨⎪⎩ ( C −m)/ C , m≤Cmin min minm = min ϕ i ( a) − ϕ i ( b),i( ) ( ϕ ( ) ϕ ( ))s3 ab , = maxia ⋅ib ,— вектор весов для матрицы,Ccorr, Cgap, Wcorr, Wgap, λi— константы,N — количество последовательностей.i,Рис. 3. Демонстрация работы алгоритма на примере двух сгенерированных последовательностейПрофили выравниваются друг с другом наряду с последовательностями.Стрелками обозначены потенциальные ССТФ и соответствующие им транскрипционныефакторы.


Черемушкин Е. С. и др. Система распознавания цис-элементов 2632.4. Метод антифутпринтаПри большой гомологии последовательностей имеет смысл рассматриватьне сходные сайты, а различия. Считается вероятным, что эти различиялегли в основу разницы между данными видами.2.5. Метод анализа группы последовательностейОпределим композиционный модуль (КМ) как набор факторов с некоторымипараметрами (такими как вес матрицы). Зададим целевую функциюмодуля F(S), характеризующую присутствие этого комплекса в последовательностиS. Алгоритм получает на вход два набора последовательностей:анализируемый и фоновый. Далее выбирается комплекс, максимизирующийR=(F + - F - )/(δ + +δ - ), где F + и F - средние, а δ + и δ - — дисперсии распределенияF на анализируемой и фоновой выборках соответственно [6].2.6. Метод поиска цис-элементов на основе данныхс паттернов экспрессииДругой подход заключается в поиске цис-элементов на основе наборапромоторов и соответствующих им значений, характеризующих уровниэкспрессии. При этом ищутся, как и в предыдущем случае, композиционныемодули. За целевую функцию R берется корреляция F и уровня экспрессии.2.7. Метод поиска цис-элементов с учетом контекстаПредположим, что имеются две выборки последовательностей: позитивнаяQ = { q ,..., 1qm}и негативная T = { t ,..., 1tk}. Позитивная выборка содержитпоследовательности, в которых присутствуют цис-элементы заданноготипа, а негативная содержит последовательности, где таких цисэлементовнет. С помощью некоторого метода осуществим поиск сайтов ииспользуем информацию о позитивной и негативной выборках для фильтрациисайтов. Введем правило f()s ∈ R такое, что если f() s > 0, то s считаетсяраспознанным цис-элементом, иначе — не является. Зададим f(s)N11 2следующим образом: f() s = ∑ fi() s , где fi()s = ci, если в районе ⎡⎣ pi,p ⎤i ⎦i=0присутствует последовательность (блок) s i , иf () s = c , если не присутст-i2i


264 Программные средства и математические основы информатики1 2вует. Блок-моделью назовем тройку < fi, pi,pi> . Итак, по выборкам Q и Tполучаем блок-модели, а затем используем их при распознавании.Для получения блок-моделей применим критерий максимального правдоподобия:ci = log( fri ) − log( fri) , ci = log(1 − fri ) −log(1 − fri) , где fr1 1 2 2 1 21i—1 2частота встречаемости блока s i в районе ⎡⎣pi,p ⎤i ⎦ в выборке Q = { q ,..., }1qm,21 2а fri— частота встречаемости блока s i в районе ⎡⎣ pi,p ⎤i ⎦ в выборке{ },..., 1 2T = t1 tk. Далее выберем N моделей с наибольшей разностью ci− ci.По этим моделям будем проводить фильтрацию сайтов, найденных на произвольнойпоследовательности. Если f() s > 0, то s удовлетворяет фильтру,иначе — не удовлетворяет.3. МОДУЛЬ СРАВНЕНИЯ МЕТОДОВ ПОИСКАКачество распознавания может быть оценено распределением двух величин:ошибкой предсказания первого (FP) и второго (FN) родов. В зависимостиот параметров поиска получим распределение этих ошибок. Введемследующие величины: значение предсказания α = 1− FP и чувствительностьβ = 1− FN . Пусть S = { s ,..., 1sn}— известные экспериментальныесайты, Q { q q }= ,..., 1 m— сайты, найденные определенным методом. Обозначимsi≈ qj, это значит, что сайт siсовпадает с сайтом qj(распознансайтом qj). Пусть Q' = { qj ∈Q| ∃si ∈S, si ≈ qj}— правильно распознавшиесайты, S' = { s ∈S | ∃q ∈Q, s ≈ q }. Тогдаi j i jQ ' S 'α = , β = .Q SОсновная проблема состоит в том, что далеко не все сайты в геноме открытыи не все из открытых содержатся в соответствующих базах данных.Пусть T = { t ,..., 1tk}— неизвестные сайты. В объединении с известными*неизвестные сайты дают все множество сайтов S = S∪ T . Перепишем значениепредсказания и чувствительность с учетом неизвестных сайтов.


Черемушкин Е. С. и др. Система распознавания цис-элементов 265Q 'QS 'S****α = , β = ,** ** *где Q' = { qj ∈Q| ∃si ∈S , si ≈ qj}, S' = { si ∈S | ∃qj ∈Q, si ≈ qj}. Можем**записать, что S' = S' ∪ T'и Q' = Q' ∪ Q' T. Пусть неизвестных сайтов в k Tраз больше, чем известных T = kTS . Пусть методы распознают меньшийпроцент неизвестных сайтов, чем известныхQ'TQ'T= kα= kα⋅ kT, k α∈ (0,1] .SПусть также количество распознанных неизвестных сайтов зависит от количествараспознанных известных сайтов, аналогичноT'S'T= kβ= kβ⋅ kT, k β∈ (0,1] .SТогда получим, что( k k )*α = α⋅ + ⋅ , β = β ⋅1α T*1+ k ⋅ kβ1+kTT.Заметим, что в общем случае для различных транскрипционных факторовполучаются различные константы. Константа kTне зависит от исследуемогометода поиска. Так как сайты из множества T неизвестны, то предположим,что остальные константы k αи k βтакже не зависят от исследуемогометода. Тогда для сравнительного анализа методов достаточно использоватьраспределение α,β , имея в виду, что это не абсолютная, аотносительная оценка методов. Качество метода распознавания варьируетсядля разных факторов, для разных групп последовательностей так же, как идля параметров метода. Параметры α,β несравнимы для различныхгрупп факторов и групп последовательностей, но сравнимы внутри однойгруппы факторов и последовательностей.Сравнение реализовано в системе в виде модуля. Для добавления новоготестируемого метода достаточно реализовать функцию с использованиемреализованных механизмов подсчета статистики. Если метод требует ис-


266 Программные средства и математические основы информатикипользования дополнительных данных, то эти данные тоже должны бытьдобавлены таким образом, чтобы для подсчета статистики в методах использовалсяодин и тот же набор генов и транскрипционных факторов. Впроцессе работы метода статистика сохраняется в виде, удобном для визуализации.4. ОБЬЕКТНО-ОРИЕНТИРОВАННАЯ СИСТЕМА ПОИСКА ЦИС-ЭЛЕМЕНТОВСреда GRESA DT имеет иерархическую структуру. Вся функциональностьразбита на классы, а классы сгруппированы в 3 основных пакета: ядро,набор общепринятых инструментов, набор экспериментальных инструментов.Рис. 4. Структура среды GRESA DTПакет «ядро» состоит из классов, представляющих основные общепринятыеобъекты биоинформатики регуляторных последовательностей ДНК.Последовательность — последовательность ДНК. Представляет собойлинейную последовательность нуклеотидов, обозначаемых буквамиA,C,G,T. Также имеет название, описание и привязку к геному, т.е. номерхромосомы, стартовую позицию на хромосоме и направление “+” или “–”.Сайт — подпоследовательность цепочки ДНК длиной, как правило, 10-20 нуклеотидов, имеющая позицию, длину, направление.Фактор — объект, реализующий свойства транскрипционного фактора.Транскрипционный фактор — это белок, который связывается с сайтом наДНК.Выравнивание — несколько выровненных последовательностей. В каждойиз них между нуклеотидами могут быть вставлены гэпы (промежутки).Выравнивание отражает эволюционное сходство последовательностей.


Черемушкин Е. С. и др. Система распознавания цис-элементов 267Набор последовательностей, сайтов, факторов — классы, в которыхреализованы в основном сохранение и загрузка из общепринятых форматов,а также набор вспомогательных классов. Над объектами реализованы классическиеоперации, такие как получение комплиментарной последовательности,поиск и др.Набор общепринятых инструментов состоит из таких приложений,как MATCH, COMATCH (поиск композиционных модулей), footprint, CMSEARCH и др.• MATCH — метод поиска сайтов на основе весовых матриц. Самыйшироко используемый в настоящее время метод.• COMATCH — метод поиска композиционных элементов и сайтов сдвумя доменами.• FOOTPRINT — метод, учитывающий эволюционное сходство последовательностей.Вначале производится выравнивание последовательностей,а затем поиск сайтов, которые встретились на обеих последовательностяхв одном и том же блоке выравнивания.• CM SEARCH — метод поиска композиционных модулей, регулирующихгруппу генов. Для данной группы генов ищется общий модуль,предположительно регулирующий эти гены.Набор экспериментальных инструментов состоит из еще не опубликованныхприложений, находящихся в стадии разработки. Среди них наработкипо поиску сайтов с использованием контекста, средства оценки качествараспознавания методов.Разработка и применение. Среда GRESA DT постоянно дополняется иразвивается. Разработка среды по технологии Extreme Programming даетвозможность постоянно поддерживать рабочую версию. Стабильность, придовольно большой и распределенной группе разработчиков, поддерживаетсяза счет большого количества автоматизированных тестов. Жизненныйцикл отдельного приложения состоит из этапов, когда приложение находитсяв стадии экспериментальной разработки, затем переходит в стабильнуюстадию.


268 Программные средства и математические основы информатикиРис. 5. Жизненный цикл отдельного приложенияДалее оно может перейти в набор общепринятых инструментов. Любойчлен команды может вносить изменения в любой класс, главное — сохранитьуспешное выполнение тестов.На данный момент GRESA DT используется для обработки регуляторныхДНК последовательностей. Применение охватывает широкий круг задачраспознавания сайтов. Также реализованы некоторые методы предсказаниярегуляции на основе предсказанных сайтов. Есть возможность построениякомбинаций методов, например, как основу footprint-поиска сайтовможно взять либо результат match-поиска, либо результаты какого-либодругого метода, поддерживающего нужный формат записи. В GRESA DTтакже поддерживается сравнительное тестирование методов. Система тестированияоценивает качество распознавания сайтов. В данный момент вкачестве выборки для тестирования используется база данных TRANSFAC[7].Реализация и системные требования. Система реализована на языкеC++ с использованием среды Microsoft Visual Studio. Операционная системаWindows. Использованы технологии разработки ПО Extreme Programming иMicrosoft Solution Framework. Системные требования зависят от задачи.5. ЗАКЛЮЧЕНИЕРазработан и реализован инструментарий, позволяющий производитьполноценный поиск цис-элементов, наиболее полно использующий данные,имеющиеся у экспериментатора. Каждый из методов может быть использованкак в отдельности, так и в качестве дополнительного фильтра результа-


Черемушкин Е. С. и др. Система распознавания цис-элементов 269тов другого метода. Существует возможность простого и эффективногосоздания новых алгоритмов на базе уже существующих. Система эффективноиспользуется в нескольких организациях.СПИСОК ЛИТЕРАТУРЫ1. Doolittle R. F. Microbial genomes opened up // Nature. — 1997. — Vol. 392. —P.339–342.2. Maley L. E., Marshall C. R. The coming of age of molecular systematics // Science. —1998. — Vol. 279. — P. 505–506.3. Kel AE, Gossling E, Reuter I, Cheremushkin E, Kel-Margoulis OV, Wingender E.MATCH: A tool for searching transcription factor binding sites in DNA sequences //Nucleic Acids Res. — 2003. — Vol. 31, N 13. — P. 3576–3579.4. Lawrence, C.E., Altschul, S.F., Bogouski, M.S., Liu, J.S., Neuwald, A.F., and Wooten,J.C. Detecting Subtle Sequence Signals: A Gibbs Sampling Strategy for MultipleAlignment // Science. — 1993. — Vol. 262. — P. 208–214.5. Needleman SB, Wunsch CD. A general method applicable to the search for similaritiesin the amino acid sequence of two proteins // J. Mol. Biol. — 1970. — Vol. 48, N3. — P.443–536. Kel-Margoulis OV, Ivanova TG, Wingender E, Kel AE. Automatic annotation of genomicregulatory sequences by searching for composite clusters // Pac. Symp. Biocomput.— 2002. — Vol. 7. — P. 187–198.7. Wingender E., Chen X., Fricke E., Geffers R., Hehl R., Liebich I., Krull M., Matys V.,Michael H., Ohnhäuser R., Prüß M., Schacherer F., Thiele S. and Urbach S. TheTRANSFAC system on gene expression regulation // Nucleic Acids Res. — 2001. —Vol. 29. — P. 281–283.


СОДЕРЖАНИЕПредисловие редактора....................................................Волянская Т. А. Международные стандарты представления в сети ИН-ТЕРНЕТ информационных ресурсов по культурному наследию:стандарт ANSI/NISO Z39.50 и профиль CIMI.....................Дортман П. А. Подходы к оптимизации программ в системе SFP.......Дунаев А. А. Программный комплекс для исследования больших одномерныхмассивов данных с применением кратномасштабного анализа................................................................Евстигнеев В. А. Многочлены Эрхарта...................................Касьянов В. Н., Касьянова Е. В. Дистанционное обучение: методы и средстваадаптивной гипермедиа.......................................Касьянов В. Н., Мирзуитова И. Л. Реструктурирующие преобразования:алгоритмы распараллеливания циклов ............................Касьянова Е. В. Язык программирования Zonnon для платформы.NET...............................................................Малинина Ю. В. Электронная среда коллективного накопления и каталогизацииинформации по преобразованиям программ............Маркин В. А., Маркина С. А. Система для быстрого прототипированияраспараллеливающего компилятора ПРОГРЕСС-2. Ядро системы.Сценарий системы .................................................Серебренников А. Л. Стандартные и новые подходы к архитектуре и методамобучения в среде Significo, основные направления развитиясреды...............................................................ЧеремушкинЕ.С.,КоноваловаТ.Г.,МурзинФ.А.,КельА.Э.Системараспознавания цис-элементов на последовательностях ДНК ......5743506080142189206217229255


CONTENTSPreface.....................................................................Volyanskaya T. A. International standards of the Internet-representationof information related to cultural heritage: the ANSI/NISO Z39.50standard and the CIMI Profile......................................Dortman P. A. Program optimization in SFP...............................Dunaev A. A. The software system for analysis of large linear data arrays withthe use of the multiresolution wavelet analysis.......................Evstigneev V. A. Ehrhart polynomials......................................Kasyanov V. N., Kasyanova E. V. Distance education: methods and tools ofadaptive hypermedia................................................Kasyanov V. N., Mirzuitova I. L. Restructuring transformations: loopparallelization algorithms ...........................................Kasyanova E. V. The programming language Zonnon for .NET Framework .Malinina Yu. V. Electronic environment for collaborative accumulation andcatalogization of information on program transformation ............Markin V. А., Markina S. А. PROGRESS-2 — a system for fast prototypingof a parallelizing compiler. The system kernel. The system scenario . .Serebrennikov A. L. Standard and new approaches to the architecture andmethods of educating in the Significo environment, guidelines ofdevelopment of environment.........................................Cheremushkin E. S., Konovalova T. G., Murzin F. A., Kel A. E. Asystemof recognition of cis-elements on DNA sequences.....................5743506080142189206217229255


УДК 519.68 + 681.3.06Международные стандарты представления в сети ИНТЕРНЕТ информационныхресурсов по культурному наследию: стандарт ANSI/NISO Z39.50 ипрофиль CIMI / Волянская Т. А. // Программные средства и математическиеосновы информатики. — Новосибирск, 2004. — С. 7–42.Статья содержит краткий обзор стандарта ANSI/NISO Z39.50 и профиляCIMI. Стандарт Z39.50 определяет прикладную службу и спецификациюпротокола для поиска и извлечения информации из баз данных. Z39.50 предназначендля унификации сетевого доступа к базам данных и определяетпроцедуры поиска, извлечения и форматы представления информации.Профиль CIMI служит спецификацией использования стандарта Z39.50 длядоступа к информации о культурном наследии. В статье рассматриваютсяосновы Z39.50, модели поиска и извлечения информации по Z39.50, определяютсяпонятия абстрактной базы данных, пунктов доступа, схемы базыданных, абстрактной структуры записи, RPN-запросов, приводятся наборыпоисковых атрибутов и наборы тэгов, определенные в Z39.50, введенные понятияиллюстрируются на примере. В статье дается краткий обзор профиляCIMI, рассматриваются спецификации поиска, выбора и передачи записей,приводятся набор атрибутов CIMI-1, набор тэгов CIMI Tag Set, CIMI схема иабстрактная структура записи, рассматриваются различные уровни семантическойинтероперабельности и приводится пример распределенной информационнойсистемы на базе Z39.50. — Библиогр.: 11 назв.International standards of the Internet-representation of information related tocultural heritage: the ANSI/NISO Z39.50 standard and the CIMI Profile / VolyanskayaT. A. // Software tools and mathematical foundations of informatics.— Novosibirsk, 2004. — P. 7–42.The paper provides a brief review of the ANSI/NISO Z39.50 (ISO 23950) standardand the CIMI Profile. This standard Z39.50 describes the Application Serviceand specifies the Application Protocol for search and retrieval of information indatabases. Z39.50 is intended for unification of network access to databases andspecifies procedures and formats for a client to search and to retrieve databaserecords. The CIMI Profile is a set of technical specifications for using ANSI/NISOZ39.50 to search and retrieve information related to our cultural heritage. Z39.50basic services, information search and retrieval models are considered, the definitionsof Abstract Database, Access Points, Database Schema, Abstract Re-cordStructure, RPN Query are determined, Attribute Sets and Tag Sets defined inZ39.50 are given, the definitions are illustrated by examples. The paper givesa brief review of the CIMI Profile. The database records search, selection andtransfer specifications are considered; CIMI-1 Attribute Set, CIMI Tag Set, CIMISchema and Abstract Record Structure are given; three levels of semantic interoperabilityare described; an example of Z39.50-based distributed informationretrieval system is given.. — Refs: 11 titles.УДК 519.68 + 681.3.06Подходы к оптимизации программ в системе SFP / Дортман П. А. // Программныесредства и математические основы информатики. — Новосибирск,2004. — С. 43–49.В настоящей работе рассматриваются подходы к осуществлению оптимизи-


рующих преобразований программ в системе функционального программированияSFP. Описаны алгоритмы для выполнения некоторых традиционныхоптимизирующих программ, представленных в виде потоковых графов.— Библиогр.: 3 назв.Program optimization in SFP / Dortman P. A. // Software tools and mathematicalfoundations of informatics. — Novosibirsk, 2004. — P. 43–49.The paper describes the main approaches to implementation of optimizing transformationsin the SFP programming system. The algorithms of some conventionaloptimizations are also given.. — Refs: 3 titles.УДК 519.68 + 681.3.06Программный комплекс для исследования больших одномерных массивовданных с применением кратномасштабного анализа / Дунаев А. А. // Программныесредства и математические основы информатики. — Новосибирск,2004. — С. 50–59.При решении ряда научно-исследовательских и практических задач возникаетпроблема обработки больших массивов данных. Настоящая статья исследуетспособы организации работы с большими линейными массивами данныхна примере обработки результатов кратномасштабного анализа нуклеотиднойпоследовательности. Рассмотрены несколько стратегий предварительнойвыборки данных. Кроме того, описаны методы обработки нуклеотидныхпоследовательностей и способы отображения результатов вычислений.— Библиогр.: 11 назв.The software system for analysis of large linear data arrays with the use of themultiresolution wavelet analysis / Dunaev A. A. // Software tools and mathematicalfoundations of informatics. — Novosibirsk, 2004. — P. 50–59.The problem of large data array processing often arises in various scientificresearch and applications. This paper illustrates the ways of working with largelinear data arrays by the example of processing the results of multiresolutionwavelet analysis of nucleotic sequences. Some strategies of data prefetching aredescribed. In addition, the methods of processing the nucleotic sequences anddisplaying the results of such processing are considered. — Refs: 11 titles.УДК 519.68 + 681.3.06Многочлены Эрхарта / Евстигнеев В. А. // Программные средства и математическиеосновы информатики. — Новосибирск, 2004. — С. 60–79.В статье излагаются основы теории полиномов Эрхарта и её применения кнекоторым проблемам, возникающим в NUMA-архитектурах. — Библиогр.:3 назв.Ehrhart polynomials / Evstigneev V. A. // Software tools and mathematicalfoundations of informatics. — Novosibirsk, 2004. — P. 60–79.In this article, Ehrharts polynomials are introduced and several applicaitons toNUMA architectures are shown. — Refs: 3 titles.УДК 519.68 + 681.3.06Дистанционное обучение: методы и средства адаптивной гипермедиа / КасьяновВ. Н., Касьянова Е. В. // Программные средства и математическиеосновы информатики. — Новосибирск, 2004. — С. 80–141.


В последнее время адаптивные гипермедиа-системы становятся все более иболее популярными в дистанционном обучении и предоставляют средства доступак информации, управляемые пользователем. Адаптивные гипермедиасистемысводят воедино идеи гипермедиа-систем и интеллектуальных обучающихсистем и делают возможным персонализированный доступ к информации.В данной работе рассматриваются вопросы поддержки дистанционного обучения,особое внимание уделяется анализу методов и средств адаптивнойгипермедиа, используемых современными адаптивными обучающими Webсистемами.— Библиогр.: 100 назв.Distance education: methods and tools of adaptive hypermedia / Kasyanov V. N.,Kasyanova E. V. // Software tools and mathematical foundations of informatics.— Novosibirsk, 2004. — P. 80–141.Recently, hypermedia systems become more and more popular as tools for auser-driven access to information. Adaptive hypermedia systems bring togetherthe ideas from hypermedia systems and intelligent tutoring systems, and enablepersonalized access to information.In the paper the problems of distance education support are considered, mostattention is given to analysis of methods and tools of adaptive hypermedia thatare used by modern educational adaptive Web-systems. — Refs: 100 titles.УДК 519.68 + 681.3.06Реструктурирующие преобразования: алгоритмы распараллеливания циклов/ Касьянов В. Н., Мирзуитова И. Л. // Программные средства и математическиеосновы информатики. — Новосибирск, 2004. — С. 142–188.Статья посвящена алгоритмам распараллеливания циклов — одного из наиболееэффективных реструктурирующих преобразований. Эти алгоритмыиспользуют различные математические инструменты и различные представлениязависимостей по данным. В статье мы приводим описание основныхалгоритмов распараллеливания циклов и даем сопоставление их сильных ислабых сторон как на примерах, так и в сравнении “оптимальных” результатов.— Библиогр.: 66 назв.Restructuring transformations: loop parallelization algorithms / Kasyanov V. N.,Mirzuitova I. L. // NSoftware tools and mathematical foundations of informatics.— Novosibirsk, 2004. — P. 142–188.The paper is devoted to loop parallelization algorithms — one of the most effectiverestructuring transformations. These algorithms make use of different mathematicaltools and various representations of data dependences. In the paper we describethe main loop parallelization algorithms and assess their power and limits byusing the examples, as well as by comparing the “optimal” results. — Refs: 66titles.УДК 519.68 + 681.3.06Язык программирования Zonnon для платформы .NET / Касьянова Е. В. //Программные средства и математические основы информатики. — Новосибирск,2004. — С. 189–205.В статье кратко представлен новый язык программирования Zonnon, работанад которым ведется в институте информатики г. Цюриха. Разрабатываемый


язык задуман как современная альтернатива хорошо известному языку Оберон,являющемуся преемником языков Паскаль и Модула-2. — Библиогр.: 7назв.The programming language Zonnon for .NET Framework / Kasyanova E. V. //Software tools and mathematical foundations of informatics. — Novosibirsk, 2004. —P. 189–205.The paper outlines a new programming language Zonnon being under developmentin the Institute of Computer Systems in Zurich. The language is aimed to be amodern alternative to a well-known Oberon language which is an evolution ofPascal and Modula-2 languages. — Refs: 7 titles.УДК 519.68 + 681.3.06Электронная среда коллективного накопления и каталогизации информациипо преобразованиям программ / Малинина Ю. В. // Программные средстваи математические основы информатики. — Новосибирск, 2004. — С. 206–216.В данной работе описаны различные способы асинхронного взаимодействия,которые снимают проблемы коммуникаций и трудности, связанные с организациейсеминаров, телефонных или электронных конференций. В настоящеевремя богатство и разнообразие асинхронных коммуникаций существенновыросло. Если раньше мы были ограничены текстовой формой электронныхписем и бюллетеней, то теперь эта форма взаимодействия стала болеегибкой.Предлагаемая статья описывает опыт внедрения электронной среды для организациисовместной работы на основе технологии WikiWiki. — Библиогр.:6 назв.Electronic environment for collaborative accumulation and c atalogization ofinformation on program transformation / Malinina Yu. V. // Software tools andmathematical foundations of informatics. — Novosibirsk, 2004. — P. 206–216.New approaches and technologies can greatly change the process of an interactionduring a cooperative work. A special emphases is given to different ways ofan anisochronous interaction which remove the problems of communication anddifficulties connected with organization of meetings and telephone or electronicconferences. At present, the variety of means of anisochronous communicationgreatly increases. If earlier we were limited to the text form of electronic lettersand bulletins, now this form of interaction becomes more flexible.This paper describes our experience of deployment of the electronic groupwareenvironment aimed to support collaboration on the basis of WikiWiki technology. —Refs: 6 titles.УДК 519.68 + 681.3.06Система для быстрого прототипирования распараллеливающего компилятораПРОГРЕСС-2. Ядро системы. Сценарий системы / Маркин В. А., МаркинаС. А. // Программные средства и математические основы информатики.— Новосибирск, 2004. — С. 217–228.Статья описывает текущее состояние работ по созданию системы ПРОГРЕСС-2 для быстрого прототипирования распараллеливающего компилятора. Системасоздается как конструктор для построения прототипа компилятора,


кирпичиками которого являются различные функциональные и инструментальныекомпоненты. Особое внимание в статье уделяется ядру системыи средствам задания сценария работы создаваемого компилятора. — Библиогр.:3 назв.PROGRESS-2 — a system for fast prototyping of a parallelizing compiler. Thesystem kernel. The system scenario / Markin V. A., Markina S. A. // Softwaretools and mathematical foundations of informatics. — Novosibirsk, 2004. — P.217–228.The paper describes the current state in constructing PROGRESS-2 — a systemfor fast prototyping of parallelizing compilers. The system is designed as a constructorfor creating a compiler prototype whose blocks are different functionaland instrumental components. Particular attention is given to the system kerneland tools for specifying a scenario of work of the compiler under construction. —Refs: 3 titles.УДК 519.68 + 681.3.06Стандартные и новые подходы к архитектуре и методам обучения в средеSignifico, основные направления развития среды / Серебренников А. Л. //Программные средства и математические основы информатики. — Новосибирск,2004. — С. 229–254.В статье рассматриваются следующие вопросы: задачи, решаемые нейросетями,ожидаемые методы предобработки данных в среде Significo, описаниестандартных и новых архитектур нейросетей с приведением результатовсравнительных тестов, рекурсивные и схоластические методы обучения нейросетей,усовершенствованный рекурсивный метод и сравнительное тестированиеметодов, направления и подходы в развитии интерфейсной частисреды Significo. — Библиогр.: 6 назв.Standard and new approaches to the architecture and methods of educating in theSignifico environment, guidelines of development of environment / SerebrennikovA. L. // Software tools and mathematical foundations of informatics. — Novosibirsk,2004. — P. 229–254.The paper describes the following: the problems decided by neuronets; the methodsof data pretreatment in the Significo environment; the description of standardand new architectures of neuronets supplied with the results of comparativetests; recursive and scholastic methods of teaching a neuronet; an advancedrecursive method and comparative testing of methods; directions and approachesin the development of the interface part of the Significo environment. — Refs.: 6titles.УДК 519.68 + 681.3.06Система распознавания цис-элементов на последовательностях ДНК / ЧеремушкинЕ. С., Коновалова Т. Г., Мурзин Ф. А., Кель А. Э. // Программныесредства и математические основы информатики. — Новосибирск, 2004. —С. 255–269.Разработан и реализован инструментарий, позволяющий производить полноценныйпоиск цис-элементов, наиболее полно использующий данные, имеющиесяу экспериментатора.Разработаны алгоритмы анализа больших районов ДНК на основе визуализацииДНК последовательностей.


Алгоритмы реализованы в объединенной объектно-ориентированной среде.Каждый из алгоритмов может быть использован как в отдельности, так икак дополнительный фильтр результатов другого алгоритма. За счет реализациисуществует возможность простого и эффективного создания новыхалгоритмов на базе уже существующих. Система эффективно используетсяв нескольких организациях. — Библиогр.: 7 назв.A system of recognition of cis-elements on DNA sequences / Cheremushkin E. S.,Konovalova T. G., Murzin F. A., Kel A. E. // Software tools and mathematicalfoundations of informatics. — Novosibirsk, 2004. — P. 255–269.A set of computational tools has been developed for a complete search of ciselementswith the maximum use of available biological data.A wide range of DNA analysis algorithms based on visualization of geneticinformation have been developed.The algorithms have been implemented in C++ in a common object-orientedenvironment. Every algorithm can be used separately and as an additional filterfor another algorithm’s results. Implementation allows a new algorithm to beeasily developed on the basis of already existing ones. The system was successfullyused in several organizations. — Refs: 7 titles.


ПРОГРАММНЫЕ СРЕДСТВА И МАТЕМАТИЧЕСКИЕОСНОВЫ ИНФОРМАТИКИПод редакциейпроф. Виктора Николаевича КасьяноваРукопись поступила в редакцию 15. 02. 2004Ответственный за выпуск Г. П. НесговороваРедактор З. В. СкокПодписано в печать 12. 08. 2004Формат бумаги 60 × 84 1/16Тираж 75 экз.Объем 15,9 уч.-изд.л., 17,4 п.л.ЗАО РИЦ “Прайс-курьер” 630090, г. Новосибирск, пр. Акад. Лаврентьева, 6,тел. (383-2) 34-22-02

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!