Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

диссертация модальная логика

.pdf
Скачиваний:
17
Добавлен:
25.03.2016
Размер:
8.07 Mб
Скачать

-211 -

истинен при любой интерпретации его переменных, нужно написать

соответствующее правило в программе, а в качестве запроса или цели указать имя этого правила.

Согласно приведенным выше соображениям была получена программа на

языке Пролог, текст которой приведен под названием "Программа 1".

 

5.5.2 С х е м а

" З н а н и я п р о ф е с с и о н а л а - с е м а н т и ч е с к а я с е т ь

- и с ч и с л е н и е п р е д и к а т о в п е р в о г о п о р я д к а - П р о л о г "

 

Рассмотренная

в разделе 2.6.2 когнитивно-ориентированная

иерархия

семантических сетей является удобным средством структурирования

"текущего

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

Осуществленная символизация этой структуры устраняет возможность

неоднозначности толкований. Этот подход ориентирован на методику В. Ш. Рубашкина [89], в которой делается упор на "символизацию смыслов". Далее можно воспользоваться способом перехода к записи в терминах языка Пролог, с применением правил перехода от стандартной формы логики к клаузальной.

На этом этапе можно применить предложенный В.Ф. Клоксиным метод автоматизации этого алгоритма [112, 113]. Однако изложенные теоретические положения на практике оказались сложными в реализации.

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

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

- 2 1 2 -

друг с другом, позволяет работать с Пролог-системой в режиме вопросно-

ответного взаимодействия. Результирующая программа приведена под названием "Программа 2".

5.6

Я з ы к

П р о л о г

п р и

ф о р м и р о в а н и и

о б р а з а

о б ъ е к т а

п р о е к т и р о в а н и я

 

 

 

 

5.6.1 О с о б е н н о с т и я з ы к а П р о л о г , п о л е з н ы е п р и р е ш е н и и р а с с м а т р и в а е м о й з а д а ч и

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

Теоретической основой языка Пролог явились идеи логического программирования, предложенные Р. Ковальски и П. Хейсом [39, 114, 115]. Языки логического программирования имеют два основных отличия от классических языков [103]. Это символьное программирование, когда данные являются символами, которые представляют только самих себя и не подлежат интерпретации при выполнении программ. Второе отличие заключается в том, что алгоритмы получения определенных результатов непосредственно не задаются, но описываются объекты, их свойства и отношения между объектами, говорится о новых фактах, правилах получения новых фактов, а также о вопросах, выясняющих наличие или возможность установления новых фактов.

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

В 2 , В п ,

-213 -

программирования, т. к. при ответе на вопрос выполняется определенный

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

сопровождается алгоритмом расчета.

Представляет интерес вопрос связи между выполнением Пролог-

программы и доказательством теорем. Эта связь базируется на основной идее

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

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

где В ь

В 2 ,

Вп - отношения (возможно с аргументами) можно

понимать

двумя способами:

 

 

 

 

 

-

либо

как

логическое

утверждение,

что А истинно, если

истинны

утверждения В,, В2,

Вп ;

 

 

 

-

либо

как

определение

процедуры,

проверяющей правильность А,

утверждающее, что для выполнения А необходимо выполнить все процедуры

В], В 2 , В п .

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

- процедуры (условия) В ь Вг, Вп должны выполняться (проверяться) в определенном порядке (подобное требование было отмечено в разделе 5.2.З.);

-2 1 4 -

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

Уместен вопрос относительно того, что происходит в Прологе - доказательство теорем или выполнение программы, ответ на который будет несколько неопределенным. Это связано с тем, что текст Пролога выполняется как программа, но в тоже время Пролог имеет встроенный механизм доказательства теорем для поддержки системы рещения задач. Попутно следует ответить на вопросы, сформулированные в [116]:

-является ли Пролог системой для рещения задач или просто языком для записи программ, предназначенных для решения таких задач;

-является ли Пролог языком сверхвысокого уровня или нет.

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

Па Прологе можно решать задачи, представляющие интерес в плане рещения задачи формирования образа объекта проектирования:

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

-215 -

может быть "объект проектирования", а в качестве условий - множество требований, сформулированных профессионалами-конструкторами. Поиск подобного объекта производится с помощью механизма бектрекинга (backtracking - сопоставление с образом - pattern matching), встроенного в Пролог. Этот процесс иногда называют недетерминированным поиском, который реализуется механизмом выполнения программ на Прологе. Важно, что этот механизм позволяет держать под контролем возможность комбинационного взрыва благодаря средствам управления этим поиском.

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

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

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

подобного типа реализуются практически на всех стадиях проектирования);

- наличие синтаксиса, позволяющего описывать структуры данных в

удобной форме выражения, который обладает свойством операторного

предшествования и позволяет вводить новые операции с нужными приоритетами.

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

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

1. Различные области автоматизированного проектирования.

-2 1 6 -

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

3.Логический вывод как одно из наиболее важных применений недетерминированного поиска.

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

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

6.Моделирование очень высокого уровня, когда свойства модели можно описать средствами Пролога.

7.Быстрое прототипирование как нужный инструмент проектирования и создания программы.

5.6.2

П р а к т и ч е с к о е

и с п о л ь з о в а н и е

я з ы к а

П р о л о г

п р и

ф о р м и р о в а н и и

о б р а з а

д в и г а т е л я

в н у т р е н н е г о

с г о р а н и я

( д и з е л я )

 

 

 

 

 

 

 

 

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

-в виде признаковой модели;

-в виде модели денотата.

Следует более подробно рассмотреть каждую из предложенных схем.

- 2 1 7 -

Большей выразительностью, очевидно, обладает первая из рассмотренных схем (раздел 5.5.1): "Знания профессионала - исчисление предикатов первого порядка - клаузальная форма логики - Пролог", функционирование которой завершается благодаря разработанной программе (Программа 1). От пользователя не требуется глубокого знания логики и языка программирования, чтобы проанализировать полученные выводы. Это становится возможным благодаря форме представления исходной информации. Для более подробного рассмотрения возможностей языка Пролог можно обратиться к сравнению выводов, полученных при использовании программного обеспечения "Сорит" с результатами работы разработанных программ.

Первый вывод, приведенный в пункте 4.5.1, говорит о том, что ограничения стоимости не позволят сделать дизель, удовлетворяюп1;ий требованиям потребителя, обеспечивающий наивысшую производительность трактора, дизель с повышенным запасом крутящего момента и многоцелевой. Правило вида:

'низк_нач_стоим'(Х):- 'модификации_без_изменения_базы'(Х), not многотопливн(Х),

not многоцелевой(Х).

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

- 2 1 8 -

очевидно, что невозможно, чтобы дизель обладал минимальной стоимостью и одновременно удовлетворял требованиям потребителя и являлся

многоцелевым.

*

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

?- 'низк_нач_стоим'(Х),'удовлетвор_треб'(Х).

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

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

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

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

- 2 1 9 -

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

Вторая программа представляет собой базу данных (Программа 2). Стоит напомнить, что здесь речь идет о третьей из предложенных схем. Обращаясь к

программе на языке Пролог, мы можем решить вопрос о том, какие сущности

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

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

случае необходимости программы могут быть доведены до уровня экспертной

системы. Целью настоящего исследования не являлось создание последней. Экспертная система позволяет объяснять свое поведение и свои решения

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

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

внутрь

. системы и до какой-то степени представить себе протекающий

процесс

рассуждений, можно воспользоваться средствами трассировки.

 

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

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

-2 2 0 -

2.От пользователя не требуется глубокого знания логики, чтобы пользоваться системой.

3.Имеется возможность достаточно близко к естественному языку описывать объект проектирования.

4.Практически мгновенно можно получить вывод о связи объектов друг с другом.

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

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

5.6.3 В с п о м о г а т е л ь н ы е п р о г р а м м ы

Программа 1

'алтайдизель' (а). 'удовл етвор_треб' (а).

'алтайдизель' (Ь).

'доработка_под_потребителя'(Ь).

'многоцелевой' (д).

'мин_металлоемкость' (ч)•

'алтайдизель' (с).

'удовлетвор_треб' (с).

'многотопливн' (Ь). 'регулировка_на_2_уровня' (й). 'регулировка_на_2_уровня'(с1).

'высокийJpecypc' (1)•

'высокий_ресурс' (е).

'МОдификации_без_изменения_б азы' (я) •