Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИИЭС(I семестр)-2007.doc
Скачиваний:
17
Добавлен:
21.08.2019
Размер:
3.14 Mб
Скачать

Основные компоненты эс

Любая ЭС минимально должна включать два основных компонента, которые составляют её ядро: Базу знаний (БЗ) и Механизм логических выводов (МЛВ) (дедуктивнюу машину).

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

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

Пример факта:

Измерительный преобразователь №1 воспринимает сигнал «давление».

Правило имеет форму:

ЕСЛИ «…», ТО «…»

Пример:

ЕСЛИ высота больше 10000 м, ТО используется формула №5.

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

Пример:

Устройство №13 исправно с коэффициентом уверенности 0,8.

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

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

  • интерпретатор;

  • диспетчер.

Интерпретатор определяет, каким образом применять правило для вывода.

Диспетчер устанавливает конкретный порядок для решения определённой задачи.

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

Механизм вывода – средство машинного мышления Прямая цепочка рассуждений

Рассмотрим конкретную ситуацию:

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

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

Имеет место ситуация: Отказал основной датчик, измеряющий число М. Требуется предсказать последствия этой ситуации и к чему это приведёт.

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

Правило1

ЕСЛИ основной датчик отказал,

ТО подключён резервный датчик.

Правило2

ЕСЛИ подключён второй датчик,

ТО осуществляется проверка наличия информации в канале

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

Правило3

ЕСЛИ осуществляется проверка, и информации в канале нет,

ТО отказал резервный датчик.

Правило 4

ЕСЛИ осуществляется проверка, и информация есть,

ТО резервный датчик работает.

Правило 5

ЕСЛИ резервный датчик отказал,

ТО подключен алгоритм косвенной обработки.

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

Отправной точкой служит возникшая ситуация: Отказал основной датчик.

Затем сработает часть ЕСЛИ, первого правила. Ситуация, которая возникла, удовлетворяет сложившемуся в ней условию и выводится новая ситуация:

Подключен второй датчик, находящийся в холодном резерве.

При этом удовлетворяется условие ЕСЛИ второго правила, что приводит к возникновению следующей ситуации:

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

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

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

В этой ситуации система подключает к работе правила 3 и 4. При этом может возникнуть ситуация (правило 3), когда второй датчик отказал. В этом случае система включает в работу правило 5, что и приводит к использованию алгоритмов косвенного определения числа М.

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

Программа, реализующая такую прямую цепочку рассуждений должна:

  • отвечать на вопросы пользователя;

  • использовать принципы прямой цепочки рассуждений и БЗ.

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

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

  1. Система содержит описание ряда ситуаций.

  2. Для каждой ситуации система имеет в БЗ правила, в условной части которых упоминается исследуемая ситуация.

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

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

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

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

  • БЗ;

  • набор логических переменных;

  • очередь переменных логических выводов.

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

Тогда БЗ включает следующие пять правил.

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

Далее для разработки программы необходимо, чтобы каждая переменная, кроме текущего значения, имела некоторое описание и массив с номерами правил, в которых она фигурирует. Для рассматриваемого примера набор логических переменных – это 5 переменных из Таблицы 1. В качестве значения переменных может фигурировать «ДА», «НЕТ», «НЕОПРЕДЕЛЕНО». Описание переменных используется только для вывода соответствующего текстового сообщения пользователю. Соответственно, сама переменная имеет символьный тип «CHAR» и значение «Y», «N», «O». Описание переменной удобно хранить в строке массива символов CHAR*. Номера правил, в которые входят логические переменные, хранятся в целочисленном массиве INT[].

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

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

Пусть ситуация задана условием: “Основной датчик отказал”(SENSOR1 = ‘n’). Переменная SENSOR1 содержится в условной части правила 1 и первой помещается в очередь переменных логического вывода.

Проверяется правило 1. При его срабатывании присваивается значение переменной SENSOR2=0. Эта переменная помещается в очередь переменных логического вывода вслед за SENSOR1 и обрабатывается также. Эти действия осуществляются, пока не будут обработаны все переменные, задаваемые пользователем, и все правила. Переменные, для которых обработаны таким образом все правила, содержащиеся в их условной части удаляются из очереди. Затем обрабатывается следующая переменная из очереди. Когда очередь переменных логического вывода опустеет, прямая цепочка рассуждений закончена и получен окончательный вывод. Таким образом, БЗ и структуры данных при прямой цепочке рассуждений имеют вид:

Обобщённый алгоритм работы системы ИИ по осуществлению цепочки прямых рассуждений имеет вид:

ШАГ 1. Определить исходное состояние, ввести исходные данные.

ШАГ 2. Определить значение первой переменной условия и занести её в очередь.

ШАГ 3. Получить указатель на очередную переменную из очереди и удалить его оттуда.

ШАГ 4. По этому указателю получить саму переменную, чтобы узнать из её информации номер первого правила БЗ, в котором она встречается.

ШАГ 5. Вычислить логическую часть данного правила.

ШАГ 6. Если условие истинно, то определённое значение соответствует переменной. Внести их в очередь, то есть выполнить часть ТО правила.

ШАГ 7. Если ещё есть непроверенные правила для текущей переменной, то получить номер очередного и повторить всё с ШАГА 5.

ШАГ 8. Если все условия данной переменной проверены, то в результате применения правил очередь пополняется новыми указателями. Если таковые имеются, то идём на ШАГ 3.

ШАГ 9. Если таких указателей нет, то закончить процесс рассуждений. Порождённая частью ТО последнего из сработавших правил ситуация даёт окончательный вывод.