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


Авторские права

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

Здесь можно скачать бесплатно "Иван Братко - Программирование на языке Пролог для искусственного интеллекта" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство Мир, год 1990. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Иван Братко - Программирование на языке Пролог для искусственного интеллекта
Рейтинг:
Название:
Программирование на языке Пролог для искусственного интеллекта
Автор:
Издательство:
Мир
Год:
1990
ISBN:
5-03-001425-Х
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "Программирование на языке Пролог для искусственного интеллекта" читать бесплатно онлайн.



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

Для программистов разной квалификации, специалистов по искусственному интеллекту, для всех изучающих программирование.






разбиениесписка( [X], [X], []).

 % Разбиение одноэлементного списка

разбиениесписка( [X, Y | Список], [X | Список1],

 [Y | Список2]) :-

 разбиениесписка( Список, Список1, Список2).

3.10

можетзавладеть( состояние( _, _, _, имеет), [] ).

  % Ничего не надо делать

можетзавладеть( Состояние, [Действие | Действия]):-

 ход( Состояние, Действие, НовоеСостояние),

  % Первое действие

 можетзавладеть( НовоеСостояние, Действия).

  % Оставшиеся действия

3.11

линеаризация( [Голова | Хвост], ЛинейныйСписок ) :-

  % Линеаризация непустого списка

 линеаризация( Голова, ЛинейнаяГолова ),

 линеаризация( Хвост, ЛинейныйХвост ),

 конк( ЛинейнаяГолова, ЛинейныйХвост,

 ЛинейныйСписок ).

линеаризация( [], [] ). % Линеаризация пустого списка

линеаризация( X, [X] ).

 % Линеаризация объекта, не являющегося списком


% Замечание: при попытке получить от этой программы более

% одного варианта решения выдается бессмыслица

3.12

Терм1 = играет_в( джимми, и( футбол, сквош) )

Терм2 = играет_в( сьюзан, и( теннис,

 и( баскетбол, волейбол) ) )

3.13

:- op( 300, xfx, работает)

:- op( 200, xfx, в)

:- op( 100, xfx, нашем)

3.14

(a) А = 1 + 0

(b) В = 1 + 1 + 0

(c) С = 1 + 1 + 1 + 1 + 0

(d) D = 1 + 1 + 0 + 1

3.15

:- op( 100, xfx, входит_в)

:- op( 300, fx, конкатенация_списков)

:- op( 200, xfx, дает)

:- op( 100, xfx, и)

:- op( 300, fx, удаление_элемента)

:- op( 100, xfx, из_списка) % Принадлежность к списку


Элемент входит_в [Элемент | Список].

Элемент входит_в [Первый | СписокОстальных] :-

 Элемент входит_в СписокОстальных.


% Конкатенация списков

конкатенация_списков [] и Список дает Список.

конкатенация_списков [X | L1] и L2 дает [X | L3] :-

 конкатенация_списков L1 и L2 дает L3.


% Удаление элемента из списка

удаление_элемента Элемент из_списка

 [Элемент | ОстальныеЭлементы]

 дает ОстальныеЭлементы.

удаление_элемента Элемент из_списка

 [Первый | ОстальныеЭлементы]

 дает [Первый | НовСписОстЭлементов] :-

 удаление_элемента Элемент из_списка

 ОстальныеЭлементы дает НовСписОстЭлементов.

3.16

max( X, Y, X) :-

 X >= Y.

max( X, Y, Y) :-

 X <Y.

3.17

максспис( [X], X).

  % Максимум в одноэлементном списке

максспис( [X, Y | Остальные], Мах) :-

  % В списке есть по крайней мере два элемента?

максспис( [Y | Остальные], МаксОстальные),

 mах( X, МаксОстальные, Мах).

  % Мах наибольшее из чисел X и МаксОстальные

3.18

сумспис( [], 0).

сумспис( [Первый | Остальные], Сумма) :-

 сумспис( Остальные, СуммаОстальных),

 Сумма is Первый + СуммаОстальных.

3.19

упорядоченный ([]).

  % Одноэлементный список является упорядоченным

упорядоченный( [X, Y | Остальные] :-

 X =< Y,

 упорядоченный( [Y | Остальные] ).

3.20

подсумма( [], 0, []).

подсумма( [N | Список], Сумма, [N | Подмн]) :-

  % N принадлежит подмножеству


Сумма1 is Сумма - N,

 подсумма( Список, Сумма1, Подмн).


подсумма( [N | Список], Сумма, Подмн) :-

  % N не принадлежит подмножеству

 подсумма( Список, Сумма, Подмн).

3.21

между( N1, N2, N1) :-

 N1 =< N2.

между( N1, N2, X) :-

 N1 < N2,

 HoвoeN1 is N1 + 1,

 между( HoвoeN1, N2, X).

3.22

:- op( 900, fx, если).

:- op( 800, xfx, то).

:- op( 700, xfx, иначе).

:- op( 600, xfx, :=).


если Вел1 > Вел2 то Перем := Вел3

 иначе ЧтоУгодно :-

 Вел1 > Вел2,

 Перем = Вел3.

если Вел1 > Вел2 то ЧтоУгодно

 иначе Перем := Вел4 :-

 Вел1 =< Вел2,

 Перем = Вел4.

Глава 4

4.1

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

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

    работает( _, _ ) )).

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

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

