50855

Знакомство с языком логического программирования Пролог

Лабораторная работа

Информатика, кибернетика и программирование

Для этого задайте в качестве фактов следующие отношения между объектами предметной области: prents X Y X является родителем Y; mnX X мужчина; womnX X женщина. Определите в качестве правил используя отношения prents mn womn следующие отношения: sisterX Y X является сестройY; brotherX Y X является братом Y; ftherX Y X является отцом Y; motherX Y X является матерью Y; grndftherX Y X является дедушкой Y; grndmotherX Y X является бабушкой Y. untX Y X является тетей Y через...

Русский

2014-01-31

49.5 KB

7 чел.

Министерство образования и науки молодежи и спорта Украины

ОДЕССКИЙ НАЦИОНАЛЬНЫЙ МОРСКОЙ УНИВЕРСИТЕТ

Кафедра «Информационные технологии»

ОТЧЕТ ПО

ЛАБОРАТОРНОЙ РАБОТЕ №1

 

«Знакомство с языком логического программирования Пролог»

Выполнил:

студент 4к., 4гр. КСФ

Мельников В.Е.

Проверил:

Бодарев А.Д.

Одесса - 2013


Цель работы:
 Изучить основные языковые конструкции языка Пролог и ознакомиться со средой VisualProlog.

Задание

Необходимо описать предметную область «родственные отношения». Для этого задайте в качестве фактов следующие отношения между объектами предметной области:

  •  parents(X, Y) – X  является родителем Y;
  •  man(X) – X мужчина;
  •  woman(X) –X женщина.

Определите в качестве правил (используя отношения parents, man, woman) следующие отношения:

  •  sister(X, Y) – X является сестройY;
  •  brother(X, Y) – X является братом Y;
  •  father(X, Y) – X является отцом Y;
  •  mother(X, Y) – X является матерью Y;
  •  grandfather(X, Y) – X является дедушкой Y;
  •  grandmother(X, Y) – X является бабушкой Y.
  •   aunt(X, Y) – «X является тетей Y» через отношения parents и sister.

Контрольные вопросы:

  1.  Назовите основные программные секции программы на VisualProlog.

Обычно программа на VisualProlog состоит из 4-х программных секций. Каждой секции предшествует свое ключевое слово.

Секция доменов (domains) служит для объявления всех используемых нестандартных доменов. VisualProlog позволяет создавать свои собственные типы объектов из базисных типов доменов. Пример описания нестандартных типов данных:

domains

  person, thing = symbol

  age = integer

Секция предикатов (predicates) используется для объявления всех используемых в программе нестандартных предикатов. Описание предиката состоит из имени предиката, за которым в круглых скобках через запятую перечисляются типы аргументов:

predicateName(argument_type1, argument_type2, ...,

                                   argument_typeN)

Секция утверждений (clauses) содержит описание фактов и правил.

Например:

clauses

  likes(ellen, tennis).

  likes(tom, tennis).

  likes(bill, X) :- likes(tom, X).

Секция целей (goal) используется для задания целевого утверждения (запроса).

Например, целевым утверждением может являться запрос «найти все, что нравится биллу»:

goal

  likes(bill, What).

Секция целей ничем не отличается от тела правила: в ней также как и в теле правила перечисляются подцели. VisualProlog автоматически вычисляет подцели в разделе goal после запуска программы и выдает ответ в отдельном окне.

Кроме перечисленных, существуют и другие программные секции:

  •  секция констант (constants) – можно объявить символьные константы, которые затем можно будет использовать в программе. Для объявления констант используется следующий синтаксис:

<constant_name> =  <definition>

  •  секция динамических баз данных (database или facts) – содержит определение предикатов динамической базы данных. Факты динамической базы данных можно добавлять и удалять непосредственно во время исполнения программы.

секция глобальных определений (global domains, global predicates, global database) – позволяет задать глобальные определения, видимые в других модулях.

  1.  Назовите основные принципы поиска с возвратом.

