Интеллектуальная система управления знаниями об оптимизации программ

Особенности архитектуры интеллектуальной системы управления знаниями об оптимизации программ. Использование интеллектуальной системы для компьютерных экспериментов, макетирования оптимизирующих компиляторов и совершенствования обучения студентов.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 16.01.2018
Размер файла 19,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Интеллектуальная система управления знаниями об оптимизации программ

М.А. Князева

Представлена интеллектуальная система управления знаниями об оптимизации программ. В качестве формализма представления знаний используется онтология предметной области оптимизации программ. Информационное обеспечение и доступ к системе осуществляется специализированным банком знаний о преобразованиях компьютерных программ.

Введение

В настоящее время задача увеличения производительности компьютеров по-прежнему остаётся актуальной [Воеводин и др., 2002], [Касьянов, 1988]. С усложнением архитектуры компьютеров усложняются и языки программирования, что влечет за собой снижение качества как исходных, так и объектных программ. Поэтому, чтобы не потерять выигрыш, полученный за счет возможностей новых архитектур компьютеров, необходимо улучшать исходные программы и совершенствовать компиляторы языков программирования.

Однако в сферах науки, практики и образования, связанных с преобразованиями программ, существует ряд взаимосвязанных проблем. Основной проблемой в сфере науки о преобразованиях программ является невозможность своевременно выполнять компьютерные эксперименты. Цель таких экспериментов - определить, насколько часто в реальных программах применимы те или иные преобразования и какой эффект дает их применение. Единственным средством проведения подобных экспериментов являются оптимизирующие компиляторы. Однако период времени, который обычно проходит от момента публикации описания нового преобразования до момента окончания реализации оптимизирующего компилятора, содержащего в своем наборе данное преобразование, настолько велик, что результаты компьютерных экспериментов с этим преобразованием оказываются мало актуальными. Кроме того, оптимизирующий компилятор обычно содержит большой набор преобразований и встроенную стратегию их применения. Поэтому получить результаты компьютерных экспериментов, относящихся к конкретному преобразованию (а не ко всему набору), весьма проблематично.

В сфере разработки оптимизирующих компиляторов основными проблемами являются разнородность систем понятий и моделей в области преобразования программ, невозможность макетирования оптимизирующих компиляторов и их быстрое моральное старение. До настоящего времени не предложено никаких средств макетирования оптимизирующих компиляторов, что повышает риски при их разработке. Наконец, каждый оптимизирующий компилятор является плохо модифицируемой программой - изменение набора преобразований в нем практически невозможно. С учетом весьма длительных сроков его разработки такой компилятор до определенной степени устаревает уже к моменту своего ввода в эксплуатацию по сравнению с текущим уровнем науки в области преобразований программ и продолжает устаревать в процессе эксплуатации.

Указанные недостатки заставляют искать новые подходы к построению модифицируемых оптимизирующих компиляторов, в которых наборы преобразований, а также наборы языков представления программ и целевые платформы не являлись бы фиксированными. Таким подходом является интеллектуальная система, моделирующая процесс преобразования программ, управляемый знаниями. Информационное обеспечение и доступ к системе осуществляется специализированным банком знаний о преобразованиях компьютерных программ (СБкЗ_ПП - далее банк знаний) [Клещев и др., 2005a, 2005b], [Князева, 2004a], [Knyazeva et al., 2006].

1. Архитектура интеллектуальной системы управления знаниями об оптимизации программ

Для решения научных, практических и образовательных проблем в области преобразования программ предложена концепция интеллектуальной системы управления знаниями об оптимизации программ.

Банк знаний состоит из блока администрирования (БА), информационного наполнения (ИН), оболочки ИН и программного наполнения (ПН).

Блок администрирования банка знаний предназначен для администрирования. Функции по управлению пользователями и информационными ресурсами выполняет администратор банка знаний.

Информационное наполнение состоит из: онтологии знаний о преобразованиях программ, онтологии (описания абстрактного синтаксиса) языков программирования; онтологии моделей структурных программ (МСП); онтологии знаний о потоковом анализе; онтологии знаний о целевых платформах. Также в информационном наполнении банка знаний хранятся: база знаний о преобразованиях программ; база программ в терминах онтологий языков программирования, предназначенная для хранения исходных программ; база программ в терминах онтологии МСП; база знаний о потоковом анализе программ; база знаний о целевых платформах, а также архив историй преобразований программ и отчетов по качеству процесса оптимизации программ.

Оболочка ИН предоставляет доступ к хранимой информации и компьютерным программам. Оболочка информационного наполнения банка знаний может надстраиваться, а для программного наполнения банка знаний могут разрабатываться новые программные средства. Функции по надстраиванию оболочки информационного наполнения банка знаний и встраиванию новых программных средств банка знаний выполняет специальный пользователь, называемый сопровождающим.

Программное наполнение (т.е. сервисы, реализованные через оболочку) включают: средства редактирования банка знаний, преобразователь программ, средства генерации низкоуровневого кода на различные платформы, а также средства визуализации историй преобразований программ и отчетов по качеству процесса оптимизации программ.

Подсистема управления интеллектуальной системы реализует ряд функций: функция работы с пользователем - дает возможность работать пользователю с программой, делать выбор программ, преобразований, стратегий, платформ, запускать редактор программ. Функция связи с базой знаний - реализует обмен информацией со специализированным банком знаний о преобразовании программ. Функция работы с редактором - проводит совместную работу с редактором знаний. Функция реализации процесса преобразования - выстраивает по определенному алгоритму работу блоков: потокового анализа, поиска участков экономии, замены участка экономии на оптимизированный участок экономии, оценки эффективности; проводит обмен данными между ними; предоставляет знания для подсистем из базы знаний. Функция передачи данных в генератор - реализует передачу данных в генератор, для последующего построения исполняемого кода на различные платформы.

Средства редактирования включают: редактор знаний о преобразованиях программ, редакторы программ на языках программирования, редактор МСП, редактор знаний о потоковом анализе программ, редактор знаний о целевых платформах, которые создаются с использованием редактора информации различных уровней общности (ИРУО) [Орлов и др., 2006].

Редактор ИРУО используется для редактирования онтологии знаний о преобразованиях программ, онтологий языков программирования, онтологии МСП, онтологии знаний о потоковом анализе и онтологии знаний о целевых платформах. Все онтологии представлены в виде сети понятий. Редактор ИРУО используется и как инструментальное средство для создания редакторов банка знаний. Процесс разработки любого специализированного редактора сводится к разработке модели онтологии конкретной предметной области, которая затем используется в качестве входной информации (метаинформации) для редактора ИРУО. Управляемый моделью онтологии, редактор ИРУО становится по существу специализированным редактором.

Создание, редактирование, а также сохранение программ на различных языках программирования в базе программ осуществляется соответствующими редакторами программ, каждый из которых ориентирован на определенный язык программирования. Каждый редактор является структурным, а процесс редактирования программ с помощью соответствующего редактора осуществляется в рамках модели онтологии языка программирования, на который ориентирован редактор [Князева и др., 2005b].

Для получения представления программы, не зависящего от используемых редакторов и языков программирования, а также являющегося удобным для проведения анализа и преобразования исходной программы, предложено программное средство - МСП-генератор. Данное средство по представлению программы, сформированному соответствующим редактором программ генерирует представление программы на языке моделей структурных программ (ЯМСП). Анализируя исходную программу, МСП-генератор находит и проводит анализ конструкций языка программирования, на котором программа написана, и генерирует на их основе необходимые семантически эквивалентные им конструкции ЯМСП, сохраняя, иерархию и порядок следования этих конструкций в программе. В процессе генерации также заполняются таблицы переменных, констант, функций, типов данных, присутствующих в программе.

После того, как на основе выбранной пользователем исходной программы будет сформирована программа на ЯМСП, подсистема управления вызывает преобразователь программ, передав эту программу в качестве входной информации.

Преобразователь программ - совокупность подсистем, управляемых знаниями, общей задачей которых является проведение преобразований над исходной программой. Преобразователь программ состоит из следующих подсистем: подсистема потокового анализа программ; подсистема поиска участков экономии и проверки контекстных условий; подсистема замены участка экономии на преобразованный участок экономии; подсистема измерения эффективности преобразований и создания отчетов по качеству процесса преобразований программ. Преобразователь программ управляется базой знаний о преобразованиях программ банка знаний и базами программ в терминах онтологий языков программирования и базой программ в терминах онтологии МСП. Знания представлены в декларативном виде в базе знаний. Преобразователь программ ориентирован на фиксированные онтологии знаний о преобразованиях программ и МСП.

Исходными данными для преобразователя является МСП и набор преобразований, выбранных пользователем через подсистему управления. Каждое преобразование состоит из формулы контекстного условия и формулы трансформации. Результатом работы преобразователя является исходная МСП и преобразованная согласно указанным преобразованиям.

Подсистема потокового анализа программ является первой подсистемой преобразователя программ. Данная подсистема реализует управляемый знаниями процесс сбора информации о различных свойствах программы без ее исполнения. Основными компонентами подсистемы являются блок выбора стратегии потокового анализа и блок интерпретации знаний о потоковом анализе.

Подсистема поиска участков экономии получает на входе формулу контекстного условия и МСП. Подсистема осуществляет поиск фрагментов МСП, соответствующих формуле, и возвращает их в качестве участка экономии. Результатом работы подсистемы служит участок экономии - адреса фрагментов МСП, удовлетворяющих указанному контекстному условию. интеллектуальный компьютерный компилятор обучение

Подсистема замены участка экономии на оптимизированный участок экономии получает адреса фрагментов, найденные в процессе поиска участка экономии, формулу трансформации, и МСП. Подсистема строит на месте участка экономии его трансформированную версию, после чего проверяет корректность полученной МСП. Полученная новая модель программы может вновь использоваться для поиска участков экономии и оптимизации.

Средства генерации низкоуровневого кода на различные платформы позволяют генерировать объектные программы по преобразованным моделям структурных программ. На основе созданной модели онтологии знаний о целевых платформах, проектируется редактор и база знаний о целевых платформах. С помощью редактора в базу знаний заносятся описания языков ассемблера целевых платформ в приемлемом с точки зрения генерации кода виде. На этапе генерации низкоуровневого кода для программы в промежуточном представлении (МСП) генератор низкоуровневого кода производит анализ программы и целевой платформы, для которой ведется генерация. На выходе подсистемы программа представлена на языке ассемблера заданной целевой архитектуры.

Средства визуализации историй преобразований программ и отчетов по качеству процесса оптимизации программ позволяют просмотреть историю применения преобразований программ.

Архитектура интеллектуальной системы управления знаниями об оптимизации программ разработана по технологии «клиент-сервер». Средства редактирования банка знаний имеют графический пользовательский интерфейс и представляют собой распределенное приложение. Пользователь взаимодействует с клиентской частью средств редактирования, которая предоставляет единый интерфейс для редактирования каждого вида информации. Логика средств редактирования разработана на основе соответствующей модели онтологии и взаимодействует с соответствующей компонентой информационного наполнения банка знаний.

2. Использование интеллектуальной системы для компьютерных экспериментов, макетирования оптимизирующих компиляторов и для обучения студентов

Специализированный банк знаний можно использовать для поддержки научных исследований. Банк предоставляет следующие возможности: открывает возможности для построения классификаций оптимизирующих преобразований, в том числе новых; позволяет формировать и развивать системы понятий в этой области; включать новые преобразования в систему знаний, оперативно знакомить специалистов с новыми результатами; проводить компьютерные эксперименты; представлять научные результаты в виде, удобном для использования в профессиональной деятельности; открывает возможности сопоставления новых результатов с ранее полученными результатами; минимизировать трудозатраты при написании научных обзоров.

Специализированный банк знаний можно использовать для разработки макетов оптимизирующих компиляторов управляемых знаниями об оптимизации программ [Князева, 2005c]. Создатель макета выбирает язык программирования из множества языков, редакторы которых существуют в банке, генератор кода на нужную ему платформу из множества генераторов, которые существуют в банке, набор оптимизирующих преобразований программ из базы знаний и задает стратегию применения этих преобразований. Если задан пустой набор оптимизирующих преобразований программ из базы знаний, то макет компилятора будет неоптимизирующим. Разработка макетов оптимизирующих компиляторов открывает возможность для проведения исследований стратегий и наборов преобразований программ в таких компиляторах.

Специализированный банк знаний возможно использовать и для создания саморазвивающихся оптимизирующих компиляторов. Такой компилятор получается путем макетирования компилятора по схеме, предложенной выше, когда набор оптимизирующих преобразований программ содержит все преобразования, содержащиеся в базе знаний - как в текущем ее состоянии, так и во всех будущих. Поскольку база знаний постоянно модифицируется - в нее добавляются новые преобразованиями и из нее исключаются морально устаревшие преобразования, то свойства макета компилятора будут автоматически изменяться по мере изменения базы знаний банка.

