Tài nguyên cấp phát cho một người dùng là khung hình chữ nhật nhận

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số lớp bài TOÁN tối ưu KHÔNG lồi THUẬT TOÁN và ỨNG DỤNG (Trang 40)

(i2, j2) là đỉnh nếu anh ta được cấp hai nút này

Chú ý rằng, nếu ta cóT + 2biến nhị phân bao gồmy, zvàx1, x2, . . . xT thỏa mãn

T y z( + −1) ≤

T

Xi=1 xi ⇔T y z( + −1)−

T

Xi=1 xi ≤ 0

thì: y = z = 1 sẽ kéo theo x i = 1 với mọi i ∈ {1, . . . , T .} Áp dụng kĩ thuật này, ta thiết lập được ràng buộc tổng quát sau:

(|i1− i 2|+ 1)( j| 1− j 2| + 1)(x i1j1k + xi2j2k −1)− X i I∈ i 1 i2 j J∈X j 1 j 2 xijk ≤ 0, (2.4) trong đó, Ii i = { |i min{i 1, i2} ≤ ≤i max i{ 1, i2}} ,

Jj1j2 = { |j min{j 1, j2} ≤ ≤j max j{ 1, j2}} .

Như vậy, bài toán phân bổ tài nguyên cho mạng OFDMA/TDD được phát biểu như sau: max ( ) :=f x K X k=1 N Xi=1 M

Xj=1 bijkxijk, (RAP)

v.đ.k. K Xk=1 xijk ≤1 ∀ ∈i {1, . . . , M , j} ∈{1, . . . , N ,} (2.5) (|i1− i 2|+ 1)( j| 1− j 2| + 1)(x i1j1k + x i2j2k −1)− X i I∈ i1 i 2 j J∈X j 1j 2 xijk ≤ 0, ∀i1, i2∈ {1, . . . , M ; j} 1, j2∈{1, . . . , N ; (i} 1, j1) = (6 i2, j2)vàk ∈{1, . . . , K ,} (2.6) xijk ∈{0 1, }, i∈ {1, . . . , M , j} ∈{1, . . . , N , k} ∈ {1, . . . , K .}

Ta thấy rằng (RAP) thuộc lớp bài toán quy hoạch tuyến tính với biến 0-1. Trước khi trình bày thuật toán giải bài toán này chúng ta lưu ý rằng số biến nhị phân và số ràng buộc của bài toán sẽ tăng rất nhanh nếu số lượng người dùng, số lượng kênh con và số lượng khe thời gian tăng thêm một chút. Cụ thể, số lượng biến nhị phân của bài toán là

M N K,· · và số lượng ràng buộc là

M N· +K · MN MN( − 1)

2 .

2.1.2 Bài toán tối ưu DC đa diện tương đương với bài toán (RAP)

Chúng tôi áp dụng thuật toán DCA để giải bài toán (RAP). Trước hết, ta cần biểu diễn (RAP) dưới dạng một bài toán tối ưu DC tương đương.

Kí hiệun K M N= · · và

S = {x∈R n |x∈ [0 1], n, xthỏa mãn ràng buộc(2 5) (2 6)}. , . .

Rõ ràng S là một đa diện khác rỗng trong không gian Rn. Tập đỉnh của S được kí hiệu là V S .( ) Khi đó bài toán (RAP) có thể viết gọn lại như sau

Xét hàmp x( ) =

n

Xi=1 pi(xi) =

n

Xi=1 min{xi,1 −x i}.Dễ thấy là hàm lõm và hữu hạnp trên ,S p x( ) ≥0với mọix∈ S, hơn nữa

x∈S ∩ {0 1}, n = {x∈ S p x ≤ }.| ( ) 0 Do đó bài toán (2.7) tương đương với bài toán

α = min cTx x| ∈S, p x( )≤0 . (2.8) Định lí về hàm phạt sau đây cho phép đưa bài toán (2.8) về dạng một bài toán tối ưu DC.

Định lí 2.1. (Xem [45, Định lí 2]) Giả sửS là một đa diện lồi bị chặn khác rỗng,f là một hàm lõm hữu hạn trên và là một hàm lõm không âm trên . Khi đó tồn tạiS p S một số τ0 ≥ 0 sao cho với mọi τ > τ 0 hai bài toán dưới đây có cùng tập nghiệm tối ưu và cùng giá trị tối ưu:

(Pτ) α τ( ) = inf ( ) +{f x τ p x |( ) x∈ S} ( )P α = inf{f x |( ) x∈S, p x ≤ } .( ) 0 (adsbygoogle = window.adsbygoogle || []).push({});

