НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

6.4. Использование экспертных систем при принятии решений

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

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

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

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

* (Дело в том, что в Великобритании широко распространен футбольный тотализатор.- Прим. ред.)

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

  1. Команде дается два очка, если у нее побед больше, чем игр, проигранных и сведенных вничью.
  2. Команде дается одно очко, если у нее побед больше, чем поражений.
  3. Команде дается два очка, если она не проиграла ни одной игры.
  4. Команде дается одно очко, если она ни разу не сыграла вничью.
  5. Команде дается одно очко, если она забила больше мячей, чем пропустила.
  6. Команде дается два очка, если она забила мячей, по крайней мере, в 2 раза больше, чем пропустила.
  7. Команде дается два очка, если число ее побед, по крайней мере, в 2 раза превосходит число поражений.
  8. Команде гостей дается два дополнительных очка, если у нее побед больше, чем игр, проигранных и сведенных вничью.

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

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

Программа 6.8

()tot ∅

(X Y) tot Z if

Y tot x and

SUM (X x Z) and

/

game if

form KILL and

(home form (X) and

away form (Y)) is-told and

(h form X) add and

(a form Y) add and

/

X played Y if

X form (Z x у | z) and

SUM (y X1 Y) and

/

X ave (Y Z) if

X form (x у z X1 Y1) and

X played Z1 and

TIMES (x1 Z1 X1) and

SUM (x1 0.5 y1) and

y1 INT Y and

TIMES (z1 Z1 Y1) and

SUM (z1 0.5 X2) and

X2 INT Z and

/

X score Y if

h ave (Z x) and

a ave (y z) and

SUM (Z z X) and

SUM (x у Z)

X plus 2 if

X form (YZx|y) and

SUM (Z x z) and

x LESS Y

X plus 1 if

X form (YZx|y) and

x LESS Y

X plus 2 if

Xform(YZ∅|x)

X plus 1 if

X form(Y∅|Z)

X plus 1 if

X form (Y Z x у z) and

z LESS у

X plus 2 if

X form (Y Z x у z) and

TIMES (2 x X1) and

X1 LESS у

X plus 2 if

X form (Y Z x | y) and

TIMES (2 x z) and

z LESS Y

a plus 2 if

a form (X Y Z | x) and

SUM (Y Z y) and

у LESS X

Восемь утверждений отношения plus соответствуют восьми правилам начисления очков. Отношение tot используется для определения общего числа очков, получаемых с помощью отношения plus; отношение played - для определения числа сыгранных матчей; ave - для определения среднего голевого баланса команды хозяев и команды гостей и, наконец, score - для предсказания, основанного на этих средних значениях счета матча. В отношении ave среднее значение округляется до ближайшего целого. Это делается с помощью добавления 0.5 (0,5) к полученному среднему и применения встроенного отношения INT, вычисляющего целую часть числа. Отношение game удаляет все существующие в данный момент утверждения отношения form и помещает в программу два новых утверждения в формате

h form (w d 1 f a)

a form (w d 1 ( a)

Данные w, d, l, f, а для этих утверждений запрашиваются у пользователя; w, d, l - число побед, ничьих и поражений соответственно; f, а - число забитых и пропущенных мячей. Символ h свидетельствует о том, что речь идет о команде хозяев, символ а - гостей. Таким образом, всегда программа работает с двумя утверждениями отношения form.

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

X result (Y Z) if

(X next) is-told and

game and

x isall (x: h plus x) and

x tot у and

z isall (z: a plus z) and

z tot X1 and

Y1 score Z1 and

SUM (y Y1 Y) and

SUM (X1 Z1 Z)

Отношение result вызывает game для того, чтобы ввести данные о командах, проводит все необходимые вычисления с помощью отношений plus и score и обеспечивает выдачу прогноза в виде двух целых чисел, характеризующих шансы команд. Условие (X next) дает возможность пользователям печатать либо названия команд, либо порядковый номер матча. Если же в ответ на запрос X next ? пользователь ответит по, то программа завершит работу. Данные о командах хозяев и гостей размещаются при вводе в двух списках, следующих один за другим. Приведенный ниже протокол дает представление о том, как используется программа:

all (x: result x)

[определить все (х: результат-прогноза х)]

X next ? ans 1

[следующий ? ответ 1 ]

home form (X) and away form(Y) ? ans (6 1 ∅ 21 6) (2 2 3 9 11)

[команда хозяев (X) и команда гостей (Y) ? ответ (6 1 ∅ 21 6)

(2 2 3 9 11)]

(1 (15 2))

X next ? no

[X следующий ? нет]

No (more) answers

[Ответов (больше) нет]

Ответ (1 (15 2)) свидетельствует о том, что в игре под номером 1 шансы хозяев оцениваются числом 15, а гостей - 2, т. е. экспертная система в данном случае предсказывает уверенную победу хозяев поля. Если вы хотите убрать из ответа скобки, используйте следующий запрос:

all (x у ъ: х result (у z))

В результате будет получен ответ: 1 15 2.

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

all (x у: result у)

[определить все (х у: х результат-прогноза у)]

X next ? ans (Chelsea v Man Utd)

[X следующий ? ответ (Челси против Манчестер Юнайтед)]

home form (X) and away form (Y) ? ans (6 ∅ 1 13 4) (6 1 ∅ 17 5)

[Команда хозяев (X) и команда гостей (Y) ? Ответ (6 ∅ 1 13 4)

(6 1 ∅ 176)1

(Chelsea v Man Utd) (12 15)

[(Челси - Манчестер Юнайтед) (12 15)]

Ответ показывает, что небольшое преимущество отдается команде Манчестер-Юнайтед. И на самом деле счет в матче этих команд оказался 2 : 1 в пользу Манчестера.

Если никакой новой информации в программу не вводилось, отношение form будет хранить данные о командах Челси и Манчестер-Юнайтед. Используя эти данные, можно с помощью отношений plus, score и ave получить много полезной информации. Например, запрос

all (x у: х plus у)

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

all (x: score x)

получаем основанный только на учете среднего голевого баланса прогноз - (3 3). Запрос

all (x: h ave x)

дает (2 1) - средний голевой баланс хозяев поля.

Запрос

all (x: a ave x)

в свою очередь тоже дает (2 1) - средний голевой баланс гостей.

Упражнение 6.7

Используйте только что описанную экспертную систему (программу 6.8) для предсказания результатов следующих матчей:

Арсенал (5 1 1 10 6) - Манчестер Сити (12 4 6 11)

Астон Вилла (1 3 3 9 10) - Оксфорд (0 3 5 10 23)

Куинз Парк (5 1 1 11 4) - Шеффилд Юнайтед (5 0 2 11 9)

Ипсвич (1 2 4 4 5) - Челси (1 3 3 6 11)

Приведенная в этом разделе программа, позволяющая прогнозировать результаты матчей, предоставляет широкие возможности для экспериментирования. Конечно, никто не ожидает, что прогноз должен подтверждаться с вероятностью, близкой к 100%, но все же точность в 65-70% должна быть достижимой. Читатели могут попытаться усовершенствовать программу, внося изменения в отношение plus. Можно добавлять новые правила, удалять старые и изменять число добавляемых очков. Также имеется возможность более точно вычислять средний голевой баланс. Для этого нужно перед округлением умножить среднее на десять, тем самым сохраняя первую десятичную цифру. Такая модификация следующим образом изменит отношение ave.

X ave (Y Z) if

X form (x у X1 Y1) and

X played Z1 and

TIMES (X1 Z1 X1) and

TIMES (10x1 у 1) and

SUM(yl5.0E-1z1)and

z1 INTY and

TIMES (X2 Z1 Y1) and

TIMES (10 X2Y2) and

SUM(Y2 5.0E lZ2)and

Z2 INT Z and

/

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

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

Упражнение 6.8

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

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь