Download - Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

Transcript
Page 1: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

1

Конспект лекций. Лекция 1 Тема лекции: «Введение в интеллектуальные информационные

системы. Основные понятия».

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

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

«оживающая» механическая статуя бога Амона (древний Египет); бог Гефест ковал человекоподобные существа-автоматы (Гомер,

«Иллиада»); Буратино папы Карло.

Рождение искусственного интеллекта как научного направления про-

изошло только после создания ЭВМ в 40-х годах ХХ века. В то же время Норберт Винер создал свои основополагающие работы по новой науке – ки-бернетике.

Термин искусственный интеллект (artificial intelligence) предложен в 1956 г. на семинаре с аналогичным названием в Стэндфордском университе-те (США). Семинар был посвящен разработке логических, а не вычислитель-ных задач.

Вскоре после признания искусственного интеллекта отдельной обла-стью науки произошло разделение его на два направления: нейрокибернетика и кибернетика «черного ящика» (рис.1).

Рис. 1. Направления развития систем искусственного интеллекта Таким образом, нейрокибернетика ориентирована на программно-

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

Искусственный интеллект

Нейрокибернетика Кибернетика «черного ящика»

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

Кибернетика «черного ящи-ка» полагает: не имеет значения как устроено «мыслящее» устрой-ство. Главное, чтобы на заданные входные воздействия оно реагиро-вало так же, как человеческий мозг.

Page 2: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

2

сетей). Нейросетевые технологии требовали значительных вычислительных затрат. В 80-х в Японии был создан первый нейрокомпьютер. Основная об-ласть применения нейрокомпьютеров - распознавание образов.

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

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

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

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

Развитие систем искусственного интеллекта в России

Принято считать, что в России искусственный интеллект зародился в

1954 году. В этом году в МГУ начал свою работу семинар «Автоматы и мышление» под руководством академика Ляпунова А.А., одного из основа-телей российской кибернетики.

Притом, что отношение к новым наукам с СССР всегда было насторо-женным, наука с таким «вызывающим» названием было встречена в штыки. Только в 1974 г. при Комитете по системному анализу при президиуме АН СССР был создан научный совет по проблеме «Искусственный интеллект».

На данный момент отставание в области разработки промышленных интеллектуальных систем составляет порядка 3-5 лет.

Направления развития систем искусственного интеллекта

1. Представление знаний и разработка систем, основанных на знаниях. 2. Игры и творчество. 3. Разработка естественно-языковых интерфейсов и машинный перевод. 4. Распознавание образов. 5. Новые архитектуры компьютеров. 6. Интеллектуальные роботы. 7. Специальное программное обеспечение.

Page 3: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

3

8. Обучение и самообучение.

Основные определения Искусственный интеллект - это одно из направлений информатики,

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

Искусственный интеллект (ИИ) - это научная дисциплина, возникшая в 50-х годах на стыке кибернетики, лингвистики, психологии и программиро-вания.

Разработка интеллектуальных программ существенно отличается от обычного программирования и ведется путем построения системы искусст-венного интеллекта (СИИ). Если обычная программа может быть представ-лена в парадигме:

Программа = Алгоритм + Данные, то для СИИ характерна другая парадигма: СИИ = Знания + Стратегия обработки знаний.

Данные и знания

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

При обработке на ЭВМ данные трансформируются, условно проходя сле-дующие этапы:

1. D1 - данные как результат измерений и наблюдений; 2. D2 - данные на материальных носителях информации (таблицы, прото-

колы, справочники); 3. D3 - модели (структуры) данных в виде диаграмм, графиков, функций; 4. D4 - данные в компьютере на языке описания данных; 5. D5 - базы данных на машинных носителях информации.

Знания основаны на данных, полученных эмпирическим путем. Они пред-

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

Знания - это закономерности предметной области (принципы, связи,

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

При обработке на ЭВМ знания трансформируются аналогично данным. 1. Z1 - знания в памяти человека как результат мышления;

Page 4: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

4

2. Z2 - материальные носители знаний (учебники, методические посо-бия);

3. Z3 - поле знаний - условное описание основных объектов предмет-ной области, их атрибутов и закономерностей, их связывающих;

4. Z4 - знания, описанные на языках представления знаний (продукци-онные языки, семантические сети, фреймы - см. далее);

5. Z5 - база знаний на машинных носителях информации. Часто используется такое определение знаний. Знания - это хорошо структурированные данные, или данные о дан-

ных, или метаданные.

Свойства знаний

1. Внутренняя интерпретируемость. 2. Структурированность. 3. Связанность. 4. Активность.

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

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

Части систем, основанных на знаниях: 1. База знаний. 2. Механизм вывода. 3. Интерфейс с пользователем.

Каждая из этих частей может быть устроена по-разному в различных

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

различных объектов);

Page 5: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

5

процедурные знания (методы, алгоритмы и программы решения раз-личных задач);

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

следующие категории: достоверные или объективные знания; эвристические знания.

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

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

Знания также можно разделить на декларативные (факты) и процедур-ные знания (знания для принятия решений).

Декларативные знания - это факты. Например, Иванов - студент; земля - круглая. Декларативные знания отвечают на вопрос «знать что?».

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

Метазнания - знания о знаниях. Понятие «метазнания» указывает на знания, касающиеся способов использования знаний и знания, касающиеся свойств знаний. Это понятие необходимо для управления базой знаний и ло-гическим выводом; для обучения и т. п.

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

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

Page 6: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

6

Конспект лекций. Лекция 2 Тема лекции: «Модели представления знаний. Продукционная мо-

дель представления знаний. Семантические сети»

Представление знаний Одной из наиболее важных проблем является проблема представления

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

Представление знаний - это соглашение о том, как описывать реальный мир.

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

Системой представления знаний (СПЗ) называют средства, позво-ляющие:

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

организовывать хранение знаний в системе (накопление, анализ, обобщение и организация структурированности знаний);

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

Центральное место в СПЗ занимает язык представления знаний (ЯПЗ). В свою очередь, выразительные возможности ЯПЗ определяются лежащей в ос-нове ЯПЗ моделью представления знаний (иногда эти понятия отождествля-ют).

Модели представления знаний

Модель представления знаний является формализмом, призванным

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

Page 7: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

7

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

правил); модель семантической сети; фреймовая модель; логическая модель; модель, основанная на нечетких знаниях.

Системы искусственного интеллекта могут быть написаны на любом языке программирования. Однако для них разработаны специальные языки: Пролог, Лисп.

Продукционная модель представления знаний

Продукционная модель или модель, основанная на правилах, позволяет

представить знания в виде предложений типа «Если (условие), то (действие)».

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

Записываются эти правила обычно в виде ЕСЛИ А1,А2..Аn ТО В. Пример. Если горючая жидкость разлита, то вызовите пожарных. Условия А1, А2...Аn обычно называют фактами. Факты могут быть ис-

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

Факты - это истинные высказывания (в естественном языке - это пове-ствовательные предложения) об объектах или явлениях предметной области.

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

Структура продукционной системы

Продукционная система состоит из трех основных компонентов:

1) Набор правил, используемых как база знаний. Его называют базой пра-вил.

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

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

Page 8: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

8

Типичная структура системы, основанной на правилах, приведена на рис.2.

Рис.2 Структура продукционной системы Когда часть правила ЕСЛИ удовлетворяет фактам, то действие, указан-

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

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

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

Компонент вывода просматривает имеющиеся правила и факты из ра-бочей памяти и добавляет в последнюю новые факты при срабатывании ка-кого-либо правила.

В продукционных системах используются два основных способа реали-зации механизма вывода:

1) Прямой вывод, или вывод от данных, 2) Обратный вывод, или вывод от цели.

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

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

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

Достоинством применения правил продукций является их модуль-ность. Это позволяет легко добавлять и удалять знания в базе знаний. Можно

Механизм логического вывода

Рабочая память База правил

Модификация, управление поиск

ссылки

Page 9: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

9

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

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

Семантические сети

Термин семантическая означает «смысловая», а сама семантика - это

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

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

В качестве понятий обычно выступают абстрактные или конкретные объекты, а отношения - это связи типа: «это» («АКО — A-Kind-Of», «IS-A»), «имеет частью» («has part»), «принадлежит», «любит». Характерной особен-ностью семантических сетей является обязательное наличие трех типов от-ношений: класс - элемент класса (цветок - роза); свойство - значение (цвет - желтый); пример элемента класса (роза - чайная).

Классификация семантических сетей

Можно предложить несколько классификаций семантических сетей,

связанных с типами отношений между понятиями. По количеству типов отношений:

Однородные (с единственным типом отношений). Неоднородные (с различными типами отношений).

По типам отношений:

Бинарные (в которых отношения связывают два объекта). N-арные (в которых есть специальные отношения, связывающие более

двух понятий).

Отношения в семантических сетях

Наиболее часто в семантических сетях используются следующие от-ношения:

Page 10: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

10

связи типа «часть - целое» («класс - подкласс», «элемент - множест-во», и т. п.);

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

количественные связи (больше, меньше, равно и.т.д.); пространственные связи (далеко от, близко от, за, под, над и.т.д.); временные связи (раньше, позже, в течение и.т.д.); атрибутивные связи (иметь свойство, иметь значение); логические связи (И, ИЛИ, НЕ); лингвистические связи.

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

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

На рис. 3 изображена семантическая сеть. В качестве вершин тут высту-пают понятия «человек», «Петров», «Волга», «автомобиль», «вид транспор-та» и «двигатель».

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

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

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

Рис. 3. Пример семантической сети

Page 11: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

11

Конспект лекций. Лекция 3 Тема лекции: «Модели представления знаний. Фреймовая и логи-

ческая модель представления знаний».

Фреймовая модель представления знаний

Понятие фрейма

Фрейм был предложен Марвелом Минским в 70-е годы. Фреймом называется структура для описания стереотипной ситуации,

состоящая из характеристик этой ситуации и их значений. Характеристики называют слотами.

Пример фрейма приведен на рисунке 4.

Должность Руководитель отдела

Специальность Менеджер Ф.И.О. Дата рождения Домашний ад-

рес

Оклад Рис. 4. Пустой фрейм

Различают фреймы - образцы, или прототипы, хранящиеся в базе зна-

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

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

Структура фрейма

Структура фрейма может быть представлена следующим образом: Имя фрейма, (имя первого слота: значение 1-го слота), …………………………………………… (имя n-го слота: значение n-го слота). Ту же запись можно представить в виде таблицы (табл. 1).

Page 12: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

12

Таблица 1 Структура фрейма

Имя Слота Значение слота

Указатель наследования

Демон

Слот 1 …………….. …………….. Слот n

Имя фрейма - идентификатор, присваиваемый фрейму. Фрейм должен иметь имя единственное (уникальное) в данной фрей-

мовой системе. Имя слота - идентификатор, присваиваемый слоту. Слот должен иметь

уникальное имя во фрейме. Имя слота не несет смысловой нагрузки кроме специфических: IS-A; DDESENDANTS (указатель дочернего фрейма) и др, а также системных слотов, используемых при управлении выводом.

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

Типичные указатели наследования: U (уникальный), S (такой же), R (установление границ).

Демон - процедура, автоматически запускаемая при появлении запроса или обновлении информации в структуре.

1) IF-ADDED (если добавлено). Он запускается, когда новая информация поступает в слот.

2) IF-REMOVED (если удалено). Запускается при стирании значения сло-та.

3) IF-NEEDED (если нужно). Запускается, если в момент обращения к слоту его значение не было установлено.

Фреймовая система Совокупность фреймов, моделирующая какую либо предметную об-

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

На верхнем уровне иерархии находится фрейм, содержащий наиболее общую информацию, истинную для всех остальных фреймов. Пример фрей-мовой системы приведен на рис. 5.

Page 13: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

13

человек IS-A МлекопитающееУмеет мыслить ребенок IS-A ЧеловекВозраст 0 – 16 Любит Сладкое ученик IS-A РебенокВозраст 6 – 17 Учится В шко-

ле

Рис. 5. Пример фреймовой системы В одной системе различные фреймы могут иметь общие слоты. Благо-

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

Свойства фреймов

Рассмотрим основные свойства фреймов:

1) Иерархическая структура.

Фрейм обычно представляется в виде классификационной иерархиче-ской структуры, приведенной на рис. 6.

Рис.6 Иерархическая структура фрейма Особенность такой структуры заключается в том, что информация о

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

Page 14: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

14

2) Межфреймовые сети.

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

Рис. 7. Пример межфреймовой сети 3) Значение по умолчанию.

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

4) Отношения «абстрактное – конкретное» и «целое - часть».

Отношения «абстрактное – конкретное» характерны тем, что на верх-них уровнях иерархии расположены абстрактные объекты, на нижних кон-кретные. Это отношения называются отношениями типа “IS-A” или “KIND OF”. Они имеют частое практическое применение. Отношение «целое - часть» касается структурированных объектов и показывает, что объект ниж-него уровня является частью объекта верхнего уровня. Это отношение при-меняется в САПР.

Во фреймовых системах используется три способа управления выво-дом: два с помощью присоединенных процедур – демона и служебной про-цедуры (или метода) и один – с помощью механизма наследования.

Основными преимуществами фреймов, как модели представления знаний являются:

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

ристическими методами. Недостатками фреймовой системы являются:

1. Высокая сложность систем в целом. 2. Трудно внести изменение в иерархию. 3. Затруднена обработка исключений.

Page 15: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

15

Логическая модель представления знаний

В основе логических систем представления знаний лежит понятие

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

Основные идеи формализации

1. Вводится множество базовых элементов (алфавит) теории. 2. Определяются правила построения правильных объектов (предложений)

из базовых элементов. 3. Часть объектов объявляется изначально заданными и правильными по

определению – аксиомами. 4. Задаются правила построения новых объектов из других правильных

объектов системы (правила вывода).

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

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

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

В процессе математизации рассуждений различают два вида слов: термы - аналоги имен существительных формулы - аналоги повествовательных предложений

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

Однако не все предложения, содержащие переменные, являются выска-зывательными формами. Различают связанные и свободные переменные. Так, сложные предложения с переменными, содержащие логические связки

Page 16: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

16

СУЩЕСТВУЕТ или ВСЕ, обозначают высказывания, а переменные, к кото-рым они относятся, являются связанными.

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

Если же предложение описывает отношение между несколькими (n) субъектами, то с ним можно связать n-местную логическую функцию Р(х1 ,х2...хn) - n-местный предикат.

Логические связки «И», «ИЛИ», «НЕ» и т. д., с помощью которых строятся сложные предложения (формулы), соотносятся с операциями логи-ки следующим образом:

НЕВЕРНО ЧТО - ¬ (знак отрицания); И - ˆ (знак конъюнкции); ИЛИ - ˇ (знак дизъюнкции); ЕСЛИ... ТО → (знак импликации); ТОГДА, КОГДА— <=>(знак эквивалентности). Логические связки «ДЛЯ ВСЯКОГО», «СУЩЕСТВУЕТ» относятся к

переменным в предложении и обозначают: ДЛЯ ВСЯКОГО - (знак квантора общности); СУЩЕСТВУЕТ - (знак квантора существования). В различных логических системах используются разнообразные прави-

ла вывода. Приведем два наиболее распространенных из них. Первое - «правило подстановки» имеет следующую формулировку. В

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

Второе - «правило заключения» (латинское название Modus Ponens - положительный модус) состоит в следующем: Если α и α→β являются ис-тинными высказываниями посылками, тогда и заключение β также истина.

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

1. Если самолет проверен и заправлен, то он готов к вылету. 2. Если самолет готов к вылету и дано разрешение на взлет, то он либо

взлетел, либо находится на взлётной полосе. 3. Если самолет взлетел, то он выполняет рейс. 4. Самолет ЯК-42 проверен и заправлен 5. Самолет ТУ-134 проверен. 6. Самолет ИЛ-62 заправлен.

Page 17: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

17

7. Самолету ЯК-42 дано разрешение на вылет. 8. Самолет ЯК-42 не находится на взлетной полосе.

Требуется найти, какой из самолетов в момент времени Т выполняет рейс. Проведем анализ данных высказываний Высказывания 1, 2,3 являются сложными и построены с использованием логических связок → (имплика-ция), ˆ (И).

Во всех элементарных высказываниях, из которых построены предло-жения 1, 2, 3, субъектом является понятие «самолет»; предикатами выступа-ют сказуемые, описывающие свойства всех объектов, принадлежащих классу «самолет». Высказывания 4-8 являются фактами, истинными на момент вре-мени Т. Они являются элементарными высказываниями, описывающими свойства конкретных объектов предметной области.

Для формального описания задачи введем следующие одноместные предикаты:

ПРОВЕРЕН(Х) - самолет X проверен; ЗАПРАВЛЕН(Х) - самолет X заправлен; ГОТОВ(Х) - самолет X готов к вылету, ДАНО_РАЗР(Х) - самолету X дано разрешение на вылет; ВЗЛЕТЕЛ(Х) - самолет X взлетел, НАХ_ВЗП(Х) - самолет X находится на взлетной полосе; НЕ_НАХ_ВЗП(Х) - самолет X не находится на взлетной полосе, ВЫП_РЕЙС(Х) - самолет X выполняет рейс. Тогда исходное описание на языке логики предикатов будет иметь вид:

1. Х(ПРОВЕРЕН(Х) ˆ ЗАПРАВЛЕН(Х) →ГОТОВ(Х)). 2. Х(ГОТОВ(Х) ^ ДАНО_РАЗР(Х) ^ НЕ_НАХ_ВЗП(Х) →

ВЗЛЕТЕЛ(Х)). 3. Х(ГОТОВ(Х) ^ ДАНО_РАЗР(Х) ^ НЕ_ВЗЛЕТЕЛ(Х) →

НАХ_ВЗП(Х)). 4. Х(ВЗЛЕТЕЛ(Х) → ВЫП_РЕЙС(Х)). 5. ПРОВЕРЕН(ЯК-42). 6. ЗАПРАВЛЕН(ЯК-42). 7. ПРОВЕРЕН(ТУ-134). 8. ЗАПРАВЛЕН(ИЛ-62). 9. ДАНО_РАЗР(ЯК-42). 10. НЕ_НАХ_ВЗП(ЯК-42).

Предложения 1-4, хотя и содержат переменную, являются высказыва-

ниями - переменная X связана квантором общности . В дальнейшем кван-тор писать не будем, так как он присутствует во всех предложениях.

Чтобы найти, какой из самолетов в момент времени Т выполняет рейс, подготовим запрос вида: М=>ВЫП_PEЙC(Z),

где М — множество предложений 1-10.

Page 18: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

18

Вывод запроса можно представить следующей последовательностью шагов:

Шаг 1 Применив к предложению 1 подстановку Х=ЯК-42, получим заключе-

ние ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42) → ГОТОВ(ЯК-42). Шаг 2 Первая посылка: объединив предложения 5 и 6, получим ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42). Вторая посылка: заключение шага 1: ПРОВЕРЕН(ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42) → ГОТОВ(ЯК-42). Применив правило Modus Ponens

,

для =(ПРОВЕРЕН (ЯК-42) ^ ЗАПРАВЛЕН(ЯК-42)) и = ГОТОВ(ЯК-

42), получим следующее заключение: ГОТОВ(ЯК-42). Шаг 3 Первая посылка: объединив заключение шага 2, предложения 9 и 10,

получим: ГОТОВ(ЯК-42) ^ ДАНО_РАЗР(ЯК-42) ^ НЕ_НАХ_ВЗП(ЯК-42). Вторая посылка: применив к правилу 2 подстановку Х=ЯК-42, получим

ГОТОВ(ЯК-42) ^ ДАНО_РАЗР(ЯК-42) ^ НЕ_НАХ_ВЗП(ЯК-42) →ВЗЛЕТЕЛ(ЯК-42)

Применив правило Modus Ponens, получим заключение ВЗЛЕТЕЛ(ЯК-42).

Шаг 4. Первая посылка: заключение шага 3 - ВЗЛЕТЕЛ(ЯК-42). Вторая посылка: применив к правилу 4 подстановку Х=ЯК-42, получим ВЗЛЕТЕЛ(ЯК-42) → ВЫП_РЕЙС(ЯК-42). Применив правило Modus Ponens, получим заключение

ВЫП_РЕЙС(ЯК-42). Таким образом, в момент времени Т рейс выполняет са-молет ЯК-42. Остальные подстановки, например Х=ИЛ-62, приводят к тупи-ковым ситуациям. Логический вывод выполнялся нами в прямом направле-нии, при этом в процессе вывода трижды использовалось правило заключе-ния.

Page 19: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

19

Конспект лекций. Лекция 4 Тема лекции: «Модель, основанная на нечетких знаниях. Основы

теории нечетких множеств. Нечеткое управление».

Модель, основанная на нечетких знаниях

Основы теории нечетких множеств

Нечеткие знания

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

Основные понятия нечетких множеств

Для представления размытых (нечетких) знаний в начале 70-х амери-

канский математик Лофти Заде предложил формальный аппарат нечеткой ал-гебры и нечеткой логики (L.A.Zadeh, Fuzzy Sets, Information and Control, 8(1965) 338-353).

Л. Заде ввел одно из главных понятий в нечеткой логике - понятие лин-гвистической переменной.

Лингвистическая переменная - переменная, значение которой опре-деляется набором словесных характеристик некоторого свойства. Например, лингвистическая переменная "скорость" определяется через набор очень маленькая; низкая; средняя; высокая; очень высокая.

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

Пусть X - непустое множество. Нечеткое множество A в X характери-зуется его функцией принадлежности (1).

А: XХ[0;1] (1)

и А интерпретируется как степень принадлежности элемента x не-четкому множеству A для каждого xX. Таким образом, нечеткое множество B –совокупность пар вида Bxгдеxx )),(,( .

Page 20: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

20

Функция принадлежности интерпретируется как степень принадлежно-сти элемента X нечеткому множеству A для любого x X.

Если X=x1,…xn есть конечное множество и A - нечеткое множество в X, тогда мы используем запись A= 1x1+2x2 +…+nxn.

Где член ixi, i=1,...n означает, что i есть степень принадлежности xi в A и знак суммы представляет объединение.

Пример 1. Предположим, что мы хотим определить множество нату-ральных чисел «близких к единице». Это может быть выражено следующим образом: A=0,0-2+0,3/-1+0,6/0+1/1+0,6/2+0,3/3+0,0/4 (рис. 8).

Рис. 8. Дискретная функция принадлежности для «х близко к 1» Пример 2. Функция принадлежности нечеткого множества действительных чисел

«близких к 1» может быть определена как A(t)=exp(-(t-1)2), где - положи-тельное действительное число (рис. 9).

Рис. 9. Непрерывная функция принадлежности для «х близко к 1». Нечеткое множество A называется триангулярным нечетким числом с

вершиной (или центром) a, шириной слева > 0 и шириной справа > 0, если его функция принадлежности имеет следующий вид:

1

-2 -1 0 1 2 3 4

1

-2 -1 1 3 4

Page 21: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

21

atat

taat

atata

tA

,,0

.,)(1

,)(1

)(

Триангулярное нечеткое число с центром a можно понимать как нечет-кую величину «x приблизительно равен a» (рис. 10).

Нечеткое множество A называется трапецеидальным нечетким числом с интервалом допуска [a,b], левой шириной и правой шириной , если его функция принадлежности имеет вид:

btat

btbbt

bta

atata

tA

,,0

,)(1

,1

,)(1

)(

. Трапецеидальное нечеткое число можно понимать как нечеткую вели-

чину «x приблизительно находится в интервале [a,b] » (рис. 11).

Пусть A и B –нечеткие подмножества классического множества X. Мы

говорим, что A есть подмножество B, если A(t) ≤ B(t), t X (Рис. 12).

1

a-α a a+

Рис. 10. Триангулярное нечеткое число

а- а b b+

1

Рис. 11. Трапецеидальное нечеткое число

Page 22: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

22

Рис. 12. A есть подмножество B Пусть A – нечеткое число. Если sup(A)=x0, то A называется нечеткой

точкой, и мы используем обозначение A =x0.

Операции над нечеткими множествами Пусть A и B – нечеткие подмножества непустого (четкого) множества

X. Пересечение A и B определяется следующим образом: (A)(t)=min A(t), (t) = A(t)(t), t X. Пример 4. Пусть A и B - нечеткие подмножества X=-2,-1,0,1,2,3,4. A=0.6/-2+0.3/-1+0.6/0+1.0/1+0.6/2+0.3/3+0.4/4. B=0.1/-2+0.3/-

1+0.9/0+1.0/1+1.0/2+0.3/3+0.2/4. Тогда A имеет следующий вид: A=0.1/-2+0.3/-

1+0.6/0+1.0/1+0.6/2+0.3/3+0.2/4. Объединение A и B определяется как (A)(t)=max A(t), (t) = A(t) (t) t X. Пример 5. Пусть A и B –нечеткие подмножества X=-2,-1,0,1,2,3,4. A=0.6/-2+0.3/-1+0.6/0+1.0/1+0.6/2+0.3/3+0.4/4. B=0.1/-2+0.3/-

1+0.9/0+1.0/1+1.0/2+0.3/3+0.2/4. Тогда A имеет следующий вид: A=0.6/-2+0.3/-

1+0.9/0+1.0/1+1.0/2+0.3/3+0.4/4. Дополнение нечеткого множества A определяется как (A)(t)=1- A(t).

Нечеткие импликации

Операторы импликаций

Импликацией Гёделя:

)()(),(

)()(,1)()(

vBuAvB

vBuAvBuA .

Импликация Клини-Динса: A(u)→B(v)=max1 - A(u), B(v). Импликация Ларсена: )()()()( vBuAvBuA . Импликация Лукасевича: ))()(1,1min()()( vBuAvBuA . Импликация Мамдани: ))(),(min()()( vBuAvBuA .

A B

Page 23: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

23

Импликация Гайнеса

)()(,)(

)(

)()(,1

)()(vBuA

uA

vB

vBuA

vBuA .

Модификаторы

Пусть A – нечеткое множество в X. Тогда мы можем определить нечет-

кие множества «очень A» и «более или менее A» следующим образом 2)())(( хАхАочень , )())(( хАхАоченьне .

Использование нечетких множеств дает основу для метода манипуля-ции неопределенными и неточными понятиями.

В частности, мы можем применить нечеткие множества для представ-ления лингвистических переменных.

На рис.13 показано изменение нечеткого множества «высокий человек» с помощью модификаторов: «очень высокий человек», «не очень высокий человек».

Рис. 13. Применение модификаторов

Лингвистические переменные могут рассматриваться или как перемен-

ные, значения которых являются нечеткими числами или как переменные, значения которых определяется в лингвистических термах.

Таким образом, лингвистические переменные характеризуются пятер-кой (x, T(x),U,G,M) в которой

x- имя переменной; T(x) - множество термов x, те есть множество имен лингвистических

переменных величин x, каждое значение которой есть нечеткое число, опре-деленное на U;

G- синтаксическое правило для выработки имен величин x; M- семантическое правило для связывания каждой величины с её

смыслом.

1

160 180

1

Очень высокий человек

160 180

Не очень высокий человек

Page 24: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

24

Теория приближенных рассуждений Теория приближенных рассуждений была создана Лофти Заде в 1979

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

Пусть x и y – лингвистические переменные, например «x- высокий» и «y - маленький». Основная задача приближенного рассуждения - найти функцию принадлежности следствия С по базе правил (N1,…Nn) и факту A:

Сестьyследствие

Аестьxфакт

CестьyтоАестьxеслиN

также

CестьyтоАестьxеслиN

также

CестьyтоАестьxеслиN

nnn

_________________________________________

,

................................................................................

,

,

222

111

.

В нечеткой логике и приближенном рассуждении наиболее важное правило вывода нечеткой импликации - это Обобщенный Модус Поненс (ОМП).

Классическое правило вывода Modus Ponens гласит: Посылка если p, то q Факт p Следствие q. Это правило вывода может быть интерпретировано так: если (p q)

истинно и p-истинно, то q- истинно. Вывод нечеткой импликации основан на композиционном правиле вы-

вода для приближенного рассуждения, предложенного Заде.

Композиционное правило вывода Посылка если x есть A, то y есть B Факт x есть A следствие y есть B, где B определяется как композиция факта и оператора нечеткой им-

пликации: Uu

VvVuBAuAvBестьтоBAAB

),,)((),(minsup)(),(

Page 25: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

25

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

вестного факта:

Сестьzследствие

yестьyиxестьxфакт

CестьzтоBестьyиАестьxеслиN

также

CестьzтоBестьyиАестьxеслиN

также

CестьzтоBестьyиАестьxеслиN

nnnn

00

2222

1111

_________________________________________

,

................................................................................

,

,

,

Здесь i-ое нечеткое правило из этой базы правил:

iiii CестьzтоBестьyиАестьxеслиN , реализуется с помо-щью нечеткой импликации:

niдляzCyBxAzyxCBAzyxR ,1),()()()),,)(((),,( . Найдем заключение С по факту x0 и y0 из базы правил R=(N1,…Nn). Для

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

Во-первых, составим композицию 00 yx с каждым Ri, получая проме-

жуточный результат niRyxC ii ,1,00 . Сi называется выходом i-го прави-

ла zzCyBxAzC iii ),()(()( 00 .

Затем скомбинируем Сi покомпонентно в С посредством некоторого

оператора агрегирования: n

n

ii RyxRyxCC 00100

1

...

, то есть

)()()(...)()()()( 0010101 zCyBxAzCyBxAzC nnn , где вход системы (x0,y0); фазифицированный вход ( 00 , yx ); сила срабатывания i-го правила )(( 00 yBxAi ; выход отдельного i-го правила )()(()( 00 zCyBxAzC iii ; выход всей системы ni CCC ... .

Таким образом, выход всей системы полагается равным объединению выходов отдельных правил.

Page 26: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

26

Нечеткое управление Контроллеры нечеткой логики - наиболее важное приложение теории

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

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

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

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

Нечеткие логические системы управления обычно состоят из четырех основных частей:

Интерфейс фаззификации (введение нечеткости на четких входных данных), база нечетких правил,

машина нечеткого вывода, интерфейс дефаззификации (исключение нечеткости для обеспечения

четкого выхода). Схема нечеткого логического контроллера показана на рис. 14. Фаззификация – введение нечеткости на четких входных данных.

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

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

Page 27: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

27

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

Методы дефаззификации

Дефаззификация методом «Центр тяжести»

Дефаззифицированное значение, 0z , не-

четкого множества С определяется как его не-четкий центроид (рис.15):

dzzC

dzzCzz

w

w

)(

)(0

.

0z

Рис. 15 Дефаззификация методом центра тяжести

фаззификатор

машина нечеткого вывода

база нечетких правил

дефаззификатор

Четкий x в X

Четкий y в Y

нечеткое множество в X

нечеткое множество в Y

Рис. 14. Нечеткий логический контроллер

Page 28: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

28

Дефаззификация методом «Первый максимум»

Дефаззифицированное значение не-четкого множества С – это наименьший максимизирующий элемент (рис. 16), то есть

wwCzCzz )(max)(min0 .

Дефаззифицированное значение не-четкого множества определяется как

dz

zdzz

G

G

0

, где )(max| wCzGw

(рис

17).

Дефаззификация методом «Критерий максимума»

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

С, то есть )(max)(0 wCzCZzzw

.

Дефаззификация по высоте

Элементы множества Z, которые имеют степень принадлежности ниже,

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

0z

Рис. 16 Дефаззификация методом первого максимума

0z

Рис. 17 Дефаззификация методом «Средний максимум»

Дефаззификация методом «Средний максимум»

Page 29: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

29

Конспект лекций. Лекция 5 Тема лекции: «Основы экспертных систем. Проектиро-

вание экспертных систем».

Введение в экспертные системы

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

ЭС достаточно молоды – первые системы MYCIN (система решает за-дачи постановки диагноза и определения методов лечения инфекционных за-болеваний крови, 1976, Shortliffe) и DENDRAL (задача системы состоит в том, чтобы на основе химической формулы и масс спектрограммы вывести возможные структуры молекулы, 1978, Buchanan, Feigenbaum) появились в США в середине 70-х годов. В настоящее время в мире насчитывается не-сколько тысяч промышленных ЭС.

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

Особенности экспертных систем

1) Перерабатывают большое количество знаний. 2) Представляют знания в простой унифицированной форме. 3) Обладают независимым механизмом логических выводов. 4) Могут объяснить результаты, полученные в процессе обработки зна-

ний. Наибольшие трудности в разработке ЭС вызывает не процесс машин-

ной реализации систем, а домашинный этап анализа знаний и проектирова-ния базы знаний. Этим занимается специальная наука – инженерия знаний.

Структура экспертной системы

В целом процесс функционирования ЭС можно представить следую-

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

Page 30: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

30

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

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

Интерфейс пользователя - комплекс программ, реализующих диалог пользователя с ЭС как на стадии ввода информации, так и при получении ре-зультатов.

База знаний - ядро ЭС, совокупность знаний предметной области, за-писанная на машинный носитель в форме, понятной эксперту и пользователю (обычно на языке, приближенном к естественному). Параллельно такому представлению существует БЗ в машинном представлении.

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

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

Ответ на вопрос «как?» – это трассировка всего процесса получения решения с указанием использованных фрагментов БЗ, ответ на вопрос «по-чему?» - ссылка на умозаключение, непосредственно предшествующее полу-ченному решению.

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

Page 31: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

31

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

Этапы разработки ЭС

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

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

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

он составляет план разработки ЭС. План определяет шаги процесса разработ-ки и необходимые затраты, а также ожидаемые результаты (рис. 19).

Интерфейс пользователя

Решатель

База знаний

Подсистема объяснений

Интеллектуальный редактор

базы знаний

пользователь инженер по знаниям эксперт

Рис. 18. Структура экспертной системы

Page 32: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

32

Рис. 19. Этапы разработки экспертной системы

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

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

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

Идентификация проблемы

Получение знаний

Структурирование

Формализация

Реализация прототипа

Тестирование

Проблема

Знания

Поле знаний

БЗ на ЯПЗ

Программа-прототип ЭС

Page 33: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

33

На стадии формализации строится формализованное представление предметной области на основе выбранного языка представления знаний.

При реализации создается прототип ЭС, включающий базу знаний и остальные блоки, при помощи программирования на традиционных языках (C++, Pascal и др.), программирования на специальных языках, применяемых в задачах искусственного интеллекта (LISP, FRL, SMALLTALK) или с ис-пользованием инструментальных средств разработки ЭС типа СПЭИС.

Тестированием оценивается работа прототипа с целью приведения в соответствие с реальными запросами пользователя.

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

Коллектив разработчиков ЭС

Под коллективом разработчиков понимают группу специалистов, от-

ветственных за создание ЭС (рис. 20). Минимальный коллектив разработчи-ков включает четыре человека: эксперт, пользователь, инженер по знаниям, программист; реально он разрастается до 8-10 человек (так как возникает необходимость учета мнения нескольких пользователей, помощи нескольких экспертов, потребность в проблемных и системных программистах). Роли разработчиков являются постоянными на протяжении всей разработки. Со-вмещение ролей нежелательно.

Рис. 20. Коллектив разработчиков ЭС

Эксперт ПользовательИнженер по знаниям

Программист

Page 34: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

34

Конспект лекций. Лекция 6 Тема лекции: «Технологии инженерии знаний».

Инженерия знаний

Инженерия знаний - достаточно молодое направление искусственного

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

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

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

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

Приобретение знаний - процесс наполнения базы знаний экспертом с использованием специализированных программных средств. Термин «при-обретение» относится к автоматизированным системам прямого общения с экспертом.

Процесс построения базы знаний, на основе сведений, полученных от эксперта, состоит из трех этапов:

1) Описание предметной области. На первом шаге инженер по знаниям очерчивает границы области применения системы и класс решаемых ею задач: определяется характер решаемых задач, выделяются объекты предметной области, устанавливаются связи между объектами, выби-

Page 35: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

35

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

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

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

выявляющих эту неполноту; введение в систему новых знаний; объединение новых знаний со старыми (то есть добавление, уст-

ранение и модификация знаний).

Технологии инженерии знаний Рассмотрим, какими практическими методами знания могут быть по-

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

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

Page 36: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

36

Рис. 21. Классификация методов извлечения знаний Коммуникативные методы извлечения знаний охватывают методы и

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

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

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

Извлечение знаний

Коммуникативные методы Текстологические методы

Пассивные Активные

Групповые Индивидуальные Наблюдение

Протокол «мыс-лей вслух

Лекции

Круглый стол

«Мозговой штурм»

Ролевые игры

Анкетирование

Экспертные иг-ры

Диалог

Интервью

Анализ учебников

Анализ ли-тературы

Анализ до-кументов

Page 37: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

37

может использовать пассивные методы, а постепенно, ближе знакомясь с экспер-том, захватывать инициативу и переходить «в наступление».

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

Для характеристики предметных областей можно предложить следующую классификацию: хорошо документированные; средне документированные; слабо документированные.

Кроме этого, предметные области можно разделить по критерию струк-

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

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

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

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

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

рикой, скрытыми взаимосвязями, с большим количеством «белых пятен». Коммуникативные методы извлечения знаний

В соответствии с классификацией, представленной на рис. 21, рассмотрим подробнее обе разновидности коммуникативных методов: пассивные и ак-тивные

Пассивные методы Пассивные методы извлечения знаний включают такие методы, где

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

Наблюдения

Во время сеанса аналитик записывает все действия эксперта, его реп-

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

Page 38: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

38

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

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

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

Анализ протоколов «мыслей вслух»

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

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

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

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

Лекции

Лекция является самым старым способом передачи знаний. Чаще всего

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

Page 39: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

39

Активные методы

Активные групповые методы

Основное достоинство групповых методов - это возможность одновре-менного «поглощения» знаний от нескольких экспертов, взаимодействие кото-рых вносит в этот процесс элемент принципиальной новизны от наложения раз-ных взглядов и позиций.

«Круглый стол»

Метод круглого стола (термин заимствован из журналистики) предусмат-

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

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

«Мозговой штурм»

«Мозговой штурм» или «мозговая атака» - один из наиболее распростра-

ненных методов раскрепощения и активизации творческого мышления. Впервые этот метод был использован в 1939 г. в США А. Осборном как

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

основная идея штурма - это отделение процедуры генерирования идей в замк-нутой группе специалистов от процесса анализа и оценки высказанных идей.

Как правило, штурм длится недолго (около 40 минут). Участникам (до 10 человек) предлагается высказывать любые идеи (шутливые, фантастические, ошибочные) на заданную тему (критика запрещена). Обычно высказывается более 50 идей. Регламент до 2 минут на выступление. Самый интересный мо-мент штурма - это наступление пика (ажиотажа), когда идеи начинают «фонта-нировать», то есть происходит непроизвольная генерация гипотез участниками. При последующем анализе всего лишь 10-15% идей оказываются разумными, но среди них бывают весьма оригинальные. Оценивает результаты обычно группа экспертов, не участвовавшая в генерации.

Page 40: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

40

Ведущий «мозгового штурма» - инженер по знаниям - должен свободно владеть аудиторией, подобрать активную группу экспертов - «генераторов», не зажимать плохие идеи - они могут служить катализаторами хороших

Основной девиз штурма - «чем больше идей, тем лучше». Фиксация хода сеанса - традиционная (протокол или магнитофон).

Ролевые экспертные игры в группе

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

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

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

Активные индивидуальные методы

Активные индивидуальные методы извлечения знаний на сегодняшний

день - наиболее распространенные. В той или иной степени к ним прибегают при разработке практически любой ЭС.

Анкетирование

Анкетирование - наиболее жесткий метод, то есть наиболее стандартизи-

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

Способы проведения анкетирования: 1. Аналитик вслух задает вопросы и сам заполняет анкету по ответам

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

инструктирования. Существует несколько общих рекомендаций при составлении анкет.

1. Анкета не должна быть монотонной (это достигается вариациями формы вопросов, сменой тематики, вставкой вопросов-шуток и иг-ровых вопросов).

Page 41: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

41

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

3. Последовательность вопросов должна быть строго продумана. 4. Анкета должна быть оптимально избыточна. 5. Анкета должна иметь «хорошие манеры», то есть ее язык должен

быть ясным, понятным, предельно вежливым.

Интервью Под интервью будем понимать специфическую форму общения инженера

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

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

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

Составление вопросов для активных методов извлечения знаний

Все вопросительные предложения можно разбить на два типа

• вопросы с неопределенностью, относящейся ко всему предложению («Действительно, введение больших доз антибиотиков может вызвать анафилактический шок?);

• вопросы с неполной информацией («При каких условиях необходимо включать кнопку?»), часто начинающиеся со слов «кто», что», «где», «ко-гда» и т. д. Вопрос в интервью - это не просто средство общения, но и способ пере-

дачи мыслей и позиции аналитика. Любой вопрос имеет смысл только в контексте. Поэтому вопросы мо-

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

Диалог Диалог - это метод извлечения знаний в форме беседы инженера по

знаниям и эксперта, в которой нет жесткого регламентированного плана и вопросника.

Page 42: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

42

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

1. Начало беседы (знакомство, создание у эксперта «образа» аналитика, объяснение целей и задач работы).

2. Диалог по извлечению знаний. 3. Заключительная стадия (благодарность эксперту, подведение итогов,

договоренность о последующих встречах).

Экспертные игры

Игры с экспертом

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

Игры с тренажерами

Наличие тренажера позволяет воссоздать почти производственную си-

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

Компьютерные экспертные игры

Идея использовать компьютеры в деловых играх известна давно. Но

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

Page 43: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

43

Текстологические методы

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

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

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

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

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

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

Алгоритм извлечения знаний из текста

1) Составление «базового» списка литературы для ознакомления с предметной

областью и чтение по списку. 2) Выбор текста для извлечения знаний. 3) Первое знакомство с текстом (беглое прочтение). Для определения значе-

ния незнакомых слов - консультации со специалистами или привлечение справочной литературы.

4) Формирование первой гипотезы о макроструктуре текста. 5) Внимательное прочтение текста с выписыванием ключевых слов и выра-

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

ры текста в форме графа или «сжатого» текста (реферата). 7) Формирование поля знаний на основании макроструктуры текста.

Методы извлечения знаний, рассмотренные выше, являются непосредст-

венной подготовкой к структурированию знаний. Существует множество раз-личных методов структурирования знаний.

Page 44: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

44

Конспект лекций. Лекция 7 Тема лекции: «Основы теории нейронных сетей».

Биологический прототип искусственных нейронных сетей

Развитие искусственных нейронных сетей вдохновляется биологией.

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

Основные идеи и области применения нейросетей Первые нейросети были созданы Розенблатом и Мак - Коллаком в 56-

65 гг. XXв. (персептрон, устройство различало буквы алфавита, но было чув-ствительно к их написанию).

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

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

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

Page 45: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

45

Основные компоненты нейронной сети

Искусственные нейронные системы, или нейронные сети - это физи-

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

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

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

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

Характеристики нейронных сетей

1) Множество простых процессоров (узлов, нейронов). 2) Структура связей (представляющим синапсы клетки). 3) Правило распространения сигналов в сети. 4) Правило комбинирования входящих сигналов. 5) Правило вычисления сигнала активности. 6) Правила обучения, корректирующие связи.

Множество простых процессоров

На рис. 22 показана структура искусственной нейронной сети. С каж-

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

Элементы, предназначенные для получения сигналов из внешней сре-ды, называются входными элементами.

Элементы для вывода во внешнюю среду результатов вычислений называются выходными элементами.

Внутренние элементы называет скрытым слоем.

Page 46: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

46

Рис. 22. Структура нейронной сети

Структура связей Структура связей отражает то, как соединены элементы сети. В зави-

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

каются только между элементами в смежных слоях; могут допускаться обратные связи между смежными слоями или внут-

ри одно слоя, или же допускается посылка сигналов элементами самим себе. Каждая связь определяется тремя параметрами:

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

(вес связи).

Веса могут быть: положительными (возбуждающими);

Х

x1 x2 xk

y1 y2 yn

входной сигнал

выходной сигнал

входной слой

выходной слой

скрытые слои

Y

Page 47: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

47

отрицательными (тормозящими). Абсолютное значение весового коэффициента характеризует силу свя-

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

которой каждый элемент wij представляет величину весового коэффициента для связи, идущей от элемента i к элементу j. Для описания структуры связей может использоваться не одна, а несколько весовых матиц, если элементы сгруппированы в слои. Матрица является памятью сети, хранящей информа-цию о том, как должна выполняться задача.

Правило распространения сигналов в сети

Правило распространения сигналов сети является правилом комбини-

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

Правило комбинирования входящих сигналов

Часто входящие сигналы элемента комбинируют путем суммирования

их взвешенных значений (рис. 23).

n

iijij wxnet

1 25.0)5.03.0()1.31.0()3.07.0( jnet

или в векторном представлении

5.0

1.3

3.0

3.01.07.0

.

i

0.7

0.1

0.3

-0.3

3.1

0.5

Рис.23. Метод суммирования сигналов, направленных к i-му элементу.

Page 48: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

48

jnet - результат комбинирования ввода элемента j, ix - выход элемен-

та i, а n – число задействованных связей.

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

Правило вычисления сигнала активности

Для всех элементов имеется правило вычисления выходного значения,

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

Функции активации

Тождественная функция

Функция активности для входных элементов может быть тождествен-

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

Пороговая функция

В большинстве моделей нейронных сетей используются нелинейные

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

j

j

netесли

netеслиnetf

,0

,1)(

.

Page 49: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

49

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

n

iijij wxwnet

10

вычисляется по формуле:

0,0

0,1)(

j

j

netесли

netеслиnetf

.

Сигмовидная функция Сигмовидная функция активации (рис. 26) является наиболее часто ис-

пользуемой. Выходные значения такой функции непрерывно заполняют диа-

пазон от 0 до 1: )exp(1

1)(

netnetf

. Наклон и область выходных значений логической функции могут быть

разными.

f(net) 1

net

Рис. 24. Пороговая функция активации

f(net) 1

net

Рис. 25. Пороговая функция активации со смещением

Page 50: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

50

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

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

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

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

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

f(net)

net

Рис. 26. Сигмовидная функция активации

Page 51: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

51

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

Пример 7. Предположим, что мы имеем два булевых входа 1,0, 21 xx и один булевый выход 1,0o , а тренировочное множество задано следующи-ми парами (таблица 2) вход/выход (логическое И).

Таблица 2

Тренировочное множество для нейронной сети (логическое И) x1 x2 2121 ),( xxxxo

1 1 1 1 2 1 0 0 3 0 1 0 4 0 0 0

Тогда задача обучения состоит в том, чтобы найти веса 1w и 2w , а также пороговое (или настроечное) значение такое, чтобы вычисленный выход нашей сети (который задан линейной пороговой функцией) равнялся желае-

мому выходу по всем примерам. Простым решением является 2

121 ww ,

6,0 . Действительно, из уравнения

o x xесли x x

если x x( , )

, / / .

, / / .1 2

1 2

1 2

1 2 2 06

0 2 2 06

следует, что выходной нейрон срабатывает тогда и только тогда, когда оба входа включены.

Пример 8. Предположим, что мы имеем два булевых входа 1,0, 21 xx и один булевый выход 1,0o , а тренировочное множество (табл. 3) задано следующими парами вход/выход (логическое ИЛИ).

Таблица 3 Тренировочное множество для нейронной сети (логическое ИЛИ)

x1 x2 2121 ),( xxxxo

1 1 1 1 2 1 0 1 3 0 1 1 4 0 0 0

Тогда задача обучения состоит в том, чтобы найти веса 1w и 2w , а также пороговое (или настроечное) значение такое, чтобы вычисленный выход

Page 52: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

52

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

Простым решением является 121 ww , 8,0 . Действительно, из уравнения

o x xесли x x

если x x( , )

, .

, .1 2

1 2

1 2

1 08

0 08

следует, что выходной нейрон срабатывает тогда и только тогда, когда, как минимум, один вход включен.

Существуют различные правила обучения такие как: перцептронное обучающее правило (введенное Розенблатом, яв-

ляющееся типичным алгоритмом обучения с исправлением оши-бок для однослойной сети прямой проводимости с линейной по-роговой функцией активации);

дельта - обучающее правило; обучение “победитель получает все”.

Нейронные сети, по существующим в настоящее время представлени-

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

Page 53: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

53

Конспект лекций. Лекция 8 Тема лекции: «Введение в эволюционные алгоритмы».

Основоположники теории эволюции

Любые задачи и проблемы во вселенной решаются двумя способами:

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

ции: 1. Эволюция по Дарвину. 2. Эволюция по Ламарку. Сущность теории Ламарка заключается в том, что животные и растения не всегда

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

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

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

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

Предпосылки возникновения эволюционных алгоритмов

Ученые, занимающиеся компьютерными исследованиями, обратились к теории

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

В 1966г. Л.Дж. Фогель, А.Дж. Оуэнс, М.Дж. Волш предложили и ис-следовали эволюцию простых автоматов, предсказывающих символы в циф-ровых последовательностях. В 1975г. Д.Х. Холланд предложил схему гене-тического алгоритма. Эти работы легли в основу главных направлений раз-работки эволюционных алгоритмов.

Простой генетический алгоритм был впервые описан Гольдбергом на основе работ Холланда.

Page 54: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

54

Классификация эволюционных алгоритмов На рис. 27 приведена классификация эволюционных алгоритмов. Раз-

деление эволюционных алгоритмов происходит по их функциям, а также по операторам, входящим в их состав.

Рис. 27. Классификация эволюционных алгоритмов

Основные определения Эволюционный алгоритм - компьютерная система интеллектуального

принятия решений. В основе эволюционного алгоритма лежит эволюционная стратегия.

Рекомбинация (скрещивание) - оператор преобразования решения, в котором задействованы два и более индивидов.

Мутация - оператор изменения индивида, применяемый к одному ин-дивиду с определенной вероятностью.

Мутанты - индивиды, к которым применена операция мутации. Генотип - способ представления индивида в хромосоме. Фенотип - сам индивид в том виде, в котором он существует. В таблице 4 приведены аналоги природных терминов с терминами

компьютерного мира. Таблица 4

Аналоги природных терминов с терминами компьютерного мира Природа Компьютерный мир Индивид Решение задачи Популяция

(группа индивидов) Множество решений

Пригодность Качество решения Хромосома Представление решения

Ген Часть представления решения Рост (выращи-вание)

Декодирование представления решения

Скрещивание Оператор поиска или оператор порождения но-вого решения

Эволюционные алгоритмы

Эволюци-онные

стратегии

Эволюци-онное

програм-мирование

Генетиче-ские алго-ритмы

Генетиче-ское про-граммиро-вание

Класси-фици-рующие системы

Адаптивный случайный поиск

Page 55: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

55

Мутация Маловероятное небольшое изменение хромосо-мы

Селекция Повторное использование имеющихся решений Внешняя среда Решаемая проблема Рассмотрим цикл эволюции (рис. 28). Исходная популяция проходит

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

Рис. 28. Цикл эволюции

Преимущества эволюционных алгоритмов

1. Не требуют никакой дополнительной информации о поверхности отве-та (ГА работает с бинарной строкой, что бы она не означала).

2. Разрывы, существующие на поверхности ответа, незначительно влияют на эффективность оптимизации.

3. Устойчивы к попаданию в локальные оптимумы. 4. Хорошо работают при решении задач многоцелевой оптимизации. 5. Могут быть использованы для широкого класса задач. 6. Просты и прозрачны в реализации (низкие затраты на разработку и

применение). 7. Легко включают другие методы. 8. Решения легко поддаются интерпретации (в отличии от нейронных се-

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

Родители

Популяция

Потомки

Селекция

Замещение

Рекомбинация Мутация

Page 56: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

56

Недостатки эволюционных алгоритмов

1. Нет гарантии о получении оптимального решения за конечное время. 2. Слабое теоретическое обоснование (слабая сходимость по вероятности) 3. Большое количество настраиваемых параметров, выбор которых может

принципиально повлиять на эффективность алгоритма. 4. Высокие вычислительные затраты (медленная работа, долго ждать ре-

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

Области применения ЭА

1. Численная комбинаторная оптимизация. 2. Моделирование и идентификация систем. 3. Планирование и управление. 4. Техническое проектирование. 5. Извлечение данных, приобретение знаний. 6. Автоматическое обучение. 7. Искусственная жизнь.

Эффективность ЭА ЭА обладают приемлемой эффективностью затрат на широком классе

проблем (рис. 29). ЭА присущ внутренний параллелизм. Улучшение индивидов осущест-

вляется параллельно, что приводит к уменьшению ошибок (устойчивости) и робастности (применимость к широкому классу задач без необходимости пе-ренастройки)

Рис 29. Сравнительная характеристика эффективности различных методов поиска

Эволюционный алгоритм

Случайный поиск

Локальный поиск

Локальный экстремум.

Page 57: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

57

Схема работы эволюционного алгоритма В общих чертах работу ЭА можно представить так: он создает популя-

цию особей, каждая из которых является решением некоторой задачи, а затем эти особи эволюционируют по принципу "выживает сильнейший" (survival of the fittest), то есть остаются лишь самые оптимальные решения.

Работа ЭА представляет собой итерационный процесс, который про-должается до тех пор, пока не выполнятся заданное число поколений или ка-кой-либо иной критерий остановки.

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

Работа ЭА имитирует естественную эволюцию только в очень упро-щенном варианте и можно выделить несколько этапов работы ЭА.

Обобщенный ЭА

1. Инициализировать исходную популяцию (Создать популяцию). На

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

2. Оценить популяцию. 3. Повторять, пока не выполнится условие останова.

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

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

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

Page 58: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

58

d. Оценивание (оценить пригодность новой популяции). e. Замещение (на основе полученной пригодности выбрать выжив-

ших индивидов). Замечание 1. Не во всех ЭА присутствуют все эти шаги. Замечание 2. Порядок шагов может изменяться Замечание 3. Количество различных ЭА превышает количество уче-

ных, работающих в этой области значительно. Одним из главных источников критических замечаний в адрес генети-

ческого алгоритма со стороны малознакомых с ним людей являются резуль-таты тестирования ЭА на функции вида f=x2. Действительно, результаты эти малоутешительные. ЭА очень медленно движется к решению и никак не мо-жет сойтись в нем. Его обгоняет не то, что метод Ньютона, даже метод поша-гового поиска. Однако здесь нет ничего удивительного, это тот же результат, что и при стрельбе из пушки по воробьям. Тестирование ЭА должно прово-дится не на унимодальных, а на многоэкстремальных задачах высокого уров-ня сложности.

Проектирование эволюционных алгоритмов (EA-Design)

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

пройти следующие этапы: 1. Выбрать способ представления решения. 2. Решить каким образом инициализировать популяцию. 3. Разработать способ отображения генотипа в фенотип и обратно. Эволюционные алгоритмы работают на уровне генотипа. Хромосома

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

4. Разработать способ оценивания индивида. Пригодность индивида – значение целевой функции в задачах безус-

ловной оптимизации. 5. Разработать подходящие операторы мутации (приемлемые, отра-

жающие наше представление о маловероятном слабом изменении). Мутация может привести к появлению недопустимого индивида, что

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

чтобы получаемое потомство имело смысл). 7. Решить, как управлять популяцией (выбор вероятности мутации

и рекомбинации). 8. Решить каким образом отбирать индивидов, которые станут ро-

дителями (оператор селекции). 9. Решить, как отбирать индивидов, которые будут заменены дру-

гими.

Page 59: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

59

10. Решить, как останавливать алгоритм.

Критерии останова Останавливать эволюционный алгоритм можно: по прошествии определенного количества поколений; после выполнения определенного количества оценивания при-

годности индивида; по истечении определенного компьютерного времени; по получению определенного результата (например, 150 поколе-

ний без улучшения). Возможна любая комбинация критериев останова.

Page 60: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

60

Конспект лекций. Лекция 9. Тема лекции: «Проектирование представления решения. Операто-

ры селекции».

Проектирование представления Как мы говорили ранее при проектировании представления необходи-

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

Бинарный алфавит При бинарном представлении индивид представляет собой двоичную

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

Таблица 12 Пример бинарного представления

1 0 0 1 1 0 0 1 Например, преобразуя генотип из таблицы 12 получаем, следующий

результат: 1532020202121202021 01234567 . Число, полу-ченное в результате, может являться значение функции, может быть давлени-ем на рычаг, и т.д.

Если изначально стояла задача составления оптимального расписания, состоящего из восьми работ, находящихся на разных этапах, тогда декодиро-вание индивидов может быть таким, как показано в таблице 13. Допустим, что 1 означает второй этап, а 0 – первый.

Таблица 13 Пример декодирования индивида

номер работы этап1 II 2 I 3 I 4 II 5 II 6 I 7 I 8 II

Page 61: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

61

Порядковое представление При порядковом представлении значение имеет порядок расположения

знаков в хромосоме (цифр, букв и пр.). То есть фенотип (решение) зависит от порядка элементов решения. Такое представление используется в задачах упорядочивания (табл. 14).

Например, задача построения расписания, задача коммивояжера (каж-дый город имеет свой номер от 1 до N, перестановка чисел от 1 до N является представлением решения).

Таблица 14

Пример порядкового представления 2 5 7 8 3 1 4 6

Основная проблема: при порядковом представлении состоит в том, что

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

Представление вещественными числами

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

исследователей в области ГА при решении задач непрерывной оптимизации (рис. 30). Двоичное представление хромосом влечет за собой определенные трудности при выпол-нении поиска в непрерывных пространствах, которые связаны с большой размерностью пространства поиска.

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

образования целочисленного значения гена из множества в вещественное число из интервала пользуются формулой:

, где N - количество разрядов для кодирования битовой строки. Чаще всего исполь-

зуются значения N = 8; 16; 32. При увеличении N пространство поиска расширяется и становится огромным. В

иностранных источниках по RGA (Real-coded genetic algorithm, представление веществен-ными числами) часто приводится такой пример. Пусть для 100 переменных, изменяющих-ся в интервале [-500; 500], требуется найти минимум с точностью до шестого знака после запятой. В этом случае при использовании ГА с двоичным кодированием длина строки составит 3000 элементов, а пространство поиска - около 10 в степени 1000.

Для решения таких задач в непрерывных пространствах возник новый тип ГА - ге-нетический алгоритм с вещественным кодированием (англ.: Real-coded Genetic Algorithm, RGA). Основная идея RGA заключается в том, чтобы напрямую представлять гены в виде вещественных чисел, т.е. генотип объекта становится идентичным его фенотипу. Вектор

Page 62: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

62

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

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

Рис. 30 Пример вещественного представления

Инициализация популяции

Инициализация популяции должна выполняться равномерно в поиско-вом пространстве, если это возможно.

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

нулем или единицей с вероятностью 2

1 .

Если представление целочисленное, что равномерное распределение

заполняет каждый ген с вероятностью N

1 .

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

Оценивание индивида

Оценивать индивидов необходимо для того, чтобы решить, какой ин-

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

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

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

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

Page 63: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

63

Если фенотип нарушает условия ограничения задачи, применяется штрафование функции пригодности и специфические эволюционные методы.

Селекция

Оператор селекции обеспечивает лучшим индивидам большие шансы

стать родителями, чем индивидам не столь хорошим. Это порождает селективное давление, которое двигает популяцию впе-

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

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

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

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

Пропорциональная селекция

Пропорциональную селекцию называют также селекцией колесом ру-

летки. Пусть if - пригодность i-го индивида. Тогда среднюю пригодность по-

пуляции можно рассчитать по следующей формуле:

N

iif

Nf

1

1 , и вероят-

ность выбора индивида i для репродукции

N

ii

iii

f

f

Nf

fp

1

.

Например, 41 f , 102 f , 113 f , 254 f .

50

41 p ,

50

102 p ,

50

113 p ,

50

255 p . 5.12f (рис. 42).

Графически это можно представить следующим образом:

p4 p1 p2 p3

Page 64: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

64

Рис. 31. Графическая иллюстрация пропорциональной селекции Достоинства: простота реализации. Недостатки:

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

2. Стагнация. Ближе к концу работы алгоритма все индивиды могут по-лучать относительно высокую и примерно равную пригодность, что приводит к очень слабому селективному давлению. Обе проблемы могут быть решены приемлемыми методиками масшта-

бирования пригодности, а также применением «социального» генетического алгоритма (борьба только с первой проблемой). Социальность: отобрать у сильного, дать слабому.

3. Пропорциональная селекция ведет себя по-разному при небольшом из-менении функции пригодности.

Ранговая селекция При ранговой селекции индивиды сортируются (ранжируются) по по-

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

тая из заданного распределения

n

iip

1

1.

Таблица 15 Пример назначения рангов 1

4 10 11 25 Пригодность индивида 1 2 3 4 Ранги 0.1 0,2 0,3 0,4 ip

Таблица 16 Пример назначения рангов 2

1 4 10 11 25 1000 Пригодность индивида1 2 3 4 5 6 Ранги

211 21

2 213 21

421

521

6 ip

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

Page 65: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

65

Достоинства: 1) Преждевременной сходимости нет. 2) Стагнация отсутствует. 3) Нет необходимости вычисления пригодности, так как достаточно

попарного сравнения индивидов, что расширяет круг задач. Недостатки: значительные накладные расходы на переупорядочивание.

Турнирная селекция Из N индивидов популяции случайным образом выбирают k 2 (раз-

мерность турнира) индивидов. Индивид с наибольшей пригодностью из тур-нира (отобранная группа) отбирается, а остальные отбрасываются.

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

Достоинства: 1. Преждевременной сходимости нет 2. Стагнации нет 3. Нет переупорядочивания 4. Не требуется явное вычисление функции пригодности Недостатки: Турнирная селекция теряет глобальную информацию.

Стратегия замещения На селективное давление влияет также способ, которым решается, ка-

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

Селекция может быть применена с учетом прожитых индивидом поко-лений.

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

Page 66: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

66

Конспект лекций. Лекция 10 Тема лекции: «Операторы рекомбинации. Операторы мутации».

Операторы скрещивания

Оператор скрещивания (crossover) осуществляет обмен частями хромо-

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

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

Рекомбинация для бинарного представления

Одноточечное скрещивание

Хромосомы 2х родителей разрываются в выбранном (случайным обра-

зом) месте и правые части хромосом обмениваются (рис. 32, рис 33.). 11111 111 11111000 00000 000 00000111 Рис. 32. Одноточечное скрещивание

В данном примере возможно 8 различных точек разрыва, то есть каж-дая точка разрыва может быть выбрана с вероятностью 8

1 .

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

Если выбрать m родителей, и n точек разрыва, то получится nm различ-ных хромосом.

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

Вероятность рекомбинации ( CP ) - вероятность того, что к отобранно-му набору родителей будет применен оператор скрещивания. Рекомендуется выбирать вероятность скрещивания 9.06.0 cp .

1111 11 111 111100111 0000 00 000 000011000Рис. 33. Двухточечное скрещивание

Page 67: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

67

Равномерное скрещивание При равномерном скрещивании предполагается, что каждый ген по-

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

даже вся популяция может принимать участие в производстве потомков. Это называется gene-pool recombination – рекомбинация полным набором ген.

Рекомбинация с помощью масок

Представим маску полоской бумаги длиной с хромосому с окошками в

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

Рекомбинация для порядкового представления При порядковом представлении скрещивание происходит следующим

образом: выбирается произвольная часть первого родителя и копируется для первого потомка. Далее копируются оставшиеся гены второго родителя, со-блюдая следующие правила:

1) Начать прямо с точки отсечения скопированной части. 2) Использовать порядок генов второго родителя, если дошли до конца,

то начать сначала (рис. 34).

1325 4768 4187 6325

13254876

Рис. 34. Рекомбинация для порядкового представления

Рекомбинация для вещественного представления Для RGA стандартные операторы скрещивания и мутации не подходят,

т.к. алгоритм работает только с вещественными числами. По этой причине были разработаны и исследованы специальные операторы.