(d) ?- семья( Муж, Жена, Дети),

    датарождения( Муж, дата( _, _, Год1) ),

    датарождения( Жена, дата( _, _, Год2) ),

    ( Год1 - Год2 >= 15;

      Год2 - Год1 >= 15 ),

    принадлежит( Ребенок, Дети).

4.2

близнецы( Ребенок1, Ребенок2) :-

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

 удалить( Ребенок1, Дети, ДругиеДети),

  % Выделить первого ребенка

 принадлежит( Ребенок2, ДругиеДети),

 принадлежит( Ребенок1, Дата),

 принадлежит( Ребенок2, Дата).

4.3

n_элемент( 1, [X | L], X).

  % X - первый элемент списка [X | L]

n_элемент( N, [Y | L], X) :-

  % X - n-й элемент [Y | L]

 N1 is N - 1,

 n_элемент( N1, L, X).

4.4

Входная цепочка укорачивается на каждом неспонтанном цикле, а укорачиваться бесконечно она не может.

4.5

допускается( S, [], _ ) :-

 конечное( S).

допускается( S, [X | Остальные], Макс_переходов) :-

 Макс_переходов > 0,

 переход( S, X, S1),

 НовыйМакс is Макс_переходов - 1,

 допускается( S1, Остальные, НовыйМакс).

допускается( S, Цепочка, Макс_переходов) :-

 Макс_переходов > 0,

 спонтанный( S, S1),

 НовыйМакс is Макс_переходов - 1,

 допускается( S1, Цепочка, НовыйМакс).

4.7

(а) ходконя( X/Y, X1/Y1) :-

     % Ход коня с поля X/Y на поле X1/Y1

    ( dxy( DX, DY);

     % Расстояния по направлениям X и Y

    dxy( DY, DX) ),

     % Или расстояния по направлениям Y и X

    X1 is X + DX,

     % X1 расположен в пределах шахматной доски

    надоске( X1),

    Y1 is Y + DY,

     % Y1 расположен в пределах шахматной доски

    надоске( Y1).


   dxy( 2, 1).   % 2 поля вправо, 1 поле вперед

   dxy( 2, -1).  % 2 поля вправо, 1 поле назад

   dxy( -2, 1).  % 2 поля влево, 1 поле вперед

   dxy( -2, -1). % 2 поля влево, 1 поле назад


   надоске( Коорд) :-

     % Координаты в пределах доски

    0 < Коорд,

    Коорд < 9.

(b) путьконя( [ Поле]). % Конь стоит на поле Поле

   путьконя( [S1, S2 | Остальные] ) :-

    ходконя( S1, S2),

    путьконя( [S2 | Остальные]).

(c) ?- путьконя( [2/1, R, 5/4, S, X/8] ).

Глава 5

5.1

(a) X = 1;

   X = 2

(b) X = 1;

   Y = 1;


   X = 1;

   Y = 2;


   X = 2;

   Y = 1;


   X = 2;

   Y = 2;

(c) X = 1;

   Y = 1;


   X = 1;

   Y = 2;

5.2

класс( Число, положительное) :-

 Число > 0, !.

класс( 0, нуль) :- !.

класс( Число, отрицательное).

5.3

разбить( [], [], []).

разбить( [X | L], [X | L1], L2) :-

 X >= 0, !,

 разбить( L, L1, L2).

разбить( [X | L], L1, [X | L2]) .

 разбить( L, L1, L2).

5.4

принадлежит( Некто, Кандидаты),

 not принадлежит( Некто, Исключенные)

5.5

разность( [], _, []).

разность( [X | L1], L2, L):-

 принадлежит( X, L2), !,

 разность( L1, L2, L).

разность( [X | L1], L2, [X | L]) :-

 разность( L1, L2, L).

5.6

унифицируемые( [], _, []).

унифицируемые( [Первый | Остальные], Терм, Список) : -

 not( Первый = Терм), !,

 унифицируемые( Остальные, Терм, Список).

унифицируемые( [Первый | Остальные], Терм,

 [Первый | Список] ) :-

 унифицируемые( Остальные, Терм, Список).

Глава 6

6.1

найтитерм( Терм) :-

  % Пусть текущий входной поток - это файл f

 read( Терм), !,


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

Книги похожие на "Программирование на языке Пролог для искусственного интеллекта" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Иван Братко

Иван Братко - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

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

Отзывы читателей о книге "Программирование на языке Пролог для искусственного интеллекта", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.