3. Представление

Вид материалаОбзор

Содержание


То: car-jambeturn=(platform-width - opening-width)/2.
Centered on the platform
Подобный материал:
1   ...   55   56   57   58   59   60   61   62   ...   110

15.3. Извлечение, представление и применение знаний о проектировании

В этой главе мы рассмотрим экспертную систему проектирования лифтовых систем VT [Marcus et al., 1988] и использованную в процессе ее разработки систему автоматизированного приобретения знаний SALT [Marcus et al, 1988]. В первом разделе основное внимание будет уделено самой программе VT, а в следующем будет описана методика приобретения знаний о проектировании, использованная в системе SALT.

15.3.1. Реализация обратного прослеживания в системе VT

Программа VT (название программы — аббревиатура от Vertical Transportation, транспортировка по вертикали) была использована фирмой Westinghouse Elevator для разработки лифтовых систем индивидуального исполнения. Исходные данные для программы VT представляют собой набор основных параметров проектируемой системы — скорость, грузоподъемность, размеры лифтовых шахт. На основе этих данных программа формирует список подходящего оборудования и компоновку всех шахт с учетом требований безопасности и производительности системы.

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

ЕСЛИ: доступны значения параметров

DOOR-OPENING, PLATFORM-WIDTH и OPENING-WIDTH

и DOOR-OPENING=CENTER,

^ ТО: CAR-JAMBETURN=(PLATFORM-WIDTH - OPENING-WIDTH)/2.

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

По мере развития проекта система VT отслеживает на каждом шаге, от каких исходных или промежуточных данных зависят сформированные на этом шаге данные. В процессе отслеживания формируется сеть зависимостей (dependency network). Структура сети зависимостей будет детально рассмотрена в главе 19, а пока считайте, что такая сеть представляет собой один из видов ориентированного графа без петель. Узлы графа представляют вычисленные значения важных параметров проектируемой системы, например CAR_JUMB_RETURN (пространство для маневрирования автомобилей при загрузке в лифт), а ребра — применяемые для их определения правила. Узлы и ребра графа формируются по мере активизации тех или иных правил в процессе развития проекта. В результате программа после завершения проектирования получит возможность выяснить, каким образом в процессе рассуждений было определено значение того или иного параметра, и найти, какое из принятых в процессе проектирования решений привело к нарушению ограничений. Найденное решение и послужит отправной точкой для пересмотра проекта.

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

ЕСЛИ: нарушено ограничение MAXIMUM-MACHINE-GROOVE-PRESSURE,

ТО: попробовать понизить значение MACHINE-GROOVE-MODEL (1),

увеличить значение HOST-CABLE_QUANTITY (4).

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

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

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

Проблема пересмотра ранее принятых решений усложняется тем фактом, что коррекция параметров, необходимая для устранения одних ограничений, влияет на другие параметры, которые, в свою очередь, связаны с другими ограничениями. В правиле, приведенном выше, одна из рекомендаций предполагает изменение количества тросов подъемника, что приведет к изменению множества других параметров всей конструкции. Вполне возможно, что после этого придется заменить и модель лифта. База знаний программы VT включает 37 цепочек устранения несоответствия ограничениям, причем три из них имеют дело с антагонистическими ограничениями. Антагонистическими, например, являются ограничения MAXIMUM-MACHINE-GROOVE-PRESSURE (максимальная нагрузка на трос подъемника) и MAXIMUM-TRACTION_RATIO (максимальное отношение сцепления). Понижение нагрузки приведет к увеличению отношения сцепления и наоборот.

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

(1) операции, которые помогают устранить нарушение обоих антагонистических ограничений;

(2) операции, которые помогают устранить нарушение одного из антагонистических ограничений и не усугубляют нарушение другого;

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

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

Программа VT реализована с помощью языка OPS5. База знаний этой программы насчитывает около 3000 правил. В литературе приводятся сведения о производительности системы. Для выполнения задания средней сложности программа активизирует от 2 500 до 11 500 правил, на что затрачивается от 7 до 20 минут машинного времени компьютера VAX 11/780, оснащенного оперативной памятью объемом 20 Мбайт. Интересно отметить, что около 2000 правил системы VT сформировано с помощью системы автоматизированного приобретения знаний SALT, а другие (их около 1000) отвечают за организацию ввода/вывода, управление порядком применения правил и формирование объяснений, помогающих пользователю уяснить, почему программа в процессе проектирования приняла определенные решения.

15.3.2. Приобретение знаний с помощью системы SALT

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

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

(1) Знания, которые касаются развития текущей промежуточной стадии проекта (PROPOSE-A-DESIGN-EXTENTION).

(2) Знания, относящиеся к определению ограничений, накладываемых на текущую промежуточную стадию проекта (IDENTIFY-A-CONSTRAINT).

(3) Знания, касающиеся устранения обнаруженных нарушений ограничений (PROPOSE-A-FIX).

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

В качестве промежуточной формы представления знаний в SALT используется сеть зависимостей. Каждый узел этой сети представляет наименование какого-либо контрольного параметра (например, TYPE-OF-LOADING), параметра, характеризующего конструкцию (например, PLATFORM-WIDTH), или ограничения (например, MAXIMUM-MACHINE-GROOVE-PRESSURE). Связи в сети разделены на три группы:

содействующая — связывает узлы А и В в том случае, если значение параметра узла А используется для вычисления значения параметра узла В',

ограничивающая — связывает узлы А и В в том случае, если значение параметра узла А является ограничением, которое должно учитываться при выборе значения конструктивного параметра, ассоциированного с узлом В;

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

Работая с системой SALT, пользователь может вводить знания в любом порядке, но каждое элементарное знание должно иметь один из трех квалификаторов в соответствии с перечисленными выше ролями:

PROCEDURE — знания о развитии текущей промежуточной стадии проекта;

CONSTRAINT — знания об определении ограничений, накладываемых на текущую промежуточную стадию проекта;

FIX — знания об устранении обнаруженных нарушений ограничений.

Получив значение квалификатора, система SALT организует диалог с пользователем и предлагает ему ввести знания, соответствующие заданной роли.

Для каждого конструктивного параметра, который фигурирует в завершенном проекте, в базе знаний должен присутствовать свой элемент знаний типа PROCEDURE (правило). В таком элементе должны быть отображены все соображения, относящиеся к выбору значения этого параметра. Если правило недоопределено, т.е. не позволяет однозначно определить значение параметра, то в таком правиле должны присутствовать соображения о предпочтительных значениях параметра в пределах допустимого диапазона. Полный формуляр правила вычисления параметра CAR-JAMB-RETURN (этот параметр присутствовал в правиле, цитированном в предыдущем разделе) выглядит так, как показано ниже.

1. Name: CAR-JAMB-RETURN

2. Precondition: DOOR-OPENING=CENTER

3. Procedure: CALCULATION

4. Formula: (PLATFORM-WIDTH - OPENING-WIDTH)/2

5. Justification: CENTER-OPENING DOOR LOOK BEST WHEN

^ CENTERED ON THE PLATFORM

1.Имя: CAR-JAMB-RETURN

2. Предусловия: DOOR-OPENING=CENTER

3. Процедура: Вычисление

4. Формула: (PLATFORM-WIDTH - OPENING-WIDTH)/2

5. Уточнение: Двери, открывающиеся от середины, выглядят лучше,

если на платформе их разместить по центру

В правилах типа CONSTRAINT собирается информация о взаимных связях между значениями параметров, которая не вошла в правила типа PROCEDURE, но необходима для проверки качества созданного проекта. Правила типа FIX предлагают варианты корректирующих действий, которые можно предпринять при нарушении заданных ограничений. Ниже приведен заполненный формуляр для правила этого типа, которое относится к ликвидации нарушения ограничения MAXIMUM-MACHINE-GROOVE-PRESSURE.

Constraint name: MAXIMUM-MACHINE-GROOVE-PRESSURE

Value to Change HOIST_CABLE-QUANTITY

Change Type: INCREASE

Step Type: BY-STEP

Step Size: 1

Preference Rating: 4

Preference Reason: CHANGES MINOR EQUIPMENT SIZING

Имя ограничения: MAXIMUM-MACHINE-GROOVE-PRESSURE Изменить: HOIST_CABLE-QUANTITY

Тип изменения: INCREASE

Режим изменения: BY-STEP

Величина шага: 1

Приоритет: 4

Критерий выбора: Минимальные изменения размеров другого оборудования

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

Информацию о связях в сети зависимостей программа SALT извлекает из тех элементов знаний, которые вводятся пользователем. Так, после ввода приведенного выше правила типа PROCEDURE программа сформирует содействующую связь между узлом, ассоциированным с параметром PLATFORM-WIDTH, и узлом, ассоциированным с параметром CAR-JAMB-RETURN. Точно так же после ввода правил типов CONSTRAINT и FIX будут сформированы ограничивающие и корректирующие связи.

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