Рассмотрим их подробно. Пусть ),...,,( 112

111 ncccC и ),...,,( 22

2212 ncccC - две

хромосомы, выбранные оператором селекции для проведения скрещивания.

Плоское скрещивание При плоском скрещивании (англ.: flat crossover) создается потомок

),...,,...,( 1 ni hhhH , где nihi ,1, - случайное число их интервала 21, ii cc .

Page 68: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

68

Арифметическое скрещивание При арифметическом скрещивании (англ.: arithmetical crossover) созда-

ются два потомка ),...,( 111 nhhH и ),...,( 22

1 nhhH :

constnicchcch iiiiii ]1,0[,,1,)1(,)1( 122211 . BLX-α скрещивание

При BLX-α скрещивании генерируется один потомок ),...,,...,( 1 ni hhhH ,

где ih - случайное число из интервала ],[ maxmin cc ,

.,1,),,min(),,max( minmax21

min21

max nicccccccc iiii

Линейное скрещивание При линейном скрещивании (англ.: linear crossover) создаются три по-

томка, рассчитываемые по формулам: 2

3,

2

3,

2

211

212

211 ii

iii

iii

i

cch

cch

cch

.

На этапе селекции в линейном скрещивании выбираются две особи с наи-большей пригодностью.

В большинстве случаев генетический алгоритм с вещественным коди-

рованием справляется с задачей отыскания оптимума лучше и быстрее, чем с двоичным кодированием. Самым эффективным оператором скрещивания признан BLX-α скрещивание с α=0,5. Особенность данного оператора в том, что при скрещивании генов )(, 2121

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

, т.е. 21 , iii cch . В других операторах скрещивания, например, в плоском или арифметическом будут генерироваться только допустимые ин-дивиды, 21, iii cch

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

Операторы мутации

Мутация - оператор изменения индивида, применяемый к одному ин-

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

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

Вероятность мутации значительно меньше вероятности скрещивания и редко превышает 1%. Среди рекомендаций по выбору вероятности мутации

Page 69: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

69

нередко можно встретить варианты 1/L или 1/N, где L - длина хромосомы, N - размер популяции.

Существуют алгоритмы, не использующих других операторов кроме мутации.

Правила использования оператора мутации: 1. Мутация должна порождать только допустимые хромосомы. 2. Величина мутации должна быть управляемой величиной. 3. Хотя бы один оператор мутации должен разрешать достижение любой

части пространства поиска.

Мутация для порядкового представления Для порядкового представления оператор мутации может представлять

собой обмен случайным образом выбранных генов (рис 35).

234156 254136

Рис. 35. Мутация для порядкового представления

Мутация для бинарного представления Мутация для бинарного представления представляет собой инверсию

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

10101010 10111010

Рис. 36. Мутация для бинарного представления

Мутация для вещественного представления

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

bt

iii

iiii ryyt

приctc

приcbtcc max

1

1),(,1),(

0),(

, где ),...,,( 21 ncccC - хро-

мосома, выбранная для мутации, χ – целое случайное число, принимающее значении 0 или 1, 1,0r - случайное вещественное число, max - максималь-ное число эпох алгоритма, b – параметр, задаваемый исследователем.

Page 70: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

70

Преобразование целевой функции в функцию пригодности В качестве функции пригодности можно использовать саму целевую функцию, ес-

ли xxf 0)( , и необходимо максимизировать целевую функцию. В некоторых задачах могут встречаться отрицательные значения целевой функции,

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

else

CxfCxfxfitness

,0

0)(,)()(

minmin

, где )(xfitness - пригодность индивида x,

minC - абсолютное значение одной из следующих величин: Минимальное значение f(x), если оно известно; Минимальное значение в текущем или последних k поколениях.

При возникновении преждевременной сходимости или стагнации при

пропорциональной селекции применяют масштабирование пригодности:

else

bxfabxfaxfitness

,0

0)(,)()(

, где a и b выбираются такими, чтобы выполнялись условия:

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

Лучший индивид получает заданное число своих копий в новой попу-ляции.

Условная оптимизация

Один из классификационных признаков делит оптимизационные зада-

чи на два класса: задачи безусловной оптимизации и задачи условной опти-мизации.

Первые из них характеризуются тем, что минимум функции RRfm :

ищется на всем пространстве: mRxxf min)(

В задачах же второго класса поиск минимума идет на некотором собст-венном подмножестве Ω пространства mR : xxf min)( .

Множество Ω часто выделяется ограничениями типа равенств )(0 xg ,

где km RRg :0 и (или) ограничениями типа неравенств )(1 xg , где

lm RRg :1 . Недостатком эволюционных алгоритмов при решении задач условной

оптимизации является то, что эволюционные алгоритмы не имеют возможно-сти учета ограничений на переменные.

Методы решения проблемы получения недопустимых индивидов: 1) «Смертельный штраф».

Page 71: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

71

Недопустимые индивиды просто отбрасываются. Достоинства:

просто и быстро Недостатки:

потеря информации, неразличимы индивиды существенно и незначительно нарушающие

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

тратится на генерирование и отбрасывание недопустимых индивидов. 2) «Перевоспитание» (лечение)

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

Достоинства: информация не теряется; достаточно найти одного допустимого индивида, и все недопустимые

станут допустимыми. Недостатки:

возможны большие затраты на лечение. 3) Недопущение. Предотвращение.

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

4) Метод поведенческой памяти. Ограничения подключаются по одному, после определенного количе-

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

Рис. 37 Эволюция методом поведенческой памяти.

I III II

III

Page 72: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

72

Также существуют методы с применением штрафных функций и мно-жителей Лагранжа.

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

Page 73: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

73

Лекция 11

Специальные МПЗ.

Все модели представления знаний можно разделить на следующие

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

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

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

Рис. 1. Классификация моделей представления

Page 74: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

74

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

При процедуральном представлении знаний задаются процедуры пре-образований знаний для данной ПО. При этом текущее состояние системы представляется в виде набора специализированных процедур, обрабатываю-щих локальный участок БД, которая специально организована, как говорят, в императивном виде, т.е. в приспособленном для использования системой процедур и доказательства теорем (термин императивный используется в лингвистике для обозначения сослагательного наклонения, в котором, как правило, используется частица «бы», например, «я выучил бы язык PLANNER, если бы у меня было время»). Процедуральные представления знаний, как правило, реализуются с помощью специальных языков типа PLANNER, QА-4 и т.п., в которых имеется набор механизмов, обеспечиваю-щих автоматический и целена-правленный поиск решения. В этих языках обычно стараются оптимальным образом разрешить проблему сочетания уни-версальности механизмов и управляемости ими со стороны пользователя. В процедуральных представлениях знаний семантическая информация о кон-кретной ПО вводится в выражения БДанных в виде их свойств, что позволяет использовать на данной стадии поиска решения только те данные, которые необходимы действующей (активизированной) в данный момент процедуре и в ней описаны. Одним из характерных свойств процедурального представле-ния знаний, которое внешне его сразу отличает от декларативного, является представление информации, в частности, описаний состояний в пространстве состояний в виде процедур, программ. Так, вместо хранения информации о всех возможных состояниях «игры в 8» можно хранить программу, которая сгенерирует из начального состояния все возможные. Такое хранение ин-формации существенно экономит память ЭВМ. Благодаря введению семан-тики в описание методов БД заметно сокращается поиск решения из-за воз-

Page 75: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

75

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

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

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

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

Page 76: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

76

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

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

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

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

Page 77: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

77

Логико-лингвистические модели и функциональные семантические сети

1. Естественный язык (ЕЯ) и функциональные классы в ЕЯ Если смотреть на естественный язык с точки зрения использования его

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

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

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

Понятия-процессы (в отличии от понятий-классов) описывают группу односложных процессов. Примерами понятий-процессов служат слова и сло-восочетания: «погрузка», «включение», «авария», «превышение допустимой нагрузки». Близки к ним понятия-состояния, примерами которых служат: «нормальный режим», «линия включена» и т.п. Для идентификации понятий-процессов и понятий-состояний также могут использоваться имена, напри-мер, «линия 12 включена», «погрузка типа 4». Отношения служат для ус-тановления связей на множестве понятий или идентифицированных понятий. Уже сама идентификация реализуется с помощью специальных отношения, смысл которого можно передать словами: «иметь имя» или «называться». Имеется гипотеза о конечности множества отношений для естественных язы-ков: число различных, не сводимых друг к другу отношений не превышает 200. Остальные отношения, фиксируемые в текстах, написанных на естест-венном языке, сводятся к комбинации этих базовых отношений. В табл. 1 приведены примеры базовых отношений. Обозначения приведены для тех, которые будут использоваться в примерах.

Page 78: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

78

Таблица 1

Тип отношения Наименование отноше-

ния Обозначение отношения

Временные Быть одновременно Быть раньше

r1 r2

Пространственные Быть в ε-окрестности Находиться Быть сзади

r3

r4

r5

Динамические Двигаться к r6

Классификацион-ные

Быть элементом класса Обладать

r7

r8

Идентифицирую-щие

Иметь имя ρ

Прагматические

Служить для Быть препятствием для Обладать состояние Участвовать в процессе

r9

r10

r11

r12

Каузативные Быть целью Быть причиной Действие-объект

r13

r14

r15

Замечание. В таблице 1 рассматриваются не языковые отношения, а

отношения реального (физического) мира. То или иное отношение этого ми-ра в языке может выражаться различными словами или словосочетаниями. Например, во фразах: «Деталь перемещается по конвейеру к бункеру», «Ро-бот едет к складу 4», «Автомобиль приближается к перекрестку» между парами понятий «деталь» и «бункер», «робот» и «склад 4», «автомобиль» и «перекресток» реализуется одно и то же отношение, которое можно пере-дать словами «двигаться к» и использовать для его обозначения r6 из табл. 1. Этим еще раз подчеркнуто, что в табл. 1 приведены не языковые отношения, а отношения, возникающие между предметами, процессами и состояниями в реальном физическом мире.

С помощью понятий, имен и отношений можно уже описывать ситуа-ции, относящиеся к объекту (например, объекту управления) и среде, в кото-рой они действуют. Для этого сначала введем синтаксис для логико-лингвинистического языка представления знаний (ЯПЗ), использующего три рассмотренных функциональных класса: понятия V, имена I и отношения R. Класс понятий Т можно рассматривать как объединение трех подклассов: по-нятия-классы (В), понятия-процессы (D) и понятия-состояния (G). Итак, множество Т задается следующим образом:

Т = V I R, где V = B D G, B = b1, b2,..., bn, D = d1, d2,..., dm, G = g1, g2,..., gk, I = i1, i2,..., il, R = ( , ), ρ, r1,..., rq.

Page 79: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

79

Построим совокупность синтаксических правил, определяющих ППФ - правильно построенные формулы в данной системе. Правила. 1. Любой элемент, кроме элементов множества R, является ППФ. 2. Если а - любой элемент из В и β - любой элемент из I, то тройка (аρβ) есть ППФ (ρ - «иметь имя», «называться» и т.п.). 3. Если δ и γ -любые элементы из V, то тройка (δrγ), где r - любой элемент из R, кроме (,) и ρ, есть ППФ. 4. Если и суть ППФ, то тройка ( r)есть ППФ. 5. Других ППФ нет.

Рассмотрим несколько примеров. Пример 1. Дано текстовое описание ситуации: «К причалу 1 подходит судно «Свирь», пришедшее с грузом леса. Портальный кран 8 занят на разгрузке судна «Беломорск» на причале 2. Этой же операцией занят пор-тальный кран 5. Портальный кран 6 свободен, но не может быть пере-мещен на причал 1 из-за крана 5».

Построим описание ситуации в порту, используя введенный фрагмент логико-лингвинистического ЯПЗ. Введем список понятий, список имен и список отношений, необходимые для данного примера. Список понятий: b1 – причал, b2 – судно, b3 – груз, b4 – портальный кран, d1 – разгрузка (процесс), d2 – передвижка, g1 – разгрузка (состояние), g2 – свободен, g3 – занят. Список имен: i1 – «Свирь», i2 – лес, i3 – «Беломорск», i4 − 1, i5 − 2, i6 − 5, i7 − 6, i8 − 8. Отношения берутся из табл. 1. Первой фразе текстового описа-ния соответствует следующая формальная запись: (((b2ρi1) r6 (b1ρi4) r1 (b2r8 (b3

ρi2))). Отношение «быть временно» r1 играет в этой записи роль союза «и» в естественном языке или операции конъюнкции в логике высказываний. Вто-рой фразе текста соответствует запись: (((((b4ρi8)r9d1) r1 ((b2ρi3)r4(b1ρi5))) r1

(((b4ρi8) r4 (b1ρi5)) r1 (b2r11g1))). Запишем теперь с помощью ЯПЗ третью фразу исходного текста:

((((b4ρi6) r4 (b1ρi5)) r1 ((b2ρi3) r4 (b1ρi5))) r1 (b4r9d1)). Для последней фразы текста формальная запись имеет вид:

(((b4ρi7)r11g2) r1 ((b4ρi6) r10 (d2r15(b4ρi7))). Для упрощения записей полезно наряду с отношениями рассматривать также операции, используемые в исчислении высказываний: отрицание, конъюнк-цию, дизъюнкцию. В частности, использование конъюнкции (в записи знак конъюнкции & будет обычно опускаться, подобно знаку умножения в алгеб-ре) позволяет существенно уменьшить в записях число необходимых скобок, т.к. наиболее существенное их число возникает от необходимости использо-вать в качестве связки отношение r1. При использовании конъюнкции вторая фраза текста примера запишется в следующем виде:

((b4ρi8)r9d1) ((b2ρi3) r4 (b1ρi5))& ((b4ρi8) r4 (b1ρi5)) (b2r11g1). Эта запись значительно проще и нагляднее записи, использующей для связки скобок отношение r1.

Page 80: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

80

Пример 2. Дана запись на ЯПЗ: ((b2i4)r3(b1ρi8)) ((b3ρi2)r12d1 & ((b2ρi4)r11g1). Требуется восстановить текст по этой записи. Начнем расшифровывать трой-ки по порядку. Две тройки, входящие в ((b2i4)r3(b1ρi8)), соединенные отноше-нием r3, имеющим значение «быть в ε-окрестности», дают первую фразу: «Судно 1 находится около причала 8». Следующая скобка соответству-ет фразе: «Идет разгрузка леса». Расшифровка этой записи «в лоб» даст фра-зу: «Груз по имени лес участвует в процессе разгрузка». Но смысл этой фра-зы тождественен смыслу ранее приведенной фразы, которая по-русски зву-чит естественнее. Наконец, третья скобка определяет третью фразу текста: «Судно 1 находится в состоянии разгрузка». Текст из этих трех фраз мо-жет быть заменен одной фразой, смысл которой: «Судно 1 находится под разгрузкой леса у причала 8». Пример 3. Даны две записи на ЯПЗ. Требуется установить, эквивалентны ли они по смыслу. Первая запись: ((b4ρi5)r12d2) ((b4ρi5)r4(b1ρi5)), вторая запись: ((b4ρi5)r6(b1ρi5)). В эти две записи входят различные отношения: r12 и r4 - в первую и r6 - во вторую. Поэтому без привлечения семантики этих отношений чисто фор-мальным способом установить эквивалентность этих ППФ невозможно - так можно было бы установить лишь их эквивалентность на синтаксическом уровне. Поэтому перейдем от записи на ЯПЗ к словесным текстам. Для пер-вой записи получим следующий текст: «Портальный кран 2 находится на причале 2 и передвигается». Для второй записи: «Портальный кран 2 движется к причалу 2». Из этого следует, что приведенные выше записи на ЯПЗ по смыслу не являются эквивалентными.

Заметим, что в первой записи номер причала на 2, а отношение r4 на отношение r3. Тогда первой записи будет соответствовать текст: «Порталь-ный кран 2 находится около причала 1 и передвигается». Смысл этой фразы нельзя считать идентичным смыслу второй фразы. Но эти две фразы обладают свойством совместимости. Их представления в виде записей на ЯПЗ можно соединить отношением r1 или знаком конъюнкции. Исходные же записи таким образом соединить нельзя. Если же в первой записи заменить отношение r4 отношением r13, то обе эти записи станут эквивалентными по смыслу.

Последний пример показывает, что проблемы семантики для ЯПЗ не менее трудны, чем для ЕЯ. К числу этих трудностей можно отнести то, что не все ППФ, порождаемые по сформулированным правилам 1) – 5), будут признаваться семантически правильными. В частности, при использовании термов из примера 1 и приведенных синтак-сических правил можно породить ППФ вида (b3ρg1) или (b2r7g2). Но припи-сать этим ППФ какой-либо смысл вряд ли возможно. Первая тройка соответ-ствует фразе: «Груз называется разгрузка», а вторая - фразе: «Судно есть элемент свободен».

Page 81: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

81

Это показывает, что при создании ЯПЗ требуется предусмотреть специ-альные ограничения на синтез ППФ. Указанные трудности произошли пото-му, что некоторые отношения не могут произвольно вводиться между поня-тиями произвольной природы. Если бы отношения можно было разбить на непрекрывающиеся классы и для каждого такого класса определить подмно-

жества, между которыми данные отношения всегда возможны с точки зрения семантики, то про-блема не возникала бы. В общем случае это сделать невозможно. Например, тройка (b1r10b2) или тройка (b3r10b4) вполне семантиче-ски допустимы, а тройка (b4r10b1) вряд ли может считаться осмыс-ленной.

Рис. 1. Выходом из этого положения является задание допустимых отношений

между понятиями в рамках некоторой конкретной модели знаний. Пример 4. Для термов примера 1 и некоторых из отношений ρ, r1 - r15, пере-численных в табл. 1, правила, связанные с семантическими ограниче-ниями на употребление отношений при построении ППФ, можно изобразить в виде диаграммы, показанной на рис. 1. Стрелки, проведенные между множествами понятий, нагружены отношениями, которые могут между ними устанавли-ваться. Отметим, что эта диаграмма отображает лишь семантику построения ППФ в виде троек, т.е. описывает семантические правила лишь 1-го уровня. Затем нужно задать правила 2-го уровня, отражающие возможности введения отношений между тройками. Затем последуют правила 3-го уровня и т.д. Пример показывает, что решение проблемы построения семантических пра-вил требует больших усилий.

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

Столь же сложной является и проблема установления семантической эквивалентности двух выражений на ЯПЗ, т.е. установления их эквивалент-

Page 82: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

82

ности по смыслу. Подобная задача была проиллюстрирована в примере 3. Эта проблема известна в структурной лингвистике как проблема построения языка семантических представлений (СЕМП).

К ЯПЗ типа СЕМП предъявляются следующие требования. 1. Если фраза на естественном языке, по мнению пользующихся им,

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

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

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

В примере 3 была затронута еще одна проблема, связанная с семанти-кой ЯПЗ: описание некоторой ситуации может быть противоречивым. Фразы этого описания на ЯПЗ не будут совместимыми в рамках одного тек-ста. Проблема установления совместимости двух записей не менее трудна, чем проблема построения СЕМП. По существу, она сводится к построению СЕМП 2-го уровня. Вместо семантических правил соединения слов в фразе она исследует семантические правила соединения фраз в тексте. Приведен-ный ниже пример еще раз поясняет эту мысль. Пример 5. Даны две записи на ЯПЗ: ((b2ρi3)r3(b1ρi4)) и ((b2ρi3)r3(b1ρi8)). По-пробуем соединить эти две записи отношением r1 «быть одновременно». По-лученный текст явно противоречив. Судно «Беломорск» не может одновре-менно находиться на причалах 1 и 8. Если же вместо отношения r1 для соединения записей использовать отношение r2, то текст: (((b2ρi3)r3(b1ρi4))r2((b2ρi3)r3(b1ρi8))) будет семантически осмысленным.

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

Page 83: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

83

ческих правил для записей по типу диаграммы, приведенной на рис. 2-2, и текстов.

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

Примерами императивов являются слова и словосочетания: «вклю-чить», «проверить давление», «сбросить нагрузку» и т.п.

Императивы - это словесное выражение тех приказов, которые посту-пают от системы управления на объект управления или используются в са-мой системе управления при планировании будущих действий и экстраполя-ции их последствий. Множество императивов для реальной системы управ-ления всегда конечно (по крайне мере, для текущего состояния системы управления). Это множество обозначим здесь как Р = р1, р2,..., рh. Для ус-тановления связей между императивами и элементами других функциональ-ных классов используются ранее введенные отношения, а также несколько специально введенных отношений.

Примером такого специального отношения может служить отношение r16, смысл которого можно выразить как «выполнить действие». Пример 6. Обозначим через р1 императив «передвинуть». Тогда запись: ((b1ρi5)p1(b1ρi4)) имеет следующий смысл: «Портальный кран 2 передви-нуть на причал 1».

Квантификаторы служат для введения количественных и качествен-ных мер для понятий, отношений и императивов.

Примерами квантификаторов могут служить слова и словосочетания: «всегда», «для всех», «некоторые», «существуют такие, что», «очень редко», «быстро», «сильно» и т.д.

Множество качественных квантификаторов будем обозначать как Ҝ = Ҝ1, Ҝ2,..., Ҝd,... .

В реальных моделях это множество является конечным. Использование пере-

вернутых букв в обозначениях квантификаторов восходит к традиции мате-

матической логики, в которой два квантификатора (там они именуются

кванторами) «для всех» и «существует» обозначаются и . Не будем вы-

писывать синтаксические правила ЯПЗ для квантифи-каторов, а рассмотрим

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

Пример 7. Пусть Ҝ1 означает «очень часто», а Ҝ2 – «редко». Рассмотрим за-пись:

Ҝ1((b1ρi4)r11g3) & Ҝ2((b4ρi6)r12d2). Эта запись имеет следующий смысл: «Причал 1 очень часто свободен, а портальный кран 5 редко передвигается».

Page 84: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

84

Пример 8. Имеется текст «Судно «Свирь» быстро приближается к причалу, где уже стоят суда». Запишем сначала ту часть текста, которая стоит слева от слова «где»: ((b2ρi1)Ҝ3r6b1); здесь Ҝ3 соответствует квантификатору «быстро». Оставшаяся часть текста представим следующим образом:

(Ҝ4b2r3b1), где Ҝ4 – квантификатор «существуют такие..., что». Окончательно имеем: (((b2ρi1)Ҝ3r6b1)r1(Ҝ4b2r3b1)).

В этих примерах проиллюстрирована возможность ставить квантифи-катор непосредственно перед понятием или отношением (пример 8) или пе-ред ППФ (пример 7). Сами по себе качественные квантификаторы не имеют единственного (фик-сированного) смысла: их смысл целиком определяется смыслом связанного с ним выражения. Например, во фразе: «В лесу много волков» и «В лесу много муравьев» квантификатор «много» имеет совершенно различные количест-венные характеристики. В первом случае речь может идти о десятках живот-ных, а во втором – их количество наверняка определяется десятками тысяч. Проблема шкалирования квантификаторов далека еще от своего решения.

В отличие от качественных квантификаторов количественные кванти-фикаторы обладают весьма прозрачной семантикой. Следующий пример по-казывает их использование. Пример 9. Имеется текст: «У причала находятся три судна. На причале име-ется груз - лес в количестве 1000 тонн». Запишем этот текст на ЯПЗ:

(((b2r17(d3ρi9))r3b1)r1(((b3ρi2)r17(d3ρi10))r4b1)). В этой записи использованы следующие новые обозначения: r17 – отношение «объект-мера»; d3 – понятие-процесс, смысл которого можно передать сло-вами: «измерение, в результате которого получен ответ»; i9 и i10 – соответст-венно «три штуки» и «тысяча тонн». В этой записи квантификаторы не ис-пользовались. Однако это произошло за счет того, что количественные ха-рактеристики были включены в сами имена. Это на практике весьма неудоб-но, т.к. потребует введения огромного числа различных имен. Проще разре-шить приписывание количественных квантификаторов прямо соответствую-щим именам, которые будут иметь смысл: i*

9 – «штука» и i*10 – «тонна». В

этом случае запись исходного текста обретет вид: (((b2r17(d3ρ3i*

9))r3b1)r1(((b3ρi2)r17(d3ρ1000i*10)r4b1)).

Модификаторы (в отличие от квантификаторов) приписывают поняти-ям, отношениям и императивам некоторые характеристики, которые в них ранее не фиксировались. Примерами модификаторов в естественном языке являются слова и словосочетания: «сухой», «прошедший капитальный ре-монт», «аварийный» и т.д. Для обозначения модификаторов будем использо-вать элементы множества N = n1, n2,..., nl,.... Пример 10. Запишем на ЯПЗ текст: «Судно «Беломорск», прошедшее капи-тальный ремонт, не находится около причала 8. Причал 8 имеет ава-рийное состояние». Для модификаторов используем следующие обозначения:

Page 85: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

85

n1 – «прошедший капитальный ремонт», n2 – «аварийный». Теперь можно осуществить запись на ЯПЗ:

((n1(b2ρi3)) ř3(n2ρi8))). В этой записи ř3 означает отрицательное отношение r3. Смысл его – «не на-ходится в ε-окрестности». Пример 11. Рассмотрим текст: «Быстрая передвижка портального крана при-водит к аварии». Запишем его на ЯПЗ (отношение r14 из табл. 1 имеет смысл «быть причиной», n3 – «быстрый», а g4 есть понятие-состояние «авария»): ((b4r12(n3d2))r14g4). Не будем выписывать синтаксические правила для введе-ния модификаторов в записи на ЯПЗ, который предложен здесь. При по-строении реального языка для реальной системы управления эти правила пишутся довольно легко.

Кроме построенных шести функциональных классов в естественном языке имеются и другие классы. Как правило, при построении ЯПЗ исполь-зуются еще лишь два функциональных класса: модальности и оценки. К мо-дальностям, прежде всего, относятся такие слова и словосочетания, как «не-обходимо», «возможно», «следует учесть, что». К оценкам относятся качест-венные и количественные заключения о выгодности тех или иных действий (например, в соответствии с некоторым качественным или количественным критерием управления). Обозначим модальности буквами m1, а оценки – бук-вами oi. Пример 12. Имеется текст: «Портальный кран необходимо передвинуть к причалу». Используя обозначение для императива, введенное в примере 6, и обозначение m1 для модальности «необходимо», получим следующую запись: (b4(m1p1)b1). Пример 13. Запишем с помощью ЯПЗ текст: «Передвижка судна к причалу 1 полезна» (обозначение о1 использовано для оценки «полезно»): ((b1ρi4)r13(b2r12(o1d2))).

К модальностям часто относят и различные вероятностные оценки, как качественные («вероятно», «с большой вероятностью» и т.п.), так и количе-ственные («с вероятностью 0,5», «с вероятностью от 0,6 до 0,65»).

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

Page 86: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

86

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

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

2. Функциональные семантические сети

Функциональные семантические сети (ФСС) предназначены для созда-

ния моделей задач вычислительного характера, называемых вычислительны-ми моделями. Форма представления ФСС - двудольный граф.

Графическое представление задачи вычисления площади квадрата по известному периметру приведено на рис. 1: серым цветом выделены соот-ветствующие вершины-параметры и вершины-формулы.

Рис. 1.

С помощью такой ФСС можно решить все задачи, связанные с указан-ными параметрами квадрата, если формулы и все связи между ними зара-нее запрограммированы. Достаточно, например, через терминалы ЭВМ ввести такую директиву: вычислить площадь S квадрата, если задана сторо-на с. Этого достаточно, чтобы программа-планировщик построила путь от вершины S к стороне а и от нее к известному периметру p. На рис.1 серым

Page 87: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

87

цветом указан путь решения этой задачи.

Концептуальные графы. Одной из современных моделей представления знаний являются кон-

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

Обратимся к примеру. Ниже на рис. 2 изображен концептуальный граф предиката

Посылка(Жак_2,Мари_4,Книга_22), формализующего фразу «Жак посылает книгу Мари».

На рис. 3 приведен концептуальный граф логического представления той же фразы би-

нарными предикатами, т.е. граф, соответствующий формуле

Отправитель (Посылка_8, Жак_2)

Получатель (Посылка_8, Мари_4)

Объект (Посылка_8, Книга_22)

Элем (Посылка_8, посылки).

При графическом представлении бинарных предикатов круги иногда опускают, а имена

предикатов указывают на стрелках.

Рис. 2. Концептуальный граф

Рис. 3. Концептуальный граф логического представления бинарными предикатами

Page 88: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

88

Рис. 4. Концептуальный граф бинарного предиката

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

казано на рис. 4. Стрелки предикатов направлены от первого аргумента пре-диката (предикатное_имя) к имени предиката (Функция_ j ) и от имени пре-диката ко второму аргументу (значение_ j ). В записи слот-значение, (по-английски slot-assertion), имя предиката соответствует «имени слота», а зна-чение - «значению слота». Вообще в концептуальных графах «значение сло-та» соответствует некоторому концепту.

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

так и каждым экземпляром любого его подкласса.

Наследование в концептуальных графах

Примат часть хвост

Концептуальный граф. Класс.

Макака часть хвост

Наследование свойства подклассом.

Макака: Масюня часть хвост

Наследование свойства экземпляром

Page 89: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

89

3. ФОРМАЛЬНЫЕ И СЕМИОТИЧЕСКИЕ СИСТЕМЫ

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

Ф=<Т, Р, А, П>. (1)

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

Пример 1. На рис. 1, а показано множество Т, состоящее из единственного элемента - квадратика. Множество правил Р имеет следующий вид: 1. Квад-ратик есть ППС. 2. Если Ω - ППС и ω - любой квадратик, выделенный в Ω, то к ω можно присоединить еще один квадратик находящийся вы-ше или справа от ω (выделенный в Ω квадратик заштрихован). 3. Других ППС нет.

С помощью правил Р образуется множество ППС. Число их счетно. На рис. l,в показана одна из правильно построенных совокупностей данной сис-темы. Однако не любые совокупности допустимы правилами Р. Например, изображение «животного», которое показано на рис. 1, г, не может получить-ся с помощью квадратиков в результате применения правил Р. Покажем это. Выделим в этом

Page 90: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

90

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

1) Если а - любой элемент из Т1, то (а) есть ППФ. 2) Если β есть ППФ, то (β) также ППФ. 3) Если γ и δ являются ППФ, то (γ & δ), (γ V δ), (γ δ) и (γ δ) также являются ППФ.

4) Других ППФ нет (вместо часто употребляют , а вместо пишут или ).

Задание: показать, что в соответствии с такими синтаксическими правилами формула (((а) V (b)) h) является правильно построенной, а формула &) а таковой не является.

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

Последний компонент формальной системы - правила вывода П. Они служат для того, чтобы с их помощью из множества аксиом можно было по-лучать (выводить) другие ППС («теоремы»), которые не входят в начале процесса в множество А. Правила П имеют следующую общую форму запи-си: К |=>Q. Здесь К соответствует некоторой совокупности ППС, которые либо принадлежат А, либо уже были получены из А с помощью правил выво-да. Тогда Q есть совокупность ППС, которые выводятся на данном шаге про-цесса вывода. Те ППС, которые получаются из А с помощью правил вывода, образуют множество выводимых совокупностей (MBС) (множество выво-димых формул (МВФ)). На рис. 2 показано отношение между множеством ППС, множеством аксиом А и МВС. В частном (предельном) случае все три

б)

в)

Рис. 1.

Page 91: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

91

множества, показанные на этом рисунке, могут совпасть между собой. В силу свойств формальной системы все эти множества конечны либо счетны. Пример 3. Для системы, которая рассматривалась в примере 1, в качестве системы аксиом зададим две совокупности, изображенные на рис. 1,а. Пра-вило вывода (единственное) имеет вид: «Если ППС и β выведены, то выво-дима ППС, получаемая из них следующим образом: любые квадратики, один из которых входит в , а второй - в β, совмещаются между собой передвиже-нием этих ППС по плоскости без поворота. Полученная ППС выводима». На рис. 3, 6 показана одна ППС, выводимая из исходных аксиом. Заштрихован-ные квадратики соответствуют местам наложения. Пример 4. Вернемся к примеру 2. Введем следующую систему аксиом: 1) ((а а) а); 3) ((а b) (b а)); 2) (а (а а)); 4) (( а b) ((с а) (сb))) Введем два правила вывода. Первое из них - правило подстановки формули-руется следующим образом: «Еcли Q - выведенная формула, то, подставляя вместо каждого вхождения некоторого элемента в Q произвольную формулу, входящую в множество ППФ, вновь получим выводимую фор-мулу». Пример использования правила подстановки. Пусть выведена формула ((а&(b))(b)). Тогда, подставив вместо b вторую аксиому (п. 2) из системы, получим формулу ((а & ((a (а а)))) (а (а а))), которая согласно правилу подстановки также будет выводимой.

В качестве второго правила вывода возьмем правило заключения или «модус поненс». Это правило формулируется следующим образом:

«Если Q и QL - выводимые формулы, то формула L также выводима». Пусть, например, в формальной системе уже выведены формулы (а) и ((а) (b h)). Тогда согласно правилу заключения в этой системе будет выводима и формула (b h).

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

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

Page 92: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

92

приходящих от различных датчиков подсистем объекта управления.

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

Введем множество Г=γi, элементы которо-го будем называть значениями. Для каждого эле-мента из Т укажем некоторое подмножество Г, из которого он может, принимать свои значения. Кроме Г зададим еще систему правил интерпре-тации В, роль которых заключается в приписыва-нии значений ППС, если всем базовым эле-

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

А

МВС

Множество ППС

а) б)

Рис. 3

Рис. 2

Page 93: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

93

Таблица 1

а b а b а & b а V b а b а b

Л

Л

И

И

Л

И

