Программирование - это просто
Advertisement
Главная
25.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
Я принимаю Яндекс.Деньги