Совершенствуем экспертную систему.




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

Создадим форму «Начало» с источником записей «Текущее». В ней расположим поле со списком «Состояние» с такими свойствами:

 

Рис. 2.11 - Форма «Начало» содержит поле со списком «Состояние»

 

Создадим Макрос 2, который закрывает форму «Начало» и открывает форму «Варианты».

 

Рис. 2.12 - Создание макроса Макрос2

 

Добавим в свойства поля формы «Начало» запуск Макроса 2 после обновления.

 

Рис. 2.13 - Макрос 2 будет выполняться после выбора начального состояния

 

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

 

Блок объяснений.

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

Давайте начнем с кнопки «Расшифровка вопроса», кото­рую пользователь будет нажимать, если ему непонятен воп­рос. В ответ ему будет выдаваться развернутая формулиров­ка вопроса, который система задает в текущем состоянии. Вы, вероятно, догадались, что все эти развернутые формули­ровки будут храниться в одной таблице. За основу можно взять таблицу «вопросы». У нее, правда, есть один недоста­ток — там нет никакой информации для терминальных состояний, когда уже у системы нет вопросов, поскольку она знает ответ. Ну что же, это — дело поправимое. В этих состояниях система будет сообщать пользователю, какой получен ответ. В итоге таблица будет выглядеть так:

Таблица 5

 

Состояние Вопрос
  Какая собака: длинношерстная или короткошерстная?
  Ответ: Короткошерстная. Вопрос: Рост собаки: более или менее 50?
  Ответ: Длинношерстная. Вопрос: Рост собаки более или менее 50 см?
  Ответ: Рост менее 50 см. Вопрос: У собаки короткий или длинный хвост?
  Ответ: Рост более 50 см. Вопрос: Собака весит более 50 кг или менее?
  Ответ: Рост менее 50 см. Вопрос: Собака доброжелательна?
  Ответ: Рост более 50 см. Вопрос: У собаки рост менее или более 70 см?
  Ответ: Короткий хвост. Вопросов больше нет.
  Ответ: Длинный хвост. Вопрос: Уши длинные или короткие?
  Ответ: Более 50 кг. Вопросов больше нет.
  Ответ: Менее 50 кг. Вопросов больше нет.
  Ответ: Да. Вопросов больше нет.
  Ответ: Нет. Вопросов больше нет.
  Ответ: Менее 70 см. Вопрос: Длинные или короткие уши у собаки?
  Ответ: Более 70 см. Вопрос: Окрас рыжий с белыми отметинами?
  Ответ: Длинные. Вопросов больше нет.
  Ответ: Короткие. Вопрос: Тело длинное или короткое?
  Ответ: Длинные. Вопросов больше нет.
  Ответ: Короткие. Вопросов больше нет.
  Ответ: Нет. Вопрос: Белоснежный окрас?
  Ответ: Да. Вопросов больше нет.
  Ответ: Короткое. Вопросов больше нет.
  Ответ: Длинное. Вопросов больше нет.
  Ответ: Да. Вопросов больше нет.
  Ответ: Нет. Вопросов больше нет.

Теперь сконструируем запрос, выбирающий из таблицы «Вопросы» строку, относящуюся к текущему состоянию.

Рис. 2.14 - Запрос, выбирающий текущий вопрос

 

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

 

Рис. 2.15 - Форма «Вопрос» с источником записей Запрос1 Вопросы

 

Сконструируем Макрос 3, открывающий форму «Вопрос».

 

Рис. 2.16 - Макрос 3 открывает форму «Вопрос»

 

Теперь остается на форме «Варианты» с помощью инструмента «Кнопка» панели элементов нарисовать кнопку и указать в ее свойствах, что нажатие на нее вызывает выполнение Макроса 3.

Рис. 2.17 - Кнопка5

 

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

Таблица 6

Таблица «Объяснения»

