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

Тут можно читать онлайн Иван Братко - Программирование на языке Пролог для искусственного интеллекта - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Мир, год 1990. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование на языке Пролог для искусственного интеллекта
  • Автор:
  • Жанр:
  • Издательство:
    Мир
  • Год:
    1990
  • Город:
    Москва
  • ISBN:
    5-03-001425-Х
  • Рейтинг:
    4.1/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Программирование на языке Пролог для искусственного интеллекта - описание и краткое содержание, автор Иван Братко, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

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

Программирование на языке Пролог для искусственного интеллекта - читать книгу онлайн бесплатно, автор Иван Братко
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

палиндром1( [] ).

палиндром1( [ _ ] ).

палиндром1 [Первый | Остальные] ) :-

конк( Середина, [Первый], Остальные),

палиндром1( Середина).

3.6

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

конк( Остальные, [Первый], Сдвинут).

3.7

перевод( [], []).

перевод( [Голова | Хвост], [Голова1 | Хвост1]) :-

означает( Голова, Голова1),

перевод( Хвост, Хвост1).

3.8

подмножество( [], [] ).

подмножество( [Первый | Остальные], [Первый | Подмн]):-

% Оставить первый элемент в подмножестве

подмножество( Остальные, Подмн).

подмножество( [Первый | Остальные], Подмн) :-

% Убрать первый элемент из подмножества

подмножество( Остальные, Подмн).

3.9

разбиениесписка( [], [], []). % Разбивать нечего

разбиениесписка( [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

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) ),

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

Интервал:

Закладка:

Сделать


Иван Братко читать все книги автора по порядку

Иван Братко - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


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


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

Напишите свой комментарий
x