You are on page 1of 119

-

..,
. .-. ,

-
2007

1.
1.1.
1.1.1.
1.1.2.
1.1.3.
1.1.4.
1.1.5.
1.1.6.
1.1.7.
1.1.8.
1.2.
1.2.1.
1.2.2.
1.2.3.
1.3.
1.3.1.
1.3.2.
1.3.3.
1.3.4.
1.4.
2.
2.1.
2.1.1.
2.1.2.
2.1.3.
2.2.
2.2.1. 8
2.2.2. , ,
2.3.
2.4.
2.4.1.
2.4.2.
2.5.
2.6.
2.6.1.
2.6.2.
2.6.3.
2.7.
2.8.
2.9.
2.9.1.
2.9.2.
3.

5
6
7
7
7
9
11
11
12
13
14
15
16
17
18
19
20
20
21
22
23
23
25
25
25
26
28
29
29
30
31
33
33
34
35
36
36
37
38
39
41
45
45
46
48


3.1.
3.2.
3.2.1.
3.2.2.
3.3. GS
3.4.
3.5.
3.6. /
3.6.1. /
3.6.2. /
3.6.3. /
3.7.
3.7.1.
3.7.2. -
3.7.3. -
4.
4.1.
4.1.1.
4.1.2.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.2.5.
4.3.
4.3.1.
4.4.
4.4.1. (/)
4.4.2. ()
4.4.3. ()
4.5.
4.5.1.
4.5.2.
5.
5.1.
5.1.1.
5.1.2.
5.1.3.
5.2. /
5.3.
5.3.1. ,
5.3.2. /
5.4.
5.4.1.
5.4.2.

3
48
49
49
50
51
53
54
55
55
56
59
61
61
62
63
65
65
65
66
67
67
69
70
71
72
74
74
75
75
76
77
77
77
78
80
80
80
81
82
83
84
84
85
87
87
88


5.5.
5.5.1.
5.5.2.
5.5.3.
6.
6.1.
6.1.1.
6.1.2.
6.2.
6.2.1.
6.2.2.
6.2.3.
6.3.
6.3.1.
6.3.2. -
6.3.3.
6.3.4.
6.3.5.
6.4.
6.4.1.
6.4.2.
6.4.3. .
6.4.4.
6.4.5.
6.4.6. -
6.5.
6.5.1.
6.5.2.
6.5.3.
6.5.4.
6.5.5.
6.5.6.

4
89
90
91
92
95
95
95
96
98
98
99
100
100
100
102
103
105
106
108
108
109
110
111
112
113
114
115
115
116
116
116
117
118
119


()
.
. ,
, .
, ,
,
, ,
,
.

, , . ,
, ,

. ,
..
.

.
, .
,
, .
, .
.
, ,
,
,
, .
.
1. ;
;
:
, , .
2.
;
.
3.
.
.
.
,
.

.

1.

. ,
:
?
, , :
, , .
, ,
,
, . ,
,
.
, ,
,
().
: ,
. -
,
.

, .

1.1.
, , :
;
;
;
;
;
;
;
.

1.1.1.
()
. ,
.
,
, (. 1).

() ()
.

, , .
,
, ,
.
.
, .
, ,
. , .
.
.

. 1.

, ,
1966 . ELIZA.
(Joseph Weizenbaum), .
1923

(
) computer science.

, ,
ELIZA. ELIZA
,
.
, , ,
. ELIZA:
- ELIZA, .
- , ?

- .
- .
, .
20 ,
. ELIZA
,
.

1.1.2.
, ,

.
, , ,
:
;
;
;
.

, .
,
, .
, .
,
.
, , ,

( !) .
, , .

1947 (. 2)

10

. 2.

1954
.
. 1966
,
, ,
,
.
. ,



(, ).
, ,
, :
- .

: 1980-, .

.
Systran.

11

. . . (
. , -).


,
.

1.1.3.

(Intelligent Databases)
,
. , ,
.
. ,
(. . 1) , ,
If x. = .* & x. = y.
Then x y
. , ,
,
.

1. .

1.1.4.

. ,
.
(Expert Systems) , ,
( ) ( ).
,
,
.

. ,
.
.
, ,
. ,
, .

12

. 3.

. ,
, .
:
,

1.1.5.
,
,
(,
). , , ,
,
.
,
(Automatic Theorem Proving)
.
,
.
(

).
(
).
(
).
, ,
,
. ,
, ,

13


.
, ,
,
,
.

1.1.6.
(Robot Planning) . ,
, .
,
(. 4).
, ,
.
, .
, .

. , ,
.
, , , ,
.


.
.
. ,

.
, , ,
, ,
.
,
. ,
.
, ,
. :
,
. , ,
(
,
, ..),
.
, ,
. , , , ,
, , ,
, .
, ,

14


, .

. 4.

1.1.7.
(Pattern recognition) ,
. ,
,
() .

, . ,

.
, (Rosenblatt
Frank) . 1928
. 1955

( 1959

).
1957
.

.

15

,
,
, ,
,
.
, (Marvin Lee Minsky) . 1927

1958. 1969
, 1990 ,

1991 ,
2001 .

(1963)
(1961,

).

Logo. 1951

SNARC.
(,
, ) 1982 Logica
,
, ,
.
,
(OCR)
.
,
, . .
, .

1.1.8.

(Intelligent games).
,
. , , ,
.
,
, , ,
. ,
, ,

16

, .1 , ,
.
.
,
.
, 1040 , 10120 .
, , ,
.

. ,
, . , .
. . .
-, .
1922 . . .
1962 ,
-. 1957
, 1965


,
Kotok-McCarthy

;
, 1974

.
.
,
, ChessMaster, , , Chess
Master. ?

1.2.

,
.
, , ,
.

. , ,
.
, 53 .
.

17

1.2.1.
. 5.
,
.

,
. , ,
.
( )
( ),
.
, ,
, . ,
, .

. 5.

18

( ),
. ,
, ,
. ( )
.
, .
,
.

1.2.2.
.

- . ,
.
.
, ,
. , 3,5 7.
, :
Write (3, 5, 7).
, ,
.
. - ,
. ,
:
proc Sort3 (x, y, z)
if x > y then x :=: y
if y > z then y :=: z
if x > y then x :=: y
write (x, y, z)
end proc
,
, ,
. , ,
Write. ,
.
,
.
Sort3?
, .2
, Sort2.
proc Sort3 (x, y, z)
Sort2(x, y)
2

, Sort3 .

19

Sort2(y, z)
Sort2(x, y)
write (x, y, z)
end proc
proc Sort2(u, v)
if u > v then u :=: v
end proc
Sort2 :
x, y { Sort2(x, y) } x < y
( )
, .
, ,
Sort3:
{x, y, z}
Sort2(x, y) {x < y, z}
Sort2(y, z) {y < z, x < z}
Sort2(x, y) {x < y < z}.
, (
)
. ,
Sort3, .