Специализированный банк знаний о преобразованиях программ, можно использовать для поддержки процесса обучения студентов. Через такие действия, как решение задач и исследование, обучаемые могут подойти к пониманию предмета - преобразований программ. Задача банка заключается в обеспечении всесторонней обратной связи в процессе обучения и предоставлении возможности получить практические навыки формализации и использования знаний, а роль преподавателя заключается в оценке окончательного результата. Для лучшего усвоения знаний разработан учебно-методический комплекс по дисциплине Теория вычислительных процессов и структур II. Теория и методы трансляции” и “Оптимизация программ” для студентов, обучающихся по специальности 351500 - математическое обеспечение и администрирование информационных систем [Князева, 2006d]. Учебно-методический комплекс включает: указания по работе с комплексом; нормативное обеспечение: рабочую учебную программу, методические указания по самостоятельному освоению дисциплины; информационно-методическое обеспечение: основное учебное издание, глоссарий, лабораторные работы и рекомендации по их выполнению, список основной и дополнительной литературы, информационных и справочных источников, каталог образовательных ресурсов в сети Интернет; средства педагогического контроля: списков вопросов к коллоквиумам, зачетам и экзаменам; тестовые задания.

Список литературы

1. [Воеводин и др., 2002] Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ_Петербург, 2002.

2. [Касьянов, 1988] Касьянов В.Н. Оптимизирующие преобразования программ.- Москва: Наука, 1988.

3. [Клещев и др., 2005a] Клещев А.С., Князева М.А. Управление информацией о преобразованиях программ. I. Анализ проблем и пути их решения на основе методов искусственного интеллекта // Изв. РАН. ТиСУ. 2005. № 5.

4. [Клещев и др., 2005b] Клещев А.С., Князева М.А. Управление информацией о преобразованиях программ. II. Внутреннее устройство специализированного банка знаний о преобразованиях программ // Изв. РАН. ТиСУ. 2005. № 6.

5. [Князева, 2004a] Князева М.А. Банк знаний о преобразованиях компьютерных программ // Искусственный интеллект. 2004. Т. 3.

6. [Князева и др., 2005b] Князева М.А., Тимченко В.А. Структурные редакторы программ на языках программирования высокого уровня и генератор моделей структурных программ в банке знаний о преобразованиях программ // Искусственный интеллект. 2005. Т.4.

7. [Князева, 2005c] Князева М.А. Оптимизирующие компиляторы, управляемые базами знаний // Информационные технологии. 2005. № 12.

8. [Князева, 2006d] Князева М.А. Учебно-методический комплекс «Оптимизация программ» // Компьютерные учебные программы и инновации. 2006. № 4. http://www.ofap.ru.

9. [Орлов и др., 2006] Орлов В.А., Клещев А.С. Компьютерные банки знаний. Многоцелевой банк знаний // Информационные технологии. 2006. №2.

10. [Knyazeva et al., 2006] Knyazeva M., Kleshchev A. A Web-system for Computer Experiments in the Field of Program Transformations // IJ ITA. 2006. Vol.13.Nо. 4.

Размещено на Allbest.ru

...