При выполнении логического вывода Пролог использует метод, который называется поиск с возвратом. Суть его в следующем: если Пролог должен выбрать между двумя альтернативными путями, он ставит маркер у места ветвления (который называется точкой отката) и в случае неудачи по одному из путей Пролог возвращается к точке отката и пытается найти решение по альтернативному пути. В процессе логического вывода может быть несколько точек отката для различных подцелей. Поиск с возвратом имеет четыре принципа:

  1.  Подцели должны быть согласованы по порядку сверху вниз.
  2.  Предикатные предложения проверяются в том порядке, в каком они появляются в программе.
  3.  Когда подцель соответствует заголовку правила, тело этого правила образует новое множество подцелей для согласования.
  4.  Целевое утверждение считается согласованным, когда соответствующий факт найден для каждой оконечности (листа) целевого дерева.

  1.  Сформулируйте алгоритм унификации.

При выполнении запроса интерпретатор пытается унифицировать (сопоставить) аргументы запроса с аргументами базы данных. Пролог имеет внутренние подпрограммы для выполнения сопоставления. Они являются неотъемлемой частью языка и называются внутренними подпрограммами унификации. Эти подпрограммы выполняют сопоставление целей и подцелей с фактами и головами правил для того, чтобы доказать (или вычислить) эти цели или подцели. Существует несколько правил унификации:

  1.  Идентичные структуры сопоставляются друг с другом.
  2.  Свободная переменная сопоставляется с константой или с ранее связанной переменной (и становится связанной с соответствующим значением).
  3.  Две свободные переменные могут сопоставлять и связываться друг с другом. С момента связывания они трактуются как одна переменная: если одна из них принимает какое-то значение, то это же значение принимает немедленно и другая.

  1.  Дайте понятие переменной в языке Пролог.

Аргументами отношений могут выступать также абстрактные объекты – переменные. Переменные используются для задания общих правил и формулировки общих вопросов. Переменные должны начинаться с большой буквы. Например, правило «биллу нравится то же, что и тому» на Прологе можно записать так:

likes(bill, X) :- likes(tom, X).

В этом правиле объект X – переменная, объекты bill и tom – константы (начинаются с маленькой буквы).


Листинг
 программы

predicates
nondeterm parents(string,string)
          man
(string)
          woman
(string)
nondeterm sister(string,string)
nondeterm brother(string,string)
nondeterm father(string,string)
nondeterm mother(string,string)
nondeterm grandmother(string,string)
nondeterm grandfather(string,string)
nondeterm aunt(string,string)
clauses
    man
(tom).
    man
(jack).
    man
(parker).
    woman
(helen).
    woman
(ellen).
    woman
(viola).
    woman
(eva).
    parents
(tom, helen).
    parents
(tom, jack).
    parents
(ellen, helen).
    parents
(ellen, jack).
    parents
(parker, tom).
    parents
(viola, tom).
    parents
(parker, eva).
    sister
(X,Y) :- parents(Z,X),parents(Z,Y),woman(X).
    brother
(X,Y) :- parents(Z,X),parents(Z,Y),man(X).
    father
(X,Y):- parents(X,Y),man(X).
    mother
(X,Y):- parents(X,Y),woman(X).
    grandmother
(X,Z) :- parents(X,Y),parents(Y,Z),woman(X).
    grandfather
(X,Z) :- parents(X,Y),parents(Y,Z),man(X).
    aunt
(W,G):-woman(W),parents(Y,G),sister(W,Y).
 
goal
    
%sister(helen,jack).
    
%brother(jack,helen).
    
%father(tom,jack).
    
%mother(ellen,helen).
    
%grandmother(viola,jack).
    
%grandfather(parker,helen).
    aunt
(eva,jack).

Выполнение программы: во всех случаях выводит “yes”.


 

А также другие работы, которые могут Вас заинтересовать

34321. Отходы химической промышленности и способы их утилизации 21.5 KB
  Отработанные масла используют для производства бетонов битума т. Также используется для производства гипсокартонных листов для изоляции. Основной проблемой переработки отходов калийного производства является переработка природного сырья сильвинита KCLNCLнерастворимый осадок KCL полезный компонент который используется в качестве удобрения. Утилизация галита: закладка шахтного производства готовиться суспензия галит вода её под давлением в 20 атмосфер закачивают в место выработки.
