Экспертная система "Компьютерные игры"
Классификация экспертных систем и программного обеспечения для их разработки. Практическое применение искусственного интеллекта на машиностроительных предприятиях и в экономике. Составление дерева решения. Язык функционального программирования LISP.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.12.2013 |
Размер файла | 542,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
Введение
1. Классификация экспертных систем
2. Классификация программного обеспечения для разработки экспертных систем
3. Разработка экспертной системы
3.1 Формализация задачи - дерево решения задачи
3.2 Формирование правил - схема
3.3 Листинг
4. Создание базы данных
4.1 Краткое описание
4.2 Листинг
4.3 Запросы
5. Задача: родственные связи
5.1 Краткое описание
5.2 Листинг
5.3 Запросы
Заключение
Список использованных источников
Введение
экспертный программный искусственный интеллект
Экспертные системы (ЭС) возникли как значительный практический результат в применении и развитии методов искусственного интеллекта. Искусственный интеллект - совокупности научных дисциплин, изучающих методы решения задач интеллектуального (творческого) характера с использованием ЭВМ.
Область ИИ имеет более чем сорокалетнюю историю развития. С самого начала в ней рассматривался ряд весьма сложных задач, которые, наряду с другими, и до сих пор являются предметом исследований: автоматические доказательства теорем, машинный перевод (автоматический перевод с одного естественного языка на другой), распознавание изображений и анализ сцен, планирование действий роботов, алгоритмы и стратегии игр.
ЭС - это набор программ, выполняющий функции эксперта при решении задач из некоторой предметной области. ЭС выдают советы, проводят анализ, дают консультации, ставят диагноз. Практическое применение ЭС на предприятиях способствует эффективности работы и повышению квалификации специалистов.
Главным достоинством экспертных систем является возможность накопления знаний и сохранение их длительное время. В отличии от человека к любой информации экспертные системы подходят объективно, что улучшает качество проводимой экспертизы. При решении задач, требующих обработки большого объема знаний, возможность возникновения ошибки при переборе очень мала.
При создании ЭС возникает ряд затруднений. Это, прежде всего, связано с тем, что заказчик не всегда может точно сформулировать свои требования к разрабатываемой системе. Также возможно возникновение трудностей чисто психологического порядка: при создании базы знаний системы эксперт может препятствовать передаче своих знаний, опасаясь, что впоследствии его заменят “машиной”. В настоящее время ведутся разработки экспертных систем, реализующих идею самообучения. Также ЭС неприменимы в больших предметных областях и в тех областях, где отсутствуют эксперты.
Главное достоинство ЭС - возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов. Накопление знаний позволяет повышать квалификацию специалистов, работающих на предприятии, используя наилучшие, проверенные решения.
Практическое применение искусственного интеллекта на машиностроительных предприятиях и в экономике основано на ЭС, позволяющих повысить качество и сохранить время принятия решений, а также способствующих росту эффективности работы и повышению квалификации специалистов.
По своей теме “Компьютерные игры” - разработанная ЭС позволит пользователю-непрофессионалу в данной предметной области получить информацию к какому жанру относиться та или иная игра.
1. Классификация экспертных систем
Рассмотрим классификацию ЭС по следующим признакам:
Классификация по решаемой задаче:
· Интерпретация данных.
Это одна из традиционных задач для экспертных систем. Под интерпретацией понимается определение смысла данных, результаты которого должны быть согласованными и корректными. Обычно предусматривается многовариантный анализ данных.
· Диагностика.
Под диагностикой понимается обнаружение неисправности в некоторой системе. Неисправность - это отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправность оборудования в технических системах, и заболевания живых организмов, и всевозможные природные аномалии. Важной спецификой является необходимость понимания функциональной структуры («анатомии») диагностирующей системы.
· Мониторинг.
Основная задача мониторинга - непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы - «пропуск» тревожной ситуации и инверсная задача «ложного» срабатывания. Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость учета временного контекста.
· Проектирование.
Проектирование состоит в подготовке спецификаций на создание "объектов" с заранее определенными свойствами. Под спецификацией понимается весь набор необходимых документов чертеж, пояснительная записка и т.д. Основные проблемы здесь - получение четкого структурного описания знаний об объекте и проблема "следа". Для организации эффективного проектирования и, в еще большей степени, перепроектирования необходимо формировать не только сами проектные решения, но и мотивы их принятия. Таким образом, в задачах проектирования тесно связываются два основных процесса, выполняемых в рамках соответствующей ЭС: процесс вывода решения и процесс объяснения.
· Прогнозирование.
Прогнозирующие системы логически выводят вероятные следствия из заданных ситуаций. В прогнозирующей системе обычно используется параметрическая динамическая модель, в которой значения параметров "подгоняются" под заданную ситуацию. Выводимые из этой модели следствия составляют основу для прогнозов с вероятностными оценками.
· Планирование.
Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких ЭС используются модели поведения реальных объектов с тем, чтобы логически вывести последствия планируемой деятельности.
· Обучение.
Системы обучения диагностируют ошибки при изучении какой-либо дисциплины с помощью ЭВМ и подсказывают правильные решения. Они аккумулируют знания о гипотетическом "ученике" и его характерных ошибках, затем в работе способны диагностировать слабости в знаниях обучаемых и находить соответствующие средства для их ликвидации. Кроме того, они планируют акт общения с учеником в зависимости от успехов ученика с целью передачи знаний.
· Статические ЭС.
Статические ЭС разрабатываются в предметных областях, в которых база знаний и интерпретируемые данные не меняются во времени. Они стабильны.
· Квазидинамические ЭС.
Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.
· Динамические ЭС.
Динамические ЭС работают в сопряжении с датчиками объектов в режиме реального времени с непрерывной интерпретацией поступаемых данных.
· Классификация по типу ЭВМ.
ЭС для уникальных стратегически важных задач на суперЭВМ (Эльбрус, CRA'. CONVEX и др.);
ЭС на ЭВМ средней производительности (типа ЕС ЭВМ, mainframe);
ЭС на символьных процессорах и рабочих станциях (SUN, APOLLO);
ЭС на мини- и супермини-ЭВМ (VAX, micro-VAX и др.);
ЭС на персональных компьютерах (IBM PC, MAC II и подобные).
Классификация по степени интеграции с другими программами
· Автономные ЭС.
Автономные ЭС работают непосредственно в режиме консультаций с пользователем для специфически "экспертных" задач, для решения которых не требуется привлекать традиционные методы обработки данных (расчеты, моделирование и т. д.).
· Гибридные ЭС.
Гибридные ЭС представляют программный комплекс, агрегирующий стандартные пакеты прикладных программ (например, математическую статистику, линейное программирование или системы управления базами данных) и средства манипулирования знаниями. Это может быть интеллектуальная надстройка над ППП или интегрированная среда для решения сложной задачи с элементами экспертных знаний. Несмотря на внешнюю привлекательность гибридного подхода, следует отметить, что разработка таких систем являет собой задачу, на порядок более сложную, чем разработка автономной ЭС. Стыковка не просто разных пакетов, а разных методологий (что происходит в гибридных системах) порождает целый комплекс теоретических и практических трудностей.
Рисунок 1 - Классификация экспертных систем
2. Классификация программного обеспечения для разработки экспертных систем
Инструментальные средства подразделяются на следующие категории:
a) Языки программирования
b) Языки инженерии знаний
c) Средства автоматизации разработки экспертных систем
d) Оболочки экспертных систем
· Рассмотрим языки инженерных знаний:
Языки инженерии знаний
Язык логического программирования PROLOG
Пролог (Prolog) -- язык логического программирования, основанный на логике дизьюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка.
Встроенный в PROLOG режим управления использует стратегию обратного логического вывода, которая используется в системах, подобных MYCIN. Таблицы знаний и другие данные можно представить с помощью утверждений. Такие структуры данных, как графы и деревья, можно организовать с помощью фраз языка PROLOG, которые содержат комплексные термы. Языковые средства PROLOG позволят программисту разработать собственный механизм обработки неопределенности, причем не исключается и использование коэффициентов уверенности.
Язык функционального программирования LISP
Лисп (LISP, от англ. LISt Processing -- «обработка списков») -- семейство языков программирования, основанных на представлении программы системой линейных списков, которые притом являются основной структурой данных языка.
Основная особенность Лиспа -- представление программы в виде списков -- определяет однородность и простоту синтаксиса. Внешне исходный код программы на Лиспе отличается обилием круглых скобок; редактирование программ значительно упрощается использованием текстового редактора, поддерживающего автоматическое выравнивание кода, подсветку соответствующих пар скобок и команды рода «перейти через список вправо». Хорошо приспособлен к кодированию на Лиспе редактор Emacs.
· Средства автоматизации разработки экспертных систем
Дополнительные модули
Под дополнительными модулями понимаются те полезные программы, которые можно выполнять вместе с приложением. Как правило, такие программы реализуют некоторые специальные функции, как бы "снимая их с полки", причем для обращения к таким функциям не требуется что-либо программировать в основном приложении или заниматься его индивидуальной настройкой. Одним из примеров такого рода дополнительного модуля может служить программный пакет Simkit из комплекта среды КЕЕ. Этот пакет позволяет оснастить экспертную систему методами моделирования.
· Оболочки экспертных систем
Оболочки экспертных систем - программный продукт, обладающий средствами представления знаний для определенных предметных областей. Задача пользователя заключается не в непосредственном программировании, а в формализации и вводе знаний с использованием предоставленных оболочкой возможностей. Недостатком этих систем можно считать невозможность охвата одной системой всех существующих предметных областей. Примером могут служить ИНТЕРЭКСПЕРТ, РС+, VP-Expert.
3. Разработка экспертной системы “компьютерные игры”
3.1 Формализация задачи - дерево решения задачи
Составим дерево решения задачи по средствам ответов на вопросы Да-Нет:
Рисунок 2. - Дерево решения задачи
3.2 Формирование правил - схема
Рисунок 3 - Дерево правил
3.3 Листинг
database
yes (symbol)
no (symbol)
predicates
begin
answer
question(symbol)
igra(symbol)
priznak(symbol)
add_to_database(symbol,char)
input_simbol(char,char)
otvet(char)
repeat
clear_from_database
goal
begin.
clauses
begin :-
makewindow (2,23,30," klassifikaciya igr",0,0,25,80),
gotowindow(2),
nl,write ("Otvette na voprosw :"),nl,nl,
answer,
not(clear_from_database),
readchar(X),
nl,nl,nl,nl,
write ("Nfzhmite lubuu klavishu"),
removewindow,
exit.
answer :-
igra (X),!,nl,
write (" Otvet: ",X,"."),nl.
question(Y) :-
write ("Vopros: ",Y,"? "),
otvet(X),
write(X),nl,
add_to_database (Y,X).
input_simbol(C,'y') :- C='y',!.
input_simbol(C,'n') :- C='n',!.
input_simbol(C,'y') :- C='Y',!.
input_simbol(C,'n') :- C='N',!.
otvet(C):-
repeat,
readchar(X),
input_simbol(X,C),!.
repeat.
repeat:-repeat.
priznak (Y) :-
yes (Y),!.
priznak (Y) :-
not (no (Y)),
question (Y).
add_to_database (Y,'y') :- assertz (yes (Y)).
add_to_database (Y,'n') :- assertz (no (Y)),fail.
clear_from_database :- retract (yes(_)),fail.
clear_from_database :- retract (no(_)),fail.
igra("kvest"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("nuzhno mnogo dumat?"),
priznak("sta4inaya grafika?").
igra("rpg"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("nuzhno mnogo dumat?"),
priznak("ne sta4inaya grafika?").
igra("action"):-
priznak("igra bez ineterneta?"),
priznak("igraete 1m geroem?"),
priznak("ne nuzhno mnogo dumat?").
igra("strategiya"):-
priznak("igra bez ineterneta?"),
priznak("igraete mnogimi geroyami?"),
priznak("nuzhno stroit' virtualnwe goroda?").
igra("Action-strategiya"):-
priznak("igra bez ineterneta?"),
priznak("igraete mnogimi geroyami?"),
priznak("ne nuzhno stroit' virtualnwe goroda?").
igra("mmo-strategy"):-
priznak("igra po internetu?"),
priznak("nushno stroit' virtualnwe goroda?").
igra("mmo-rpg"):-
priznak("igra po internetu?"),
priznak("ne nushno stroit' virtualnwe goroda?").
igra("Dannoi klassifikacii ne obnaruzheno").
Рассмотрим несколько решений:
Рисунок 4 - Классификация игр
Рисунок 5 - Классификация игр
Рисунок 6 - Классификация игр
4. Создание базы данных
4.1 Краткое описание
Необходимо создать базу данных о поездках на различных видах транспорта, с различной стоимостью билета, различными маршрутами и временем пути
4.2 Листинг
Код базы данных в Пролог:
domains
otkuda, kuda, transport = symbol
stoimost, vremya = integer
predicates
poezdka(otkuda,kuda,transport,stoimost,vremya)
clauses
poezdka(balakovo,london,samolet,500,7).
poezdka(rim,kiev,samolet,300,5).
poezdka(kiev,moskva,poezd,300,15).
poezdka(moskva,nizhniy,mashina,100,14).
poezdka(ispniya,italitya,samolet,800,5).
poezdka(greciya,rim,samolet,300,6).
poezdka(polsha,izrail,samolet,700,12).
poezdka(meksika,afrika,samolet,1000,12).
poezdka(akropl,lipeck,mashina,800,18).
poezdka(kursk,kostroma,poezd,300,16).
4.3 Запросы
Выполненные запросы:
1. Вывести данные о том куда можно поехать, на чем, сколько стоит и время поездки из Балаково
Рисунок 7 - Запрос 1
2. Вывести данные о маршруте x->Лондон
Рисунок 8 - Запрос 2
3. Показать данные о маршрутах с ценой билета > 800$
Рисунок 9 - Запрос 3
4. Показать все данные, зная что поездка происходит из Москвы и длиться 14 часов
Рисунок 10 - Запрос 4
5. Показать все данные о поездке при условии что стоимость >800$, а время поездки >10 часов
Рисунок 11 - Запрос 5
6. Показать все данные о поездке на поезде
Рисунок 12 - Запрос 6
5. Задача: родственные связи
5.1 Краткое описание
Написать программу реализацию на Турбо Прологе базу знаний родственных связей семьи 3-х поколений.
5.2 Листинг
Код программы:
DOMAINS
s=string
PREDICATES
grandfather(s,s)
grandmother(s,s)
parent(s,s)
papamama(s,s)
brat(s,s)
predok(s,s)
mother(s,s)
father(s,s)
CLAUSES
papamama(alexandr,lena).
parent(alexandr,sergey).
parent(alexandr,dima).
parent(lena,sergey).
parent(lena,dima).
mother("osya","lena").
mother("lena","sergey").
mother("nadya","alexandr").
mother("alexandr","sergey").
father("mihail","alexandr").
father("alexandr","sergey").
father("vasiliy","lena").
father("lena","sergey").
grandmother(X,Y):- mother(X,Z), mother(Z,Y).
grandfather(X,Y):- father(X,Z), father(Z,Y).
predok(X,Y):-parent(X,Y).
predok(X,Y):-parent(X,Z),predok(Z,Y).
5.3 Запросы
Выполненные запросы:
1. Показать бабушек
Рисунок 13 - Запрос 1
2. Показать дедушек
Рисунок 14 - Запрос 2
3. Показать родителей
Рисунок 15 - Запрос 3
4. Показать бабушку по материнской линии
Рисунок 16 - Запрос 4
5. Показать дедушку по линии отца
Рисунок 17 - Запрос 5
6. Показать дедушку по линии матери
Рисунок 18 - Запрос 6
Заключение
В ходе выполнения курсовой работы была создана экспертная система “Компьютерные игры”, построено дерево решения задачи, правил - схема, составлена таблица “атрибут-предикат-значение”. В курсовой работе была создана базы данных, расписано решение задачи “родственные связи”.
Список использованных источников
1. Братко И. Программирование на языке Пролог для искусственного интеллекта.- М.: Мир, 1990.
2. Марселлус Д.Н. Программирование экспертных систем на Турбо Прологе.- М.: Финансы и статистика, 1994.
3. Нейлор К. Как построить свою экспертную систему.- М.: Энергоатомиздат, 1991.
4. Нильсон Н.Д. Искусственный интеллект. Методы поиска решений. - М.: Мир, 1973.
5. Сафонов В.О. Экспертные системы - интеллектуальные помощники специалистов. - С.-Пб: Санкт-Петербургская организация общества “Знания” России, 1992.
Размещено на Allbest.ru
Подобные документы
Разработка базы знаний и её тестирование с помощью оболочки экспертных систем Little Helper. Оценка технических характеристик телевизора, ценового фактора. Практическое применение искусственного интеллекта на машиностроительных предприятиях и в экономике.
курсовая работа [1,0 M], добавлен 19.09.2012Определение экспертных систем, их достоинство и назначение. Классификация экспертных систем и их отличие от традиционных программ. Структура, этапы разработки и области применения. Классификация инструментальных средств и технология разработки систем.
курсовая работа [78,0 K], добавлен 03.06.2009Структура экспертных систем, их классификация и характеристики. Выбор среды разработки программирования. Этапы создания экспертных систем. Алгоритм формирования базы знаний с прямой цепочкой рассуждений. Особенности интерфейса модулей "Expert" и "Klient".
курсовая работа [1,1 M], добавлен 18.08.2009Технология экспертных систем на основе искусственного интеллекта: разработка и внедрение компьютерных программ, способных имитировать, воспроизводить области деятельности человека, требующих мышления, определенного мастерства и накопленного опыта.
курсовая работа [264,8 K], добавлен 22.12.2008Экспертная система - компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. Структура, режимы функционирования, классификация экспертных систем, этапы разработки. Базы знаний интеллектуальных систем.
реферат [32,2 K], добавлен 04.10.2009Понятие искусственного интеллекта как свойства автоматических систем брать на себя отдельные функции интеллекта человека. Экспертные системы в области медицины. Различные подходы к построению систем искусственного интеллекта. Создание нейронных сетей.
презентация [3,0 M], добавлен 28.05.2015Анализ правил выбора хода на шахматной доске К. Шеннона. Характеристика программного модуля искусственного интеллекта для игры в шахматы. Контроль времени, поиск лучшего хода в шахматных алгоритмах. Разработка программы для игры с компьютерным оппонентом.
дипломная работа [3,7 M], добавлен 07.07.2012Рассмотрение экспертных систем: классификация, назначение, общие принципы построения и функционирования. Среда разработки данных систем: BorlandC++ Builder 6.0 и AMZI! Prolog. Описание процесса разработки экспертной системы "Выбор спортивного инвентаря".
курсовая работа [426,9 K], добавлен 19.08.2012Высокоуровневый язык программирования Lisp. Атомы и списки. Запрос к голове списка с помощью базовых функций. Свойства атомов Lisp. Удаление свойства и его значения. Работа со строками. Классы и объекты. Формы структурированных данных языка Lisp.
курсовая работа [232,7 K], добавлен 07.01.2016Составление программы искусственного интеллекта в среде программирования Delphi 7, осуществляющую игру "крестики-нолики" с пользователем. Данная программа имеет возможность запоминания ходов и на основе них ходить так, чтобы не оказаться в проигрыше.
контрольная работа [787,7 K], добавлен 16.01.2011