
Лабораторная работа на языке Prolog / laba3 / Лаба №3 / lab 3
.docЦель работы: ознакомиться с моделями, построенными на основе графов. Получить навыки программирования подобных моделей на языке Visual Prolog 5.0
Задание 1: Моделирование недетерминированного автомата.
1.1 разработать программу , определяющую допустить ли из заданного начального состояния –(s1) входную цепочку, представленную списком, -[a,a,b,b,a,a,b].
DOMAINS
spis=symbol*
PREDICATES
nondeterm конечное(symbol)
nondeterm переход(symbol, symbol, symbol)
nondeterm спонтанный(symbol, symbol)
nondeterm допускается(symbol,spis)
CLAUSES
конечное(s5).
переход(s1,a,s1).
переход(s1,a,s2).
переход(s1,a,s3).
переход(s2,b,s1).
переход(s2,b,s5).
переход(s3,b,s2).
переход(s4,b,s1).
переход(s4,b,s5).
переход(s5,a,s4).
спонтанный(s1,s4).
спонтанный(s3,s4).
спонтанный(s5,s2).
спонтанный(s5,s3).
допускается(S,[]):-конечное(S).
допускается(S,[X|Остальные]):-переход(S,X,S1),допускается(S1,Остальные).
допускается(S,Цепочка):-спонтанный(S,S1),допускается(S1,Цепочка).
GOAL
допускается(s1,[a,a,b,b,a,a,b]).
Результат выполнения: yes
1.2 Определить все значения элементов списка для цепочки длиной 2, допустимые из состояния s1.
Запрос: допускается(s1,[X1,X2]).
Результат выполнения:
X1=a, X2=b
X1=a, X2=b
X1=a, X2=b
X1=b, X2=b
X1=b, X2=b
X1=b, X2=b
6 Solutions
2 Пример семантической сети
Clauses
является(попугай,птица).
является(кеша,попугай).
летает(птица).
цвет(попугай,зелёный).
цвет(X,Y):-является(X,Z), цвет(Z,Y).
летает(X):- является(X,Y),летает(Y).
GOAL
цвет(кеша,X).
3 Пример фрейма.
Clauses
ребёнок(возраст,’0-17’).
ребёнок(любит,сладкое).
ученик(учится,школа).
ученик(носит,форма).
является(ребёнок,человек).
является(ученик,ребёнок).
фрейм(ребёнок,возраст,’0-17’).
фрейм(ребёнок,любит,сладкое).
ученик(Атрибут,Значение):-является(ученик,Фрейм), фрейм(Фрейм,Атрибут,Значение).
GOAL
ученик(возраст,X).
Нижегородский Государственный Технический Университет
Представление знаний в информационных технологиях
Лабораторная работа №3
Выполнил: Плотников С.С.
Щербаков А.А.
Группа: 00-СБК
Н.Новгород
2002г.