Cụ thể là, nếu tập đỉnh của V S( ) chứa trong{x ∈ S, p x( ) ≤ }0 , thìτ 0 = 0, ngược lại

τ0= min nf x( ) − (0)α

T |x∈ S, p x( ) 0≤ o, trong đó T := min{ ( ) |p x x∈ V S , p x >( ) ( ) 0} > 0.

Theo kết quả của Định lí 2.1, với số đủ lớn (τ τ > τ0), bài toán (2.7) được viết lại dưới dạng tương đương sau

min {cTx τ p x x+ ( ) | ∈ S .} (2.9) Bài toán (2.9) thực chất là một bài toán tối ưu DC dạng tổng quát

min{g x − h x |( ) ( ) x∈ R n}, (2.10) với các thành phần DC

g x( ) = χ S( )x và h x( ) = −c Tx τ−

n

Xi=1 min{xi,1 −xi}. (2.11) Do tính tương đương, thay vì giải bài toán (2.7) ta giải bài toán (2.10). Dễ thấy h x( ) là hàm lồi đa diện nên bài toán (2.10) là bài toán tối ưu DC đa diện.

{xk}và{yk},cụ thể

yk∈ ∂h x( k), xk+1 ∈∂g∗(yk),

trong đó, dưới vi phân∂h x( k)có thể được tính tường minh còn việc tính dưới vi phân ∂g∗(yk) sẽ đưa về việc giải một bài toán quy hoạch tuyến tính.

Thật vậy, ta có ∂h x( k) = (∂ −c Txk) +τ ∂ −p x( )( k), (2.12) trong đó ∂ c(− Txk) = −c (2.13) và do −p x( k) = n Xi=1 max{−x k i , xki − }1 nên ∂h x( k) = −c d+ vớid i = ( −τ nếux k i ≤ 0 5. τ ngược lại i= 1, . . . , n. (2.14) Theo Ví dụ 1.2 (ii) và Ví dụ 1.3 (iv), việc tính xk+1 ∈ ∂g∗(yk) tương đương với việc giải bài toán quy hoạch tuyến tính

min −hx, yki |x∈ S . (2.15) Sau đây là thuật toán DCA áp dụng cho bài toán (2.10).

Thuật toán 2.1:Thuật toán DCA áp dụng cho bài toán (2.10).

Khởi tạo:Lấy > 0đủ nhỏ và điểm xuất phát x0.Gán k:= 0 ;er := 1. Bước 1:Tínhyk ∈∂h x( k) theo công thức (2.14).

Bước 2:Tínhxk+1 bằng cách giải bài toán quy hoạch tuyến tính (2.15). Bước 3:Cập nhậter := min ||xk+1 − xk||

max{kxkk }, 1 ,

|f x( k+1)− f x( k)| max{|f x( k) 1|, } .

Bước 4: Nếuer < thì dừng thuật toán, kết luậnxk+1 là nghiệm thu được bởi DCA. Ngược lại gánk := + 1k và quay lạiBước 1.

Chú ý 2.1. Thuật toán DCA áp dụng cho bài toán (2.10) đưa về việc giải một dãy các bài toán quy hoạch tuyến tính. Do đó có thể giải bài toán này một cách hiệu quả.

Bài toán (2.10) là một bài toán tối ưu DC đa diện nên theo [40, Mục 4.2], thuật toán DCA áp dụng cho nó sẽ dừng sau hữu hạn bước lặp, ngoài ra nghiệm thu được còn thỏa mãn một số tính chất đặc biệt như kết quả của định lí dưới đây (xem [40, 46, 55]).

Định lí 2.2. (i) Thuật toán DCA áp dụng cho bài toán (2.10) sinh ra một dãy {xk} nằm trongV S( )sao cho dãy{cTxk +τp x( k)} giảm.

(ii) Tồn tại số thực không âm τ1 sao cho với mọi τ > τ1dãy {p x( k)} giảm. Đặc biệt, nếu tại bước lặp ,r xr là nghiệm chấp nhận được của bài toán (2.7) thì xk, k≥ cũng là nghiệm chấp nhận được của bài toán (2.7).r,

(iii) Dãy {xk} hội tụ đến x∗ ∈ V S( ) sau hữu hạn bước lặp. Điểmx∗ là điểm tới hạn của bài toán (2.10) (tức là, ∂g x( ∗) ∩ ∂h x( ∗) =6 ∅). Hơn nữa, nếu x∗

i 6=

1

2, i = 1, . . . , n, thìx ∗ là một nghiệm tối ưu địa phương của bài toán (2.10). 2.1.3 Thuật toán toàn cục giải bài toán phân bổ tài nguyên cho mạng

không dây OFDMA/TDD (RAP)

Ở mục trước chúng tôi đã mô hình hóa bài toán (RAP) (chính là bài toán (2.7)) dưới dạng một bài toán tối ưu DC đa diện tương đương (bài toán (2.10)) theo nghĩa chúng có cùng tập nghiệm tối ưu toàn cục. Chúng tôi đã sử dụng DCA (Thuật toán 2.1) giải bài toán tối ưu DC đa diện này. Song, như đã biết, DCA là một tiếp cận địa phương, do đó nghiệm thu được từ Thuật toán 2.1 không chắc đã là nghiệm tối ưu toàn cục của bài toán (2.10), tức chưa chắc đã là nghiệm tối ưu toàn cục của bài toán (2.7). (adsbygoogle = window.adsbygoogle || []).push({});

Do tính chất nhị phân của bài toán, thuật toán nhánh cận là phù hợp để tìm nghiệm toàn cục của bài toán (2.7). Chi tiết về lược đồ nhánh cận có thể xem trong [56, 57]. Dưới đây là chi tiết thuật toán nhánh cận cổ điển áp dụng cho bài toán (2.7).

Thuật toán 2.2:Thuật toán nhánh cận giải bài toán (2.7).

Khởi tạo:Đặt R0 = [0 1], n.Kí hiệu xR0 là nghiệm của bài toán nới lỏng tuyến tính của (2.7)

min cTx x: ∈S, x∈ R 0 .

NếuxR0 ∈ {0 1, }n thì dừng thuật toán và kết luậnxR0 ∈S∩ {0 1, }n là nghiệm tối ưu toàn cục của bài toán (2.7) với giá trị tối ưu là cTxR0.Ngược lại đặt cận trên γ0 := +∞ R, := {R 0}, k := 0; là số dương đủ nhỏ vàβ0 := (β R 0) = cTxR0 là một cận dưới đầu tiên tương ứng với hộpR0.

Bước 1:Gọi Rk là hộp chữ nhật thỏa mãn βk = (β R k) = min ( ) : {β R R∈ R} và xRk là nghiệm của bài toán nới lỏng tuyến tính tương ứng. Lúc này xRk ∈/ {0 1, }n nên sẽ tồn tạij∗ thỏaxRk

j∗ ∈ (0 1), . Khi đó, chọn chỉ sốj ∗thỏa mãn max

và chiaRk thành hai hộp conRk0 vàRk1 qua trụcj∗ xác định bởi Rki = {x∈ R k : xj∗ = i , i} = 0 1, .

Bước 2:Gọi βki, xRki( = 0 1)i , tương ứng là giá trị tối ưu và nghiệm tối ưu của bài toán tuyến tính nới lỏng của (2.7) hạn chế trên tập Rki :

min cTx x: ∈S, x∈ R ki .

Nếu xRk i ∈ {0 1, }n thì xRki ∈ S ∩ {0 1, }n là một nghiệm chấp nhận được của bài toán (2.7). Ta cập nhật giá trị cận trên tốt nhất tại thời điểm hiện tại γ0 := min{c TxRk i, γ0} và nghiệm chấp nhận được xk tương ứng cTxk = γ 0. Ngược lại xRki ∈/ {0 1, } n, ta cập nhật R := R∪ {R ki} và lưu lại giá trị cận dướiβki := (β R ki) = cTxRki tương ứng của hộpRki.

Bước 3:Cập nhật

R := R\{{R t : (β Rt) ≥ γ 0− , Rt ∈ R}∪R k}.

Bước 4: Nếu R = ∅ (tức là, γ0 − βk ≤ ) thì dừng thuật toán. Kết luận xk

là −nghiệm tối ưu với giá trị tối ưu đạt được là cTxk = γ0. Ngược lại, gán k := + 1k và quay trở lạiBước 1.

Như đã biết theo tính chất của quá trình chia nhánh và lấy cận, Thuật toán 2.2 sẽ dừng sau hữu hạn bước lặp và cho nghiệm tối ưu toàn cục của bài toán (2.7). Tuy nhiên theo Định lí 2.2, ta có thể sử dụng Thuật toán 2.1 để tìm cận trên trong Thuật toán 2.2 với hi vọng sẽ nhanh chóng tìm ra được nghiệm chấp nhận được của bài toán (2.7) ngay trong những bước lặp đầu tiên và do đó tăng tốc được thuật toán nhánh cận cổ điển. Tính hiệu quả của việc kết hợp DCA vào lược đồ nhánh cận đã được khẳng định trong những công trình trước đây cho một số lớp bài toán khác nhau (xem [58, 59] và danh mục tài liệu tham khảo kèm theo). Chúng tôi sử dụng kĩ thuật này giải toàn cục cho bài toán (2.7). Dưới đây là nội dung chi tiết của thuật toán.

Thuật toán 2.3:Thuật toán nhánh cận kết hợp DCA giải bài toán (2.7).

Khởi tạo: Đặt R0 = [0 1], n. Kí hiệu xR0 là nghiệm của bài toán tuyến tính nới lỏng của (2.7)

min cTx x: ∈S, x∈ R 0 .

NếuxR0 ∈ {0 1, }n thì dừng thuật toán và kết luậnxR0 ∈S∩ {0 1, }n là nghiệm tối ưu toàn cục của bài toán (2.7) với giá trị tối ưu làcTxR0.

Ngược lại, đặt R := R{ 0}, k := 0; là số dương đủ nhỏ và β0 := (β R 0) = cTxR0 là một cận dưới đầu tiên tương ứng với hộpR0.Dùng DCA giải bài toán (2.10) với điểm xuất phát xR0, thu được nghiệm xR0

τ . Đặt UBτ := cTxR0

τ +

τp x( R0

τ ).NếuxR0

τ ∈ {0 1, }n thìγ0 := UBτ,ngược lạiγ0 := +∞.

Bước 1:Gọi Rk là hộp chữ nhật thỏa mãn βk = (β R k) = min ( ) : {β R R∈ R} và xRk là nghiệm của bài toán tuyến tính nới lỏng tương ứng. Lúc này xRk ∈/ {0 1, }n nên sẽ tồn tạij∗ thỏaxRk

j∗ ∈ (0 1), . Chọn chỉ sốj ∗thỏa mãn max

j min{xRj ,1 −xRj } = min{x Rj∗,1 −xRj∗} (2.17) và chiaRk thành hai hộp conRk0 vàRk1 qua trụcj∗ xác định bởi

Rki = {x∈ R k : xj∗ = i , i} = 0 1, . (adsbygoogle = window.adsbygoogle || []).push({});

Bước 2:Gọi βki, xRki( = 0 1)i , tương ứng là giá trị tối ưu và nghiệm tối ưu của bài toán tuyến tính nới lỏng của bài toán (2.7) hạn chế trên tậpRki :

min cTx x: ∈S, x∈ R ki .

(i) Nếu xRk i ∈ {0 1, }n thì xRki ∈ S ∩ {0 1, }n là một nghiệm chấp nhận được của bài toán (2.7), cập nhật giá trị cận trên tốt nhất tại thời điểm hiện tại γ0 := min{c TxRki, γ0} và nghiệm chấp nhận được xk tương ứng cTxk = γ 0.

(ii) Ngược lạixRki∈/ {0 1, } n, cập nhậtR := R∪{R ki} và lưu lại giá trị cận dướiβ R( ki) = β ki tương ứng của hộpRki.

(iii) Nếu

cTxRk i +τp x( Rki) min< {γ 0, UBτ}

thì ta khởi động lại DCA cho bài toán (2.10) với điểm xuất phátxRk i để thu được nghiệm xRki τ .Đặt U Bτ := cTxRk i τ + (τp x Rk i τ ). Nếu xRk i τ ∈ {0 1, }n thì cập nhật cận trênγ0 := min{c TxRk i τ , γ0}và nghiệm chấp nhận đượcxk tương ứngγ0= cTxk. Bước 3:Cập nhật R := R\{{R t : (β Rt) ≥ γ 0− , Rt ∈ R}∪R k}.

Bước 4: Nếu R = ∅ (tức là, γ0 − βk ≤ ), thì dừng thuật toán. Kết luận xk

là −nghiệm tối ưu với giá trị tối ưu đạt được là cTxk = γ0. Ngược lại, gán k := + 1k và quay trở lạiBước 1.

Theo tính chất của lược đồ nhánh cận, định lí sau đảm bảo tính đúng đắn của Thuật toán 2.2 và Thuật toán 2.3, chi tiết chứng minh có thể xem trong [44, Định lí 7.6].

Định lí 2.3. Thuật toán 2.2 và Thuật toán 2.3 dừng sau hữu hạn bước lặp và cho kết quả là - nghiệm tối ưu của bài toán (2.7).

Chú ý 2.2. Như đã biết sự hiệu quả của thuật toán DCA phụ thuộc vào phân tích DC và cách chọn điểm xuất phát. Đối với Thuật toán 2.1 nếu ta có chiến lược chọn điểm khởi tạo tốt thì nghiệm thu được sẽ nhanh tiến vào miền chấp nhận được của bài toán (2.7). Cách làm sau tương tự như cách làm trong tài liệu [58, 59]. Xuất phát từ x0ta dùng DCA để giải bài toán tối ưu lõm dưới đây để thu được điểm khởi tạo cho Thuật toán 2.1:

min (

n

Xi=1 min{xi,1 −xi} | x∈ S ) . (2.18) Chú ý rằng, bài toán (2.18) là một bài toán tối ưu DC đa diện đã biết giá trị tối ưu (bằng 0) và đặc biệt, tập nghiệm tối ưu toàn cục của nó làS ∩ {0 1}, n,cũng chính là tập chấp nhận được của bài toán (2.7).

2.1.4 Kết quả tính toán thử nghiệm

Các thuật toán được lập trình bằng C++, thử nghiệm trên máy tính cá nhân cấu hình Intel Core i3, CPU 2.2GHz, 4G RAM. Các bài toán quy hoạch tuyến tính sử dụng trong thuật toán DCA và trong quá trình tính cận dưới được giải bằng CLP solver, một solver mở trong thư viện COIN-OR (www.coin-or.org).

Để đánh giá sự hiệu quả của thuật toán, chúng tôi sinh 10 bộ dữ liệu ngẫu nhiêu cho bài toán (RAP) (bài toán (2.7)), số lượng biến tăng dần bằng cách thay đổi số lượng người dùng, khe thời gian và số lượng kênh con. Trong thử nghiệm này chúng tôi so sánh Thuật toán 2.3 (nhánh cận kết hợp DCA) với lược đồ nhánh cận cổ điển (Thuật toán 2.2). Lấy τ = 106, = 5 10. −2 và giới hạn 105 bước lặp được dùng cho mỗi lần chạy thuật toán, nếu sau 105 bước lặp thuật toán chưa dừng ta coi như thuật toán đó "thất bại" trong việc tìm −nghiệm tối ưu cho trường hợp cụ thể đó. Kết quả tính toán thử nghiệm Thuật toán 2.2 và Thuật toán 2.3 được tóm tắt trong Bảng 2.1, trong đó ta sử dụng các kí hiệu sau:

#Var: Số lượng biến UB: Cận trên

#Constr: Số lượng ràng buộc LB: Cận dưới

#Iter: Số bước lặp NoF: lần chạy DCA cho nghiệm chấp nhận được của (RAP). Từ Bảng 2.1, ta rút ra một số nhận xét sau:

• Thuật toán DCA tìm ra nghiệm chấp nhận được của bài toán (RAP) nhanh, chỉ trong lần chạy DCA đầu tiên hoặc thứ hai. Trong nhiều trường hợp, nghiệm thu

Bảng 2.1:Kết quả giải bài toán (RAP) bằng Thuật toán 2.2 và Thuật toán 2.3

No. M N K #Var #Constr Thuật toán 2.2 Thuật toán 2.3

#Iter UB LB time(s) #Iter UB LB time(s) NoF

1 3 3 4 36 153 5 4981 4981 1.4 2 4981 4981 0.9 1 2 4 4 3 48 376 11 2267 2267 0.5 2 2267 2267 0.3 1 3 4 4 4 64 496 5 16528 16500 1.4 2 16543 16500 1 1 4 3 3 6 54 225 39 40 40 8.8 17 40 40 1.4 1 5 4 4 5 80 616 797 876753 876624 25.4 95 876654 876534 23.4 2 6 4 4 6 96 736 49 5962 5950 65.6 38 5962 5871 35.4 2 7 5 5 4 100 1225 123 9564 9514 792.4 37 9587 9432 76.8 2 8 6 6 3 108 1926 137 3757 3743 1023.2 33 3789 3641 151.4 1 9 5 4 6 120 1160 - - - - 399 12367 12356 1500 2 10 5 5 5 125 1525 - - - - 278 98794 98765 1809 2

- : Thất bại trong việc tìm −nghiệm tối ưu của (RAP) .

được này xấp xỉ nghiệm tối ưu toàn cục. Tuy nhiên để kiểm chứng tính tối ưu

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số lớp bài TOÁN tối ưu KHÔNG lồi THUẬT TOÁN và ỨNG DỤNG (Trang 40)