На базе исходной решетки для каждого значения входного параметра p (вероятность заражения при контакте с больным) формировалась (но уже в оперативной памяти) анализируемая решетка и запускался многопроцессорный вариант алгоритма ММК.
Вычисления проводились в Межведомственном суперкомпьютерном центре (г. Москва) на суперкомпьютере mvs100k с общим количеством процессоров 11 680. Так, имитационный эксперимент со значениями входного параметра p от 0,01 до 1 и шагом в 0,01 (при значениях t=3 дня, t=5 дней, t=20 дней и t=30 дней) на 56 процессорах занял 108 минут процессорного времени.
Визуализация полученных результатов проводилась с помощью Google Maps Api (реализация на Java). Выбирался город (как очаг заражения), задавалось количество зараженных узлов в нем, для данных p и t загружался вычисленный ранее массив кластерных меток. Определялись метки зараженных узлов данного города. Производился последовательный обход меток всех узлов из загруженного массива, и, если метка являлась потенциально зараженной, город, в который входил узел с данной меткой, также объявлялся потенциально зараженным. Таким образом, формировался список потенциально зараженных городов. Этот список сохранялся в виде javascript-команд Google Maps API в html-файле. В зависимости от численности населения зараженный город помечался красным кругом определенного размера. Для просмотра результатов html-файл запускался в браузере.
В теории перколяции получен ряд строгих математических результатов, однако основной прогресс достигнут на пути использования компьютерных методов. Работа по разработке новых эффективных алгоритмов постоянно продолжается. Особый интерес представляют алгоритмы для подструктур перколяционного кластера и алгоритмы, основанные на параллельных вычислениях. В данной работе описан параллельный алгоритм многократной маркировки кластеров, который позволяет проводить имитационные эксперименты на многопроцессорных вычислительных системах.
Предложенная мультиагентная модель распространения эпидемий на основе теории перколяции является существенно новым подходом как в имитационном моделировании, так и в направлении моделирования процессов распространения заболеваний. Перколяционный подход позволяет получить кластер, включающий в себя все возможные пути распространения болезни.
Литература
1. Flory P.J.J. Molecular Size Distribution in Three Dimensional Polymers. I. Gelation // Journal of the American Chemical Society. 1941. Vol. 63, № 11, pp. 3083-3090.
2. Stockmayer W.H. Theory of molecular size distribution and gel formation in branched polymers // The Journal of Chemical Physics. 1943. Vol. 11, № 45, p. 11.
3. Broadbent S.K., Hammersley J.M. Percolation Process in Crystals and Mazes // Proc. Camb. Phil. Soc. 1957. Vol. 53, № 3, pp. 629-641.
4. Тарасевич Ю.Ю. Перколяция: теория, приложения, алгоритмы: учеб. пособие. М.: УРСС, 2002. 64 c.
5. Гулд Х., Тобочник Я. Компьютерное моделирование в физике. М.: Мир, 1990. Т. 2. 400 с.
УДК 004.62
РАСШИРЯЕМАЯ СИСТЕМА ГЕНЕРАЦИИ ЗАДАНИЙ
С.В. Бакушев, д.т.н.; А.В. Куликов
(Пензенский государственный университет архитектуры и строительства,
tim-graf_penza@rambler. ru)
Дается описание программного средства, предназначенного для автоматической генерации заданий для контрольных и расчетно-графических работ по курсу «Сопротивление материалов». Показано, что программное средство TaskGen Plus является расширяемым и может использоваться для генерации заданий и по другим предметам (строительной механике, теории упругости и т.д.) при условии программной разработки соответствующих плагинов.
Ключевые слова: программное средство, автоматизированная система, плагин.
С развитием информационных технологий многие задачи образовательного процесса получили весьма удачные автоматизированные решения. Вместе с тем некоторые ключевые задачи еще не нашли должного и всестороннего развития в направлении компьютерной автоматизации, в частности, такая важная составляющая преподава-
тельской деятельности, как формирование заданий для решения студентами самостоятельных, контрольных, расчетно-графических, курсовых и других работ. Этот процесс очень трудозатратный, кроме того, он требует от преподавателя определенной гибкости ума и творчества. Поэтому в большинстве случаев из-за нехватки времени пре-
подаватель ограничивается небольшим количеством вариантов заданий. К тому же очень часто такие варианты однотипны. В результате студенты, не имея достаточных знаний и не прилагая усилий, могут сдать уже ранее выполненную кем-то работу.
Эту важную проблему в определенной ее части решает разработанная авторами статьи автоматизированная система генерации заданий TaskGen Plus (рег. № 50200800600, дата регистрации: 17.03.2008), позволяющая без особого труда получить максимально качественную и быструю генерацию заданий с выводом на печать.
При проектировании была поставлена задача разработать гибкую автоматизированную систему генерации заданий для студентов применительно к курсу «Сопротивление материалов», позволяющую каждому пользователю иметь набор заданий в зависимости от своих приоритетов и специфики преподавания курса для соответствующей специальности. Набор заданий должен быть динамичным, то есть допускать возможность модификации без существенной перестройки структуры программ, и пополняемым. Автоматизированная система генерации заданий должна обладать интуитивно понятным интерфейсом, не требующим ни специальных знаний, ни навыков работы, быть надежной и безопасной. Программа должна сопровождаться достаточно подробной электронной справочной системой и для освоения самой системы генерации заданий, и для выполнения конкретного задания.
Автоматизированная система генерации заданий TaskGen Plus удовлетворяет всем перечисленным требованиям.
Генератор обеспечивает высокое визуальное качество заданий, бесчисленное количество вариантов, минимальное время на подготовку заданий. Неограниченное множество вариантов определяется зависимостью генерации от года разработки задания, номера студенческой группы и номера варианта студента. Конечно, количество предлагаемых автоматизированных заданий ограничено, их ровно столько, сколько было запланировано в наборе заданий, однако в силу расширяемости системы генерации заданий к программе можно добавлять дополнительные плагины с заданиями, не перекомпилируя код программы. Требуется только разработать сам плагин на языке C++ в среде Microsoft Visual Studio по уже готовым шаблонам и образцам с кодом и по готовым библиотекам с графическими элементами. Практически вся разработка сводится к компоновке кода из вызовов уже разработанных функций. При загрузке системы генерации заданий она просканирует все существующие плагины, сгруппирует их по темам и добавит в меню программы.
Кроме собственно генератора заданий, программа снабжена справочной системой, вклю-
чающей наряду со справкой по работе с генератором еще и подробную справку-задание для преподавателя по каждому заданию, а именно: задание на выполнение расчетно-графической или контрольной работы, расчетную схему, описание исходных данных, алгоритм выполнения задания, краткие теоретические сведения, необходимые справочные материалы и таблицы.
Система TaskGen Plus включает программные компоненты, изображенные на рисунке 1.
Рис. 1
Плагин исполняется в виде библиотеки dll. Каждому заданию соответствует строго одна библиотека, и наоборот, каждой библиотеке соответствует строго одно задание. Каждый плагин хранит в ресурсах информацию о себе: название задания и название темы, которой это задание соответствует.
Входными параметрами плагина являются группа, номер варианта, окаймляющий прямоугольник, указатель на графический контекст, выходными - идентификатор случайности, соответствующий этой группе, варианту и текущему году, рекомендуемые высота и ширина задания, а также графическое отображение сгенерированного задания.
На рисунке 2 представлена схема взаимодействия ядра системы и плагина.
Рис. 2
Обязательными составляющими классами плагина являются:
- CIDPersonal - класс контролируемо-слу-чайного идентификатора, присваиваемого по году, группе и варианту студента;
- CTask - базовый класс задания с виртуальными функциями (производен от CIDPersonal);
- CPluginApp - класс модуля;
- CTask[N] (может иметь другое название) -класс задания (производен от CTask).
Помимо основных и обязательных классов, в зависимости от конкретной специфики и реализации разрабатываемого задания плагин может иметь другие классы. Внутренняя структура классов плагина представлена на рисунке 3.
Центральным классом плагина является класс CTaskMain (в примерах название может быть CTask[N], N - номер задания). Взаимодействие с глобальным экземпляром этого класса происходит через экспортируемые функции: Form - генерация задания, Draw - вывод задания, SetGroupAndNum-ber - расчет идентификатора по группе и номеру варианта. Задание случайности: GetID - получение идентификатора, GetRecommendedHeight - получение рекомендуемого значения высоты задания, GetRecommendedWidth - получение рекомендуемого значения ширины задания.
Все плагины располагаются в каталоге plugins в корневом каталоге системы. К плагину может прилагаться документация в формате *.htm. При ее наличии начальная страница располагается по пути plugins/Названые плагина]/index.htm. В этом же каталоге находятся любые дополнительные файлы, необходимые для отображения справки по заданию.
Представим алгоритм реализации одного задания-плагина на основе предлагаемого шаблона в среде программирования Microsoft Visual Studio (настоятельно рекомендуются 2003/2005/2008) под управлением ОС Microsoft Windows 2000/2003/XP/Vista.
1. Установить систему TaskGen Plus и запустить проект в среде Microsoft Visual Studio.
2. В общих свойствах проекта в Output Directory для конфигурации Debug и для конфигурации Release указать путь к каталогу плагинов TaskGen Plus. Во вкладке Debugging для всех конфигураций установить значение Command в путь к исполняемому файлу TaskGen.exe.
3. Во вкладке ресурсов по типу RT_MANI-FEST выбрать единственный элемент с номером 2
и вставить содержимое файла манифеста для используемых версий библиотек. Вначале рекомендуется вставить версию Debug, в окончательной версии - Release. Образцы файла манифеста содержатся в каталоге плагина-шаблона.
4. В типе ресурсов Version выбрать VS_VER-SION_INFO и отредактировать в соответствии с комментариями.
5. В окне классов найти класс CTaskMain и объявить необходимые переменные в обозначенном месте в заголовочном файле класса.
6. Подключить дополнительно необходимые для реализации заголовочные файлы. При возможности использования графической библиотеки раскомментировать заголовки соответствующих файлов.
7. В файле реализации класса CTaskMain в конструкторе класса присвоить переменным значения рекомендуемой ширины и высоты задания.
8. В теле функции Form в месте, указанном комментарием, написать код, присваивающий случайные значения объявленным ранее переменным класса в соответствии со спецификой задания.
9. В теле функции Draw написать код графического представления задания в месте, указанном комментарием.
10. Скомпилировать в отладочной конфигурации и протестировать работу плагина.
11. Скомпилировать в release-конфигурации и проверить работу плагина.
12. При необходимости написать справку в формате *.htm для данного задания.
13. Дополнительно создать инсталлятор или распаковщик для разработанного плагина.
Описание функций, их входных и выходных параметров для классов графических объектов находится в соответствующих заголовочных файлах в каталоге GOBJ.
Комплекс заданий-плагинов разработан для курса «Сопротивление материалов», однако программа универсальна и позволяет создавать задания для самостоятельной работы по любому предмету.
Простота и удобство управления в сочетании с отличной подсистемой случайной генерации и графической подсистемой делают программную систему незаменимым помощником преподавателя при разработке заданий для самостоятельной работы студентов и тестовых заданий для текущего, промежуточного или окончательного контроля их знаний и навыков.
Следует отметить, что автоматизированная расширяемая система генерации заданий имеет один существенный недостаток - для разработки новых заданий необходимо привлекать квалифицированных программистов. Поэтому авторы видят основное направление дальнейшего развития программы в ее перерастании из системы генера-
Экспортируемые функции
(^CPluginApp^)
... (^Class[MT^)
Рис. 3
ции заданий в систему редактирования и генерации заданий. Другими словами, предполагается, что для создания нового задания не нужно будет обладать навыками программирования, все будет сводиться к графическому редактированию с помощью набора предоставляемых графических инструментов и подсистемы редактирования случайных переменных. Система постоянно модифи-
цируется и имеет очень хорошие предпосылки для дальнейшего развития.
Литература
Бакушев С.В., Куликов А.В. Генератор заданий для самостоятельной работы студентов // Современные информационные технологии: тр. Междунар. НТК. Вып. 6. ПГТА. 2007. С.129-133.
УДК 002.53:539.21:620.18
МОДУЛЬ ДЛЯ ПОЛУАВТОМАТИЧЕСКОГО ИЗВЛЕЧЕНИЯ И ОБРАБОТКИ ДАННЫХ В ОБЛАСТИ НАНОКОМПОЗИТОВ
(Работа выполнена в рамках государственных контрактов с Министерством образования и науки РФ
№ 02.740.11.0475 и № 11.519.11.4004)
И.В. Митрофанов; А.А. Краснов; Е.А. Поръсева; Э.М. Кольцова, д.т.н..
(Российский химико-технологический университет им. Д.И. Менделеева, г. Москва,
kolts@muctr. ты)
В данной работе предпринята попытка создания базы данных по свойствам нанокомпозитов. Проведена классификация нанокомпозитов по матрице и наполнителю. Создан модуль единого поиска статей в научных журналах, а также модуль полуавтоматического извлечения фактов, который значительно ускорил процесс наполнения базы информацией, автоматизировав его.
Ключевые слова: нанокомпозиты, метод опорных векторов, обработка информации.
Нанотехнологическая отрасль сегодня в числе наиболее динамично развивающихся. Оцениваемый объем мирового рынка наноматериалов и технологий их получения в 2009 году составил 10,1 млрд долл. США. Одним из основных продуктов этой отрасли являются нанокомпозиты, позволяющие значительно (в отдельных случаях на несколько порядков) улучшать свойства обычных композитов благодаря применению наночастиц.
Согласно прогнозам, мировой рынок наноком-позитов до 2015 года ежегодно будет расти в среднем на 25 % в натуральном выражении и почти на столько же в стоимостном (снижение темпов произойдет ближе к 2014-2015 годам, причем почти на 10 % ежегодно) [1].
Активное развитие нанотехнологий и, как следствие, информационный бум в этой области привели к появлению в 1990-2010 гг. около 300 тысяч публикаций, посвященных нанокомпози-там, более чем в 120 странах мира. Поэтому создание информационной системы, в которой были бы отражены основные свойства нанокомпозитов, их классификация, методики исследования, способы получения и применения, на данном этапе развития технологий является важной задачей. Ее успешное решение позволит исследователям и производителям выбирать оптимальные критерии при получении или применении композиционных наноматериалов, ускорить разработку, учитывая опыт своих коллег.
Цель данной работы - упростить поиск и обработку информации. Для этого был создан единый модуль, с помощью которого можно находить статьи для уже имеющейся БД по нанокомпозитам, а также реализовать возможность полуавтоматического извлечения информации.
При разработке модуля руководствовались следующими критериями: высокая скорость разработки, дружелюбный интерфейс, легкая поддержка и доработка программы в будущем.
Основой разработанной системы NanoClassi-flcator стала реализация БД свойств по нанокомпозитам в виде «вопрос-ответ». То есть имеется набор вопросов (количество которых постоянно растет, что позволяет более полно отражать основные свойства и характеристики нанокомпози-тов), разделенных по группам (например, физико-химические свойства, механические свойства, оптические свойства, методы получения и др.), и найденные в статьях ответы на них.
Для удобства хранения обработанной информации необходимо было ее структурировать: для этого разработана несложная и достаточно общая классификация по наполнителям и матрицам, делящая их в общем случае на металлические и неметаллические с последующей детализацией.
Кроме создания структуры системы, необходимо было решить и вопрос ее заполнения: очевидно, что, имея такое количество статей, следует