Professional Documents
Culture Documents
" ) (6-3
,
- " -.
, , , , , ,
, , .
, .
" 103425
" -
)(
" .2004 .
, ,' ,16- ," ,39513
- .61394
The Centre For Educational Technology, 16 Klausner St., Ramat-Aviv, P.O.Box 39513, Tel-Aviv, 61394.
Printed in Israel.
II
.1
1.1
) (
1.2
1.3
1.4
10
1.5
18
1.6
26
1.7
33
41
2.1
42
2.2
64
2.3
80
91
3.1
91
3.2
98
3.3
105
3.4
126
3.5
146
150
4.1
150
4.2
151
4.3
168
4.4
188
4.5
208
.2
.3
.4
III
211
.5
5.1
211
5.2
214
5.3
218
5.4
229
5.5
)(BFS
250
5.6
)(DFS
265
5.7
287
5.8
303
5.9
323
326
6.1
326
6.2
329
6.3
) (Kruskal
332
6.4
)(Prim
344
6.5
356
.6
IV
,
.
.
:
.1 .
.2 .
.3 .
.4 .
) (1-2
, .
) (3-6
, .
,
.
" ," , ,
.
.
VI
.1
) (Linear Programming
. ,
.
, ?
, .
,
.
) ( . ,
, ,
, , , .
.
, ,
. ,
.
) (
.
,
. ,
, .
, ,
) (simplex method ,
.
. ; 2
; 3 :
, .
.
, .
, .
( ) 1.1
: .
: ,
:
" 200 800 ,
" 300 700 .
" ,2 "
.4 ,
, 180,000
560,000 .
: ,
, ?
.
, .
.
1.2
.
.
. X1
)"( , X2 )"(
X1 . X2 .
) X1 (X2 )
(.
.
" ,2 , X1"
, . 2X1 , X2"
. 4X2 )( .2X1 + 4X2
,Z:
Z = 2X1 + 4X2
)(1
. ,
X1 X2
.
.
, X1X2
) ( . .
X1" 200X1 , X2"
300X1 .
, :
200X1 + 300X2
)(2
, ) (2 180,000.
:
200X1 + 300X2 180,000
)(3
X2" . ,
:
800X1 + 700X2
)(4
, :
800X1 + 700X2 560,000
)(5
1.1
:
. 200,000.
. " 500.
.
.
, :
X2 0
X1 0 ,
)(6
.
, X1 X2 :
Z = 2X1 + 4X2
Maximize
Subject to:
.
X1 0 ,
.
:
X2"
X1"
)" "(
)(
180,000
300
200
)(
560,000
700
800
X1 X2 ) (.
, :
X1 = 300
X2 = 400-
) (X1, X2 , .
:
200 * 300 + 300 * 400 = 180,000 180,000
:
800 * 300 + 700 * 400 = 520,000 560,000
1.1
.
.
X1 = 0
.
, . ,
.
1.2
Z :
X1 = 420) X2 = 320 (
X1 = 700X2 = 0
X1 = 300X2 = 300
,
. , .
) (feasible solution .
1.1 X1 = 150. X2 = 500
X1 = 0 X2 = 800 .
.
1.1 .
) (optimal solution
. ,
, .
, .
, :
,
, .
,
, .
:
,
, ,
.
;
.
1.3
, .
,
. .
:
.1 ;
.2 ) (;
.3 ) (.
.
,
.
,
. ,
, .
)
( .
) ( )
( , "" .
) .(1.2
1.2
, ,
, .
.,
.
: ,
,
.
. , :,
) (.
, . ,
,
.
,
.
1.4
. :
.1 ;
.2
;
.3 .
1.4.1
,
)(; .1
:
Z = 3X1 + 2X2 + 5
Z = 5X1 3X2 7
, ) X1 (X2 ,1
, ) ( )
(.
:
Z = 3 X12 5
Z = X1X2 + 2X1 + 3X2 + 5
10
, .
, . 1.3
:
Z = 3X1 6
1.3
Z = 3X1 6
, .
1.3
?
1.4
?
Z = X12 + 2 X 2 .
Z = X1X2 + 5 .
Z = 2X1 + X2
Z = 5X1+ 3X2 7 .
11
, .
.
,
.
.
, n , ,
,
.
1.4.2
. .1.3
, .X1 3 ,
) . X1 = 3 ?(
1.5
,1.3
? X1 5
1.4.3
,
. ) ( .
=. , , ,< ,> ,
.
. ,
12
, , ,
.
.
:
2X1 + X2 2 0
, 1.4
:
1.4
2X1 + X2 2 0
,
.2X1 + X2 2 = 0 , 1.4
1.2
2X1 + X2 2 < 0
.2X1 + X2 2 > 0
13
: ?
:
,
.
) (0,0 X1 = 0 X2 = 0
0 2 . ,
, ,1
.
.
1.6
? 2X2 + 3 X1 + 1
1.5 :
X12 + X 22 1
14
1.5
X12 + X 22 1
) (X1,X2 .
) 1 ( .
.
, .
, )
1( .
. ,
:
X2 + X1 2
1.
X1 X2 1
2.
15
X1 0
3.
X2 0
4.
.
, .
, .
1.6 ) (
) ( .
) ( .
.
.
:
.1 ) (;
.2 ) (.
' X2+X12
16
' X2X11
'
1.6
4
1.6
X2 + X1 2
,
.
1.6 .X2 X1 1
.
1.6
, .
1.7
:
X1 2
X2 0
2X 2 3X 1 0
17
, .
1.5
:
.
1.1
30 . ,
.
:
)(
)(
1500
18
600
10
, ,
450; 1 3
.
.
18
.1
,
.:
X1 ;
X2 .
.2
:
Z = 3 1500X1 + 4 600X2
)
( .
.3
.
:
.
18X1 +10X2 450
.
X1 + X2 30
. .
, :
X1
3
X2
X
X2 1 0
3
19
.4
, , .
. ;
. ,
.
,
. ,
.
:
X1 0
X2 0
,:
Z = 31500 X1 + 4600 X2
Maximize
Subject to:
X1 0,
1.2
.
, ) .(1.7
)( 25 ) (;
200 ) ( .
.
500;
.
20
r
a
1.7
)( )(
.1
,
.
, .
:
X1
X2
.2
.
, ,
L = 4a
L = 2 r
,
:
Z = 2 X1 + 4X2
21
.3
, ,
:
X2 25
2X1 200
.4
, ,
:
X1 0
X2 0
:
Z = 2 X12 + 4 X 2
Maximize
Subject to:
X1 0 ,
1.3
, .
" :
22
10
15
20
; .
1000 500 200 .
, .
" 100 ,
.
, ,
. ?
.1
:
X1
X2
X3
.2
:
)
(
10
1/1000
15
1/500
20
1/200
23
,
.
:
Z = 10X1 + 15X2 + 20X3
,
.
.3
; :
1
1
1
X1 +
X2 +
X1 = 1
1000
500
200
X1 100
X2 100
X3 100
) (X1 X2 0
X1 X2
.4
;
) 100 ( . ,
:
.
, .
:
Z = 10X1 + 15X2 + 20X3
Minimize
Subject to:
1
1
1
X1 +
X2 +
X1 = 1
1000
500
200
24
X1 100
X2 100
X3 100
X1 X2 0
integers
X1, X2, X3
1.8
; .
5"
3 ,
4"
2 .
4"
3" .
4000"
2500 ;
.
.
.
1.9
. ,
. :
) (
5
) GB(
10
15
13
30
)(
1000GB .
10 .
.
25
.
1.10
.1 ) (1.2
, ,
50.
. ;
. ;
. ;
.
.
.2 ) (1.2
; ?
1.6
:
.1 ;
.2 )(;
.3 ) ( .
,
, .
:
.1 ;
.2 ;
.3 .
26
.
, ,
.
,
)
( "" .
.
. : ,
, .
.
.
)(
.
:
.1 ;
.2 ;
.3 )
(.
,
,
. .
) 1.11(
:
:
Z = X1 + 2X2 3X3 7
:
2X2 5X2 3X3 50
)1
27
5X2 2X3 10
)2
X12 4
)3
X2 0
)4
X3 0
)5
?
.
1.121.21 :
. .
. .
. .
.
.
1.12
.
100 , 5 100 . 4
:
100 20
80 , 100
35
65 .
4
10 . 8000
. 600
.1
?
.2
?
28
1.13
80" ,
120" .
1
"
,
3" .
2" ,
2" .
$30 .$20 ,
, ?
1.14
: .
600
400 .
100
900 .
0.5 . 0.1
5000
10,000 .
?
1.15
. 4 :
.1
.2
.3
.4
) 1 ( ,/
) 2 (.
,
.
.
29
30000
16000
25000
35000
20000
----
-----
15000
$3000 . $2500
?
1.16
10000"
.
. 2"
, 12" . ,
4 , 3
.
, 300 . 550
6
4 ,
10 8 .
?
1.17
.
" 50" .
:
. 0.7% ,
1.3%
. 23%
.
5% )(fibers
30
: )( ,,
.
, :
"
"
0%
0%
38%
15
2%
9%
1%
8%
50%
2%
"
, ?
1.18
" " :
.1 ;
.2 .
:
.1 ;
.2 .
,1
.
2 . .
,2
.
. 2.
16 .
$400 .$200
" "
?
31
1.19
. :
. , .
70
40 . , .
100,000 )"( 15,000
. 75,000" 30,000
.
, , 1,500,000"
500,000
.
,
?
1.20
. 300
500 3 : 20 ,"
250" .
4 60 ,"
300" . 500
4000 ,"
60 .
?
) 1.21(
: , .
, :
)(
)"(
7000
14
10000
20
4000
,
.
32
, :
)" (
)(
) (
500
20
320
700
16
400
600
25
360
400
13
290
.
,
.
1.7
1.1
. :
. :
1.2
:
X1 = 420
X2 = 320
Z = 2X1 + 4X2 = 2 * 420 + 4 * 320 = 2120
X1 = 700
X2 = 0
Z = 2X1 + 4X2 = 2 * 700 + 4 * 0 = 1400
X1 = 300
X2 = 300
Z = 2X1 + 4X2 = 2 * 300 + 4 * 300 = 1800
33
1.3
.
1.4
'
' '
' .
1.5
X1 .
.
1.6
.2X2 X1 2
:
) (0,0 0 2 , ,
.
34
1.7
:
1.8
:
X1
X2
:
Z = 4X1 + 3X2
Maximize
Subject to:
X1 0 ,
35
1.9
X1, X2, X3 .
, :
Z = 5X1 + 9X2 + 13X3
Minimize
Subject to:
X1 0
1.10
.1 X3 .
:
Z = 2X1 + 4X2 + 4X3
Maximize
Subject to:
4 X3
X1 0 , X2 0 ,
.2 :
=a2S
=r2S
, :
Z = X12 + X 22
36
.
1.11
X12 4
,
:
X 1 2
X1 2
.
1.12
X1 ) 100( .
X2 ) 100( .
:
Z = 5X1 + 4X2
Maximize
Subject to:
1.13
X1 .
X2 .
:
Z = 30X1 +20 X2
Maximize
Subject to:
X1 + 2X2 80
3X1 + 2X2 120
X1 0 , X2 0
37
1.14
X1 .
X2 .
:
Z = 0.5X1 + 0.1X2
Maximize
Subject to:
1.15
X1 .
X2 .
1/30,000 .
1/16,000 .
1/25,000 .
1/35,000 .
:
Z = 3000X1 + 2500X2
:
Subject to:
1
1
X1 +
X2 1
30, 000
16, 000
1
1
X1 +
X2 1
25, 000
35, 000
X1 20,000
X2 15,000
X2 0
38
Maximize
X1 0 ,
1.18
X1 .
X2 .
:
Z = 400X1 + 200X2
:
Maximize
Subject to:
2X1 + X2 16
X1 + 2X2 16
X2 0
X1 0 ,
1.21
X11 1 .
X21 2 .
X31 3 .
X41 4 .
X12 1 .
X22 2 .
X32 3 .
X42 4 .
X13 1 .
X23 2 .
X33 3 .
X43 4 .
:
Z = 320(X11 + X12+ X13) + 400(X21 + X22+ X23) +
Maximize
39
Subject to:
:
1
2
3
4
:
j = 1,2,3
40
Xij 0 i = 1,2,3,4
.2
:
.1 ;
.2 ;
.3 .
,
;
.
:
*
.
.
:
.1 ;
.2 ) (.
.
41
.1
,
,
.
,
) n ( , ,
, .
.2 ) (
.
.
,
, .
; .
;
; , .
,
.
2.1
, ,
, .
. .
,
.
42
1 ,
.
2.1
:
Z = 3X1 5
Maximize
Subject to:
X1 1
)1
X1 3
)2
2.1 .
2.1
2.1
:
43
.1 .
.2 .
X1
. , X1 .
) (.
.Z = 3X1 5
1 X1 3 .
, .X1 = 3
) (.
2.1
,2.1
?
, . 2.2
, .
2.2
:
Z = 5X1 + 3X2 7
Maximize
Subject to:
X1 + X2 2
X1 + 2X2 2
44
X2 0
X1 0 ,
) (X1 0 , X2 0
) I ( . .
, .
.
2.2
) (
,
,
.
.
45
2.2 :
, X2 = 0 .1
X1 = 0
, X2 = 0 .2
X1 = 2
, X2 = 1 .3
X1 = 0
2
4
.4
= , X2
3
3
= X1
: .
:
X2 = X1 + 2
X1
+1
2
= X2
X1
= 2 X1
2
:
2
3
1+
= X1
4
3
, :
= . X2
X1
X2 Z = 5X1 + 3X2 7 :
, .
.
Z
X2
X1
-7
-4
1/
4/
2/
46
, Z = 3 ).(X1 = 2 , X2 = 0
2.2 . ,
, , ,
, ) ,
( . ,
, .
.
.
) ( ,
. )
( , .
) ( , ,
, .2 .2
, ,
. ,
, , .
X1X2-
.
.
:Z = 2
2 = 5X1 + 3X2 7
:
5
X 2 = X1 + 3
3
47
5
3
, . ,
.
2.3
Z = 2
, ,,
.
.
.
2.4 .3
.
48
2.4
) (
.
. :
,
. ,
, .
) .(2,0 , X1= 2.X2 = 0
2.2
:
Minimize Z = 5X1 X2
Subject to :
X1 X2 1
1.
X1 + X2 3
2.
49
2X1 +X2 2
3.
X1 0
4.
X2 0
5.
. ;
.
;
. .
, ,
. )
( , , .
,
.
,
, .
2.3 ,
) ( .,
) (.
2.3
:
Maximize Z=2X1+2X2
Subject to :
1. X1 + X2 2
2. X1 + 2X2 2
3. X1 0
50
4. X2 0
2.3 ,2.2
) .(2.5
2.5
) (
2.2 .2.3
X1 X2
.Z = 2X1 + 2X2 :
.
.
51
X2
X1
4
3
2
3
: .
, Z=4
2
4
) (X1 = 2 ,X2 = 0 ) = , X 2
3
3
= .( X1
,
) 1:2 (.
1
X2
2
0
2
3
4
3
2
3
X1
2
= + (1 )
4
0
X2
3
. 0 1
2.3
2.3 .
,
; . 2.4
.
52
2.4
:
Z = 5X1 X2
Minimize
Subject to:
1) X2 X1 1
2) 2X1 + X2 2
3) X1 0
4) X2 0
X1) X2 .(2.6
:
2.6
) ( .
53
, .
) X2 X1 1 .(X1 0
,
.
, ,
.
,
) ( . ,
:
:
.0
: Z = 0
0 = X2 + 5X1
54
X2 = 5X1
2.7
Z = 0
2 ,2.7 : 2.8
55
2.8
) (
, ,
,
) (:
X1 X2 1
2X1 + X2 2
56
1
3
= X1
4
3
= X2
, :
Maximize Z = X2 + 5X1 ?Minimize Z = X2 + 5X1
, X1
. ,
) ,(,0 , .
.
,
) (
, . ,
. ,
.
. ,
,2.3 .
2.5
:
Minimize Z = 2X2 + 4X1 + 50
Subject to:
1) X1 2X2 40
2) X1 + X2 15
3) X1 0
4) X2 0
57
X1) X2 .(2.9
:
2.9
) (
) ( . , X1 X2
, .
,
) ( ,
58
.
.
,
.
,
. ,
,
.
:
.1 :
;
.2 ,
.
:
;
;
.
:
;
;
.
, :
.1 ) .(2.2
.2 ) .(2.3
59
,
:
.1 ) .(2.4
.2 ) .(2.4
.3 )( ) 2.3
(.
, .
) .(2.5
2.2 2.5 ,
. ,
. ,
,
.
, , ,
.2.2
,
.
, ,2.3
) ( .
, , ,
.
:
,
, .
60
, )
( .
,
, ,
.
,
.
,
.
.
2.4
?
2.5
1.12 1 .
2.6
1.18 1 .
2.7
:
.1
Minimize Z = 3X1 2X2
Subject to:
1) 2X1 + X2 6
61
2) 3X1 X2 6
3) X1 0
4) X2 0
.2
Minimize Z = X1 + X2
Subject to:
1) X1 + X2 4
2) X1 3
3 ) X2 3
4) X1 0
5) X2 0
.3
Minimize Z = X1+X2
Subject to:
1) 3X1 +X2 6
2) 3X1 X2 6
3 ) X1 3
4) X1 0
5) X2 0
2.8
:
.1
Maximize Z = X1 + 2X2
Subject to:
1) 2X1 +X2 20
2) X2 6
3) X1 X2 0
62
4) X1 0
5) X2 0
.2
Maximize Z = 2X1 + X2
Subject to:
1) 7X1 +3X2 42
2) X1 X2 0
3 ) X1 3
4) X1 0
5) X2 0
.3
Maximize Z = X1 + 2X2
Subject to:
1) 8X1 + 4X2 80
2) 5X1 5X2 0
3 ) X1 8
4) X2 3
5) X1 0
6) X2 0
2.9
:
Minimize Z = 3X1+ 2X2
Subject to:
1) 5X1 +X2 10
2) 2X1 + 2X2 12
3 ) X1 + 4X2 12
4) X1 0 ;
63
X2 0
2.2
) (The Simplex Method
.
, , .
,
, ,
.
,
,
. )(
.
.
,
.
.
.
, 2.10 2.2.
2.6
Maximum Z = 5X1 + 3X2 - 7
Subject to:
1. X1 + X2 2
2. X1 + 2X2 2
64
3. X1 0
4. X2 0
2.10
) 2.2 (
.
- :
) (vertex .
.
,:
) (feasible vertex
2.10 . ) (0,1
.
65
,
) (
) ( .
) ( :
) (optimal vertex
.
:
1 . , .
1 . ,
) (.
.2
.
.3
) ,(Z ;
.
1 .
2 , , , m
n , :
m
!m
=
!) n n !(m n
.
3 ,
) "",
(.
3 "
'" , , .5.1
66
,1 ;
2 . 3
.
.
, )(
. ,
,
. :
.1 : ;
.2 ) :
(;
2.1 : ,
"" ;
2.2 ,
.
.
, ,
.
2.6 , :
,
,2.6 ) (.
67
2.11
2.6
.1 : ) (0,0 ;
:2.1
) (0,0
) (0,2 ;
:2.2
(0,0) -;(0,2) -
:2.1
);(0,2
:2.2
(0,2) -;(2/3,4/3) -
:2.1
);(2/3,4/3
:2.2
(2/3,4/3) -;(0,1) -
:2.1
! ;
:
, .
2.2.1
.,
,
,
68
.
, .
, . ,
,
, .
, .
).(slack variables
, :
X1 + X2 2
:
X3 = 2 X1 X2
. :
X1 + X2 + X3 = 2
X1 + X2 2 ,X3 0 X1 + X2 2
:
X1 + X2 + X3 = 2
X3 0
.
:
Maximum Z = 5X1 + 3X2 7
Subject to:
X1 + X2 + X3 = 2
)1
2) X1 + 2X2 + X4 =2
X4 0
X1 0 X2 0 X3 0
69
,
. )augmented
(form , ,
.
2.10
n
?
) 2.1 (
. .
) (augmented solution
.
, ) (2,0 ) ,(2,0,0,4
,X4 = 4 ,X3 = 0 , X1 = 2 ,
.X2 = 0
) (basic solution .
, ) .(0,2
, X4 = 2 , X3 = 0 , ).(0 , 2 , 0 , -2
) (
,:
70
, ) (0,1 ,
) (0,1,1,0 .
2.11
.
. ?
. ?
,
. , ) (4 2
) (2 . ,
) ,(degrees of freedom
, .
. ,
) ,(nonbasic variables
) .(basic variables .
) (,
.
) .(0,1,1,0
X1 X4 ,
.
. ,
.
71
) (0,0,2,2 ) (0,1,1,0 X2
, X4 .
-
,
.
2.12
. :
, , , ,.
2.2.2
. :
?
:
?
:
? )
?(
) (?
?
:
72
2.7
:
Max Z = 5X1 + 3X2 7
Subject to:
X1 + X2 + X3 = 2
)1
2) X1 + 2X2 + X4 = 2
X4 0
X1 0 X2 0 X3 0
.
.
.
) ( . ,
,2.11 ).(X1, X2) = (0,0
,
. ,
.
= 2
=2
+ X4
X2 + X3
X1 +
)1
2X2
X1 +
)2
, :
, X4 = 2 , X3 = 2 .
).(0,0,2,2
,
, +1 , :
X3 = 2 X4 = 2
,
. . ,
73
,
.
, :
.1
,
) true :( ) false( . true
,
. false
.
2.13
:
,
.
,
.
?
,
:
Z = 5X1 + 3X2 7
)
(
) ( .
.
X1 X2 , )
74
(
!
,
.
.
,
,
.
.
,
,
.Z , ,
,
.
:
Z = 5X1 + 3X2 7
.
) X1 = 2 .X2 = 0 .(Z = 3
2.14
?
75
.2
.
, ) ,(entering basic variable
,
) ,(leaving basic variable .
?
n .
,
.
) , Z ( , ,Z
, .
Z ,
Z .
Z ,
.
,
X1 .X2 ,
:
Z = 5X1 + 3X2 7
, .Z
X1 Z ,5 X2
Z .3 ,5 > 3 X1 .
X1 , X2 .
76
?
, ,X1 X2,
; , .,
,
. , ,X1 X2
, X1 . 2.11
) (0,2 . X1 + 2X2 = 2 :
,
)
( . X1 , ) X2 (
, X3 ,X4 ,
.
X1 ) ( .
) ( .
,
. , ,
.
, .
, . X4 , X3
.2.1 X2
, 2.1 .
,:
X3 .1 X1 .X1 = 2
X4 .2 X1 .2 X1 ,
X4 , . X1
77
2.1 ,X1
.
) X3
,(X1 + X2 2 ,X3
) X3 = 0 : ( ) X1 = 2 (.
2.1 2.2
X1
)(
X1 2
X3 = 2 X1 X2
X3
X1 2
X4 = 2 + X1 2X2
X4
)
( ,
, . ,
.2.1 ,
, .,
, ,+1
) . (.
,
. .
2.2.3
. ) (
. )
( ,
) (.
78
.
.1
,
.Z
. ,
, . , .
.2
:2.1 : ,
Z . , ,
Z ,
.
:2.2 :
.
,
.
, .
.
:2.3 :
, ,Z
. ;
Z )
.(+1
.
2.15
:
Maximum Z = a X1 + 2X2
79
Subject to:
X1 + X2 5
2X1 + X2 4
X1 , X2 0
a ?
2.3
2.1
1 .X1 ,
. ,X1 = 1 .
2.2
. : X1 ,X2
) .(2.12
80
2.12
X2 0
.
,
. .
. :
:
X1 = 1 , X2 = 0 .1
X1 = 3 , X2 = 0 .2
X1 = 1, X2 = 2 .3
1
4
= , X2
.4
3
3
= X1
4 ,
, : X2
81
X2 = X1 + 1
X2 = 2X1 + 2
, :
1
3
= X1
4
3
= X2
X1
X2 .Z = 5X1 X2 :
:
Z = 5 .1
Z = 15 .2
Z = 3 .3
1
=Z
.4
3
1
, :
3
= ) Z (
).( X1 = 3 , X2 = 0
.
:
:Z = 0
0 = X2 + 5X1
X2 = 5X1
2 2 ) (:
82
2.13
) (
,2.2 ,
.X1 ,
.X1
:
,
.
:
X2 X1 1
X2 + 2X1 2
,
, :X2
X2 = X1 + 1
83
X2 = 2X1 + 2
, :
1
3
= X1
4
3
= X2
.
, .
.
2.3
:
.0
:Z = 0
0 = 2X2 + 2X1
X2 = X1
,0 2 :
2.14
) ( .
84
,
) (.
.
,X1 + X2 2
. X1 + X2 2
,Y = 4
.
,
:
2X1 + 2X2 = 4
, ,
,
4
) (X1 = 2, X2 = 0 . X1 = , X 2 =
3
3
:
,
.
.
:
AX1 + BX2 = C
DX1 + EX2 = F
:
A B
=
D E
,
:
X1 + X2 = 2
:
85
2X2 + 2X1 = Z
Z .
,
.
:
) ( ,
, ,
.
2.4
:
1 ;
2 ;
3 .
.
4 ;
) ,
,
, (;
5 ;
, )
, ,
,
(;
86
6 .
2.5
Z = 1,900,000 :
)(X1 = 60,000, X2 = 80,000
2.6
2.15
Z = $3200 :
1
X2 = 5
3
,
X1 = 5
3
)(X1 = 8, X2 = 0
2.7
.1 . 4.8
87
.2 . 3
.3 . 2
2.8
.1 . 6
.2 . 14
.3 . 3
2.9
. 13
2.10
) n n( ,
,
.
2.11
. ,
. ,
.
.
, ,
,
.
. ,
,
.
88
2.12
:
.
.
,
.
,
.
.
2.13
. 3 ,
,
.
.
, ,
. .
2.14
.
, ,
89
.
2.15
a = 2 .a = 4
a = 2 ,Z = 10 a = 4
.Z = 8
90
.3
.
.
. , .,
,
. ,
) (
.
3.1
" " .
, ,
. " " , ,
,
.
,
.
, , , "
,
.
:
.1 .
.2 .
.3 )
, (.
91
:
.1 ) (:
"
230,000
550,000
780,000
.2 ) (:
"
300,000
260,000
220,000
780,000
:
) ( ) (.
.3 )(:
3.1
.
330,000 , ?300,000
.
?
.
.
92
, , .
.
, ,
,
.
" ":
:
.1 .
.2 .
.3 .
.4 .
.5 .
:
.6 ) ( , .
:
.7 )
(.
.
93
230,000
2
3
550,000
780,000
220,000
260,000
300,000
3.2
:
.1 240,000 .
.2 300,000 .
.3 , 200,000 .
.4
:
. 4.
. 3.
. 7.
. 4.
.5 :
. .
. 3.
.
:
94
5
70,000
230,000
550,000
780,000
160,000
150,000
260,000
220,000
2
260,000
3
140,000
300,000
:
160,000 : 70,000
.
140,000 : 260,000 ,
150,000
.
)( )(.
, .
,
. :
2,690,000 = 160,000*2 + 70,000*5 + 140,000*3 + 260,000*5 + 150,000*2
2,690,000" .
?
, . ,
, .
3.3
. :
95
4
5
230,000
550,000
780,000
2
230,000
2
220,000
260,000
220,000
260,000
3
70,000
300,000
. .
, ,
3.2 .
. ,
,
, .
.
.
3.4
.
:
)(
)(
96
'
12
'
14
'
10
;
:
)(
)(
A
10
11
)(
:
, .
3.5
. , ' 16 , 12?
. , A 10 , 9?
97
3.2
3.2.1
. .
:
m
si
)(i = 1,2, , m
dj
)(j = 1,2, , n
cik
i j
xij
, i j
s1=230,000
j=2
j=3
n=3
j=1
2
i=1
3
m=2
i=2
s2=550,000
d3=220,000
d2=260,000
d1=300,000
" ":
98
.I
) 1( 1,2,3 230,000
:
x11 + x12 + x13 = 230,000
. ,
,1 ) , ,(x1j
:
3
x1 j = 230, 000
j =1
) ( .
) ( j
x1j .j = 1,2,3
3.6
, 2
) ,(x2j ?
, .
.II
1 300,000:
2
2 260,000:
99
3 220,000:
2
.III
i = 1,2; j = 1,2,3
xij 0
.
.IV ) (
3
cij xij
i =1 j =1
, .
3.7
.
,
.
3.2.2
m , n
. , m + n .
3.8
,
" "? m + n?
100
, ,3.1
si
i =1
dj
j =1
" ":
230,000+550,000= 300,000+260,000+220,000= 780,000
dj
= si
j =1
,
i =1
.
3.9
j =1
i =1
si = d j
.
) ,
( .m + n 1
, , mn )(xij
m + n 1 )( , ,
, mn m n + 1 .0
)
) (m + n 1 , )
(.
" " , ,3.4
,
101
3
550,000
780,000
70,000
160,000
150,000
260,000
220,000
2
5
230,000
1
260,000
3
140,000
300,000
, ,
, ) ""( . ,
m + n 1 .
m + n 1 ,
,0 ) :
( 3.5 )
(.
3
230,000
70,000
550,000
150,000
1
160,000
780,000
102
220,000
260,000
260,000
140,000
300,000
, x11 x23
,x13
" ".
3.10
. " " .
. ?
.
. x11 ,x13 x21,x23
?
.
:
Z = c11 c13 + c23 c21
3.11
? Z ,
, .
Z ,
, x21 . x13 ,
, x11 x23 , .
Z < 0 .
) ""(
.
.
. m + n 1
, m + n 1
.
103
3.12
. ?
.
) 4 .(3 .,
) (
.
34
28
44
10
16
2
18
3.2.3
1
)
2
x12 = 3"( .
) " " , ,
1
,
2
3 ,(.
104
) (dij , .
.
3.3
, , .
, .
.
.
.1 .
.2 :
.
)
( .
, , .
,.
. :
.i
.
.ii
.
.iii
.
. .
.
105
( ) 3.3.1
) m + n 1(
. .
, .
, ,
.
) ( :
.
, . .
m + n 1 .
, )
, ( .
m + n 1 , .
, ,3.1
" " ) (cij ) (.
3.6
230,000
550,000
780,000
106
220,000
260,000
300,000
, "" ) ( .
.x11 x11
1 .1 1 230,000 1 .300,000,
x11 .230,000
,1 ,1 1
. 1 70,000
) .(300,000 230,000 :
3.7
230,000
1
230,000
550,000
220,000
260,000
300,000
70,000
) ,(1
.x21 )( ,70,000
.550,000 ,
.70,000 )( ,1 70,000
.2 .
107
3.8
230,000
550,000
1
230,000
70,000
480,000
220,000
260,000
300,000
70,000
.x22 ,2
480,000 2 .260,000 , :
.x22 = 260,000 :
3.9
230,000
550,000
230,000
260,000
70,000
220,000
220,000
260,000
300,000
70,000
, . 2
,(220,000) 3 .x23 = 220,000 .
108
3.13
2 3
?
3.10
220,000
260,000
1
230,000
70,000
)( . :
x11 = 230,000, x21 = 70,000, x22 = 260,000, x23 = 220,000
,x12, x13 : .0
, , :
4 m + n 1
) .(2 + 3 1 = 4 ,
,
.
3.14
:
109
230
150
540
280
340
220
80
3.15
)
(:
230
80
200
3
280
10
220
. .
. ? ,
?
110
)(
:
:
,
)(.
, ;
: 2
)(.
;
: 3
)
( , ;
, ,
: 1
: 4
, ,
. .1
" : ".
:
m
]s[1..m
]d[1..n
] x[1..m, 1..n .
" : "
] .x[i,j x .
111
):(m, n, s, d
)(1
j1;i1
) (2 m + n 1 :
)(2.1
)]x[i,j] min(s[i],d[j
) (2.3 ,:
)s[i] s[i] d[j] (2.3.1
)(2.3.2
jj+1
)(1
i j .1
)(2
m + n 1
] x[i,j
. , .
3.16
?
3.3.2
,
.
.
.
.
, , ,
112
.
,
, .
)(
) ( , .
, ) 3.11
(:
3.11
)(
200
1
2
)(
100
2
80
220
3.17
. ?3.11
. ?3.11
. ?
. ?
:
x11 = 120 , x12 = 80 , x21= 100
:
5 * 120 + 2 * 80 + 2 * 100 = 960
113
1 ) ( ,
.3.12
220 ,
) (.
220 ,1
3.12 1
200
2
2
100
2
80
220
:
x11 = 120 , x12 = 80 , x21= 100
:
4 * 120 + 2 * 80 + 1*100 = 740
220 .
3.18
2 ,3.12
, .
, ?
: ) ( ,
;
.
114
, ) ,(2 ""
.
) ui
. ( i
vi j cij ui vj = 0 .
ui vi
cij ui vi = 0 i
j xij .
cij ui
vj . ,
,cij ui vi )
( , ,
. .
, ,
) si ,cij ,(dj , ui
,x12, x13 : .0
115
:
3.13 ) )((cij ui vj
ui
230,000
550,000
230,000
220,000
220,000
Z=2,410,000
260,000
260,000
70,000
300,000
vj
, 3.13 xij ) (:
cij
xij
:
, (cij ui vj) 0 , ) (i, j
xij .
, .
, ui
vj
, ) .(cij ui vj
) (cij ui vj ,xij , ui
:
116
vj
) (m + n 1 , ) (m + n 1 .
) ui (vi ) ,(m + n
) . ui
( , .
. u2 , .u2 = 0
, :
v1 = 3
v2 = 5
v3 = 2
u1 = 1
) ,(3.16
xij ) (cij ui vj
,xij ). (cij ui vj
117
ui ,vj , ,
) (cij ui vj xij ) ,
(:
c12 u1 v2 = 4 + 1 5 = 0
c13 u1 v3 = 5 + 1 2 = 4
3.14 )
(.
3.14
ui
3
-1
230,000
550,000
2
5
4
0
220,000
220,000
2
230,000
Z=2,410,000
5
260,000
260,000
5
70,000
300,000
3
vj
, )(cij ui vj
.3.14 ,
.
, ,
,
.
.
:3.15
118
3.15 ) (
ui
3
2
5
230,000
1
4
220,000
10,000
2
550,000
Z=3,290,000
5
260,000
220,000
290,000
260,000
300,000
vj
Z
.
.
.3.15
:
: x11
u1 + v1 = c1 = 2
: x13
u 1 + v3 = c3 = 5
: x21
u2 + v1 = c1 = 3
: x22
u2 + v2 = c2= 5
u1 = 0 u1 u2 .
119
,:
v1 = 2
v3 = 5
u2 = 1
v2 = 4
ui ,vj ,
) (cij ui vj xij :
c12 u1 v2 = 4 0 4 = 0
c23 u2 v3 = 2 1 5 = 4
,3.16 )(
:
3.16 )(
ui
3
230,000
550,000
2
5
220,000
220,000
5
260,000
260,000
10,000
-4
Z=3,290,000
290,000
300,000
vj
,c23 u2 v3 = 4 < 0 .
.
120
.
) (cij ui vj
,xij ) (cij ui vj
.Z , 3.16
.x23 ,
) (cij ui vj . ,
x23 .
.
)( , .
.
,x23 ,
) x11 ,x13 ,x21 ,x23 .(3.17
3.17 x23 ,
ui
3
230,000
550,000
2
5
220,000
220,000
5
260,000
260,000
10,000
-4
Z=3,290,000
2 3
290,000
300,000
vj
121
, x23
. x23 ) ) ,((2,3
x13 x21 , x11
. ,(.
1 , 1
x11
x13 .- 3.
. 1 1
) (1,1) (2,3 .
) (1,3) .(2,1 3.17
.
) ( . , , )(1,3
) 220,000 < 290,000 ,(3.16
,x23 , . , x13
.
, ) (
.
: ,
, ,
, ,
.
,
) . , ,
(.
,
) . ,
(.
122
.
) ( ,
. 3.17 x23 ,220,000
) 3.18
x23 = 0 , (.
3.18
ui
3
230,000
550,000
230,000
220,000
Z=2,410,000
260,000
220,000
260,000
70,000
300,000
vj
3.18 .3.13
, .
3.19
:
123
ui
230
150
220
540
70
3 7
200
340
Z= 3350
2
10
80
340
280
80
220
vj
. ?
. ,
.
,
.
124
3.19
ui
s1
c1n
c12
c11
s2
c2n
c22
c21
.
.
.
.
.
.
sm
.
.
.
.
.
.
.
.
.
cmn
cm2
cm1
dn
d2
d1
.
.
.
m
=Z
vj
) (1 :
)
.(3.3.1
) (2 :
) (2.1 : ui vj
ui = 0 ,
cij = ui + vj ) (i,j xij
.
(cij = ui + vj) 0
) (i,j xij ,
, . , .2.2
) (2.2 : xij
).(cij = ui + vj
125
) (2.3 :
.
, .
) (2.4 :
. .
) (2.5 .2.1
3.4
3.1
. 330.000 ,
, 780.000 ,
810.000 )
(.
. .
,
. , , ' ,
.
3.2
:
126
230,000
550,000
240,000
200,000
220,000
300,000
300,000
3.3
2,410,000 = 230,000*2 + 70,000*3 + 260,000*5 + 220,000*2
3.5
. ' 16 , 12 ,
4 . " ".
. A 10 9 ,
. "
".
3.6
:
3
x2 j = 550, 000
j =1
3.7
:
n
cij xij
Z = min
)(1
i =1 j =1
127
subject to:
i = 1, 2, , m
xij = S I
)(2
j =1
j = 1, 2, , n
xij = d j
)(3
i =1
j = 1, 2, , n
; i = 1, m
xij 0
)(4
: ) (1 ,
. ,
cijxij xij i ) j
(.
) (3) ,(2) (4 :
) (2 : (i = 1,2,,m) i si .
.xi1 + xi2 + + xin :
" " , ) 2 ( , , 550,000
, :
x13 + x23 = 220,000
) (4 .
3.8
" " (2 + 3) 5.
+ .
128
3.9
)( , )(,
, ,
.
, " " 3
) (780,000
:
d3 = 780,000 (d1+ d2) = 780,000 (300,000 + 260,000) = 220,000
, ,
, , ,
.
3.10
.
2
3
1
151,000
260,000
139,000
5
230,000
550,000
69,000
220,000
161,000
260,000
300,000
.
.
.
129
. 1
.
, 2
.
3.11
z 0 : .z > 0
z 0 "" , ,
, 0
. ,z > 0 , ""
.
3.12
.
. ,
.
,0 0 .1
. : x11 x22 ,
x12 x21 . :
34
28
44
1
33
20
30
35
1
18
.Z = 71
, .
130
: x11 x22
, x12 ,x21 . :
2
30
8
34
2 30
50
10
28
44
1 70
18
) (.
.Z = 68 :
) 3 (.
3.13
) " "
.(230,000 + 550,000 = 300,000 + 260,000 + 220,000 = 780,000
3.14
"" ) ( . ,
x11 .
,230 .220 1
.1 1 10.
220 .x11 1 ,
1 ; 1 .10 :
131
220
230 10
150
2
540
340
280
80
220
) ,(1
.x12 )( 10 .80
,1 .10
, 1 , 2
.70 :
230 10
10
1
220
150
540
340
280
80
220
70
.x22 150
132
230 10
10
150 80
220
70
540
280
340
80
70
220
.x23 = 80 :
4
230 10
80
150 80
10
220
70
540
340
280
80
200
70
220
,x33 = 200 :
230 10
150 80
80
200
540 340
340
280
200
10
220
70
80
70
3
220
133
. 3
.340 4
,x34 = 340 .
80
340
10
220
70
200
. :
x11 = 220, x12 = 10, x22 = 70, x23 = 80, x33 = 200, x34 = 340
3.15
:
3
230
80
200
3
280
134
10
220
.x11 = 220 ) 1
.(1
10 ,1
. x12 : 1 10 ,2
, ,x12 = 10 .
. x22 ,2 ,0
80 ,2 ,x22 = 0 .2
, , :
10
3
230
10
220
80
80
200
200
280
200
10
220
) (.
, ,
) ( . .
,
, m + n 1 .
, ,0 .
3.16
O(m + n) :
135
3.17
. . 3
m+n1=2+21=3
. :
x11 = 120 , x12 = 80 , x21= 100
. 5*120 + 2*80 + 2*100 = 960 :
3.18
2
200
100
80
220
, , , :
x11 = 120 , x12 = 80 , x21= 100
:
5 * 120 + 2 * 80 + 4*100 = 1,160
,200 )" 200
( .2
136
3.19
, ui vj
.
:
u1 + v1 = 5 : x11
u1 = 0
v1 = 5
u1 + v2 = 2 : x12
u1 = 0
v2 = 2
u2 + v2 = 3 : x22
v2 = 2
u2 = 1
u2 + v3 = 5 : x23
u2 = 1
v3 = 4
u3 + v3 = 3 : x33
v3 = 4
u3 = 1
u3 + v4 = 3 : x34
u3 = 1
v4 = 4
) u1 = 0 ,(2
, .
ui ,vj ,
) (cij ui vj xij ) ,
( . , ,
.
137
ui
230
150
1
540
3
2
4
2
2
5
80
220
10
3
2
2
-4
70
2
3
200
340
Z= 3350
340
4
4
3
280
4
80
2
220
5
vj
,
) (cij ui vj . :
c14 u1 v4 = 2
c21 u2 v1 = 4
c24 u2 v4 = 2
. ,
.
) (cij ui vj
,xij ) (cij ui vj
,Z
138
) (cij ui vj , .x21
)( , .
.
,x21 ,
. :
,
:x21
ui
230
150
-1
540
2
4
5
220
10
-2
3
5
80
Z= 3350
-4
70
-2
3
3
200
340
340
4
4
3
280
4
80
2
220
vj
.x21 = 1 ) .(2,1 ,
2 ,150 1
.x22 ).(2,2
139
, 80 2 ,
1 ,x12 . 1 1
,x11 ,- 1.
) (1,2) (2,1 .
) (1,1) .(2,2
+ .
) ( . , ,
)) (2,2 ,(70 < 220 ,
,x21 . , x22 .
)
( ,
. ,
x22 ,70
, )
x22 , , ,
(.
140
:
ui
230
150
5
150
80
3
80
2
70
2
3
540
200
340
340
m
280
220
80
Z= 2620
vj
vj ui) (cij ui vj )
(.
:
u1 + v1 = 5 : x11
u1 = 0
v1 = 5
u1 + v2 = 2 : x12
u1 = 0
v2 = 2
u2 + v1 = 2 : x21
v1 = 5
u2 = 3
u2 + v3 = 5 : x23
u2 = 3
v3 = 8
u3 + v3 = 3 : x33
v3 = 8
u3 = 5
u3 + v4 = 3 : x34
u3 = 5
v4 = 8
141
vj ui) (cij ui vj :
vj ui) (cij ui vj
ui
230
3
150
5
540
-6
2
4
2
-4
3
1
2
150
80
5
80
70
-2
2
340
200
340
Z=2620
280
8
7
7
80
2
m
220
vj
) (cij ui vj.
x14
.(cij ui vj) = 6
,x23
.
:
, vj ui
) (cij ui vj
142
ui
230
-3
150
540
2
4
2
80
2
70
80
5
3
6
3
150
2
3
280
260
340
920
2
Z=2590
4
1
280
2
7
1
80
2
m
220
vj
vj ui) (cij ui vj .
:
u1 + v1 = 5 : x11
u1 = 0
v1 = 5
u1 + v2 = 2 : x12
u1 = 0
v2 = 2
u1 + v4 = 2 : x14
u1 = 0
v4 = 2
u2 + v1 = 2 : x21
u1 = 5
v2 = 3
u3 + v4 = 3 : x34
v4 = 2
u3 = 1
u3 + v3 = 3 : x33
u3 = 1
v3 = 2
) (cij ui vj ,
. :
x34 = 260
x11 = 70, x12 = 80, x14 = 80, x21 = 150, x33 =280,
143
Z :
70 * 5 + 80 * 2 + 80 * 2 + 150 * 2 + 280 * 3 + 260 * 3 = 2590
2590".
3.5
3.20
" " ,
) A ,(B ) (.
450
12
10
13
B
300
400
350
. .
.
' .
,
.
' , .
3.21
" " :
c13 = 1
.c23 = 4
.
144
3.22
" :
".
3.23
:
)(
12
14
.
:
)(
10
11
:
145
?
3.24
. ,
) 10 ( )12
( , 6 , '
9 7.
:
'
100
250
50
125
200
25
3.25
. ,
. 8 ,6 4
. 4 6 ,1 ,2
2 .3 3 4
. i j
:
146
1
2
3 ,4
.
.
.
' ,
3.26
. )( , )
"( :
25
40
60
15
20
30
40
25
25
147
: ' 2 ' 4
) : (.
.
?
3.27
:' ,' ,'
' . 10 ' 15 ,
' 20 , ' 25 '.
.
10 15 ,1 30 ,2
5 ,3 4 10 .5
) ( ,
' .5
:
15
13
10
20
16
14
10
26
20
18
14
10
"
?
148
3.28
. " "
: , .
: , ,
.
, .
)
, (:
10
10
11
,
.
,
. ,
, .
. " ".
.
.
149
.4
,
,
. ,
.
4.1
,
.:
: .
: ) , ( ,
, , , .
: , .
: , , , .
: .
:
. .
. .
.
.
,
.
150
, ,
) .(5 , :
4.1
.
) (.
4.2
.
,
.
, .
,
. , :
151
. . , ;
; ,
, .
. . . :
) (;
) ( '.
,
. .
4.2.1
) (graph ) (nodes
) (vertices ) (arcs ).(edges
:
)G = (V, E
G V , )( E
)(.
:
4.2
) G = (V, E
) G = (V, E
}V = {A, B, C, D
})E = {(A, B), (A, C), (B, D), (C, D
152
: ) ( .
) (A, B A.B
) (C, A A.C
4.1
) ( B, D )? ( C,D
4.2
) G = (V, E
V E .
4.3
) G = (V, E :
}V = {A, B, C, D, E, F
})E = {(A, B), (A, C), (B, D), (C, D), (A, F), (B, F), (E, F
, ,
:V = {A, B, C, D} E =
153
4.3
, ) ,(ordered paires
.
, 4.2 ) (A ,B ).(B, A
:
A ,B >.<A, B
, )
( ,
) (.
.
.
: ) (
><
) (directed graph .
.
154
4.4
4.4 :
}V={A,B,C,D
}>E={<A,B>,<A,C>,<B,D>,<D,C
, .
) .G = (V, E
, |V| - .|E| -
a ) ( ) (adjacent b
a ,b b .a
:4.4
B A A .B
C A A C'.
) (indegree .
) (outdegree .
) (degree .
155
:
4.5
, D ,2 2
.
C ,3 ,2 .1
4.2.1
) G = (V, E d ( v ) = 2 E ) d(v
v V
v . ,
, .
,
.
4.6
156
.
) (simple graph -
, ) (.
4.4
.
, .
6 . .3
4 . .3
6 . .1
6 . 4.
4 . 4 , .1,2,3,4
4 . .1,2,3,4
5 . .2,3,3,4,4
4 . .2,2,4,4,4
) (path k a b ) (k + 1
:
n1 n2 n3 n4 n5 ni ni+1 nk nk+1
:
.1
n1 = a .
.2
k i 1 ni +1 ni.
nk+1 = b .
.3
, :4.5
157
4.7
4.7 3 A .D 4
,A, B, C, D ,:
A B
B C
C .D
:
4.8
, ,3 A
.B
) (accessible b ,
a .b
,4.7 , D ,A 3 A
.D
158
) (cycle .
4.9
4.9 B ,B .B C D B :
) (cycle graph ,
).(acycle
4.10 :
4.10
4.11 :
4.11
159
) (simple path .
4.5
? .
.
4.10 A .B
:1
AB
:2
ACDB
:3
ABCDB
:4
ABCDBCDB
, 4 .
) (4 ,
.
) ,
(.
: )( , .
4.6
:
160
:
.
.
.
.
(b, b) .
.
)(e, d, c, b
)(a, d, c, d, e
)(d, c, b, e, d
)(b, c, d, a, b, e, d, c, b
)(b, c, d, e, b, b
)(a, d, c, b, e
4.7
:
. .
. a.e
) ( ) (complete graph
. n .Kn -
:K4
4.12
4
161
4.2.2
) (network .
.
) (weight . .
)( , , ,,
'.
, )( , :
, '.
, .
, .
4.1 .
,
. ) (
, .
4.8
?
4.9
.
,
.
, .
162
. ,
, . 4.1
.
4.1
/
,
)(
4.10
:
.
.
. ) (
?
. A ?D
A?D
4.11
:4.10
163
ADECBA
CADECA
,
?
4.2 4.2.4
.1 :
. .
?
. .
: .d
. d e .
.2 :
164
. .
.
.
.3 ?
) .4( G n ,
.
. ,n = 4 .
. ,n = 5 .
. n :
)n(n 1
2
.5 :
.
.
. 3 , 4.
.1 .
.2 .
.3 ?
. m , n.
.1 .1
165
.2 .
.3 ?
. .
.6 K2 .K3
?
.7 Kn .Km
?
.8 G .
) 4.12(
" "
:
.
" " ,
) (.
" " 8:
" " :
166
. ,
" ".
. " " :
" " ? .
167
4.3
,
.
, ,4.1
. )( .
, ) (
,
.
4.3.1
.
4.3.1
, . ,
.
, , .
:
.
.
.
.
.
)( .
.
.
:
.
168
.
/ .
4.1 , ,
, ) /
(:
:4.1 ) (
)(n
)initialize (n
)(G,x,y
)join (G,x,y
)(G,x,y
)remv (G,x,y
n ) 0
(n 1 .
.n > 0 :
x y
.G
.0 x, y < n : G.
x .y
x y
.G
.0 x, y < n : G .
x .y
?
)(G,x,y
)adjacent (G,x,y
TRUE y
x ,G FALSE.
.0 x, y < n : G.
?)(G,n
)graph_is_empty(G,n
TRUE G
FALSE.
: G.
)(G,x,y,w
)joinw (G,x,y,w
)(G,x,y
)remvw (G,x,y,w
, ,w x
y ,G )
(.
.0 x, y < n : G .
x .y
x y ,G
)( , .
.0 x, y < n : G.
x .y
169
)(n
.
G x, y . .
: .
)(1
):G (n
)(2
,:
) (2.1 ;x, y
) (2.2 ).(G, x, y
)(3
.G
, ,
. ,
.
.
, :
:1 .
:2 .
,1
.
e 4.3.2
" " )/(.
) ,(n
0 ).(n1
, , ,
.
170
4.13
, ?
n n. G
) (
.
, :
:
G 0 1 2
0 0 1 1
1 0 0 0
2 0 1 0
,
.
) 1 (TRUE ) 0 .(FALSE j
) i > ,(<i, j ] G[i][j (TRUE) 1 j
) i > ,(<i, j ] G[i][j .(FALSE) 0
G[0][1] = 1 0 .1 G[1][0] = 0 ,
1 .0
: ,G :
)(i, j
i = j
= ]g[i][j
, :
171
:
G 0 1 2
0 0 1 1
1 1 0 0
2 0 1 0
G[0][2] = G[2][0] = 1 0 .2
G
.
, , 20 ,:
:C
#define n 20
]typedef int adjmat[n][n
;adjmat G
:
CONST
;n = 20
TYPE
; adjmat = ARRAY[1.. n , 1.. n] OF INTEGER
VAR
; G : adjmat
, 0.19
G .
172
,G[i][j]=1 ,I ,j
,0 >.<i, j
) (
) ( , /
.
)(n
} n .n > 0
G .0 x, y < n .
)(1
x 0 n1:
) (1.1 y 0 n1:
)[x,y] 0 (1.1.1
)(2
)(G, x, y
} x y .G
G .0 x, y < n . x { .y
G[x, y] 1
)(G, x, y, w
)(1
} , ,w x y .G
G .0 x, y < n . x .y
{
G[x, y] w
)(2
] [i, j ) ,(i, j
173
)(G, x, y
} x y .G
G .0 x, y < n . x { .y
G[x, y] 0
)(G, x, y
} x y ,G .
w .
G .0 x, y < n . x .y
)(1
]w G[x, y
)(2
G[x, y] 0
)(3
? )(G, x, y
} TRUE y x ,G FALSE.
G.0 x, y < n .
)(1
G[x, y] = 1
?)(G, n
} TRUE G , FALSE.
G.
x, y .
)(1
x 0 n1:
) (1.1 y 0 n1:
) (1.1.1
?) ,(G, x, y
.FALSE
)(2
.TRUE
174
)(1
?
) .(n
. .
: :
:
)(0, 2
)(0, 3
)(2, 1
)(3, 1
)(1, 1
.4 4
, > <a, b (TRUE) 1
) a b (.
) (1, 1 .
, :
175
:
G .n n
,:
)(a, b
G[a][b] = 1 :
.
4.3.3
) (,
. .
) ,(n
0 ).(n1
. ,
, )
(.
, ) (
.n n . .G
.
:
.
.
, .
, :
:
176
2 1:
1 2 ,1 .5
4.14
n )( .
?
, :
:C
#define n 20
typedef struct keshet
{
int adj
;int mishkal
;} arc
]typedef arc arcs[n][n
;arcs G
177
CONST
;n = 20
TYPE
Keshet = RECORD
adj ,
mishkal : INTEGER
; END
; arcs = ARRAY[1.. n , 1.. n] Keshet
VAR
; G : arcs
, 0 .19
,G , .
G[i][j].adj ,1 > ,<i, j
.G[i][j].mishkal
?
, .G
, ) .(n
.
: :
178
.4 4
, > <a, b, w 1
) (TRUE ) a b (.
, :
:
G , G[i][j].adj
.0
:
)( ).(a , b, w
; G [a][b] . mishkal = w
; G [a][b] . adj = 1
*/
179
,
*/
)joinw (G , x , y , w
.
e 4.3.4
,
) ( , .
) ,(n
0).(n1
, , .
, , .n
:
:
180
- . )(
. - )/
(.
.
, x ,
, ) (x.
, , ,0 :
,2 .4
0 - 0 .
) ( 0 :
4.15
?
, 20 :
, 0.19 -
- ) ,(G ,20 . , x
) x(
x.
181
, next :.info
P ) ( > ,<x ,y )) next (P
(P next C x
) ( ,)) info (P (P info C .y
)) mishkal (P (P mishkal C >.<x ,y
, 20 :
: C
#define n 20
typedef struct kodkod
{
; int info
; int mishkal
; struct node *next
; } list_node , *list_ptr
; ]list_ptr G [n
:
CONST
;n = 20
TYPE
; NODE_PTR ^ NODE
Kodkod = RECORD
info ,
;mishkal : INTEGER
node
NODE_PTR
; END
; List_ptr = ARRAY[1.. n] Kodkod
VAR
; G : List_ptr
?
, ) .(n
.
182
: :
,n
. > ,<a, b, w
> <a, b .a
:
:
) G ,(n ] G[i . NULL
,:
183
)( )(a , b , w
joinw (G, x, y, w) :
.
4.3.4-4.3.2 4.3.5
4.16
).G = (V, E
. ?G
.
4.17
):G = (V, E
. .
. .
184
4.18
. ):G = (V, E
.1
G .
.2
.
.3
?G
4.
.1
G .
.2
.
.3
?G
4.19
G .
. G , ?
.
.
G , ?
G
O(max(|V|, |E|)) = O(|V| + |E|) :
4.20
G ?
.
185
4.21
) G = (V, E .
. , )| ,O(|E| + |V
.
.
.
' .
.
4.22
: ) (transpose A AT :
A .AT
A .AT
A ,AT.
: :
,G .A AT = A
? .
.
,G .A = A
.
186
AT
4.23
) .G(V, E G ,GT = (V, ET):
ET E .
, ,(u, v)E .(u, v)ET
, G :
GT :
. ,
.1 .GT
.2 ?1
.
,
.1 .GT
.2 ?1
4.24
.K5 ,A2 A .
.A2
187
4.25
:
' A" A .
?
4.26
, )
a .(b
?
4.4
) G = (V, E . )
(.
.1
?
:
188
1 .TRUE
0 .FALSE
,A[a, b] = 1 ) (1 a.b
,A[a, c] = 1 ) (1 b.c
.A[a, b] and A[b, c] :
(TRUE) 1 ] A[b, c (TRUE) 1 ] A[a, b .(TRUE) 1
, a b b.c
1
a
b b
c
, ] A[a, b] and A[b, c (TRUE) 1 2
a c .b
, ]A[x, y] and A[y, z
(TRUE) 1 2 x z
.y
:
)](A[a, b] and A[b, e]) OR (A[a, c] and A[c, e]) OR (A[a, d] and A[d, e
(1 and 1) OR (0 and 1) OR (1 and 0) = 1
:
2 a ,e .b
189
2 a ,e .c
2 a ,e .d
(TRUE) 1 2 a e
b c .d
, (TRUE) 1 2 a
e .
,A , a
,e ) (.
e
a b c
(0 1 0 1 0) 0 a
1 b
1 c
0 d
0 e
) ,(FALSE = 0 ,TRUE = 1
AND ,OR
a e ,(TRUE) 1
2 a e .
.
, A :
190
, ,G A2 ,A
2 .
:
b] = 1
,A2[a,
2 a,c
,A2[a, e] = 1 2 a,e
,A2[a, d] = 0 2 ad
.
, a d ) 1 A ] ,(A[a, d
) 2 A2 ].(A2[a, d
, a .c
) 1 ,(A[a, c] = 0 ) 2 .(A2[a, c] = 1
:
A2 ,2
. , ] A2[i, j (TRUE) 1
2 i j.
, ,A A2 ) a(
A2 ) d( ,A
) ( :
) ( 3 a ,d ,a
3 a ,d ,b
3 a ,d ,c
3 a ,d ,d
3 a ,d e
,(TRUE) 1 3 a
d a b c d .e
191
A2 ,A.
, A2 A:
:
A3 3
.
, ]j
A3[i,
(TRUE) 1 )
( 3 i j.
Am = Am1 A
, ,m
(Am1) m 1 ).(A
:
:
A
192
A4
A5
:
:
2 ,
.
A[i, j] = 1 1 i .j A2[i, j] = 1 ,
2 i .j
A[i, j] + A2[i, j] = 1 1 ,2
.2
193
, 3
, :
A3 = A + A2 + A3
, 3 1 2
3.
: 1 2 .3 ,
.A3[i, j] = 1
:
) G = (V, E n) |V| = n ( .
m i j ,m > n
i j
.n
:
|V| = n ,G , i j ,m ,m n
u .
, i .u , u
,u u j :
u ,u i.j
i ,j
.
, i j .n
194
:
,
,An:
An = A + A2 + + An
:
, :
, ,C A
).(A3
, kefel a, b
.c
, ,chibur a, b
.c
, ,Hazev b .a
a .b
, ,P .An
.A
195
0
1 :
Mat
temp
A
Mat temp*A
A2
P P + Mat
A + A2
Temp Mat
A2
2:
Mat temp*A
A3
3
P P + Mat
Temp Mat
Ai
i =1
A3
3 :
Mat temp*A
2
A4
P P + Mat
Temp Mat
Ai
i =1
A4
n1:
n1
Mat temp*A
An
P P + Mat
An
, 2 P
Ai
i =1
Ai
3 P
i =1
j +1
P Ai
i =1
, Ai n1.
i =1
! k:
temp k + 1.
196
Ai
i =1
Temp Mat
j
Mat k + 1.
P k + 1 .
,Maslul A An
:P
)void maslul (matrix A , matrix P
{
; matrix temp, Mat
A */
*/
.
n , n n = n2.
hazev ,
.O(n2) :
kefel , .O(n3) :
chibur , :
).O(n2
)) temp A (Hazev (
)O(n2
)) P A (Hazev (
)O(n2
for
)O(n
kefel
)O(n2
197
chibur
)O(n2
Hazev
)O(n2
:
= ])O(n2) + O(n2) + O(n)[O(n3) + O(n2) + O(n2
4.4
4.27
:
:
. .
.
.
4.28
:
] PK[i][j ) (TRUE i j
.K
. i j ] PK[i][j ,TRUE ] PK+1[i][j
?TRUE .
198
. i j ] PK[i][j ,FALSE
i j .K
i j ,K + 1 i
) (K + 1) (K + 1 ,j
,K ]?PK+1[i][j
. ] Po[i][j ?G
. ) O([V]3 .
. / ,
.O([V]3) :
4.29
N . .
.1
.
:
. "" . ,
"".
. ' , X
:
,X .
:
N )(N < 300
i, j
i .j
, :
5
)(1, 2
)(2, 3
199
)(3, 4
)(4, 5
)(5, 1
)(1, 1
"".
, :
3
)(1, 2
)(1, 1
"".
4.30
.
:
.:
1 2,3
2 ,4
3 ,5
4 5,6
5 .7
.
.
.
G , , .
200
.
. G , G
? .
. ?
. ?
. 1 ,
2 3
.
. ?
. ?
. ?
. ?
. ,
.
. ?
. .
.1 ? .
.2
?
.3 ?
.4 ?
.5 ,
.
. , , ?
.
. , , G
?
. ,
.
201
, /
.
4.31
G A N G" "
,N ,i, j ,A G ).(i, j
: :G
" " .G
G ,M M(i, j) = 1
i j M(i, j) = 0 , A
.
202
. ,G G " "
.3 '.
4.32
L .,
:
203
. :
,
) .(A
.I . ?
.
.II ?
.
4.33
) G = (V, E E .
' (V' V), V " " ,
"" ' .V , ) (a, b ,E a b
'.V
) ''' V" (.
:
204
,3 ) (1,2 ,2 .
' V ):G = (V, E
.1 '.V
.2 G ;R
.3 R ,.
.4 ,R '.V
) , (.
.5 R ,4 ;
.6 .3
. ,
. ' V .
: 1
:2
205
:3
" " ,
. ?
.
4.34
.
, .
, .
: 1 ,6 1.3
206
P , , .C
,GP .P
A B A
. B
. GP
?P .
. GP P
) , (.
. GP
?
. GP P
. n
)(.
207
4.5
4.1
) (B, D B.D
) (C, D C.D
4.2
}V={1, 2, 3, 4, 5, 6, 7
})E={(1,2),(1,4),(1,6),(2,3),(2,4),(2,5),(2,6),(3,4),(3,5),(5,6),(5,7),(6,7
4.3
4.5
.
4.8
,
. .
208
4.9
:
.
.
4.10
. :
ACED
ABCED
:
ADEC
BADE
. 4.5 :
ABCED
. A D :
AD
ACED
ABCED
A D ,
. A D
.D
4.11
A D E C B A .
C A D E C A , C A
.
209
4.12
.n n .g
) (
.
4.13
) ( .n n
4.15
, n n2 ,
. ,
. ,
) (
. , .
210
.5
.
, .
)( ,
) (.
5.1
5.1
.
, ,
. . ,
. .
, A B
A B A B ,
A B .
5.1 .
)( .
.
211
5.1
a . f
: ) ( a
. f
5.2
5.2 . ,
, .
5.2
212
, .
a .i
, a
i .
: .
, . ,
. , ,
, , ,
, , ' . ,
. .
5.3
5.3 a f
. , ,
.
5.3
a f
a . f
f a . f
213
5.2
) G = (V, E W : E R
, .
)( . ,
"" .
:
1 5.2.1
. ).(source
) : (
.
A . :
. 0
A B ,1 :
1
. A
B
A C ,2 :
1
1
. A
B
C
5.1
:
214
A E
A D
A F
:
F
2 5.2.2
).(destination
.
F .
:
D F ,1 :
1
, E
F
E F ,2 :
1
1
. E
D
F
5.2
:
C F
B F
A F
:
F
)(v
)(v
215
3 5.2.3
.
A .
:
F
)(v
A
) (v
, B . :
F
)(v
B
) (v
) ! (
, C . :
)(v
C
) (v
) ! (
216
5.3
. D . :
E
)(v
D
) (v
.
F
E . :
E
)(v
E
) (v
.
F
F . :
E
)(v
F
) (v
.
,
. :
4
1
3
1
0
0
1
3
2
E
F
1 . 3
217
4 5.2.4
.
.3
5.3
5.3.1
:
) (connected complete
.
.
5.5
:
5.5
} {a, b, c, d, e
. , 5.6 .
218
5.6
:
5.6
:
} ,{A, B, C, D
. E, F, G
A E F .G
,{E, F} : ,{G} :
, ,
,
.
: .
) (connected graph
, .
,
.
219
.
) 5.3.1.2 (
:
.
G ) (.
G n1.
G n1.
5.4
.
5.5
.
220
.
5.6
: v G " " ) articulation
(point v , G
.
. .
. .
. v G
x w G : wx
.v
5.3.2
) .G = (V, E ,
, ,
, , .
.
, ,
221
) ( .
) ( ) ( ,
. ,
. ,
, , ,
, , .
:
) G = (V, E 0 ,n1 ,|V| = n
,W : E R ,
Eij ) ( i, j i. j
: ) p = (V0, V1, V2, , Vk
) ,(Vi1, Vi . 1 < I < k ,
k
) w( p) = w(Vi 1 ,Vi
i =1
:
P u v
) min w( p
p
L (u , v ) =
: u v p
).w(p) = L(u, v
, , :
222
1
.
2
.
3
.
4
.
1 3 . 2 4
.1
: :
A D .3
3:
223
, A .D
: .
: :
)p = (V0, V1, , Vi, Vi+1, , Vk
k , 0 i < k1 Vi + 1
Vi . ) ,(Vi, Vi+1 w(Vi, Vi+1) ,
, .
5.7
?
.
,0 , 2 3 .
1 ,3
.0
:
1232323
.
, :
224
, 2 3
.
)( 1 . 2
1 2 .2
:
1 2 .1
:
1 2 ) ,(4
2 ,2 1 2 ,
, , .(
, , ,
1 .2
:
- .
225
.
, :
V0V1ViViVk
V0V1..Vi..Vk
V0V1..Vi..Vk .
:
,
, .
:
,
:
A C ,4
4
A
C
A B ,6
2
A
C
B
A E ,5
1
A
C
E
226
A D ,7
1
A
C
B
D
, A
:D
:
,C ) 1 ).((AC
,C ) 1 ).((CB
, ,B
A ,D : ) (C,B
).(B,D
: u , A ,D
u
,u A ) D
(.
, : ):(i, j
)(i, j
1
X ij =
0
) (i, j
227
X ij
,i
X ki
,i
.
, ,i ,
,:
X ij = X ki
k
X ij X ki = 0
k
,
,
. :
X ij X ki = 1
k
,
, .
:
X ij X ki = 1
k
, :
228
.
min Cij X ij
j
:
|V| = n ,n1 0
, n1 , :
i=0
i = 2n
i = n1
=0
1
X ij X kj
k
} X ij {0,1 )(i, j
.
.
5.4
)( ,
. ).(Dijkstra
) G = (V, E ,W : E R+ ,
.
:
. A:
)(i, j
i = j
Eij
aij = 0
A i .j
229
) ,(i, j i j
).(i, j
i ,0
.
.
) ,(i, j i ,j
i j
, .
, :
:
5
10
10
.0
:
230
) P ,permanent ( , ,
.
,temporaries) T (
.
,
,0 . ,
0 , 0 P
.T
u
0 u ]) d[u ,distance ,(.
, ,u , d[u] :
d[0] 0 .0
, ) (
.
, ) Pa ,parent ,( , u
] Pa[u .u
,u , _ ]Pa[u
d[0] 0
j , j = 1n1
:
, d [ j ] a0 j a0 j
0 j
p[0] nil
, j = 1n1 )(0, j
Pa[j] 0
231
'Pa[j]
] d[j 0
.1 j n1 , j
, j
, .
,
:
, V :
,(Pa[v]) v
0 .(d[v] ) v
:
:
}T = {1,2,3,4,5
232
}P = {0
, : 0
, ?
.
, "" ,T
. .K
,K = 2 d[2] = 2] d[2 ] d[v
.v T
, K ,P ,T
.
, :
}P = {0,2
}T = {1,3,4,5
,K = 2 , 0 , j
.j T :
:
0~~~~~1
6
0
2
1
0 ,1 ,K = 2 ,(6 + 2 =) 8
5 0 1
.K = 2 ,8 > 5 0 ,1
.2
0~~~~~>3
2
9
0~~~~~> 2 > 3
233
2 ,11 .
0 ~~~> 3 , ;11 3
.2
0~~~~~>4
2
1
0~~~~~> 2 > 4
2 .3 .
0 4 3 4 .2
0~~~~~>5
0
2 5
2 ,5 0 ,5
,2
0 .5
0 , j:
, j T :
}D = {0,2
}T = {1,3,4,5
) T (.
234
,K = 4 : d[4] = 3
] d[j . j T
T = {1,3,5} :
}.P = {0,2,4
0 , j , j T
.K = 4
: 0~~~~~~~~~>1 .
:0~~~~~~~~>3 , 3 .4
:0~~~~~~~>5 , 5 .4
, :
235
}T = {1,3,5
}P = {0,2,4
.
,K = 1 : d[1] = 5 ]d[j
. j T
:
}P = {0,1,2,4
}T = {3,5
0 , j , j T : .K = 1
236
:0~~~~~~~>3 , 3 .1
:0~~~~~~~>5 .
:
}T = {3,5
}P = {0,1,2,4
.
,K = 3 : d[3] = 6 ] d[6 .8
:
}P = {0,1,2,3,4
}T = {5
0 ~~~~~~~> 5 .K= 3
237
0 5 ,3 5
.3
:
}P = {0,1,2,3,4} T = {5
.
) K = 6!(
:
) ( T =
}P = {1,2,3,4,5,6
T , .
, :
238
0
. , . , ,
0 ~~~~~~~> 5 ) ( : ,5 5
,3 3 ,1 1 ,0 0 ,
. :
0135
:
: 0
0.1
}T = {1,2,.,n1
0.2
d[0] 0
0.3
, ,
}P = {0
, j = 1,..,n1:
]d[j] a[0, j
0.4
.
0.5
;Pa[0] nil
0.6
j = 1, ., n1:
)(0, j
Pa [j] '0' :
Pa[j] '-' :
0.7
.
239
: 1
1.1
k
"" T ] d[k,
: d[k] = min{d[j]} j T
1.2
k ,p }p p + {k
1.3
k , T }T T {k
1.4
T) T = 0 ( , !
.2
2
2.1
j T:
d [j] = min{d[j], d[k] + a[k][j]} 2.1.1
2.1.2 ]d[k] + a[k][j] < d[j
:
2.2
.
2.3
.1
Pa [j] k
! .
. . :
) (C,D ) .(7 A D
:
.8
240
, )!(:
)
(C, D
,D
).G = (V, E
| |V
.G
: 0
0.1 )|O(|V
0.2 )|O(|1
0.3 )|O(|V
0.5 )|O(|1
0.6 )|O(|V
, 0 )|.O(|V
241
1
1.1 T .
, )|.O(|V
1.2 P . ).O(1
1.3 1.1 1.1 .K ,
).O(1
1 | |V
, 1 .O|V|2
2
. ,
G ,
| ,|E G ,
| .2|E
,
)| .O(|E
, P
,
. ,
2 )| O(|E
.
: :
)O|V|2 + |E| = O(|V|2
: , )| O(|E|log|V T
"
) (heap" .
:
. )|.O(|V
. )|.O(log)|V
. 2.1 )|.O(log)|V
1
| |V , )| .O(log)|V 1 )|.O(|V|log)|V
242
2
P . ,
. , )| .O(|E 2
)| O(|E , )| .O(log)|V , 2 )|.O(|E|log)|V
: :
)|O(|E|log|V|) + |V|log|V|) = O((E| + |V|)log|V
| ,|E| |V .O(|E|)|log|V|) :
5.4 5.4.1
5.8
:
.1
. .
. .
5.9
:
243
.
. ?
,,,,,,
,,,,,,
,,,,,,
5.10
:
: + .
) (.
)E(0
)D(1
)C(1
)E(0
)B(2
)F(1
)C(2
)B(6
)C(1
)D(3
.A
244
3
]d[F
]d[E
]d[C
]d[D
]d[B
]d[A
'
)(u
1
1
2
3
4
5
6
5.11
.
. .
. .
5.12
) ,G = (V, E V , E
.
R+
W : E )( .G
:
245
. A
. .
. G X . Y )X Y
.(Y V , , ,
X ,Y
, .
: .
5.13
,G(V, E) G V E
.
W : E R+ )( .G
:
. A H
.
, .
.A C F H :
Z, Y, X . ).(Z Y, Y V, X V
246
, ,
TRUE X Y ;Z ,
.FALSE
5.14
G ) .G = (V, E W : E R+
)( .G
:
. X Y
. , ,
.
S . ).(S V
P S :a
) W(P )
.(P
) L(P ) .(P
, , (a V) a
.W(P) + L(P) :
: ;G' = (V', E') ,G' , ) W(P) + L(P
' ,G ' V '.E
247
5.15
) .G = (V, E W : E R+ ,
) ,W(e 1 W(e) 50 e.
s V .
. | |V .
| |E .
, ,
)| ,O(|V| + |E } v V {s
s.v
. '
.O(|V| + |E|) ,
5.16
) .G = (V, E W : E R+ )(
.G
. , e
s .t
. '.
5.17
) .G = (V, E W : E R+ )(
.G . s t
.G
. , st
) (
.
. '.
248
5.18
.
. .s
. ,
s .v V
. ' .
. ,
, s .v V
5.19
,G ) V = {1, 2, ..., n} :
1.(|V| = n
) R(v v
r(v) .G ) w R(v .
, ) r(v .v V
5.20
) , , ,
, , , ( . .
24 .
.
X . 12
, 12 .
,
.
5.21
.
.
.
249
N*N . .
.
) (
.
. :
, , .
,
.
5.22
) G = (V, E .W : E R+
S T ,T V ,T V:.T S =
,
S .T ,
S .T
5.5
(BFS)
. ,
.
. : ) BFS
250
) .G = (V, E
,
, .S
.
:
:
1
,S .1
2
,S
.2
: ,i ,i 1
,S .i
.
.
.
,K
)
( .K + 1
:
.A
A ,0 A .0
A
. ,
) (A, B B , ) (A, C B
.
251
. :
C B
,1
,A
.1
1
.
, ) (B, D ,B ,1 ,D
. , ) (B, C ,B ,1 ,C
. , ) ,(B, D :
252
D 2 A
2 :
,
2
. , 2
,D ) (B, D
) B !( .
.
,
,
) (
.
:
.1 . ,
,used ] used[v v . ,
) ( , v ] used[v .FALSE
, . ,P
] P[v v .
.2 P ] P[v v .
, u S .u,
dist ] dist[u S .u
,
) ,(Q Queue . ,
,:
) ,Insert(Q, w w .Q
) ,Delete(Q, v Q .v
253
) ,Is_empty(Q TRUE
Q ,
.FALSE
) ,Head(Q .Q
:
1
,v V ), (S:
) dist[v] 1.1
S
v (
) P[v] NIL 1.2
v
(
used[v] FALSE 1.3
) 0 dist[s] 2.1 S S (0
) P[S] NIL 2.2 S (
) used[S] TRUE 2.3
(S
}) Q {S (
Q ,:
v Head(Q) 4.1
254
.
:
1
. :
.S = 1
S
3 .4
] dist[3 ,
1 .3 ,
,v , :
] ,dist[v
S
.v
S
,v .v V
.
S ,v
) P[v] NIL .(P[v] = ,
, .
:
}v V {S
.P[v] =
. } v V {S :
,Used[v] FALSE
)
(.
2
S .0
255
) ( , .P[v] =
,S S ,
.Used[S] TRUE :
3
, ) (Q ,i ,i 0
i.
0 .S .Q {S} :
Q
.0
: Q
)
( , )
(
4
Q
.v
.v ,w v ,
:
.1 );(Used[w] TRUE
.2 S w S v )
);((v, w
.3 v ;w
.4 w .Q
,v Q v
.
) S
( . Q ,
,
S
)(.
:
256
7
1 .7
: FALSE 0 TRUE .1
, USED:
,
:
,
.
S = 1
)(3) (1
.
7
Dist
Used
}Q = {1
) 4 (1
4.1
v1
4.2
v
4) 7 Used
4 .(7 1 ,0 1 4
.1 , 1 4 .1 ,
257
1 7 .1 ,
4 7
1 Used[4] = Used[7] = TRUE
.
:
7
Dist
Used
4 7
,Q } .Q = {1,4,7 1
, ,Q } .Q = {4,7
.4
) 4 (2
4.1
v4
4.2
v
1) 6 Used
4 ,1 4 6 ,1 1 6 .2
6 ,4 , Used[6] = True
.6 , :
7
Dist
Used
, 6 ,Q } .Q = {4,7,6 Q
) 1
4 (7
) 2 .(6
4
, Q .Q = {7,6} :
:
258
,
.
, ,
.
:
)Q = {7,6
.4
) 4 :(3
4.1
.v 7
,7
,
3 .5
1 7 ,1 7 3 ,1
1 3 .2
, 1 5 .2
. 7 ,1
3 5 .2
:
7
dist
used
259
1/1
,
3 5
,Q }.Q = {7,6,3,5
Q
) 1 (7
2
)
(6,3,5
7
, . :
5
,
.4
) 4 (4
v 6 4.1
4.2
,
6
,
.
. 6
,
,Q :
5
,
.4
260
) 4 (5
v 3 4.1
4.2
,3 , .2
1 2 :
1
1
3
2
1 2 .3
2 ,3 ,Used[2] = TRUE :
2 .
) 3 ( ,2 2 .3
:
1/1
dist
used
261
Q
) 2
3 (5
) 3 .(3
3
, . :
2
,
.4
) 4 (6
v 5 4.1
4.2
,
,5
,
.
. 5
,
Q .Q = {2} : ,
.4
) 4 (7
v 5 4.1
4.2
,
2
,
.
. 2
,
,Q .
.4
) 4 (
, :
262
BFS
, :
263
:
)' G' = (V', E T
) .(BFS , |E'| = |V'| - 1 ' G
, , ,5.3.1.2 ' G .
)(BFS
,
G ,
,
| .|E
G , ,
| .2|E
)|.O(|E
1 )| ,O(|V
.
2 )| ,O(|1 .
3 )| ,O(|1 .
4 ) (
)| .O(|1
. , )|.O(|V
v
v ,
v
.
)| ,O(|E
)| .O(|E:
264
O(|V| + |E| ) :
(DFS) 5.6
) .G = (V, E
,
. , ,
. :
,DFS
,v V
,v ) (,
.
,
v ,
, ,
,v
. )(
.S
:
.A ,A ,
.1 , ) ( ,A
.
265
) (A, B ,B . 2
,B . :
, B
.
) ( ,B
. ) (D, B D
. 3 ,D . :
, ,D
. . ,B
.D
.B ) (
B .
266
C ) .(C, B ,C
, .4 :
.C C
, ,C .B
B ,
,B A . A
, .A
A , .
.
,S
,
,DFS
.
, )
(:
267
! .
.A
:
.
:
} ,{E, F, G
E, F, G E
. , .E E
,
:
268
, ,BFS Used ]Used[v
v .
v FALSE ] ,Used[v
.
. , ,P ]P[v
v .
, , ,
)
( . " ,"1
" ,"2 . ,
) C ,(count ] C[v
v .
) (DFS :
i 0 :0
v) v 1 (
:1 v
*) ,Used[v] FALSE
*(
*) ,Used[1] TRUE .(* 1
i i + 1 :2
*) C[v] i .(* v
269
:3
v
, 5
*) :4 u , v
.
(:
4.1
4.2
.2
*) :5
v , ,
*(.
,C[v] = 1 !
*) :6
v v
, ,v *(
] v P[v .3
.
:
6
1 ,6
.
Used:
) (.
270
, v
:
,
v .
.1
:0
)
v 1 (1
Used[1] TRUE :1
Used[1] TRUE
i0
:2
ii+1
C[1] 1
:3 ,v ,1
2,3,4,5
.
:4 , ,
,2,3,4,5
,u = 5
:
4.1
*) P[5] 1 5 (* 1
*) v 5 (* 5
*) Used[5] 1 5 *(
:
271
.2
) (DFS
.
,i = 2 : :
272
,i = 3 ::
v = 6 , ,
v = 6 ,5 v=5 .
, v = 5 , ,
,v = 5 1 .
:
273
v = 4 , ,
,v = 4 ,1 .
:
:
274
DFS 5.6.1
:
} E' = {(P(v), v) | v V and P(v)
: )' G' = (V, E
G T
) : .(DFS
:
,
.DFS
275
:
.1 4 ,u
,v
.
,
) ( . , , DFS
, :
:
.
.2
:
276
.v = 1
5 ,4.7
) DFS ,(T
.
,
.
)DFS(G
*) T = 0 .1 *(
)* *(
i 1 .2
.3 vUsed[v] FALSE :
.4 .
.5
,V v Used[v] = FALSE
: )Search_DFS(v
.6 .
:Search_DFS(v) :
Used[v] TRUE .1
C[v] i .2
i i + 1 .3
.4 w v:
4.1
?Used(w) = FALSE
:
277
4.1.1 ) (v, w T
P[w] v 4.1.2
Search_DFS(w) 4.1.3
.5 .
:
G:
) DFS(G .
)!(:
:
278
.
, ,
.
)(DFS
,
, ) ,G = (V, E )|.O(|E
3 5 DFS )| ,O(|V
).Search_DFS(v
Search_DFS
.v V
) Search_DFS(v
,
) Search_DFS(v )| .O(|E ,
DFS
.O(|V| + |E|) :
:
279
BFS BFS:
DFS , :
280
,
DFS
BFS ,
, .
.
: , .
. ,
, .
)
( ,
.
:
] d[u u .
] f[u
u .
:
, ,u ,u V ] ,d[u
] d[u ] , f[u ].f[u
:
)DFS(G
.1 u V
1.1
color[u] white
1.2
p[u] NULL
) */
*(/
) */
*(/
time 0 .2
) */ *(/
.3 u V :
] color[u
DFS_Visit(u) :
281
)DFS Visit(u
.1 ]color[u
time time + 1 .2
d[u] time .3
.4 v u:
] color[v
:
p[v] u 4.1
DFS_Visit(v) 4.2
.5 ]color[u
time time + 1 .6
f[u] time .7
:
,1 :
u
) . d(u)/f(u
2:
282
,
.
5.6.2
(BFS)
G
) DFS(G ,
) BFS(G, a a .
) BFS(G .
BFS ,Used ]Used[v
v . , count
.
:
count 0 .1
.2 v :
2.1
] Used[v ,FALSE :
2.1.1
] BFS[G .v
2.1.2
count count + 1
:
.1 )|.O(|E| + |V
.2 ,V
, inorder , preorder )|.O(|V
283
5.6.3
)(Strong Connected Component SCC
:1
) ,DFS(G
) (L
.
:2
) G = (V, E
) G = (V, E
T
DFS
3
.y
:
1 )|O(|E|) + |V
2 )|O(|E|) + |V
3 )|O(|E|) + |V
:
.O(|E|) + |V|) :
) (SCC :
1
) DFS(G .a
:
284
) !(
}L = {a, b, c, d, e, f
2
) GT ( . :
3
DFS ,GT , L
. 1
:
DFS
:
285
a d
e
,
,
)(:
}{a, c, b
}{d, e
}{f
.
)"(
:
}C1 = {a, c, b
}C2 = {d, e
}C3 = {f
286
5.7
.
, .
, .
, .
,
.
C1
C2
" 1
C3
C4
" 2
C2,C3
C5
C3
C6
C2
C7
C3,C6
C8
C1,C4
C9
C8
C10
C1
C11
C8,C10
C12
C7
C13
C5,C8
287
, ,Ci
Ci
.Ci
,
)( . , (C3) 1
, ) (C8
: ) (C1 " .(C4) 2
,
. ) (u, v u
.v
:
288
:
,G
, . (Activity On Vertex) AOV
u AOV v
u.v
v AOV u u
.v
) (topological sort
) ,(i, j i j .
, ,
, :
1. C1, C2, C3, C10, C6, C4, C5, C8, C11, C9, C7, C12, C13
2. C1, C10, C3, C2, C4, C8, C9, C11, C5, C5, C13, C7, C12
: ,
. , ,
, u .u u
.u .
,
.
,
,
.
, AOV:
289
.
A B ,
. A A, B
. A , A
, :
B ) ( . .B
B , ,
:
D . D
:
290
C E ,
. C
E.C
C , :
E ) ( . E
. .
, :
ABDCE
: .
,
. .
:
BADEC
.
. ) ,(queue
.
:
.1 ).(Q
.2 ) (Q , :
2.1 .
2.2 , , ,
.
291
2.3 , ,2.2
).(Q
.3 , .
:
.1 ?
.2 ?
.3 ?
:
?
.
, .
?
,
, .
, .
?
indegree ] indegree[j
.j
] indegree[j , j
.Q Q
.
j ,
j ] indegree[k K j.1
, :
)TP_Sort(Graph G
{
292
Queue Q;
//Find indegree of each vertex/
for each v V do
indegree[v] = 0;
for each (u,v) E do
indegree[v]
indegree[v] + 1;
/** /
/**
/
/*Q * /
for each v V do
if indegree[v] = 0 then
Insert(Q,v);
While Q
do
v = Delete(Q);
print v;
for each u Adj[v] do
indegree[u] = indegree[u] - 1;
if indegree[u] = 0 then
Insert (Q,u);
: Q
.Q v Insert(Q, v)
.Q Delete(Q)
:
:
293
Q 0 .
}Q = {0
0.
0
,0 1.2
,
.Q
:
]indegree = [0, 0, 0, 2
}Q = {1, 2
: .
1.
1 3
.1 , ) (1,3 ] indegree[3 .1
:
]indegree = [0, 0, 0, 1
}Q = {2
294
3 Q ) ]indegree[3
(.
3
2.
2 3
.2 , ) (2,3 ] indegree[3.1
:
]indegree = [0, 0, 0, 0
}Q = {3
3 , ] indegree[3 .
3;
3 3
.
:
]indegree = [0, 0, 0, 0
} {Q . .
:
0 1 2 3
: )|.O(|V| + |E
295
:
, ,G , |.|E
) (for )|.O(|V
) (for )|.O(|E
) (for )|.O(|V
) ,O(1
).O(1
) (while
, )|.O(|E
) (for )|.O(|V
, :
))|O(|V| + |E|) = O(max(|V|, |E
:
)TP_Sort (Graph G
296
DFS ,:
) (:
)(1, 2, 3, 4
, ,3 ,4
,2 . 1
5.7 5.7.1
5.23
:A, B, C, D, E, F
A<B;C<B;C<F;A<F;D<E;E<F;C<D
. , :
297
.
X < Y X.Y
.
(1) . ,
?
) (2 ) ,N(10, 10 ,
) (Y > X .A, B, C, , J
) , (.
:
.1 } Shurot ).{ Shurot (10
.2 } Amudot ).{ Amodot (10
.3
)for (i = 0 ; i < n , i ++
)for (j = 0 ; j < n , j ++
;]Shurot[i] += M [i][j
]Amudot[j] += M[i][j
.4
)(1
.5
)(2
.6
)(3
,
.
) (3)(1 , ,
.
. )( ? .
298
5.24
,
. .
indgree
,while . , ,
.
) (:
5.25
:
, .
.
299
5.26
)" .G = (V, E G "
E E1 E2 , :
) G1 = (V, E1) G2 = (V, E2 ) (.
300
: .
. )
( .
.
5.27
) (i, j .i < j
5.28
.
) (i, j .i < j
.
:
) v(k .k
] d[j , j
.j
:
301
1
1.1 , j = 1 n , j
:
a ij
= ][ j
i =1
N = {1, 2, 3, , n} 1.2
m = 1 1.3
2
2.1
2.2
k ,
2.3
v(k) = m
2.4
)(1
2.5
)(2
2.6
N , .
3
3.1
, j ,j N:
3.2
.2
)(3
= ]d[j
.
.
5.29
, .
, . ,
.
. G .5.26
302
. : , ) ,(v1, v2, , vn
) :
(.
. , ?
.
. .
, , , .
) 5.30(
.
? .
) 5.31(
. G ) DFS(G
.
. :
]f[v] < f[u
)(u, v
?
.
. " "
.
5.8
.
.
303
:
. n | ,n = |V i
i .1 i n
) G = (V, E .
| n = |V 1 ,n G
) Eij ):((i, j
)(i, j
i=j
Eij
aij = 0
] d[i][v i .v
] d[i][i ,1 i n ,
i .0
d[i][j] = aij aij i
.j
, :
.1 , i , i = 1, ... n .d[i][i] = 0 :
.2 , i , i = 1, ... n:
2.1 , j j = 1 ... n
: i j .d[i][j] = aij
.3 , i i = 1 .. n
: ).(G, i, d
i .
:
304
.1
1
, :
3
]d[1][j
)!(
.2
2
, :
3
]d[2][j
)!(
.3
3
, :
3
]d[3][j
)!(
:
305
0 2 1
d = 2 0 3
3 1 0
,5.4 ,
, ) .O(|V|2 ,
) ,O(|V|3:
:1 )|O(|V
:2 )O(|V|2
:3 )O(|V|3) = O(|V| |V|2
:
)O(|V|) + O(|V|2) + O(|V|3
: ).O(|V|3
(Floyd-Warshall) -
) G = (V, E . W : E R
, . :
. G ) , (aij :
)(i, j
i=j
306
Eij
aij = 0
. ,
.
. dij : i . j
. , ) dij(m i j
} .{1, 2, , m1
, m .n
dij(1) = aij
dij(1) : i
j ,
1 .n:
) dij(1 i , j
. aij ,
.
, ) ( i
, j .aij
) (i, j , ) dij(1 )
.(aji
|V| = n 1 .n
i : j
. i , j
i j , .
.1 :
), dij(2
i j
2 .n ,
} .{1 ,1 :
i1j
,1 :
ij
dij(1) , .i j
)(1
) d (1 .i 1 j
j1 + d1 j
307
:
)(1
)dij(1) < di(1
1 + d1 j
dij(2) dij(1) :
)(1
)dij(2) di(1
1 + d1 j :
)(1
)dij(2) = min dij(1) , di(1
1 + d1 j
.2 dij(3) :
i , j
3 .n ,
} .{1,2 2 :
}{1
}{1
i ~~~~~> 2 ~~~~~> j
,2 :
}{1
i ~~~~~> j
i ,2 2 j i j
.1
:
)(2
)dij(2) < di(2
2 + d 2 j
dij(3) dij(2) :
)(2
)dij(3) di(2
2 + d 2 j :
308
)(2
)dij(3) = min dij(2) , di(2
2 + d2 j
.3
dij(4) : i j
4 .n ,
} .{1,2,3 3
:
}{1,2
}{1,2
i ~~~~~> 3 ~~~~~> j
3 :
}{1,2
i ~~~~~> 3
i ,3 3 j
}.{1,2
.3
, ,i j
} ,{1 ,i 1 j
} ,{2 ,i 2 j
} ,{1,2 :
i12j
i 2 1 j
) dij(3 .3
.3
309
}{1,2
.1 i ~~~~~> 3 } {1,2 ,:
}{1,2
3 ~~~~~> j } {1,2:
.
i3
{1} . :
1j
i3
{2} . :
2j
i3
12j
i3
21j
i3
{1,2} . :
:
}{1,2
3 ~~~~~> j } {1,2:
. ,
i13
,{1} . :
1j
i13
,{2} . :
2j
i13
12j
i13
21j
i13
,{1,2} . :
:
}{1,2
3 ~~~~~> j } {1,2:
. ,
i23
,{1} . :
1j
i23
,{2} . :
2j
i23
12j
i23
21j
i23
,{1,2} . :
:
310
}{1,2
.4 i ~~~~~> 3 } {1,2 }{1,2
:1
i 3 :i 1 2 3
}{1,2
3 ~~~~~> j } {1,2:
. ,
i123
,{1} . :
1j
i123
,{2} . :
2j
i123
12j
i123
21j
i123
,{1,2} . :
:
:2
i 3 :i 2 1 3
}{1,2
3 ~~~~~> j } {1,2:
. ,
3j
i213
,{1} . :
31j
i213
,{2} . :
32j
i213
312j
i213
321j
i213
,{1,2} . :
:
, ,3
:
+ d3(3)j
)di(3
3
) di(3 i ~~~~~> 3 3
3
}.{1,2
d3(3)j
3 ~~~~~> j 3
}.{1,2
311
:
)(3
)dij(3) < di(3
3 + d3 j
dij(4) dij(3) :
)(3
)dij(4) di(3
,3 + d3 j :
)(3
)dij(4) = min dij(3) , di(3
3 + d3 j
.
m
i j .m :
)dij( m +1
i , j
}.{1,2,...,m
) ,G = (V, E .|V| = n
1 ) O(n 2 .
2 ) O(n3 3 .
4 ) , O(n 2 .
: ) , O(n3 ,
) . O(n 4
:
312
10
1
9
3
:
1 0 10 2
a = 2 1 0 9
3 3 0
a31 = : ).(3,1
: d(1) = a
0 10 2
= 1 0 9
3 0
)(1
:
.1
:
313
:
0 10 2
= 1 0 1
3 0
)(2
! 2 .3
:
.2:
314
:
0 10 2
(3)
d = 1 0 1
2 3 0
! 3 .1
:
.3
:
315
:
0 5 2
(4)
d = 1 0 1
2 3 0
: 1 .2
,d
:
0 5 2
d = 1 0 1
2 3 0
316
:
.1
:
dii( m) < 0 i
1 n m
1 n
) !(
.2 ,
:
)dii( n +1
min
}i{1,.., n
5.8 5.8.1
5.30
:
.
.1
.
1
.
5.31
.
.
) (.
.
.
317
5.32
, ,
) (u, v "" ) r(u, v 0 ,1 ) (reliability
) (.
,
.
) ,(s, t
s. t
) :
. ,
(.
5.33
G ) ,G = (V, E V
, E
.
W = E R+ )( .G
:
.
A
.
, .
. G
X . Y
) X V.(Y V
, , ,
X ,Y
.
:
.
318
5.34
G ) ,G(V, E V
, E
.
W = E R+ )( .G
:
.
A H .
, :
.A C F H
.
Z, Y, X ).(Z V, Y V, X V
, , , TRUE
X Y
Z ,
.FALSE
G ) .G = (V, E W = E R+
)( .G
5.35
:
319
X Y .
, , .
5.36
P .G
) W(P ) ,
.(P
) L(P ) , .(P
, ,
) W(P) + L(P S
.
: ;G' = (V', E'), G' , ) W(P) + L(P
' ,G ' V '.E
5.37
) G = (V, E
,E(e) ,
1 W(e) 50
e .
s V .
. | |V
|E| . .
, , )| ,O(|V + |E
} v V {s s.v
.
,
)|.O(|V + |E
320
5.38
) .G = (V, E
R+
W = E )(
.G
.
,
e
s . t
.
'.
5.39
) .G = (V, E W = E R+ )(
.G
.
G
s :.t
.
,
s) t
( .
.
'.
) 5.40(
.
. .s
.
s
.v V
.
' .
.
s .v V
) 5.41(
G
) V = (1,2,,n} :
1.(|V| = n
) R(v
,
V .G
) r(v ) W R(v .
, ) r(v .v V
321
5.42
. G * G ) ,(u, v
G )
( u .v
* G : C
C[u, v] = 1
v u.G
A ,G .C
) BFS
(.
5.45
:
.
1
,
.
.
.
.
.
322
11
5.46
:
. G
s
.
s x s , y
s x s.y
.
)
,
(.
.
)
,
(.
5.9
5.1
A E ,4 :
2
A
B
C
E
A D ,5 :
1
A
B
C
E
D
A F ,6 :
1
A
B
C
E
D
F
5.2
C F ,4 :
1
C
E
D
F
B F ,5 :
323
B
C
E
D
F
A F ,6 :
1
A
B
C
E
D
F
5.3
)(v
D
) (v
.
F
)(v
E
) (v
.
F
)(v
F
) (v
324
325
.6
.
)( .
6.1
) ,G = (V, E V , E
. w : E R ,G
(u, v) E ) .w(u, v ) (u, v
u ,v
,
,.
, : ,
,
.
: ) T = (V, ET
,G ) w( ET ) = w(u, v .
(u ,v )ET
, ET
, T . .
, , T , ,
) ,w(ET .
) (spanning tree G .G
) (minimum spanning tree ,
.
326
:
) (A-F .
w(U, V) , ) .(U, V ) w(U, V
U .V ,
.
:
327
) (a) (b .
) (a ) (b ) (a
,(2+5+1+1+1=) 10 ) (b
.(5+2+1+10+1=) 19
) (a
.
. (a)) .)(b
(.
) ( ,
)
(.
,
. (a) , .
.
.(2+1+1+1+5=) 10
).(a
) (a) (b ) (a ) (c
.
) (a) ,(b) (c ,
. ) (a) (c
)!(.
328
:
) (Kruskal ).(Prim
,
.
6.2
: G .
:
329
: G .
: .
) (:
6.2.1
,T U, V .
6.2.2
) .T = (V, ET )' G' = (V, E } ,E' = ET {e )e = (a, b
, ,ET - .
6.2.3
) .G = (V, E ) T = (V, ET
6.2.4
330
G:
) ,T = (V, ET , ,
G ,
) e = (a, b b a- G- , ,
) ,G' = (V, ET (a, b
,{a, b} ET ) (
).(a, b
: ).G = (V, E
e G G .
.1 :
) (b, d , .
.2 :
.
.3 :
331
.
6.2.5
).G = (V, E
e E e
.G
(Kruskal) 6.3
, .
6.3.1
:1 )(ET
:2 | |V .
:3 , .
:4 ) ,(u, v ,3:
4.1 u ,v
:
4.1.1
332
})ET ET {(u, v
4.1.2
u, v
)).(UNION(u, v
:5 ET .
:
6 , 5 ) .(6.2.3
, :
) (A, B .,
:
333
) ,(A, C
.
, :
)) ,(D, F
.
, :
) ,(B, C
.
) ,(B, C
334
. , ) ,(A, F
, :
) ,(B, D
.
) ,(B, D
. ) ,(B, E
, :
, .
, . ,
) ,(B, E ,12 ) (B, E
.12 .
335
,
.
:
?
, | |V )(
) .G = (V, E ) (A, B
.
k "" , :
, ) (U, V , k 1 .
, u ci v cj , i j ) (U, V
, u ci v ci i , ) (U, V ,
.6.2.4
336
, , .
, .
.
.
:
) MAKE-SET(v .
)FIND(v
) (
.v
)UNION(u, v
u v
.
, ) (:
)SORT(E
,
.
, .
).G = (V, E
).T = (V, ET
)KRUSKAL(G
//PRE-ALGORITHM
)L SORT(E
)for each v V do MAKE-SET(v
ET
//GROW TREE
for each (u, v) L do
)u' FIND(u
)v' FIND(v
if u' v' then
})ET ET {(u, v
337
)'UNION(u', v
)return G(V, ET
) (
:
2+1
T . :
3
, :L
338
)(B, D
)(C, E
)(D, F
)(A, C
)(A, B
)(E, F
)(B, C
)(D, E
)(C, D
10
)(B, E
4
L , 3 ,
.L
)(B, D
B D , B D
,:
)(C, E
C E , C E
,:
339
)(D, F
D F ,
:
, :
, ).(E, F
E F , )(E, F
340
6.3.2
, ),G = (V, E
, .
,
.
:
:
.
.
.
:
.1 } ,{a, b, c, d
}.{e, f, g
.2 .
.3 ) Union(b, g:
341
:
)MAKE_SET(v
)O(1
)FIND(v
)O(1
)SORT(n
)O(n log n
)UNION(x, y
) O(n2!
, .
)O(1
)|O(|V
)|O(|E| log |E
, )|.O(|V|2 |E
" " .
, . ,
4
)| ,O(|E| log |E .O(|E| log |E|) :
342
(greedy) 6.3.3
.
. ,
,
. ,
.
, , ) (a, b
. ,
, .
,
,
.
:
?
, ) (6.3.4.1 ,
, .
6.3.4
, ,
. , .
.
343
6.3.4.1
) G = (V, E:
. |V| 1 .
. m ,:
,m = |V| 1 ) ,T = (V, ET .G
) ,(m < |V| 1 G .
.
(Prim) 6.4
) G = (V, E .r V
, .
.G
, ,
.
ET , .
, .
,Q V Q : , Q
.
,
, Q ,
.
,v Q ] ,K[v
v .
].K[v
, v ] *,P[v v .
] P[v .v
P
] P[v .v
344
6.4.1
)Prim(G, r
G r
.
1
v:
K[v] 1.1
1.2 v .Q
.
2
K[r] 0 2.1
P[r] nil 2.2
3
Q ) ,(T:
3.1 u ,Q v Q
}]) K [u ] = min{K [v Q u ]K[v] K[u
v
v(.
3.2
,v u ,Q:
*) P[v] u *(
3.2.2
) *) K[v] w(u, v *(
.
,u
] K[u . ) ( ] K[v
345
.
:
) EXTRACT_MIN(Q Q u )] (K[u
Q .
)] DECREASE_KEY(Q, v, k[v ].K[v
,
:
)PRIM(G, r
//INIT
for each vertex v do
step 1:
]K[v
P[v] NULL
K[r] 0
step 2:
P[r] NULL
//Priority Queue holds the vertices outside the tree//
PQ V
//GROW TREE
while PQ do
)u EXTRACT_MIN(PQ
)(3.1
)(3.2
)(3.2.1.1
P[v] u
)(3.2.1.2
)]DECREASE_KEY(PQ, v, K[v
)(3.2.1.3
:
] adj[u .u
346
step 3:
, Q:
F
]K[v
, v .
,v
v .
) A A (.
:
.
.A :
K[A] 0
P[A] Nil
,A A .
Q:
347
]K[v
Nil
]P[v
:
.1 Q u ] K[u .
.A
.2 u .Q
, A B C :
]w(A, B) = 5 < = K[B
:
P[B] A
K[B] 5
, :
]w(A, C) = 2 < = K[C
:
P[C] A
K[C] 5
, Q:
F
]K[v
]P[v
:
348
.A
:
.1 Q u ] K[u .
.C
.2 u .Q
,Q B, C, D .C
:
]w(C , B) = 6 5 = K [ B
,
:
]w(C, E) = 1 < = K[E
:
P[E] C
K[E] 1
:
]w(C, D) = 9 < = K[D
:
P[D] C
K[D] 9
349
, Q:
F
]K[v
]P[v
:
.1 Q ,E ] K[E .
.2 ,Q B, D, F .E
:
]w(E, B) = 10 < 5 = K[B
.
:
]w(E, D) = 7 < 9 = K[D
:
P[D] E
K[D] 7
:
]w(E, F) = 5 < = K[F
350
P[F] E
K[F] 5
, Q:
F
]K[v
]P[v
:
.
:
.1 Q ,u ] K[u .
u B .F
.E
.2 D ,Q .F
:
351
:
P[D] F
K[D] 1
, Q:
D
]K[v
]P[v
:
.1 Q ,D ] K[D .
.2 B ,Q .D
:
]w(D, B) = 1 < 5 = K[B
352
P[B] D
K[B] 1
, :
B
]K[v
]P[v
, Q , :
.1 Q .B
.2 , ,B .Q
, ) Q(.
:
353
, , :
:
.1 ) G = (V, E .
.2 :
:
, .
, :
354
:
.3 .
:
:I
:
, .
:II
:
. , ,
.
.4 . , )G = (V, E
.W : E R , .
. ,
. , ,
, . ,
.
355
6 6.5
6.1
,
.1
6.2
. 6.
. ' .1
. ' .
6.3
: G ,2 G
. , .
6.4
: G , .
, .
356
6.5
.
6.6
:
6.7
) e = (a, b ,G
.G
6.8
:
357
6.9
) (Prim .6.8
6.10
) ,G = (V, E .W : E R+
. ,T m1 , m2
. , ,
| |m1 m2.
. .
. ? .
358
6.11
) G = (V, E .
: , .
, 2k + n m,
, k n ,
m .
? .
6.12
) G = (V, E 1 w(e) 100 .e e
. ,
.
. , , G
, .
. ?
6.13
, ),G2 = (V, E2
) G1 = (V, E1 ) ( . ,
,e E1 E2 e .
, ; ,
G1 .G2
).O(|V|2
6.14
) G = (V, E , , W : E {1, 3, 10} :
;e E .
359
. ,
.
. ?
6.15
. ) G = (V, E ,W : E R+
, .
G
,
.
. ?
6.16
. , ) G = (V, E
,W2 : E R W1 : E R G ,
, .
.
. ?
6.17
, , ,
, e .
. , .e
. ?
6.18
) G = (V, E .
360
. ,
.
. ?
6.19
) G = (V, E ,
. .
6.20
) G = (V, E , , .W : E {1, 2, , 9, 10} :
)| O(|E
.G
6.21
).G = (V, E
:1 ) (E ,
.
A) A G :2(
:3 ,1
.A , }.A A {e
. A .
. ?
6.22
) G = (V, E , , :
361
}| .W : E {1, 2, , |V ,
,S E .S ,
.
?
6.23
) G = (V, E .S E
. , ,S
,G , x S
X !S
. ?
6.24
) G = (V, E , ) w : E R :
(.
) H = (U, F ) w(H ,
) W (e
= ) . w( H
eF
6.25
) G = (V, E , , .w : V R : ,
,V .
. , ,T
) d (v) w(v
vV
v .T
. ?
362
)d(v
6.26
) G = (V, E , , ,w : E R
.u, v V P
.P
. , u v .
. ?
6.27
) G = (V, E w : E R .
T , e T ,G
} e' E {e }' {T e} {e }.G {e
: } ,G {e T .
363