1.2.3.

.
.

. (
),
.
,
. , ,
. ,
, .
,
,
.
,
, .

20

1.3.

, ,
. .. ,
:
1. , .
, , .
2. , .
, , .
3. .
. ,
.
(1923 - 2004)
- , -
(1991; -

1966).

,
.
(1957).

. .

-



.


. .


.
, ,
.

1.3.1.

,
()
.3
3

, ,
(data mining), ,
().

21


,
(). .
, .
, ,
, ,
.

, .
, , ,
, ,
(. 6).

. 6.

1.3.2.

,
. ,
, ,
,
. ,

.
,
, , ,
, , ,
.

22


.
(),
.
,
-.
, ,
, .

. .
, . , ,
.
,
.
.
. ,
,

.
, .

.
.
,
.
.
.
, ,
.

1.3.3.
,
,
() .
:
) (-);
) ; ();
, - ;
) ; ,
( ; );
) ; -, ,
, .
(
):


2 5 7
5 2 7
)
527 257
) {x, y, z}?{x < y < z}
) {xi}

23

Sort3
i, j ( i < j xi < xj )

1.3.4.
.

.
,
(. 7). , ,
. . -,
, -, .

. 7.

1.4.
:
, ( , ),
, (
),
,
( , ,
).

24

, ,
.
(
) : ( ),
( ) .

25

2.
(Production Rules Knowledge
Representation)
.

2.1.
,
,
( ),
(), ( ).
() .

2.1.1.
( , ,
) ([Production] [rules] [based] [inference] systems) :
= + + .
D,
R, C.
= D + R + C [+ t]
D
.
R :
R = {r | r = (p, f [,c])}, r R, r = (p, f)

r = if p (D) then D := f (D) end if
, r D.
D
.
, t(D),
, . t(D)
, , ,
D .
,
, ,
.

. ,
, .
()
:
. ,
.
.

26

.
, D.

.
,
. , ,
.

2.1.2.
,
.
.
- ,
.
(1903 1979)
, . .
.
, , ,
.

(1947),
(1958),
,
.

, -
. ,
4 :

.
.


,
.
.
.
.
4

,
. ,
, ,
.

27

. .
, ,
, .
,
.
. ,
:
.
, :

. ,
.
, .
,
.
X := X + 1
0 1.
: a b .
, .
1) a0 0a
2) a1 1a
3) 0a 0b
4) 1a 1b
5) 0b . 1
6) 1b b0
7) b

. 1

8)
a

101
.
, ,
,
.
101 a101 (8)
a101 1a01 (2)
1a01 10a1 (1)
10a1 101a (2)
101a 101b (4)
101b 10b0 (6)
10b0 . 110 (5)

28

, ,
.
,
()
, .
,
!

2.1.3.
/,
, t(D) .
( ) .
OK, fail.
proc Production (D, R, t)
while t(D) do
r := Select (D, R)
if r = nil then
return (fail)
end if
D := r.f (D)
end while
return (OK)
end proc
Select ,
, .
, :
proc Select (D, R)
for r R do
if p (D) then
return (r)
end if
end for
return (nil)
end proc
. ,
.
, ,
.
.

29

2.2.
,
D, R, C.

2.2.1. 8
8,
15. ,
1 8 ,
. 33 ,
.
.
, (. 8):

. 8. 8

, .
.
.
0.
D :
D : array [1..3,1..3] of 0..8
R . ,
1 :
if D[i,j]=1 & i<3 & D[i+1,j]=0 then D[i+1,j]:=1; D[i,j]:=0
, ,
32 .
, !
,
.
.
{i,j} .
, , .
if i<>1 then D[i,j]:=D[i-1,j]; i:=i-1 N ( )
if j<>3 then D[i,j]:=D[i,j+1]; j:=j+1 E ( )
if i<>3 then D[i,j]:=D[i+1,j]; i:=i+1 S ( )
if j<>1 then D[i,j]:=D[i,j-1]; j:=j-1 W ( )

30

8, 4 32.
, n (4 32)
. n = 4
, n = 32 .

2.2.2. , ,
,
, , (. 9).
.

. 9. , , :

, .
, .
. : 0 , , 3
. 1, 0.
, D
D : array [0..3] of 0..1
D0 = 0000, Dk = 1111
?
, , . 16
. , , ,
. ,
10110011 . ,
, , 0101,
, , 0011 . ,
.
.
, , ,
. (
).
.
.
, .
1.
(
).

31

2.
, (
).
, ( , ).
, . , ,
, : ,
, .
R:
if D[1]<>D[2] & D[2]<>D[3]
then
D[0]:= 1 - D[0]
if D[2]<>D[3] & D[0]=D[1]
then
D[0]:= 1 - D[0];
D[1]:= 1 - D[1]
if D[0]=D[2]
then
D[0]:= 1 - D[0];
D[2]:= 1 - D[2]
if D[1]<>D[2] & D[0]=D[3]
then
D[0]:= 1 - D[0];
D[3]:= 1 - D[3]

2.3.
(Control Strategies)
. ,
.

.
.
10.
:
,
;
, ,
.
, .

32

. 10. .

, ,
. 10.
.
,
.

, .
,
, , ,
.

. (. 11). , ,
, ,
. , ,
.

33

. 11. .

2.4.
, , ,
,
, .

, . , ,
, (
, ) . ,
, ,
.

2.4.1.
F(D)
D. ,
( , )

t(Dk) := F(Dk) = min F(D)
Select, ,
, .
proc Select (D, R)
for r R do
if r.p(D) & F(r.f(D)) F(D) then
return (r)
end for
return (nil)
end proc

34

2.4.2.
, ,
, .
proc Select (D, R)
m := F(D)
r := nil
for r R do
if r.p (D) & F(r.f (D)) < m then
r := r
m := F(r.f (D))
end if
end for
return (r)
end proc
,
(Greedy Search).
,
.
,
. .
, , .
, .
,
. ,
, , ,
.
. 8 F
, .
(. 12).

35

. 12. F: .

,
.

. : 3
, , ,
.

2.5.
,
, ,
.
:
, ,
, ,
.
, ,
,
5 (Backtracking).
Backtracking.
proc Backtracking (D, R, t)
if t(D) then return (OK) end if
if Deadend (D) then return (fail) end if
R := R
M:
r := Select (D, R)
5

.
, .

36

if r = nil then return (fail) end if


R := R \ r
if Backtracking (r.f(D), R, t) = fail then goto M
else return (OK) end if
end proc
Deadend
(), .
Deadend , :
D ;
..
, ,
,
.
. ,
. 13.

. 13.

Deadend
.

2.6.
(Graph Search ) ,
.

2.6.1.
.
proc GraphSearch (D, R, t)
O := {D} { }