Л

И

И

И

Л

Л

И

Л

И

Л

Л

Л

Л

И

Л

И

И

И

И

И

Л

И

И

Л

Л

И

Заметим, что выводимость или невыводимость формул в формальной системе никак не зависит от интерпретации, см пример 6 ниже. В этом смыс-ле можно говорить о внешнем по отношению к формальной системе харак-тере интерпретации. Пример 6. Вернемся к примеру 4. Используя правила интерпретации из примера 5, найдем интерпретацию аксиом этого примера. Для первой и третьей аксиом имеем:

1) ((И И) И) является истиной; ((Л Л) Л) является истиной; 3) ((И И) ((И И)) является истиной; ((И Л) (Л И)) является истиной; ((Л И) (И Л)) является истиной; ((Л Л) (Л Л)) является истиной.

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

Формальная система, описанная в примерах 2, 4 и 5, в математической логике называется исчислением высказываний. Для нее доказана теорема, ко-торая утверждает, что система аксиом и правил вывода, предложенная в примере 4, и правила интерпретации, предложенные в примере 5, обладают тем свойством, что какова бы ни была ППФ, которая является тождественно истинной, для нее найдется такая конечная последовательность применения правил вывода, что она будет выведена. Другими словами, МВФ для исчис-ления высказываний содержит все тождественно истинные формулы, и толь-ко их.

Page 94: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

94

Рассмотрим еще один пример формальной системы с интерпретацией.

Пример 7. Множество базисных элементов задано в виде совокупности 4-х множеств:

Т = Т1UT2 UТ3UТ4, где Т1 = F, Т2 , &, ∨, ⊃, +, , ), ( , Т'3 = 0, 1,..., Т"3 = п, т, n1, m1,..., T3=T'3 \ T "3, множество Т4 состоит из малых латин-ских букв с индексами и без индексов. Буквы m и п в T4 не входят. Синтакси-ческие правила имеют_вид:

1. Любой элемент Т4 есть ППФ.

2. Если а - элемент Т4, то ā есть ППФ.

3. Любое выражение вида Flβ, где l - произвольный элемент из Т3, а β - элемент T4 или ППФ, полученная по второму правилу (п. 2), есть ППФ.

4. Любое выражение вида Flβ есть ППФ.

5. Выражения вида F(l+s)β, где l и s - элементы из T3, есть ППФ.

6. Если γ и δ суть ППФ, то (γ&δ), (γVδ) и (γ δ ) также ППФ.

7. Любые выражения вида (l*), где l* - элемент Т"3 и l* входит в ППФ ε, полученную только за счет использования первых шести правил (п. 1-6) из Р, являются ППФ.

8. Если х - ППФ, то Flх, где l - элемент из T3, также ППФ.

9. Других ППФ нет. Исходя из этих правил, нетрудно обнаружить, что, например, формулы а2F5b, (n5)Fn5d2, (Fnh Fmh) принадлежат множеству ППФ.

Множество аксиом этой формальной системы включает все аксиомы исчисления высказываний (см. аксиомы, приведенные в примере 4); кроме того, в него включено еще шесть ППФ:

1) (Fµŋ Fµŋ); 2) (Fµŋ Fµŋ); 3) ((Fµŋ ) (Fµŋ Fµ)); 4) (F0ŋ ŋ); 5) (Fµ1Fµ2ŋ F(µ1 + µ2)ŋ); 6) (Fµ1(µ2)Fµ2ŋ (µ2)Fµ1Fµ2ŋ);

здесь µ, µ1 и µ2 - произвольные элементы из Т3; ŋ и - произвольные эле-менты из T4.

Правилами вывода этой системы являются правила из примера 4, к ко-торым добавлено следующее правило: ε |Flε, где l - произвольный эле-мент из Т3.

Приведем интерпретацию введенной формальной системы. Множество Г1, для интерпретации элементов множества Т1 состоит из одного элемента, который читается как «будет». Множество Г3 состоит из тех же элементов,

Page 95: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

95

что и Т3. Эти два множества находятся во взаимно-однозначном соответст-вии. Таким образом, элементы множеств Т1 и Т3 имеют постоянную интер-претацию. Смысл интерпретации элементов из Т3 может быть передан слова-ми: «в момент времени l». Множество Т4 состоит из двух элементов О, Н, читаемых как «отсутствие события» и «наличие события». Первые четыре элемента множества Т2 интерпретируются так же, как в примере 5; скобки не интерпретируются, а играют роль разделителей в ППФ. Элемент «+» интер-претируется как сложение двух натуральных чисел, а - как «существует та-кой момент времени». При такой интерпретации ППФ вида Fl, или (n)F(4+n)а приобретают следующий смысл: «событие будет происходить в момент времени l», «существует такой момент времени n, что в момент времени 4 + n будет происходить событие ». Таким образом, интерпретация формальной системы делает ее системой высказываний о времени. Такая временная формальная система была предложена А. Прайором в качестве временной логики для мгновенных событий, расположенных на относитель-ной временной шкале.

Из рассмотренных примеров вытекают следующие

свойства формальных систем дедуктивного типа:

1. Эти системы представляют собой автономные генераторы выводи-мых формул. При заданных аксиомах и правилах вывода они автономно и нецеленаправленно генерируют множество выводимых совокупностей (формул).

2. Особенностью ФСистем дедуктивного типа является независимость генерации МВС от порядка получения выведенных совокупностей. В каком бы порядке они ни получались, выводимые формулы не могут оказатся не-выводимыми.

3. В ходе вывода аксиомы и правила вывода остаются неизменными. 4. На выбор аксиом в ходе вывода оказывают влияние синтаксические

правила, т.к. аксиомы являются ППФормулами. 5. Интерпретация формальной системы является неизменной при фик-

сированных правилах В. Указанные свойства ФСистем дедуктивного типа (вывод осуществля-

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

Page 96: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

96

вания может меняться вид правил вывода. Так вместо формальной детерми-нированной системы может рассматриваться вероятностная ФСистема, в которой правила вывода имеют вид:

р1а1; р2а2;…; рmаm q. (2)

Смысл таких правил вывода: при наличии вероятностей р1, р2,..., рт того, что формулы а1, а2,..., ат уже выведены, формула выводится с вероятностью q. Работа адаптатора при подобных правилах вывода может заключаться, на-пример, в изменении значения q в ходе функционирования системы управ-ления.

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

В семиотических системах интерпретатор при формировании модели знаний, подобно адаптатору, может менять правила вывода системы F; кроме того, он производит на некоторых шагах работы семиотической системы смену системы аксиом. Роль аксиом в таких системах играют определенные факты или закономерности, присущие объекту управления и среде, устанав-ливаемые интерпретатором. Таким образом, в семиотических системах не выполняются основные свойства формальных дедуктивных систем (свойства 1-3). Кроме того, возможно изменение, как синтаксических правил, так и правил интерпретации. Название «семиотические системы» использовано для систем (в том числе, систем управления), в которых присутствуют мо-дель знаний и интерпретатор, не случайно. Этим названием подчеркивается близость таких систем к семиотическим (знаковым системам), изучаемым в семиотике.

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

M=<Z, R>; (3)

здесь Z - множество знаков; R - множество отношений между ними.

Пример 8. Для регулирования уличного движения на улицах и дорогах при-меняется специальная система знаков. На рис. 4 показаны три из них. Син-таксис этих знаков предопределен их формой, размерами, изображением и цветовым решением. Семантика их определяется следующим образом: «Въезд воспрещен», «Остановка не более чем на 5 мин», «Место паркинга». Прагматика этих знаков для водителей автомобилей и других транспортных средств очевидна: первые два знака запрещают въезжать и стоять более 5 мин; нарушение этих запретов приводит к наказанию в виде штрафа или ка-

Page 97: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

97

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

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

Рис. 4

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

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

Естественный язык представляет собой сложно организованную се-

Page 98: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

98

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

Рассмотрим несколько высказываний. 1. «Клапан 2 открыт». 2. «Ра-бочий Иванов отсутствует». 3. «Автомобиль МКЩ 06-33 сломан». Несмотря на то, что эти фразы различны, в них чувствуется нечто общее. Эта общность заключена в структуре фразы. Можно условно задать эту структуру в виде N-I-G, где N - множество всех существительных единственного числа, име-нительного падежа, I - множеcтво идентифи-каторов (имен), G - множество глаголов совершенного вида, страдательного залога, третьего лица, прошед-шего времени. Зададим множество Т=Т1Т2Т3. Подмножества содержат слова русского языка, относящиеся к множествам N, I и G соответственно. В качестве синтаксического правила для порождения правильных (синтаксиче-ски) предложений используем предложенную структуру фразы N-I-G. Если порождать ППС в этой формальной системе, то при наличии в Т1, T2, и Тз со-ответствующих слов будут порождены и те три фразы, которые были приве-дены выше. Кроме того, система породит и много других фраз типа: «Авто-мобиль Иванов открыт», «Клапан Иванов отсутствует». Некоторые из этих фраз можно заподозрить в отсутствии «смысла», но они все будут удовлетво-рять грамматическим (синтаксическим) нормам русского языка.

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

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

Page 99: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

99

ков не удалось с необходимой полнотой описать на семантическом уровне из-за огромной семантической омонимии.

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

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

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

Дополнение.

ФОРМАЛЬНЫЕ ГРАММАТИКИ

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

T = везёт, доставляет, контейнер, груз, машина, мощная, грузовая, большая; N = С, П, Д, ГП, ГС; ПР;

здесь С - сказуемое, П - подлежащее, Д - дополнение, ГП - группа подлежащего, ГС - группа сказуемого; ПР - предложение.

S = ПР – предложение. 1. ПР => (ГП) (ГС); 2. ГП => (О) (П); 3. ГС => (С) (Д); 4. О => (большая, мощная, грузовая); 5. П => (машина); 6. С => (везёт, доставляет);

Page 100: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

100

7. Д => (контейнер, груз). Построим некоторые цепочки языка:

ПР =(1)> (ГП)

(ГС) =(2)> (О) (П)

(ГС) =(3)> (О) (П) (С)

(Д) =(4)> большая (П) (С)

(Д) =(5)> большая машина везёт контейнер.

Последняя цепочка вывода является заключительной и представляет собой предложение естественного языка.

Рис. 1. Маркер структуры составляющих.

Аналогично можно вывести "грузовая машина доставляет груз" и ряд других. Заме-тим, что в данном примере нетерминальными символами являются синтаксические кате-гории. Пусть V - непустое конечное множество символов (элементов), называемых слова-рём (алфавитом). В качестве символов могут использоваться буквы, слова, математиче-ские знаки, геометрические образы и т. п. Произвольную конечную последовательность символов называют цепочкой в словаре V. Число символов в цепочке называют её длиной и обозначают |ω|. Цепочки получаются с помощью операции конкатенации (соединения). Например, ω = α1α2α3, где αi V. Множество всевозможных цепочек в словаре V называют языком. Языки задаются грамматикой - системой правил, порождающих все цепочки данного языка и только их. Различают распознающие, порождающие и преобразующие грамматики.

Формальная грамматика называется распознающей, если для любой рассматри-ваемой цепочки она решает, является ли эта цепочка правильной в смысле данной грамма-тики. Формальная грамматика называется порождающей, если может построить любую правильную цепочку. Формальная грамматика называется преобразующей, если для лю-бой правильно построенной цепочки она строит её отображение в виде правильной цепоч-ки. Рассмотрим класс порождающих формальных грамматик. Порождающей грамма-тикой называют четвёрку C = (T, N, P, S), где T - конечное непустое множество символов, называемых терминальным (основным) словарём; N - конечное непустое множество сим-волов, называемых нетерминальным (вспомогательным) словарём; P - конечное непустое множество правил вывода (правил переписывания, продукций); S - начальный символ.

ПР

ГС

О П С Д

большая машина везёт контейнер

Page 101: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

101

Терминальный словарь представляет собой набор исходных символов, из которых строятся цепочки, порождаемые грамматикой; нетерминальный словарь - набор вспомо-гательных символов, обозначающих классы исходных символов. Конечное множество V = N U T - есть полный словарь грамматики Г. Правило вывода - конечное непустое мно-жество двухместных отношений (продукций) вида φ → ψ, где φ и ψ - цепочки в словаре V, а "→" интерпретируется как "заменить на". Цепочка ω непосредственно выводима из цепочки ω’ с помощью правила φ → ψ, если ω = α1φα2, ω’ = α1ψα2, φ → ψ Є P. Последо-вательность цепочек φ = φ0, φ1,…, φn = ψ, n ≥ 1, называют выводом ψ из φ, если для каж-дого i, 0 ≤ i ≤ n, цепочка φi+1 непосредственно выводима из φi. Длина вывода равна числу применений правил вывода. Вывод цепочки ψ считается законченным, если не существует цепочки, которая следует из ψ. Начальный символ S - это выделенный нетерминальный символ, обозначающий класс языковых объектов, для которых предназначена данная грамматика. Начальный символ иногда называют целью грамматики или её аксиомой. При описании естественного языка в терминах теории формальных грамматик тер-минальные символы интерпретируются как слова или морфемы - мельчайшие осмыслен-ные единицы языка (корни, суффиксы, и т. п.); нетерминальные символы - как названия классов слов и т. п. Цепочка символов обычно интерпретируется как предложение естест-венного языка. Рассмотрим пример. Пример 2. Пусть задана грамматика:T = a, b, N = S, A, B, S = S, P=1. S→aB; 2. S→bA; 3. A→ab; 4. A→bAA; 5. A → a; 6. B → bS; 7. B → aBB; 8. B→b. Типичные выводы предложений: 1. S - (1)→ aB - (8)→ ab. 2. S - (1)→ aB - (6)→ abS - (2)→ abbA - (5)→ abba. 3. S - (2)→ bA - (5)→ ba. 4. S - (2)→ bA - (4)→ bbAA - (5)→ bbaA - (5)→ bbaa.

Вывод можно также описать структурным деревом, удовле-творяющим следующим требованиям: 1) каждая вершина дерева имеет в качестве метки символ из V; 2) корень дерева, т. е. вершина, в которую не входит ни одна дуга, имеет метку S; 3) Если вершина с некоторой меткой D имеет хотя бы одну подчинённую вершину, то D N; 4) Если некоторые n вершин с метками D1,…, Dn подчинены непосредственно вершине с меткой D, то в P существует правило D → D1,…, Dn.

Структурное дерево для примера 1 изображено на рис. 1. В лингвистике слова или последовательности, которые являются эле-ментами какой-либо другой конструкции, называют "составляю-щими", поэтому структурное дерево называют "маркером структу-ры составляющих", или С-маркером. В теории формальных грамматик различают 4 типа языков, порождаемых четырьмя типами грамматик. Грамматики выделяются путём наложения последовательно усили-вающихся ограничений на систему правил P. Грамматики типа 0 - это грамматики, в которых не накладывается никаких огра-ничений на правила вывода φ → ψ, где φ и ψ могут быть любыми цепочками из V. Грамматики типа 1 - это грамматики, в которых содержатся правила φ → ψ, удовлетворяющие условиям φ = φ1Aφ2, ψ = φ1ωφ2, где A - нетерминальный символ, φ, φ1, φ2, ψ, ω - цепочки символов из словаря V. Таким образом, в грамматиках типа 1 отдель-ный нетерминальный символ A переходит в непустую цепочку (A можно заменить на ω)

Page 102: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

102

только в контексте φ1, φ2. Грамматики типа 1 называют контекстными или контекстно-зависимыми. Грамматики типа 2 - это грамматики, в которых допустимы лишь правила вида A → ω, где A N, ω - любая непустая цепочка символов из V. Грамматики типа 2 называют "бесконтекстными" или "контекстно-свободными" (КС). Грамматики типа 3 имеют правила вида A → aB либо A → b, где A, B N; a, b T. Заметим, что A, B, a, b являются одиночными (не цепочками) символами соответствующих словарей. Языки, которые задаются грамматиками этого типа называют "автоматными" или "регулярными". Кроме рассмотренной существуют и другие класси-фикации грамматик. Рассмотрим наиболее важные для дальнейшего понимания грамма-тики. "Неукорачивающие" грамматики - это грамматики, в которых для любого правила φ → ψ справедливо соотношение |φ| ≤ |ψ|. Таким образом, в результате использования правила вывода получают цепочку, длина которой не меньше длины исходной цепочки. Пусть грамматика задана следующим образом:

T = a, b, N = S, S = S, P = S → aa, S → bb, S → aSa, S → bSb. Очевидно, что для любой исходной цепочки применение данных четырёх правил не по-зволит получить цепочку короче исходной.

Три парадигмы представления знаний: логическая, структурная и процедурная. Логическая парадигма отождествляет знание с теорией, т. е. теорией первого поряд-

ка. Структурная парадигма уделяет особое внимание организации фактов, составляю-

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

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

Page 103: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

103

Лекция 12

Выводы на знаниях

1. Выводы в СПЗ - системах представления знаний. Система представления знаний состоит из базы знаний (с механизмом

вывода) и базы данных: СПЗ = <БЗ, МлВ, БД>. База знаний содержит кван-ты декларативных знаний (опосредствованных в данных, хранящихся в па-мяти ЭВМ) и процедурных знаний (образующихся в результате использова-ния алгоритмов и программ) об объектах, предметах, явлениях, процессах вообще, безотносительно к их конкретности. Эти кванты знаний реализуют-ся в виде МПЗ (например, специальных помеченных графов - разнообраз-ных семантических сетей и фреймов). База данных содержит конкретные данные и характеристики квантов знаний, относящихся к той или иной кон-кретной ситуации в предметной области.

Семантические сети

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

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

Page 104: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

104

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

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

Различие между вершинами сети (представление экземпляра и пред-ставление класса) приводит к существованию трех типов дуг: • дуга, соединяющая два экземпляра, соответствует утверждению, • дуга между классом и экземпляром показывает пример элемента класса, • дуга, связывающая два класса, определяет бинарное отношение классов.

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

Основой для определения того или иного понятия является множество его отношений с другими понятиями. Обязательными отношениями являют-ся:

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

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

Page 105: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

105

• связь "есть-часть" показывает, что объект содержит в своем составе разно-родные компоненты (объекты), не подобные данному объекту.

Пример семантической сети для описания структуры понятия "юриди-ческое лицо" приведен на рис. 1.

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

С помощью связи "есть-нек" можно показывать ссылку на экземпляр.

Юридическое лицо

Организация Личность

Основные фонды Предприятие Оборотные средства Исполнители Рабочий Студент Завод “Салют” Петров Иванов

Рис. 1. Пример семантической сети для отображения связи понятий.

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

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

"Директор завода "САЛЮТ" остановил 25.03.96 цех 4, чтобы заменить

оборудование".

Page 106: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

106

25.03.96

время агент цель ДИРЕКТОР объект место объект ЦЕХ4 “САЛЮТ” ОБОРУДОВАНИЕ

Рис. 2. Пример семантической сети для отображения связи событий.

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

2. БАЗЫ ЗНАНИЙ

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

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

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

База знаний содержит: • сведения, которые отражают существующие в предметной области законо-мерности и позволяют выводить новые факты, справедливые в данном со-стоянии предметной области, но отсутствующие в БЗ (или в БД), а также прогнозировать потенциально возможные состояния предметной области; • сведения о структуре самой ИС и ее БЗ (и БД) (метаинформация, метазна-ния);

остановил заменить

Page 107: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

107

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

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

Продукционная модель знаний Продукционная модель, ПМ, состоит из трех основных компонентов:

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

ПМ =<Р, РП, МлВ>. Каждое правило А → В содержит части: условную - А и заключительную - В. В условной части правила находится один или несколько фактов (условий), соединенных логической операцией "И". В заключительной части правила находятся факты, которые необходимо дополнительно сформировать в РПа-мяти, если условная часть правила является истинной.

Пример 1. Предположим, что в рабочей памяти хранятся следующие факты: • доля выборки записей равна 0,09; • ЭВМ - PC XT. Правила-продукции БЗнаний имеют вид: 1. Если метод доступа индексный, то СУБД- dBASE 3. 2. Если метод доступа последовательный, то СУБД - dBASE 3. 3. Если доля выборки записей <0,1, то метод доступа - индексный. 4. Если СУБД - dBASE 3 и ЭВМ - PC XT, то специалист-программист - Ива-нов.

Механизм вывода сопоставляет факты из условной части каждого пра-вила с фактами, хранящимися в рабочей памяти. В примере 1 сопоставление условия правила 3 с фактами из рабочей памяти приводит к добавлению но-вого факта "Метод доступа - индексный" и исключению правила 3 из списка применяемых правил. С учетом нового факта становится справедливой ус-ловная часть правила 1, и в рабочей памяти появляется факт "СУБД - dBASE 3". Далее становится применимым правило 4, что приводит к фиксации в ра-бочей памяти факта "Программист - Иванов”. В этот момент дальнейшее применение правил невозможно, и процесс вывода останавливается (пример показывает, что применимость каждого правила из базы знаний в процессе вывода вовсе не обязательна).

Page 108: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

108

Новые факты, полученные механизмом вывода: • метод доступа - индексный, • СУБД-dBASE З. • программист - Иванов. В примере 1 для получения вывода правила применялись к фактам, за-

писанным в рабочей памяти, и в результате применения правил добавлялись новые факты. Такой способ действий называется прямым выводом. Возмо-жен также обратный вывод целей. В качестве цели выступает подтвержде-ние истинности факта, отсутствующего в рабочей памяти. При обратном вы-воде исследуется возможность применения правил, подтверждающих цель, необходимые для этого дополнительные факты становятся новыми целями и процесс повторяется. Предположим, что в примере 1 запрос цели имеет вид: ? "программист - Иванов". Эта цель подтверждается правилом 4. Необходимые для правила 4 факты: "ЭВМ - PC XT" и "СУБД - dBASE 3". Первый из них присутствует в рабочей памяти, а второй становится новой целью. Для этой цели требуется подтвер-ждение правила 1 или правила 2. Факт-условие правила 2 не содержится в РПамяти и не является заключением существующих правил. Поэтому данная ветвь обратного вывода обрывается. Для применения правила 1 необходим факт "Метод доступа - индексный", он является заключением правила 3, а условие правила 3 соблюдается (в РПамяти хранится факт "Доля выборки за-писей равна 0.09"). В итоге первоначальная цель "программист - Иванов" признается истинной.

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

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

Page 109: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

109

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

В примере ниже введены предикаты: ruk(X,Y) - для представления в базе знаний факта, что X является непосред-ственным руководителем для Y, nach(X,Y) - для представления в базе знаний факта, что X является руководи-телем для Y, printl(Q,S) - для печати всех руководителей сотрудника S. Predicates ruk(symbol,symbol) nach(symbol,symbol) print 1 (symbol,symbol) Goal write("Введите фамилию сотрудника"), nl, readln(S), write("Cпиcoк начальников"), nl, write("для ", S), nl, print 1(Q, S). Clauses ruk("Петров","Иванов").

ruk("Петров","Смирнов").

ruk("Яшин","Петров").

nach(X,Y) :- ruk(X,Y).

nach(X,Y) :- ruk(X,Z),nach(Z,Y).

print1(Q,S):- nach(Q,S),write(Q),nl,fail.

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

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

Page 110: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

110

Фреймы. С помощью фреймов представляют процесс систематизации знаний в

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

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

Перечислим параметры слотов. Имя слота. Каждый слот должен иметь уникальное имя во фрейме, к которо-му он принадлежит. Имя слота в некоторых случаях может быть служебным. Среди служебных имен отметим имя пользователя, определяющего фрейм; дату определения или модификации фрейма; комментарий. Указатель наследования. Он показывает, какую информацию об атрибутах слотов во фрейме верхнего уровня наследуют слоты с теми же именами во фрейме нижнего уровня. Приведем типичные указатели наследования: S (тот же). Слот наследуется с теми же значениями данных; U (уникальный). Слот наследуется, но данные в каждом фрейме могут при-нимать любые значения; I (независимый). Слот не наследуется. Указатель типа данных. К типам данных относятся: FRAME (указатель) - указывает имя фрейма верхнего уровня; АТОМ (переменная), TEXT (текстовая информация), LIST (список), LISP (присоединенная процедура).

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

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

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

Фрейм ROOT является стандартным фреймом, все другие фреймы под-чинены ему.

Page 111: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

111

Слот АКО используется для установления иерархии фреймов (указыва-ет на фрейм верхнего уровня).

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

Если запускается присоединенная процедура COMPDATE фрейма FAM1, она сравнивает текущую дату TODAY и дату окончания работы ENDDATE; в случае наступления срока окончания работы слот FLAG в вы-шестоящем фрейме ТЕМА1 получает значение 1.

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

Каждая присоединение процедура (например, процедура СОМР1 фрейма ТЕМА1) анализирует атомы FLAG своего фрейма и, если все они равны передает в фрейм DEP значение FLAG, равное 1.

Обращение системе фреймов ROOT позволяет определить наступление сроков окончания работ сотрудниками отдела.

ROOT ————DEP ——TEMA1 FAM1 FAM2 FAM3 ——TEMA2 ——— FAM4 ——— FAM5 ——— FAM6 ——— FAM7 ——— FAM8 а)

Page 112: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

112

Имя слота Указатель Указатель Значение

наследования типа слота

FRAME-NAME: DEP АКО (U) ROOT FRAME ROOT DESINF (U) ROOT TEXT (ОТДЕЛ 23) DATE (U) ROOT LIST ТЕМА (I) TOP LIST (TEMA1TEMA2) TEMA1 (I) TOP LIST NIL TEMA2 (I) TOP LIST NIL FLAG1 (I) TOP ATOM FLAG2 (I) TOP ATOM LOGIC (U) TOP LISP MAIN FRAME-NAME: TEMA1 AKO (U) ROOT FRAME DEP DESINF (U) ROOT TEXT (КОНСТРУИРОВАНИЕ ПЛЕЕРА) DATE (U) ROOT LIST FAM (I) TOP LIST (FAM1 FAM2 FAM3) FAM1 (I) TOP LIST NIL FAM2 (I) TOP LIST NIL FAM3 (I) TOP LIST NIL FLAG1 (I) TOP ATOM FLAG2 (I) TOP ATOM FLAGS (I) TOP ATOM LOGIC (U) TOP LISP COMP1 FRAME-NAME: FAM1 AKO (U) ROOT FRAME TEMA1 DESINF (U) ROOT TEXT (ЛЕНТОПРОТЯЖНЫЙ МЕХАНИЗМ) DATE (U) ROOT LIST TODAY (I) TOP ATOM ENDDATE (I) TOP ATOM 02.04.91 LOGIC (U) TOP LISP COMPDATE б) Рис. 4. Пример базы знаний фреймового типа: а - иерархия фреймов; б - значения слотов

Фреймовые системы обеспечивают ряд преимуществ по сравнению с продукционной моделью представления знаний; • знания организованы на основе концептуальных объектов; • допускается комбинация представления декларативных (как устроен объ-ект) и процедурных (как взаимодействует объект) знаний; • иерархия фреймов вполне соответствует классификации понятий, привыч-ной для восприятия человеком; • система фреймов легко расширяется и модифицируется

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

Page 113: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

113

Семантические сети для представления знаний

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

Пример семантической сети, отображающий подчиненность сотруд-ников в отделе, приведен на рис. 5,а. Связи показывают подчиненность пер-вого сотрудника. Остальные сотрудники отдела связываются через вершины сети связями типа "руководит 2", "руководит 3" и т.д. Вопрос "Кто руководит Серовым?" представляется в виде сети, показанной на рис. 5,б. Сопоставле-ние общей сети с сетью запроса начинается с фиксации вершины "руково-дит", имеющей ветвь "объект", направленную к вершине "Серов". Затем про-изводится переход по ветви "руководит", что и приводит к ответу "Петров".

есть-нек есть-нек

руководит есть-нек

объект есть-нек

а

руководит

объект

б

Рис. 5. а - семантическая сеть; б - сеть запроса для логического вывода

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

Модели знаний - продукционная, фреймовая и модель семантических

сетей - обладают практически равными возможностями представления зна-ний.

Дополнительно каждая модель знаний содержит средства усиления этой "базовой" конфигурации:

Руководит ?

человек сотрудник

?

Серов Е.С.

Руководит 1

Петров С.К.

Серов Е.С.

Page 114: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

114

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

3. Выводы на знаниях

Выводы на знаниях, представленных семантическими сетями. Одним из средств вывода при работе со знаниями, представленными

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

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

Фреймовые системы относят к процедуральной форме представления

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

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

Page 115: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

115

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

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

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

Выводы на знаниях, представленных продукциями.

При логическом (в широком смысле) подходе утверждения представ-

ляются в виде формул некоторой логики - классической, модальной, много-значной, нечеткой и т.п. Логический подход позволяет применить развитый аппарат вывода новых утверждений (фактов) на основе име-ющихся в БЗ. Здесь гарантируется правильность вывода, а в случае его невозможности - установление причины затруднения. Последнее свойство используется при поддер-жании непротиворечивости баз данных (сравнение: в случае семан-тических сетей обеспечить это свойство трудно). Результат вывода интерпре-тируется на естественном языке пользователя. Чаще всего используются про-дукционные системы с конечным набором правил вывода вида

если А1, А2,..., АN то В (если выполняются все условия от A1 до AN, то следует В или следует вы-полнить действие B). Часть правила после «если» называется посылкой (ус-ловием), а после «то» - заключением (действием, выводом). Антецедент (по-

Page 116: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

116

сылка) правила А (или А1, А2,..., АN) представляет собой образец ситуации, когда правило можно (нужно) применять.

Условия А1, А2,..., АN называют обычно фактами. С помощью фактов описывается состояние (начальное или текущее) предметной области. Факты бывают всегда истинными, всегда ложными (такие факты тоже зачастую нужны) либо правдоподобными, в последнем случае истинность факта до-пускается с некоторой степенью уверенности. Итоговое условие можно рас-сматривать как образец ситуации, в которой следует выполнять указанное действие. Действие В одновременно трактуется как добавление нового ис-тинного факта в описание текущего состояния процесса вывода. Правила описывают связи (например, причинно-следственные) между фактами (при необходимости - и между правилами). Имея такое описание, его не трудно ввести в ЭВМ. Для этого достаточно организовать базу фактов и базу правил и построить интерпретатор базы правил, который по описанию текущего состояния ПО (предъявленным ему фактам) выводил бы заключения из этих фактов. На этой общей идее и построены продукционные системы, см. рис. 1.

Рис. 1. Структура продукционной системы.

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

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

Рабочая память

Интерпре-татор правил

Память фактов

Память правил

Выбор пра-вил и данных

База знаний

запро-выход

вход

данные

Page 117: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

117

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

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

Преимущества продукционных систем: •модульность - каждое правило описывает небольшой, относительно

независимый фрагмент знаний, •инкрементность - возможность добавления новых правил относи-

тельно независимо от других правил, •удобство модификации БЗ как следствие модульности и инкрементно-

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

Page 118: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

118

Лекция 13

Дедуктивный и абдуктивный выводы.

1. Логика и правила вывода.

Сначала кратко скажем о логике классической и логиках неклассиче-ских).

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

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

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

Логические ЯПЗ - это, прежде всего, те модели, которые выражены на языке классической формальной логики. Начнем с примера. Равенство 2-х сторон треугольника влечет равенство хотя бы 2-х его углов -

“общее”, поэтому (следовательно, в частности и т.п.)

равенство 3-х сторон треугольника влечет равенство 3-х его углов - “ част-ное”;

Page 119: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

119

На языке (почти формальном) это же можно записать так: равно(сторона1, сторона2) - угол и - угол (такие, что выполняется)

равно(,). Можно записать еще формальней: R(s1, s2) R(,), здесь R - 2-х ме-стный предикат, выражающий в данном случае отношение равенства: s1= s2, =. Как видим, осмысленное (для нас, как для интепретаторов такого рода выражений) высказывание “равенство 2-х сторон треугольника влечет равен-ство хотя бы 2-х его углов” c помощью такого ЯПЗ как язык символической (математической) логики переведено здесь в чисто синтаксическую форму “R(s1, s2) R(,)”. А с последней можно работать теперь также по чисто синтаксическим правилам, вовсе не обращаясь ни к какому смыслу, например, по такому правилу (где означает “равносильно”): R(s1, s2) R(,) R(s1, s2) (, ) R(,) R(s2, s1) (, )

R(,). Классическая логика - это, прежде всего, логика дедуктивного вывода -

вывода “от общего к частному”. “Общее” то, что есть у каждого предмета (у всех предметов) рассматриваемого класса предметов (в примере выше - это класс всех треугольников – “мир треугольников”; ниже - это класс всех тел как их понимают в физике). Поэтому, если “общее” истинно, то истинно и “частное”:

все тела притягиваются друг к другу - большая посылка - “общее”, планета Земля и звезда Солнце – тела - малая посылка - “частное”,

поэтому (следовательно) Земля и Солнце притягиваются друг к другу - “заключение, вы-

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

вода - тело, поэтому (следовательно)

вода при нагревании расширяется - “заключение, вывод”. Этот вывод истинен (неоспоримый факт, по крайней мере, в рамках его обычного рассмотрения в физике).

Тела при охлаждении сжимаются (уменьшаются в объеме), вода – тело, следовательно,

вода при охлаждении сжимается - “заключение, вывод”.

Page 120: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

120

Этот вывод - оспоримый вывод (не факт в том смысле, что он не истинен, ложен).

Тела под давлением сжимаются (уменьшаются в объеме), вода - тело, следовательно, вода под давлением сжимается.

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

Все птицы имеют крылья. Птицы летают, махая крыльями.

Пингвины и страусы имеют крылья и машут ими. Значит, пингвины и страусы летают (?)

Все знают, что такое “куча песка”, так что одна песчинка - это, конечно

же, - не куча песка. Все также знают, что если удалить одну песчинку из кучи, то куча останется кучей (песка). Все знают, что если удалить вторую пес-чинку из кучи, то куча также останется кучей (песка). Давайте удалять пес-чинку за песчинкой. Через какое-то время останется одна песчинка. Когда же исчезла куча песка?

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

Модус поненс (МП) - modus ponens утверждает, что если истинно А и истинно АB, то истинно B.

Пример. Пусть удалось доказать, что “в ромбе диагонали перпендику-лярны” - А, и из А вывести B - “в квадрате диагонали перпендикулярны”; то-гда, имея сначала А и А B как связанные в этой импликации, где В зави-сит от А, получаем согласно МП утверждение B как утверждение, теперь от-дельно, самостоятельно существующее, так что утверждение В - “в квадрате диагонали перпендикулярны” можно теперь использовать как таковое, а не только исключительно в связке А B.

Modus tollendo tollens утверждает, что АB истинно (ложно) истин-но (ложно) BА. Пример. Пусть нужно доказать, что “любые отрезки любых прямых имеют равномощные множества точек (отрезок – часть прямой между ее двумя раз-личными точками)”. Пусть С - “мощность множества точек некоторого от-резка [c,d] равна M” и D - “мощность множества точек некоторого отрезка [u,v] равна N”. Нужно доказать: M=N. Докажем от противного: но пусть M N, тогда имеем либо M > N, либо M < N (и третьего не дано). Очевидно, что если длина отрезка [c,d] строго больше длины отрезка [u,v], то точек в

Page 121: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

121

отрезке [c,d] не меньше, чем в отрезке [u,v], а точнее, с учетом M N, строго больше, т.е. M > N. Расположим (только для наглядности) отрезок [u,v] па-раллельно отрезку [c,d] и над (под) ним. Соединим двумя прямыми концы этих отрезков. Эти прямые, конечно же, пересекутся в некоторой точке t, об-разуя пару треугольников, один из которых либо входит в другой, либо нет, в зависимости от того, какие концы отрезков были соединены. Возьмем любую точку отрезка [c,d] и проведем через нее и точку t прямую до пересечения с отрезком [u,v]. Очевидно, что для каждой точки x отрезка [c,d] обязательно найдется хотя бы одна (а на самом деле, единственная) точка y отрезка [u,v], полученная указанным способом: как точка пересечения с отрезком [u,v] прямой, проведенной через x и t. Значит, точек в отрезке [c,d] не больше, чем в отрезке [u,v]: M N, и доказательство закончено, т.к. пришли к противо-речию с предположением, что M > N. Заметим, что верно и обратное: для каждой точки y отрезка [u,v] обязательно найдется единственная точка x отрезка [c,d], полученная тем же способом (так что M N). Если это ясно, то ясно, что получено взаимнооднозначное соответствие между множествами точек этих отрезков, т.е. получено, что M=N, то доказательство опять-таки закончено, т.к. пришли к противоречию с предположением, что M N. Правило подстановки: в каждую истинную (доказанную, выведенную) фор-мулу, в частности, в аксиому, вместо любой ее подформулы можно подста-вить другую формулу во все места вхождения подформулы, причем так по-лученная формула является тоже истинной (доказанной, выведенной). Пример. Пусть формула (x y) (xz) истинна. Тогда, если вместо под-формулы x в каждое место ее вхождения в формулу (x y) (x z) под-ставить, к примеру, формулу v w, то получим также истинную формулу ((v w) y) ((v w) z). Итоговый пример (в краткой и упрощенной форме). Предметная область: планиметрия. Знания: теорема Пифагора и т.п. Проблемная область: решение задач планиметрии, таких как следующие вычислительные задачи: 1) «Найти второй катет, если первый катет равен 5, а гипотенуза равна 7». 2) «Найти гипотенузу, если первый катет равен 5, а второй катет равен 7» и т.д. Тогда, используя сначала слова-символы на понятном нам языке, теорему Пифагора, точнее, формулу, можно представить следующим образом: РАВНЫ[Сумма(Квадрат(Первый_катет),Квадрат(Второй_катет)),Квадрат(Ги

потенуза)], а формализовав эту формулу, получаем МПЗ на данном логическом ЯПЗ в следующей форме=модели: Р1[Р2(Р3(х), Р3(у)), Р3(z)]. Здесь предикат Р3 ин-терпретируется как быть квадратом, предикат Р2 - как быть суммой, а предикат Р1 - как быть равным, аргументы х и у - как первый и второй ка-тет этого прямоугольного треугольника, а z - как его гипотенуза. Решение любой задачи в таком контексте сводится к поиску логического вывода целе-вой формулы в данной формальной логической системе. Например, надо ре-

Page 122: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

122

шить задачу: «Найти второй катет, если первый катет равен 5, а гипотенуза равна 7». Эту задачу можно переформулировать как задачу вывода истинно-сти утверждения x[Равны(Сумма((Квадрат(5), Квадрат(x)), Квадрат(7)] и как задачу нахождения х, при котором формула истинна; целевая же форму-ла, как итоговая=выходная, может иметь вид

Равны[Сумма(Квадрат(5), Квадрат(корень из 24=49-25)), Квадрат(7)] или попросту х2=24.

Классическая логика в ИИС.

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

Теория силлогизмов Традиционная логика имеет дело, прежде всего, с понятиями. Понятия

делятся на общие и единичные (например, четное число и шесть). Общее по-нятие по содержанию определяется указанием совокупности свойств (ука-занных признаками), характеризующих подпадающие под него предметы, т.е. каждый предмет обладает каждым указанным свойством (четное число есть целое число, которое делится на 2 без остатка, т.е. остаток=0, здесь два признака=свойства, если же “целое число0”, то это третий признак). Итак,

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

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

Page 123: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

123

F, G, H, R,… . Высказывательную форму «предмет х обладает свойством F» записывают в виде F(x).

Например, если F - свойство «быть четным числом», а x – любое нату-ральное число, то F(x) - высказывательная форма, при этом высказывания - предикаты F(8) и F(20) истинны, а высказывание F(7) ложно.

Замечание. Начнем с примеров понятий: четное число, четное число вида 2n, четыре. Ясно, что четное число - это общее понятие, а четыре - еди-ничное. Ясно и то, что четное число вида 2n есть часть множества всех чет-ных чисел. Так приходим к тому, что можно говорить и о частных понятиях. Однако можно (но не всегда нужно) обойтись и без понятия частного, пото-му что оно всегда либо общее по отношению к другому еще более частному (“четное число вида 2n ” - общее по отношению к “четное число вида 22n”), либо является единичным (в вырожденном случае, например, четыре, 4=22). Такого рода замечания следует иметь в виду, когда пойдет речь об интенсио-нале и экстенсионале и их относительности.

Совокупность свойств F1,…, Fn можно заменить свойством F - «обла-дать всеми свойствами Fk, k = 1, 2,…, n» (формально: F= F1&…&Fn). Поэтому с точки зрения содержания «общее понятие» традиционной логики есть од-номестный предикат, а потому ниже будем иметь дело лишь с одноместными предикатами и называть их просто предикатами.

Взяв любой предикат F, можно образовать класс M = x| F(x) (1)

всех предметов, обладающих свойством F. Этот класс и характеризует объ-ем понятия, т.е. при условии (1) для любого х имеет место эквивалент-ность: F(x) x M. Точнее, выражение x (F(x) x M) означает «для всякого х имеет место х М тогда и только тогда, когда F(x)», т.е. тогда и только тогда, когда предикат F(x) истинен.

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

Например, в качестве D может выступать класс всех натуральных чисел, класс всех действительных чисел или класс всех множеств.

Выражение «для всякого х» следует понимать как «для всякого предме-та х из класса D».

Заметим, что M и D названы классами, а не множествами: не всякое свойство определяет множество объектов, хотя можно считать, что всякое свойство (записанное в некотором логико-математическом языке) определяет класс. Множества суть частные виды классов.

Page 124: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

124

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

Считается, что в теории силлогизмов могут фигурировать произволь-ные классы. Хотя и будем использовать термин “класс” в указанном общем смысле, однако далее фактически хватит частного случая, когда класс есть множество.

Пусть по содержанию классам S и P соответствуют предикаты F и G: x (F(x) xS), x (G(x) xP),

а переменная х пробегает класс D - некоторый непустой фиксированный класс предметов.

Аристотель рассматривал четыре типа суждений (высказываний): A(S, P) - общеутвердительное: «все S суть P»; E(S, P) - общеотрицательное: «ни одно S не есть P»; I(S, P) - частноутвердительное: «некоторые S суть P»; O(S, P) - частноотрицательное: «некоторые S не суть P». В обозначениях математической логики и теории классов (и/или мно-

жеств) получаем такие формы записи указанных выше типов суждений:

A(S, P) S P или S \ P = x (F(x) G(x))

E(S, P) S P = x (F(x) G(x)) или

x (F(x) G(x))

I(S, P) S P x (F(x) G(x))

O(S, P) S \ P или (S P) x (F(x) G(x))

Здесь S P - пересечение классов S и P: x (xSP xS xP),

S \ P - разность классов S и P: x (xS \ P xS xP), S P – включение: x (xS xP), (SP) означает: «неверно, что S P», - пустой класс (=пустое множество): x (x). С помощью этих обозначений можно формулировать общие логиче-

ские законы, т.е. высказывания, справедливые при любом выборе соответст-вующих классов. Так, для любых трех классов (в частности, множеств) S, M и P справедлив вывод

(M P) (S M) (S P). В традиционных обозначениях это высказывание имеет вид

A(M, P)

Page 125: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

125

A(S, M) A(S, P) .

Ясно, что возможны точно четыре схемы такого рода правил (в традици-онной терминологии – четыре фигуры силлогизма):

I II III IV (M, P) (P, M) (M, P) (P, M)

(S, M) (S, M) (M, S) (M, S) (S, P) (S, P) (S, P) (S, P) В каждой из этих схем (фигур) вместо точек можно 43=64 способами

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

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

1-я фигура 2-я фигура 3-я фигура 4-я фигура bArbArA cEsArE dAtIsI cAlEmEs cElArEnt cAmEstrEs fErIsO frEsIsOn dArII fEstInO dIsAmIs dImAtIs fErIO bArOcO bOcAdO * bAmAlIp *dArAptI *fEsApO * fElAptOn

Гласные буквы в этих названиях указывают на выбор букв А, Е, I или О. Например, модус fElAptOn имеет вид

Е (М, Р) А(М, S) O (S, P),

т.е. (M P = ) (M S) (S P). Эта формула превращается в ошибочное высказывание при P = M = S = , но при не пустых множествах Р, М и S эта импликация верна.

Аристотель и его последователи вплоть до двадцатого века не признава-ли понятий с пустым объемом. Со своей точки зрения они были правы, при-знавая наличие именно девятнадцати правильных модусов. Но для математи-ков, программистов и т.д., в том числе и значительной части современных логиков такая позиция крайне не удобна. Например, в течение тысячелетий не удавалось (и не удалось) установить, пуст или нет объем понятия «нечет-ное совершенное число» (совершенным называется натуральное число, у ко-торого сумма отличных от него делителей равна самому числу); так что же теперь – не использовать это понятие? Не лучше ли (и не проще ли) изба-виться от таких проблем раз и навсегда, для чего и надо всего лишь считать допустимым работу с «пустыми» понятиями: суть дела не меняется, ошибки по этой причине не возникают, а излишних проблем нет. Аналогичная исто-

Page 126: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

126

рия была и с нулем - ему же «ничего» не соответствует, т.к. число - это мо-дель количества «чего-то наличного», получается, что тогда 0 - не число - как же так? Кому это удобно, тот и пусть обходится без 0-ля, а мы уж как-нибудь разберемся с ним: у нас не может быть тех проблем, которые тут же возникают у ревнителей наличности).

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

Если Вы - человек с “математическим складом” ума, то Вы, конечно же, поняли, что

S P - включение (бинарное рефлексивное, антисимметричное и тран-зитивное отношение - частный случай отношения порядка) и

S P - пересечение множеств: x (xSP xS xP), фактически определяет структуру порядка на множестве всех подмножеств некоторого множества М (любого) с операцией пересечение , которая ока-залась согласованной с : если S P, то SQ PQ для любых S, P, Q М. Вы, конечно же, поняли, что так возникшую алгебру, а именно, полурешетку, можно дополнить (и в этом смысле расширить), введя на указанной структу-ре=полурешетке <М, , > также операции:

S P - объединение множеств S и P: x (xSP xS xP) и S \ P - разность множеств S и P: x (xS \ P xS xP). Последняя операция позволяет построить для каждого множества S М его дополнение D = М \ S в М. Так возникшая формальная система, а именно, бу-лева решетка <М, , , , \>, оказывается вполне пригодной, чтобы

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

Тем самым, эта часть логики (а на самом деле, практически вся логика) со всем стоящим за ней содержательным смыслом фактически сведена к син-таксису, т.е. к формальным (синтаксическим) операциям над элементами указанной структуры - булевой решетки. Поэтому-то в математической логи-ке провести те или иные рассуждения и означает проделать соответствую-щие вычисления над символами. Как известно такую же структуру - булеву решетку имеет и множество всех отношений на множестве. Это не случайно (подробнее см. Кутьин А.М. Соответствия и отношения: теория и примене-ние в базах данных и экспертных системах. Учебное пособие. Красноярск, изд. КГТУ. 2004. 134 с.)

Другие части классической логики: алгебра высказываний и алгебра предикатов, исчисление высказываний и исчисление предикатов. Алгебра высказываний (как и алгебра предикатов, исчисление выска-

зы-ваний и исчисление предикатов) строятся из элементарных высказыва-ний, обозначаемых x, y, z,… или как a, b, c,…, или A, B, C,…, следующим образом: если x, y, z - высказывания (если A, B, C - высказывания), то вы-

Page 127: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

127

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

x (не х, отрицание x, часто вместо x пишут x), x y (x&y, x и y), z x (z или x),

y → z (y влечет z, из y следует z, y имплицирует z, вместо → часто пишут ), y z (y тогда и только тогда, когда z, y эквивалентно z, y равносильно z,

y влечет z и y следует из z, вместо часто пишут или ). Если x, y, z - правильно построенные формулы - ППФ (правильно построен-ные слова - ППС), то x, x y, y → z, y z также ППФ (ППС).

Задание. Построить такие же составные высказывания из A, B, C, за-менив на , → на , на &, на .

Используя таблицы истинности, можно найти значение истинности лю-бой ППФ.

а b а b а & b а b а b а b

Л Л И И

Л И Л И

И И Л Л

И Л И Л

Л Л Л И

Л И И И

И И Л И

И Л Л И

Пример1. Найдем значение истинности для ППФ ((a⊃b) & (a\/c)) & c при ус-ловии, что а интерпретируется как Л, b - как И, а с - как И. Получаем:

((Л И) & (Л VИ)) & И. И И И

И

Следовательно, ППФ ((a⊃b) & (a\/c)) & c имеет значение И.

Исчисление высказываний, ИВ. Правила построения ППФ те же, что и в АВ - алгебре высказываний.

Аксиомы ИВ: следующие формулы объявляются аксиомами ИВ (т.е. дока-зуемыми, выводимыми, правильными формулами): I – первая группа аксиом: 1) x (y x), 2) (x (y z)) ((x y) (x z)). II – вторая группа:

1) x& y y, 2) x& y x,

Page 128: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

128

3) ( x y) ((x z) (x y& z)). III – третья группа: 1) x x y,

2) y x y, 3) (x z) ((y z) (x y z)).

IV – четвертая группа:

1) )()( xyyx ,

2) xx ,

3) xx . Алгебра предикатов и исчисление предикатов строятся по правилам,

аналогичным правилам АВ и ИВ, к которым добавлены правила о кванторах. Примеры предикатов с кванторами и без них:

равно(сторона1, сторона2), равно(,), R(s1, s2) R(,) и т.д.

2. Виды логического вывода.

Существуют три основных вида логического вывода:

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

абдукция – рассуждение не дедуктивного вида, ее важный случай:

индукция – рассуждение от частного к общему.

Системы логического Методы вывода

Назначение ИИС

Экспертная система

Система управления

База данных и знаний

САПР, АСНИ,

Модель знаний

Логическая

Продукционная

Фрей-мовая

Семантиче- ские сети

Вид вывода

Дедуктивный

Аб-

Индуктивный

Реализация

Программная

Програмно- аппаратная

Аппаратная

Page 129: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

129

Рис. 1. К характеристике систем логического вывода

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

1. Правило (главная посылка) x HUMAN(x) MORTAL (x). 2. Факт (второстепенная посылка) HUMAN (SOCRAT). 3. Цель (вывод) MORTAL (SOCRAT). Дедукцией называется логический вывод, заключающийся в выведении

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

Page 130: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

130

Рис. 2. Характеристика методов логического вывода

Рассмотрим возможные представления знаний в логике высказываний. Пропозициональный словарь логики высказываний состоит из беско-

нечного (счетного) множества высказываний, обозначаемых строчными бук-вами (иногда с индексами), и пяти связок: отрицания (-), конъюнкции (или &), дизъюнкции (), импликации (→) и эквивалентности (↔). Словарь дает возможность строить сложные или составные высказывания из исходных (простых, элементарных), соединяя последние связками. Правила построения

Методы логиче-

Форма представления данных

Законы ло-гики

Принцип

Секвен-

Дизъ-

Клозы

Modus po-nendo

Modus tollendo tollens

Modus ponendo tollens

Modus tol-lendo

Эр-брана

Резо-люции

Деле-ние дизъ-

Направлен- Тактика Стратегии

Прямой

Об-ратный

Дву-направ-

Сна-чала

Сна-чала

Син-таксиче-

Се-мантиче-

Эври-стические

Page 131: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

131

описывают те выражения, которые являются объектами языка. Такие выска-зывания называют формулами. Интерпретировать формулу – значит припи-сать ей одно из двух значений истинности: истина И (1) или ложь Л (0). Се-мантика произвольной формулы логики высказываний полностью определя-ется ее таблицей истинности. Формула семантически выполнима или просто выполнима, если она допускает некоторую модель, т.е. ее можно интерпре-тировать со значением И. Формула общезначима, если она истина независи-мо от истинных значений, приписанных составляющим ее высказываниям. Общезначимые формулы исчисления высказываний часто называют тавтоло-гиями.

Любая формула может быть преобразована в эквивалентную ей, имею-щую вид «нормальной», или «канонической» формы. В этом отношении осо-бый интерес представляют понятия «дизъюнкт» и «конъюнктивная нормаль-ная форма». Дизъюнктом называется дизъюнкция конечного числа литера-лов. Дизъюнкт общезначим тогда и только тогда, когда он содержит пару противоположных литералов. Конъюнктивной нормальной формой (КНФ) называется конъюнкция конечного числа дизъюнктов. Часто бывает, что какой-либо метод логического вывода, неэффективный в наибольшей общности, оказывается эффективен в некоторых частных случа-ях. Например, метод резолюции, рассматриваемый далее, оказывается наибо-лее эффективным, когда задача представлена в виде хорновских дизъюнктов, т.е. таких, которые не содержат более одного позитивного литерала.

Дизъюнкт Хорна B1&B2&...&BN → A также называется хорновским клозом или хорновским правилом. Если антецедент (тело) дизъюнкта от-сутствует, то формула принимает вид →А и называется фактом. Если отсут-ствует сукцедент (голова), то формула B1&B2&...&BN→ называется целью (запросом).

Характеристика методов логического вывода представлена на рис. 2.

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

мая проблемой дедукции, формулируется так: определить, является ли фор-мула А логическим следствием множества формул В1, В2,..., Вk.

Наибольшее распространение получили следующие два закона логики.

Modus ponendo ponens: B→ C, B .

C _

Modus tollendo tollens: B → C, C _ B

Page 132: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

132

Из большого числа различных принципов, лежащих в основе алгорит-мов логического вывода рассмотрим наиболее известные.

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

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

Важные результаты в этом направлении были получены Эрбраном. Его подход основан на том, что

множество дизъюнктов S невыполнимо тогда и только тогда, когда оно принимает значение Л во всех интерпретациях на любых областях.

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

Несколько другой подход предложил Робинсон, разработав достаточно удобный метод для выявления невыполнимости множества дизъюнктов, представленных в виде КНФ. Действительно, по определению множество дизъюнктов невыполнимо тогда и только тогда, когда пустой дизъюнкт Л яв-ляется логическим следствием из него. Таким образом, невыполнимость множества S можно проверить, порождая логические следствия из S до тех пор, пока не получим пустой дизъюнкт. Для порождения логических следствий используется правило резолюции:

_ A X, B X → A B, _ _

где А, В - дизъюнкты, Х - высказывание. Литералы Х и Х называются контрарной парой; полученный в результате применения данного правила дизъюнкт A B называется резольвентой. Если S - невыполнимое множество, то при помощи резолюции можно получить пус-той дизъюнкт (т.е. Л - ложь).

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

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

Page 133: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

133

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

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

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

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

Page 134: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

134

Исключение подслучаев предполагает следующие: если дизъюнкт Li является подслучаем дизъюнкта Mj, то предложение Li можно исклю-чить, не нарушая свойства невыполнимости оставшегося множества.

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

3. ДЕДУКТИВНЫЕ МЕТОДЫ ВЫВОДА

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

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

Высказывание есть утвердительное предложение, которое либо истинно (И), либо ложно (Л). Истинностным значением высказывания называется И или Л, приписываемые ему.

В логике высказываний символы Р, Q, R и т.д., используемые для обозначе-ния высказываний, называются атомарными формулами. Из высказываний с по-мощью логических операторов (не), (и), (или), (если..., то...), (тогда и только тогда, равнозначность) строятся составные высказывания.

Выражение, которое представляет высказывание или составное высказыва-ние, называется правильно построенной формулой (ППФ) (коротко - формулой), точнее, если Р и Q - ППФ, то Р, РQ, РQ, РQ и РQ - ППФ. Пусть G - данная пропозициональная формула (пропозиция - высказывание) и А1, А2,…, Ап - ее атомарные формулы. Интерпретацией формулы G является такое приписывание истинностных значений атомарным формулам А1,…, Ап , при кото-ром каждому Аi приписано либо И, либо Л (но не оба вместе).

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

Page 135: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

135

ях, то говорят, что она является противоречивой (противоречием). Противоречи-вая формула невыполнима. Обозначим ее .

Говорят, что две формулы Р и G эквивалентны или что Р эквивалентна Q (P=Q), когда истинные значения Р и Q совпадают при каждой интерпретации Р и Q. Существует множество эквивалентных формул, называемых законами, ко-торые используются при преобразованиях формул из одной формы в другую, осо-бенно - в «нормальную форму».

Литера - это атомарная формула или ее отрицание. Формула Р находится в конъюнктивной нормальной форме (КНФ), тогда и

только тогда, когда Р имеет вид

1n,PPP n1 , где каждая из P1, P2,…, Pп есть дизъюнкция литер. Здесь знак означает «равно по определению».

Формула Р находится в дизъюнктивной нормальной форме (ДНФ), тогда и только тогда, когда Р имеет вид

1n,PPP n1 , где каждая из P1, P2,…, Pп есть конъюнкция литер.

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

)(Q)(PQP PQ , (1)

Q PQP , (2)

H)(PQ)(PH)(QP , (3а)

H)(PQ)(PH)(QP - (3б) дистрибутивные законы,

PP)( - закон двойного отрицания, (4) QPQ)(P ; QPQ)(P - законы де Моргана, (5a); (56)

PP - закон исключенного третьего, (6) PP - закон противоречия, (7)

P = P; P = P (8а); (8б) P = ; P (9а); (9б)

Рассмотрим основные правила вывода в логике высказываний. При логическом выводе в рамках данной формальной системы стоит

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

Правило подстановки. Пусть Р - ППФ, содержащая атомарную форму-лу X. Тогда, если Р - тавтология, то, заменяя в ней X всюду, где она входит, произвольной ППФ В, получают также тавтологию.

Page 136: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

136

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

PQ,P Q (здесь символ означает «выводимость»). Modus tollens. Отрицательная форма условно категорического силлогизма:

QQ,P P . Modus tollendo ponens. Форма разделительно категорического силлогизма, Отрицающе-утверждающий модус:

PQ,P Q . Modus ponendo tollens. Форма разделительно категорического силлогизма, Утверждающе-отрицающий модус:

PQ,P Q . Правило силлогизма (правило цепного умозаключения):

RQQ,P RP . Правило контрапозиции:

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

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

Пусть даны формулы P1, P2,…, Pп и формула Q. Говорят, что Q есть ло-гическое следствие формул Р1, Рn тогда и только тогда, когда для всякой ин-терпретации I, в которой n21 PPP истинна, Q также истинна. Здесь P1, P2,…, Pп называются аксиомами (постулатами или посылками) Q.

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

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

Теорема дедукции. Пусть даны формулы P1,..., Pn и формула Q. Тогда Q есть логическое следствие P1,..., Рn тогда и только тогда, когда формула

Q) n1 PP( общезначима. Теорема о противоречивости. Пусть даны формулы P1,..., Pn и формула

Q. Тогда Q есть логическое следствие P1,..., Pn тогда и только тогда, когда Q n21 PPP противоречива.

Page 137: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

137

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

Применение рассмотренных понятий и правил вывода покажем на при-мере. Пусть в предметной области “Мир робота” справедливы утверждения: если скорость движения конвейера непостоянна, то точность захвата роботом заготовки и установки ее под пресс уменьшается; если точность установки заготовки под пресс уменьшается, то увеличивается процент изготовления бракованных изделий. Предположим, что скорость движения конвейера не-постоянна, из чего можно заключить, что увеличился процент изготовления брака. Чтобы установить (доказать) это заключение, обозначим утверждения: 1) F1: если скорость движения конвейера непостоянна (S), то точность захвата роботом заготовки и установки ее под пресс уменьшается (Р);

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

3) F3: скорость движения конвейера непостоянна (S); 4) F4: увеличивается процент бракованных изделий (U)

Эти утверждения выразим в символической форме: .:;:;:,: 4321 UFSFUPFPSF

Покажем, что F4 истинно (т.е. увеличивается процент брака), как только 321 FFF истинно. Преобразуем формулу )S)UP()PS(( в нормальную

форму: )S)UP()PS(()S)UP()PS(( по (2)

))UP()PS(S( по коммутативному закону ))UP())PS()SS((( по (3б)

= (( ))UP())PS( по (7) )UP()PS( по (8а)

)UPS()PPS( по (3б) S( )UPS() по (7)

)UPS() по (9б) )UPS( по (8а)

Следовательно, если )S)UP()PS(( истинна, то )UPS( истина. Так как )UPS( истинна, только если S, Р и U все истинны, заключаем, что U истинна. Здесь U есть логическое следствие формул F1, F2 и F3.

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

В логике предикатов первого порядка вводятся еще три логически по-нятия: термы, предикаты и кванторы. Понятие атомарной формулы в логике

Page 138: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

138

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

Page 139: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

139

Лекция 14

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

I. Сравнительный анализ традиционных языков программирова-ния и представления знаний

1.1. Язык LISP

Одним из популярных языков программирования в системах ИИ является язык LISP. Этот язык был создан в 60-х годах ХХ века Дж. Маккар-ти и его учениками. На сегодняшний день существует около 20 диалектов этого языка. Наиболее известными являются INTERLISP, FRANZLISP, QLISP, COMMONLISP. На языке LISP написаны многие экспертные системы (MYCIN, INTERNIST, KEE и др.), системы естественно-языкового общения (MARGIE, SHRDLU, ДИЛОС и др.), интеллектуальные операционные систе-мы (FLEX). В Советском Союзе разработаны также несколько версий языка LISP.

Популярность языка LISP объясняется тем, что он с помощью до-вольно простых конструкций позволяет писать сложные и изящные системы обработки символьной информации. Но почти все существующие LISP-системы имеют низкую вычислительную эффективность. Именно это не дает возможность языку LISP выйти за рамки «академии-ческих» эксперимен-тальных систем. Однако бурное повышение производительности современ-ных компьютеров, а также разработка LISP-машин типа С/330, SYMBLISP и т.д. вселяют оптимизм в отношении будущего этого языка.

Язык LISP имеет очень простой синтаксис, поскольку возможны только две его конструкции: атом и список.

Атом - элементарная конструкция языка LISP, характеризуемая своим именем и значением. В некоторых LISP-системах с атомом связыва-ется также определенный список свойств. Примерами атомов могут служить; А, В, А1, ВРЕМЯ ВЫЛЕТА, ВЫПУСК, АИ-93 и т.д.

Список - конструкция LISP, состоящая из множества атомов и под-списков. В LISP принята скобочная нотация описания списков. Примеры списков (А1, Л2,..,ЛК), (А,В) (ВРЕМЯ ВЫЛЕТА, 15_40) (ВЫПУСК АИ-93). 261

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

Page 140: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

140

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

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

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

1.2. Фрейм-ориентированный язык FRL. Одним из известных язы-

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

Фрейм в FRL - совокупность поименованных, ассоциативных спи-сков, содержащая до пяти уровней подструктур. Подструктурами фреймов могут быть слоты, аспекты, данные, комментарии и сообщения. Основной структурой во фрейме являются слоты, отражающие взаимосвязи между по-нятиями предметной области. Слот характеризуется своим именем и значе-нием. Имена слотов назначаются проектировщиками БЗ. Однако FRL имеет также и зарезервированные имена слотов: АКО, INSTANSE, CLAS SIFICATON. В качестве значения слотов могут выступать числа, символы, имена других фреймов, имена процедур.

Фреймы в FRL строятся с помощью процедуры fassert. В FRL имеется семь зарезервированных аспектов: VALUE,

DEFAULT, IF-ADDED, IF-NEEDED, IF-REMOVED, IF-INSTANTIAD, REQUIRE. Данные аспекта VALUE интерпретируются как значение слота, а из аспекта DEFAULT - как значение по умолчанию. Остальные 5 аспектов связывают с фреймом процедурные знания. Процедуры из аспекта IF-ADDED активи-зируются в том случае, если в слот добавлено новое данных; из аспекта IF-REMOVED - если из слота удаляется то или иное данное. Про-

Page 141: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

141

цедуры из аспекта IF-NEEDED запускаются при создании экземпляров фрейма. Аспект REQUIRE содержит процедуры, которые ограничивают зна-чение слота.

Важным свойством FRL является наличие в нем встроенного ме-ханизма «наследования свойств». Суть этого механизма заключается в сле-дующем. Все понятия предметной области в БЗ организовываются в виде ие-рархической классификационной системы, где каждое понятие связывается с помощью специальных отложений с более конкретными. Для реализации этих отложений существуют слоты АКО и INSTANSE.

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

1.3. Язык PROLOG В последнее время к разработке ЭС все чаще стал привлекаться

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

Основной конструкцией языка является импликация: А←В1,В2,…, Вn, называется правилом, где А1,В1,В2,…Вn - предика-

ты. «А истинно, если истинно В1, и истинно В2, и…и истинно Вn».

Например: РЕЖИМ_УСТАНОВКИ(«РЕЖИМ_1)ТИП _НЕФТИ) («ЗАПАДНО-СИБИРСКАЯ») КОЛ_НЕФТИ (Х), БОЛЬШЕ (Х,0) Смысл этого правила: «если тип нефти – западно-сибирская и количе-

ство нефти больше нуля, то технологическая установка работает на первом режиме».

Из приведенной импликации следует два вырожденных случая: 1) А←? - такая конструкция называется фактом и имеет смысл: «А

