Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заставить работать AI-подобную программу на Clisp 
:(
    Опции темы
BCworm
Дата 30.10.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Привет. Необходимо довести до рабочего состояния код программы на Clisp - чтото вроде искусственного интеллекта, хотя по сути программка на сравнение образцов с эталлонами. Состоит из 2-х функций. Функции проверки и собственно самой программы (функции) AI которая использует answer для поиска вариантов. Код такой но  в дебрях где я его нашел он видно попал  посредством "циганского радио"
-чтото гдето недостказали, чтото преувеличили. smile

Код

(defun answer (p d)
. (cond ( (and (null p) (null d) ) t)
.           ( (or (null p) (null d) ) nil)
.           ( (and (not (atom (car p) ) )
                      (equal (caar p) ‘restrict)
                       (equal (cadar p) ‘?)
                       (apply ‘and (mapcar ‘(lambda (pred) (funcall pred (car d) ) ) 
                                                          (cddar p) ) 
                       )    
               )
              (answer (cdr p) (cdr d) ) 
            )
            ((and (not (atom (cdr p) ) )
                      (equal (caar p) ‘restrict)
                    (equal (atomcar p) (cadar p )) ‘>) 
                    (apply ‘and (mapcar ‘(lambda (pred) (funcall pred(car d) ) )
                                                          (cddar p) ) 
                    )
                   (answer (cdr p) (cdr d) ) 
               )
             (set (atomcdr (cadar p) ) (car d) ) t)
            ((or(equal (car p) ‘?) (equal (car p) (car d) ) )
              (answer (cdr p) (cdr d) ) 
            )
            ((and (atom (car p) )
                     (equal (atomcar (сar p) ) ‘>)
                     (answer (cdr p) (cdr d) ) 
               )
              (set (atomcdr (car p) ) (car d) ) t)
            ((equal (car p) ‘*) (cond ((answer (cdr p) (cdr d) ) )
                                          ((answer p (cdr d) ) ) ) )
            ((and (atom (car p) )
                     (equal (atomcar (car p) ) ‘*) )
             (cond ( (answer (cdr p) (cdr d) )
                         (set (atomcdr (car p) ) (list (car d) ) ) t)
                       ( (answer p (cdr d) )
                         (set (atomcdr (car p) )  (cons (car d) (eval (atomcdr (car p) ) ) ) )
                     t)  
             ) 
            ) 
     ) 
  )

(defun AI()
 (prog  (l wife s)
  (print ‘(Говорите!))
u1
  (setq s (read))
  (cond ((AI ‘(Меня волнует *l) s) 
               (print (append ‘(Как давно Вас волнует) l ) ) )
             ((AI ‘(* жена *) s)
               (setq wife t) (print ‘(Расскажите больше о Вашей семье) ) )
             ((AI ‘(* космосе *) s) (print ‘(А Вы почему здесь) ) )
             ((or (AI ‘(нет) s) (AI ‘(да) s) )
              (print ‘(Пожалуйста не будь столь кратким) ) )
             ((AI ‘(* (restrict ? badword) *) s)
              (print ‘(Пожалуйста не пользуйтесь такими словами) ) )
             (wife (setq wife nil) (print ‘(Вы говорили о Вашей семье) ) )
             (t (print ‘(К сожалению наше время истекло) )
                  (return ‘(До свидания) ) )
  (go u1) ) )



Может кто сможет помочь?. smile 


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

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

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


 




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


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

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