37

C := { }
M:
D := Select (O)
if D = nil then return (fail) end if
if t(D) then return (OK) end if
Open (D);
goto M
end proc
proc Open (D)
for r R do
if r.p (D) then
if r.f(D) O & r.f(D) C then
O := O + r.f (D)
end if
end if
end for
O := O - {D}
C := C + {D}
end proc
+ ,
.
O ( Open),
C (
Closed). .
O , ,
(to be opened), C ,
, (already opened).

2.6.2.
.
G (V, E), V
, E
.
. , .
.
D1 D2 E r R ( r.p(D1) & r.f (D1) = D2 ).
D0 (, )
= {Dt(D)}.
Dt.
, , .
..

38

. 8 , 8!9 = 9!
( ,
). , :
,
. , 8
, .
,
, ,
.
, R ,
, .
, ,
Dt.
.

2.6.3.

.
O ,
, .
O ,
, .
.

?
,
, .
, ,
, . , ,
, ;
, .
. , , (. 14).

39

. 14.

. ,
, ,
( . 13 . 14). ,
( )
!

2.7.
,
.
.
.

(. . 15, ). .

40

. 15.

,
(, 8).
.
, , ,
, .
,
, ,
, , (.
. 15, ).
. ,
,
, , ,
(. 16)!

. 16.

. .
, .
60, 2, 3, 5.

41

:
D0 := {2,3,5}, t(D) := 60 D
R := if xD & yD & xyD & xy<61 then D:= D{xy}
(10 ):
2 3 5
6 10 15
12 20 30 18 45 50 60
(7 ):
2 3 5 15 45 30 60
:
D0 := {60}, t(D) := 1D
R := if xD & x:2 then D := D\{x}{x/2}
if xD & x:3 then D := D\{x}{x/3}
if xD & x:5 then D := D\{x}{x/5}
(4 ):
60 30 15 5 1
(10 )
60
30 20 12
15 10 6 4
532
1
, , , ,
.
: , 60,
2, 3, 5, , ,
.

2.8.
R ,
:
D ( r1.p (D) & r2.p (D) r2.p (r1.f (D)) ) ( , )
D ( r.p(D) & t(D) t(r.f(D)) ) ( , )
D r1.p(D) & r2.p(D) r2.f(r1.f(D)) = r1.f(r2.f(D)) ( ,
)

42

.
. 8, ,
.
, :
D r2.f(r1.f(D)) = r1.f(r2.f(D)),
,

.

, .
. .
. S = D + R + C D0.
G. S = D + R + C.
S S. R
,
( ). . :
O,
,
.
,
,
.
O,
, ,
.
...
.
,
.
, .
.
, x,
, ,
( ). 1 +
(1+(3++)) (. 17).
:
1.
2.
3.
,
.

43

. 17. .

- , .
.
(),
(terms rewriting rules).
-,

. .
-. ,
. -
, ,
..
.
. ,
, ( , , )
.6

, , (
, ), ,
,
.

44

(Alonzo Church), 1903 1995,


,
.
-,
1936 ,
. . .
, -
,
(, Scheme).

.
(x2+3x+2) / (x+2), x+1.
:
4.
5.
, ! ,
.
1-5 (. 18).

. 18.

, ,
:
6.
6 ( ), :
, , ,
- -.
, 7:
7.
(u+v)/w = u/w + v/w (. 19)

45

. 19.

, ,
.
:
.
, , , ,
, ,
.

2.9.
.
, .

2.9.1.
(Splitting) ,
,
.
.
.
A BC
A CT
C TT
: AC ,
T? (. 20)
(. 21) .

46

. 20. .

. 21. .

20,
: .

2.9.2.
proc Split (D, R, t)

47

:= Decompose (D)
M:

for D do
if t (D) then := \ {D} end if
end for
if = then return (OK) end if
D := SelectD ()
:= \ {D}
r := Select (D, R)
if r = nil then return (fail) end if
:= Decompose (r.f (D))
goto M

end proc
Production, .
Decompose (
, ).
, . 21 ,
, , . ,
SelectD Select,
.
. , , ,

:
, . , ,
.
-. ,
, :

. -.

48

3.
,
.

3.1.

.
G (V, E),
V = { D | D V } ,
E :
E = { DD | D, D V & rR ( r.p(D) & D = r.f(D) ) } .
, ,
.
( ), ,
,
.
( )
, ,
. ,
D0, R
, ,
Dt. , .
.
r..
, ,
. , ( ):
r = (p, f, c).
,
,
.
proc GS (D0, R, t)
O := {D0};
g(D0) := 0
C := ;
P(D0) := nil
M:
D := Select (O)
if D = nil then return (fail) end if
if t(D) then return (OK) end if
Open (D)
goto M
end proc

49

proc Open (D)


for r R do
if r.p (D) then { }
D := r.f(D)
c := g(D)+r.c
if D O D C then { }
if c < g(D) then
g(D) := c
P(D) := D
end if
else { }
O := O+{D}
g(D) := c
P(D) := D
end if
end if
end for
O := O - {D}
C := C + {D}
end proc
O , C , g(D)
D0 D, P(D) .
Select Open.
, , .

3.2.
Select - .
Select (O) = FIFO ;
, .
Select (O) = LIFO ;
, , .
.
.

3.2.1.
, ,
.
, ,
.

50


, .
- .
, , , .
, ,
, .

.

3.2.2.
.
F(D).
F
F : D R .
,
F(Dt) = min F(D).
, Select.
Proc Select (O)
m :=
D := nil
for D O do
if F(D) < m then
D := D
m := F(D)
end if
end for
return (D)
end proc
, :
Select(O) := min F(D), D O
F .
, F () -
. ,
.
, , D
.
D .
D0 Dt
D.
.
. 8.

51

F
(. 22).

. 22. 8 F.

F , .

3.3. GS
F*(D) = g*(D) + h*(D) D0 Dt D,

g* D0 D,
h* D Dt:
g*(D) = min d(D0, D), h*(D) = min d(D, Dt).
:
M := F*(D0) = h*(D0) , .
, F*, g*, h* M , , .

52


F(D) = g(D) + h(D), g Open.
: g(D) g*(D), .
h(D)
.
.
D h(D) h*(D), GS ( ).
, ( ),
, .
.
, h h*.
1
GS ,
. N k F(Dk) > N.
.
e = min r.c > 0, p D . p > log|R|k.
k > |R|N/e. : F(Dk) > g(Dk) > e p > e log|R|k > e log|R| |R|N/e = N. ...
2
,
, , M.
.
A = <D0, Dt> . . : D0 A.
. . D O, D
A, D , .. g(D) = g*(D).
F(D) = g(D)+h(D) = g*(D)+h(D) g*(D)+h*(D) = F*(D) = M,
.. D A F*(D) = M. ...
3
, ,
M.
.
2 D O F(D) M, Select ...

