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




Глава 5. Управление перебором


    Глава 5. Управление перебором
    Глава 5 УПРАВЛЕНИЕ ПЕРЕБОРОМ Мы уже видели, что программист может управлять процессом вычислений по программе, располагая ее предложения и цели в том или ином порядке. В данной главе мы рассмотрим...
    Ограничение перебора
    Ограничение перебора В процессе достижения цели пролог-система осуществляет автоматический перебор вариантов, делая возврат при неуспехе какого-либо из них. Такой перебор - полезный программный ме...
    Двухступенчатая функция
    Двухступенчатая функция неэффективности программы. Поэтому иногда требуется его ограничить или исключить вовсе. Для этого в Прологе предусмотрена конструкция отсечение. Давайте сначала рассмотрим...
    В точке, помеченной словом "отсечение", уже известно,
    В точке, помеченной словом ОТСЕЧЕНИЕ, уже известно, что правила 2 и 3 должны потерпеть неудачу. При вычислении первой цели f( l, Y) Y конкретизируется нулем. Поэтому вторая цель становится такой:...
    Примеры, использующие отсечение
    Примеры, использующие отсечение Вычисление максимума 1. Вычисление максимума Процедуру нахождения наибольшего из двух чисел можно запрограммировать в виде отношения mах( X, Y, Мах) где Мах = X, ес...
    Упражнения
    Упражнения Пусть есть программа: р( 1). р( 2) :- !. р( 3). Напишите все ответы пролог-системы на следующие вопросы: (a) ?- р( X). (b) ?- р( X), p(Y). (c) ?- р( X), !, p(Y). Посмотреть ответ Следую...
    Отрицание как неуспех
    Отрицание как неуспех Мэри любит всех животных, кроме змей. Как выразить это на Прологе? Одну часть этого утверждения выразить легко: Мэри любит всякого X, если Х - животное. На Прологе это записы...
    Упражнения
    Упражнения Даны два списка Кандидаты и Исключенные , напишите последовательность целей (используя принадлежит и not ), которая, при помощи перебора, найдет все элементы списка Кандидаты , не входя...
    Еще одна программа для решения задачи о восьми ферзях.
    Еще одна программа для решения задачи о восьми ферзях. разность( Множ1, Множ2, Разность) где все три множества представлены в виде списков. Например, разность( [a, b, c, d], [b, d, e, f], [a, c] )...
    Трудности с отсечением и отрицанием
    Трудности с отсечением и отрицанием Используя отсечение, мы кое-что выиграли, но не совсем даром. Преимущества и недостатки применения отсечения были показаны на примерах из предыдущих разделов. Д...
    Резюме
    Резюме Отсечение подавляет перебор. Его применяют как для повышения эффективности программ, так и для повышения выразительности языка. Эффективность повышается путем прямого указания (при помощи о...
    Литература
    Литература Различать зеленые и красные отсечения предложил ван Эмден (1982). van Emden M. (1982). Red and green cuts. Logic Programming Newsletter: 2....








Начало