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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

% ПЛАНИРОВЩИК ВОЗДУШНЫХ МАРШРУТОВ

:- op( 50, xfy, :).

рейс( Пункт1, Пункт2, День, Np, ВрОтпр, ВрПриб) :-

расписание( Пункт1, Пункт2, СписРейсов),

принадлежит( ВрОтпр / ВрПриб / Nр / СписДней, СписРейсов),

день_выл( День, СписДней).

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

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

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

день_выл( День, СписДней) :-

принадлежит( День, СписДней).

день_выл( День, ежедневно) :-

принадлежит( День, [пн, вт, ср, чт, пт, сб, вс] ).

маршрут( P1, P2, День, [P1-Р2 : Np : ВрОтпр] ) :-

% прямой рейс

рейс( P1, P2, День, Np, ВрОтпр, _ ).

маршрут( P1, Р2, День, [Pl-P3 : Np1 : Oтпp1 | Маршрут]) :-

% маршрут с пересадками

маршрут( Р3, P2, День, Маршрут ),

рейс( P1, Р3, День, Npl, Oтпp1, Приб1),

вр_отпр( Маршрут, Отпр2),

пересадка( Приб1, Отпр2).

вр_отпр( [P1-Р2 : Np : Отпр | _ ], Отпр).

пересадка( Часы1 : Минуты1, Часы2 : Минуты2) :-

60 * (Часы2-Часы1) + Минуты2 - Минуты1 >= 40

% БАЗА ДАННЫХ О РЕЙСАХ САМОЛЕТОВ

расписание( эдинбург, лондон,

[ 9:40 / 10:50 / bа4733 / ежедневно,

13:40 / 14:50 / ba4773 / ежедневно,

19:40 / 20:50 / bа4833 / [пн, вт, ср, чт, пт, вс] ] ).

расписание( лондон, эдинбург,

[ 9:40 / 10:50 / bа4732 / ежедневно,

11:40 / 12:50 / bа4752 / ежедневно,

18:40 / 19:50 / bа4822 / [пн, вт, ср, чт, пт] ] ),

расписание( лондон, любляна,

[13:20 / 16:20 / ju201 / [пт],

13:20 / 16:20 / ju213 / [вс] ] ).

расписание( лондон, цюрих,

[ 9:10 / 11:45 / bа614 / ежедневно,

14:45 / 17:20 / sr805 / ежедневно ] ).

расписание( лондон, милан,

[ 8:30 / 11:20 / bа510 / ежедневно,

11:00 / 13:50 / az459 / ежедневно ] ).

расписание( любляна, цюрих,

[11:30 / 12:40 / ju322 / [вт,чт] ] ).

расписание( любляна, лондон,

[11:10 / 12:20 / yu200 / [пт],

11:25 / 12:20 / yu212 / [вс] ] ).

расписание( милан, лондон,

[ 9:10 / 10:00 / az458 / ежедневно,

12:20 / 13:10 / bа511 / ежедневно ] ).

расписание( милан, цюрих,

[ 9:25 / 10:15 / sr621 / ежедневно,

12:45 / 13:35 / sr623 / ежедневно ] ).

расписание( цюрих, любляна,

[13:30 / 14:40 / yu323 / [вт, чт] ] ).

расписание( цюрих, лондон,

9:00 / 9:40 / bа613 /

[ пн, вт, ср, чт, пт, сб],

16:10 / 16:55 / sr806 / [пн, вт, ср, чт, пт, сб] ] ).

расписание( цюрих, милан,

[ 7:55 / 8:45 / sr620 / ежедневно ] ).

Рис. 4.5. Планировщик воздушных маршрутов и база данных о рейсах самолетов.

Вот некоторые примеры вопросов к планировщику:

• По каким дням недели существуют прямые рейсы из Лондона в Люблину?

?- рейс( лондон, любляна, День, _, _, _ ).

День = пт;

День = сб;

no (нет)

• Как мне добраться из Любляны в Эдинбург в четверг?

?- маршрут( любляна, эдинбург, чт, R).

R = [любляна-цюрих : уu322 : 11:30, цюрих-лондон:

sr806 : 16:10,

лондон-эдинбург : bа4822 : 18:40 ]

• Как мне посетить Милан, Любляну и Цюрих, вылетев из Лондона во вторник и вернувшись в него в пятницу, совершая в день не более одного перелета? Этот вопрос сложнее, чем предыдущие. Его можно сформулировать, использовав отношение перестановка, запрограммированное в гл. 3. Мы попросим найти такую перестановку городов Милан, Любляна и Цюрих, чтобы соответствующие перелеты можно было осуществить в несколько последовательных дней недели:

?- перестановка( [милан, любляна, цюрих],

[Город1, Город2, Город3] ),

рейс( лондон, Город1, вт, Np1, Oтпp1, Пpиб1),

peйc( Город1, Город2, ср, Np2, Отпр2, Приб2),

рейс( Город2, Город3, чт, Np3, Отпp3, Приб3),

рейс( Город3, лондон, пт, Np4, Отпр4, Приб4).

Город1 = милан

Город2 = цюрих

Город3 = любляна

Np1 = ba510

Отпр1 = 8:30

Приб1 = 11:20

Np2 =sr621

Отпр2 = 9:25

Приб2 = 10:15

Np3 = yu323

Отпр3 = 13:30

Приб3 = 14:40

Np4 = yu200

Отпр4 = 11:10

Приб4 = 12:20

4.5. Задача о восьми ферзях

Эта задача состоит в отыскании такой расстановки восьми ферзей на пустой шахматной доске, в которой ни один из ферзей не находится под боем другого. Решение мы запрограммируем в виде унарного отношения:

решение( Поз)

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x