истинно всегда». Например: Входит установка 26 входит в цех 2 2) ← В1,В2,…,Вn, - данная конструкция носит название «вопрос» и

означает: «истинно ли В1В2… Вn.? (знак - конъюнкция)». Например: ←РЕЖИМ_УСТАНОВКИ («РЕЖИМ_2»), т.е. следует проверить работает ли установка во втором режиме?

Предикаты пролога имеют вид: <ИМЯ предиката >(<аргумент 1>,…<аргумент К> Имя предиката можно рассматривать как именование отношения на

мно-жестве аргументов. Аргументов являются либо константа либо перемен-

Page 142: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

142

ная. Переменные используются для построения более сложных зависимо-стей. Например:

ВХОДИТ(Х, «ЗАВОД НП31»)←ВХОДИТ (Х, «ЦЕХ_-2») - если некоторый объект (Х) входит в цех 2, то он входит в НПЗ1; ВХОДИТ (Х,У) ←ВХОДИТ(Х,Z),ВХОДИТ (Z,Y). Здесь Х входит в Y, если Х входит в Z, а Z входит в Y. При использовании переменных «в вопросе» можно получить их зна-

чения в качестве результата. Например: ←РЕЖИМ_УСТАНОВКИ (Х). Если режим установки известен и определен, то в качестве ответа получим логи-ческое «да» или «истинно», а в качестве побочного эффекта получим значе-ние переменной Х, т.е .действующий режим работы установки, например Х=»РЕЖИМ_2».

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

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

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

1.4. Продукционный язык OPS Язык OPS относится к числу продукционных. Являясь универсаль-

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

Page 143: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

143

отличающихся друг от друга. Одной из первых и наиболее известной являет-ся реализация OPS-5, выполненная на одной из версий Лиспа. Поэтому син-таксис OPS-5 максимально приближен к синтаксису Лиспа. На языке OPS-5 создан ряд промышленно эксплуатируемых экспертных систем для DEC с объемом без знаний от 1000 до 5000 правил. Одной их последних, но уже достаточно широко известной реализацией является OPS-83. Особенности этой реализации - наличие некоторых конструкций, характерных для проце-дурных языков программирования, а также сильная типизация данных.

Говоря об общих отличительных чертах языка OPS необходимо от-

метить наличие:

• программного управления стратегией вывода решений

• развитой структуры данных и принципиальной эффективности реа-

лизации.

Язык OPS имеет типичную для продукционных систем архитектуру,

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

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

из дискретных объектов, называемых элементами рабочей памяти. Элемент

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

модифицирован. Механизм вывода является стандартным для системы про-

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

левые части которого сопоставлялись с содержимым рабочей памяти. На

второй фазе правило выполняется. Встроенный в OPS механизм вывода не-

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

средства для организации обратного и смешанного выводов.

В языке OPS допускается использование внешних процедур, реализо-

ванных на других языках программирование. Эффективность в языке OPS

достигается, во-первых, за счет использования специального алгоритма бы-

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

няемой взамен более традиционной для продукционных языков и интерпре-

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

ограничений, но опыт эксплуатации языка OPS показал достаточ-но высокую

адекватность средств языка для разработки экспертных систем.

Page 144: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

144

Программа на языке OPS состоит из декларативной и продукционной

частей. Вообще говоря, язык OPS очень прост: в нем всего три вида операто-

ров: оператор описания типов данных TYPE, оператор описания классов

CLASS и оператор описания правил RULE. Декларативная часть программы

содержит описание типов данных и классов элементов рабочей памяти. Эле-

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

данных в OPS программе. Он представляет собой фиксированную структуру,

состоящую из совокупности пар «атрибут-значение» вида:

Класс

Атрибут-1

Значение

Атрибут-2

Значение

Например, элемент памяти «Установка 1 предприятия» имеет вид:

ОБЪЕКТ

Имя

Установка 1

Входит в

Цех1

Состоит из

(колонна1, колонна2, колонна3)

Получает сырье от

Резервуар 5

Тип сырья

Нефть

Вырабатывает

Керосин

Поставляет продукцию

(установка 3, установка4)

Page 145: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

145

Элементарным объектом данных имеющим значение является ат-

рибут. Атрибуты локализованы в пределах одного класса, некоторые атрибу-

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

определенному классу. Допустимые классы элементов рабочей памяти долж-

ны быть предварительно описаны в разделе определения классов. Определе-

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

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

Отметим, что все используемые типы данных (кроме встроенных)

должны быть явно описаны в операторах TYPE или CLASS; особенно удобно

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

ные типы данных, кот. позволяют следить за правильностью вводимых поль-

зователем данных и допустимых значений в процессе логического вывода.

Перейдем к рассмотрению продукционной части OPS-программы -

раздела правил. Он записывается после декларативной части и представляет

собой совокупность правил. Правило OPS состоит из-за головка и тела пра-

вило. Заголовок правила начинается со слово RULE, за которым следует имя

правила и описание переменных( если они используются). Тело правила со-

стоит из левой части, задающей условие применимости правила, и правой

части, содержащей последовательность выполняемых действий. Левая часть

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

слово THEN. Ниже приведен пример правила OPS:

RULE ОСТАНОВКА УСТАНОВКИ 1 IF ОБЪЕКТ ИМЯ УСТАНОВКА 1 СОСТОЯНИЕ ОСТАНОВИЛАСЬ AND ОБЪЕКТ ИМЯ УСТАНОВКА 2 СОСТОЯНИЕ РАБОТАЕТ AND ОБЪЕКТ ИМЯ УСТАНОВКА 3

Page 146: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

146

СОСТОЯНИЕ РАБОТАЕТ THEN WRITE ∆установка 1 остановилась WRITE ∆распределить ее сырье между установкой два и установки 3∆

Левая часть правила состоит из одного или более условных элементов. Каждый условный элемент задает образец, который сопоставляется содер-жащимися в рабочей памяти элементов. Левая часть считается сопоставлен-ной, если одновременно сопоста-вились все входящие в нее условные эле-менты. Разделителем между условными элементами служит слово AND или ANDNUT. В левой части могут быть использованы следующие элементарные предикатные операторы: «не равно», «больше»,«меньше», «не больше», «не меньше», « входит», « не входит в список», « имеет/не имеет значение» и др. Правая часть правила состоит из последовательности императивных утвер-ждений, называемых действиями. Действия, имеющиеся в OPS, разделяются на две группы: элементарные, обеспечивающие вывод решения, и вспомога-тельные, обеспечивающие ввод и др. серверные возможности. К элементар-ным действиям относится:

MARE - создание нового элемента рабочей памяти; REMOVE - удаление элемента из рабочей памяти; MODIFY- изменение значений атрибутов, уже находящихся в рабочей

памяти. К вспомогательным действиям относятся: HALT - явное прекращение программы; WRITE - выдача сообщения на терминал; PRINT - печать сообщения на печатающем устройстве; DISPLAY - вывод на экран терминала инф. из библиотеки на магнит-

ном диске; BIND - вызов функций или модулей на других языках программирова-

ние; SET - динамическое изменение стратегии вывода решений или подроб-

ностей объяснений решения. Рассмотрим современные разработки средств построения интеллекту-

альных систем. II. Современные программные средства построения интеллектуальных

систем

2.1. Объектно-ориентированный язык VISUAL BASIC

VISUAL BASIC - язык, поддерживающий событийно-управляемое про-граммирова-ние: визуальное проектирование и элементы объектно-ориентированного программиро-вания. Выпустив 1991г. первую версию VB, MICROSOFT достаточно скромно оценивало возможности этой системы,

Page 147: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

147

ориентируя ее, прежде всего, на категорию начинающих и непрофессиональ-ных программистов. Основной задачей тогда было выпустить на рынок про-стой и удобный инструмент разработки в тогда еще новой среде WINDOWS, программирование в которой представляло проблему и для опытных специа-листов. В 1992г. была выпущена вторая, а 1993-94гг. - 3-я. Эта версия позво-лила продукту войти в число серьезных инструментальных средств програм-мирования и значительно расширить свой рынок. В 1996-97гг. была выпуще-на пятая версия. VB5 был намного усовершенствован, он обеспечивал замет-но более высокую производительность и предлагал долгожданный компиля-тор, преобразующий программу во внутренний машинный код. В 1998г. появился VISUAL BASIC 6. В течение нескольких лет идут постоянные де-баты о том, может ли VISUAL BASIC считаться языком объектно-ориен-тированного программирования (ООП). С одной стороны элементы ООП в нем были всегда, и их число росло от версии к версии. С другой - многих нужных возможностей ООП в VISUAL BASIC не было. Появление VISUAL BASIC.NET должно положить конец всем этим дискуссиям, т.к. в нем будут реализованы все необходимые атрибуты ООП. Напомним, что модель ООП подразумевает наличие трех обязательных механизмов: инкапсуляции, поли-морфизма, и наследования. Первые 2 были реализованы в предыдущих вер-сиях и получили развитие в новой, а последний появится в ней впервые. VISUAL BASIC наконец-то стал полноценным объектно-ориентированным языком. VISUAL BASIC.NET серьезно прибавил в мощности средств, но ра-ботать с ним будет сложнее. Ведь объектно-ориентированные методы про-граммирования представляют более серьезные требования к квалификации разработчика, на которою перекладываются многие проблемы обеспечения работоспособности программирования.

Дадим описание некоторых новых элементов языка на концептуальном уровне.

WEB SERVICES - некая принципиально новая платформно-независимая технология, связанная с использование стандарта ХМL и прото-кола SOAP, которая широко интегрирована в средства разработки. Ключевая идея состоит в создании компонентов уровня бизнес-логики, которая взаимо-действует с внешними объектами с помощью стандартных web-протоколов, т.е. поддерживать Object-oriented/.

Для того, чтобы называться объектно-ориентированным языком, язык должен удовлетворять 3 критериям, выраженными такими ключевыми словами как: • инкапсуляция, • наследование, • полиморфизм.

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

Page 148: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

148

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

Наследование (inheritance). Это одно из ключевых понятий объектно-ориентиро-ванного программирования - возможность использования (в том числе расширения) поведение чужого объекта. Упрощенно говоря, можно создать объект Продукт, а затем на его основе объекты Программный Про-дукт и Технический Продукт. Оба новых объекта будут наследовать свойства и методы объекта Продукт и при этом вы сможете изменить поведение на-следующего объекта. VISUAL BASIC-разработчики могут использовать ключевое слово INHERITS для подключения процедур уже существующего класса.

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

Другие свойства языков этого типа. Многопоточность (free-threaded). Это комплексная концепция под-

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

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

Structure Exception Handling (cтруктурная обработка особых ситуаций). Это новая структура для обработки ошибок, уже реализованная во многих языках. Она должна заменить старую и весьма негибкую (точнее, ненагляд-ную) конструкцию ON ERROR GOTO . Новый блок содержит ключевые сло-ва TRY ,CATCH ,FINALLY;

Type Safety (контроль типов данных) - запрет неявного преобразования типов с помощью нового оператора OPTION STRICT. Кому-то из програм-мистов это не понравится, так как данный режим заставляет задуматься о ти-пах переменных и использовать специальные функции присвоении перемен-ной значения др. переменной другого типа. Но это совершенно необходимо, если вы хотите писать надежные программы и снизить затраты на отладку приложений;

User Interface Inheritance (наследование пользовательского интерфей-са). VB7 будет включать наследование форм, т.е. создание новых форм на основе некоторых шаблонов. В отличии от существующего сегодня механиз-ма подключения новых форм на основе шаблонов, в данном случае будет ав-

Page 149: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

149

томатически поддерживаться механизм наследования: изменения в родитель-ском шаблоне ( например, корпоративном логотипе) будут отражаться 1 в дочерних формах.

Возможности языка VISUAL BASIC для создания ЭС. В основу программного пакета было положено передовое архитектур-

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

Объект - одно из основных понятий VISUAL BASIC и объектно-ориентированного программирования. Объектом называется некая сущность, которая во-первых четко проявляет свое поведение, а во-вторых является представителем некоторого класса подобных объектов.

Классом объектов в объектно-ориентированных языках называется общее описание таких объектов, для которых характерно наличие множества общих свойств и действий.

СОБЫТИЕ - действие или ситуация связанная с объектом, например: щелчок мыши или нажатие клавиши. Событие могут инициироваться в про-граммном коде приложения или непосредственно в системной среде.

СВОЙСТВА - определяют представление, поведение и другие черты объекта. Цвет фона формы, строка соединения, размер элементов и т.п.

Свойства: caption - имя, enabled - доступ, height - высота. МЕТОДЫ - программные процедуры, которые выполняют некоторую

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

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

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

Пакет Microsoft VISUAL BASIC представляет собой идеальную плат-форму для создания интерфейсов с локальными базами данных и базами данных типа клиент/сервер. VISUAL BASIC позволяет создавать различные приложения для работы с БД - от простейших локальных баз данных до мно-

Page 150: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

150

гоуровневой архитектуры клиент/сервер, а также приложений для работы в intranet и internet с использованием таких передовых технологий, как DHTML, XML, ASP. Также очень важны вопросы проектирования реляцион-ных БД и использования языка SQL. Язык структурированных запросов яв-ляется стандартным средством для работы с БД и может использоваться как для интерактивной работы с БД, так и включаться в языки программирова-ния. Применительно к VISUAL BASIC SQL позволяет: • создавать, модифицировать или удалять таблицы в БД ACCESS; • вставлять, удалять или модифицировать записи таблиц; • получать сводную инф. о данных в таблице; • осуществлять поиск данных в одной или более таблицах по запросу.

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

VISUAL BASIC представляет разработчику все средства для создания « графического интерфейса пользователя»: • возможность построения многодокументального интерфейса • создание пользовательского меню; • управления ACTIVE-X и многое др.

Приведем некоторые подробности реализации механизма вывода с по-мощью деревьев.

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

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

Page 151: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

151

вать такую информацию эвристической (помогающей найти решение) и на-зывать использующие процедуры поиска эвристическими методоми поиска.

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

VISUAL BASIC позволяет разработчику создавать деревья и осущест-влять поиск по ним по любому из вышеперечисленных алгоритмов.

Рассмотрим некоторые общие способы реализации деревьев на языке VISUAL BASIC. Один из способов - создать отдельный класс для каждого типа узлов дерева. Для построения дерева 3 можно определять структуры данных для узлов, которые имеют ноль, 1, 2 или 3 дочерних узла. Этот под-ход был бы довольно неудобным. Кроме того, что нужно было бы управлять 4-мя различными классами, в классах потребовались бы какие-то флаги, ко-торые бы указывали тип дочерних узлов. Алгоритмы, которые оперировали бы этими деревьями, должны были уметь работать со всеми различными ти-пами деревьев.

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

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

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

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

Page 152: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

152

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

2.2. Язык логического программирования Visual Prolog

В октябре 1981 г. была широко распространена информация о япон-ском проекте создания ЭВМ пятого поколения. Многих специалистов удиви-ло, что в основу методо-логии разработки программных средств было поло-жено логическое программирование. Целью проекта декларировалось созда-ние систем обработки информации, базирующихся на знаниях. Тогда же по-является множество коммерческих реализаций Пролога практически для всех типов компьютеров. К наиболее известным можно отнести CProlog, Quintus Prolog, Silogic Knowledge Workbench, Prolog-2, Arity Prolog, Prolog-86, Turbo Prolog и др. Наибольшую популярность в нашей стране получила система програм-мирования Turbo Prolog - коммерческая реализация языка для для IBM-совместимых ПК. Его первая версия была разработана датской компа-нией Prolog Development Center(PDC) в содружестве с фирмой Borland Inter-national в 1986 г. Система создавалась с серьезными отступлениями от не-официального стандарта языка, самым существенным из которых было вве-дение строгой типизации данных, но это позволило значительно ускорить трансляцию и выполнение программ. Новый компилятор сразу же был по

Page 153: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

153

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

В 1988 г. вышла значительно более мощная версия Turbo Prolog 2.0, включающая усовершенствованную интегрированную среду разработки про-грамм, быстрый компилятор и средства низкоуровневого программирования. Кроме того, она предоставляла возможность работы с собственными внеш-ними БД, dВазе 111 и Reflex, интегрированным пакетом Lotus 1-2-3, графи-ческим пакетом Paint Brush и другими приложениями. Фирма Вог1аnd рас-пространяла эту версию до 1990 г., а затем компания РDС приобрела моно-польное право на использование исходных текстов компилятора и дальней-шее продвижение системы программирования на рынок под названием РDС Prolog В июне 1992 г. появилась версия 3.31 — эффективный универсальный инструмент профессиональных программистов, который вскоре стал одним из наиболее широко используемых. РDС Prolog 3.31 работал в среде МS DOS, 0S/2, UNIX, ХЕN1Х, PharLap DOS Ехtеndег, МS Windows. Эта версия была хорошо совместима с традиционными языками программирования, в первую очередь с Си. В ней были расширены возможности создания прило-жений с интерфейсом GUI (Graphical User Inteface), принятым в МS Windows и OS/2. Хотя версия РDС Prolog 3.31 уже включала средства для написания программ, работающих под управлением графических операционных систем, процесс разработки подобных приложений все еще носил рутинный харак-тер. Для того чтобы сделать более простыми, удобными и быстрыми процес-сы написания, тестирования и модификации приложений на языке РDС Prolog, специалисты Рго1оg Development Center создали систему программи-рования под названием Visual Рго1оg 4.0, выпущенную 7 января 1996 г.

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

В Visual Рго1оg входят различные элементы: прежде всего, интерак-тивная среда визуальной разработки (VDE - Visual Develop Еnvironment), ко-торая включает текстовый и различные графические редакторы, инструмен-тальные средства генерации кода, конструирующие управляющую логику (Ехреrts), а также являющийся расширением языка интерфейс визуального программирования (VPI — Visual Ргоgramming Interfase), Пролог-компилятор, набор различных подключаемых файлов и библиотек, редактор связей, файлы, содержащие примеры и помощь. Visual Рго1оg поддерживается различными ОС, в том числе МS-DOS Phar-Lap-Extended DOS, всеми версиями Windows, 16- и 32-битовыми целевыми

Page 154: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

154

платформами 0S/2, а также некоторыми другими системами, требующими графического пользовательского интерфейса. В зависимости от выбранного интерфейса разработчику обеспечивается дос-туп к множеству генераторов кода (Соdе Ехрегrt), всевозможным ресурсным редакторам и особым дополнительным YР1-предикатам, определениям и библиотекам. Ресурсные редакторы применяются для создания, компоновки и редактирования окон, диалогов, меню, панелей инструментов, строк помо-щи, строковых таблиц, ярлыков, курсоров, битовых карт и оперативной по-мощи. Генераторы кода на основе подобных структур создают необходимый первичный Рго1оg-код. В результате появляется первичный код («скелет»), готовый для компиляции, редактирования связей и выполнения.

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

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

С помощью VPI можно создать мобильный исходный текст, а затем перекомпилировать его для работы как в 16-битовом режиме под управ-лением МS DOS или Windows, так и в 32-бнтоном режиме под управлением Windows NT, 0S/2 РМ и других ОС. В декабре 1997 г. фирма PDС выпусти-ла Visual Рго1оg 5.0, а с января 1999 г. приступила к распространению вер-сии 5.1. Пролог - это язык, который до сих пор находится в развитии. Область его применения постоянно расширяется, в него вносятся новые дополнительные функциональные возможности, призванные удовлетворить возрастающие по-требности пользователей,

Visual Рго1оg является Рго1оg-системой со 100% оболочкой, выпол-ненной в идеологии Visual, упрощающей разработку программ для систем Windows З.х, Windows 95/98/2000, Windows NT. Среда разработки приложе-ний системы Visual Рго1оg включает удобный текстовый редактор, различ-ные редакторы ресурсов, средства разработки гипертекстовых Неlp-систем, оптимизирующий компилятор. Visual Рго1оg автоматизирует труд програм-миста по построению сложных процедур. С его помощью проектирование пользовательского интерфейса и связанных с ним окон, диалогов, меню, кно-пок, строк состояния и т.п. производится в графической среде. С созданными

Page 155: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

155

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

2.3. Интегрированная инструментальная среда GURU

В инструментальной среде построения ЭС GURU, разработанной фирмой Мiсrо Data Ваsе Sistems, Inс., методы экспертных систем сочетаются с такими средствами обработки данных, как составление электронных ведо-мостей, управление базой данных и деловой графикой, и таким образом фор-мируется уникальная среда для поддержки принятия решений и разработки прикладных интеллектуальных систем. Система GURU легка в употреблении для новичков и в то же время является достаточно эффективной и гибкой системой для профессионалов-разработчиков. В обычных «интегрирован-ных» программных продуктах или несколько отдельных программ помещены в операционную среду, или несколько второстепенных компонентов вклады-ваются в главный компонент (как, например, программа обработки электрон-ных ведомостей или текстовый редактор). Трудности, с которыми сталкива-ются при таких стилях «интеграции», хорошо известны. Первая заключается в том, что пользователь вынужден переходить назад и вперед по отдельным программам и передавать данные между ними. Метод вложений заставляет пользователя выполнить всю обработку в пределах главного компонента, и в результате получаются относительно слабые вторичные компоненты.

Метод интеграции, используемый в системе GURU, совершенно от-личается от вышеупомянутых. Он основывается на принципе синергизма. Под «синергизмом» здесь понимается следующее. В системе GURU все сред-ства всегда доступны. Многочисленные компоненты можно соединять по желанию в пределах одной операции, а это характеризует систему как гиб-кую и удобную в использовании. Например: • в посылке любого правила ЭС можно делать прямые ссылки на поля базы данных, на ячейки электронных ведомостей, на статические переменные, на программные переменные и массивы; • вывод любого правила ЭС может включать в себя операции управления базой данных, запросы на языке SQL (языке структурированных запросов), операции обработки электронных ведомостей, генерацию статистических данных, дистанционную передачу данных, выполнение процедур, генерацию деловой графики; • поскольку ЭС обосновывает задачу, она может брать консультации у дру-гих ЭС, выполнять процедурные модели, просматривать базы данных, со-ставлять электронные ведомости или проводить статистический анализ;

Page 156: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

156

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

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

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

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

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

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

Полезными являются такие дополнительные средства управления ло-гическим выводом, как установка степени «точности» вывода значения для некоторой переменной, изменение принятого по умолчанию порядка про-смотра правил.

Page 157: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

157

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

2.4. Интегрированная инструментальная среда G2 для создания ин-теллектуальных систем реального времени

В 1986 г. фирма Gensym вышла на рынок с инструментальным средст-вом G2, версия 1.0. В настоящее время функционирует уже версия 5.2. Ос-новное предназначение программных продуктов фирмы Gensym (США) - помочь предприятиям сохранять и использовать знания и опыт наиболее ква-лифицированных сотрудников в интеллектуальных системах реального вре-мени, повышающих качество продукции, надежность и безопасность произ-водства и снижающих производственные издержки.

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

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

Основные принципы, которые заложены в G2: • проблемно/предметная ориентацня; • независимость от вычислительной платформы; • универсальные возможности, независимые от решаемой задачи;

Page 158: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

158

• обеспечение технологической основы для прикладных систем; • комфортная среда разработки; • распределенная архитектура клиент-сервер; • высокая производительность. Основным достоинством оболочки экспертных систем G2 является возмож-ность применять ее как интегрирующий компонент, позволяющий за счет от-крытости интерфейсов и поддержки широкого спектра вычислительных платформ объединить уже существующие средства автоматизации в единую комплексную систему управления, охватывающую все аспекты производст-венной деятельности - от формирования портфеля заказов до управления технологическим процессом и отгрузки готовой продукции. На основе базового средства G2 фирма Gensym разработала комплекс про-блемно/предметно-ориентированных расширений для быстрой реализации сложных динамических систем на основе специализированных графических языков, включающих параметризуемые операторные блоки для представле-ния элементов технологического процесса и типовых задач обработки ин-формации. Набор инструментальных сред, сгруппированный по проблемной ориентации, охватывает все стадии производственного процесса и выглядит следующим образом: • интеллектуальное управление производством - G2 Diagnostic Assistant (GDA), Statistical Process Control (SPC) • оперативное планирование - G2 Scheduling Toolkit (GST), Dynamic Schedul-ing Packadge (DSP) • разработка и моделирование производственных процессов - G2, ReThink • управление операциями и корпоративными сетями - Fault Expert

G2 - динамическая система и полном смысле этого слова. Это объ-ектно-ориентированная интегрированная среда для разработки и сопро-вождения приложений реального времени, использующих базы знаний. G2 функционирует на большинстве существующих платформ: Solaris 1 and 2, Unix, OpenVMS, Windows NT/2000 Professional XP. База знаний G2 сохраня-ется в обычном АSСII-файле, который однозначно интерпретируется на лю-бой из поддерживаемых платформ. Перенос приложения не требует его пере-компиляции и заключается в простом переписывание файлов. Функциональ-ные возможности и внешний вид приложения не претерпевают при этом ни-каких изменений.

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

Page 159: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

159

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

оперативных процессах. Использование мощности объектно-ориентированного программирования.

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

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

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

Для представления знаний используется структурный естественный язык, что позволяет облегчить чтение, редактирование и поддержку баз зна-ний. Это облегчает использование и редактирование приложений пользова-телем непрограммистом. Для создания и редактирования' баз знаний исполь-зуется Редактор Баз Знаний.

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

Page 160: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

160

• каждые л секунд для оценивания правила в указанном интервале времени. Подобно правилам, процедуры выполняются в реальном времени.

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

Работа в реальном времени. Работа в реальном времени, операционные решения и реакции зачастую должны быть выполнены мгновенно. Приклад-ные программы в С2 могут одновременно выполнять рассуждения относи-тельно многократно выполняемых действий в реальном масштабе времени, перерабатывая тысячи правил, выполняя процедуры и модели согласно их приоритетам. Для хранения хронологий данных и событий и для рассужде-ния относительно поведения через какое-то время используются переменные типа время. С2-графика может моделировать знание, представляя объекты, связи и зави-симости между объектами. Графическая связность объектов позволяет рас-ширить прикладную программу, используя графическое объединение анало-гов. Графика включает встроенные диаграммы (графики), таблицы и рисунки и т.д. G2 также работает с утилитами графического интерфейса Windows. Эти утилиты используют все преимущества объектно-ориентированных воз-можностей G2.

Динамическое моделирование и моделирование для анализа « ЧТО-ЕСЛИ».

G2 позволяет динамически моделировать системы и процессы, исполь-зуя оъбекты, правила, процедуры и формулы. Во время разработки моде-ли используются вместо оъюектов реального мира, что позволяет не-прерывно проверять прикладные программы в течении их разработки. Модели могут сипользоваться на этапе эксплуатации как часть при-кладной программы G2 для сравнения фактических и модельных знаний. Модели можно также использовать для проведения анализа и ответа на вопросы «ЧТО-ЕСЛИ», определения, непример, лучших рабочих усло-вий или лучших проектов, предсказания важных параметров действий в реальном времени, например, качество изделия или затрат.

G2 объединяет в себе как универсальные технологии построения современных информационных систем (стандарты открытых систем, архитектура клиент/сервер, оъбектно-ориентированное выполнение в реальном времени многих независимых процессов), так и специализиро-ванные методы (рассуждения, основанные на правилах, рассуждения, основанные на динамических моделях, или имитационное моделирова-ние, процедурные рассуждения, активная оъбектная графика, структу-

Page 161: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

161

рированный естественный язык для представления базы знаний), а также интегрирует технологии систем, основанных на знаниях с тех-нологией традиционного программирования (с пакетами программ, с СУБД, с контроллерами и концентраторами данных и т.д.)

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

Page 162: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

162

Лекция 15

Введение в язык Пролог.

1. Язык Пролог.

Пролог - язык программирования на основе логики (logic program-ming language). В качестве содержательной составляющей изложения выберем предметную область “Мир геометрических фигур”, а в ней – подобласть “Треугольник”

ПО “Треугольник”: модели знаний и Пролог-программа

I. Идентификация.

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

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

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

II. Концептуализация.

Содержательная модель вычислительной задачи (фрагмент). Точка в двумерном пространстве определяется двумя координата-ми;

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

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

Список сущностей. Точка в двумерном пространстве однозначно определяется двумя ко-

ординатами, координаты = пара чисел, отрезок однозначно определя-ется двумя точками – концами отрезка, сторона есть отрезок,

Список отношений. Отношения и свойства: “инцидентность” – симметричное отношение,

“принадлежит” – транзитивное отношение, “лежит на”, “проходит через”, “является частью” и т.д.

Характеристики треугольника: длина (l, функция, ее значение есть чис-ло 0), угол (функция, радианы, градусы), (полу)периметр (p, P, функция, число 0), площадь (S, функция, число 0).

Page 163: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

163

III. Формализация.

Логико-математическая модель.

Построим все нужные МПЗ в привязке к Проблеме, Цели и Задаче, см. п.I. Обозначения приведены на рис. 1.

Рис. 1. Треугольник – рассматриваемый геометрический объект и его подобъекты. Сетевые модели построим, используя граф-дерево, а потому одновре-

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

“Точка”, Точка(X,Y), “имеет координаты”, “Треугольник”, “инцидентность” – симметричное отношение, “принадлежит” – тран-

зитивное отношение, “лежит на”, “проходит через”, “является частью” и т.д.:

P1= точка (см. рис. 1) seg = сторона 1 1 точка точка 1 1 2 3 Т=треугольник точка точка точка

Page 164: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

164

4 2 6 4 7 1

Рис.2. Представление объектов в виде деревьев

Итак, cинтаксически все объекты данных в Прологе представляют собой термы. Например, P1, треугольник, точка(1,1) point(1,1), дата(1, май, 1983) суть термы.

Будем использовать русский алфавит (лишь для собственного понима-ния), а при переходе на язык собственно Пролог-программы будем использо-вать латинский алфавит, например, точка(1,1) - point(1,1), отрезок или сто-рона - seg и т.д. Здесь слова: точка - point и сторона - seg, составленные из букв соответствующих алфавитов, являются (и называ-ются) именами. Итак,

имя - это цепочка (строка) букв и/или цифр, начинающиеся с буквы (строчной, маленькой). Например, треугольник – triangle.

Константы - это символы, числа и атомы. Значением константы явля-

ется ее имя. Например, константа 2 соответствует только числу 2. Числа бывают целыми и вещественными. Синтаксис целых чисел

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

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

нающейся с заглавной буквы. Например, X (но не прописная x). Особый вид переменной - анонимная переменная, начинающаяся знаком подчеркивания _ и используемая в качестве аргумента предиката, когда конкретное значение переменной несущественно. Например, Точка(_,Y).

Понятно, что, например, терм Точка(X,Y) – 2-местный предикат, выра-жающий отношение определимости точки ее координатами X,Y (как видим, здесь X,Y - переменные).

Атом - константа (“атом - неделимый, цельный и т.п.”, именно так атом

и воспринимается Пролог-программой). Атом получается так: пусть имеется атомарная формула (литерал), ска-

жем, Точка(X,Y), если означить X = 1 и Y = 2, то получим выражeние без переменных - Точка(1,2) - это и есть пример атома.

Еще пример, взяв Q(X, f(Y)) и положив X = 1 и Y = a, а затем подставив их в Q(X, f(Y)), получаем атом Q(1, f(a)). Поэтому же, точка(-2,5) - атом, полученный из точка(X,Y).

Теперь ясно, что атомы имеют тип идентификатор (symbol) или строка (string). Как видим,

Page 165: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

165

атом имеет вид ω(t1,t2 ...tn), где ω − n-арный предикатный символ - имя отношения, t1,t2...tn − термы- кон-станты.

Переменные и константы - примеры простых объектов. Итак,

Простые объекты - это и есть переменные и константы. Далее, точка(1,1), point(1,1) и т.п. - это факты. Факт – конкретизированный=означенный предикат, например, предикат

точка(X,Y) после подстановки (после означивания, конкретизации) X=1 и Y=1 становится фактом точка(1,1). Итак,

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

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

Пример 1. Факты, описывающие телефонные номера: телефон(иванов,т561532). телефон(петров,т642645).

Это означает: телефон Иванова - 56-15-32 и т.п. Перед цифрами номера идет буква "т". Она делает номер телефона литерной константой, т.к. числа 561532, 642645 слишком велики, чтобы быть числовыми константами.

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

Как видим, раз факты-данные образуют БД и лежат в разделе predi-cates, то и БД (ее тогда называют еще и БФ) находится в разделе predicates. А раз предикаты - логические модели знаний, то их совокуп-ность называют иногда еще и БЗнаний.

Предикат точка(X,Y) является примером предиката с именем-функтором “точка”, а имя используется здесь, как видим, для объединения объектов - здесь простых объектов: переменных X,Y. Итак,

функтор - это имя, используемое для объединения аргументов при об-разовании некоторого составного объекта Пролога, в данном примере со-ставного объекта точка(X,Y).

Как видим, этот и любой функтор определяется двумя параметрами: - именем, синтаксис которого совпадает с синтаксисом атомов; - арностью, т.е. числом аргументов.

Page 166: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

166

Составные объекты: структуры и списки

Список (list) представляет собой объединение элементов произвольных видов, разделенных запятыми и заключенных в квадратные скобки. Приме-ры списков: [P1, P3, P2], [1, 3, 5, 7], [красный, зеленый].

Список - это такая структура данных, которая либо состоит из двух частей: головы -первого элемента и хвоста - всего остального, либо пуста. Например, [ ] - пустой список, а P1 - это голова в списке [P1, P3, P2], где P3, P2 - хвост. Хвост также является списком.

Структура (str) - предикат - это конструкция, состоящая из имени структуры и заключенных в круглые скобки аргументов, разделенных запя-тыми. Примеры структур: точки(P1,P3,P2), str(A,B,C), цвет(красный, жел-тый), носит(юрий,пиджак).

Элементами структур могут быть числа, атомы, переменные, другие структуры и списки. Количество элементов структуры не может меняться при выполнении программы.

Списки отличаются от структур еще и тем, что количество элементов может меняться при выполнении программы. На практике часто бывает удобным трактовать хвост списка как самостоятельный объект. Например, пусть есть список L = [a,b,c]. Тогда его Хвост = [b,c], а чтобы выразить это же при помощи квадратных скобок, в Прологе предусмотрено ещё одно расши-рение нотации для представления списка, а именно вертикальная черта, отде-ляющая голову от хвоста: L=[a|Хвост]. Вертикальная черта позволяет пере-числить любое количество элементов списка, затем поставить символ | , а по-сле этого - список остальных элементов. Так, список [a,b,c] можно предста-вить следующими способами: [a,b,c] = [a|[b,c]] = [a,b|[c]] = [a,b,c|[ ]].

Вернемся к вычислительной задаче. Вводя и используя соответст-вующие функторы, в дополнение к построенным объектам создадим следу-ющие объекты: P3 = point(4,2), P4 = point(6,4), P5 = point(7,1) и St1 = seg1(P3, P4)=seg1(point(4,2), point(6,4)), Тр=треугольник, Tr = triangle. Представление этих объектов в виде деревьев приведено на рис. 2.

Логические модели. Переменные: X, Y, Z,… . Предикаты: Точка(X,Y), seg1(Z,T),… . Факты: seg1(P3, P4),… . Правила-продукции: если P3= point(4,2) и P4 = point(6,4), то seg1(P3, P4) = seg1(point(4,2), point(6,4)).

Правила-продукции A →B в Прологе по традиции пишут в инвертированном виде B A, а вместо пишут :- . Итак, в Прологе правила (rule, продук-ции) записывают в виде импликации

B :- A.

Page 167: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

167

А раз правила (rule, продукции) - логические и/или продукционные модели знаний, то они входят в БЗнаний, но в свои особые разделы: Clauses /* раздел клауз: (правила, условия, предложения, утверждения */ Goal /*цель, раздел целей*/

(Вернемся к задаче). Фреймы (фреймовые модели) (определимся с тем, что хотим модели-

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

Имя фрейма Треугольник Слот1 вершины число вершин 3 Слот2 стороны число сторон 3 Слот3 углы число углов 3 и т.д.

Если же считать, например, син_угла именем другого фрейма, то, указав связь между фреймом “треугольник” и фреймом “ син_угла” получим сеть фреймов из 2-х этих фреймов.

Вычислительная модель (ВМ) любой вычислительной задачи имеет

следующую форму: ЗНАЯ М ВЫЧИСЛИТЬ Y1, Y2,…, YN ПО X1, X2,…, XM.

Здесь М, Y1, Y2,…, YN, X1, X2,…, XM - величины, которые имеют смысл, опре-деляемый их вхождением в задачу; обычно это переменные. Идентификато-ры ЗНАЯ, ВЫЧИСЛИТЬ и ПО имеют фиксированный смысл и служат для разделения величин (переменных). Переменные X1, X2,…, XM являются вход-ными для задачи, значения их задаются в постановке задачи. Переменные Y1, Y2,…, YN – выходные, значения их требуется вычислить. М – величина (пере-менная), которая выражает условие задачи. Данные, являющиеся значением М, выражают знания в виде вычислительных моделей, включающих в свой состав переменные и отношения между ними.

Функциональная семантическая сеть (ФСС). Вычислительную мо-

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

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

Page 168: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

168

Рис. 3.

Теперь, используя знания и данные, представленные в этой ФССети,

можно найти, например, площадь треугольника S по известным данным, на-пример, стороне с и прилегающим к ней углам и . Тогда имеем

ЗНАЯ М - зависимость между S и стороной с прилегающими к ней угла-ми ВЫЧИСЛИТЬ S ПО с, , (здесь Y1=S, X1= с, X2=, X3=, а.указанная зависимость М есть формула S = hс*с/2, для использования которой нужно сначала найти hс по данным с, , . Расчет других характеристик треуголь-

Page 169: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

169

ника столь же очевиден. Для реализации вычислений на ЭВМ вычислитель-ная модель доопределяется указанием типов данных: целое, вещественное, символьное и т.д. (это и есть онтологическая модель, точнее, ее часть).

IV. Aлгоритмизация (алгоритм, блок-схема) и программирование (программа).

Алгоритм для вычислительной задачи очевиден. Программная реализация алгоритма вычислительной задачи на тради-

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

(запрос) найти площадь треугольника, если даны 2 стороны и угол между ними. (вопрос) ?- чему равна площадь треугольника, если заданы 2 стороны и угол между ними. (ответ) площадь треугольника равна … (число).

Вопрос (запрос к Пролог-программе) - отправная точка логического

вывода: на любой вопрос (запрос) Пролог-программа будет пытаться дать ответ «да» либо «нет» в зависимости от того, согласуется или нет предложение, стоящее в вопросе, с фактами и правилами базы зна-ний. Вопрос, не содержащий переменных, является общим – он обращен ко всей БЗ: «имеет ли место факт…?», «верно ли, что…?», т.е. «следу-ет ли, что…?»; как видим, - это продукция (точнее, ее часть), которую для понимания пишем сначала в семантически понятном виде, а затем

приведем соответствующую форму записи на Прологе. Например, к базе знаний примера 1 можно поставить вопрос ?-телефон(иванов,Т123456).

и ответ будет «Нет», т.к. константа т123456 не согласуется ни с одним фактом из БФ примера 1:

телефон(иванов,т561532). телефон(петров,т642645).

А на вопрос ? - point(4,2).

к базе знаний вычислительной задачи на экране появится ответ «да», т.к. point(4,2) в запросе согласуется с point(4,2) - одним из фактов БФактов:

point(6,4). point(7,1). point(4,2).

Page 170: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

170

seg1(P3, P4). seg1( point(4,2), point(6,4)).

Это согласование и есть сравнение или сопоставление с образцом;

как видим, образцы лежат в БЗ). Вопрос, в котором имеются переменные, является частным: «для каких

значений переменных факт ... имеет место?». В ходе сопоставлений при вы-полнении Пролог-программы переменные получат значения тех констант (т.е. конкретизируются), для которых сопоставление запроса успешно, т.е. успешно сопоставление факта в запросе с фактом-образцом из БФ БЗ, а от-вет будет выведен на экран. Так, в ответ на вопрос

? - телефон(иванов, X). к базе знаний примера 1 на экране появится ответ «да». А на вопрос

? - point(4,Y). к базе знаний вычислительной задачи на экране также появится ответ «да».

Возможны также запросы: (запрос) треугольник прямоугольный. (вопрос) ?- треугольник прямоугольный. Однако, (пока) получим ответ “нет”, т.к. (пока) эти предложения просто не с чем сопоставлять, но и программ пока не закончена!

Пролог-программа также может осуществить запрос (вопрос) (к поль-зователю), если он предусмотрен программистом в программе. Например, если точка не имеет заданных координат (нет таких данных в БД), то следует предусмотреть такой запрос (вопрос):

zapros:- makewindow ( “Введите координаты точки” ). Т.к. это продукция (правило), то разместить указанное предложение Пролога следует в разделе Правил - в разделе Clauses. Конечно, тогда следует предусмотреть выполнение этого запроса, т.е. преду-смотреть соответствующую цель в разделе Goal - разделе Целей, которая вы-глядит в данном случае очень просто: Goal zapros. В Прологе все предложения программы - факты, правила, вопрос - заканчи-ваются точкой (см. приведенные выше и ниже примеры).

Математические модели вычислительной задачи (фрагмент). Формулы: периметр P = a+b+c, полупериметр p=P/2, S= ha*a /2, ++=, S2=p(p-a)(p-b)(p-c) и т.д.

Математические (арифметические) выражения в Прологе Пусть надо найти S= ha*a /2 в Пролог-программе. Здесь 2 возможности: - просто написать S= ha*a /2, - использовать определяемый программистом предикат, area(X,Y,Z) или плщд(X,Y,Z) - 3-х местный предикат, в котором X,Y являются переменными-

Page 171: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

171

сомножителями, которые равны данным, исходным=входным или вычислен-ным, например, X= ha,Y=a, Z является результатом, Z = X*Y/2, используя системный оператор is и получая в итоге продукцию

плщд(X,Y,Z):- Z is X*Y/2. Ее “латинский=прологовский” вариант

area(X,Y,Z):- Z is X*Y/2. Итак, имеем пока следующий фрагмент Пролог-программы triangle.pro и ее структуры

triangle.pro /* Имя программы */ Predicates /* раздел описания предикатов */

point(4,2). point(6,4). point(7,1). seg1(P3, P4). seg1( point(4,2), point(6,4)). …

Clauses /* раздел клауз – раздел правил и др. */ area(X,Y,Z):- Z is X*Y/2. /* здесь X= ha - высота на Y=a – основание

или */ /* X= hс и Y=с, или же X= hb и Y=b */

… zapros:- makewindow ( “Введите координаты точки” ).

Goal /* раздел описания целей*/ zapros.

Пока в программе triangle.pro отсутствуют следующие разделы: Constans /* раздел констант, не обязательный */ Domens /*Спецификация: характеризация типов переменных и т.д.*/

/* (например) name = symbol /*имя: тип переменной symbol */. А разделы Clauses /* раздел правил, условия, предложения, правила, утверждения */ Goal /*Цель, раздел внутренних целей*/ представлены пока лишь указанными выше фрагментами.

Т.к. пока программа triangle.pro не закончена, приведем для целостно-

го понимания темы простую и понятную по своему смыслу программу вы-числения факториала.

Factrl.pro /*Комментарий: Factrl.pro – это имя программы*/

/*Факториал (n!=1·2···n= n(n-1)!, например 4! = 1·2·3·4 = 24, по определению 0! = 1)*/ predicates /* … */ factr(integer, integer) /* … */

Page 172: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

172

clauses /* … */ factr(0,1):- !. /* … */ factr(N,R):- M=N-1, /* … */ factr(M,P), /* … */ R= P*N. /* … */ goal /* … */ factr(3,Z), /* … */ write(“Факториал3=”,Z),nl. /* … */ Задание. Привести свои комментарии.

Логико-математические модели в Прологе Фразы (клаузы) Хорна содержат в общем случае импликацию и конъ-

юнкцию предикатов В1, В2,…, Вn А, или в других обозначениях: А В1, В2,…, Вn (читается: А если В1 и В2 и…и Вn).

А:- В1, В2,…, Вn, здесь роль конъюнкции выполняет запятая “ , ” (а роль дизъюнкции выполняет точка с запятой “ ; ”).

Фраза Хорна является формой записи правила, и в дальнейшем будет называться правилом. Предикат А называется заголовком или головой прави-ла, а предикаты В1, В2,…, Вn его подцелями (тело правила). Очевидно, что отдельный предикат является частным случаем фразы Хорна: А – правило без тела. Другой частный случай фразы Хорна – правило без головы

:- В, или

:- В1, В2,…, Вn. Такая фраза Хорна называется вопросом. Будем записывать выражение «:- В» в виде «? – В», а выражение «- В1, В2,…, Вn» записывать в виде

«? - В1, В2,…, Вn». Поясним логический смысл этой формулы (вопроса). Напомним, что импликация А:- В (В А) может быть выражена через отрицание и

дизъюнкцию: ~ВА (задание: проверить это с помощью таблицы истинно-сти). Значит, если отбросить А, останется только ~В, т.е. отрицание В. Далее, формула В1, В2,…, Вn означает отрицание конъюнкции ~(В1В2…Вn), что по закону де Моргана ~(Х У) = (~Х) (~У) равно дизъюнкции отрица-ний (~В1) (~В2) … (~Вn).

Пример. Рассмотрим предметную область: сдача экзамена по некото-рой дисциплине. Введем знания о предметной области:

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

Введем обозначения: А – студент успешно сдает экзамен, В – студент посещал занятия, С – студент освоил учебный материал,

Page 173: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

173

D – студент занимался самостоятельно, Форма логической записи (логическая модель): А: - С С: - В,D; В; D. В приведенном примере можно выполнить логический вывод. Так, из

истинности фактов В и D и правила С:- В, D следует истинность С, и из пра-вила А:- С - истинность предиката А, т.е. студент успешно сдал экзамен. Кроме того, правила А:- С и С:- В, D можно было бы переписать в виде А:- В, D.

В подобных случаях используют правила вывода, называемые мето-дом резолюций.

Рассмотрим простую форму резолюции. Допустим, имеются «роди-тельские» предложения

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

правилу вывода: допуская, что неА и допуская, что А, если В выводим неВ. Еще более простой случай: отрицание: ~А факт: А. Резольвента: ~А&А Как видим, здесь резольвента: ~А&А есть противоречие, потому что

~А&А = Л. Логическая программа – это множество выражений, связанных кван-

тором всеобщности, записанных в форме импликаций вида

n321 bbbba исчисления предикатов первого порядка. Здесь a и bi – положительные лите-ралы, которые иногда называют атомарными целями. При этом

а – это заголовок выражения, а конъюнкция bi-тых – его тело (цели). Такие предложения называются хорновскими выражениями (Horn

clause) или клаузами. Они могут быть записаны в трех формах: 1. n321 bbbb – это так называемое беззагловочное выра-

жение или проверяемые цели. 2. 1a

Page 174: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

174

na

a2

называются фактами (fact). 3. выражение n1 bba называется отношением правила (или

кратко, правилом). Множество фраз Хорна применительно к некоторой проблемной об-

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

цепочку (строку) со строчной буквы: анна, nil, x25, x_25, x_25AB, x_, x_y, альфа_бета_процедура, мисс_Джонс, (во всех примерах нет ни одной пере-менной, т.к. любая переменная начинается с заглавной буквы). Например, точка(1,1) и point(1,1) – это атомы.

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

3) из цепочки символов, заключенной в одинарные кавычки. Это удоб-но, если нужно, например, иметь атом, начинающийся с прописной буквы. Заключая его в кавычки, мы делаем его отличным от переменной: 'Том', 'Южная_Африка', 'Джонс'

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

рые состоят из нескольких компонентов. Например, дату можно рассматри-вать как структуру, состоящую из трех компонент: день, месяц, год. Эти компоненты, в свою очередь, могут быть структурами. Хотя они и состав-лены из нескольких компонент, структуры в программе ведут себя как еди-ные объекты. Для того чтобы объединить компоненты в структуру, требует-ся выбрать функтор. Так для “день, месяц, год” подойдет функтор дата. То-гда дату 1-е мая 1983 г. можно записать так: дата(1, май, 1983). Все компо-ненты в данном примере являются константами (две компоненты - целые числа и одна - атом).

Например, угол(p1,стрн1,стрн2) и ugl(p1,seg1,seg2) – структуры, со-стоящие из компонент: p1 (семантика p1: вершина угла) и стрн1, стрн2, seg1, seg2 (их семантика: стороны треугольника, образующие этот угол), как ви-дим, все три компонента - атомы.

Компоненты могут быть также переменными или структурами.

Page 175: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

175

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

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

[Элемент1, Элемент2,...] или

[Голова | Хвост] или

[Элемент1, Элемент2,...| Остальные] Например, [P1, P3, P2] – список точек–вершин треугольника. Список рассматривается в Прологе как специальный частный случай

двоичного дерева. Список - это упорядоченный набор объектов - элементов списка, сле-

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

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

[10,24,1,8,385,0,8] [0.4, 67.43, 986.01, 914.5] ["ПЕТРОВ П.Р.", "ИВАНОВ Б.О.", "СИДОРОВТ.К."]

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

Список

Голова

Хвост

[1,2,3,4]

1

[2,3,4]

[‘а’,’b’,'с']

'а'

[’b’,'с']

["Курсант”]

"Курсант"

[]

[]

не определено

не определено

Page 176: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

176

Наглядным представлением процесса разбиения списка на голову и хвост является графическое представление в виде бинарного (двоичного) де-рева. Для списка [1,2,3,4] таким деревом будет следующее:

Рис. 1. Представление списка [1,2,3,4] в виде дерева.

Пролог-система распознает тип объекта по его синтаксической форме

в тексте программы: синтаксис Пролога предписывает различные формы за-

писи для различных типов объектов данных: так переменные начинаются с

прописной буквы, тогда как атомы - со строчной и т.д. Поэтому чтобы Про-

лог-система распознала тип объекта, ей не требуется сообщать больше ника-

кой дополнительной информации (такой, например, как объявление типа

данных). Ниже приведена классификация объектов данных Пролога.

Объекты данных

Простые объекты Структуры

Константы Переменные

Атомы Числа Символы

Для использования списков в Пролог-программе необходимо: 1) В разделе domains описать домен списка. Домен списка задается в форма-те: <ИМЯ ДОМЕНА>=<ТИП ЭЛЕМЕНТА>* Например, домен списка, элементами которого являются целые числа, опи-сывается следующим образом:

domains list_num=integer*

Page 177: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

177

или list_num=elem* elem=integer

2) Описать работающий со списком предикат в разделе predicates, например: predicates