Подобные документы

  • Особенности создания интеллектуальной справочной системы по логике, ее технико-экономическое обоснование. Онтология, содержательная декомпозиция, исходные тексты базы знаний, ее верификация и отладка. Тестирование интеллектуальной справочной системы.

    курсовая работа [3,4 M], добавлен 14.07.2012

  • Изучение этапов возникновения компьютерных операционных систем. Особенности их прикладного программного интерфейса и конфигурации. Характеристика набора вспомогательных программ - редакторов, компиляторов, программ работы с файлами (системные утилиты).

    презентация [98,0 K], добавлен 29.05.2010

  • Понятие интеллектуальной информационной системы. Подбор земельного участка под индивидуальное жилищное строительство в качестве предметной области. Выбор среды разработки системы, особенности ее проектирования. Анализ типичного пользователя системы.

    курсовая работа [1,6 M], добавлен 18.01.2017

  • Анализ исследований на тему предрасположенности человека к химических зависимостям. Создание опроса, на основе проанализированной литературы. Анализ и выбор технологии для создания интеллектуальной системы. Проектирование интеллектуальной системы.

    дипломная работа [2,5 M], добавлен 26.08.2017

  • Разработка алгоритма и реализация интеллектуальной информационной системы, позволяющей оценить время в неделю, необходимое для осуществления функций технической поддержки администратора с необходимым уровнем надежности работы локальной сети.

    курсовая работа [37,4 K], добавлен 01.12.2009

  • Метод сетевого оператора и его применение в задачах управления. Исследование на основе вычислительного эксперимента синтезируемой системы автоматизированного управления космического аппарата, методом интеллектуальной эволюции. Алгоритм пчелиного роя.

    дипломная работа [1,8 M], добавлен 17.09.2013

  • Создание интеллектуальной экспертной системы по подбору комплектующих для стационарного компьютера. Медицина как пример экспертной системы с использованием метода Криса-Нейлора. Извлечение знаний, их структурирование, представление, стратегия вывода.

    контрольная работа [827,5 K], добавлен 14.12.2012

  • Понятие операционной системы (ОС) как базового комплекса компьютерных программ для управления аппаратными средствами компьютера и работы с файлами. Файловые системы и их основные функции. Способы именования файлов при создании диска, совместимость с ОС.

    контрольная работа [36,8 K], добавлен 20.11.2009

  • Понятие базы знаний для управления метаданными. Особенности баз знаний интеллектуальной системы. Языки, используемые для разработки интеллектуальных информационных систем. Классические задачи, решаемые с помощью машинного обучения и сферы их применения.

    реферат [16,9 K], добавлен 07.03.2010

  • База знаний интеллектуальной справочной системы по алгебре дробей со стандартными набором информационно-поисковых операций, пользовательским интерфейсом. Тестирование на стандартных вопросах и шаблонах поиска. Интеграция со смежными предметными областями.

    курсовая работа [12,3 M], добавлен 06.05.2011

  • Характеристика методов нечеткого моделирования и изучение системы кластеризации в пакетах прикладных программ. Разработка и реализация алгоритма для оптимизации базы правил нечеткого классификатора с помощью генетического алгоритма аппроксимации функции.

    дипломная работа [1,9 M], добавлен 21.06.2014

  • Проблема представления знаний в компьютерных системах – одна из основных проблем в области искусственного интеллекта. Исследование различных моделей представления знаний. Определения их понятия. Разработка операции над знаниями в логической модели.

    курсовая работа [51,9 K], добавлен 18.02.2011

  • Классификация баз данных. Использование пакета прикладных программ. Основные функции всех систем управления базами данных. Настольная система управления базами данных реляционного типа Microsoft Access. Хранение и извлечение электронных данных.

    курсовая работа [962,4 K], добавлен 23.04.2013

  • Технико-экономическое обоснование разработки интеллектуальной справочной системы по музыкальным произведениям. Задачно-ориентированная спецификация, онтология и содержательная декомпозиция базы знаний проектируемой справочной интеллектуальной системы.

    курсовая работа [2,2 M], добавлен 04.12.2010

  • Задачи применения модели персонализации в сети Интернет. Программная реализация интеллектуальной системы, позволяющей при заданном запросе подбирать клиенту необходимый косметический товар. Использование ассоциативных правил для разработки программы.

    курсовая работа [1,3 M], добавлен 17.04.2012

  • Анализ графических пользовательских интерфейсов современных систем оптимизации программ. Создание математической модели и алгоритма системы управления СБкЗ_ПП, ее архитектурно-контекстная диаграмма. Техническая документация программного средства.

    дипломная работа [1,1 M], добавлен 18.04.2012

  • Подготовка к созданию интеллектуальной системы: определение проблемы, поиск эксперта, анализ расходов и прибыли. Стадии разработки прототипной системы, ее развитие до промышленной экспертной системы (ЭС). Оценка, стыковка с программами и поддержка ЭС.

    презентация [79,0 K], добавлен 03.01.2014

  • Разработка цифровой модели системы управления в среде Мathcad с учетом ограничений на фазовую координату X3. Исследование системы методом цифрового моделирования. Проведение параметрической оптимизации управления. Линейная комбинация фазовых координат.

    курсовая работа [246,8 K], добавлен 30.10.2014

  • Оптимизации внутренних бизнес-процессов на промышленном предприятии ООО "Брянскпромбетон" с использованием пакета прикладных программ "КИС: Бюджетирование". Анализ программных продуктов для решения задач. Логическая последовательность бюджетирования.

    дипломная работа [7,0 M], добавлен 25.05.2008

  • Опыт отечественной науки - ситуационные системы управления. Manufacturing executing systems - автоматизированные системы управления производственными процессами. Особенности технологии производства партий пластин. Разработка алгоритмов и программ.

    дипломная работа [1,7 M], добавлен 14.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.