Неизвестно - Prolog

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

Prolog: краткое содержание, описание и аннотация

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

Prolog — читать онлайн бесплатно полную книгу (весь текст) целиком

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

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

Интервал:

Закладка:

Сделать

V( P, Альфа, Бета) <= Альфа если V( P) <= Альфа

V( P, Альфа, Бета) = V( P) если Альфа < V( P) < Бета

V( P, Альфа, Бета) >= Бета если V( P) >= Бета

Рис 15 4 Дерево рис 152 после применения альфабета алгоритма Пунктиром - фото 109

Рис. 15. 4. Дерево рис. 15.2 после применения альфа-бета алгоритма.

Пунктиром показаны ветви, отсеченные альфа-бета алгоритмом

для экономии времени поиска. В результате некоторые из

рабочих оценок стали приближенными (вершины c , е , f ;

сравните с рис.15.2). Однако этих приближенных оценок

достаточно для вычисления точной оценки корневой

вершины и построения основного варианта.

Очевидно, что, умея вычислять "достаточно хорошую" оценку, мы всегда можем вычислить точную оценку корневой позиции Р , установив границы интервала следующим образом:

V( Р, -бесконечность, +бесконечность) = V( P)

На рис. 15.5 показана реализация альфа-бета алгоритма в виде программы на Прологе. Здесь основное отношение -

альфабета( Поз, Альфа, Бета, ХорПоз, Оц)

где ХорПоз- преемник позиции Позс "достаточно хорошей" оценкой Оц, удовлетворяющей всем указанным выше ограничениям:

Оц = V( Поз, Альфа, Бета)

Процедура

прибл_лучш( СписПоз, Альфа, Бета, ХорПоз, Оц)

находит достаточно хорошую позицию ХорПозв списке позиций СписПоз; Оц- приближенная (по отношению к Альфаи Бета) рабочая оценка позиции ХорПоз.

Интервал между Альфа и Бета может сужаться (но не расширяться!) по мере углубления поиска, происходящего при рекурсивных обращениях к альфа-бета процедуре. Отношение

нов_границы( Альфа, Бета, Поз, Оц, НовАльфа, НовБета)

определяет новый интервал (НовАльфа, НовБета). Он всегда уже, чем старый интервал (Альфа, Бета), или равен ему. Таким образом, чем глубже мы оказываемся в дереве поиска, тем сильнее проявляется тенденция к сжатию интервала Альфа-Бета , и в результате оценивание позиций на более глубоких уровнях происходит в условиях более тесных границ. При более узких интервалах допускается большая степень "приблизительности" при вычислении оценок, а следовательно, происходит больше отсечений ветвей дерева. Возникает интересный вопрос: насколько велика экономия, достигаемая альфа-бета алгоритмом по сравнению с программой минимаксного полного перебора

рис. 15.3?

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

% Альфа-бета алгоритм

альфабета( Поз, Альфа, Бета, ХорПоз, Оц) :-

ходы( Поз, СписПоз), !,

прибл_лучш( СписПоз, Альфа, Бета, ХорПоз, Оц);

стат_оц( Поз, Оц).

прибл_лучш( [Поз | СписПоз], Альфа, Бета, ХорПоз, ХорОц) :-

альфабета( Поз, Альфа, Бета, _, Оц),

дост_хор( СписПоз, Альфа, Бета, Поз, Оц, ХорПоз, ХорОц).

дост_хор( [ ], _, _, Поз, Оц, Поз, Оц) :- !.

% Больше нет кандидатов

дост_хор( _, Альфа, Бета, Поз, Оц, Поз, Оц) :-

ход_мина( Поз), Оц > Бета, !;

% Переход через верхнюю границу

ход_макса( Поз), Оц < Альфа, !.

% Переход через нижнюю границу

дост_хор( СписПоз, Альфа, Бета, Поз, Оц, ХорПоз, ХорОц) :-

нов_границы( Альфа, Бета, Поз, Оц, НовАльфа, НовБета),

% Уточнить границы

прибл_лучш( СписПоз, НовАльфа, НовБета, Поз1, Оц1),

выбор( Поз, Оц, Поз1, Оц1, ХорПоз, ХорОц).

нов_границы( Альфа, Бета, Поз, Оц, Оц, Бета) :-

ход_мина( Поз), Оц > Альфа, !.

% Увеличение нижней границы

нов_границы( Альфа, Бета, Поз, Оц, Альфа, Оц) :-

ход_макса( Поз), Оц < Бета, !.

% Уменьшение верхней границы

нов_границы( Альфа, Бета, _, _, Альфа, Бета).

выбор( Поз, Оц, Поз1, Оц1, Поз, Оц) :-

ход_мина( Поз), Оц > Оц1, !;

ход_макса( Поз), Оц < Оц1, !.

выбор( _, _, Поз1, Оц1, Поз1, Оц1).

Рис. 15. 5. Реализация альфа-бета алгоритма.

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

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

Интервал:

Закладка:

Сделать

Похожие книги на «Prolog»

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


Отзывы о книге «Prolog»

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

x