num(list_num) 3) Ввести или создать в программе собственно список, т.е. задать список в разделах goal или clauses.

Пример задания списков в Пролог-программе в разделе clauses, их представления в разделе predicates и описания в разделе domains:

domains

list1=symbol* list2=num* list3=symbol* num=integer

predicates name(list1) score(list2) point(list3)

clauses point([P1,P3,P2]) name(["ПЕТРОВ П.Р.", "ИВАНОВ Б.О.","СИДОРОВ Т.К."]). score([1,3,5,7,9]).

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

Запрос Результат point(Y) Y = [P1,P3,P2]

name(Х) Х= ["Петров П. Р.", "Иванов Б. О.", "Сидоров Т. К."]. score([A,B,_,_, C]) А=1, В=3, С=9

При использовании в Пролог-программе списков с произвольным чис-лом элементов используется метод разделения списка на голову и хвост. Этот метод обеспечивает рекурсивную обработку списка. Операция разделения списка на голову и хвост в языке Пролог обозначается вертикальной чертой (|) и записывается в виде:

[Head | Tail] Здесь: Head - переменная для обозначения головы списка; Tail - переменная

Page 178: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

178

для обозначения хвоста списка. Рассмотрим программу распечатки содержимого списка, элементы

которого могут быть целыми числами или символьными строками: domains

Iist1=integer* Iist2=symbol*

predicates print_list(list1) print_list(list2)

clauses print_list([]). print_list([Head | Tail]): - write( Head), nl, printJist(Tail).

goal print_list([1,2,3,4]).

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

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

Опишем работу программы. Первоначально аргумент целевого внут-реннего запроса print_list([1,2,3,4]) сопоставляется с первым вариантом пра-вила; сопоставление терпит неуспех, так как [1,2,3,4]#[]. Затем выбирается второй вариант правила, здесь сопоставление завершается успехом и выпол-няется операция | - разделения целевого списка на голову и хвост. Результа-том ее является означение Head=1 и Tail=[2,3,4]. Далее начинают последова-тельно выполняться предикаты тела правила.

Первым в теле стоит стандартный предикат write(Head), который выво-дит на экран значение переменной Head, в данном случае 1, затем выполня-ется стандартный предикат nl - перевод строки и формируется рекурсивный вызов print_list([2,3,4]). Снова обращение к первому варианту правила и сно-ва неуспех - [2,3,4]#[], и снова успешное сопоставление со вторым вариантом и т. д. В конечном итоге переменная Head становится равной 4, a Tail=[], и теперь после рекурсивного вызова print_list([]) сопоставление для первого варианта правила завершится успехом - []=[], этот вариант правила не имеет рекурсии - он является фактом и интерпретируется Прологом как цель дос-тигнута и целевой запрос считается удовлетворенным.

Page 179: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

179

Рассмотрим Пролог-программу подсчета суммы произведений эле-ментов двух векторов X и Y, представленных списками X=[x1, ,х2,...хn] и Y=[y1, ,у2,...уn]:

domains

vector=integer* predicates

prod(vector,vector,integer) clauses

prod([],[],0). prod([X|Xs],[Y|Ys],S):-prod(Xs,Ys,Sp), S=X*Y+Sp.

goal prod([1,2,3],[7,8,9],Res),write("Res=",Res).

Предикат prod(...) является трехместным: первый аргумент – список X, второй - список У и третий - сумма произведений списков. В разделе clauses описаны два варианта правила для этого предиката.

Первый вариант - утверждение о том, что сумма произведений элемен-тов пустых списков равна 0. Второй вариант правила реализован с использо-ванием хвостовой рекурсии. Выражение S=Х*У+Sр означает, что текущая сумма равна сумме произведений текущих элементов вектора и частичной суммы, полученной на предыдущих шагах вычислений.

Схематично действия при выполнении программы представлены в табл. 2. Рекурсивное правило описывает отсроченные вычисления - после ре-курсивного вызова остается не выполненным хвост правила, копии которого помещаются в стек до тех пор, пока не произойдет сопоставление с первым вариантом правила. И после того, как это произойдет, частичная сумма Sp" получит значение 0 и все накопленные в стеке хвостовые вычисления будут выполнены в обратном порядке.

Таблица 2. Действия при выполнении программы

Вызов предиката

Подстановки

Хвостовые вычис-ления

Результаты вы-числений

Prod([1,2,3],[7,8,9],Res)

X=1,Y=7, Xs=[2,3],Ys=[8,9], Res=S

S=X*Y+Sp

S=1*7+43=50

Prod([2,3],[8,9],Sp)

X'=2, Y'=8, Xs'=[3], Ys'=[9], S=Sp

Sp=X'*Y'+Sp'

Sp=2*8+27=43