. 1
k F(Dk) > M, 3. .
GS fail OK. Fail . 2
, .
GS , .
h*(Dt)=0 h(Dt)=0. F(Dt) = g(Dt)+h(Dt) = g(Dt) > g*(Dt) = F*(Dt) =M,
3, ...

1. D O, F(D) < M, .
. Dt F(Dt)=M,
. ...

53

2. .
. : h = 0, F = g, 0 h*, ...
.
* (
).

3.4.
,
F1(D) = g1(D) + h1(D),
F2(D) = g2(D) + h2(D),

h1(D) h*(D)
h2(D) h*(D)
h2(D) > h1(D) .
F2 , F1.
.
, ,
F2, F1.
.
(. 23).
k D F2.
. D0 , (D0 = Dt).
D F2 k.
D F1 , F2,
g1(D) g2(D). . D F1.
1 F1(D) M. F2 D ,
F2(D) M. g1(D) + h1(D) g2(D) + h2(D) g1(D) + h2(D),
h1(D) h2(D), . ...

54

. 23. .

3.5.
, h ,
D h(D) h(r.f(D))+r.c & h(Dt)=0. ( )

().
.
,
, GS
, , ..
g(D) = g*(D).
.
.
: g(D0) = g*(D0) = 0.
D D0 A=D0, D1, , Di, , D
.
i g*(Di)+h(Di) g*(Di)+c(Di,Di+1)+h(Di+1) .
Di, Di+1 A g*(Di)+c(Di,Di+1) = g*(Di+1).
i g*(Di) + h(Di) g*(Di+1) + h(Di+1)
i g*(Di) + h(Di) g*(D) + h(D).
Dk A, Dk O & j<k Dj C. , ..
D0 C, D O. Dk , g(Dk) = g*(Dk).
g(D)+h(D) = F(D) F(Dk) = g(Dk)+h(Dk) = g*(Dk)+h(Dk) g*(D)+h(D)
, g(D) g*(D). D g(D) g*(D) g(D) = g*(D). ...

55

.
,

.
.
D1, D2 ().
D1 D2 O, GS F(D1)
F(D2).
D2 D1.
F(D2) = g(D2) + h(D2) = g*(D2) + h(D2) = g*(D1) + c(D1, D2) + h(D2) =
= g(D1) + c(D1,D2) + h(D2) g(D1) + h(D1) = F(D1) ...

3.6. /
/.
,
: ,
. , .
D D1
D2.

3.6.1. /
.
/ . ,
{D} k-. k- D(D1,,Dk), 1-
.
,
().
, <S1, , Sn>,
D Si, 1 i n1, k-
D(D1,,Dk), , 1 j k (DjSi+1).
, ,
,
. k. k- ..
, ,
.
G(D0,T) D0 T.
G (D0, T):
D0 T, G = D0.
D0 T, D0 k- D(D1,,Dk),
G1, G2, , Gk D1, D2, , Dk, G = D0 (G1,,Gk).

56

( )
:
c(G(D,T)) := c(D(D1,,Dk)) + c(G(Di,T))
, k-
.
(. 24). , 6 7 , 0 ,
, k- k,
/ 0

. 24. k-.

k- k, . 24
( ).
= 1+(2+(2)+(2)) = 7,
= 2+(2+(1+2)) = 7,
k-
.

3.6.2. /
/ .
, F, h
( ):
h(D) c(D,(D1,,Dk)) + h(Di)
( ):
h(D) h*(D).
/ .
proc GS / (D0, R, T)
{ }
G := D0
s(D0) := D0 T { }
while s(D0) do

57

D := Select (G)
Open (D,G)
end while
end proc
s(D): 0..1 , , ,
.
Select

.
proc Select (G)
O := {D0}
for D O do
for q = (DD1,,Dk)

Q(D) do

if x(DD1,,Dk) then
O:=O - {D}
{D1,,Dk} := {D1,,Dk} - T
O:=O + {D1,,Dk}
end if
end for
end for
m :=
for D O do
if F(D)<m then
D := D
m := F(D)
end if
end for
return (D)
end proc
D0
k-.
.
, Q(D) D,
x(q) q.
pen . ,
, k- s (solved) .
.
,
, k-.
proc Open (D,G){ }


for r R do
if r.p(D) then
G := G + (D D1,,Dk)
for i from 1 to k do
if Di G then F(Di):=h(Di) end if
s(Di) := Di T
end for
end if
end for
{ }
C := {D}
while C do
{ }
for D C do
if P(D) C = then D:=D end if
end for
C := C - {D}
m := F(D)
for q=(D D1,,Dk) Q(D) do
c:=c(q) + F(Di)
if c < m then
x(q(D)) := 0
x(q) := 1
s(D):=&s(Di)
m := c
end if
end for
if s(D) F(D)m then
F(D):=m
C := C + U(D)
end if
end while
end proc
.
Q(D) D ( G),
P(D) D G,
q(D) D,

58

59

x(q) ,
U(D) D G ,
s(D) , .
Select
.
Open ,
, .
.

3.6.3. /
. 25.29 /
, . 24.
. ,
/ . ,
, s(D) = 1,
(
5 6). 1- , k- ( k=2)
,
k-. .
, h 0,
1. k- k. ,
, .

. 25. /. 1. .

. 26. /. 2. .

. 27. /. 3. .

. 28. /. 4. .

60

61

. 29. /. 5. .

3.7.
, .
Max Min. Max.
/. 1-
Max (), k- Min ().
Max.
,
.
F* : F* = + Max,
F* = Min F* = 0 .

3.7.1.
.
F, Max, F > 0,
Min, F < 0.

62

, F. Min
, F.
, ,
, ,
.
. , 1040 ,
10120. ( )
.
,
.
. - 33.
(Minimax) 2
30 ( 1,
0). = .

. 30. .

,
2 . ,
.

3.7.2. -
.
, .

63

,
. - .
, -
.
,
.
, Max , Min
. :
1. Min, Max .
2. Max, Min .
- 31.

. 31. -

,
.

3.7.3. -
- ?
h, d .
N=dh .
( ) Min ,
.

64

, -
:
2d h/2, h
h/2
N=O(d ) =
d(h+1)/2 + d (h-1)/2 1, h .
, -
.
,
. ,
- . ..
3. ,
, .
, . ,
.
? ,
.
100%. ,
.
2-3
. ,
, - ,
.
2, 10, 10
211 = 2048 , 1011 = 1 000 000 000 000
.

65

4.

,
. ,
.

4.1.
, ,
.

4.1.1.

.
:
:
:
:
:

| | ( )
| ,
| ( )
|
| ( ) |
( ) |
( )

: | |
: |
, ,
, ,
. (
) , . ,
.
, .
-, ,
,
. ,
, , . ,
.
-, , ,
. ,
, ..
.
.
. ,
Model Checking ,
,
.

66

-,
. ,
,
, , , ,
.
, ,
.
-, ,
. ,


.
. ,
, .
, ,
,
, .
-, ,
, ,
,
,
.

4.1.2.
I,
T M:
I:TM
,
,
,
.
, ,
.
A I I(A).
( ) ,
,
.

. ,

, .
:
. , F ,
F , A
A F := I(A) I(F)

67

,
R.
. F ,
<A,,F>,
( )
R
A |R F := <A,,F>
.
. , .
R.
R ,

A |R F A F
R ,

A F A |R F.

4.2.
1960 .
, ,
(clause).

4.2.1.
.

.
, , , :
,
, ,
.
,
, .

68


1963 .
, "
". ,

( 1930 .),

.

, .
( ),
, (P P),
, .
,
: , .
P P1 K Pn
P Q1 K Qm
P1 K Pn Q1 K Qm
, ,
. ()
.
(, Modus ponens )
.
,
, ,
.



Modus ponens
A, A B
A, A B
B
B

A B, B C
A B , B C
AC
A C

A B, A B
A B , A B
B
B

.
.
.
,
.
.
.
.

69

. I , 1 2
, , ,
. , , P
1 , 2 . 1 2 ,
.
I(C1) & I(C2). I(P), C2 & I(C2),
I(C1C2). I(P), C1 & I(C1), I(C1C2).
...
,
.
.
.
.
, modus ponens
.
...

4.2.2.
, .
.
.
1) ,
,
2) ,
3) ,
,
4) ,
,
5) , :
, ,
6) ,
,
7) (
, ),
8) ,
.
.

x ( P ( x) y Q ( x, y ) )
1) x ( P ( x) y Q( x, y ) )
2)
3)
4) x ( P( x) Q( x, f ( x)) )
5)

70

6) P( x) Q( x, f ( x))
7)
8)
.

x ( P( x) y Q( x, y ) )
1) x ( P( x) y Q( x, y ) )
2) x ( P( x) & y Q( x, y ) )
3)
4) P (a) & y Q(a, y )
5) y ( P(a ) & Q(a, y ) )
6) P (a ) & Q(a, y )
7)
8) P (a), Q(a, y )

4.2.3.
,
. , .

. .
, ,
, .
, .
,
, .
. , ,
( , )
, .
Proc Unify (e1, e2)
if atom(e1) atom(e2) then
if e1=e2 then return nil
elseif var(e1) then return{e2/e1}
elseif var(e2) then return {e1/e2}
else return(fail)
end if
end if
f1:=car(e1); t1:=cdr(e1); f2:=car(e1); t2:=cdr(e2)
z1:=Unify(f1,f2)
if z1 = fail then return fail end if
g1:=t1{z1}; g2:=t2{z1}; z2:=Unify(g1,g2)
if z2 = fail then return fail end if

71

return {z1, z2}


end proc
,
, ,
.
,
, .

- ,
, .

(Least Common Unifier).
, , .

.

atom, ,
, var, ,
, car,
cdr, ,
, .

4.2.4.
,
G, ,
, ,
G .
.
.
A,G | F, F , A | G.
( ).
A,G | F | A &G F, A &G F
. A &G F = ( A &G ) F = A G = A G. A G
| A G, , ,
A | G. ...
. ,
. ,
F, ,
,
. ,
.
.
A,G | , , A | G.
:

72

,
A G
.
.
.
, .
G, ,
G . ,
.
, .
.
1.
. , .
G .
2.
, ,
,
. , .
, G .
3. ,
, , .
. .
, .
,
, ,
. , ,
? . ,
? .
. , , ,
.

4.2.5.
.
Proc R(S)
C := S
if
C then return OK end if
Select(C, p1, p2, l1, l2, s)
if p1,p2 =nil then return fail end if
p := Res(p1, p2, l1, l2, s)
C := C + p;
go to M
end proc

M:

Proc Res (p1, p2, l1, l2, s)

73

p1 := p1{s}; p2 := p2{s}
p1 := p1 l1; p2 := p2 l2
return p1 p2
end proc
Proc Select(C, p1, p2, l1, l2, s)
p1, p2,

l1,
l2,

s
end proc


, , . ,
Res . Select.
,
.
.
.
.
.
, .
.
.
1. () ()
2. () ()
3. (a)
4. ()
5. () ()
6. ()
(4,5)
7. ()
(1,6)
8. (a)
(7,2)
(8,3)
9.
, .

.
, .
.
,
, , ,
, 8 .

: (a) (). 5 :
. :
x () & ().

74

.
. 4 5 ,
, 1 6
. 7 2 .
(), 8 3 .
. .

4.3.
,
Select?
.

.

4.3.1.
, .
- ,
. .
.
, , ,
. ,
,
, .
. ,
, , ,
. , ,
.

4.3.2.
.
1.
. .
2. :
() ,
. .
, ,
.
, , , ,
, ,
:
1. ( ).
().
2. ( ).
().
.

75

,
(. 4.2.5).
1. ( ).
:
()()
()()
(a)
()
()()
()
(a)
()()
()()
()()
()()
()
(a)

.
,
( ).
, ,
.
.
, , .

,
, , , ,
. , . ,
,
, .
2. ( ).
,
.
()()
(a)
()
()()
()()
()()
()
(a)
()()
()
()()
()
(a)
() ()
, .
, .
, .
.
. .
, ,
.

4.4.
.
() .

4.4.1. (/)
, ,
. ,
.
. .

76

5057 .
5057
?

.
1. 5057(x) P(x)
2. 5057()
3. P()
4. P()
(1,2)
(3,4)
5.
.
5057 .
.
5057?
1. 5057(x) P(x)
2. P()
3. 5057()
4. 5057() (1,2)
.
.
.

4.4.2. ()
, -,
.
ANS.
ANS , . ,
. ,
ANS, .
.
.
5057 .
5057.
5057.
?
() : (), ANS(),
, .
P(x) ANS(x). ,
ANS = .
6 ,
ANS(), :
1. 5057(x) P(x)
2. 5057()
3. 5057()
4. P(x) ANS(x)

77

5. 5057(x) ANS(x)
(1,4)
6. ANS()
(5,2)
,
, ,
. ,
.
7. ANS()
(5,3)

4.4.3. ()
ANS, ,
. ,
(), .
.
. , ,
: , .
O(x, y) = x y
D(x, y) = x y
x,y,z O(x, y) & O(y, z) D(x, z)
yx O(x,y).
?
? D(y, x) ANS(y)
, :
1. O(x, y) O(y, z) D(x, z)
2. O(f(y), y)
3. D(y, x) ANS(y)
4. O(y, z) D(f(y), z)
(1,2)
f(y)/x
5. D(f(f(y)), y)
(4,2)
f(y)/y, y/z
(3,5)
6. ANS(f(f(x)))
f ,
.
,
.
.

