.


:




:

































 

 

 

 


MINIHYPER




1LP, - : Hypothesis = [ Clausel, Claused,... ]

( , ) , .

Clause ■ [Head, BodyLitecall, BodyLiteral2,...]/[ Varl, Var2,... ]

,

pred{X,Y):- parent (X, Y).

pred(X,z):- parent (x, Y), pred(Y,Z}.

:

[ [predJXX., YD., parent(XI,¥1) ] / [XI,YI], Ipred (X2, Z2J, parent 1X2, Y2), pred(Y2,Z2) ] / [X2,Y2,Z2] ]

, . , , .

, , Prolog , , . : prove! Goal, Hypothesis, Answer)

Goal Hypothesis Answer, , Goal Hypothesis. , Goal Hypothesis , Prolog. , 23, , . , :

[ [), (} ]

():- (), . , prove . , . Goal , prove , . , Answer prove ,



II. Prolog


Answer = yes. Goal Hypothesis .

Answer = no. , Goal Hypothesis, .

Answer = maybe. , D.

"Answer = maybe" , Goal .

1. Prolog ( ) .

2. Prolog , D.

3. Prolog - , D, . { D), , .

prove 19.2. :

raax_pEOof_length(D)

D 6, . ( prolog_predicate) Prolog . , , .

19.2. ,

%

% prove; Goal, Hypo, Answ):

* Answ = yes, Goal Hypo

% , D

% Answ = no, Goal

% Answ = maybe, D

prove(Goal, Hypo, Answer):-max_procf_len.gth; D),

prove; Goal, Hypo, D, RestD),
(RestD >= 0, Answer = yes %

RestD < 0,!, Answer - maybe % , ,

% ).

prove! Goal, _, no). % Goal

%

%prove(Goal, Hyp, MaxD, RestD):

- MaxD - , RestD - , " % " ; % , Hyp

prove [ G, , D, D):-

D < 0,!. I


19,



prove ((],_, D, D):-!.

prove! [Gl | Gs], Hypo, DO, D]: -!, prove(Gl, Hypo, DO, Dl>, prove! Gs, Hypo, Dl, D).

prove! G, _, D, D):-

prologjpredicate(G), % Prolog?

call(G), %

prove { G, Hyp, DO, D): -

DO =< 0, \r D is D0-1 h -

Dl is DO-1, %

member (Clause/Vars, Hyp), % Hyp

eopy_term< Clause, [Head | Body]), r
G - Head, %

prove (Eody, Hyp, Dl, D). % G Clause

"maybe", , "" ( ), .. , .

1. , "maybe"
, " ".

2. , "maybe"
, "
". , , .

"maybe" , . "maybe" , , .

MINIHYPER 19.3. , .





:


: 2015-10-01; !; : 516 |


:

:

, .
==> ...

1400 - | 1210 -


© 2015-2024 lektsii.org - -

: 0.012 .