Prod([3],[9],Sp')

X"=3, Y"=9, Xs"=[], Ys"=[], Sp=Sp'

Sp'=X"*Y"+Sp"

Sp'=3*9+0=27

Page 180: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

180

Prod([],[],Sp")

Xs"=[],Ys"=[], Sp"=0

Sp"=0

Правило в логике имеет вид: A1...Am A0, однако в Прологе принята «обратная» запись правила.

Правило в Прологе имеет вид: A0 ←A1,..., Am или вид A0 :- A1,..., Am , m 0,

где А0, А1,..., Аm - атомы. Атом А0 называется заголовком, а А1,...,Аm - телом правила. Тело может быть пустым (при m = 0) - такие правила называют фактами. Атом имеет вид ω(t1,t2 ...tn), где ω - n-арный предикатный символ или имя отношения; t1,t2...tn - термы.

Терм - это либо имя переменной, либо константа, либо составной терм вида f(t1,t2...tn), где f - n-арный функциональный символ. Функции, задавае-мые логической программой, представляются в виде отношений: n-местная функция y=f(x1,x2...xn) представляется в виде (n+1)-местного отношения вида F(x1,x2...xn, y).

Запрос (цель) имеет вид: ← C1,C2, ...,Cr или вид :- C1,C2,...,Cr ,

где С1,С2,...,Сr - атомы, r - натуральное число: 0, 1,… . Каждое правило допускает логическую и процедурную интерпретации (се-мантики).

Логическая интерпретация правила A0←A1...Am − «истинность А0, следует из истинности А1 и истинности А2, и..., и истинности Аm» или «А0 истинно, если истинны А1 и A2, и..., и Аm». Таким образом, правила рассмат-риваются как формулы языка логики предикатов вида:

x1x2...xn(A1A2 ...Am A0). Здесь − квантор общности, − логическая связка И, - логическая связка ЕСЛИ-ТО. В Прологе, в силу традиции, данные формулы записываются в обратную сторону и используются другие обозначения для логических свя-зок: обозначается «,» (запятой) или словом and; обозначается «;»(точкой с запятой) или словом or; - импликация (следование) обозначается в языке программирования Пролог как «:-» (двоеточие и минус) или слово if. Все пе-ременные в предложениях связаны квантором общности, поэтому обычно знак квантора опускается (однако он всегда неявно предполагается, имеет-ся в неявном виде, по умолчанию). Формула A0 ←A1...Am, т.е. формула A1A2 ...Am A0 с использованием связок и , может быть преобразована в эквивалентную, но имеющую только связки (HE) и (ИЛИ), формулу вида:

A0A1 A2 ...Am (m≥0). Такие формулы и называются хорновскими дизъюнктами, а стиль

программирования − хорновским.

Page 181: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

181

Процедурная интерпретация правил Пролога вида: А0:-А1,А2... Аm или A0 if A1 and A2 and... and Am

следующая: «для достижения цели А0 необходимо последовательно достичь (всех под)целей А1, А2,..., Am».

Соответственно, для фактов (получаемых формально из правил в том частном случае, когда m = 0) имеет место логическое прочтение: «А0 истин-но», а соответствующая ей процедурная интерпретация факта такова: «цель А0 достигнута».

Логическая семантика запроса G: ← С1,С2,...,Сr (с переменными х1, x2,..., хi) к логической программе понимается как требование-цель: вычис-лить все значения переменных x1, x2,..., xi, при которых утверждение С1С2 ...Сr логически следует из утверждений программы или, записывая это, как принято в логике, необходимо показать, что

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

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

Метод резолюций, получив на вход логическую программу с присое-диненным к ней запросом в виде множества хорновских дизъюнктов, пытает-ся построить вывод пустого дизъюнкта, обозначаемого символом [ ] (соот-ветствует множеству). Если это ему удается, тогда цель допускается, в противном случае отвергается. Реализуется метод резолюций с помощью двух правил: правила резолюции и правила склейки, которые во время работы вызывают процедуру унификации − сопоставления.

Унификация − процесс, на вход которого поступает два терма и для них находится унификатор.

Унификатором двух термов называется подстановка, которая делает термы одинаковыми. Если унификатор существует, то термы называются унифицируемыми и для них отыскивается наиболее общий унификатор, если нет − процедура унификации сообщает об отказе.

Пусть имеются два терма t1=ОТЕЦ(Х,Y) и t2= ОТЕЦ(«ПЕТР», «ПАВЕЛ»). Унификатором этих двух термов будет подстановка =(Х=«ПЕТР», Y=«ПАВЕЛ»), т.е. если в терм t1 вместо переменных X и Y подставить значения из соответствующих мест терма t2, термы станут одина-ковыми, а значением их будет пример ОТЕЦ(«ПЕТР», «ПАВЕЛ»).

Page 182: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

182

Пусть теперь t1=ОТЕЦ(Х,«ИВАН») и t2=ОТЕЦ(«ПЕТР»,«ПАВЕЛ»). В этом случае унификация невозможна, так как с помощью подстановки термы нельзя сделать одинаковыми − на втором месте в обоих термах стоят разные константные выражения.

Если бы термы были, например, вида t1=ОТЕЦ(Х,«ИВАН») и t2=ОТЕЦ(«ПЕТР»,Z), тогда =(Х=«ПЕТР»,Z=«ИВАН»), и пример для этих термов ОТЕЦ(«ПЕТР», «ИВАН»).

Правило резолюции позволяет из дизъюнктов D1= A1(t)A2...An , D2 = A1(s)B1…Bm

получить новый дизъюнкт D = (A2...AnВ1...Bm). Здесь − наиболее общий унификатор термов t и s, обеспечивает их равенство и означает, что все подстановки унификатора выполнены для всех атомов, входящих в дизъ-юнкты D1 и D2. Дизъюнкты D1 и D2 называют родителями дизъюнкта D. В дизъюнкте D отсутствует пара: A1(t) А1(s), при этом (t) = (s) и пара является тавтологией (тождественно-истинной) и может быть удалена из дальнейших вычислений, что и выполняет правило резолюции.

Правило склейки позволяет из дизъюнкта A(t) A(s) В1... Вn по-лучить дизъюнкт (A(t) B1 ... Bn), т.е. осуществляется «склеивание» одинаковых атомов (A(t) и A(s)), полученных после унифицирующей подста-новки t = s.

Рекурсия - это естественный способ обработки списочных структур. Список (list) - это структура данных, представляющая собой упорядоченный набор элементов (или даже самих списков). Для обработки списков в языке PROLOG используются унификации и рекурсии. Сами элементы списков за-ключаются в квадратные скобки ([]) и отделяются друг от друга запятыми. Приведем несколько примеров списка на языке PROLOG. [1, 2, 3, 4] [[george, kate], [allen, amy], [don, pat]] [tom, dick, harry, fred] []

Первый элемент списка может отделяться от его хвоста оператором |. Хвост списка – это список после удаления первого элемента. Например, для списка [tom, dick, harry, fred] первым элементом является tom, а хвостом – список [dick, harry, fred]. С помощью оператора | и процедуры унификации можно разделить список на компоненты.

- Если список [tom, dick, harry, fred] соответствует шаблону [X|Y], то X=tom и Y=[dick, harry, fred].

- Если список [tom, dick, harry, fred] соответствует шаблону [X, Y| Z], то X=tom, Y=dick и Z=[harry, fred].

- Если список [tom, dick, harry, fred] соответствует шаблону [X, Y, Z| W], то X=tom, Y=dick, Z=harry и W=[fred].

Page 183: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

183

- Если список [tom, dick, harry, fred] соответствует шаблону [W, X, Y, Z | V], то W=tom, X=dick, Y=harry, Z=fred, V=[].

Помимо разбиения списка на отдельные элементы унификацию можно ис-пользовать для построения списочной структуры. Например, если X=tom, Y=[dick] и L унифицируется с [X|Y], то переменная L будет связана со спи-ском [tom, dick]. Термы, отделенные друг от друга запятыми и расположен-ные до вертикальной черты, являются элементами списка, а находящаяся по-сле вертикальной черты структура всегда является списком, а точнее, его хвостом.

Рассмотрим пример рекурсивной обработки списка: проверку принад-лежности элемента списку с помощью предиката member. Определим преди-кат, позволяющий выявить наличие элемента в списке. Предикат member должен зависеть от двух аргументов: элемента и списка. Он принимает зна-чение «истина», если данный элемент содержится в списке. Например,

?- member (a, [a, b, c, d, e]). Yes ?- member (a, [1, 2, 3, 4]). No ?- member (X, [a, b, c]). X=a ; X=b ; X=c ; no

Чтобы определить предикат member рекурсивно, сначала проверим, является ли X первым элементом списка. member (X, [X|T]).

Этот предикат проверяет, идентично ли значение Х первому элементу списка. Если нет, то естественно проверить, содержится ли Х в оставшейся части (Т) списка. Это определяется следующим образом. member (X, [Y|T]) :- member (X, T).

Таким образом, проверка наличия элемента в списке на языке PROLOG выполняется с помощью двух строк. member (X, [Х|T]). member (X, [Y|T]) :- member (X, T).

Этот пример иллюстрирует значение встроенного в PROLOG порядка поиска, при котором условие останова помещается перед рекурсивным вызо-вом, а значит, проверяется перед следующим шагом работы алгоритма.

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

Выполним трассировку предиката member (c, [a, b, c]) с нумерацией.

Page 184: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

184

1: member (X, [X|T]). 2: member (X, [Y|T]) :- member (X, T). ?- member (c, [a, b, c]).

call 1. fail, since ca call 2. X=c, Y=a, T=[b, c], member (c, [b, c])?

call 1. fail, since cb call 2. X=c, Y=b, T=[c], member (c, [c])?

call 1. success, c=c yes (to second call 2.)

yes (to first call 2.)

yes

2. Примеры Пролог-программ

Пример 1. Пусть имеется следующая предметная область (ПО или “мир”), представлен-ная

следующей содержательной моделью знаний и данных об этом “мире студентов-

выпускников”: выпускнику в зависимости от набранной им при обучении суммы баллов Z

присваивается квалификация в соответствии со следующей таблицей (градаций):

100 Z 80 - M - магистр,

80 > Z 60 - S - специалист,

60 > Z 40 - B - бакалавр,

40 > Z 0 - H - неудачник (справка вместо диплома).

Как видим, Z - целое число, а имена квалификации M, S, B, H - символы.

Ограничения: 100 Z 0. Обозначения: импликации Z 80 M и т.п., т.е. А В, где

А= Z 80 и В= M, пишем далее в виде В:– А (т.е. так, как и требует язык Пролог). Пролог

также требует, чтобы вместо “и - & - ” – т.е. любых видов конъюнкции была написана запятая “,”

а вместо “или - ” – т.е. любых видов дизъюнкции была написана точка с запятой “;” – потому

что таков синтаксис этого языка. Значит, если нужно написать, например, Z 60 “что-то”, ска-

жем, Z 60 ! , то нужно записать это так Z 60, !. (а если это - все выражение, которое надо на-

писать, то непременно нужно поставить точку “.” в его конце, что и сделано).

Теперь в соответствии с таблицей (градаций) сформулируем=представим содержатель-

ные знания о данной ПО = “мире” в виде формальных правил (продукций) с предика-том

вида grad(Z, “X”), выражающим бинарное отношение: квалификацию выпускника X,

XM, S, B, H, в соответствии с набранной им суммой баллов Z:

grad(Z, “M”) :– Z 80 (Z 80 M, т.е. если Z 80, то М - магистр, т.к. здесь X=М),

Page 185: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

185

grad(Z, “S”) :– 80 > Z 60 (Z …, т.е. если… - самостоятельно),

grad(Z, “B”) :– 60 > Z 40 (… самостоятельно),

grad(Z, “N”) :– 40 > Z 0 (…самостоятельно).

Эти простенькие логико-математические (т.е. формальные) модели разместим в БЗ (БД)

(как увидим, эта БЗ окажется распределенной по соответствующим разделам = частям Про-

лог-программы, где /*…*/ - это комментарий, его при первом просмотре программы лучше игно-

рировать).

PrgrmKvalif.pro /* имя программы с расширением .pro – от prolog */

Domens /* раздел описания констант, переменных - указание их типов - и т.п.*/

X = integer /* X - целое число ( это тип) - переменная ( это ее “роль”)*/

R = symbol /* R - символ (тип) - переменная */

Predicates /*раздел предложений- предикатов; содержит свою часть БЗ*/

grad(X, R)

Clauses /* раздел правил и т.п., содержит свою часть БЗ (БД) */

grad(Z, “_”) :– Z >= 100, !, fail. /* с помощью ! и fail учли ограничение 100 Z, чем */

/* защитили себя и программу от ошибок этого вида */

grad(Z, “_”) :– Z < 0, !, fail. /* учли ограничение Z 0, чем защитили себя */

/* и программу от ошибок и такого вида*/

grad(Z, “M”) :– Z >= 80, !. /* здесь и ниже роль ! та же */

grad(Z, “S”) :– Z >= 60, !.

grad(Z, “B”) :– Z >= 40, !.

grad(Z, “H”).

/*здесь использованы предикаты ! и fail самого Пролога – встроенные предикаты*/

/* подробное описание этих и других предикатов дадим далее*/

/*здесь же приведем лишь следующие краткие сведения: роли fail и ! в данной программе*/

/* указаны выше и для первого знакомства с ними этого достаточно*/

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

них лишь выделены ключевые понятия, на которые в дальнейшем следует обратить свое внимание):

предикат fail - предикат остановки механизма возврата, так что при запросах вида

grad(327, “M”) к данной программе предикат fail, остановит механизма возврата, т.к. 327 > 100, и

поэтому на запросы указанного вида программа всегда ответит нет,

предикат ! – предикат отсечения: отсекает все последующие откаты, точнее, в случае сра-

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

=нижеследующие правила, так что они (даже) не рассматриваются Пролог-системой.

Page 186: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

186

Задание-вопрос (для тех, кто знаком с основами Пролога, а кто знакомится сейчас, может по-

смотреть подсказки чуть ниже): почему вместо правила

grad(Z, “M”) :– 100 >= Z >= 80, !.

достаточно использовать правило grad(Z, “M”) :– Z >= 80, !.

Аналогичные вопросы и для всех других правил.

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

они в ней и указаны (сверху вниз); если условие правила не выполняется, то Пролог-система пере-

ходит к следующему правилу и т.д.; если же условие правила выполняется, как, скажем, в правиле

grad(Z, “M”) :– Z >= 80 оно выполняется при Z =95, т.е. условие оказывается истинным, то Про-

лог-система реализует заключение всего этого правила, в данном случае – это М и Z=95; а реали-

зовать его Пролог-система имеет право и обязана, потому что в этом случае все условие Z >= 80, !

этого правила истинно; а истинно оно потому, что Z >= 80, ! - это конъ-юнкция условий Z >= 80

и ! , которая истинна когда истинны оба ее условия одновремен-но, но условие ! истинно все-

гда, а т.к. в данном случае Z=95, то условие Z >= 80 тоже истинно.

Крайне важно, чтобы Вы могли сами проводить хотя бы такие же рассуждения, по сути, триви-

альные.

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

на данные (знания) из БД (БЗ), представленные в теле самой программы

(внутренние данные) и/или вне программы (внешние по отношению к самой про-

грамме данные). Данные - это объекты и связи, представленные аргументами

и предикатами (связи: свойства, отношения, соответствия, функции, однако,

функции также представлены как отношения).

Пример 2. Задача «Какие объекты являются собаками?». Приведем лишь фрагмент программы. Он позволит понять различие между программированием на Прологе и алгоритмическим програм-мированием (попробуйте написать этот же фрагмент на другом известном Вам языке программирова-ния). На Прологе задача описывается следующим образом (при Пролог-про-граммировании не забы-вайте перейти с русских букв на английские):

собака(рекc). /* факт «рекc - это собака» */ собака(Х) :- родитель(Х,У),собака (Y). /* вывод «объект является */ /* собакой, если он является родителем*/ /*объекта Y, являющегося собакой*/ родитель (голди,рекс). /* факт «голди является родителем рекса»*/

родитель (джок,рекс). /* факт «джок является родителем рекса» */

Пример 3. Программа распечатки содержимого списка, элементы которого могут быть це-лыми числами или символьными строками:

domains Iist1=integer* Iist2=symbol*

predicates

Page 187: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

187

print_list(list1) print_list(list2)

clauses print_list([ ]). print_list([Head | Tail]): - write( Head), nl, printJist(Tail).

goal print_list([1,2,3,4]).

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

О работе программы. Первоначально аргумент целевого внутреннего запроса print_list([1,2,3,4]) сопоставляется с первым вариантом правила; сопоставление терпит не-успех, так как [1,2,3,4]#[ ]. Затем выбирается второй вариант правила, здесь сопоставление завершается успехом и выполняется операция | - разделения целевого списка на голову и хвост. Результатом ее является означение Head=1 и Tail=[2,3,4]. Далее начинают последо-вательно выполняться предикаты тела правила.

Первым в теле стоит стандартный предикат write(Head), который выводит на экран значение переменной Head, в данном случае 1, затем выполняется предикат nl - перевод строки и формируется рекурсивный вызов print_list([2,3,4]). Снова обращение к первому варианту правила и снова неуспех - [2,3,4]#[ ], и снова успешное сопоставление со вторым вариантом и т. д. В конечном итоге переменная Head становится равной 4, a Tail=[ ], и те-перь после рекурсивного вызова print_list([ ]) сопоставление для первого варианта правила завершится успехом - [ ]=[ ], этот вариант правила не имеет рекурсии - он является фактом и интерпретируется Прологом как цель достигнута и целевой запрос считается удовлетво-ренным.

Пример 4. Пролог-программа «Вывод текста на печать»

TPvtprnt.pro domains

file = textfile predicates

read_write clauses

read_write:- not(eof(textfile)), readln(Str), write(Str), nl, read_write. read_write. goal openread(textfile, “readme.txt”), readdevice(textfile), read_write, closefile read_write readdevice(keyboard).

Page 188: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

188

Основными средствами управления процессом вычислений в Прологе являются стан-дартные предикаты fail (неуспех) и ! (отсечение). Назначение этих предикатов и методы их использования рассмотрим на примере следующей программы на Турбо-Прологе:

exam.pro domains st=student(fam,pr,oc) fam,pr=symbol num,oc=integer g=gr(num,st) predicates kurs_22(g) clauses kurs_22(gr(261,student(“Петров П.Р.”,”Программирование”,5))). kurs_22(gr(261,student(“Иванов Б.О.”,”Операционные системы”,5))).

kurs_22(gr(261,student(“Сидоров Т.К.”,”Системы управления”,4))). kurs_22(gr(262,student(“Жигарев С.И.”,”Программирование”,3))). kurs_22(gr(262,student(“Демин С.Л.”,”Системы управления”,5))). kurs_22(gr(261,student(“Петров П.Р.”,”Иностранный язык”,4))).

kurs_22(gr(263,student(“Сидоров Е.Р.”,”Операционные системы”,5))). Приведенная программа в разделе clauses содержит утверждения-факты, в данном случае информацию о результатах сдачи экзаменов студентами соответствующих групп (номер группы - первый компонент структуры gr) по соответствующим дисциплинам (фамилия, дисциплина, оценка - компоненты структуры student, которая входит в состав структуры gr). Если теперь (после компиляции программы) в качестве внешней цели ввести запрос: kurs_22(X) то в диалоговом окне будет выведена информация:

Х=gr(261,student(“Петров П.Р.”,”Программирование”,5)) Х=gr(261,student(“Иванов Б.О.”,”Операционные системы”,5)) Х=gr(261,student(“Сидоров Т.К.”,”Системы управления”,4)) Х=gr(262,student(“Жигарев С.И.”,”Программирование”,3)) Х=gr(262,student(“Демин С.Л.”,”Системы управления”,5)) Х=gr(261,student(“Петров П.Р.”,”Иностранный язык”,4)) Х=gr(263,student(“Сидоров Е.Р.”,”Операционные системы”,5)) 7 Solutions

т.е. будут найдены все варианты решений, т.к. в запросе не задано ограничений на значения переменной Х. Наложим ограничение, например, на номер учебной группы. Тогда для внешнего запроса kurse_22(gr(261,X)) результатом будет

Х=student(“Петров П.Р.”,”Программирование”,5) Х=student(“Иванов Б.О.”,”Операционные системы”,5) Х=student(“Сидоров Т.К.”,”Системы управления”,4) Х=student(“Петров П.Р.”,”Иностранный язык”,4) 4 Solutions

Приведем еще один внешний запрос: kurs_22(gr(Z,student(“Петров П.Р.”,X,Y))) Пролог-программа ответит:

Z=261, Х=Программирование, Y=5 Z=261, Х=иностранный язык, Y=4 2 Solutions

Page 189: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

189

Если теперь любой из этих запросов сделать внутренним, т.е. записать в разделе goal, от-компилировать и выполнить программу, то, кроме сообщения Press the SPACE bar, в диа-логовом окне не будет результатов, т.к. мы не задавали предикатов вывода значений ре-зультата внутреннего запроса.

Изменим внутренний запрос: goal kurse_22(X),write(X).

Здесь для вывода значений переменной Х после сопоставления используется системный предикат write(…). Результаты такого запроса будут помещены в диалоговое окно в виде:

gr(261,student(“Петров П.Р.”,”Программирование”,5)) т.е. будет найдено первое подходящее решение. Если теперь, не меняя запроса, изменить порядок предложений в программе, например, поменять местами первое со вторым, то ре-зультат будет другим:

gr(261,student(“Иванов Б.О.”,”Операционные системы ”,5)) Как видим, Пролог чувствителен к порядку предложений в программе: правила просмат-риваются сверху вниз. Для того, чтобы заставить Пролог осуществить поиск всех вариан-тов решения задачи при использовании внутренней цели в программе (в данном варианте это вывод на экран всех фактов), необходимо организовать циклический перебор альтер-нативных решений. В Прологе это можно сделать различ-ными способами. Один из них - использовать свойство Пролога выполнять поиск альтернативного решения при неудач-ной попытке применения текущего. В этом случае Пролог выполняет откат до ближай-шей альтернативы, восстанавливает первоначальные условия поиска и процесс начинается заново с найденной новой альтернативы. Для организации таких вычислений в языке есть специальный предикат fail, который всегда завершается неуспехом и вызывает откат до ближайшей альтернативы.

Для цели перебора всех альтернативных фактов в примере и вывода их на экран в состав программы введем нульместный предикат show и правило вида: show:-kurse_22(X),write(X),fail. Для этого в разделе predicates добавим строку show, в разделе clauses поместим строку show:-kurse_22(X),write(X),fail.

Зададим также внутреннюю цель вида: goal show.

В этом случае на экран будут выведены все 7 альтернативных решений - после на-хождения первого переменная Х будет означена константой первого факта, полученное значение переменной Х сопоставляется аргументу предиката write(X), который выведет его на экран, после чего выполняется предикат fail, который завершается неуспехом и Пролог выполняет откат до ближайшего недетерми-нированного предиката (т.е. имеюще-го несколько вариантов правил, а это в данном случае предикат kurse_22(X) ), будет вы-бран второй факт, выполнено сопоставление и т.д. до тех пор, пока не будут перебраны все альтернативы.

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

Изменим предикат show: show:-kurse_22(gr(X,student(Y,Z,K))), Z=”Программирование”, write(“Группа-”,X,”Студент-”,Y,”Оценка-“,K), nl fail.

Page 190: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

190

Тогда для внутреннего запроса: goal show

на экран будет выведено: Группа-261Студент-ПЕТРОВ П.Р.Оценка-5 Группа-262Студент-ЖИГАРЕВ С.И.Оценка-3

Таким образом, сравнение Z=”Программирование”, выполняет двоякую роль: с од-ной стороны, это фильтр, который не допускает выполнения предиката write(…) при не-успешном сравнении, а с другой - вызывает из-за неуспешного сравнения откат до бли-жайшей альтернативы. При этом, если бы не было предиката fail, было бы получено толь-ко первое решение, а fail обеспечивает перебор всех альтернатив. Предикат nl является стандартным, он выполняет переход на следующую строку при выводе информации экран. В Турбо-Прологе имеются средства, с помощью которых можно заблокировать поиск с возвратом. Для этих целей служит специальный предикат, который называется отсечение (cut) и обозначается восклицательным знаком: !. Для демонстрации его использования в нашем примере добавим предикат отсечения в правило show:

show:-kurse_22(gr(X,student(Y,Z,K))), Z=”Программирование”,!, write(“Группа-”,X,”Студент-”,Y,”Оценка-“,K), nl fail. Тогда для внутреннего запроса:

goal show

на экране будет выведена информация: Группа-261 Студент-ПЕТРОВ П.Р.Оценка-5

В данном варианте после успешного сравнения Z=”Программирование” предикат ! пре-кращает условия поиска после формирования условия «неуспех» предикатом fail.

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

Преобразуем предикат show к виду: show:-kurse_22(gr(X,student(Y,Z,K))), Z=”Программирование”,!,К=3, write(“Группа-”,X,”Студент-”,Y,”Оценка-“,K), nl

fail. В этом случае не будет получено результатов, т.к. после поиска первого решения для Z=”Программирование” переменная К=5 и сравнение 5#3 сформирует неуспех, который не приведет к возврату для поиска следующей альтернативы для предиката kurse_22(gr(X,student(Y,Z,K)), так как условия возврата уже сброшены отсечением. Введем в правило еще один предикат kurse_22(gr(А,student(B,C,D))), который зависит от других переменных - это принципиально. Предикат show будет следующим:

show:-kurse_22(gr(X,student(Y,Z,K))), Z=”Программирование”,!, kurse_22(gr(А,student(B,C,D)),D=3,B=Z, write(“Группа-”,A,”Студент-”,B,”Оценка-“,D), nl, fail.

После внутреннего запроса show на экран будет выведена информация в виде:

Page 191: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

191

Группа-262Студент-ЖИГАРЕВ С.И.Оценка-3 Отметим, что часть правила после отсечения ! осуществляет полный перебор всех

фактов программы, начиная с первого, с помощью фильтра D=3, B=Z, а при его выполне-нии - с помощью fail. Другими словами, отсечение ограничивает распространение аргу-ментов для подбора новых значений возврата (бэктрекинга) из-за неудачи. Отсечение применяется также для ускорения вычислений путем отбрасывания избыточных ветвей вычислений.

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

Пример 5. Пролог-программа подсчета суммы произведений элементов двух векторов X и Y, представленных списками X=[x1,х2,...хn] и Y=[y1, ,у2,...уn]:

domains vector=integer*

predicates prod(vector,vector,integer)

clauses prod([],[],0). prod([X|Xs],[Y|Ys],S):-prod(Xs,Ys,Sp),

S=X*Y+Sp. goal

prod([1,2,3],[7,8,9],Res),write("Res=",Res). Предикат prod(...) является трехместным: первый аргумент – список X, второй -список Y и третий - сумма произведений списков. В разделе clauses описаны два варианта правила для этого предиката. Первый вариант - утверждение о том, что сумма произведений эле-ментов пустых списков равна 0. Второй вариант правила реализован с использованием хвостовой рекурсии. Выражение S=Х*У+Sр означает, что текущая сумма равна сумме произведений текущих элементов вектора и частичной суммы, полученной на предыду-щих шагах вычислений. Схематично действия при выполнении программы представлены в табл. 2. Рекурсивное правило описывает отсроченные вычисления - после рекурсивного вызова остается не выполненным хвост правила, копии которого помещаются в стек до тех пор, пока не произойдет сопоставление с первым вариантом правила. И после того, как это произойдет, частичная сумма Sp" получит значение 0 и все накопленные в стеке хвостовые вычисления будут выполнены в обратном порядке.

Таблица 2. Действия при выполнении программы

Вызов предиката

Подстановки

Хвостовые вычис-ления

Результаты вы-числений

Prod([1,2,3],[7,8,9],Res)

X=1,Y=7, Xs=[2,3],Ys=[8,9], Res=S

S=X*Y+Sp

S=1*7+43=50

Prod([2,3],[8,9],Sp)

X'=2, Y'=8, Xs'=[3], Ys'=[9], S=Sp

Sp=X'*Y'+Sp'

Sp=2*8+27=43

Page 192: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

192

Prod([3],[9],Sp')

X"=3, Y"=9, Xs"=[], Ys"=[], Sp=Sp'

Sp'=X"*Y"+Sp"

Sp'=3*9+0=27

Prod([],[],Sp")

Xs"=[],Ys"=[], Sp"=0

Sp"=0

Пример 6. Программа распечатки содержимого списка, элементы которого могут быть целыми числами или символьными строками:

domains Iist1=integer* Iist2=symbol*

predicates print_list(list1) print_list(list2)

clauses print_list([ ]). print_list([Head | Tail]): - write( Head), nl, printJist(Tail).

goal print_list([1,2,3,4]).

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

Рекурсивное описание правила содержит в своем теле ссылку на заголовок этого же правила. При этом возможны следующие варианты рекурсивных правил:

1) правая рекурсия pr1():-pr11(),pr12(),…,pr1().

2) левая рекурсия pr1():-pr1(),pr21(),pr22(),..

3) обобщенная рекурсия pr1():-pr11(),pr12(),…,pr1(),pr21(),pr22(),…

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

1) заданием в программе альтернативного правила или факта pr1(), не содержащего рекурсии (выход произойдет при успешном выполнении этого альтернативного правила);

2) формированием условия выхода одним из предикатов pr11(),pr12()…- выход происходит, если в процессе выполнения правила хотя бы один из предикатов завершается успехом.

Предикаты pr21(),pr22()…не влияют на выполнение рекурсии – они выполняются только после выхода из нее и получают значения переменных из стека, в который они по-

Page 193: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

193

мещаются во время выполнения рекурсии. Производимые при этом вычисления называют хвостовыми вычислениями.

Реализация рекурсивных определений в Прологе рассмотрим на примере вычисле-ния факториала. Программа на Прологе имеет вид:

factrl.pro domains number,product=integer predicates fact(number,product) clauses

fact(1,1):-! fact(N,R):-Next_N=N-1, fact(Next_N,P), R=N*P.

goal fact(3,Res),write(“Факториал3=”,Res),nl.

Программа Факториал (с рекурсией = обращением этой «процедуры» к себе самой, т.к.

n!=1·2···n можно вычислить так: n!= (n – 1)!·n, например 4! = 1·2·3·4 = 3!·4 =24, причем

0! = 1 по определению, а это и есть окончание рекурсии, т.к. больше нечего вычислять).

Приведем эту же программу с комментарием.

/*Программа на Турбо-Прологе имеет следующую структуру:*/

factrl.pro /*Имя factrl с расширением .pro */

domains /* определение типов данных, здесь, см ниже, тип integer */

number, product=integer

predicates /*определение предикатов, здесь ниже всего один предикат factr

(от factorial) */

factr(number,product) /* предикат factr, number, product - его аргументы */

clauses /* определение правил и фактов*/

factr(1,1):- ! /*1-е правило “как вычислить 1!” (точнее, 1-й вариант правила =1-й

/* вариант решения): вычислить надо так 1!=1 - вот и все, поэтому и стоит*/

/* здесь ! - оператор отсечения: все остальное отсечь как не нужное, т.к. цель*/

/* factr(1,1) достигнута: factr(1,1)=1, так что дальнейшая рекурсия не нужна*/

factr(N,R):- Next_N=N–1, /* 2-й вариант правила, 2-й вариант решения) */

/* правило состоит из головы factr(N,R) и */

/*хвоста: Next_N=N–1, factr(Next_N,P), R=N*P - «тело» правила */

factr(Next_N,P), /* 3-й вариант правила */

R=N*P. /* «другое» правило*/

goal /* goal - цель, точнее, определение целей; здесь, см. ниже, их две */

/* внутренние цели программы:1-й целевой запрос-задание «вычислить3!» factr(3,Res) */

/* - это цель 1, а затем 2-й целевой запрос вывести (write) полученный результат*/

Page 194: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

194

/* на экран - это цель 2*/

factr(3,Res), /* factr(3,Res) - 1-й внутренний целевой запрос - цель 1*/

/*при этом factr(3,Res) - предикат (запроса), 3, Res его аргументы */

write(“Факториал3=”,Res),nl. /*это цель 2: write(“Факториал3=”,Res) - это*/

/* предикат (запроса), где “Факториал3=” и Res - аргументы этого предиката */

/*Конец Пролог–программы*/

Page 195: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

195

Лекция 16

Экспертные системы и Пролог

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

Язык программирования Пролог.

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

тественно-языковой фразы, был создан еще до появления самого понятия экспертных систем, и основан на формализме логики предикатов 1-го порядка (с переменными). Раз-личные реализации языка Пролог фактически являются производными от версии языка на Фортране (Roussel, 1975), опирающейся на переносимый интерпретатор (Battani, 1973).

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

Теорема выражена n-арными предикатами с переменными или пара-метрами, относящиеся к сфере действия квантора всеобщности. Переменные могут быть замещены любым правильно построенным выражением языка. Запись Р(х1, х2,..., хn), где xi - переменные, Р - n-арный предикат, интерпрети-руется так: Р(х1, х2,..., хn) истинно.

Пролог - интерпретатор формул логики предикатов; это позволяет ему использовать многие возможности логики предикатов 1-го порядка.

Действие интерпретатора распространяется на предикаты, приведен-ные к НДФ - нормальной дизъюнктивной форме. Любое предложение (как дизъюнкция предикатов) записывается в виде

(h1h2… hi) (С1 С2 ... Cj), что, интерпретируется (в силу законов де Моргана и равносильных фор-мул: А→В ≡ ĀВ) в виде

h1 h2 ... hi → C1 C2 ... Cj . Характерной особенностью языка Пролог является то, что он имеет дело только с хорновскими предложениями - с предложениями, которые имеют самое большее один "положительный" литерал (справа), другими словами, имеется только одно заключение C1. Язык запрещает иметь дело с дизъюн-ктивными заключениями типа C1 С2. Под литералом понимается любой терм hi или Ci из предложения, представленного в НДФ.

Все интерпретаторы для языка Пролог являются иллюстрацией доказа-тельства теорем с использованием принципа резолюции. Этот принцип,

Page 196: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

196

предложенный Эрбраном (1931), был воссоздан и запрограммирован Робин-соном (1965). Он является обобщением метода доказательства от противно-го: принцип резолюции состоит в том, что доказывается противоречивость предложения pq (равносильно, (pq)), тем самым, доказывается справед-ливость импликации p q. Этот метод является полным и позволяет дока-зывать все теоремы данной формальной системы, но связан с большим объе-мом комбинаторных вычислений и недостаточно естествен для человека, редко рассуждающего от противного (тем не менее, интерпретирующие программы оказываются эффективнее человека... ).

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

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

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

Предложения отбрасываются в порядке их появления, а внутри каждо-го предложения литералы отбрасываются справа налево. Эта стратегия явля-ется полной.

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

Преимущества Пролога для ЭС

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

Page 197: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

197

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

Система МЕСНО - решение задач механики на языке Пролог.

Система МЕСНО решает с помощью исчисления предикатов задачи механики,

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

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

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

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

имеется (частица, р1) масса (р2, т2, время-1) правый-конец (S1. е1) измерение (т1,b) имеется (блок, рl1) дано (m1) получить (S1, тi1) имеется (нить, S1) масса (р1, m1, время-1) фиксированный-контакт (е1, р1, время-1) коэффициент-трения (рl1, 0) фиксированный-контакт (е2, р2, время-1) ускорение (р2, ассе1, 90°, время-1) фиксированный-контакт (рl1, тil1, время-1) имеется (частица, p2) масса (S-, 0, время-1) левый-конец (S1, е2) ускорение ((р1. ассе1, 270°, время-1) имеется (период, время-1) дано (m2) измерение (m2, с) найти (ассе1)

Отыскивается по методу Марпля уравнение из БД (или БЗ), которое выражает иско-мую величину ассе1 в зависимости от данных, т1, т2 и g. Гравитационную постоянную g программа МЕСНО добавляет к условию сама. На первом этапе составляются уравнения для сил, действующих на частицы. Например, для частицы р1 имеем m1 g + натяжение-1 = m1 ассе1. Введение новой неизвестной "натяжение-1" требуется используемыми пра-вилами. Программа "знает", что эта величина имеет смысл натяжения и ей не хватает еще одного уравнения для решения задачи. Тогда она использует тот факт, что натяжение на другом конце нити должно быть тем же самым и составляет уравнение для сил, дейст-вующих на частицу р2. Исключая переменную "натяжение-1", программа получает ре-зультат.

Page 198: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

198

Описание системы МЕСНО

База физических знаний и модель предметной области. Система имеет упрощенное представление о мире, подчиняющемся законам лишь ньюто-новской механики и может работать только с объектами 0, 1 или 2 измере-ний. Точка - нульмерный объект, и ее роль может играть частица с массой или простая отметка на плоскости. Линия представляет собой одномерный объект и имеет два не совмещенных друг с другом конца. Эти простые поня-тия используются при описании многих других объектов. Например, блок, человек, груз могут быть описаны как точки, а такие объекты, как шнур, нить, брус, планка, хотя и обладают различными физическими свойствами, могут быть представлены в виде линий.

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

Логика управления. Все действия МЕСНО последовательно разлагаются в подцели с помощью одного из 150 правил вывода, имеющихся в базе зна-ний.

МЕСНО ищет правило (А1, А2,…) В, правый член которого В соот-ветствует поставленной цели. Посылки этого правила А1, А2,… определяют новые подцели. Поиск ведется в глубину сначала с неизменным порядком правил. Правила МЕСНО управляют созданием новых объектов, необходи-мых для решения задачи.

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

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

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

Например, правилу равенства соответствует следующая аксиоматика: равно (а, b) представитель (а, корень) представитель (b, корень)

представитель (а, b) является (а, корень) представитель (а, корень) дуга (а, b) представитель (b, корень)

которая позволяет упорядочить в дереве все равные элементы.

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

Выполнение

Page 199: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

199

Первый шаг. Сначала система МЕСНО не рассматривает уравнения или соотношения, которые вводили бы новый объект (вызов подцелей только ви-да D или SС). Это ограничение впоследствии отбрасывается.

Прогнозирование. Система МЕСНО использует семантическую инфор-мацию о физическом мире для того, чтобы решить, является ли промежуточ-ная цель приемлемой или для прогнозирования свойств решения: длина должна быть положительным числом, угол по отношению к плоскости меньше 180°. Даже такая форма знания влияет на выполнение правил равен-ства и принятие решения.

Для нахождения неизвестной величины х система МЕСНО последова-тельно выполняет следующие действия:

а) описывает неизвестную, т.е. уточняет ее физическую природу (на-пример, что это - масса), и определяет связанные с ней понятия (ускорение, направление движения, время);

б) ищет соотношения, т. е. составляет список возможных формул; в) находит подходящее уравнение, т.е. отбирает из предыдущего спис-ка

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

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

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

Реализация системы. Система МЕСНО была реализована на ЭВМ ОЕС-10 с памятью 80К слов

и с длиной слова 36 бит. Блок естественного языка содержит 900 предложе-ний. Интерпретатор Пролога занимает 20К памяти.

Испытания системы проводились по трем направлениям: механические блоки, движение частиц при постоянном ускорении, движение частиц по сложным траекториям.

Универсальная программа решения задач - GPS

GPS (Geneгal Problem Sо1veг) - известная программа ИИ (конец 50-х гг. 20-го века,

А.Ньюэлл, К.Шоу и Г.Саймон), способная решать однотипным способом такие непохожие задачи, как подсчет интеграла, логические головоломки, доказательство теорем, граммати-ческий анализ фразы (это объясняет слова “универсальная” в названии программы). Задачи, предлагаемые программе GPS, всегда представляются в следующем виде:

исходный объект, конечный объект,

Page 200: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

200

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

GPS имеет список этих операторов (операций) и использует его.

Общая стратегия GPS: разбиение на подзадачи.

Программа GPS всегда разбивает задачу на более простые подзадачи, т.е. реализует “метод редукции”. Чтобы осуществить разбиение должным образом, GPS пользуется различиями, существующими между обрабатывае-мым объек-том и тем, который нужно получить. Различием между 2-я объектами считается любое свойство, присутствующее в одном из них и отсутствующее полностью или частично в другом. GPS выбирает лишь те операции, которые могут уменьшить различия, отмеченные на данном этапе поиска. Таким образом, ис-пользуемый в GPS метод ориентирован на средства, позволяющие достичь цели (анализ “цели-средства”), и в этом он близок к действиям, которые в тех же ус-ловиях применяет и человек. Цели. GPS различает три главные цели: А(О, х) Применить оператор О к объекту х; С(О,Δ, х, у) Найти оператор О, который может уменьшить различие Δ между объектами х и у; Т(х,у) Преобразовать объект х в объект у.

Все задачи в исходный момент ориентированы на цель: Т (исходный объект, конечный объект).

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

ЕСЛИ целью ТО сравнить вход оператора О с объектом а; является обозначим различие через Δ; А (О,а) ЕСЛИ Δ=Ø ТО успех КОНЕЦ,

ЕСЛИ НЕТ поставить новую цель: С (Q, Δ, а, b) и поставить цель А (О, а) в очередь.

ЕСЛИ целью ТО брать операторы по очереди и смотреть, является не могут ли они уменьшить различия Δ; С (О, А, х, у) ЕСЛИ да ТО создать новую цель А (О, х). ЕСЛИ целью ТО обозначим различие между х и у через Δ; является ЕСЛИ Δ=Ø ТО успех КОНЕЦ, Т (х, у) ЕСЛИ НЕТ создать новые цели:

С (Q, Δ, x, y) и А (Q, x). ЕСЛИ Q применить нельзя ТО неудача,

Page 201: Конспект лекций Лекция 1 - files.lib.sfu-kras.rufiles.lib.sfu-kras.ru/ebibl/umkd/228/u_lectures.pdf · Лекция №1 Тема ... ми и др.). Развитие

201

ЕСЛИ можно ТО обозначить полученный новый объект через х΄ и создать новую цель:

Т (х΄, у).

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

e1 Исходный объект

e2 e3 e4 Объекты, образованные из e1 e5 e6 e7 e8 e9 Последующие объекты е10 е11

Рис. 1. Дерево поиска программы GPS.

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