4.5.
,
.

4.5.1.

:
A

A1&&ANB

:
A

78

A1 ... ANB
B
,

. :
,
, ( ).
, ,
.
, ( )
.
, ,
,
.

, . . ,
, ,
. - ,
. .
(Kowalski Robert).
PROLOG
(programmation en logique) .

, ,
.
.
,
.
, ,
, ,
.

4.5.2.

.
. - ,
.
1. ,
. .
, , .
, , .

79

90%
.
2. ,
. (
) ,
, .
fail, , .
, , .
.
3. , ,
, ..
, , , ,
, . ,
,
, .
. , ,
, ,
.

80

5.

, ,

.
.
, ,
. ,
, .
, .
,
,
. , ,
, .
,
.
/,
: ,
.
, ,
,
, .
,
.

5.1.
, , .
,
.

5.1.1.
,
.
. ,
,
,
. .

Modus ponens,
. Modus ponens .
A, A B
B
, , .
, .

81

,
.
.
(A B) C
ABC
(B C) A
A B C
,
,
. ,
. , ,
, ,
, , ,
, .

, . - ,
, . ,
, A B
B A.
. A B.
.
.

5.1.2.
.

. .
( ), ,
, .
.
.
5057. , ,
, .
. : ,
, .
.

0. x (x) ((x) (x))


1. 5057()

2. O()

3. x 5057(x) C(x)

4. x C(x) P(x)

5. x (x) (x)

.
.
. , ,
. .
1. P(x) (x)
2. P(x) (x)

82

3. (x) (x)
4. 5057(x) (x)
5. 5057()
6. (x) (x)
7. ()
8. (x) (x)
1, 3
9. (x) 5057(x)
8, 4
10. (x)
9, 5
11. (x) (x)
2, 3
12. (x) 5057(x)
11, 4
12, 5
13. ()
14. O()
13, 6
14, 7
15.
8, 9 10 , ,
.
. 8, 9 10 ,
, (x) .
. .
.
11 ( 2 3),
. P(x),
1, , ,
.
, , ,
,
.
. ,
.

5.1.3.
.
, Modus ponens.
, .
, .
0. x (x) ((x) (x))

1. 5057()

2. O()

3. x 5057(x) C(x)

4. x C(x) P(x)

5. x (x) (x)

6. ()
Modus ponens 1, 3
7. P()
Modus ponens 6, 4
8. ()
Modus ponens 2, 5
9. () ()
+, 8
10. () (() ())

83

&+, 7, 9
11. x (x) ((x) (x))
+, 10
1 3 Modus ponens (), 6 4 (), 2
5 (), , ,
, , , , . (
, )
Modus ponens , ,
.
. ,

, .
,
,
.

