Программирование - это просто
Advertisement
Главная arrow Искусственный интеллект arrow Создаем экспертную систему arrow Разрабатываем экспертную систему. Урок 1. Немного теории.
20.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Разрабатываем экспертную систему. Урок 1. Немного теории. Печать E-mail
Автор megabax   
27.07.2010 г.
unit AIObj

Разрабатываем экспертную систему. Урок 1. Немного теории.

Все статьи по данной теме

В прежние времена экспертные системы были закрыты для широкого круга пользователь компьютеров. Они были ориентированы на мощные ЭВМ и использовали для своего создания сложный и геморройный язык программирования ЛИСП (язык обработки списков), что создавало дополнительные проблемы в их освоении. В рамках данного цикла уроков мы разработаем экспертную систему руководствуясь книгой Криса Нейлора "Как построить свою экспертную систему". В этой книге приведены простые примеры экспертных систем на языке программирования БЕЙСИК. Мы же переведем их на Delphi с использование объектно-ориентированного программирования.

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

И так, для начала давайте ответим на вопрос, что же такое экспертная система? Крис Нейлор в своей книге так определяет этот термин: экспертная система - это система, которая объединяет возможности компьютера и знания вместе с опытом эксперта в такой форме, что может дать разумный совет или осуществить разумное решение поставленной задачи.  К дополнительному свойству экспертной системы можно отнести способность пояснять ход своих рассуждений в понятной для пользователя форме.

Перечислим в качестве примера задачи, которые может решать экспертная система, взятых из книги "Как построить свою экспертную систему":

  • Диагностика общих болезней.

  • Поиск неисправностей в простых цепях.

  • Диагностика болезней растений.

  • Анализ электрокардиограмм.

  • Классификация животных, птиц или растений по видам.

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

Так, с практическим применением экспертных систем разобрались. Разумеется, оно не ограничивается тем, что написано в вышеназванной книжке и моих комментариях к  этому перечню. Тут, уж как говориться, насколько вашей фантазии хватит.

Поехали дальше. Для начала развеем типичные мифы по поводу экспертных систем:

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

Миф второй. Экспертная система никогда не заменит человека. Конечно заменит! Иначе зачем тогда ее разрабатывать? Цель автоматизации - перенести рутинные функции человека на машину, освободив последнего для более важных дел. К рутинным функция можно отнести и процесс принятия решения, так как если требуется принять разумное решение, то необходимо проанализировать множество факторов, оценить последствия, сопоставить многочисленные "за" и "против". со всеми этими задачами великолепно справиться компьютер.

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

Под наблюдениями понимается положительный ответ на вопрос, на который можно ответить "да" или "нет". Грубо говоря, наблюдение - это констатация факта. Нейлор  приводит пример с предсказанием погоды, будет ли завтра дождь. В матрице у него два столбца, "да" или "нет", а в строках такие наблюдения, как "Сегодня холодно?", "Сегодня пасмурно?" и так далее.

Мы же можем создать экспертную систему с другой областью запросов. Например, пойдет завтра Газпром вверх или вниз? Соответственно, у нас будут и другие входные данные. Например, сегодня Газпром рос? Сегодня индекс РТС рос? Месяца назад Центробанк повышал учетную ставку?

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

Все статьи по данной теме

 

Последнее обновление ( 22.10.2011 г. )
 
« След.
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги