Иван Братко - Программирование на языке Пролог для искусственного интеллекта

Здесь есть возможность читать онлайн «Иван Братко - Программирование на языке Пролог для искусственного интеллекта» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1990, ISBN: 1990, Издательство: Мир, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программирование на языке Пролог для искусственного интеллекта: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программирование на языке Пролог для искусственного интеллекта»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Книга известного специалиста по программированию (Югославия), содержащая основы языка Пролог и его приложения для решения задач искусственного интеллекта. Изложение отличается методическими достоинствами — книга написана в хорошем стиле, живым языком. Книга дополняет имеющуюся на русском языке литературу по языку Пролог.
Для программистов разной квалификации, специалистов по искусственному интеллекту, для всех изучающих программирование.

Программирование на языке Пролог для искусственного интеллекта — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программирование на языке Пролог для искусственного интеллекта», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

семья( членсемьи( том, фокс, дата( 7, май, 1950),

работает( bbс, 15200) ),

членсемьи( энн, фокс, дата( 9, май, 1951), неработает),

[членсемьи( пат, фокс, дата( 5, май, 1973), неработает),

членсемьи( джим, фокс, дата( 5, май, 1973), неработает) ] ).

Рис 41Структурированная информация о семье Тогда база данных будет состоять - фото 34

Рис. 4.1.Структурированная информация о семье.

Тогда база данных будет состоять из последовательности фактов, подобных этому, и описывать все семьи, представляющие интерес для нашей программы.

В действительности Пролог очень удобен для извлечения необходимой информации из такой базы данных. Здесь хорошо то, что можно ссылаться на объекты, не указывая в деталях всех их компонент. Можно задавать только структуру интересующих нас объектов и оставлять конкретные компоненты без точного описания или лишь с частичным описанием. На рис. 4.2 приведено несколько примеров. Так, а запросах к базе данных можно ссылаться на всех Армстронгов с помощью терма

семья( членсемьи( _, армстронг, _, _ ), _, _ )

Символы подчеркивания обозначают различные анонимные переменные, значения которых нас не заботят. Далее можно сослаться на все семьи с тремя детьми при помощи терма:

семья( _, _, [ _, _, _ ])

Чтобы найти всех замужних женщин, имеющих по крайней мере троих детей, можно задать вопрос:

?- семья( _, членсемьи( Имя, Фамилия, _, _ ), [ _, _, _ | _ ]).

Главным моментом в этих примерах является то, что указывать интересующие нас объекты можно не только по их содержимому, но и по их структуре. Мы задаем одну структуру и оставляем ее аргументы в виде слотов (пропусков).

Рис 42 Описания объектов по их структурным свойствам а любая семья - фото 35

Рис. 4.2. Описания объектов по их структурным свойствам: (а) любая семья Армстронгов; (b) любая семья, имеющая ровно трех детей; (с) любая семья, имеющая по крайней мере три ребенка. Структура (с) дает возможность получить имя и фамилию жены конкретизацией переменных Имяи Фамилия.

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

муж( X) :- % X - муж

семья( X, _, _ ).

жена( X) :- % X - жена

семья( _, X, _ ).

ребенок( X) :- % X - ребенок

семья( _, _, Дети),

принадлежит( X, Дети).

принадлежит( X, [X | L ]).

принадлежит( X, [Y | L ]) :-

принадлежит( X, L).

существует( Членсемьи) :-

% Любой член семьи в базе данных

муж( Членсемьи);

жена( Членсемьи);

ребенок( Членсемьи).

дата рождения( Членсемьи( _, _, Дата, _ ), Дата).

доход( Членсемьи( _, _, _, работает( _, S) ), S).

% Доход работающего

доход( Членсемьи( _, _, _, неработает), 0).

% Доход неработающего

Этими процедурами можно воспользоваться, например, в следующих запросах к базе данных:

• Найти имена всех людей из базы данных:

?- существует( членсемьи( Имя,Фамилия, _, _ )).

• Найти всех детей, родившихся в 1981 году:

?- ребенок( X), датарождения( X, дата( _, _, 1981) ).

• Найти всех работающих жен:

?- жена( членсемьи( Имя, Фамилия, _, работает( _, _ ))).

• Найти имена и фамилии людей, которые не работают и родились до 1963 года:

?- существует членсемьи( Имя, Фамилия, дата( _, _, Год), неработает) ),

Год < 1963.

• Найти людей, родившихся до 1950 года, чей доход меньше, чем 8000:

?- существует( Членсемьи),

датарождения( Членсемьи, дата( _, _, Год) ),

Год < 1950,

доход( Членсемьи, Доход),

Доход < 8000.

• Найти фамилии людей, имеющих по крайней мере трех детей:

?- семья( членсемьи( _, Фамилия, _, _ ), _, [ _, _, _ | _ ]).

Для подсчета общего дохода семья полезно определить сумму доходов людей из некоторого списка в виде двухаргументного отношения:

общий( Список_Людей, Сумма_их_доходов)

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

общий( [], 0). % Пустой список людей

общий( [ Человек | Список], Сумма) :-

доход( Человек, S),

% S - доход первого человека

общий( Список, Остальные),

% Остальные - сумма доходов остальных

Сумма is S + Остальные.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программирование на языке Пролог для искусственного интеллекта»

Представляем Вашему вниманию похожие книги на «Программирование на языке Пролог для искусственного интеллекта» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программирование на языке Пролог для искусственного интеллекта»

Обсуждение, отзывы о книге «Программирование на языке Пролог для искусственного интеллекта» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x