пользователей: 21281
предметов: 10473
вопросов: 178149
Конспект-online
зарегистрируйся или войди через vk.com чтобы оставить конспект.
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Основные конструкции и основы синтаксиса языка Prolog. Привести примеры.

Основные конструкции пролога: Константы (Атомы – начинаются со строчной буквы и содержат только буквы и цифры, Целые и вещественные числа), Факты, Правила, Вопросы, Переменные.

Символы, используемые в Прологе - A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 !@#$%&‘()=-`^|\[]_~@+;*:<>,.?/

Пролог-программы состоят из термов.

Терм – это лексическая единица программы. Это либо константа, либо переменная, либо структура.

ПРОЛОГ является языком исчисления предикатов (обозначаются F(x), F(x, y), F(x, y, z)).

Факты

Пример: факт «Джону нравится Мери».

likes(john, mary).

likes - имя отношения, предикат с 2-мя аргументами

jon, mary - имя объекта, аргументы

likes, john, mary - атомы.

Правила оформления фактов

  • Имена всех отношений и объектов должны начинаться со строчной буквы.
  • Сначала записывается имя отношения. Затем через запятую записываются имена объектов, а весь список имен объектов заключается в круглые скобки.
  • Каждый факт должен заканчиваться точкой.
  • Важно соблюдать порядок объектов.

Задача ПРОЛОГ - программы заключается в том, чтобы доказать, является ли заданное целевое утверждение следствием из имеющихся фактов и правил.

Имея некоторую совокупность фактов, мы можем обращаться к прологу с вопросами о них.                               ?- has(mary, book).

Два факта совпадают, если их предикаты совпадают и их аргументы попарно совпадают. Результатом поиска является ответ да или нет.

Пример:

man(john).

woman(mary).

has(mary, book).

 

?-man(john). – yes

 ?-has(mary, book). - yes

?-man(mary). - no

?-man(bob). - no

likes(john, flowers).

likes(john, mary).

likes(pol, mary).

 

?- likes(john, X).

X=flowers;

X=mary; 

no

?- likes(X, mary).

X=john;

X=pol;

no

Конъюнкции

 «Существует ли что-нибудь такое, что нравится обоим - Джону и Полу»?

Это можно интерпретировать так:

существует ли такой X, что утверждения likes(john, X) и likes(pol, X) оба согласованы с базой данных.           ?-likes(john, X), likes(pol, X).

Правила

Рассмотрим БД:

thief(john).

likes(mary, сheese).

likes(mary, wine).

Определим правило:

 Джону нравятся любой, кому нравится вино. likes(john, X) :- likes(X, wine).

Человек может украсть вещь, если он вор и ему эта вещь нравится.

can_steal(X, Y) :- thief(X), likes(X, Y).


25.03.2015; 19:10
хиты: 28
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2016. All Rights Reserved. помощь