Экспертная система — это программное средство, использующее знания эксперта для обеспечения эффективного решения неформализованных задач в узкой предметной области. Основу экспертных систем составляет база знаний о предметной области, которая накапливается в процессе построения и эксплуатации экспертных систем.
База знаний хранит множество фактов и набор правил, полученных от экспертов, из специальной литературы. База знаний отличается от базы данных тем, что в базе данных единицы информации представляют собой не связанные друг с другом сведения, формулы, теоремы, аксиомы. В базе знаний те же элементы уже связаны как между собой, так и с понятиями внешнего мира. Информация в базе знаний — это все необходимое для понимания, формирования и решения проблемы. Она содержит два основных элемента: факты из предметной области и специальные эвристики или правила, которые управляют использованием фактов при решении проблемы. Знания могут быть представлены несколькими способами, называемыми моделями представления знаний:
− Логические модели представления знаний — реализуются средствами логики предикатов. Предикатом называется функция, принимающая только два значения — истина и ложь — и предназначенная для выражения свойств объектов или связей между ними. Выражение, в котором утверждается или отрицается наличие каких-либо свойств у объекта, называется высказыванием. Наиболее простым языком логики является исчисление высказываний, в котором отсутствуют переменные. Любому высказыванию можно приписать значение истинно или ложно. Отдельные высказывания могут соединяться связками И, ИЛИ, НЕ, которые называются булевыми операторами.
− Продукционные модели, или модели, основанные на правилах, позволяет представить знания в виде предложений типа: Если (условие), то (действие). Под условием понимается некоторое предложение-образец, по которому осуществляется поиск в базе знаний, а под действием — действия, выполняемые при успешном исходе поиска (они могут быть промежуточными, выступающими далее, как условия, и терминальными или целевыми, завершающими работу системы).
− Семантические сети Семантическая сеть — это ориентированный граф, вершины которого — понятия, а дуги — отношения между ними. Семантическая сеть описывает знания в виде сетевых структур. Например, «программист сел за компьютер и отладил программу». Объектами являются: программист (А1), компьютер (А2), программа (А3). Объекты связаны отношениями: сел за компьютер (р1), отладил (р2), загружена в компьютер программа (р3).
− Фреймовые модели. Фреймовые модели представляют собой систематизированную в виде единой теории технологическую модель памяти человека и его сознания. Под фреймом понимают минимальные структуры информации, необходимые для представления класса объектов, явлений или процессов. Фрейм можно представить в виде сети, состоящей из вершин и дуг (отношений), в которых нижние уровни фрейма заканчиваются слотами (переменными), которые заполняются конкретной информацией при вызове фрейма. Значением слота может быть любая информация: текст, числа, математические соотношения, программы, ссылки на другие фреймы. На заполнение слотов могут быть наложены ограничения, например, цена не может быть отрицательной.
Главным в экспертной системе является машина логического вывода, осуществляющая поиск в базе знаний для получения решения. Она манипулирует информацией из базы знаний, определяя в каком порядке следует выявлять взаимосвязи и делать выводы. Машины логического вывода используются для моделирования рассуждений, обработки вопросов и подготовки ответов.
При создании экспертных систем можно выделить следующие этапы:
− Этап идентификации проблем — определяются задачи, которые подлежат решению, выявляются цели разработки, определяются эксперты и типы пользователей.
− Этап извлечения знаний — проводится содержательный анализ проблемной области, выявляются используемые понятия и их взаимосвязи, определяются методы решения задач.
− Этап структурирования знаний — выбираются ИС и определяются способы представления всех видов знаний, формализуются основные понятия, определяются способы интерпретации знаний, моделируется работа системы, оценивается адекватность целям системы зафиксированных понятий, методов решений, средств представления и манипулирования знаниями.
− Этап формализации — осуществляется наполнение экспертом базы знаний. В связи с тем, что основой ЭС являются знания, данный этап является наиболее важным и наиболее трудоемким этапом разработки ЭС. Процесс приобретения знаний разделяют на извлечение знаний из эксперта, организацию знаний, обеспечивающую эффективную работу системы, и представление знаний в виде, понятном ЭС. Процесс приобретения знаний осуществляется инженером по знаниям на основе анализа деятельности эксперта по решению реальных задач.
− Реализация ЭС — создается один или несколько прототипов ЭС, решающие требуемые задачи.
− Этап тестирования — производится оценка выбранного способа представления знаний в ЭС в целом.
Анализ предметной области ипостановка задачи.
Теория игр — математический метод изучения оптимальных стратегий в играх. Под игрой понимается процесс, в котором участвуют две и более сторон, ведущих борьбу за реализацию своих интересов. Каждая из сторон имеет свою цель и использует некоторую стратегию, которая может вести к выигрышу или проигрышу — в зависимости от поведения других игроков. Теория игр помогает выбрать лучшие стратегии с учётом представлений о других участниках, их ресурсах и их возможных поступках.
Чаще всего методы теории игр применяются в экономике, чуть реже в других общественных науках — социологии, политологии, психологии, этике и других. Очень важное значение она имеет для искусственного интеллекта и кибернетики, особенно с проявлением интереса к интеллектуальным агентам. В искусственном интеллекте, «интеллектуальный агент» — это разумные сущности, наблюдающие за окружающей средой и действующие в ней, при этом их поведение рационально в том смысле, что они способны к пониманию и их действия всегда направлены на достижение какой-либо цели. Об интеллектуальности агента можно говорить, если он взаимодействует с окружающей средой и другими сущностями примерно так же, как действовал бы человек. По сути, игра это и есть совокупность объектов (сущностей), обладающих какими-либо ресурсами, и с помощью их взаимодействующие с окружающей средой и с другими объектами. Помимо объектов и их ресурсов в игре присутствуют игроки, которые могут быть как человеком, так и компьютером, а если быть точнее, то программой, принимающей решение о том, как каждому объекту, принадлежащему ей, или их совокупности вести себя в конкретной ситуации и идти на достижение поставленной перед ней цели. Данная программа и есть экспертная система, выступающая в качестве игрока и заменяющая человека.
Из всех классов существующих игровых приложений был выбран класс пошаговым стратегий. Пошаговая стратегия — класс игр, основной особенностью которого является то, что игроки совершают ходы по очереди. В игровых приложениях класса пошаговых стратегий у игрока гораздо больше времени на размышление, во время совершения хода его ничто не торопит, это даёт ему возможность проявить способности к логическому мышлению.
В более широкой трактовке к пошаговым стратегиям относят вообще все пошаговые игры, так как все без исключения игры содержат стратегическую составляющую. В этой трактовке в число пошаговых стратегий попадают, например, такие известные большинству людей игры, как шахматы, шашки, преферанс и т. д.
Из всего многообразия пошаговых стратегий в качестве практического примера я выбрал EmpireDeluxe. EmpireDeluxe подходит под описание «пошаговой стратегии», а также имеет удобство для представления результатов и разнообразные правила.
Общие цели игры для данного класса:
В n-мерной среде (n равен 2 или 3) неоднородной среде существуют заданное множество разнообразных объектов, разделенных между несколькими игроками. Объекты, находящиеся в данной среде, подразделяются на юниты и города. Юниты — это подвижные объекты, которые управляются игроком, владеющим им. Города — стационарные объекты, которые могут находится как под управлением игрока, так и быть “нейтральными”, то есть не иметь владельца и быть неактивными, пока один из игроков не станет владельцем этого города. Общая задача каждого игрока — получить полный контроль, то есть такую ситуацию, что все объекты, находящиеся в пространстве игре принадлежат только этому игроку. Каждый ход все игроки совершают действия для достижения этой задачи, управляя объектами, которыми владеют.
Общий порядок игры.
Игроки совершают ходы поочередно. За ход каждый игрок может осуществить действие или перемещение каждым юнитом, которым он владеет, а также выбрать производство в каждом городе, которым владеет игрок. Изменение состояния объектов, ресурсов и среды происходят во времени дискретно. Координатная сетка имеет дискретную структуру (шаг дискретизации задается), и перемещение объектов может осуществляться только по узлам этой сетки. Допустимость нахождения различных объектов в одной точке среды регламентируется отдельно. Размерность и геометрия единой системы координат определяются параметрами игры.
С точки зрения доступности (для каждого из игроков) информации об общей ситуации возможны следующие режимы игры:
- игрок имеет только ту информацию, которая была предоставлена ему его собственными объектами;
- игрок имеет только информацию о среде и своих объектах;
- игрок имеет всю информацию о среде, своих объектах и статических объектах противников;
- игрок имеет всю полноту информации.
При любом из режимов объем предоставляемой игроку информации о не принадлежащих ему объектах и о не контролируемых им областях среды может варьироваться параметрами игры.
Таким образом, экспертная система должна принимать верное решение каждый ход, на основании данных базы знаний, включающей правила конкретной игры, а также входных данных, поступающих от игрока. Причем, решение, выдаваемое экспертной системой должно быть не только верным в условия одного конкретного хода, но и всей игры в целом, то есть решение должно приближать игрока, под управлением системы к выполнению общей задачи. Создание такой системы является довольно сложной задачей, решение которой требует тщательного осмысления предметной области и обобщения механизмов взаимодействия объектов между собой и окружающей их средой и спецификации ресурсов, которыми данные объекты обладают и используют для достижения поставленных целей.
Основная задача — разработка инструментария экспертных систем соответствующего функционального профиля.
Обобщенная архитектура среды представлена на рисунках 1 и 2.
Машина игры осуществляет сам игровой процесс. Она выводит на экран игровые данные, доступные игроку, а также все средства управления для игрока-человека. Также каждый ход машина игры передает управление поочередно каждому из игроков, будь то человек или экспертная система и считывает действия, которые они выполняют. Считав их, машина игры изменяет данные, которые были изменены в результате этих действий, и затем выводит эти результаты. Все данные, в свою очередь, хранятся в хранилище данных, в базе данных игры.
Язык описания ЭС — это язык, с помощью которого программист совместно с экспертом будут описывать правила игры. Язык описания в достаточной мере открыт для того, чтобы программы, написанные на этом языке могли подходить под любые частные случаи игры класса “пошаговая стратегия”.
В функции языка входят:
− описание основных параметров юнитов;
− описание основных параметров городов;
− описание основных параметров игроков;
− описание основных параметров игры;
− продукции, которые описывают поведение ЭС по правилам игры для победы.
Результатом трансляции языка будет код на C++, который в свою очередь будет передаваться в машину игры как действия игрока под управлением ЭС.
База знаний — это база данных, в которой хранятся все данные, которыми обладает экспертная система, как игрок. То есть, описания всех юнитов и городов, которыми обладает ЭС, а также описания всех юнитов, городов и клеток, которые находятся в зоне видимости юнитов, принадлежащих ЭС.
Игрок — это человек или экспертная система, которые осуществляют игровые действия. Человек выполняет их, используя интерфейс игрока. Экспертная система же, принимает решения с помощью машины вывода. Решения машины вывода основываются на продукциях, которые создает программист с помощью эксперта, используя язык описания ЭС.