34322. Отходы деревообрабатывающей и гидролизной промышленности и способы их утилизации 24.5 KB
  Переработка леса это не только переработка древесины как сырья: технологии рубок транспортировка хранение древесины лесопиление т. В результате неправильной эксплуатации леса может усилиться эрозия увеличиться заиление водных объектов нарушиться гидрологический режим что приведет в свою очередь к усилению паводков нехватке воды и деградации водных экосистем произойдет сокращение генетических ресурсов обострятся социальноэкономические проблемы. Вторичные леса то есть леса появившиеся на месте вырубленных первичных лесов...
34323. Влияние промышленных и бытовых отходов на экономию 24.5 KB
  продукты отходы пром. По физическому состоянию отходы делятся на 3 группы: при сжигании твердого топлива золы из неоплавленных. Отходы легкоплавкие до 1000 градусов среднеплавкие 10001300 и тугоплавкие 1300 и более. Отходы используют как пластифицирующие добавки в битумное прово что увеличивает прочность материала в 2 р.
34324. Вторичное сырье и его классификация 24.5 KB
  продукты отходы пром. По физическому состоянию отходы делятся на 3 группы: при сжигании твердого топлива золы из неоплавленных. Отходы легкоплавкие до 1000 градусов среднеплавкие 1001300 и тугоплавкие 1300л более. Отходы используют как пластифицирующие добавки в битумное прово что увеличивает прочность материала в 2 р.
34325. Возможные способы утилизации и использования вторичного сырья 23 KB
  фосфогипс этот отход производства фосфорных удобрений выбрасывается на свалку хотя мог бы использоваться для получения вяжущего гипса цемента в строительстве многоэтажных зданий можно перерабатывать в строительный гипс может также использоваться при производстве гипсокартонных листов для изоляции стеновых плит перегородок в производстве серной кислоты и CO известь. Испся как добавка в произве аглопарита можно вводить в состав керамической массы для произва кирпича до 8 отходы черной металлургии: образуются доменные...
34326. Комплексное использование сырья 22 KB
  Комплексное использование сырья. Комплексное использование сырья достигается обогащением сырья а также разнообразной химической переработкой сложного сырья с последовательным выделением компонентов в виде ценных продуктов используемых в различных отраслях народного хозяйства что приводит к комбинированию различных прв. Обогащение сырья необходимо т. 1нецелесообразно перевозить пустую породу и 2применение более чистого концго сырья позволит получить качественную продукцию которая обладает более высокой стоимостью.
34327. Экономические проблемы защиты окружающей среды. Очистка газообразных выбросов и сточных вод 24 KB
  Очистка газообразных выбросов и сточных вод. Что касается очистки то необходимым условием повышения эффективности очистки природных и сточных вод явл. Могут применяться следующие варианты обезвреживания и очистки сточных вод: очистка и повторное использование воды; обезвоживание ила и шлама; выпаривание сточных вод; осаждение фильтрование твердых частиц; нейтрализация кислых или щелочных сточных вод; использование очищенных сточных вод в сельском хозяйстве; денитрификация сточных вод. Механические заключаются в отстаивании и...
34328. Технологическая блок-схема и пооперационная структура 21 KB
  Технологическая схема прва состоит из отдельных операций через ке проходит сырье для получения продукта. Все процессы взаимосвязаны между собой и направлены на изготовление конечного продукта. Для получения конечного продукта могут быть и другие схемы но здесь важно с экономической точки зрения оценить в кой схеме мы имеем больше выгоды.
34329. Принцип составления материального и энергетического балансов 24 KB
  Под технологическим балансом подразумевают результаты расчетов отражающих количество введенных и полученных в производственном процессе материалов и энергии. В основе составления материального и энергетического балансов лежат законы сохранения материи и энергии. энергии и колва выведенной с продуктом и отходами энергии. выход продции коэфты полезного использя энергии расходы и потери сырья т.