5.2. /
,
( )
, /,
. ,
, ,
, ,
.
, .
, ,
. , ,
, ,
, ,
.
. (. 32).
u v (Q(v, u) ((R(v) P(v)) S(u, v)).
/
. , ,
1-, , , 2-.
. , B,
, , , ,
, B. B ,
, .

84

. 32. /

, ,
, ,
, (. 32).
. Q,
S, 2-.
. ,
: Q, R S, P S.
/ ,
, .

5.3.
,

.

5.3.1. ,
, ,
, ,
, .
: ,
, ,
/. /
. , ,
: LW, L , W ,
/.

85

, ,
. ,
: ,
.

5.3.2. /
.
/. .
.
. , (
) /, , ,
( ).
,
, .
, ,
.
. ,
. , ,
,
.
.
.
:
()(()())
1: 5057
() 5057()
2: , ,
P(y) O(y)
: , 5057
z 5057(z) O(z)
1 .
.

5057
: , 5057.
()
: ,
. 1.
,
. ,
. ,
. ,
,
.
(. 29).

86

.29. / .
:
(), () (). 1 .
. ,
,
. . 2,
.
, (
).
.
:
P(x)Q(x)
1: P(A)R(A)
2: Q(B)R(B), .
:
R(A)R(B), .
, , ,
(. 33).

87

. 33. .

, ,
. ,
, ,
..

5.4.
.
, ,
,
.

5.4.1.
.
f(x1, , xn) ,
f*(x1, , xn) = f(x1, , xn)
.
, ,
,
, , ,
, .
, ,
,
(k- , 1- ).
.

, ,
.

88


,
, /.

5.4.2.
,
, . ,
, ,
. ,
/. ,
. ,
. , .
, , , ,
.
: ,
.
, /, , ,
.
. ,
.
1:
x>0&y>0

xy > 0
2:
x>0&y>z

x+y > z
3:
x>w&y>z

x+y > w+z


4:
x>0&y>z

xy > xz
5:
1>w&x>0

x > xw

x > (w+y)z
6:
x > (wz+yz)
7:
x > wy & y > 0
x/y > w
.
, .
. ,
.
, ,
:
A, B, C, D > 0
C>D
:
:
B(A+C)/D > B
. 34.

89

. 34. .

. .
, , 7,
. . 7
x > wy & y > 0 x/y > w,
(+), D; w
. . : D > 0 ( )
(+) > BD. ,
. : B > 0 A+C > D.
. -
.
, , . ,
, . ,
,
.

5.5.
( )
( ). ,
.

90

5.5.1.

.
, /, ,
/, : LW,
WL.
, . ,
:
,
, ;
,
;
.
.
: ,
, k-.
:
.
,
( . 4.2.5).
:

:
:

:

, , .
,
, ,
: , ,
.
(. 35).

91

. 35. .

,
. ,
, , .
, ,
.
.

5.5.2.
, .
, ,
,
, , .
.
, .. , . ,
(. 33).

92

. 36. .


(A & B) (C & D) A & (B C) & D.
, ,
. ,
: ,
k-. k- .
: , .
,
, / .
- ,
/. ,
, ,
,
, , , . , ,
,
.
/ ,
,
.

5.5.3.
,
,
, , .
(), ,
.

93

.
.
1. .
, .
(x) (x)
(x) (x)
, . ,
, .
? ,
.
, . , ,
. ,

.
.
,
,
:
(x) (x)
(x) (x)
.
2. .
,
P (Q1 Qk)

(Q1 & & Qk) P
k-.
, Q1 & & Qk. ,
(.
. 5.4.2, . 34) 4
B > 0, A + C > D. ,
. ,
- , :
, . . ( 5.4.2),
,
. , ,
, : k .
,
. ,
, .
3. .
(. . 5.4.2, . 34).
, > .
: x > y & y > z x > z.
! , ,

94

.
, . /,
.
, . ,
!
. ( ),
( ) , ,
, , ,
, .
,
. :
,
. ,
. (
, ,
), .
. ,
,
. , ,
. ,
.
.
, .
, ,
, ..

. ,
, , .
.
() .
, ,
.
,
, ..

95

6.

. . ,
.
, (. 37):

. 37. .

, , ,
,
.
, ,
.

6.1.

. , ,
.
, .

.
, .
,
. , ,
, ,
,
, .
.
, .., ,
- ,
.

6.1.1.

.
1. ( ).
;
.
.
2. ( ).
;
, ,

96

..
, .
3. ().
.
,
.

,
,

UML, ,
.
,
.
, ..,
.
,
.
.
.
4. (
); , .
, ,

. ,
.

6.1.2.
60- XX

.


.
70- ,
. ,
. .
, (
)
( )
.

97

(Charles Antony
Richard Hoare), . 1934 ,

.

(1960),
.
: Z

(CSP, Communicating
Sequential Process).
,
,
.
2000
.
(Dana Stewart Scott), . 1932
.
,
,

,

.
,
.

.

, 80- XX ,
,
. , ..
,

.

.

98

(. 1949)
, , , .


,
,
,

90- XX . ,
, -
.
,
( ) ,

, - (Model Driven Architecture


MDA) . ,
.

6.2.

.

6.2.1.
:

, ,
, .
, , ,
,
. , .
.
:
P(x),
Q(x), .
( )
:
x (P(x) y Q(x, y)).

99

: x,
P,
y, Q.
,
x (P(x) Q(x, f(x)))
,
f .
, ,
P(x) {y := f(x)} Q(x, y)
,
, , .
:
,
(
f), .

6.2.2.
, , ,
,
, , .
, , - .
.
, () :
proc f(x);
y:=x;
while Q(x,y) do y:=random(y)end while
return y
end proc
.
. ,
, ,
. , . ,
,
, - , ,
.
f.
.
, -
, ,
,
.
, .
f.
. .

100

6.2.3.
,
, .
, ,
f, , ,
. .
:
proc f1(x);
y:=f(x);
if Q(x,y) then return y
else return fail
end if
end proc
, f, f1,
, , , .
? , , Q,
:
Q(x, y, z) = n>2 x, y, z (xn+yn=zn)
- , , ..
- .
,
, , ,
.

6.3.

.

6.3.1.
:
.
,
a, b c. :
load ,
add ,
store .
c := a + b.
P(u, x, y, z, s), :
u, x, y, z,
s.
ANS .
1. P(u, x, y, z, s1) P(x, x, y, z, load(a, s1))
2. P(u, x, y, z, s2) P(u+y, x, y, z, add(b, s2))
3. P(u, x, y, z, s3) P(u, x, y, u, store(c, s3))

101

4. P(e1, e2, e3, e4, d)


5. P(u, x, y, x+y, s) ANS(s)
6. P(x+y, x, y, z, s1) ANS(store(c, s))
5,3
7. P(x, x, y, z, s2) ANS(store(c, add(b, s)))
6,2
8. P(u, x, y, z, s3) ANS(store(c, add(b, load(a, s))))
7,1
8,4
9. ANS(store(c, add(b, load(a, d))))
a
. add store ( 2 3).
, ( 4), :
, - .
: , b - x ,
+. , ,
. .
5 3 .
, .
, ,
, ,
.
, ,
. , ,
, .
, ,
, , .
.
8 , 16
, 6 7 . , 10
. ,
!
10 (
10 ). ,

100 ,
.
,
, ,
, ,
1000
, .
,
.
. ,
.
. ,
.
, ,
100%, .

102

100%. ,

. ,
.

6.3.2. -
.
. , ,
.
, ,
, .
, , ,
, ,
, .

- .
: T0 ( ).
: T ( ).
, .
1: ,
( T1).
2: ( ), ANS
( T2).
3: (
T3).
4: , .
( T).
: , :
y := if x>0 then 1 else -1 end if.
P , , :
P(x) := x > 0, Q(x, y) , x
y.
, ? :
P(x) Q(x, 1) & P(x) Q(x, 1)
.
1. P(x) Q(x, 1)
2. P(x) Q(x, 1)
3. Q(x, y) ANS(y)
4. P(x) ANS(1)
1,3
5. P(x) ANS(-1)
2,3
6. ANS(1) ANS(1)
4,5
, , ,
NS.
. 1 3
Q, Q(x, y) ANS(1). 2 3

103

Q P(x) ANS().
. ANS(1) ANS(). ,
(. 38).

. 38. .

, ,
, .
. .
,
,
.
, , , ANS.
.
, .
. 39.

. 39. -.

- , .

6.3.3.
.
, -.
1. P(x) Q(x, 1)

104

2. P(x) Q(x, 1)
3. Q(x, y) ANS(y)
4. Q(x, 1) Q(x, 1)
1,2
5. Q(x, 1) ANS(1)
3,4
6. ANS(1) ANS(1)
3,5
1 2 , Q(x, 1) Q(x, 1).
Q, 3 4 .
ANS(1) ANS(1). . ,
. 40.

. 40. .

.
,
(. 41):

. 41. -.

, 1, 1.
1, 1. ,
. , ,
,
. , ,
, . Q ,

105

. .
.

6.3.4.
,
, , .
(, ,
), ,
.
1 1
, . Q
, .
, ANS, .
-, , ANS
, .
, , .
, ,
, , .
.
P(x) Q(x, 1) ;
Q(x, 1) ANS(1) .
,
.
.
1. 1 2 ,
, , ,
, .
C1 L1 C2 L2 C, =...(L1, L2)
,
. ,
.
2. 1 2 ( ,
- ), ,
, , ,
L1 L2 .
. ( )
.
- ,
.
.
. 40.
, .
, ; Q.
. ,
Q, . ,

106


.
, . 38, ,
.
.
.
- ,
.
, ANS
,
.

6.3.5.
,

.
.
, , ,
.
. , ,
.
.

.
.
? f, f(0) = 1, f(x+1) = (x+1)f(x).
R , , R(x, y) := y = f(x) .
(
):
1. R(0,1)
f(0)=1
2. R(x,y)R(x+1,(x+1)*y)
f(x+1)=(x+1)*f(x).
, - ,
.
.
.
,
:
(y R(0, y)x (y1 R(x, y1) y2 R(x+1, y2))) x y R(x, y)
,
,
.
, , ,
(. 42)

107

. 42. .


, ,
,
.
-.
.
.
. ,
, ,
.
.
3. R(0, y2) ANS(y2)
4. R(y1, y2)
5. R(y1+1, y2)ANS(y2)
4 , 3 5
. .
, .
1 3
1 2:
6. ANS(1) 1,3
.. A = y2:=1
:
2, 3
7. R(y1+1,(y1+1)*y2)ANS(y2)
5, 7
8. ANS((y1+1)*y2)
, :
B = y2 := (y1+1)*y2
.

,
(. 40.):

108

. 43. .

, -
.
. ,
? :
.
,
,
. .

,
, . 42.

, .
,
.

6.4.
,
.
.
.

6.4.1.
. ,

,
(, ). , .
,
.
,
, .
, ,
.

109


, .
, ,
, ,
? ,
. , , .
,
, ,
, .
, ,
. ,
. ,
.
,
. ,
, ,
. - , -
. . , 2, 3.
. ,
:
x := f( , x, )
.
.
, .
, ,
.
,
, .

6.4.2.
.. 70- .
" "
" ".

110

, . 1935.
.


,

. :
;
;


70- . 70- 80-
.. ,
, . 80 ,
,
- ,
.
,
, . ( ,
). 80-

(.. , ,

).
programming in constraints.

6.4.3. .
,
.
.
,
.
, ,
- . . 44 .
, , .

111

. 44. .

, F
V.
:
M = {( X f Y)}, f F, X V, Y V.
, -
, , ,
.

: , U,
W.

6.4.4.
, ,
, :
Proc Wave (U,W,M):P
S := U
P :=
L:

if W S then return OK end if


g := nil
for f

F do

if X(f) S & Y(f) S then g:=f end if


end for
if g=nil then
return fail
else
S := S Y(g)
F := F\{g}
P := P+g
go to L

112

end if
end proc
. ,
, , , ,
.
, ,
O(|M|2) .
-. W, .
, ,
. .
.
. , ,
.

6.4.5.
,
.
.
.
(. 45),
f.
( , ,
).
.
. ,

X, ,
Y.

113

. 45. .

v
. ,
.

.. .

6.4.6. -

., ,
10
.
.
Proc DU(U, W, M)
P:=nil
G:=nil
for u U do W:=W\{u}; S(u) end for
L:

if W= then return P end if


if G=nil then return fail end if
g := car(G); G:=cdr(G); P:=P+g

for y Y(g) do S(y); W:=W\{y} end for


go to L
end proc
Proc S(u)
for x

X(u) do del(x)

114

if X(f(x)) = nil then


G:=G+f
{ }
endif
endfor
for y Y(u) do del(y)
if Y(f(y)) = nil then
G:=G\{f}
{ }
endif
endfor
end proc

P ; G , f(u)
u.
DU.
.
, . ,
, . ,
, , .
, .
, ,
S
, .
S.
, :
1) , ,
, - ;
2) , ,
, - .
, . ,
, f,
. .
, .
, ,
. , ,
, .
.
, , (. 45),
, . , , .

