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

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

давлоткр : 1 было 'выведено по'

 [ прав2 из сепзапвд : 1 было сказано,

   прав5 из диагсеп : 1 было сказано ]

Процедура рассмотреть, выдающая ответы в такой форме, показана на рис. 14.16. Она обращается к предикату

импликация( Р0, P, Сила, Вер0, Вер)

соответствующему отношению "мягкой импликации" (см. рис. 14.15). Р0 — априорная вероятность события E, а P — его апостериорная вероятность. Сила — сила импликации, представленная как

сила( N, S)

Вер0 и Вер — соответственно априорная и апостериорная вероятности гипотезы H.

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

Наконец, несколько замечаний относительно новой версии процедуры ответпольз. Она будет проще, чем процедура рис. 14.11, так как в запросах, передаваемых пользователю, уже не будет переменных. На этот раз пользователь в качестве ответа введет некоторую вероятность (вместо "да" или "нет"). Если пользователю ничего неизвестно о событии, содержащемся в вопросе, то вероятность этого события не изменится. Пользователь может также задать вопрос "почему" и получить изображение объекта Трасса в качестве объяснения. Кроме того, следует разрешить пользователю задавать вопрос: "Какова текущая вероятность моей гипотезы?" Тогда, если он устал вводить новую информацию (или у него мало времени), он может прекратить консультационный сеанс, довольствуясь ответом системы, полученным на основании неполной информации.

% Процедура

% рассмотреть( Цель, Трасса, Ответ)

%

% находит степень правдоподобия утверждения "цель это правда".

% Оценка правдоподобия содержится в объекте Ответ. Трасса - это

% цепочка целей-предшественников и правил, которую можно

% использовать в объяснении типа "почему"

рассмотреть( Цель, Трасса, ( Цель: Вер) было

 'выведено по' ПравОтв) :-

 bagof( Прав: если Условие то Цель с Сила, Правила),

  % Все правила, относящиеся к цели

 априори( Цель, Вер0),

  % Априорная вероятность цели

 модиф( Вер0, Правила, Трасса, Вер, ПравОтв).

  % Модифицировать априорные вероятности

рассмотреть( Цель1 и Цель2, Трасса,

 ( Цель1 и Цель2 : Вер было 'выведено из'

   ( Ответ1 и Ответ2) ) :-

 !,

 рассмотреть( Цель1, Трасса, Ответ1),

 рассмотреть( Цель2, Трасса, Ответ2),

 вероятность( Ответ1, В1),

 вероятность( Ответ2, В2),

 мин( В1, В2, Вер).

рассмотреть( Цель1 или Цель2, Трасса,

 ( Цель или Цель2:Вер) было 'выведено из'

   ( Ответ1 и Ответ2) ) :-

 !,

 рассмотреть( Цель1, Трасса, Ответ1),

 рассмотреть( Цель2, Трасса, Ответ2),

 вероятность( Ответ1, В1),

 вероятность( Ответ2, В2),

 макс( В1, В2, Вер).

рассмотреть( не Цель, Трасса,

 ( не Цель:Вер) было 'выведено из' Ответ) :-

 !,

 рассмотреть( Цель, Трасса, Ответ),

 вероятность( Ответ, В),

 обратить( В, Вер).

рассмотреть( Цель, Трасса, ( Цель: Вер) было сказано) :-

 ответпольз( Цель, Трасса, Вер).

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных