đề lại là bao nhiờu bộ xử lý trờn cỏc cột mà s sở hữu: và nú càng ớt thỡ càng tốt. Vỡ vậy, khi chỳng ta khởi tạo với tất cả cỏc cột được sở hữu bởi cỏc bộ xử lý khỏc (chẳng hạn,
Nr(s)=|B(s)|, C(s) và C(s)B(s)), tốt nhất cho s trước tiờn sở hữu tất cả cỏc cột
trong C(s)với hai bộ xử lý, rồi tất cả cỏc cột trong C(s)với ba bộ xử lý,…, cho tới khi
Ns(s)=Nr(s). Trong hầu hết cỏc trường hợp thường khụng đạt được dấu bằng mà chỉ tăng
Input : B(s)
Output: C(s) và biờn dưới địa phương local(s)
C(s) := ;
while not marked
chọn jC(s) với k(j) nhỏ nhất j s C s C( ): ( ) ; if Ns(s)Nr(s)then C(s) := C(s); else local(s) := max(Ns(s), Nr(s)); marked
Ns(s) nhiều nhất cú thể nhưng vẫn thoả món Ns(s) Nr(s). Giỏ trị đạt được theo cỏch này sẽ cho ta giỏ trị max(Ns(s),Nr(s)) và được gọi là local(s). Ta cú thuật toỏn 2.6.
Ta thấy rằng tập cỏc cột C(s) đạt được luụn thoả món hai tớnh chất cơ bản sau: (i) k(c1)k c2 , với mọi c1C(s)và c2C s,
(ii) Nr(s)kC,min 1Ns(s)Nr(s),
với kC,min mincC(s)k(c). Nếu chỳng ta định nghĩa local max0splocal(s)thỡ chỳng ta đạt được cận dưới tiếp theo dưới đõy.
Định lý 2.6 (Cận dưới 3): Với mỗi phõn phối vộc tơ thỡ cận dưới cho giỏ trị
max(Nsend, Nreceive)như sau:
. )
,
max(Nsend Nreceive local (2.17)
Chứng minh:
Để chứng minh điều này chỳng ta sẽ chỉ ra rằng max(Ns(s),Nr(s))local(s) với mọi
s. Trước tiờn chỳng ta cú cỏc định nghĩa:
) ( ),
(s C C s B
B , với C được xõy dựng như trong thuật toỏn 2.6. Ns(s) Ns(C) Nr(s) Nr(C) Ns(C),Nr(C) max N(C)
Sắp xếp cỏc cột của B khụng giảm theo số bộ xử lý trờn cột k(j). Đỏnh số lại cho cỏc cột của B sao cho k(0)k(1)...kB 1.và C 0,1,2,...C 1.. Cho C0,...,B 1 là tập cỏc cột tuỳ ý. Chỳng ta sẽ biến đổi C thành C sao cho khụng tăng N(C). Và chỳng
Chỳng ta sẽ chuyển tập cỏc cột tuỳ ý C thành tập được sắp C0,...,C1 với cựng kớch thước.
Thuật toỏn 2.7 Chuyển tập C thành C0,...,C1
(Chứng minh tại mỗi thời điểm C C j C1. Với i thoả món i C1. Vỡ vậy ) ( ) (i k j k j
i , là vỡ cỏc cột được sắp theo số cỏc bộ xử lý). Vậy Ns(C) Ns(C)và ).
( )
(C Nr C
Nr Như là một kết quả N C N C.
Bõy giờ chỳng ta sắp xếp tập C, chỳng ta cú thể phải bỏ hoặc thờm vào cỏc cột từ/tới Ccho tới khi C C. Cho m C m C,và chỳng ta cú cỏc trường hợp sau:
1. mm:C0,...,m1 và C0,...,m1. Vỡ vậy CC.
2. mm:C0,...,m1 và C0,...,m1,...,m1.Cho CC. Chỳng ta sẽ bỏ đi cỏc cột từ m1 tới m khỏi C Như một kết quả C0,...,m1C. Cho Coldvà
new
C là cỏc tập trước và sau khi bỏ một cột. Nếu mmthỡ Ns Cold Nr Cold . Hơn nữa, NrCnewNr Cold 1 Ns(Cold )và NsCnew Ns Cold . Vỡ vậy
C new Ns Cold N(Cold).
N
3. mm:C0,...,m1,...,m1 và C0,...,m1. Cho CC. Chỳng ta sẽ chuyển C thành C bằng việc thờm vào cỏc cột mtới m-1 vào C . Như là một kết quả C0,...,m1C. Theo cỏch xõy dựng Ns(C) Nr(C). Bởi vỡ mm,
C C: ; for i:= 0 to C 1 if iCthen chọn jCmà j lớn nhất C j i C: \ ;
1 ) ( ) ( )
(Cnew Nr Cnew Nr Cold
Ns và Ns(Cold )Nr(Cold ). Vỡ vậy
Cnew Nr Cold N Cold .
N
Bõy giờ chỳng ta chỉ ra rằng mỗi tập Ccú thể chuyển thành tập C mà khụng làm
tăng N C. Vỡ vậy C là tối ưu, vỡ nếu khụng sẽ phải cú một tập C~ màN C~ N C , cỏi này cũng cú thể được chuyển thành C mà khụng làm tăng N C~ . Điều này là mõu thuẫn.
Như vậy chỳng ta đó chứng minh được rằng cận dưới địa phương là cực tiểu, nếu một tập cỏc cột thoả món điều kiện xỏc định thỡ chi phớ của nú là cực tiểu. Điều kiện này sẽ được duy trỡ trong suốt thuật toỏn dựa trờn cận dưới địa phương, thảo luận ở phần tiếp theo.
Bổ đề 2.1: Nếu Clà tập thoả món (i) và (ii), thỡ N C N ,C với C là tập cỏc cột được
tạo bởi thuật toỏn 2.6, N(C) = max(Ns(C), Nr(C)).
Chứng minh:
Chuyển tập Cthành tập C với C0,1,...,C1sử dụng thuật toỏn 2.7.
Ở đõy k i k j với mọi hoỏn vị cột trong thuật toỏn 2.7. (Vỡ, nếu k i k j , thỡ sẽ cú cột iCvới k(i) thấp hơn một cột trong C, bởi vậy khụng thoả món (i), dẫn tới mõu thuẫn. Trong chứng minh phần trước đó chỉ ra rằng k i k j thỡ khụng thể. Vậy
k i k j . Bởi vỡ k i k j với mỗi hoỏn vị, Ns(C)=Ns(C), Nr(C)=Nr(C), suy ra N(C)=N(C) và C thoả món (i) và (ii).
Bõy giờ chỳng ta cú tập được sắp C, thoả món (i) và (ii), cú ba khả năng: 1. mm: C C N C N C N C .
2. mm: C = {0,…,m - 1} và C0,...,m1,...,m1 . Với C thoả món ,min
( ) C 1 ( ) ( ),
món Ns C Ns C( )kC,min 1 và Nr C Nr C( ) 1. Do đú ,min
( ) ( ) C 1 ( ) ( )
Ns C Ns C k Nr C Nr C C khụng thoả món (ii), dẫn tới mõu thuẫn. 3. mm: C0,...,m1,...,m1và C0,...,m1 . Với C thoả món ( ) ( ) ( 1) 1 Ns C Ns C k m vàNr C( ) Nr C( ) 1. ( ) ( 1) 1 ( ) ( ) ( ) Ns C k m Ns C Nr C Nr C Ns C( )Nr C( )k m( 1) 1. Lưu ý rằng kC,min k m( 1), bởi vỡ cột m 1 C. Do đú, ,min ( ) ( ) C 1
Ns C Nr C k Ckhụng thoả món (ii), dẫn tới mõu thuẫn. Điều này cú nghĩa rằng N C N C N C( ).
Với cỏc ma trận phõn phối tốt cú thể đạt local V /Pa, bởi vỡ cỏc giỏ trị địa phương của cỏc bộ xử lý xem xột cỏc cột chi phớ rẻ (chẳng hạn cỏc cột cú ớt bộ xử lý) để sở hữu chỳng và trỏnh cỏc cột chi phớ đắt hơn. Vỡ vậy cận dưới tốt nhất là:
Định lý 2.7 (Cận dưới 4): Với mỗi phõn phối vộc tơ thỡ cận dưới cho giỏ trị max(Nsend, Nreceive)như sau:
/ , ).
max( )
,
max(Nsend Nreceive V Pa local (2.18) Trong đú V là dung lượng truyền thụng, Pa là số bộ xử lý kớch hoạt khi phõn phối dữ liệu của ma trận.
Đõy là cận tốt để xỏc định cận dưới địa phương tổng quỏt, thuật toỏn 2.8. Sự khỏc nhau giữa cận dưới 3 và cận dưới 4 là cận dưới địa phương tổng quỏt cho phộp cỏc cột đó sở hữu, tức là |C(s)| > 0. Như một kết quả, trước khi phõn phối cỏc cột chưa được sở hữu
Ns(s) > 0 và Nr(s) < |B(s)|. Bõy giờ cận dưới tổng quỏt localgen(s) cho bộ xử lý s đạt được
bằng việc phõn trước tiờn cỏc cột chưa sở hữu c từ C(s) vào C(s) với k(c)=2, rồi k(c)=3,… Nhưng thoả món Ns(s) Nr(s). Thuật toỏn cho cận dưới tổng quỏt như sau: