- •1. Понятие об искусственном интеллекте и экспертных системах.
- •12. Системы продукций. Прямые и обратные системы продукции. Примеры применения. Разложимые системы продукций. Применение продукций в логических программах.
- •13. Реляционные модели. Основные определения. Реляционная алгебра. Возможности
- •Labdevices( computer, “ibm pc”, 10) labdevices( computer, “vax-11”, 2)
- •14. Метод резолюций. Резольвенты. Полнота метода. Отличие от классических схем вывода. Понятие о дизъюнктах. Демонстрация метода на примере дерева вывода.
- •19. Унификация. Подстановки. Композиция подстановок. Свойства композиции подстановок. Множество рассогласований.
- •20. Стратегии унификации. Пример дерева вывода стратегией “вглубь”.
- •21.Управление процессом решения в логической программе. Бэктрекинг. Отсечение. Повторение.
- •23. Декларативные и процедурные элементы Турбо-Пролога. Примеры применения в логической программе.
- •25.Обработка отношений в Турбо-Прологе. Примеры программирования композиций отношений.
- •26. Организация работы с файлами. Средства Турбо-Пролога для работы с файлами.
- •27. Динамические базы данных. Стандартные предикаты для работы с ними. Примеры применения.
- •Организация меню:
- •Vvod3:-makewindow(4,7,9," Расчёт выходов логической схемы ",0,0,25,80),
- •32. Отладка и трассировка логических программ.
- •34. Общение с эвм на языке, близком к естественному. Проблемы общения. Роль языков представления знаний в проблеме общения.
- •35. Структура лингвистического транслятора.
- •О озу бобщённая схема машины логического вывода.
Организация меню:
clauses repeat.
Repeat:-repeat repeat clearwindow
Mmenu- makewindow (1,7,7,"текст",5,25,20,75)
write(“ 1. Graphics “ ), nl ,
write(“ Enter your choise : 1 – 8 “ ), nl,
readint( N ), N>0, N<9,
module(N), fail.
module(1) :- /* предикаты реализации графических задач */ , readchar(_).
30. Применение логических программ для решения технических задач.
Отличие процедур расчетов в логическом программировании на Турбо Прологе от обычных в том, что они выполняются с помощью предикатов. При этом для арифметических предикатов используется традиционная запись, например, у=х+Ь, а не сложить(х, Ь, у ). Следует помнить, что для вещественных чисел указанное равенство может быть невыполнимо в силу приближенного представления чисел в компьютере и в этом случае предикат может считаться условно истинным в том смысле, что левая и правая части выражения совпадают с достижимой в компьютере точностью.
domains
arg = real
predicates
funct(arg)
clauses
funct(X):-3<X,X<7, Y=ln(7)+sin(X)+X*X, write("Y=",Y).
funct(X):-1<X,X<=3, Y=sin(X)*sin(X)*sin(X)+ln(X)+exp(3), write("Y=",Y).
funct(X):-X=10, Y=exp(ln(2)*X)+log(X), write("Y=",Y).
domains rr=real
predicates I(rr,rr,rr) U(rr,rr,rr) Rob(rr,rr,rr) Rparal(rr,rr,rr) Rparal2(rr,rr,rr) Rposled(rr,rr,rr,rr)
goal menu.
clauses repeat. repeat:-repeat.
I(U,I,R):-I=U/R. U(U,I,R):-U=I*R.
Rob(R0,Rp3,R6):-R0=(Rp3*R6)/(Rp3+R6).
Rposled(Rp3,R3,Rp1,Rp2):-Rp3=Rp1+R3+Rp2.
Rparal(Rp1,R1,R2):-Rp1=(R1*R2)/(R1+R2).
Rparal2(Rp2,R4,R5):-Rp2=(R4*R5)/(R4+R5).
vvod1:-makewindow(2,7,9," Расчёт электрической цепи ",0,0,25,80),
cursor(1,5),write(" Введите основные параметры: "),
cursor(2,10),write(" U0= "),readreal(U0),
cursor(3,10),write(" R1= "),readreal(R1),
cursor(8,10),write(" R6= "),Readreal(R6),nl,
Rparal(Rp1,R1,R2), Rparal2(Rp2,R4,R5),
Rposled(Rp3,R3,Rp1,Rp2), Rob(R0,Rp3,R6),
I(U0,I0,R0), I(U0,I6,R6), I(U0,I3,Rp3), U(U3,I3,R3),
U(U1,I3,Rp1), I(U1,I1,R1), I(U1,I2,R2),
U(U2,I3,Rp2), I(U2,I4,R4), I(U2,I5,R5),
cursor(11,5),write(" Рассчитанные параметры: "),
cursor(12,10),write(" Входные U= ",U0," I= ",I0, " Rob= ",R0),
cursor(13,10),write(" На резисторе R1: U= ",U1," I= ",I1),
cursor(18,10),write(" На резисторе R6: U= ",U0," I= ",I6),
readln(_).
Расчёт резисторной схемы: U0=9, R1=2, R2=2, R3=1, R4=2, R5=2, R6=3.
Результат: I=6, I1=1,5, I2=1,5, I3=3, I4=1,5, I5=1,5, I6=3, U1=3,…, U7=3, Rob=1,5.
31. Моделирование логических схем на Прологе. Пример.
domains num,s=integer
predicates gen(s,s,s,s) sdv(s,s,s,s,s,s)
ii(num,num,num) ili(num,num,num) tr_rs(num,num,num,num) tr_t(num,num,num)
dc(num,num,num,num,num,num) no(num,num)
goal menu.
clauses repeat. repeat:-repeat.
/* X1,X2,Y */ ii(0,0,0). ii(1,0,0). ii(0,1,0). ii(1,1,1).
/* X1,X2,Y */ ili(0,0,0). ili(0,1,1). ili(1,0,1). ili(1,1,1).
/* S,R,Q0,Q1 */ tr_rs(0,0,0,0). tr_rs(0,0,1,1). tr_rs(0,1,0,0). tr_rs(0,1,1,0). tr_rs(1,0,0,1). tr_rs(1,0,1,1).
/* X,Q0,Q1 */ tr_t(0,0,0). tr_t(0,1,1). tr_t(1,0,1). tr_t(1,1,0).
/* X1,X2,Y1,Y2,Y3,Y4 */ dc(0,0,1,0,0,0). dc(0,1,0,1,0,0). dc(1,0,0,0,1,0). dc(1,1,0,0,0,1).
/* X,Y */ no(0,1). no(1,0).
