Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Листинг 19,3. Простая программа ILP- MINIHYPER




% Программа MINIHYPER

% induce £ Hyp):

% осуществляет логический вывод совместимой и полной гипотезы Hyp путем

4 постепенного усовершенствования нлча.."::. гипотез

induce! Hyp):-

iter_deep(Кур, 0). 4 Итеративное углубление, начиная

% с максимальной глубины 0

iter_deep(Hyp, MaxD):-

write I 'MaxD = '!, write { MaxD), nl,

start_hyp(HypOi,

coir.plete{ HypO) г % Гипотеза ИурО охватывает все положительные примеры

depth_first(HypO, Hyp, KaxD) % Поиск в глубину с ограничением глубины

NewMaxD is MaxD + 1, iter_deepi Hyp, KewMaxD).

% depth_first! HypO, Hyp, MaxD]:

Ч преобразует гипотезу HypO путем усовершенствования в совместимую

% и полную гипотезу Hyp не больше чем за MaxD шагов

454 Часть II. Применение языка Prolog в области искусственного интеллекта


depth_first(Hyp, Hyp, _):-consistent(Hyp).

depth_first(HypO, Hyp, MaxDO):-MaxDO > 0, MaxDl is MaxDO - 1, refine_hyp(HypO, Hypl),

complete (Hypl), % Гипотеза Hypl охватывает все положительные примеры depth_first(Hypl, Hyp, MaxDl).

complete(Hyp):- % Гипотеза Hyp охватывает все положительные примеры
not (ex(E), % Положительный пример

once (prove (Е, Hyp, Answer)), % Доказать его с помощью гипотезы Hyp
Answer \== yes). % Возможно, что доказательство не найдено

consistent(Hyp):- % Возможно, что гипотеза не охватывает ни одного

% отрицательного примера
not (nex(E), % Отрицательный пример

once (prove (Е, Hyp, Answer)), % Доказать его с помощью гипотезы Hyp
Answer \= = no). % Возможно, доказательство существует

% refine_hyp(HypO, Hyp):

% предикат, который позволяет усовершенствовать гипотезу НурО

% и получить гипотезу Hyp

refine_hyp(HypO, Hyp):-

conc(Clausesl, [ClauseO/VarsO | Clauses2], HypO), % Выбрать предложение

% ClauseO из гипотезы НурО conc(Clausesl, [Clause/Vars | Clauses2], Hyp), % Новая гипотеза refine (ClauseO, VarsO, Clause, Vars). % Усовершенствовать предложение Clause

% refine (Clause, Args, NewClause, NewArgs):

% предикат, который позволяет усовершенствовать предложение Clause

% с параметрами Args и получить предложение NewClause с параметрами NewArgs

% Усовершенствовать по методу согласования параметров

refine(Clause, Args, Clause, NewArgs):-

conc(Argsl, [A | Args2], Args), % Выбрать переменную А

member(A, Args2), % Согласовать ее с другой переменной

conc(Argsl, Args2, NewArgs).

% Усовершенствовать по методу добавления литерала

refine(Clause, Args, NewClause, NewArgs):-length(Clause, L), max_clause_length (MaxL), L < MaxL,

backliteraM Lit, Vars), % Литерал с определением фоновых знаний

cone(Clause, [Lit], NewClause), % Добавить литерал к телу предложения
cone(Args, Vars, NewArgs). % Добавить переменные литерала

% Значения параметров, заданные по умолчанию

max_proof_length(б). % Общая длина доказательства с учетом вызовов

% предикатов, отличных от предикатов Prolog

max_clause_length(3). % Максимальное количество литералов в теле предложения



refine (Clause, Vars, NewClause, NewVars). Позволяет усовершенство­вать заданное предложение Clause с помощью переменных Vars и выработать усовершенствованное предложение NewClause с новыми переменными NewVars. Усовершенствованное предложение формируется путем согласования двух переменных в списке Vars или добавления нового фонового литерала к


 






Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 425 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2335 - | 2117 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.