ԽՆԴԻՐՆԵՐԻ ԼՈՒԾՈՒՄ PROLOG ԼԵԶՎՈՎ
Ա. Հ. ԿՈՍՏԱՆՅԱՆ
ԽՆԴԻՐՆԵՐԻ
ԼՈՒԾՈՒՄ PROLOG ԼԵԶՎՈՎ
ՈՒՍՈՒՄՆԱՄԵԹՈԴԱԿԱՆ ՁԵՌՆԱՐԿ
. .
ՔԲՕԼՕՇ
004(07) 32.81 7
,
. . Քrօlօg
/ . .
:
:-
.,
., 2016, 114
Prօlօg -
, Ը++- , ԸՑ- , )ava- , ՔaՏՇal, , , , (
,
:
: )
: Քrօlօg -
: : «
»
, -
«
» , :
004(07) 32.81 7 IՏBՒ 978-5-8084-2127-1 Օ Օ
., 2016 . ., 2016
1.
.......................................................................................... 5
2.
................................................................................ 11
3.
:
.............. 20
4.
.............................................................................................. 31
5.
........................................................... 37
6.
.............................. 42
7.
.................................................................................... 48
8.
............................................... 54
9.
......................................................................................... 61
10.
..................................................................... 66
11.
:
.............................. 75
12.
............................................... 81
13.
........................ 88
14.
............................................................ 97 Քrօlօg
15.
Քrօlօg
16.
1.
................... 101 .......................... 111
.................................................... 112 ....................................................................................... 113
1. Քrօlօg-
(PrօքոՁոiոք iո ԼօgiՇ)
: Քrօlօg
, , :
Քrօlօg )ava, ԸՑ
(Ը++, ) : (
)
Քrօlօg-
, :
-
: Քrօlօg ,
,
, ,
,
:
1.1.
,
,
1.1.1. Քrօlօg
. (
).
:
,
«
»
: lik6Տ()օհո, ոary). ,
ոary-
jօհn-
ոary-
,
)օհո-
: ,
. likes(mary, john). Քrօlօg :
-
`
lik6Տ()օ6, fiՏհ). lik6Տ()օ6, ոary). lik6Տ(ոary, Եօօk). lik6Տ()օ6, Եօօk).
1.1.2. : ,
, ?-
5-lik6Տ()օ6, ոօո6y). ոօ 5-lik6Տ(ոary, )օ6). ոօ 5-lik6Տ(ոary, Եօօk). y6Տ
:
`
-
1.1.3. )օ6- :
,
-
)օ6:
.
5-lik6Տ()օ6, X). X-
,
. Քrօlօg : :
Քrօlօg
,
:
,
-
,
-
:
,
-
: ,
Քrօlօg
-
`
-
,
:
-
,
-
, (ԵaՇkէraՇkiոg): XfiՏհ
`
-
:
:
X-
, ոary
` X-
: `
:
-
Եօօk
-
.
5-lik6Տ()օ6, X). X-fiՏհ5: X-ոary5: X-Եօօk y6Տ
1.1.4. : lik6Տ(ոary, fօօմ). lik6Տ(ոary, Խiո6). lik6Տ()օհո, Խiո6). lik6Տ()օհո, ոary). )օհոոary-
,
:
.
5-lik6Տ()օհո, ոary). ` 5-lik6Տ(ոary, )օհո). : . 5-lik6Տ()օհո, ոary), lik6Տ(ոary, )օհո). ոօ
: 5-lik6Տ()օհո, X), lik6Տ(ոary, X). X-Խiո65: ոօ
`
1.1.5. . :«
.
` lik6Տ()օհո, X):- lik6Տ(X, Խiո6), lik6Տ(X, fօօմ).
lik6Տ()օհո, X):- Խօոaո(X), lik6Տ(X, Խiո6). , : ,
.
ոaո(alԵ6rէ). ոaո(6մԽarմ). Խօոaո(aliՇ6). Խօոaո(viՇէօria). քar6ոէՏ(6մԽarմ, viՇէօria, alԵ6rէ). քar6ոէՏ(aliՇ6, viՇէօria, alԵ6rէ). iՏՏiՏէ6r
.
iՏՏiՏէ6r(X, Y):- Խօոaո(X), քar6ոէՏ(X, M, ք), քar6ոէՏ(Y, M, ք).
. 5-iՏՏiՏէ6r(aliՇ6, X). X-6մԽarմ5: X-aliՇ6 y6Տ
X-aliՇ6
iՏՏiՏէ6r X-
,
Y-
: . էհi6f()օհո). lik6Տ(ոary, fօօմ). lik6Տ(ոary, Խiո6). lik6Տ()օհո, X):-lik6Տ(X,Խiո6). Շaո)Տէ6al(X, Y):-էհi6f(X), lik6Տ(X, Y). lik6Տ
, ,
:
5-Շaո)Տէ6al()օհո, X). X-ոary5: ոօ
. faէհ6r(X, Y) ոօէհ6r(X, Y) ոaո(X) Խօոaո(X) քar6ոէ(X, Y) մiff6r6ոէ(X, Y)
(X- Y(X- Y(X(X) (X- Y(XY-
. 1. ոօէհ6r1(X) 2. Տօո(X) 3. ՏiՏէ6r(X, Y) 4. graոմfaէհ6r(X, Y)
(X(X(X- Y(X- Y-
) ) ) )
) ) ) ) )
-
2. Քrօlօg
: .
. 2.1
2.1.
,
,
2.1.1. ` : Քrօlօg
, :
Քrօlօg:
`
,
, : alքհa, aԼ|Տ101, a)Լ|Տ1)01:
:
5-, :-, +, -»:
: ’123’, ’Alքհa’, ’1+2’
:
2.1.2. , ,
: Alքհa, ՄՄՄ, )a)ՔԼUՏ)Ե:
:
-
`
:
, )օհո-
,
. 5- lik6Տ(), )օհո). էrս6 , 5- lik6Տ(X, )օհո).
ոօ
:
X-
, : , : 5- lik6Տ(), )օհո), lik6Տ(), ոary). էrս6
, )օհո-
, ոary-
:
,
,
-
5- lik6Տ(X, )օհո), lik6Տ(X, ոary). , )օհո-
,
ոary-
:
2.1.3. : ,
-
: `
:
հaՏ()օհո, քrօgraոոiոg)iո)քrօlօg). , ,
:
)օհո-
, Եօօk
,
-
, ,
-
. հaՏ()օհո, Եօօk(ՇlօՇkՏiո)ո6liՏհ, քrօgraոոiոg)iո)քrօlօg)).
Եօօk . հaՏ()օհո, Եօօk(aսէհօr(ՇlօՇkՏiո)ո6liՏհ), էiէl6(քrօgraոոiոg)iո)քrօlօg)). : 5-հaՏ()օհո, Եօօk( aսէհօr(ՇlօՇkՏiո)ո6liՏհ), X). 5-հaՏ()օհո, Եօօk( aսէհօr(ՇlօՇkՏiո)ո6liՏհ), )). 5-հaՏ(X, Եօօk( aսէհօr(ՇlօՇkՏiո)ո6liՏհ), Y). . ( -
), ,
`
-
:
(ariէy):
:
,
,
`
:
2.2. 2.2.1. Քrօlօg ,
, ,
-
`
:
:
-
X+Y*2 +(X,*(Y,2))
:
-
.
(
,
-
),
,
(
):
, a+Ե/Շ
, +(a,/(Ե,Շ))
-
8/2/2
:
/(/(8,2),2)
-
: (
) iՏ
,
:
3+4, 4+3, 7: Քrօlօg. +
,
-
,
* //
,
ոօմ
,
/
:
2.2.2. Քrօlօg.
XՀY
X-
X»Y
X-
X-ՀY
X-
X»-Y
X-
YY-
, , YY-
, : -
:
, 2»3
, Քrօlօg
, :
: gօv6rո6մ(X, Y, 2)-
X
,
Y քr6Տiմ6ոէ(X, Y)
:
X-
,
Y
-
gօv6rո6մ
: քr6Տiմ6ոէ . քr6Տiմ6ոէ(X, Y):- gօv6rո6մ(X, A, 8), Y»-A, Y-Հ8. Քrօlօg-
,
Y-
:
X-
, : X-Y
-
. X-Y
Y-X X-
,
YX-Y
,
X-
,
Y,
X-
, ,
X-
Y-
:
X-Y
-
5- X- Եօօk(ՇlօՇkՏiո)ո6liՏհ, քrօgraոոiոg)iո)քrօlօg). X-
,
-
Եօօk(ՇlօՇkՏiո)ո6liՏհ, քrօgraոոiոg)iո)քrօlօg)
` ,
X-
YX-Y
, , X-
-
-
.
Y-
,
-
:
a(Ե, Ը, մ(6, ք, g(հ, i, )))) - a(8, Շ, մ(Է, f, g(Ւ, i, )))) 8, Ը, Է, ք, Ւ,
, )
` Ե, Շ, 6, f, հ, )
Քrօlօg
:
,
X\-Y
-
, X-Y
:
,
X-Y
,
, X\-Y
: Քrօlօg
-
iՏ
X iՏ Y, YiՏ Y
:
,
X
Y:
X iՏ Y
.
Y
` A,
,
X-
,
X iՏ Y
-
A
-
, X-
A
,
X iՏ Y X- A
,
: : քօքսlaէiօո(X, Y)Y
X
,
-
ar6a(X, Y)-
,
մ6ոՏiէy(X, Y)
X
,
Y
: X
,
: մ6ոՏiէy
Y քօքսlaէiօո
-
ar6a
. մ6ոՏiէy(X, Y):- քօքսlaէiօո(X, Ք), ar6a(X, A), Y iՏ Ք/A.
1.
` : a) 0iaոa Ե) մiaոa Շ) '0iaոa' մ) )մiaոa 6) '0iaոa gօ6Տ Տօսէհ' f) gօ6Տ( մiaոa, Տօսէհ) g) 45 հ) 5( X, Y» i) -(ոօrէհ, Խ6Տէ) )) էհr66(8laՇk(ԸaէՏ)).
,
,
-
2.
. f(1, օո6). f(Տ(1), էԽօ). f(Տ(Տ(1)), էհr66). f(Տ(Տ(Տ(X))), N) :- f(X, N). . a) 5- f(Տ (1), А). Ե) 5- f(Տ(Տ(1)), էԽօ). Շ) 5- f(Տ(Տ(Տ(Տ(Տ(Տ(1)))))), Ը). մ) 5- f(0, էհr66).
3.
:
3.1. ,
-
,
-
, Քrօlօg
: .
:
-
:
3.1.1. .
1,
if ո 0
ո|
(ո - 1)| ո, if ո 0
faՇէ(N, Ք)
Ք- N
,
: faՇէ(N, Ք)
(
)
. faՇէ(0, 1). faՇէ(N, Ք):-N»0, K iՏ N-1, faՇէ(K, Օ), Ք iՏ Օ*N. . 3.1-
Քrօlօg.
5-faՇէ(3, X).
-
2.
1. 3»0 K iՏ 3-1 faՇէ(K, Օ) Ք iՏ Օ* 3
XՔ
XՔ
faՇէ(2, Օ) Ք iՏ Օ* 3
4.
3. XՔ
ՕՔ
XՔ
ՕՔ
2»0 K iՏ 2-1 faՇէ(K, Օ) Ք iՏ Օ* 2
faՇէ(1, Օ) Ք iՏ Օ* 2
Ք iՏ Օ*3
Ք iՏ Օ*3
6.
5. XՔ
XՔ ՕՔ
ՕՔ ՕՔ
1»0 K iՏ 1-1 faՇէ(K, Օ) Ք iՏ Օ* 1
Ք iՏ Օ*2
ՕՔ
faՇէ(0, Օ) Ք iՏ Օ* 1
Ք iՏ Օ*2 Ք iՏ Օ*3
Ք iՏ Օ*3
8.
7. XՔ
XՔ ՕՔ
ՕՔ
ՕՔ
ՕՔ
Օ1 Ք iՏ Օ*1
Ք iՏ 1* 1
Ք iՏ Օ*2
Ք iՏ Օ*2
Ք iՏ Օ*3
Ք iՏ Օ*3
9. XՔ
10. XՔ
ՕՔ
Օ1
ՕՔ
Ք iՏ 1* 2
Ք iՏ Օ*3
Ք iՏ Օ*2 Ք iՏ Օ*3
XՔ
13.
12.
11. XՔ Օ2
Ք iՏ 2* 3
X-
Ք iՏ Օ*3
. 3.1
3.1.2. , .
-
if x y x, gՇմ(x, y) gՇմ(x - y, y), if x y gՇմ(x, y - x), if y x
gՇմ(X, Y, 0)
0- X
,
Y
-
:
-
gՇմ
-
. gՇմ(X, X, X). gՇմ(X, Y, 0):- X»Y, X1 iՏ X-Y, gՇմ(X1, Y, 0). gՇմ(X, Y, 0):- Y»X, Y1 iՏ Y-X, gՇմ(X, Y1, 0).
3.1.3. . if ո 0 ո 1, x ո-1 x x , if ո 0 քօԽ6r(X, N, Y) N-
X
,
Y- :
-
քօԽ6r
.
քօԽ6r(), 0, 1). քօԽ6r(X, N, Y):- N»0, N1 iՏ N-1, քօԽ6r(X, N1, Y1), Y iՏ Y1*X. , .
if 0 1, ո ո/2 ո/2 x x x , if ո 0 aոմ ո iՏ 6v6ո ո/2 ո/2 x x, if ո 0 aոմ ո iՏ օմմ x
քօԽ6r . քօԽ6r(), 0, 1). քօԽ6r(X, N, Y):- N»0, 0 iՏ N ոօմ 2, M iՏ N//2, քօԽ6r(X, M, 2), Y iՏ 2*2. քօԽ6r(X, N, Y):- N»0, 1 iՏ N ոօմ 2, M iՏ N//2, քօԽ6r(X, M, 2), Y iՏ 2*2*X.
3.1.4.
ՒN-
.
1,
if ո 0 օr ո 1
fո
fո-2 fո1 , if ո 2
fiԵ(N, X)
N-
,
X- : fiԵ
.
fiԵ(0, 1). fiԵ(1, 1). fiԵ(N, X) :- N»-2, N2 iՏ N-2, N1 iՏ N-1, fiԵ(N2, X2), fiԵ(N1, X1), X iՏ X2+X1. , : fiԵ(3, X) :
fiԵ(4, X)
, ,
, fiԵ(5, X) fiԵ(3, X) -
fiԵ1(N, X1, X)
, N»0,
,
(N-1)fiԵ1
X1-
X-
-
N-
:
. fiԵ1(1, 1, 1). fiԵ1(N, X1, X):- N»1, N1 iՏ N-1, fiԵ1(N1, X2, X1), X iՏ X2+X1. fiԵ1
fiԵ
-
. fiԵ(0, 1). fiԵ(N, X):-N»0, fiԵ1(N, ), X).
3.2. 3.2.1. Քrօlօg-
(ԵaՇkէraՇkiոg)
: : ,
,
.
faէհ6rfaէհ6r(X, Y):- faէհ6r(2, Y), faէհ6r(X, 2). X– Y–
, X–
,
,
2– Y –
2– : -
, (
):
|- : | ,
, :
-
`| |
. Քrօlօg: ,
-
. faէհ6rfaէհ6r(X, Y):- faէհ6r(2, Y), |, faէհ6r(X, 2), |. .
` ,
` : -
, :
3.2.2. ` faՇէ(0, 1). faՇէ(N, Ք):- K iՏ N-1, faՇէ(K, Օ), Ք iՏ Օ*N.
5- faՇէ(0, X). , X-15
:
,
-
faՇէ(-1, X)
, faՇէ(-2, X)
, ,
:
,
,
-
: . faՇէ(0, 1):- |. faՇէ(N, Ք):- K iՏ N-1, faՇէ(K, Օ), Ք iՏ Օ*N.
3.2.3. `
1 x 1 - x f i f i
, 1 ,
x f i , -
x f
Քrօlօg ,
-
. f(X, -1) :- XՀ-1. f(X, 0) :- -1-ՀX, X-Հ1. f(X, 1) :- X»1. ,
-
. f(X, -1) :- XՀ-1, |. f(X, 0) :- X-Հ1, |. f(X, 1).
, :
,
.
-
|
.
f(X, -1) :- XՀ-1. f(X, 0) :- X-Հ1. f(X, 1). Քrօlօg . 5- f(-10, Y). Y--15: Y-0 5: Y-1 y6Տ
3.2.4. Քrօlօg : . Ք:- A, 8. Ք:-Ը. A- , 8- , Ը-
Ք-
: Ք-
,
-
. Ք ( A & 8 ) Ը, : .
Ք:- A, |, 8. Ք:- Ը.
Ք ( A & 8) ( A & Ը)
Ք:-Ը. Ք:- A, |, 8.
Ք Ը ( A & 8)
, ,
:
,
:
3.2.5. fail
էrս6 fail
էrս6 0
,
.
fail
էrս6
,
,
,
: Ք
Օ
-
. Օ:-Ք, |, fail. Օ:-էrս6.
3.2.6. :
faՇէ(0, 1) :- |. faՇէ(N, Ք) :- K iՏ N-1, faՇէ(K, Օ), Ք iՏ Օ*N.
gՇմ(X, X, X) :- |. gՇմ(X, Y, 0) :- X»Y, X1 iՏ X-Y, gՇմ(X1, Y, 0), |. gՇմ(X, Y, 0) :- Y1 iՏ Y-X, gՇմ(X, Y1, 0).
քօԽ6r(), 0, 1) :- |. քօԽ6r(X, N, Y) :- 0 iՏ N ոօմ 2, M iՏ N//2, քօԽ6r(X, M, 2), Y iՏ 2*2, |. քօԽ6r(X, N, Y) :- M iՏ N//2, քօԽ6r(X, M, 2), Y iՏ 2*2*X. NfiԵ1(1, 1, 1) :- |. fiԵ1(N, X1, X) :- N1 iՏ N-1, fiԵ1(N1, X2, X1), X iՏ X2+X1. fiԵ(0, 1) :- |. fiԵ(N, X) :- fiԵ1(N, ), X).
1.
:
2.
, ,
(
` ,
):
4. Քrօlօg
4.1. Քrօlօg
,
-
: ,
,
,
: : Քrօlօg :
-
:
4.2. 4.2.1. , liՏէ
.
liՏէ([)):- |. liՏէ(.(), 1)):- liՏէ(1). (
)
:
,
. [)
,
.(Ւ, Լ) ,
Ւ- ,
Լ: (
)
:
.
[)
,
.(alքհa, [))
alքհa
.(a, .(Ե(10), .(Շ, [))))
a, Ե(10), Շ
, ,
.([), .(a, [)))
a : -
:
.
.(Է1, .(Է2, … .(Էո, [)) … )) [Է1, Է2, …, Էո) , .(Ւ, 1) [Ւ | 1) Ւ-
: (հeճd),
(tճil),
1- `
.(Ւ1, .(Ւ2, …, (Ւk, 1) … )) [Ւ1, Ւ2, …, Ւk | 1) : Ւ1- , Ւ2- , …, Ւkk
,
-
1- `
: .
.(a, [)) .(a, .(Ե, [))) .(a, .(Ե, Լ))
[a| [)) [a| [Ե)) [a| [Ե|Լ))
[a) [a,Ե) [a,Ե| Լ)
4.2.2. Քrօlօg
, :
: (
)
-
.
0 ,
: l6ոgէհ(Լ, N)
Լ
,
-
N : l6ոgէհ . l6ոgէհ([), 0):-|. l6ոgէհ([)|Լ), N):-l6ոgէհ(Լ, N1), N iՏ N1+1. : .
,
,
:
6l6ո6ոէ(X, Լ)
,
X- Լ ` 6l6ո6ոէ
:
-
. 6l6ո6ոէ(X, [X|))):-|. 6l6ո6ոէ(X, [)|Լ)):-6l6ո6ոէ(X, Լ). : .
,
(
)
, , :
քr6fix(Լ1, Լ)
Լ1-
,
Լ
-
քr6fix
:
-
. քr6fix([), )):-|. քr6fix([X|Լ1), [X|Լ)):-քr6fix(Լ1, Լ). : .
,
,
-
: Տսffix(Լ1, Լ)
Լ1
,
Լ Տսffix
: . Տսffix(Լ, Լ):-|. Տսffix(Լ1, [)|Լ)):-Տսffix(Լ1, Լ). :
.
,
-
, ,
: ՏսԵliՏէ(Լ1, Լ)
, .
Լ1
Լ ՏսԵliՏէ
:
-
ՏսԵliՏէ(Լ1, Լ):- քr6fix(Լ1, Լ),|. ՏսԵliՏէ(Լ1, [)|Լ)):- ՏսԵliՏէ(Լ1, Լ). : .
, ,
, , : aքք6ոմ(Լ1, Լ2, Լ) : aքք6ոմ
Լ
,
Լ1 .
Լ2
aքք6ոմ([), Լ, Լ):-|. aքք6ոմ([X|Լ1), Լ2, [X|Լ)):-aքք6ոմ(Լ1, Լ2, Լ). : .
, : r6v6rՏ6(Լ1, Լ2) : r6v6rՏ6
Լ2.
,
Լ1
r6v6rՏ6([), [)):-|. r6v6rՏ6([X|Լ1), Լ):-r6v6rՏ6(Լ1, Լ2), aքք6ոմ(Լ2, [X), Լ). : .
, ,
, , :
ո6rg6(Լ1, Լ2, Լ)
Լ : ո6rg6
,
Լ1
Լ2
. ո6rg6([), Լ, Լ):- |. ո6rg6(Լ, [), Լ):- |. ո6rg6([X|Լ1), [Y|Լ2), [X|Լ)):- X-ՀY, ո6rg6(Լ1, [Y|Լ2), Լ), |. ո6rg6(Լ1, [Y|Լ2), [Y|Լ)):- ո6rg6(Լ1, Լ2, Լ).
1.
.
, ( )
: ,
,
-
1, [), [[2)), [[1,3), [[),[4)), 2): : [[1, 3), [[), [4)), 2) 4- : Քrօlօg
Ը++
:
N
2. :
, N-
,
-
,
2- ,
: N2:
5. Քrօlօg
,
-
:
5.1. . ,
,
,
-
: ոak6ՏԽaք(Լ1, Լ) ,
Լ
Լ1
,
-
Լ1 :
ոak6ՏԽaք
.
ոak6ՏԽaք([X, Y| Լ), [Y, X|Լ)):-X»Y,|. ոak6ՏԽaք([X, Y| Լ), [X| Լ1)):-ոak6ՏԽaք([Y|Լ), Լ1). ոak6ՏԽaք . ԵսԵԵl6Տօrէ(Լ,Տ):-ոak6ՏԽaք(Լ, Լ1), ԵսԵԵl6Տօrէ(Լ1, Տ), |. ԵսԵԵl6Տօrէ(Լ, Լ).
5.2. .
,
, ,
:
iոՏ6rէ(X, Լ1, Լ)
Լ
,
Լ1
X
: iոՏ6rէ . iոՏ6rէ(X, [), [X)):- |. iոՏ6rէ(X, [X1|Լ1), [X, X1|Լ1)):- X-ՀX1, |. iոՏ6rէ(X, [X1|Լ1), [X1|Լ)):- iոՏ6rէ(X, Լ1, Լ). iոՏ6rէ
.
iոՏ6rէiօոՏօrէ([), [)):- |. iոՏ6rէiօոՏօrէ([X|Լ), Տ):- iոՏ6rէiօոՏօrէ(Լ, Տ1), iոՏ6rէ(X, Տ1, Տ).
5.3. .
,
,
-
: քarէiէiօո(Լ, Ք, Լ1, Լ2)
Լ1
,
Լ
Լ2
-
Ք-
Ք-
: քarէiէiօո
-
. քarէiէiօո([), ), [), [)):- |. քarէiէiօո([X|Լ), Ք, [X|Լ1), Լ2):- XՀՔ, քarէiէiօո(Լ, Ք, Լ1, Լ2),|. քarէiէiօո([X|Լ), Ք, Լ1, [X|Լ2)):- քarէiէiօո(Լ, Ք, Լ1, Լ2). քarէiէiօո . զսiՇkՏօrէ([), [)):-|. զսiՇkՏօrէ([X|Լ), Տ):-քarէiէiօո(Լ, X, Լ1, Լ2), զսiՇkՏօrէ(Լ1, Տ1), զսiՇkՏօrէ(Լ2, Տ2), aքք6ոմ(Տ1, [X|Տ2), Տ).
5.4. .
,
,
, -
: Տքliէ(Լ, Լ1, Լ2) Լ
,
Լ1
Լ2 -
: Տքliէ . Տքliէ([), [), [)):-|. Տքliէ([X), [X), [)):-|. Տքliէ([X, Y|Լ), [X|Լ1), [Y|Լ2)):- Տքliէ(Լ, Լ1, Լ2). Տքliէ
.
ո6rg6Տօrէ([), [)):-|. ո6rg6Տօrէ([X), [X)):-|. ո6rg6Տօrէ(Լ, Տ):- Տքliէ(Լ, Լ1, Լ2), ո6rg6Տօrէ(Լ1, Տ1), ո6rg6Տօrէ(Լ2, Տ2), ո6rg6(Տ1, Տ2, Տ).
1. . , : -5, 3, 0, -1, 0, 2, -2 -
-5, -1, -2, 0, 0, 3, 2 : 2.
: -, 4, 5, 2, 8, 3, 12, 5, 9, 10
-
4, 5, 8, 9, 10 2, 3, 5, 9, 10 : , :
6. x
, :
, «
»
: :
,
Ը
K
x x(Ը, K)
-
: 5.5x
:
- 3.5x + 10.0
.
[x(5.5, 100), x(-3.5, 50), x(10.0, 0)):
,
: , -
: , ,
,
/
,
,
: -
Քrօlօg
:
6.1. .
,
,
,
-
:
-
, ,
: մ6rivaէiօո(Ք, Ք1)
Ք
,
Ք1- : մ6rivaէiօո . մ6rivaէiօո([),[)):- |. մ6rivaէiօո([x(), 0)),[)):- |. մ6rivaէiօո([x(Ը, K)|Ք),[x(Ը1, K1)|Ք1)):Ը1 iՏ Ը*K, K1 iՏ K-1, մ6rivaէiօո(Ք, Ք1).
6.2. ,
-
,
,
( ,
): aմմiէiօո(Ք1, Ք2, Ք)
,
Ք1
Ք2
-
Ք- : aմմiէէiօո .
aմմiէiօո([), Ք, Ք):- |. aմմiէiօո(Ք, [), Ք):- |. aմմiէiօո([x(Ը1, K1)|Ք1), [x(Ը2, K2)|Ք2), [x(Ը1, K1)|Ք)):K1»K2, aմմiէiօո(Ք1, [x(Ը2, K2)|Ք2), Ք), |. aմմiէiօո([x(Ը1, K1)|Ք1), [x(Ը2, K2)|Ք2), [x(Ը2, K2)|Ք)):K2»K1, aմմiէiօո([x(Ը1, K1)|Ք1), Ք2, Ք), |. aմմiէiօո([x(Ը1, K)|Ք1), [x(Ը2, K)|Ք2), [x(Ը, K)|Ք)):Ը iՏ Ը1+Ը2, aԵՏ(Ը)»0.000001, aմմiէiօո(Ք1, Ք2, Ք), |. aմմiէiօո([)|Ք1), [)|Ք2), Ք):- aմմiէiօո(Ք1, Ք2, Ք). Ը
aԵՏ(Ը)»0.000001
:
6.3. :
ՏսԵէraՇէiօո(Ք1, Ք2, Ք)
,
Ք1
Ք2
Ք- : ՏսԵէraՇէiօո . ՏսԵէraՇէiօո(Ք1, Ք2, Ք):- Շհaոg6Տigո(Ք2, Ք3), aմմiէiօո(Ք1, Ք3, Ք). Շհaոg6Տigո(Ք1, Ք2)
Ք2
Ք1 : Շհaոg6Տigո
.
Շհaոg6Տigո([), [)):-|. Շհaոg6Տigո([x(Ը1, K)|Ք1), [x(Ը2, K)|Ք2)):Ը2 iՏ -Ը1, Շհaոg6Տigո(Ք1, Ք2).
-
6.4. ` Ք1
(
Ք2)
-
.
Ք1-0,
0- , . M- , Օ- ,
M*Ք2 + Օ*Ք2 : ոսlէiքliՇaէiօո(Ք1, Ք2, Ք) , Ք- : ոսlէiքliՇaէiօո .
Ք1
Ք2
ոսlէiքliՇaէiօո([),),[)):- |. ոսlէiքliՇaէiօո([x(Ը1, K1)|Ք1),Ք2, Ք):ոսlէiքliՇaէiօո1(x(Ը1, K1), Ք2, Օ1), ոսlէiքliՇaէiօո(Ք1, Ք2, Օ2), aմմiէiօո(Օ1, Օ2, Ք). ոսlէiքliՇaէiօո1(M, Ք1, Ք) Ք1 .
Ք : ոսlէiքliՇaէiօո1
M
-
ոսlէiքliՇaէiօո1(),[), [)):-|. ոսlէiքliՇaէiօո1(x(Ը1, K1), [x(Ը2, K2)|Ք2), [x(Ը, K)|Ք)):Ը iՏ Ը1*Ը2, K iՏ K1+K2, ոսlէiքliՇaէiօո1(x(Ը1, K1), Ք2, Ք).
6.5. ` Ք1
(
Ք1-0
Ք1-
Ք2-
Ք2) .
,
0- ,
. M1-
M2- ,
M-M1/M2- ,
Ք1-
M*Ք2
Ք2մiviՏiօո(Ք1, Ք2, Ք)
,
Ք1
: Ք2
-
Ք- : մiviՏiօո
-
. մiviՏiօո([),), [)):- |. մiviՏiօո([x(), K1)|)), [x(), K2)|)), [)):- K1ՀK2, |. մiviՏiօո([x(Ը1, K1)|Ք1), [x(Ը2, K2)|Ք2), [x(Ը, K)|Ք)):Ը iՏ Ը1/Ը2, K iՏ K1-K2, ոսlէiքliՇaէiօո1(x(Ը, K), [x(Ը2, K2)|Ք2), Օ), ՏսԵէraՇէiօո([x(Ը1, K1)|Ք1), Օ, Բ), մiviՏiօո(Բ, [x(Ը2, K2)|Ք2), Ք).
6.6. (
` Ք1
Ք2) .
Ք1-Ք2*(Ք1//Ք2), (Ք1//Ք2)-
Ք2
Ք1
-
: ոօմսlսՏ(Ք1, Ք2, Ք) Ք1
,
Ք2
ոօմսlսՏ ոօմսlսՏ(Ք1, Ք2, Ք):- մiviՏiօո(Ք1, Ք2, Օ), ոսlէiքliՇaէiօո(Ք2, Օ, Բ), ՏսԵէraՇէiօո(Ք1, Բ, Ք).
-
Ք- : .
1.
: , »0
[a, Ե)
2.
[a, Ե) [a, Ե)
Ք
Ք
,
:
-
:
7. : ,
,
-
,
( ⊔-
,
)
:
,
⊔a(1)⊔⊔Ե6էa⊔: a(1)- , Ե6էa-
:- : .
,
: . [’⊔’,a,’(’,1,’)’,’⊔’,’⊔’,Ե,6,է,a,’⊔’,’:’): :
7.1. ,
(
,
. -
,
)
: (
)
-
:
, ,
`
: .
,
-
, , , ,
, : Շհ6ՇkՔar6ոէհ6Տ6Տ(Տ)-
Տ
,
: Շհ6ՇkՔar6ոէհ6Տ6Տ
-
. Շհ6ՇkՔar6ոէհ6Տ6Տ(Տ):- Շհ6ՇkՔar6ոէհ6Տ6Տ1(Տ, 0). Շհ6ՇkՔar6ոէհ6Տ6Տ1(Տ, 0)-
,
Տ
:
Շհ6ՇkՔar6ոէհ6Տ6Տ1
-
.
Շհ6ՇkՔar6ոէհ6Տ6Տ1([), 0):|. Շհ6ՇkՔar6ոէհ6Տ6Տ1(['('|Տ), 0):|, Շհ6ՇkՔar6ոէհ6Տ6Տ1(Տ, 01), 01»0, 0 iՏ 01-1. Շհ6ՇkՔar6ոէհ6Տ6Տ1([')'|Տ), 0):|, Շհ6ՇkՔar6ոէհ6Տ6Տ1(Տ, 01), 0 iՏ 01+1. Շհ6ՇkՔar6ոէհ6Տ6Տ1([)|Տ), 0):Շհ6ՇkՔar6ոէհ6Տ6Տ1(Տ, 0).
7.2. ,
( )
,
-
,
.
,
,
: , : .
, , , ,
,
.
-
,
, , ,
:
Շհ6Շk8raՇk6էՏ(Տ)
Տ
,
: Շհ6Շk8raՇk6էՏ . Շհ6Շk8raՇk6էՏ(Տ):-Շհ6Շk8raՇk6էՏ1(Տ, [)). Շհ6Շk8raՇk6էՏ1(Տ, ՏէaՇk)
Տ
ՏէaՇk : `
Շհ6Շk8raՇk6էՏ1
.
Շհ6Շk8raՇk6էՏ1([), [)):- |. Շհ6Շk8raՇk6էՏ1(['('|Տ), ՏէaՇk):Շհ6Շk8raՇk6էՏ1(Տ, ['('|ՏէaՇk)), |. Շհ6Շk8raՇk6էՏ1(['['|Տ), ՏէaՇk):Շհ6Շk8raՇk6էՏ1(Տ, ['['|ՏէaՇk)), |. Շհ6Շk8raՇk6էՏ1(['{'|Տ), ՏէaՇk):Շհ6Շk8raՇk6էՏ1(Տ, ['{'|ՏէaՇk)), |. Շհ6Շk8raՇk6էՏ1([')'|Տ), ['('|ՏէaՇk)):Շհ6Շk8raՇk6էՏ1(Տ,ՏէaՇk), |.
Շհ6Շk8raՇk6էՏ1([')'|Տ), ['['|ՏէaՇk)):Շհ6Շk8raՇk6էՏ1(Տ,ՏէaՇk), |. Շհ6Շk8raՇk6էՏ1([')'|Տ), ['{'|ՏէaՇk)):Շհ6Շk8raՇk6էՏ1(Տ,ՏէaՇk), |. Շհ6Շk8raՇk6էՏ1([')'|)), )):Շհ6Շk8raՇk6էՏ1([')'|)), )):Շհ6Շk8raՇk6էՏ1([')'|)), )):-
|, fail. |, fail. |, fail.
Շհ6Շk8raՇk6էՏ1([)|Տ), ՏէaՇk):- Շհ6Շk8raՇk6էՏ1(Տ,ՏէaՇk).
7.3. .
0- ,
,
(
)
, : ոսոԵ6rՕfՄօrմՏ(Տ, N)
Տ
,
-
N- : ոսոԵ6rՕfՄօrմՏ . ոսոԵ6rՕfՄօrմՏ([), 0):- |. ոսոԵ6rՕfՄօrմՏ([' '|Տ), K):- ոսոԵ6rՕfՄօrմՏ(Տ, K), |. ոսոԵ6rՕfՄօrմՏ(Տ, K):ՏkiքքirՏէՄօrմ(Տ, Տ1), ոսոԵ6rՕfՄօrմՏ(Տ1, K1), K iՏ K1+1. ,
ՏkiքքirՏէՄօrմ(Տ, Տ1)
, Տ1
Տ ՏkiքքirՏէՄօrմ
: .
ՏkiքքirՏէՄօrմ([X|Տ), Տ1):-X\-' ', ՏkiքքirՏէՄօrմ(Տ, Տ1), |. ՏkiքքirՏէՄօrմ(Տ, Տ).
Տ
1.
N N-
N-
Տ
:
-
Տ
.
-
,
:
-
N
: -
2. , 3.
: Տ
K Տ
:
-
K
:Տ
K
-
:
8. A-{ai)), 1iո, 1)ո, ոո ո,
,
` ո
.
a11 . . . a1ո A a ... a ոո ո1 ,
`
.
[[a11, … , a1ո), …, [aո1, … , aոո))
2 3 4 23 [[2, 3, 4), [-1, 0, 5)) : , , Քrօlօg
:
, :
8.1. ոո
(
)
-
[a11, … , aոո) : .
,
, , : մiagօոal(M, 0)
,
0- M
: մiagօոal
-
. մiagօոal([), [)):|. մiagօոal([[X|))|M), [X|0)):- r6ոօv6քirՏէԸօlսոո(M, M1), մiagօոal(M1, 0). r6ոօv6քirՏէԸօlսոո(M, M1)-
M1
,
M :
.
,
( ),
,
: r6ոօv6քirՏէԸօlսոո
.
r6ոօv6քirՏէԸօlսոո([), [)):|. r6ոօv6քirՏէԸօlսոո([[))|)), [)):- |. r6ոօv6քirՏէԸօlսոո([[)|Բ)|M), [Բ|M1)):r6ոօv6քirՏէԸօlսոո(M, M1).
8.2. A-{ai)), 1iո, 1)ո, ոո A’-{a)i), 1)ո, 1iո, ոո
:
.
,
: էraոՏքօՏiէiօո(M, M1)
M1
, : էraոՏքօՏiէiօո
M
-
. էraոՏքօՏiէiօո([), [)):|. էraոՏքօՏiէiօո([Բ|M), M1):- Շr6aէ6Ըօlսոո(Բ, Ը), էraոՏքօՏiէiօո(M,M2), aմմԸօlսոո1օMaէrix(Ը, M2, M1). Շr6aէ6Ըօlսոո(Բ, Ը)
,Ը
Բ aմմMaէrix1օԸօlսոո(Ը,
, M1, M)- `
M
Ը :
aմմMaէrix1օԸօlսոո
M1 Շr6aէ6Ըօlսոո .
-
Շr6aէ6Ըօlսոո([), [)):Շr6aէ6Ըօlսոո([X|Բ), [[X)|Ը)):-
|. Շr6aէ6Ըօlսոո(Բ, Ը).
aմմԸօlսոո1օMaէrix(Ը, [), Ը):|. aմմԸօlսոո1օMaէrix([[X)|Ը), [Բ|M1), [[X|Բ)|M)):aմմԸօlսոո1օMaէrix(Ը, M1, M).
8.3. ոո
M
. ո i 1 մ6էM 1 ai1 մ6է Mi1 i 1
Mi)
M
i-
)-
-
: ոո ո
-
(ո-1)(ո-1)
-
:
:
(M11)11-(M21)11
, : ոո
(ո-1)(ո-1)
: ,
-
,
: , (
,
-
),
,
,
,
: : .
(
)
,
,
(
)
(
-
) : մ6է6rոiոaոէ(M, 0)
0- M
, : մ6է6rոiոaոէ
-
. մ6է6rոiոaոէ([[X)), X):մ6է6rոiոaոէ(M, 0):-
|. r6arraոg6ԲօԽՏ(M, [[X|Բ)|M1), Տigո),|, r6մսՇ6Maէrix([X|Բ), M1, M2), մ6է6rոiոaոէ(M2, 01), 0 iՏ Տigո*X*01.
մ6է6rոiոaոէ(), 0). r6arraոg6ԲօԽՏ
r6մսՇ6Maէrix
-
. -
r6arraոg6ԲօԽՏ(M, M1, Տigո)-
M
, ,
M
M1
-
: Տigո-1,
Տigո--1,
-
-
r6մսՇ6Maէrix(Բ, M1, M2) ո»0
Բ
(ո-1)ո M1
M2
(ո-1)(ո-1)
-
: M2
,
Բ
M1 : r6arraոg6ԲօԽՏ
r6մսՇ6Maէrix
-
. r6arraոg6ԲօԽՏ([[26rօ|))), ), )):- aԵՏ(26rօ)Հ0.0000001,|, fail. r6arraոg6ԲօԽՏ([[26rօ|Բ)|M),[Բ1,[26rօ|Բ)|M1), Տigո):aԵՏ(26rօ)Հ0.0000001,|, r6arraոg6ԲօԽՏ(M,[Բ1|M1), Տigո1), Տigո iՏ -Տigո1. r6arraոg6ԲօԽՏ(M, M, 1). r6մսՇ6Maէrix(), [), [)):- |. r6մսՇ6Maէrix([X|Բ), [[X1|Բ1)|M), [Բ2|M1)):- Ը iՏ -X1/X, ՇօոԵiոaէiօո(Ը, Բ, Բ1, Բ2), r6մսՇ6Maէrix([X|Բ), M, M1). ՇօոԵiոaէiօո(Ը, Բ, Բ1, Բ2)Բ
,
Բ2
Ը
-
Բ1
,
Բ2-ԸԲ+Բ1: ՇօոԵiոaէiօո
. ՇօոԵiոaէiօո(), [), [), [)):-|. ՇօոԵiոaէiօո(Ը, [X|Բ), [X1|Բ1), [X2|Բ2)):X2 iՏ Ը*X+X1, ՇօոԵiոaէiօո(Ը, Բ, Բ1, Բ2).
ոո
1. 1i,)ո:
M M
i+)
Ai)-(-1) 2.
քզ A8 mո
,
ai)
-
մ6է(Mi)),
i–
3.
i, ) Mi)
M
)A
:
qr
:
քr
: M
M
:
-
:
, :
2 3 4 M 1 0 3 7 3 2
Տ-[2, 3, 4, 3, 2, 3, 7, 1, 0) :
9. 9.1. , :
: Եiոary1r66
, .
Եiոary1r66(ոil):- |. Եiոary1r66(Ե1r66(Լ, ), Բ)):- Եiոary1r66(Լ), Եiոary1r66(Բ). . 9.1-
a Շ
Ե
մ
. 9.1
Ե1r66( Ե1r66(ոil, Ե, ոil), a, Ե1r66( Ե1r66(ոil, մ, ոil), Շ, ոil ) ) : :
. 9.1-
Ե-
մ- :
9.2. (քr6օrմ6r),
(iոօrմ6r)
(քօՏէօrմ6r)
. :
«
»
,
.
,
,
: . 9.1a, Ե, Շ, մ
-
: :
,
.
,
«
»
,
: . 9.1-
Ե, a, մ, Շ
:
-
: «
,
. , ,
»
: . 9.1-
-
Ե, մ, Շ, a : քr6օrմ6r(1, Տ), iոօrմ6r(1, Տ), քօՏէօrմ6r(1, Տ) :
, Տ
, .
քr6օrմ6r(ոil, [)):- |. քr6օrմ6r(Ե1r66(Լ, X, Բ), [X|Տ)):քr6օrմ6r(Լ, Տ1), քr6օrմ6r(Բ, Տ2), aքք6ոմ(Տ1, Տ2, Տ). iոօrմ6r(ոil, [)):- |. iոօrմ6r(Ե1r66(Լ, X, Բ), Տ):iոօrմ6r(Լ, Տ1), iոօrմ6r(Բ, Տ2), aքք6ոմ(Տ1, [X|Տ2), Տ). քօՏէօrմ6r(ոil, [)):- |. քօՏէօrմ6r(Ե1r66(Լ, X, Բ), Տ):քօՏէօrմ6r(Լ, Տ1), քօՏէօrմ6r(Բ, Տ2), aքք6ոմ(Տ1, Տ2, Տ3), aքք6ոմ(Տ3, [X), Տ).
9.3. Քrօlօg
:
9.3.1. (
) .
0 ,
: Տi26(1, N)-
,
Տi26
N :
. Տi26(ոil, 0):- |. Տi26(Ե1r66(Լ, ), Բ), N):- Տi26(Լ, N1), Տi26(Բ, N2), N iՏ N1+N2+1.
9.3.2. : .
-1 ,
: հ6igհէ(1, N)-
,
-
N :
Տi26
.
հ6igհէ(ոil, -1):- |. հ6igհէ(Ե1r66(Լ, ), Բ), N):- հ6igհէ(Լ, N1), հ6igհէ(Բ, N2), ոax(N1, N2, M), N iՏ M+1. ոax(N1, N2, N): ոax ոax(N1, N2, N1):- N1»-N2, |. ոax(), N2, N2).
,
N- N1 .
N2
9.3.3. .
0 ,
1 ,
: ոսոԵ6rՕfԼ6av6Տ(1, N)
,
N :
ոսոԵ6rՕfԼ6av6Տ
-
. ոսոԵ6rՕfԼ6av6Տ(ոil, 0):- | . ոսոԵ6rՕfԼ6av6Տ(Ե1r66(ոil, ), ոil), 1):- |. ոսոԵ6rՕfԼ6av6Տ(Ե1r66(Լ, ), Բ), N):ոսոԵ6rՕfԼ6av6Տ(Լ, N1), ոսոԵ6rՕfԼ6av6Տ(Բ, N2), N iՏ N1+N2.
1. ) , )
:
2.
:
3.
,
` :
10. 10.1. ( ),
, : . 10.1-
.
. 10.1
10.2. , ,
:
Քrօlօg
-
:
10.2.1. . ,
. ,
, : Տ6arՇհ(X, 1)1
X
,
: Տ6arՇհ . Տ6arՇհ(X, Ե1r66(), X, ))):- |. Տ6arՇհ(X, Ե1r66(Լ, Y, )) ):- XՀY, Տ6arՇհ(X, Լ), |. Տ6arՇհ(X, Ե1r66(), ), Բ) ):- Տ6arՇհ(X, Բ).
10.2.2. (
)
.
, ,
:
iոՏ6rէ(X, 1, 11)X
,
: -
iոՏ6rէ
.
iոՏ6rէ(X, ոil, Ե1r66(ոil, X, ոil)):- |. iոՏ6rէ(X, Ե1r66(Լ, Y, Բ), Ե1r66(Լ1, Y, Բ)):- XՀY, iոՏ6rէ(X, Լ, Լ1), |. iոՏ6rէ(X, Ե1r66(Լ, Y, Բ), Ե1r66(Լ, Y, Բ1)):- iոՏ6rէ(X, Բ, Բ1).
10.2.3. . , , :
. -
, ( )
-
,
-
, , (
,
-
): r6ոօv6(X, 1, 11)1 (
X-
,
):
,
r6ոօv6 .
, X
-
r6ոօv6(), ոil, ոil):- |. r6ոօv6(X, Ե1r66(Լ, Y, Բ), Ե1r66(Լ1, Y, Բ)):XՀY, r6ոօv6(X, Լ, Լ1), |. r6ոօv6(X, Ե1r66(Լ, Y, Բ), Ե1r66(Լ, Y, Բ1)):X»Y, r6ոօv6(X, Բ, Բ1), |. r6ոօv6(X, Ե1r66(ոil, X, Բ), Բ):- |. r6ոօv6(X, Ե1r66(Լ, X, ոil), Լ):- |. r6ոօv6(X, Ե1r66(Լ, X, Բ), Ե1r66(Լ, Y, Բ1)):ոiո(Բ, Y), r6ոօv6(Y, Բ, Բ1). ոiո(1, X)-
X- 1
,
-
: ոiո
.
ոiո(Ե1r66(ոil, X, )), X):-|. ոiո(Ե1r66(Լ, ), )), Y):-ոiո(Լ, Y).
10.3. : ,
-
` :
,
,
,
-
, :
. 10.2
:
. 10.2 -
Ե1r66(Լ, iոfօ(Մalս6, Ըօսոէ), Բ) , Լ-
Բ-
Մalս6 -
, Ըօսոէ-
:
. 10.2-
.
Ե1r66(
Ե1r66(ոil, iոfօ(5, 1), ոil), iոfօ(10, 4), Ե1r66( Ե1r66(ոil, iոfօ(15, 1), ոil), iոfօ(20, 2), ոil )
):
10.3.1. X
: X-
X-
X-
:
-
. 1X- 1-
.
,
X-
1- , X-
-
X
,
,
, X-
-
.
,
X-
X-
-
, X- 1-
-
,
1X-
-
X,
X1
-
g6էՕrմ6r(1, X, |)-
X-
,
: -
, X-
|- :
-
g6էՕrմ6r
.
g6էՕrմ6r(Ե1r66(ոil, iոfօ(X,)), )), X, 1):- |. g6էՕrմ6r(Ե1r66(ոil, ), Բ), X, |):- g6էՕrմ6r(Բ, X, |1), | iՏ |1+1, |. g6էՕrմ6r(Ե1r66(Լ, iոfօ(Y, )), )), X, |):- XՀY, g6էՕrմ6r(Լ, X, |),|. g6էՕrմ6r(Ե1r66(Ե1r66(), iոfօ(),K1),)), iոfօ(X,)),)), X, |):| iՏ K1+1, |. g6էՕrմ6r(Ե1r66(Ե1r66(), iոfօ(),K1), )), ), Բ), X, |):g6էՕrմ6r(Բ, X, |1), | iՏ K1+1+|1.
10.3.2.
|
:
| .
, |-1,
-
.
|
|-1
, |»1,
-
|
1|-
-
,
,
.
-
|
,
-
|-
|
-
,
|
,
, -
|-
-
|
,
|-
,
1g6էԷl6ո6ոէ(1, |, X)|-
,
:
-
X- :
-
g6էԷl6ո6ոէ
.
g6էԷl6ո6ոէ(Ե1r66(ոil, iոfօ(X,)), )), 1, X):- |. g6էԷl6ո6ոէ(Ե1r66(ոil, iոfօ(),)), Բ), |, X):|1 iՏ |-1, g6էԷl6ո6ոէ(Բ, |1, X),|. g6էԷl6ո6ոէ(Ե1r66(Ե1r66(Լ1, iոfօ(X1,K1), Բ1), ), )), |, X):|-ՀK1, g6էԷl6ո6ոէ(Ե1r66(Լ1, iոfօ(X1,K1), Բ1), |, X), |.
g6էԷl6ո6ոէ(Ե1r66(Ե1r66(),iոfօ(),K1),)),iոfօ(X,)),)), |, X):| iՏ K1+1, |. g6էԷl6ո6ոէ(Ե1r66(Ե1r66(), iոfօ(),K1), )), ), Բ), |, X):|1 iՏ |-K1-1, g6էԷl6ո6ոէ(Բ, |1, X).
1:
, :
2: ,
-
,
`
,
-
, : . 10.3-
-
[a, Ե, Շ, մ)
.
a
Ե
Շ
մ
a
մ
Ե
Շ
. 10.3 Լ
1. ,
1K|Լ|:
Լ
K-
K :
Լ
2. K
1K|Լ|+1:
,
X-
(K-|Լ|+1
,X X- Լ
K-
Լ
):
-
: Լ
3. ,
1K|Լ|: :
Լ
K K-
:
11.
: Շ-(Մ, Է)
Մ-
,
Է-
-
: , : : a
Ե
մ
Շ
. 11.1
11.1. 11.1.1. : v6rէ6x, ,
,
6մg6
. 11.1.
v6rէ6x(a). v6rէ6x(Ե). v6rէ6x(Շ). v6rէ6x(մ).
6մg6(a, Ե). 6մg6(a, մ). 6մg6(Շ, Ե). 6մg6(մ, Ե). 6մg6(մ, Շ). liոk
, 6մg6
`
liոk(X, Y):-6մg6(X, Y). , . liոk(X, Y):-6մg6(X, Y): 6մg6(Y, X). (
-
,
Քrօlօg
-
):
11.1.2. graքհ
-
,
: ,
,
.11.1.
graքհ( [a, Ե, Շ, մ), [6մg6(a,Ե), 6մg6(a,մ), 6մg6(Շ,Ե), 6մg6(մ,Ե), 6մg6(մ,Շ)) ).
11.1.3. :
-
graքհ
,
.
-» (
,
): -
, -»
( ,
,
):
. 11.1-
. graքհ(
[ (a-»[Ե, մ)), (Ե-»[)) , (Շ-»[Ե)), (մ-»[Ե, Շ)) )
). (X, Y)
, Y
-
X ,
X
-
`Y
:
11.2. :
: : .
v6rէiՇ6Տ(Մ):-6xէ6ոմ([), Մ).
v6rէiՇ6Տ(Մ)-
Մ-
,
6xէ6ոմ([), Մ)-
, Մ
,
:
6xէ6ոմ(Մ1, Մ)-
-
, Մ1
Մ
-
: 6xէ6ոմ
.
6xէ6ոմ(Մ1, Մ):- aմմN6ԽՄ6rէ6x(Մ1, Մ2), 6xէ6ոմ(Մ2, Մ), |. 6xէ6ոմ(Մ, Մ). aմմN6ԽՄ6rէ6x(Մ1, Մ2)-
Մ2
, Մ1
-
: aմմN6ԽՄ6rէ6x
.
aմմN6ԽՄ6rէ6x(Մ, [X|Մ)):- v6rէ6x(X), ոօէM6ոԵ6r(X, Մ). ոօէM6ոԵ6r(X, Լ):- ո6ոԵ6r(X, Լ),|, fail. ոօէM6ոԵ6r(), )). :
-
,
: ,
6մg6Տ(Է)-
-
. Է-
,
-
, 6xէ6ոմ1(Է1, Է)-
Է
,
-
Է1
-
, aմմN6ԽԷմg6(Է1, Է2)-
, Է1
:
Է2 -
6մg6Տ(Է):-
6xէ6ոմ1([), Է).
6xէ6ոմ1(Է1, Է):- aմմN6ԽԷմg6(Է1, Է2), 6xէ6ոմ1(Է2, Է), |. 6xէ6ոմ1(Է, Է). aմմN6ԽԷմg6(Է1,[6մg6(X, Y)|Է1)):- 6մg6(X, Y), ոօէM6ոԵ6r(6մg6(X, Y), Է1). :
-
: aմ)Մ6rէiՇ6Տ(A, Ւ)-
Ւ- A
, : aմ)Մ6rէiՇ6Տ
-
. aմ)Մ6rէiՇ6Տ(A, Ւ):- v6rէiՇ6Տ(Մ), aմ)Մ6rէiՇ6Տ1(A, Մ, Ւ). aմ)Մ6rէiՇ6Տ1(A, Մ, Ւ)-
Ւ-
,
A-
Մ : aմ)Մ6rէiՇ6Տ1
. aմ)Մ6rէiՇ6Տ1(), [), [)):- |. aմ)Մ6rէiՇ6Տ1(A, [X|Մ), [X|Ւ)):- liոk(A, X), aմ)Մ6rէiՇ6Տ1(A, Մ, Ւ), |. aմ)Մ6rէiՇ6Տ1(A, [)|Մ), Ւ):- aմ)Մ6rէiՇ6Տ1(A, Մ, Ւ).
11.2.1. v6rէiՇ6Տ
6մg6Տ
-
. graքհ(Մ, Է):-v6rէiՇ6Տ(Մ), 6մg6Տ(Է).
11.2.2. aմ)Մ6rէiՇ6Տ . graքհ(Մ):- v6rէiՇ6Տ(Մ), graքհ1(Մ, Մ). graքհ1([),[)):-|. graքհ1([A|Մ),[(A-»Ւ)|Մ)):- aմ)Մ6rէiՇ6Տ(A, Ւ), graքհ1(Մ, Մ).
12. 12.1. , (
):
-
: .
Շ-(Մ, Է)
A
Մ Մ \ {A, 8) ,A
-
:
A ,
,
-
-
,
Մ
:
,
A
Մ-Մ \ {A, 8)
-
: ,
A8
Մ
A
-
.
Մ-,
Մ,
” (A, 8)Է,
“ X- Մ-
Մ1-Մ\{X):
,
,
Մ ,
A
-
.
Մ1
-
A
, Մ1
X
A
X, -
.
X
A
Մ1 . 12.1 քaէհ(A, 8)
A
,
-
Շ
: քaէհ
. քaէհ(A, A):-|. քaէհ(A, 8):- v6rէiՇ6Տ(Մ), r6ոօv6(A, Մ, Մ1), r6ոօv6(8, Մ1, Մ2), քaէհ1(A, 8, Մ2). քaէհ1(A, 8, Մ)Մ
,
( Շ (
A
)
-
:
. 12.1) քaէհ1
. քaէհ1(A, 8, [)):- liոk(A, 8), |. քaէհ1(A, 8, [)|Մ)):- քaէհ1(A, 8, Մ), |. քaէհ1(A, 8, [X|Մ)):- քaէհ1(A, X, Մ), քaէհ1(X, 8, Մ). r6ոօv6(A, Մ, Մ1)A
,
Մ1
Մ
:
-
. r6ոօv6(A, [A|Մ), Մ):- |. r6ոօv6(A, [X|Մ), [X|Մ1)):-r6ոօv6(A, Մ, Մ1).
12.2. :
-
,
.
,
-
, , ,
:
,
,
,
-
,
(
)
:
, ,
( -
,
) :
:
(
)
,
,
-
: A ,
(A, 8)
, ,
:
քair(A, 8)
, . l6ՏՏ(քair(X, )), քair(X1, ))):- XՀX1, |. l6ՏՏ(քair(X, Y), քair(X, Y1)):- YՀY1.
Տ6arՇհ(Քair, Ե1r66(),Քair,))):- |. Տ6arՇհ(Քair, Ե1r66(Լ, Քair1, ))):l6ՏՏ(Քair, Քair1), Տ6arՇհ(Քair, Լ), |. Տ6arՇհ(Քair, Ե1r66(), ), Բ)):- Տ6arՇհ(Քair, Բ). iոՏ6rէ(Քair, ոil, Ե1r66(ոil, Քair, ոil)):- |. iոՏ6rէ(Քair, Ե1r66(Լ, Քair, Բ), Ե1r66(Լ, Քair, Բ)):- |. iոՏ6rէ(Քair, Ե1r66(Լ, Քair1, Բ), Ե1r66(Լ1, Քair1, Բ)):l6ՏՏ(Քair, Քair1), iոՏ6rէ(Քair, Լ, Լ1),|. iոՏ6rէ(Քair, Ե1r66(Լ, Քair1, Բ), Ե1r66(Լ, Քair1, Բ1)):iոՏ6rէ(Քair, Բ, Բ1). , ,
(
) -
:
: մքՔaէհ(A, 8, M)
,
M- (A, 8)
), :
(A, 8)
, A
(
-
.
քaէհ(A, 8):- մքՔaէհ(A, 8, )). մքՔaէհ մքՔaէհ(A, A, ոil):- |.
.
մքՔaէհ(A, 8, M):- v6rէiՇ6Տ(Մ), r6ոօv6(A, Մ, Մ1), r6ոօv6(8, Մ1, Մ2), մքՔaէհ1(A, 8, Մ2, ոil, M). մքՔaէհ1(A, 8, Մ, M, M1)-
A
,
, Մ
,
M
M1
-
: մքՔaէհ1
.
մքՔaէհ1(A, 8, [), M, M1):- liոk(A, 8), iոՏ6rէ(քair(A, 8), M, M1), |. մքՔaէհ1(A, 8, [)|Մ), M, M1):( Տ6arՇհ(քair(A, 8), M), M2-M: մքՔaէհ1(A, 8, Մ, M, M2) ), iոՏ6rէ(քair(A, 8), M2, M1), |. մքՔaէհ1(A, 8, [X|Մ), M, M1):( Տ6arՇհ(քair(A, X), M), M2-M: մքՔaէհ1(A, X, Մ, M, M2) ), ( Տ6arՇհ(քair(X, 8), M2), M3-M2: մքՔaէհ1(X, 8, Մ, M2, M3)), iոՏ6rէ(քair(A, 8), M3, M1).
12.3. , , (
,
, ):
,
-
, :
,
,
. 12.2-
-
{a, Ե, f), {Շ, 6) {մ)
: Շ
Ե a
մ
f . 12.2 Շ-(Մ, Է)
.
V=,
,
, -
AՄ,
-
Ը– A-
. ,
Մ1-Մ\Ը, ԸԸ- Մ1
-
,
. Շ {Ը) ԸԸ - : Շօոո6Շէ6մԸօոքօո6ոէՏ(ԸԸ)-
ԸԸ-
,
: Շօոո6Շէ6մԸօոքօո6ոէՏ
-
. Շօոո6Շէ6մԸօոքօո6ոէՏ(ԸԸ):- v6rէiՇ6Տ(Մ), Շօոո6Շէ6մԸօոքօո6ոէՏ1(Մ, ԸԸ). Շօոո6Շէ6մԸօոքօո6ոէՏ1
.
Շօոո6Շէ6մԸօոքօո6ոէՏ1([), [)):-|. Շօոո6Շէ6մԸօոքօո6ոէՏ1([A|Մ), [Ը|ԸԸ)):Շօոքօո6ոէ(A, [A|Մ), Ը, Մ1), Շօոո6Շէ6մԸօոքօո6ոէՏ1(Մ1, ԸԸ). , Շօոքօո6ոէ(A, Մ, Ը, Մ1)Մ
Ը-
,
A-
,
`Մ
-
Մ1
-
Շօոքօո6ոէ
: .
Շօոքօո6ոէ(), [), [), [)):- |. Շօոքօո6ոէ(A, [X|Մ), [X|Ը), Մ1):- քaէհ(A, X), քaէհ(X, A), Շօոքօո6ոէ(A, Մ, Ը, Մ1), |. Շօոքօո6ոէ(A, [X|Մ), Ը, [X|Մ1)):- Շօոքօո6ոէ(A, Մ, Ը, Մ1).
1. ,
(
, , ):
12.1
, -
: 2.
,
`
:
13. 13.1. 13.1.1. M-(Օ, , , զ0, ք)
հ , Օ-
,
-
,
: ՕՕ
,
զ0Օ
,
քՕ
:
M
Շ(M)
Օ- ,
, զՕ ,
a-
զ’Օ
(զ, a)-զ’:
-
,
` M-(Օ, , , զ0, ք)
: ,
Օ-{զ0, զ1, զ2), -{a, Ե), -{(զ0,a)-»զ1,(զ0,Ե)-»զ2, (զ1,a)-»զ2,(զ1,Ե)-»զ0, (զ2,a)-»զ2,(զ2,Ե)-»զ1), զ0, ք-{զ2) Շ(M) ).
(
-
զ0
Ե
a
Ե a
Ե զ2
զ1
a . 13.1
a1 a2 ak հ զ0 զ1 ... զk Շ(M)
Խ-a1a2…ak
, :
,
հ
w
-
M Խ
,
(
Շ(M)
) :
Լ(M)
M
M :
aԵԵ, aaԵԵԵ
. 13.1– ,
aԵ
ԵaԵ
`
, aa, -
:
13.1.2. Քrօlօg M
Քrօlօg .
Տէaէ6Տ /*Տէaէ6Տ(Օ) Օ ՏyոԵօlՏ /*ՏyոԵօlՏ(Տigոa)
Տigոa*/:
էraոՏiէiօո /*էraոՏiէiօո(X, A, Y) (X, A)-Y*/: ՏէarէՏէaէ6 /*ՏէarէՏէaէ6(Տ) Տ fiոalՏէaէ6Տ /*fiոalՏէaէ6Տ(ք) ք-
,
,
. 13.1-
.
Տէaէ6Տ([զ0, զ1, զ2)). ՏyոԵօlՏ([a, Ե)). էraոՏiէiօո(զ0, a, զ1). էraոՏiէiօո(զ0, Ե, զ2). էraոՏiէiօո(զ1, a, զ2). էraոՏiէiօո(զ1, Ե, զ0). էraոՏiէiօո(զ2, a, զ1). էraոՏiէiօո(զ2, Ե, զ2). ՏէarէՏէaէ6(զ0). fiոalՏէaէ6Տ([զ2)).
13.1.3.
Խ ,
:
-
: Խ
-
զ
Խ
: զ
,
(
,
զ
, Խ
, Խ-
,
):
զ ,
Խ-
,
Խ-aԽ1,
a-
-
.
զ-
, -
զ1-(զ, a)
Խ1-
, :
aՇՇ6քէ6մ(Մ)
,
-
Մ
: aՇՇ6քէ6մ
-
. aՇՇ6քէ6մ(Մ):-ՏէarէՏէaէ6(Օ0), aՇՇ6քէ6մ1(Օ0, Մ). aՇՇ6քէ6մ1(Օ, Մ)-
Մ
,
-
Օ : aՇՇ6քէ6մ1
.
aՇՇ6քէ6մ1(Օ, [)):- fiոalՏէaէ6Տ(ք), |, ո6ոԵ6r(Օ, ք). aՇՇ6քէ6մ1(Օ, [A|Մ)):- էraոՏiէiօո(Օ, A, Օ1), aՇՇ6քէ6մ1(Օ1, Մ),|. ո6ոԵ6r-
-
:
13.2. 13.2.1. հ Շ-(, , Ք, Տ)
,
-
,
-
,
Ք()*
,
Տ
:
(A, )Ք
A1,
A,
` A1| … | Ak:
… , Ak
Շ0-(, , Ք, Տ)- ,
:
N-{Է, 1, ք), -{a, *, + (, )), Ք-{ Է1| 1+Է, 1ք| ք*1, քa| (Է) ), Տ-Է
-
(Է, 1, ք (Էxքr6ՏՏiօո),
(16rո)
(քaՇէօr)
-
): Շ-(, , Ք, Տ) , ()* ,
:
-
-
-1A2, -12, A:
,
k0
-
- k
, ,
0, …,
k
,
k()*
, 01, …, k-1k, 0-, k-
(
,
- 0 ,
-
-
k0,
-):
-
k: Լ(Շ)
Շ
.
Լ(Շ)-{Խ*| Տ*Խ): Շ0
Լ(Շ0)
-
. ((a)), a*(a+a), (a+(a*a))*a+a: : Շ
-
A*A
,
, AN, (N)*:
.
:
13.2.2.
Քrօlօg
Շ
Քrօlօg
.
ոօոէ6rոiոalՏ /*ոօոէ6rոiոalՏ(Nս) Nս*/:
-
է6rոiոalՏ /*է6rոiոalՏ(Տigոa) Տigոa*/: քrօմսՇէiօո /*քrօմսՇէiօո(A, Alքհa)
A ,
Alքհa
ՏէarէՏyոԵօl /*ՏէarէՏyոԵօl(Տ) Տ*/: Շ0 . ոօոէ6rոiոalՏ(['Է', '1', 'ք')). է6rոiոalՏ([a, +, *, '(', ')')). քrօմսՇէiօո('Է', ['1')). քrօմսՇէiօո('Է', ['1', +, 'Է')). քrօմսՇէiօո('1', ['ք')). քrօմսՇէiօո('1', ['ք', *, '1')). քrօմսՇէiօո('ք', [a)). քrօմսՇէiօո('ք', ['(', 'Է', ')')). ՏէarէՏyոԵօl('Է').
13.2.3. Խ
, -
,
:
, :
Խ
-
: *Խ , -
-
: *Խ
,
Խ-
,
-a1, Խ-aԽ1(a1)
1*Խ1,
-A2 (aN),
A1
,
12*Խ: մ6riv6մ(Մ)
Մ
,
-
: մ6riv6մ
-
. մ6riv6մ(Մ):- ՏէarէՏyոԵօl(Տ), մ6riv6մ1([Տ), Մ). մ6riv6մ1(Alքհa, Մ)–
, Alքհa
(Alքհa
) Մ
-
(Մ
մ6riv6մ1
):
-
.
մ6riv6մ1([), [)):- |. մ6riv6մ1([X|Alքհa), [X|Մ)):- |, մ6riv6մ1(Alքհa, Մ). մ6riv6մ1([A|Alքհa), Մ):- քrօմսՇէiօո(A, Բigհէ), aքք6ոմ(Բigհէ, Alքհa, Alքհa1), մ6riv6մ1 (Alքհa1, Մ), |.
M
1.
K M
:
K
-
:
Շ
2. K K
Շ
: :
14. 14.1. Լ . . 1. M1, …, Mk ,
: ,
2. Մ
: Մ
-
(Լ1, )1) … (Լո, )ո) Տ–
,
(1Տո)
-
. Լ1…ԼՏ-1- Մ ԼՏ- Մ
, Լ1 … ԼՏ-1 ,
, )Տ- ԼՏ
: ,
ԼՏ- Մ ո-Տ:
Մ
Լ1 … ԼՏ-1
, , )Տ--1,
Լ1…ԼՏ-1 ,
` Բ1-(Ե+1)*aԵ, Բ2-(Ե++1)(aԵ)*, Բ3-a(aԵ*+0)1,
Մ-aa1ԵԵԵaԵ1aԵaԵԵ
(aa1,3)(ԵԵԵaԵ,1)(1aԵaԵ,2)(Ե,2) , Մ-ԵԵԵaaa
(ԵԵԵ,2)(aaa, -1) :
14.2. . . M1 …, Mk
1. ,
2. Մ
: -
Մ
:
, :
-
,
Մ
,
:
-
, ,
: 1.
:
: M[))-(Օ[)), , [)), զ0[)), ք[))), 1)K,
,
Մ-A[|), 1|N (N0)
:
: l6ոgէհ-ոax{ |0| ())[A[1) … A[|)Լ(M[)))), iոմ6x-ոiո{ )| A[1)… A[l6ոgէհ)Լ(M[)))): ( Մ ,
-
l6ոgէհ-N, iոմ6x--1)
: 11 ( l6ոgէհN, iոմ6x-1, |0, )-1,…, K 12 ( ||+1, )-1,…, K
|:
զ[))զ0[)): |: զ[))[))(զ[)), A[|)):
13 (
|:
)-1, …, K
.
զ[))ք[)), l6ոgէհ|, iոմ6x), 14 [|-N5): |-N, `
14: : 12:
14.3. Լ . Ւ.
:
:
M[)), 1)K,
,
Մ-A[|), 1|N (N0),
:
: Մ (Լ1, )1)…(Լո, )ո)
:
: Ւ1 (
|: ո1, հ1:
Ւ2 (
|:
M[))(1)K) Մ-A[հ)…A[N)
l6ոgէհ
iոմ6x
-
:
ԼոA[հ)…A[հ+l6ոgէհ-1), )ոiոմ6x: Ւ3 ( |: հհ+l6ոgէհ: հ»N, : `
ոո+1
Ւ2:
15. Քrօlօg 15.1.
, :
. 15.1-
, ,
aԵԵaԵԵ
(aԵԵa,1) (Ե,1) (Ե,1)
:
զ0
a
Ե
Ե a
Ե զ2
զ1
a . 15.1 ,
M
Խ
,
Խ-
,
Խ- M
, 1-(Խ,-1),
Խ-էԽ1, 1-(է,1)11 ,
է- M
Խ 11- ` Խ1
, : l6xiՇalAոalyՏiՏ(Մ, 1օk6ոՏ)M
, Մ
1օk6ոՏ
l6xiՇalAոalyՏiՏ
:
.
l6xiՇalAոalyՏiՏ([), [)):- |. l6xiՇalAոalyՏiՏ(Մ, [(1, 1)|1օk6ոՏ)):firՏէ1օk6ո(Մ, 1, Մ1), l6xiՇalAոalyՏiՏ (Մ1, 1օk6ոՏ), |. l6xiՇalAոalyՏiՏ(Մ, [(Մ, -1))). firՏէ1օk6ո(Մ, 1, Մ1)-
,
M
Մ (
Մ
, Մ1
),
: firՏէ1օk6ո
. firՏէ1օk6ո(Մ, 1, Մ1):- ՏէarէՏէaէ6(Օ0), firՏէ1օk6ո1(Օ0, Մ, 1, Մ1). firՏէ1օk6ո1(Օ, Մ, 1, Մ1)M
Օ
Մ
,
, ,
Մ1
Մ
: firՏէ1օk6ո1
-
. firՏէ1օk6ո1(Օ, [A|Մ), [A|1), Մ1):էraոՏiէiօո(Օ, A, Օ1), firՏէ1օk6ո1(Օ1, Մ, 1, Մ1),|. firՏէ1օk6ո1(Օ, Մ, [), Մ):- fiոalՏէaէ6Տ(ք), ո6ոԵ6r(Օ, ք).
15.2. 15.2.1.
` : M)-(Օ), , ), զ0), ք)), 1)K, զ0)ք), 1)K:
:
-
M-(Օ, , , զ0, ք)
, Օ-Օ1…ՕK, (Հզ1, …, զK», a)-Հ զ1’, …, զK’», 1(զ1, a)-զ1’,… , K(զK, a)- զK’, a: զ0-Հզ01, …, զ0K»: ք-{Հզ1, …, զK»| ), 1)K, զ)ք)): M
M1, …, MK M-M1…MK:
M1, …, MK
Մ
(Լ1, )1)… (Լո, )ո)
-
M=M1…MK
Մ . 0:
, Տ-1: (Լ1, )1)… (ԼՏ-1, )Տ-1)
Տ:
-
, Մ-(Լ1…ԼՏ-1)X, Տ1: (ԼՏ, )Տ) M ,
-
, ԼՏ-X, )Տ--1:
. X
-
,
ԼՏ –
-
M
X
-
, M
-
, ԼՏ
Հզ1, …, զK»
,
,
)Տ-ոiո{)| 1)K, զ)ք)).
15.2.2. Քrօlօg M1, …, MK
,
Տէaէ6Տ, ՏyոԵօlՏ, էraոՏiէiօո, ՏէarէՏէaէ6 fiոalՏէaէ6Տ
, . a
Ե զ0
զ0 a
Ե a
Ե
զ2
զ1
զ1
a, Ե
Ե a a
զ2 Ե
. 15.2 . 15.2-
.
/* ***** Տէaէ6Տ ***** */ Տէaէ6Տ(1, [զ0, զ1, զ2)). Տէaէ6Տ(2, [զ0, զ1, զ2)). /* ***** ՏyոԵօlՏ ***** */ ՏyոԵօlՏ(1, [a, Ե)). ՏyոԵօlՏ(2, [a, Ե)).
/* ***** էraոՏiէiօոՏ ***** */ էraոՏiէiօո(1, զ0, a, զ2). էraոՏiէiօո(1, զ0, Ե, զ0). էraոՏiէiօո(1, զ1, a, զ1). էraոՏiէiօո(1, զ1, Ե, զ0). էraոՏiէiօո(1, զ2, a, զ1). էraոՏiէiօո(1, զ2, Ե, զ1). էraոՏiէiօո(2, զ0, a, զ0). էraոՏiէiօո(2, զ0, Ե, զ1). էraոՏiէiօո(2, զ1, a, զ0). էraոՏiէiօո(2, զ1, Ե, զ2). էraոՏiէiօո(2, զ2, a, զ1). էraոՏiէiօո(2, զ2, Ե, զ0). /* ***** iոitiՁ| ՏtՁt6 ***** */ ՏէarէՏէaէ6(1, զ0). ՏէarէՏէaէ6(2, զ0). /* ***** fiոal Տէaէ6Տ ***** */ fiոalՏէaէ6Տ(1, [զ2)). fiոalՏէaէ6Տ(2, [զ2)).
15.2.3.
Քrօlօg
:
,
,
-
, Տէaէ6Տ, ՏyոԵօlՏ, էraոՏiէiօոՏ, ՏէarէՏէaէ6
fiոalՏէaէ6Տ
:
1. Տէaէ6Տ Տէaէ6Տ(Օ)-
M1…MK
, Օ- :
.
Տէaէ6Տ(Օ):- Տէaէ6Տ1(1, Օ). Տէaէ6Տ1(), Օ)-
Օ- M)…MK
,
-
: Տէaէ6Տ1 . Տէaէ6Տ1(), Օ):- Տէaէ6Տ(), Տ), )1 iՏ )+1, Տէaէ6Տ1()1, Օ1),ՇօոԵiո6(Տ, Օ1, Օ),|. Տէaէ6Տ1(), Օ):- Տէaէ6Տ(), Տ), Շօոv6rէ(Տ, Օ). ՇօոԵiո6
Շօոv6rէ
:
Տ
Օ1
ՇօոԵiո6(Տ, Օ1, Օ)-
-
,
Օ
Օ1-
Տ-
-
: ՇօոԵiո6
.
ՇօոԵiո6([), ), [)):- |. ՇօոԵiո6([X|Տ), Օ1, Օ):- ՇօոԵiո61(X, Օ1, Օ2), ՇօոԵiո6(Տ, Օ1, Օ3), aքք6ոմ(Օ2, Օ3, Օ), |. ՇօոԵiո61(), [), [)):- |. ՇօոԵiո61(X, [Մ|Օ1), [[X|Մ)|Օ)):- ՇօոԵiո61(X, Օ1, Օ).
Տ
Շօոv6rէ(Տ, Օ)-
Օ
,
Տ : Շօոv6rէ .
Շօոv6rէ([), [)):-|. Շօոv6rէ([X|Տ), [[X)|Օ)):- Շօոv6rէ(Տ, Օ).
-
2. ՏyոԵօlՏ ,
,
.
ՏyոԵօlՏ(Տigոa):- ՏyոԵօlՏ(1, Տigոa). 3. էraոՏiէiօոՏ էraոՏiէiօոՏ(06lէa)-
06lէa- M1…MK
,
-
: . էraոՏiէiօոՏ(06lէa):- Տէaէ6Տ(Օ), ՏyոԵօlՏ(Տigոa), ՏսԵ1raոՏiէiօոՏ(Օ, Տigոa, 06lէa). ՏսԵ1raոՏiէiօոՏ(Օ, Տigոa, 06lէa)-
,
-
M1…MK
06lէa
Օ-
, Տigոa-
,
: ՏսԵ1raոՏiէiօոՏ
. ՏսԵ1raոՏiէiօոՏ([), ), [)):- |. ՏսԵ1raոՏiէiօոՏ([Մ|Օ), Տigոa, 06lէa):էraոՏiէiօոՏքrօոՏէaէ6(Մ, Տigոa, 06lէa1), ՏսԵ1raոՏiէiօոՏ(Օ, Տigոa, 06lէa2), aքք6ոմ(06lէa1, 06lէa2, 06lէa), |. էraոՏiէiօոՏքrօոՏէaէ6(Մ, Տigոa, 06lէa)-
,
¿ M1…MK
06lէa-
, Մ- ,
Տigոa-
: էraոՏiէiօոՏքrօոՏէaէ6
-
. էraոՏiէiօոՏքrօոՏէaէ6(), [), [)):-|. էraոՏiէiօոՏքrօոՏէaէ6(Մ, [A|Տigոa), [(Մ, A, Մ1)|06lէa)):էraոՏiէiօո(Մ, A, Մ1), էraոՏiէiօոՏքrօոՏէaէ6(Մ, Տigոa, 06lէa).
էraոՏiէiօո(Մ, A, Մ1)-
M1…MK
,
,Մ
A
Մ1
,
:
-
.
էraոՏiէiօո(Մ, A, Մ1):- էraոՏiէiօո1(1, Մ, A, Մ1). էraոՏiէiօո1(), [), ), [)):- |. էraոՏiէiօո1(), [X|Մ), A, [Y|Մ1)):էraոՏiէiօո(), X, A, Y), )1 iՏ )+1, էraոՏiէiօո1()1, Մ, A, Մ1). էraոՏiէiօո1(), Մ, A, Մ1)-
M)…MK
,
Մ
A
Մ1
-
: 4. ՏէarէՏէaէ6 ՏէarէՏէaէ6(Մ)-
Մ-
,
M1…MK
:
.
ՏէarէՏէaէ6(Մ):-ՏէarէՏէaէ61(1, Մ). ՏէarէՏէaէ61(), Մ)-
Մ–
,
M)…MK
ՏէarէՏէaէ61
: . ՏէarէՏէaէ61(), [X|Մ)):-
ՏէarէՏէaէ6(), X), )1 iՏ )+1, ՏէarէՏէaէ61()1, Մ), |. ՏէarէՏէaէ6(), X).
ՏէarէՏէaէ61(), [X)):5. fiոalՏէaէ6Տ fiոalՏէaէ6Տ(ք)-
ք-
,
M1…MK
: . fiոalՏէaէ6Տ(ք):- Տէaէ6Տ(Օ), ՏսԵքiոalՏէaէ6Տ(Օ, ք).
-
ՏսԵքiոalՏէaէ6Տ(Օ, ք)-
ք
,
M1…MK
Օ : ՏսԵքiոalՏէaէ6Տ .
ՏսԵքiոalՏէaէ6Տ([), [)):- |. ՏսԵքiոalՏէaէ6Տ([Մ|Օ), [Մ|ք)):firՏէքiոal(Մ, )), ՏսԵքiոalՏէaէ6Տ(Օ, ք),|. ՏսԵքiոalՏէaէ6Տ([)|Օ), ք):- ՏսԵքiոalՏէaէ6Տ(Օ, ք). firՏէքiոal(Մ, Լ)-
Մ - M1…MK
,
-
, Լ-ոiո{||1|K, ՄԼքԼ). . firՏէքiոal(Մ, Լ):firՏէքiոal1(), [X|)), )):firՏէքiոal1(), [)|Մ), Լ):firՏէքiոal1()1, Մ, Լ).
firՏէքiոal1(1, Մ, Լ). fiոalՏէaէ6Տ(), ք), ո6ոԵ6r(X, ք), |. )1 iՏ )+1,
firՏէքiոal1(), Մ, Լ)-
Մ - M)…MK
,
-
, Լ-ոiո{ ||)|K, ՄԼքԼ).
15.3. , : : :
l6xiՇalAոalyՏiՏ([), [)):- |. l6xiՇalAոalyՏiՏ(Մ, [(1, ))|1օk6ոՏ)):- firՏէ1օk6ո(Մ, 1, ), Մ1), l6xiՇalAոalyՏiՏ(Մ1, 1օk6ոՏ), |. l6xiՇalAոalyՏiՏ(Մ, [(Մ, -1))). firՏէ1օk6ո(Մ, 1, ), Մ1):- ՏէarէՏէaէ6(Մ), firՏէ1օk6ո1(Մ, Մ, 1, ), Մ1). firՏէ1օk6ո1(Մ, [), [), ), [)):- firՏէքiոal(Մ, )), |. firՏէ1օk6ո1(Մ, [A|Մ), [A|1), ), Մ1):-էraոՏiէiօո(Մ, A, Մ1), firՏէ1օk6ո1(Մ1, Մ, 1, ), Մ1),|. firՏէ1օk6ո1(Մ, Մ, [), ), Մ):- firՏէքiոal(Մ, )).
16. Քrօlօg ,
:
, -
-
-
( ),
,
`
,
(
,
), . . 1. Շ-(, , Ք, Տ) , 2. Մ
: Մ ,
Շ
-
:
13.2 : `
.
քarՏiոg(Մ):- iոiէialՏyոԵօl(Տ), g6ո6raէ6Տ([Տ), Մ). g6ո6raէ6Տ([), [)):-|. g6ո6raէ6Տ([X|Alքհa),[X|Մ)):- |, g6ո6raէ6Տ(Alքհa, Մ). g6ո6raէ6Տ([A|Alքհa), Մ):- քrօմսՇէiօո(A, Բigհէ), aքք6ոմ(Բigհէ, Alքհa, Alքհa1), g6ո6raէ6Տ(Alքհa1, Մ),|.
1. 1.1.
:
1.2.
:
1.3.
:
2. 2.1.
:
2.2.
:
2.3.
:
3. 3.1.
, -
:
3.2.
:
3.3. : 4. 4.1.
( ,
,
,
): 100|-
:
4.2. 4.3. «
: -
»
,
:
-
1. Մ. ք. ԸlօՇkՏiո, Ը. Տ. M6lliՏհ. ՔոօքոՁոոiոք iո Քոօ|օք, 5tհ 6մitiօո, Տքոiոք6ո, 2003 /Русский перевод: У. Клоксин, К. Мелиш. Программирование на языке Пролог, 2005/. 2. |. 8raէkօ. Քոօ|օք ՔոօքոՁոոiոք fօո ՃոtifiՇiՁ| |ոt6||iք6ոՇ6, 4tհ 6մitiօո, Ք6ՁոՏօո EմսՇՁtiօո ԸՁոՁմՁ, 2011 /Русский перевод: И. Братко. Алгоритмы искусственного интеллекта на языке Пролог. 3-е издание, Издательский дом “Вильямс”, 2004/. 3. Լ. Տէ6rliոg, Էհ. Տհaքirօ. Լհ6 Ճոt օf Քոօ|օք, 2ոմ 6մitiօո, M|Լ Քո6ՏՏ, 1999 /Русский перевод: Л. Стерлинг Л., Э. Шапиро. Искусство программирования на языке Пролог/. 4. M. 8raո6r. ԼօքiՇ ՔոօքոՁոոiոք witհ Քոօ|օք, 2ոմ 6մitiօո, Տքոiոք6ո, 2013. 5. Լ. Ւօո6ո. ԼօքiՇՏ iո ՔոօքոՁոոiոք ԼՁոքսՁք6Տ, ԸհՁոtոiմք6 BօօkՏ Oxfօոմ, 2013.
ՔԲՕԼՕՇ
. . .
.
Տպագրված է «Գևորգ-Հրայր» ՍՊԸ-ում: ք. Երևան, Գրիգոր Լուսավորչի 6
15.09.2016: 1 16
60x84 / :
.
7,125: :
, .
, 0025,
ԽՆԴԻՐՆԵՐԻ ԼՈՒԾՈՒՄ PROLOG ԼԵԶՎՈՎ
Ա. Հ. ԿՈՍՏԱՆՅԱՆ
ԽՆԴԻՐՆԵՐԻ
ԼՈՒԾՈՒՄ PROLOG ԼԵԶՎՈՎ