.


:




:

































 

 

 

 


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; !; : 412 |


:

:

, .
==> ...

1813 - | 1582 -


© 2015-2024 lektsii.org - -

: 0.008 .