разом (случайно или исходя из какой-то априорной информации) выбирается начальная точка, для которой определяется значение функции Е(Ьо, ¿о). Затем находятся значения функции в четырех соседних точках (Ьо -1, ¿о), (Ьо +1, ¿о), (Ьо,йо -1), (Ьо, ¿о +1), и выбирается точка, для которой значение меньше, чем в начальной - на рисунке 3 такой точкой принята точка 1 с координатами (Ь1;^) = =(Ьо-1^о). Далее повторяется «осмотр» точек, ближайших к точке 1 (ранее «осмотренные» точки пропускаются), осуществляется переход к следующей точке и так до тех пор, пока не найдется точка, для которой все соседние будут иметь большие значения минимизируемой функции.
Использование генетических алгоритмов [9,10]. Здесь каждый оптимизируемый параметр кодируется двоичным числом разрядности, достаточной, чтобы отобразить все возможные дискретные значения параметра. Совокупности таких чисел для всех параметров объединяются в одно двоичное слово, отображающее хромосому. Далее поиск минимума оптимизируемой функции проводится по известным [9,10] процедурам. Отметим, что генетические алгоритмы в действительности представляют собой, скорее, подход, чем единый алгоритм. Они часто требуют «содержательного наполнения» для решения рассматриваемой задачи. Чтобы рассчитывать на получение хорошего результата, необходимо учесть и предусмотреть большое количество факторов, таких как объем и структура популяции, отбор особей для выживания и/или скрещивания, обеспечение сходимости процедуры поиска, исключение нежелательных мутаций и т.д.
С учетом сделанных выше замечаний генетический алгоритм был реализован в своем «классическом» варианте.
Для оценки эффективности трех рассмотренных алгоритмов был проведен программный эксперимент. В результате выявлены и отмечены недостатки всех трех предлагаемых алгоритмов, самыми существенными из которых является факт «застревания» программы в точках локального минимума (для первых двух алгоритмов), невозможность полного исключения «нежелательных» мутаций и большие
временные затраты на выполнение процедуры поиска (для третьего алгоритма).
Предлагаемые алгоритмы оптимизации параметров эктраполятора на основе НС с обратной связью позволяют для разработанной специальной структуры сети осуществлять «оперативную» подстройку параметров сети на основе решаемой задачи, а не подгонять задачу под одну из стандартных структур. Проведенный программный эксперимент подтверждает эффективность такого промежуточного этапа оптимизации.
Предложенная методика нахождения d0pt, L0pt отражает наличие внешней обратной связи НС. Отметим, что оптимальные значения d и L взаимосвязаны друг с другом и не могут находиться с помощью соответствующих пакетных функций системы MATLAB.
В процессе реализации машинного эксперимента автором была отработана недокументированная в известных источниках методика построения программных комплексов и GUI-приложений в среде MATLAB в сочетании с использованием имеющегося базового набора функций специализированных пакетов расширений.
Список литературы
1. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. - М.: Горячая линия - Телеком, 2001.
2. Дли М.И., Круглов В.В., Осокин М.В. Локально-аппроксимационные модели социально-экономических систем и процессов. - М.: Наука. Физматлит, 2000.
3. Дьяконов В.П., Абраменкова И.В., Круглов В.В. MATLAB 5.3.1 с пакетами расширений. - М.: Нолидж, 2001.
4. Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. - Новосибирск: Наука, 1996.
5. Корбут А.А., Филькельштейн Ю.Ю. Дискретное программирование. - М.: Наука, 1969.
6. Кузин Л.Т. Основы кибернетики. Т.1: Математические основы кибернетики. - М.: Энергия, 1972.
7. Коршунов Ю.М. Математические основы кибернетики. -М.: Энергоатомиздат, 1987.
8. Васильков Ю.В., Василькова Н.Н. Компьютерные технологии вычислений в математическом моделировании. - М.: Финансы и статистика, 1999.
9. Курейчик В.М. Генетические алгоритмы. Обзор и состояние. // Новости искусственного интеллекта. - 1998. - №3. - С. 26-35.
10. Базы данных. Интеллектуальная обработка информации. / В.В. Корнеев, А.Ф. Гареев, С.В. Васютин, В.В. Райх. - М.: Нолидж, 2000.
ОБЩИЕ ПРИНЦИПЫ АВТОМАТИЗАЦИИ РАЗРАБОТКИ КОМПЬЮТЕРНЫХ УЧЕБНЫХ ПОСОБИЙ В КОМПЛЕКСЕ EDUCAD
В.В. Романенко
На кафедре автоматизированных систем управления Томского государственного университета систем управления и радиоэлектроники уже в течение нескольких лет коллектив разработчиков занимается проектированием и созданием различных компью-
терных учебных пособий (КУП). Возникла необходимость в специализированной среде разработки КУП [1,2].
В состав комплекса ЕйиСЛВ входят следующие
автоматизированные системы (АС):
34
1. EduCAD Textbook 2.0 - АС разработки гипертекстовых электронных учебников (ЭУ).
2. EduCAD Control - АС контроля знаний. Состоит из двух подсистем - EduCAD Tests и EduCAD Programs, предназначенных для создания пакетов тестирования и проверки программ учащихся [3].
3. EduCAD Presentation - АС создания презентационных программ и мультимедийных лекций.
4. EduCAD Practice - динамический шаблон для создания комплексов лабораторно-практических работ по математическим дисциплинам.
Рассмотрим особенности разработки данных программ и некоторые особенности функционирования КУП, построенных на их основе. Комплекс разрабатывается в среде программирования Borland C++ Builder, что влияет на способы реализации программ, но несложно провести аналогию для других современных компиляторов, строящих приложения для ОС, поддерживающих ядро Win32.
Особенности представления данных
Основой функционирования комплекса является разработанный автором пакет визуальных компонентов. Самые главные из них: компонент отображения гипертекстовой информации THyperText, компонент отображения векторной графической информации TVectorPicture, компонент воспроизведения мультимедийных презентаций TEduCADPresentation и компонент шаблона практических работ TeduCADPrac-tice.
Компонент THyperText имеет встроенный интерпретатор разработанного специально для этих целей языка ECHTL (EduCAD HyperText Language). Язык разметки построен на теговой основе и имеет следующую структуру: TXT ::= elTAG TXT TAG ::= <[/]NAME[= VAL]>lDATA VAL ::= #HEXlDEClSTR Здесь e - пустой символ, NAME - имя тега, последовательность букв и цифр, начинающаяся с буквы, #HEX - шестнадцатиричное число, начинающееся с символа «#», DEC - десятичное число, STR - строковое значение тега, DATA - любые символьные данные. На данный момент поддерживается около 80 тегов.
Компонент TVectorPicture имеет аналогичный встроенный интерпретатор языка ECVPDL (EduCAD VectorPicture Description Language). Векторные рисунки вставляются в основной текст в виде макросов, их описание имеет следующую структуру: PICT ::= elPROC PICT PROC ::= NAME(LIST)[;] LIST ::= elDATAlDATA, LIST DATA ::= #HEXlDEClSTR
Здесь e - пустой символ, NAME - имя процедуры, LIST - список параметров, DATA - отдельный параметр. Имеется приблизительно 40 процедур для описания векторной графики.
Данные конструкции интерпретируются с помощью синтаксического анализатора (СА). Описание гипертекстовой и графической информации он воспринимает как входные цепочки L-грамматики. Плюсы такого подхода - простота реализации и лег-
кая модифицируемость поведения СА. Достаточно изменить таблицу синтаксического разбора, чтобы анализатор начал работать по новому алгоритму.
Изображения других форматов (BMP, ICO, WMF, EMF, JPG) также поддерживаются в виде встроенных макросов. Причем загрузка файлов может происходить и с диска, и с помощью процедур пользователя. В этом случае пользователь получает указатель на экземпляр абстрактного класса Tgraphic из библиотеки VCL, содержащей графические данные. Классы TBitmap, TIcon, TMetafile и TJPEGImage наследуются от TGraphic. Пользователь инициализирует экземпляр класса TGraphic графическими данными, а затем объект THyperText анализирует эти данные следующим образом:
if (graphic->ClassType() ==_classid(TBitmap)) {
// обработка изображения в формате BMP
}
else if (graphic->ClassType() ==_classid(TIcon)) {
// обработка изображения в формате ICO
}
else ...
Здесь «graphic» - указатель на родительский класс TGraphic экземпляра какого-либо графического объекта, «_classid» - оператор языка C++, возвращающий указатель на таблицу виртуальных функций класса, с помощью которого производится проверка идентичности различных классов.
Пользователь может подключать собственные макросы. В этом случае ему передается указатель на структуру типа THyperMacros, поля которой он заполняет. Среди прочих параметров указываются размеры макроса и его графическое изображение (как указатель на экземпляр класса TGraphic, который обрабатывается аналогичным образом).
Компонент TEduCADPresentation работает с объектами-потомками абстрактного базового класса TPresentationObject:
— TPresentationText - вывод текста;
— TPresentationPicture - вывод графики;
— TPresentationMultimedia - воспроизведение мультимедиа-информации;
— TPresentationRepeater - изменение свойств ранее отображенных объектов позволяет перерисовывать их с новыми эффектами;
— TPresentationClearer - очистка блока изображения.
Отображение всех компонентов презентации можно привязать к таймеру, чтобы обеспечить, например, синхронное отображение ее объектов с аудиоинформацией (мультимедийные лекции). Обеспечиваются различные эффекты при выводе информации (в зависимости от ее вида).
Компонент TEduCADPractice является шаблоном для создания практических работ. Он поддерживает все необходимые для этого функции, а в местах вычислений по конкретной работе происходит вызов специальных виртуальных методов. Для визуализации решения задач существует два специальных класса.
1) TGraphManager для отображения графиков различных функций. Поддерживает текстовый формат выражений, то есть с помощью компонента
35
TStringParser проводит синтаксический разбор входного выражения, затем, если он успешен, преобразует выражение в польскую строку, по которой выполняются вычисления. Позволяет масштабировать отдельные участки изображения и управлять историей масштабов, содержит множество настроек.
2) TMatrixViewer для отображения векторов и матриц. Поддерживает встроенное (in-place) редактирование элементов данных, выделение цветом необходимых элементов, также имеет множество настроек параметров изображения.
Компонент TGraphManager является универсальным графическим контейнером. Рассмотрим следующую часть описания этого класса:
private: TList *FObjectsList; TDrawingObject * __fastcall Get (int); public:
_property TDrawingöbject *Objects[int] = {
read = Get};
_property TList *ObjectsList = {
read = FObjectsList};
Видно, что к объекту можно подключать другие объекты, наследующиеся от класса TDrawingObject. По умолчанию подключаются объекты заголовка графика (TGMCaption), а также объекты вертикальной и горизонтальной осей (TGMAxe). Пользователь может подключать эти и другие объекты, в том числе написанные самостоятельно. Для отображения функций предусмотрен компонент TGMFunction, для визуальной манипуляции ими - компонент Tfunction-Manager.
Система EduCAD Textbook
АС EduCAD Textbook 2.0 представляет собой редактор ресурсов, представленных в формате ECT (EduCAD Textbook data file).
Все текстовые данные кодируются, таким образом достигается сохранность прав разработчиков на конечный коммерческий программный продукт, которым является любое КУП. Пользователь не может просто скопировать из учебника текстовую или графическую информацию. Графическая информация упаковывается в специальный файл HTP (HyperText Pictures data file) и распаковывается по запросу от объекта THyperText.
На рисунке 1 показан пример разработки электронного учебника по дисциплине «Методы оптимизации» в системе EduCAD Textbook 2.0. Содержимое кадра отображается компонентом THyperText, который использует для графического оформления компонент TVectorPicture.
В том случае, когда функциональности системы недостаточно для реализации поставленной задачи, предусмотрено подключение динамических библиотек. Подключаемая библиотека должна иметь две обязательные функции - инициализации (вызывается при подключении библиотеки к странице учебника) и завершения работы (вызывается при закрытии страницы). Формат данных функций следующий:
void__stdcall (TPageMethod *) (
void *page,
Рис. 1. Разработка электронного учебника в системе EduCAD Textbook 2.0
void *sub_page,
char *params);
Первый параметр является указателем на активную основную страницу учебника (нулевого уровня), второй - на активную дополнительную страницу, (если она есть, иначе этот параметр равен NULL), третий - на строку, содержащую параметры вызова DLL.
Клиентская часть системы позволяет пользователю просматривать учебник, но, в отличие от серверной части, не редактировать его. Если исполняемый файл запускать с параметром, то он воспринимается как идентификатор страницы, с которой следует начать просмотр. Это позволяет открывать учебник на нужной странице при его вызове из других программ (например, в качестве справочного материала по предмету из практических работ).
В дальнейшем предполагается создание АС EduCAD Textbook версии 3.0, поддерживающей визуальную разработку кадра учебника, работу с различными элементами управления и другими компонентами, проектируется язык манипуляции ими. То есть для разработки КУП любой сложности дополнительных сред программирования требоваться уже не будет.
Система EduCAD Presentation
АС EduCAD Presentation пополняет учебную базу данных информацией для анимированных мультимедийных презентаций. Информация сохраняется в файле формата ECP (EduCAD Presentation data file).
Клиентская часть системы EduCAD Presentation является центром управления всеми ресурсами учебного курса. Она позволяет:
• запускать все остальные компоненты учебного курса, экономя время пользователя на поиск нужных приложений;
• воспроизводить различную мультимедийную информацию;
• предотвращать повторную загрузку уже запущенных модулей;
• воспроизводить анимированные мультимедийные лекции со звуковым сопровождением (компонент TEduCADPresentation).
36
Рис. 2. Практическая работа
Шаблон EduCAD Practice
Динамический шаблон EduCAD Practice является проектом, написанным для компилятора Borland C++ Builder 4.0. По умолчанию поддерживаются:
• многооконный интерфейс;
• многоуровневый тренажер;
• возможность пошагового процесса решения с визуализацией каждого его шага;
• древовидная структура решения задач, встраивание деревьев решения друг в друга;
• выдача текста программы на языках C, C++ и Pascal, решающих разбираемый метод, в зависимости от уровня доступа.
Чтобы конкретизировать шаблон под определенную практическую работу, нужно перегрузить имеющиеся виртуальные функции шаблона. Например, перегрузим функцию следующего вида:
void_fastcall IWalker (TDecStepData *, int, bool).
Это обеспечит контроль над поведением тренажера при перемещении по дереву решения. Первый параметр является указателем на объект данных решаемой задачи, второй - направлением движения
(вперед, назад, в начало, в конец), третий - флагом визуального отображения (устанавливается в значение «ложь», если необходимо миновать данный шаг решения без обновления графических данных, например, если узел решения находится в свернутой ветви).
Чтобы облегчить пользователю начало работы при первом запуске программ формата EduCAD Practice, разработан специальный мастер настройки EduCAD WisePractice, позволяющий сделать индивидуальные установки интерфейса программы, начать процесс решения новой задачи на любом уровне тренажера.
На рисунке 2 показан пример вычисления интеграла по формуле Симпсона в практической работе «Численное интегрирование функций» по дисциплине «Вычислительная математика».
К настоящему времени в рамках комплекса EduCAD подготовлено два мультимедийных обучающих курса - по дисциплинам «Вычислительная математика» и «Концепции современного естествознания». Идет разработка курсов - по дисциплинам «Методы оптимизации» и «Основы теории управления», планируется создание еще нескольких курсов.
Цель разрабатываемых КУП состоит в том, чтобы соответствовать новейшим тенденциям в электронном образовании.
Список литературы
1. Мицель А.А., Романенко В.В. Автоматизированная система разработки электронных учебников. // Открытое образование. - 2001. - №5.
2. Романенко В.В. Развитие автоматизированного комплекса разработки компьютерных учебных пособий EduCAD. // Сб. тр. ТУСУР: Автоматизированные системы обработки информации, управления и проектирования. - Томск, 2002. -Т.7.
3. Веретенников М.В. Автоматизированная система проверки знаний «EduCAD Control». // Сб. тр. ТУСУР: Автоматизированные системы обработки информации, управления и проектирования.- Томск, 2002. - Т.7.
СИСТЕМА ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ПРИ ВЫБОРЕ ТЕХНОЛОГИЧЕСКОГО ОБОРУДОВАНИЯ В УСЛОВИЯХ ТЕНДЕРА НА БАЗЕ ОНТОЛОГИИ
Е.А. Суржиков, Е.А. Никулина, С.В. Елистратов, И.Н. Дорохов
В России остро стоят проблемы ввода новых мощностей, замены морально и физически устаревшего оборудования, реконструкции объектов. Механизм решения перечисленных проблем, конечным смыслом реализации которого является увеличение мощности химического оборудования при снижении удельных энергозатрат и негативного воздействия на окружающую среду, повышение качества продукта, практически один и тот же - выбор из многообразия
предлагаемого различными фирмами оборудования некоего оптимального его набора. Это определяет актуальность систем поддержки принятия решений в условиях тендера (конкурсных торгов) [1].
Масштабность объектов сравнения как в материальном выражении, так и в смысле их влияния на состояние окружающей среды, высокая вероятность тиражирования принятого решения, значительная стоимость энергоносителей (пара, топлива, энергии)
37