2 - 2000

Данная публикация является второй в цикле статей, посвященных деятельности компании «СПРУТ-Технология». Первая статья («САПР ХХI века: проблема соотношения формы и содержания», «САПР и графика», № 12’99) была посвящена проблеме соотношения формы и содержания в САПР. Настоящая статья развивает тему компьютеризации инженерных знаний для проектирования.

САПР ХХI века: персональному компьютеру персональное программное обеспечение

Георгий Евгенев

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

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

В начало В начало

Фабрика приложений или гибкая автоматизированная производственная система

Если спросить уважаемого читателя: хотел бы он иметь систему, наполненную необходимыми ему конкретными данными и знаниями, в которую для получения результата достаточно было бы ввести только техническое задание на проектирование, то он без сомнения ответил бы утвердительно. При этом он тут же задал бы встречные вопросы: как это сделать и сколько это будет стоить?

Эти вопросы связаны непосредственно с возможностями информационных технологий, используемых для создания приложений. Информационные технологии на глазах одного поколения проделали путь, на который технологиям материального производства потребовались столетия. Вместе с тем в развитии обоих видов технологий можно усмотреть определенное подобие. Материальные технологии начинались с кустарно-ремесленного производства, аналогом которого являлась работа программиста на заре вычислительной техники, когда не было ни операционных систем, ни языков и систем программирования. В это время (в 1966 году) ваш покорный слуга написал в машинных кодах и абсолютных адресах систему автоматизации программирования трехкоординатной обработки на фрезерных станках с ЧПУ, оснастив ее языком для технологов.

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

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

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

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

Использование компьютеров для генерации программных средств носит название CASE-технологии (Computer-Aided Software/System Engineering). В широком смысле CASE-технология представляет собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения (ПО), поддержанную комплексом взаимосвязанных средств автоматизации.

Большинство CASE-средств основано на парадигме методология/метод/нотация/средство. Методология определяет шаги работы и их последовательность, а также правила распределения и назначения методов. Метод — это систематическая процедура генерации описаний компонентов ПО. Нотации предназначены для описания структур данных, порождающих систем и метасистем. Средства — инструментарий для поддержки методов с использованием принятой нотации. Эти инструменты поддерживают работу пользователей при создании и редактировании проекта в интерактивном режиме, они способствуют организации проекта в виде иерархии уровней абстракции, осуществляют генерацию ПО и используются при его тестировании.

В начало В начало

Методология создания гибких автоматизированных производственных систем программных средств

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

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

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

После того как исходная система дополнена данными, то есть фактическими состояниями переменных, рассматривают новую систему (исходную систему с данными) как определенную на эпистемологическом уровне 1. Системы этого уровня называют системами данных.

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

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

На уровне 3 системы, определенные как порождающие, или системы более низкого уровня, называют подсистемами общей системы. Эти подсистемы могут соединяться в том смысле, что они имеют некоторые общие переменные. Системы этого уровня называют структурированными системами.

На уровнях 4 и выше системы состоят из набора систем, определенных на уровнях 0, 1, 2 или 3, и некоторой метахарактеристики (правила, отношения, процедуры), описывающей замены в системах более низкого уровня. Это — уровни, необходимые для формирования концептуальных графов И/ИЛИ.

В начало В начало

Методы и средства создания гибких автоматизированных производственных систем программного обеспечения

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

На уровне 0 (см. таблицу) формируется система понятий прикладной области. Каждое понятие имеет имя, состоящее из одного или нескольких слов, содержание и объем. Содержание понятия — это совокупность всех существенных его свойств. Объем понятия — множество всех объектов, обладающих существенными свойствами понятия. Свойства делятся на характеристические (ключевые), позволяющие различать экземпляры объектов из объема понятия, дифференциальные (неключевые), формирующие содержание понятия, и валентные (дискриминаторы), обеспечивающие родовидовую связь между различными понятиями. В качестве метода и нотации при формировании исходных систем в СПРУТ-технологии используется международный стандарт IDEF-1X. На рис. 1 представлен экран подсистемы формирования понятий на концептуальном уровне. На этом экране формируется понятие «Колесо зубчатое цилиндрическое», которое имеет две разновидности: внутреннего зацепления (КолЗубВн) и внешнего зацепления (КолЗубНр). Генерация логической и физической структур баз данных на основе концептуальной модели производится автоматически.

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

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

Порождающие системы на уровне 2 (см. таблицу) делятся на два основных класса: математические и экспертные. При этом первые имеют подчиненное значение по отношению ко вторым. Для решения систем уравнений и неравенств используются стандартные подпрограммы. Геометрические знания представляются в виде параметризованных образов, которые формируются в интерактивном графическом режиме с помощью системы SCAD. В качестве языка представления геометрических знаний используется простой язык, который с начала 60-х годов применяется технологами-программистами при подготовке управляющих программ для станков с ЧПУ. С помощью простого и удобного графического редактора SCAD эксперт формирует изображение. На рис. 2 представлен процесс формирования контуров зубчатого колеса. Параллельно с этим в специальном окне на геометрическом языке автоматически ведется протокол работы, в который затем с помощью простейшего текстового редактора вносятся необходимые формальные переменные (рис. 2). Полученная подпрограмма впоследствии используется в экспертной системе для автоматической генерации чертежной документации. Кстати, с помощью системы SCAD при посредстве DXF-файлов можно очень просто осуществлять параметризацию имеющегося архива чертежей, превращая данные в знания.

Методика и язык представления экспертных знаний в СПРУТ-технологии были многократно описаны на страницах настоящего журнала (№ 12’97, 10’98). Модули инженерных знаний, которые при этом используются, являются аналогами функциональных блоков международного стандарта IDEF0. На рис. 3 представлен экран инструментального средства SKB СПРУТ-технологии для формирования экспертных знаний. На этом экране осуществляется процесс формирования модуля знаний для расчета основных параметров зубчатого колеса.

Формирование структурированных систем уровня 3 (см. таблицу) производится автоматически в процессе ввода знаний на нижних уровнях. Например, на рис. 1 раскрыт дискриминатор с двумя значениями. На основе этой информации в семантической сети объектов формируется связка ИЛИ между родовым понятием и его разновидностями (рис. 4).

Высший уровень представления знаний связан с формированием мультиагентных систем.

В начало В начало

Мультиагентные системы компьютеризации инженерной деятельности

В настоящее время в области искусственного интеллекта (ИИ) происходят революционные преобразования. Источниками этих преобразований служат: 1) распределенный искусственный интеллект (РИИ) и 2) активный объектно-ориентированный подход (АООП). Центральной идеей РИИ является кооперативное взаимодействие распределенных интеллектуальных систем. Эти преобразования аналогичны и часто взаимосвязаны с теми, которые произошли в области баз данных с появлением сетевых технологий. Они базируются на классических основах ИИ с добавлением новых идей в части распределения данных и знаний, децентрализованного управления и распределенной обработки. Эти новые подходы иногда обозначают термином «распределенные проблемно-ориентированные решающие сети».

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

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

Подобластью РИИ являются мультиагентные системы (МАС). Агент представляет собой дальнейшее развитие понятия «объект». Объект — это абстракция множества сущностей реального мира (экземпляров) или виртуальных сущностей, имеющих одни и те же свойства и правила поведения. Агент — это объект, возникающий в среде, где он может выполнять определенные действия, способный к восприятию части своей среды, к общению с другими агентами и обладающий автономным поведением, которое является следствием его наблюдений, знаний и взаимодействий с другими агентами.

Как следует из приведенных определений, понятие «объект» не связано с наличием среды, которая играет существенную роль в определении агента. Объект, в принципе, не требует существования себе подобных, а агент не может быть один. Таким образом, агент — это подкласс объектов, обладающий всеми их свойствами, но имеющий также дополнительные качества.

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

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

В ООП различают пассивные и активные объекты. Последние иногда именуют субъектами. Они постоянно готовы к приему сообщений и заняты их обработкой на основе знаний, которыми они обладают. Активные объекты часто называют агентами. Однако понятие «агент» не сводится к активному объекту. Мультиагентные системы являются, как правило, существенно распределенными: пространственно-распределенными и/или функционально-распределенными.

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

МАС может состоять из чисто искусственных агентов (программных модулей), а также включать человека. В первом случае мы имеем машинную, а во втором — человеко-машинную систему.

Архитектура агента вытекает из приведенных выше определений. Агент — это объект, а каждый объект обладает собственными свойствами и правилами поведения.

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

С другой стороны, агент представляет собой особую категорию объектов, которая осуществляет преобразование среды. Эта категория носит название объект-функция. Дифференциальные признаки объект-функций делятся на два класса: входные и выходные (рис. 5).

Преобразование входных атрибутов в выходные осуществляется методом агента, который определяет его поведение.

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

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

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

Метод агента, функционирующего в решающей сети, состоит из трех подфункций: восприятия, решения и трансформирования (рис. 5). Подфункция восприятия обеспечивает отбор информации из среды и присвоение значений входным атрибутам. Подфункция решения определяет значения выходных переменных по значениям входных. Подфункция трансформирования изменяет состояние среды (рис. 6).

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

«САПР и графика» 2'2000