Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите написать примитивную экспертную систему 
:(
    Опции темы
Actosunc
Дата 27.3.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.1.2010

Репутация: нет
Всего: нет



Требуется написать небольшую экспертную систему. Она должна получать на заданный ряд вопросов ответ "да/нет" и проверять набор ответов на точное совпадение с заданными решениями. Если ответы ни с чем не совпадают, выдавать соответствующее сообщение.

Пример:

Вопросы:
1. крылья есть?
2. по воде плавает?
3. по суше ездит?

Решения (желательно их задание именно в таком формате):
самолет: 1,3
автомобиль: 3
катер: 2
амфибия: 2,3

Что интересно, примеров экспертных систем, чтобы хоть от чего-то отталкиваться, в интернете не нашел.
PM MAIL   Вверх
semka
Дата 27.3.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 21.3.2007
Где: Пермь

Репутация: нет
Всего: нет



Диалект лиспа вы не указали, так что решение на Scheme.
Проверял на MzScheme v4.2.4. В принципе должно работать на всех реализациях r5rs (да и r4rs тоже)

Код

(define has-wings 1)
(define swim 2)
(define walk 3)

(define plane (list has-wings walk))
(define car (list walk))
(define ship (list swim))
(define amphibian (list swim walk))

(define (examine input)
  (cond
   ((equal? input plane) "Plane")
   ((equal? input ship) "Ship")
   ((equal? input car) "Car")
   ((equal? input amphibian) "Amphibian")
   (#t "I don't know what's this")))

(define (prompt-user)
  (let ((input (list)))
    (display "Hi, i'm very strange expert system.")
    (newline)
    (display "It has wings? ")
    (if (y-or-n)
        (set! input (append input (list has-wings)))
        #f)
    (newline)
    (display "It can swim? ")
    (if (y-or-n)
        (set! input (append input (list swim)))
        #f)
    (newline)
    (display "It can walk? ")
    (if (y-or-n)
        (set! input (append input (list walk)))
        #f)
    (display (string-append "This is " (examine input)))
    (newline)))

(define (y-or-n)
  (eq? (read) 'y))


Это сообщение отредактировал(а) semka - 27.3.2010, 22:25
PM MAIL WWW   Вверх
VH_
Дата 27.3.2010, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



Хювёнен-Сеппянен "Мир Лиспа" т.2 стр.217-232:
4.4 ДАРВИН
• Структура экспертной системы
• Представление знаний
• Машина вывода
• Факты и правила
• Правила вывода базы данных
• Стратегия обратного вывода
• Работа системы Дарвин
• Примеры запросов
• Расширение системы Дарвин
• Литература
PM MAIL   Вверх
Actosunc
Дата 28.3.2010, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.1.2010

Репутация: нет
Всего: нет



semka, Common Lisp. Извините, что сразу не указал.


VH_, там нет рабочего примера, который можно скопировать и запустить. А я люблю учиться на таких.
PM MAIL   Вверх
k0rvin
Дата 28.3.2010, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(Actosunc @ 28.3.2010,  18:44)
semka, Common Lisp. Извините, что сразу не указал.
VH_, там нет рабочего примера, который можно скопировать и запустить. А я люблю учиться на таких.


в On Lisp есть пример компиляции сетей подобных твоей -- вопрос-ответ:да/нет
а уж подогнать его(пример) под твои условия как нефик делать

Это сообщение отредактировал(а) k0rvin - 28.3.2010, 20:18


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Actosunc
Дата 30.3.2010, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 22.1.2010

Репутация: нет
Всего: нет



k0rvin, не могу найти, какая страница?
PM MAIL   Вверх
k0rvin
Дата 31.3.2010, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5



Цитата(Actosunc @ 30.3.2010,  21:44)
k0rvin, не могу найти, какая страница?

Цитата

6. Functions as Representation 76
6.1. Networks 76
6.2. Compiling Networks 79
6.3. Looking Forward 81



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
learningToProgram
Дата 11.5.2015, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.5.2013

Репутация: нет
Всего: нет



У меня не получается воспользоваться этим примером из книги в Emacs
Каким интерпретатором Вы пользовались?
PM MAIL   Вверх
cooper123
Дата 18.8.2015, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



Цитата(Actosunc @ 27.3.2010,  20:26)
Требуется написать небольшую экспертную систему. Она должна получать на заданный ряд вопросов ответ "да/нет" и проверять набор ответов на точное совпадение с заданными решениями. Если ответы ни с чем не совпадают, выдавать соответствующее сообщение.

Пример:

Вопросы:
1. крылья есть?
2. по воде плавает?
3. по суше ездит?

Что интересно, примеров экспертных систем, чтобы хоть от чего-то отталкиваться, в интернете не нашел.

тут есть нечто похожее
http://www.podval.org/~sds/data/cllib.html

называется анимал.лисп
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.1392 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.