www.gcmsite.ru

Новости Программы PHP-скрипты Статьи Числа
Услуги Резюме Игры Автомобили Поиск

СИСТЕМНОЕ И ВЕБ-ПРОГРАММИРОВАНИЕ
компьютерная техника, игры

Экспертная система "Виды боевых искусств". Prolog

В статье представлена еще одна экспертная система, написанная на языке логического программирования Turbo Prolog. Экспертная система называется "Виды боевых искусств" и позволяет путем нескольких вопросов определить, какой вид боевых искусств задумывал человек перед программой.

%trace 
domains
  x=string
database
  xpositive(x)
  xnegative(x)
  otvety(x,x)
predicates
  fighting(x)
  positive(x)
  negative(x)
  ask(x,x)
  remember(x,x)
  write_result(x)
  w_r(x)
  dalshe
clauses
  fighting("Самбо"):-    positive("Бросковая техника"),
                         positive("Борьба в партере"),
                         positive("Болевые приемы"),
                         negative("Удушающие приемы").
  fighting("Дзю-до"):-   positive("Бросковая техника"),
                         positive("Болевые приемы"),
                         positive("Борьба в партере"),
                         positive("Удушающие приемы").
  fighting("Бокс"):-     negative("Бросковая техника"),
                         positive("Техника ударов руками"),
                         negative("Техника ударов ногами").
  fighting("Каратэ"):-   negative("Бросковая техника"),
                         positive("Техника ударов руками"),
                         positive("Техника ударов ногами").
  fighting("Айкидо"):-   positive("Бросковая техника"),
                         negative("Борьба в партере"),
                         positive("Болевые приемы"),
                         negative("Удушающие приемы").
  positive(X):-xpositive(X),!;
               xnegative(X),!,fail;
               ask(X,"Да"),!;
               xpositive(X),!.             
  negative(X):-xnegative(X),!;
               xpositive(X),!,fail;
               ask(X,"Нет"),!;
               xnegative(X),!.
  ask(X,R):-write(X,":"),readln(Reply),remember(X,Reply),R=Reply.
  remember(X,"Да"):-assert(xpositive(X)),assert(otvety(X,"Да")),!.
  remember(X,"Нет"):-assert(xnegative(X)),assert(otvety(X,"Нет")),!.
  remember(X,_):-assert(xpositive(X)),assert(xnegative(X)),assert(otvety(X,"Незнаю!!!")).
  write_result(X):-w_r(X).
  write_result(_).
  w_r(X):-nl,nl,write("Скорее всего это ",X),
         nl,write("Потому что:"),!,otvety(X1,X2),nl,write(X1,"->",X2),fail.                                                
  dalshe:-nl,write("Работать дальше?"),readln(X),X<>"Да".
goal
  clearwindow,retractall(_),!,fighting(X),write_result(X),dalshe.
Стоит обратить внимание на статьи: Экспертная система : Животные. Turbo Prolog и Экспертная система : Выход из опасной пещеры. Turbo Prolog
PHP — это язык программирования, основанный на использовании скриптов. Данный язык широко применяется для создания различных front-end и back-end веб-приложений. Поддерживается по-умолчанию большинством хостеров, являясь одним из лидеров среди языков программирования, предназначенных для создания динамических интерактивных сайтов.

Интересные материалы на сайте:

Автор, разработчик: Шаров Евгений   (gcmsite@yandex.ru)
(c) 2000-2020 GCM-Site - системное и веб-программирование
Цитирование материалов сайта возможно только при наличии гиперссылки