Вопрос

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

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

Любая помощь была бы высоко оценена.

Это было полезно?

Решение

Если вы получите какой-нибудь хороший текст об искусственном интеллекте, там будет раздел об экспертных системах;вы можете, если вас вынудят, проработать это оттуда и реализовать свое собственное.

Основная идея действительно довольно проста:у вас есть набор правил в форме "если-то", которые представляют выводы или 4 импликации.Как, например,:

IF blood temperature > 41°C 
THEN patient.has-fever := TRUE

IF patient has wet-sounding breathing
THEN patient.has-pneumonia

IF patient.has-fever AND patient.has-pneumonia
THEN CONCLUDE bacterial pneumonia. ACTION prescribe Augmentin

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

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

Другие советы

Prolog хорошо подходит для написания систем, основанных на правилах (довольно стандартный подход к разработке экспертных систем).P # компилируется в C #, который может удовлетворить ваши потребности - и это бесплатно.

Дополнительная информация на P#.

Базовое обоснование и математическое доказательство для ПРОЛОГ язык, должен помочь вам понять большинство концепций, с которыми вам нужно будет разобраться, если не предоставить окончательный язык, который вам нужно использовать для его реализации.

Я не смог найти ссылку на оригинальную реализацию, но это все равно вам не сильно помогло бы.Ранние работы Алена Кольмерауэра по логическому программированию должны быть полезными.

[РЕДАКТИРОВАТЬ] Извините, дублирую...

Я бы проголосовал за некоторую реализацию Prolog или CLIPS, в зависимости от того, какая логика обратной или прямой цепочки лучше всего подходит для решения проблемы.Вместо того чтобы повторно внедрять что-либо из этого, потратьте время на разработку того, как интегрировать их с вашей средой.

Джесс - хороший выбор, но в качестве первого шага вам следует прочитать книгу "Джесс в действии".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top