- •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. Структура лингвистического транслятора.
- •О озу бобщённая схема машины логического вывода.
25.Обработка отношений в Турбо-Прологе. Примеры программирования композиций отношений.
селекция – выбирается полностью запись, удовлетворяющая заданному критерию (выбираются все строки).
проекция – происходит селекция, но выбирается не вся запись, а только некоторая часть атрибутов.
объединение – новое отношение, включающее все различные атрибуты
соединение – новое отношение, включающее все атрибуту
пересечение – новое отношение, содержащее те атрибуты, которые имеются во всех отношениях
разность А и Б – новое отношение, которое состоит из тех атрибутов А, которых нет в Б.
prof(ivanov,petr,1971,moskva,teacher)
prof(petrov,misha,1980,smolensk,teacher)
profhol(x)prof(x,_,_,_,teacher)
tablo1(1,"1234",passagir,12,[tambov,saratov,volgograd]). tablo1(2,"543",passagir,15,[smolensk,moskva,kursk,belgorod]).
tablo2(passagir,12,2).
tablo2(passagir,15,2).
peresechenie:-tablo1(_,_,C,D,_),tablo2(C,D,_),
write(" Тип: ",C),nl,
write(" Кол-во вагонов: ",D),nl,nl,fail.
obedinenie:- tablo1(A,B,C,D,E),tablo2(C,D,F),
write("№",A),nl,
write(" Номер: ",B),nl,
write(" Тип: ",C),nl,
write(" Кол-во вагонов: ",D),nl,
write(" Города: ",E),nl,
write(" Кол-во локомотивов: ",F),nl,fail.
Результат: peresechenie Тип: passagir Кол-во вагонов: 12 Тип: passagir Кол-во вагонов: 15
obedinenie N1 Номер: 1234 Тип: passagir Кол-во вагонов: 12
Города: [tambov,saratov,volgograd] Кол-во локомотивов: 2
26. Организация работы с файлами. Средства Турбо-Пролога для работы с файлами.
Для работы с файлами в Турбо Прологе имеются встроенные стандартные предикаты, реализующие типовые операции открытия файлов для чтения-open-read( ) , для записи в файл – openwrite( ), для добавления в файл – openappend( ), для модификации и изменений файлов – openmodify( ), закрытия файлов close- file( ) и другие.
При работе логической программы c файлами они должны быть описаны в секции domains.
domains file= myfile1; myfile2; …; myfilen
Предикаты openread( ), openwrite( ), openappend( ) openmodify( ) имеют одинаковый формат. В скобках указывается два параметра. Первым параметром является имя файла, указанное в описании domains и которое далее используется в программе, а вторым – строка в кавычках, указывающая путь доступа к файлу на диске. openread(myfile1, “C:\prolog\file.txt”)
Предикат closefile( ) имеет один параметр – имя закрываемого файла closefile(myfile1).
Операции чтения и записи с открытыми файлами выполняются после назначения устройств для чтения или записи с помощью предикатов переадресации writedevice( ) и readdevice( ). В скобках этих предикатов указываются имена файлов либо имена устройств ввода или вывода screen, keyboard, printer и другие. Например, writedevice(myfile1), readdevice(keyboard).
Для работы с данными в файлах могут быть использованы стандартные предикаты чтения и записи: readint( ), readchar( ), readreal( ), readln( ), write( ) и другие.
Для работы с открытыми файлами могут использоваться предикаты:
filemode( )- для задания режима работы с текстовыми или двоичными файлами;
existfile( )-для определения, имеется ли файл на текущем устройстве;
renamefile( )- для переименования файлов;
deletefile( )-для удаления файла с диска;
disk( )-для указания текущего пути;
filepos( )-для позиционирования указателя при операциях чтения или модификации;
flush( )- для сброса буфера.
Ниже приведены образцы программ записи в файл и чтения из файла.
domains file=wrfile; rdfile
predicates write_f read_f write_str read_str wr_f(string) rd_f(string)
clauses
write_f:-write("Bведите имя файла для записи: "),nl,
readln(Fname),
wr_f(Fname).
wr_f(Fname):-openwrite(wrfile, Fname),
write_str.
write_str:-write("Введите строку для записи в файл: "),nl,
readln(St), writedevice(wrfile),
write(St),nl, writedevice(screen),
write("Будете продолжать запись ? (y/n)"),nl,
readln(Ansver), Ansver=y, write_str.
write_str:-closefile(wrfile), write("Работа завершена."),nl,exit.
read_f:-write("Введите имя файла для чтения данных: "),nl,
readln(Fname), rd_f(Fname).
rd_f(Fname):-openread(rdfile, Fname), read_str.
read_str:-readdevice(rdfile),nl,
readln(St), write(St),nl,
write("Пpочитать ещё строку ? (y/n)"),nl,
readdevice(keyboard), readln(Sm), Sm=y, read_str.
read_str:-closefile(rdfile), write("Работа завершена"),nl.