Состояние Текст
  Если собака короткошерстная, то это либо Английский бульдог, либо Гончая, либо Датский дог, либо Фоксхаунд, либо Мопс, либо Чихуахуа. Если собака длинношерстная, то это либо Кокер-спаниель, либо Ирландский сеттер, либо Колли, либо Сенбернар, Ньюфаундленд, либо Ирландский волкодав, либо Большой вандейский гриффон
  Если собака короткошерстная, и рост менее 50 см, то это либо Английский бульдог, либо Гончая, Либо Мопс, Либо Чихуахуа. Если более 50 см – Датский дог или фоксхаунд.
  Если собака длинношерстная и рост менее 50 см - то это либо Кокер-спаниель, либо Ирландский сеттер. Если более 50 см - либо Колли, либо Сенбернар, Ньюфаундленд, либо Ирландский волкодав, либо Большой вандейский гриффон
  Если собака менее 50 см с коротким хвостом, то это Английский бульдог. Если с длинным – или Гончая, или Мопс, или Чихуахуа
  Если собака более 50 см и весит более 50 кг – это Датский дог, если менее 50 кг - Фоксхаунд
  Если рост менее 50 см с доброжелательным характером - то это Кокер-спаниель. Если характер не доброжелательный - Ирландский сеттер
  Если собака более 50 см, а так же более 70 см - это либо Ирландский волкодав, либо Ньюфаундленд, либо Сенбернар. Если менее 70 см – или Колли, или Большой вандейский гриффон
  Установлено, что порода собаки - Английский бульдог. Дальнейшей детализации не требуется
  Если у собаки длинный хвост и длинные уши – то это Гончая. Если короткие уши - либо Мопс, либо Чихуахуа
  Установлено, что порода собаки – либо Датский дог. Дальнейшей детализации не требуется
  Установлено, что порода собаки – Фоксхаунд. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Кокер-спаниель. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Ирландский сеттер. Дальнейшая детализация не требуется
  Если рост собаки менее 70 см и у нее длинные уши – то порода Большой вандейский гриффон, если короткие уши – то порода Колли
  Если собака более 70 см с рыжим окрасом – это Сенбернар. Если без рыжего окраса, то порода – Ирландский волкодав или Ньюфаундленд
  Установлено, что порода собаки - Гончая. Дальнейшая детализация не требуется
  Если у собаки короткие уши и короткое тело – то это Мопс, если длинное тело - Чихуахуа
  Установлено, что порода собаки – Большой вандейский гриффон. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Колли. Дальнейшая детализация не требуется
  Если без рыжего окраса, но с белоснежным – то это Ирландский волкодав. Если другой окрас - Ньюфаундленд
  Установлено, что порода собаки – Сенбернар. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Мопс. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Чихуахуа. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Ирландский волкодав. Дальнейшая детализация не требуется
  Установлено, что порода собаки – Ньюфаундленд. Дальнейшая детализация не требуется

Дальше нужно поступать в точности так же, как и в предыдущем случае. Нужно сделать запрос, выделя­ющий из таблицы «Объяснения» то объяснение, кото­рое соответствует текущему состоянию, форму, свя­занную с этим запросом, макрос, открывающий эту форму, и кнопку на форме ВАРИАНТЫ, запускаю­щую этот макрос. P.S. При создании формы «Объяснения» пользоваться такими же правилами, как при создании формы «Вопрос».

Итак, как же будет работать наша система? Чтобы запустить ее, нужно открыть форму НАЧАЛО, раскрыть поле со списком и выбрать один из предлагаемых вари­антов (см. рис. 2.18). В данном случае выбран нулевой вариант, когда пользователь ничего не знает о классифи­кации интересующего его объекта.

После этого открывается форма ВАРИАНТЫ. Пользо­ватель ведет диалог с системой, каждый раз открывая поле со списком и выбирая один из предлагаемых ему в данном состоянии вариантов. Если ему что-то непонят­но, он нажимает соответствующую кнопку блока объяс­нения (см. рис. 2.19).

Рис. 2.18 - Первые шаги работы экспертной системы: открывается поле со списком (1) и выбирается один из предложенных вариантов (2)

 

Рис. 2.19 - Диалог пользователя: открывается поле со списком и выбирается один из предложенных вариантов; в случае затруднения следует нажать одну из кнопок

 

Нажатие кнопки «Объяснения» рас­крывает соответствующую форму с разъяснениями, соответствующими текущему состоянию (рис. 2.20). Чтобы закрыть ее, нужно щелкнуть по крестику в левом верх­нем углу формы.

 

 

 

Рис. 2.20 - Работа блока объяснения

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: