М.М. ГОРБУНОВ-ПОСАДОВ - Системное обеспечение пакетов прикладных программ (1184225), страница 34
Текст из файла (страница 34)
С другойстороны, для выполнения эффективного автоматического планированиярасчетных цепочек требуется высокая контекстная независимость модулей, ипоэтому желательно оформлять модули инвариантно относительновозможных информационных связей с какими-либо другими модулями.Сбалансированное разрешение этих противоречий может быть найдено наоснове использования регламента смешанной модуляризации. При такомподходе нормативы «внутренней» составляющей регламента модуляризацииобеспечивают единообразие в подготовке программных тел модулей, анормативы «внешней» составляющей позволяют описывать в заголовкахмодулей их семантику и, в частности, семантику входных и выходныхвеличин модуля.Принципиальная схема автоматического синтеза расчетных программ,принятая в качестве основы пакета МП, выглядит следующим образом.Знания о предметной области и функциональных модулях хранятся в формесемантической сети. Знания о предметной области описывают свойстваабстрактных объектов предметной области и отношения между ними.
Этизнания используются при интерпретации описания четрежа, на котором будетпоставлена задача. Знания о функциональных модулях, помимо программвычислительных процедур, содержат сведения об их семантике:абстрактные описания геометрических конфигураций, к которым применимданный модуль, а также описание, характеризующее саму программнуюреализацию вычислительной процедуры. Сведения о семантике модуляиспользуются при планировании, во-первых, для определения на заданномчертеже тех конкретных геометрических конфигураций, к которым применимданный модуль, и, во-вторых, при вычислении цены модуля по тем егохарактеристикам, перечень которых определяется заданным в постановкезадачи критерием оптимизации. Собственно планирование понимается какпостроение минимальной по цене расчетной цепочки, последовательноевыполнение модулей которой при заданных значениях величин, предполагаемыхпри постановке задачи известными, приводит к вычислению значений величин,указанных в постановке задачи в качестве искомых.
При этом цена расчетнойцепочки определяется как сумма цен входящих в нее модулей. Посформированной планировщиком расчетной цепочке генерируется программа,реализующая решение поставленной задачи.При определении операционных возможностей пакета МП было учтено, чтонаиболее удобным для пользователя режимом общения с пакетом припроведении расчетов в рамках протокола «ситуация - задача – решение» являетсярежим диалога.
Для сокращения времени отклика пакета на запрос, касающийсярешения задачи, обработка постановки задачи завершается компиляциейрасчетной программы на языке программирования функциональных модулей.Кроме того, для упрощения инфраструктуры системного наполнения пакетабыло решено воспользоваться единой базой данных для хранения знаний опредметной области и функциональных модулях, а также расчетных данных.Положенная в основу пакета МП схема автоматической генерациирасчетных программ требует включения в состав системного обеспеченияпакета развитых средств информационного обслуживания. Для эффективнойобработки разнообразных информационных запросов, возникающих в связи ссинтезом расчетной программы, эти средства должны осуществлять управлениеобширной базой данных и обеспечивать при этом возможность логическогоанализа знаний о предметной области и функциональных модулях, сведений оконкретной предметной ситуации и поставленной на ней задаче.
В аспектевнешнего обслуживания информационные средства интеллектуального пакетадолжны обеспечивать возможность ввода в базу данных сведений о предметнойобласти и функциональных модулях (в том числе текстов вычислительныхпроцедур) и, разумеется, выдачу этих сведений в ответ на соответствующиезапросы.Анализ изложенных выше соображений позволил сделать вывод оцелесообразности разработки пакета МП в виде надстройки над многоцелевойинформационно-логической системой. Поскольку к моменту начала работ надпакетом с автоматическим планированием вычислений имелся значительныйопыт использования информационно-логической системы ВОПРОС-ОТВЕТ-2[92], она и была выбрана в качествеорганизационной основы пакета МП. Рассмотрим теперь особенностиреализации этого пакета.6.3.2.
Представление знаний. Использование такой системы, какВОПРОС-ОТВЕТ-2, дает возможность накапливать знания в трех видах: ввиде фактов, правил вывода и в виде процедур.Знания о предметной области, содержащиеся в базе данных пакетаМП, представляются в виде набора фактов и правил вывода, в частности,правил, определяющих взаимосвязь между объектами предметнойобласти. Например, частью описания конкретного геометрическогочертежа могут быть сведения о перпендикулярности некоторых отрезков,и одновременно в базе данных может присутствовать правило вывода,утверждающее, что если две стороны одного треугольника взаимноперпендикулярны, то такой треугольник является прямоугольным.Знания о вычислениях, возможных в данной предметной области,накапливаются в базе данных в виде модулей функциональногонаполнения.
Регламент модуляризации, принятый в пакете МП,предусматривает, что функциональный модуль состоит из двух частей:тела - программы, записанной в терминах вычислительных операторовязыка системы ВОПРОС-ОТВЕТ-2, и заголовка - набора фактов и правилвывода, описывающих семантику модуля. По сути дела, заголовкимодулей представляют собой записанные в виде фактов и правил выводазнания о процедурных знаниях, накопленных в пакете. В свою очередь,заголовок модуля также состоит из двух частей: описания проблемнойсемантики модуля и описания его системной семантики.Проблемная семантика модуля содержит сведения о том, как этотмодуль может быть использован при расчетах, проводимых в рамкахрассматриваемой предметной области.
Прежде всего, проблемнаясемантика содержит сведения о геометрической конфигурации, к которойданный модуль применим. Например, такой конфигурацией может бытьпрямоугольник или отрезок, которому принадлежит некоторая точка, ит.д. Кроме того, проблемная семантика модуля содержит сведения о том,какие элементы данной конфигурации могут рассматриваться каквходные или выходные величины этого модуля. Так, если конфигурацияпредставляет собой произвольный треугольник, то в описаниипроблемной семантики одного из модулей, применимых к даннойконфигурации (а именно модуля, реализующего фор-мулу Герона), входными величинами объявляются три сторонытреугольника, а выходной величиной - его площадь.Вообще говоря, один и тот же модуль способен обсчитывать разныеконфигурации, может быть, даже относящиеся к разным предметнымобластям.
Поэтому проблемная семантика модуля может содержать сведенияо нескольких конфигурациях, к которым этот модуль в принципе применим.Системная семантика модуля содержит сведения о модуле как опроцедуре, т.е. сведения о различных программных параметрах иэксплуатационных характеристиках. Это, например, адрес начала программы,список идентификаторов соответствующих входных и выходных величин,размерность этих величин, количество команд, время счета и т.д. Характерэтих знаний заранее не фиксирован, что позволяет накапливать в базе данныхлюбую информацию, которая может быть полезна при планировании.Наличие в базе данных знаний о предметной области и семантике модулейдает возможность решать задачу организации автоматического планированиявычислений в более полном объеме, чем это делается при традиционнойсхеме.
Действительно, во-первых, используя описания системной семантикимодулей, можно производить не просто планирование вычислений, аоптимальное планирование, причем с учетом различных критериевоптимизации. В частности, выбирая соответствующую информацию из базыданных, планировщик может построить цепочку вычислений, используя такиефункциональные модули, которые дают минимальное суммарное время ихвыполнения или занимают минимальный по размеру участок памяти.Критерий выбора модулей может быть и более сложным, например:минимальное время при заданных ограничениях на память.