6.5.
,
, ,
, . ,
.

115

6.5.1.
, .
.
, ,
. , .
A, N W.
.
U ( ) [ ] { }.
T < > .
: xy := 0, x=y;
xy, x, y N (.. ),
,
.
(-):
D= <a1 a2 an b1 b2 bn>, ai, bi A q Z i 1 in bi=aibiai=q.
q,
.
(-)
V(D):=d10dn0 d11dn1 d1|q|dn|q|
di0 = ai, di|q| =bi dijdij1 = 0, bi=ai; dijdij1 = +1, biai>0; dijdij1 = 1,
biai>0.
. D=<A(1)A(4)>. V(D)=A(1)A(2)A(3)A(4).
<A(1)A(4)> ,
A(1)A(2)A(3)A(4). q=1.

6.5.2.
, .

( - -).
X N X W, X -.
X -, (X) {X} [X] -.
X Y -, XY -.
X Y -, <XY> -,
, .. .
,
; .
.
E = <<13><11>> <(4)(3)(2)(1)>
V(E) = <13> <12> <11> (4)(3)(3)(2)(2)(1) = 1 2 3 1 2 1 (4)(3)(3)(2)(2)(1)
k.
.
<<1k><11>> <(k+1)(k)(2)(1)>

116

6.5.3.
, .
:
<<if A(1)>A(2) then A(1)A(2);
if A(k-1)>A(k) then A(k-1)A(k);>
<if A(1)>A(2) then A(1)A(2);
if A(1)>A(2) then A(1)A(2);>>

k.
k=3
if A(1)>A(2) then A(1)A(2);
if A(2)>A(3) then A(2)A(3);
if A(1)>A(2) then A(1)A(2);

.
, ,
.

6.5.4.
: Af B. Y X (s,t)
,
D = <x11 xs1x1t xst>
M(X) N, m(X) .
,
.
f .
Af : (s,t) , , t>f(M(X)) .
B: > (M(X)+m(X))/2 k-c, = M(X)-x.
, Af.
. ,
. ,
,
.
,
.

6.5.5.
:
X = A(1) A(2) A(3) A(4) A(1) A(2) A(3) A(1) A(2) A(1).
: f , f(M(X))=2.

A(1) A(2) A(3) A(4) A(1) A(2) A(3) A(1) A(2) A(1)
<A(1)A(4)> A(1) A(2) A(3) A(1) A(2) A(1)
<A(1)A(4)> <A(1)A(3)> A(1) A(2) A(1)
<A(1)A(4)> <A(1)A(3)> <A(1)A(2)> A(1)

117

<A(1)A(4)> <A(1)A(3)> <A(1)A(2)><A(1)A(1)>


<A(1)A(k)><A(1)A(k-1)><A(1)A(2)><A(1)A(1)>
< <A(1)A(k)> <A(1)A(1)>>
(1) (2) q1=1, (2) (3) q1, (3)(4)
q1, (4)-(1) q-3.
.
. . .
, 5 (. ).
. .
.
, .

6.5.6.
,
k.
.. , ,
, .
:
X c k>c (SAf,B(V(X,k)X)
,
, ,
,
.
, ,
,
, ,
, ,
, , .
.

- , 63

118

, 111
- , 23
, 68
, 56
, 56
/, 56
, 38, 49
, 56
, 88
, 88
, 96
, 8
, 19
, 96
, 12
, 67
, 44
, 66
, 79
, 67
, 10
, 63
, 68, 69, 73
, 75
, 115
, 55
, 72
, 28
, 8
, 51

, 34
, 39
, 39
, 62
, 33, 36
, 50
, 76
, 76
, 82
, 23

, 69

, 91
, 68
, 111
, 98
,
8
, 105
, 23
, 26
, 82
, 15
, 69
-, 44
,
110
, 23
, 44
, 26
, 40
, 42
, 40
, 46
, 70
, 32

, 76
, 76
, 75
, 75
, 75
, 75
, 75
, 24
, 109
, 97
, 72
, 71, 72
, 14
, 97
/, 84
, 23
, 23
, 79
, 12

119

1.
2.
3.
4.
5.
6.
7.
8.
9.

. .
.
.-. . .: , 1991.
., .
. .: , 1989.
. .: , 1990.
. , . .: , 1976.
: 3- . .: , 1990.
. . .: , 1990.
.. . .: , 1982.

You might also like