1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI TOÁN PHÂN PHỐI

21 700 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 1,17 MB

Nội dung

BÀI TOÁN PHÂN PHỐI

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 736 949, Website: itf.ud.edu.vn , E-mail: cntt@edu.ud.vn

BÁO CÁO TIỂU LUẬN MÔN HỌC

HỆ HỖ TRỢ RA QUYẾT ĐỊNH NGÀNH KHOA HỌC MÁY TÍNH

ĐỀ TÀI 11:

BÀI TOÁN PHÂN PHỐI

GVHD: TS Nguyễn Văn Hiệu HVTH: Đặng Thị Thanh Thúy

Lớp Cao học KHMT Khóa 28 (2013 - 2015)

ĐÀ NẴNG, 5/2015

Trang 2

MỤC LỤC

I Tổng quan 1

II Mục đích 1

III Phương pháp 1

III.1 Phương pháp giải Bài toán quy hoạch nguyên 2

III.2 Phương pháp giải Bài toán quy hoạch phi tuyến 4

III.2.1.Giới thiệu 4

III.2.2.Hàm lồi 5

III.2.3.Giải bài toán tối ưu không có điều kiện ràng buộc 6

III.2.4.Giải bài toán tối ưu với điều kiện ràng buộc là các phương trình phi tuyến 7

IV Bài toán phân phối 8

IV.1 Bài toán phân phối dạng tổng quát 8

IV.2 Mô tả bài toán 9

IV.3 Mô hình tổng quát 11

V Giải quyết bài toán 13

V.1 Phân hoạch bài toán 13

V.2 Bài toán tối ưu hóa 14

V.2.1 Bài toán tối ưu hóa các module mua 14

V.2.2 Bài toán tối ưu hóa các module phát triển trong công ty 15

V.3 Ví dụ minh họa 16

VI Kết luận 17

TÀI LIỆU THAM KHẢO 19

Trang 3

I Tổng quan

Ngày nay, với sự phát triển của khoa học, kỹ thuật, công nghệ và với tốc

độ tính toán, xử lý, lưu trữ và truy xuất nhanh, chính xác, máy tính trở thành thiết bị không thể thiếu Theo đó, nhu cầu sử dụng ngày càng tăng cao, đòi hỏi các phần mềm phục vụ cho con người cũng phát triển không ngừng

Máy tính đã được con người sử dụng trong mọi thiết bị: đồng hồ đeo tay, điện thoại, các thiết bị trong nhà, xe mô tô, hầu hết máy tính được sử dụng ở mọi mọi nhà, mọi cơ quan, trường học, bệnh viện, nhà máy, xí nghiệp,… Vấn đề

đó đồng nghĩa với việc phát triển khả năng xử lý của phần cứng và chất lượng của phần mềm Một vấn đề đang làm đau đầu các nhà quản lý của Công ty phần mềm, đó là bằng cách nào đó họ có thể phân bổ tài nguyên một cách hợp lý để tạo ra phần mềm với lợi nhuận và chất lượng cao

Vì thế, các nhà quản lý luôn tìm tòi, nghiên cứu, giải quyết bài toán phân phối tài nguyên cho việc xây dựng phần mềm có chất lượng cao mà chi phí ở mức thấp nhất và giảm thiểu rủi ro, nhằm tạo ra phần mềm có tính tin cậy nhất

Để tiếp cận và tìm ra giải pháp giải quyết bài toán nhằm tạo ra được cách đáng tin cậy theo yêu cầu, vấn đề cần cố gắng tập trung giải quyết là:

 Xác định các mudule phần mềm cần phát triển

 Dự đoán tài nguyên (chi phí) cần thiết cho từng module và tính toán

độ tin cậy mong đợi với tài nguyên đó

 Tính độ tin cậy lớn nhất có thể đạt được của hệ thống phần mềm không vượt quá giới hạn ngân sách

 Tìm chi phí nhỏ nhất để phần mềm có độ tin cậy là một hằng số xác định trước

III Phương pháp

Với những mục tiêu trên, để giải quyết bài toán phân phối chi phí trong độ tin cậy phần mềm, đề tài vận dụng một số phương pháp như sau:

Trang 4

 Xây dựng được mô hình tổng quát cho bài toán quy hoạch nguyên dạng nhị phân và bài toán quy hoạch phi tuyến, trên cơ sở đó áp dụng cho bài toán tối ưu hóa các module phát triển trong công ty

 Xây dựng được một mô hình phân phối chi phí để phần mềm có độ tin cậy lớn nhất

 Xây dựng được một mô hình phân phối chi phí nhỏ nhất để phần mềm

có độ tin cậy là một hằng số cho trước

III.1 Phương pháp giải Bài toán quy hoạch nguyên

Bài toán quy hoạch nguyên là một bài toán quy hoạch tuyến tính mà ràng buộc thêm điều kiện các biến có giá trị nguyên Biến nhị phân cũng là một tập con của biến nguyên Trong đó, biến nhị phân chỉ nhận giá trị nguyên: 0 hoặc 1 Biến nhị phân thường được sử dụng trong các bài toán ra quyết định, dùng để quyết định thực hiện hay không thực hiện một công việc nào đó Bài toán quy

hoạch nguyên chứa các biến nhị phân được gọi là Binary integer programming (BIP)

Đầu tiên bạn nghĩ ngay một cách đơn giải để giải bài toán này là liệt kê toàn bộ các lời giải và sau đó là lựa chọn lời giải có nghiệm tối ưu nhất Công việc này chỉ được thực hiện cho những bài toán nhỏ, nhưng điều đó rất nhanh chóng không thực hiện được cho những bài toán có kích thước từ trung bình hoặc lớn

Ví dụ: Xét liệt kê đầy đủ của một mô hình tổng quát có một biến nguyên

1 x và hai biến nhị phân 2 x và 3 x với các ràng buộc:

1 ≤ x1 ≤ 3

0 ≤ x 2 ≤ 1

1 ≤ x 3 ≤ 1

Cấu trúc trong hình dưới là một cây với nút gốc bên trái, được gán nhãn

“all solution” và các nút lá nằm bên phải Các nút lá mô tả các giải pháp có được, vì vậy chúng ta có 12 giải pháp trong đó có: (3 giá trị có thể thực hiện

Trang 5

được cho xi )*(2 giá trị có thể thực hiện được cho x 2 )*(2 giá trị có thể thực hiện

được cho x 3)

Hình 1 Cây liệt kê đầy đủ

Tương tự, nếu xét bài toán nhị phân có 20 biến Điều đó có nghĩa là sẽ có

220 =1,048,576 giải pháp được thực hiện bằng phương pháp liệt kê, công việc này phải được thực hiện bằng máy tính Nhưng nếu chúng ta xét một trường hợp giải sử có 100 biến nhị phân khi đó chúng ta cần đến 2100

=1.268x1030 giải pháp

được thực hiện bằng phương pháp liệt kê Do do, nếu ta đưa ra bài toán có n

biến theo lý thuyết sẽ có 2n

phương pháp có thể được xét đến Vấn đề là khi n

chỉ cần tăng 1 thì số phương pháp tăng lên gấp đôi, như vậy độ phức tạp là tăng tưởng theo hàm số mũ, vấn đề này là bất khả thi đối với máy tính Sự bùng nổ tổ hợp sẽ xấu hơn cho các biến nguyên có thể nhận nhiều giá trị hơn biến nhị phân

(chỉ có 2 giá trị 0/1) Điều này xét về mặt tính toán là bất khả thi với máy tính

Trang 6

Trong thực tế, số biến của một bài toán có thể là rất lớn Do đó, phương pháp liệt kê sẽ không được thực hiện cho các bài toán có kích thước đủ lớn Vì vậy, chúng ta cần một phương pháp tối ưu nhất giải quyết việc bùng nổ tổ hợp này

Điểm khác biệt quan trọng giữa bài toán quy hoạch tuyến tính và bài toán quy hoạch nguyên:

 Bài toán quy hoạch tuyến tính số lượng hàm ràng buộc là chính yếu quyết định độ phức tạp của bài toán

 Bài toán quy hoạch nguyên số lượng biến và các cấu trúc đặc biệt

(special structure) Chính các cấu trúc đặc biệt này có thể là chìa khóa để đơn giản hóa vấn đề

III.2 Phương pháp giải Bài toán quy hoạch phi tuyến

III.2.1 Giới thiệu

Chúng ta sẽ nguyên cứu lý thuyết cho các chương trình toán học có dạng: Hàm mục tiêu:

Trang 7

Với các điều kiện ràng buộc

h 1 (x 1 , x 2 ) = x 1 2 + x 2 2 – 1 = 0

g 1 (x 1 , x 2 ) = x 1 - x 2

2 ≥ 0

Vùng khả thi là một cung của đường tròn nằm bên trong parabola Bài

toán tìm một điểm trong vùng khả thi sao cho f(x1 , x 2 ) đạt giá trị nhỏ nhất Trong

trường hợp này, không có điểm nào để cho hàm mục tiêu đạt giá trị nhỏ nhất

Hình 2 Mô tả hình học cho ví dụ III.2.2 Hàm lồi

Định nghĩa Đối với hàm nhiều biến, lưu ý rằng ta chỉ có khái niệm lồi

của hàm khi hàm xác định trên một tập lồi Hàm nhiều biến f (x) xác định trên tập lồi D được gọi là một hàm lồi nếu với mọi M, N thuộc D và M≠ N, với mọi

α (0,1) thì ta đều có: (1−α) f (M) +αf (N) ≥ f ((1−α)M −αN)

Đặc trưng của hàm lồi

Hàm nhiều biến f (x) xác định trên một tập lồi D Giả sử f (x) có các đạo

hàm riêng cấp 2 liên tục

Nếu tại mọi điểm (x 1 , x 2 ,…, x n ) thuộc D, với mọi dx 1, dx2,…, dxn không đồng thời bằng 0:

Trang 8

 d 2

f(x 1 , x 2 ,…, x n ) ≥ 0 thì f (x) là hàm lồi trên D

 d 2

f(x 1 , x 2 ,…, x n ) > 0 thì f (x) là hàm lồi ngặt D

Việc phân tích trực tiếp trên biểu thức vi phân cấp 2 để chứng minh d 2 f

không đổi dấu là khó khả thi Do đó phải dùng đến công cụ của đại số tuyến tính

mà ta sẽ đề cập đến trong định lý sau

Định lý Xét hàm n biến f (x) xác định trên miền lồi D Giả sử hàm f (x) có

các đạo hàm riêng cấp hai liên tục x* D là một điểm dừng

Với mỗi x* D, gọi ma trận Hessian tại x * , ký hiệu F(x*) là ma trận vuông cấp n có thành phần dòng i cột j là

Với mỗi k từ 1 đến n, gọi F (x*) k là định thức ma trận con có được từ ma trận H(x*) bằng các lấy các phần tử ở k dòng đầu và k cột đầu Ta có điểm x * là cực tiểu của hàm f (x) trên X nếu f (x) là hàm lồi trên D Điều kiện để f (x) lồi trên D là với mọi x* D , ma trận F(x*) xác định dương Tức là với mọi x* D, với mọi k từ 1 đến n, ta đều có F k (x*) > 0

III.2.3 Giải bài toán tối ưu không có điều kiện ràng buộc

Đây là trường hợp đơn giản nhất của bài toán tối ưu là không có điều kiện ràng buộc, có dạng sau:

Tiếp theo chúng ta xem xét những trường hợp v = e j và v = −e j nghĩa là

Ta có điều kiện cần:

Chú ý Với mọi điểm x trong (x*) có thể được mô tả dưới dạng x = x * + tv, trong đó t > 0 (0 < t < ε vì t = || x*+ tv|| = ||x - x*|| ≤ ε) Ta được:

Trang 9

f(x * ) ≤ f(x) = f(x * + tv) = f(x * ) + t f(x *

)v + Gọi ma trận Hessian, ký hiệu F là ma trận vuông cấp n của f và α [0,1]

Nhưng f (x*) = 0 và vì thế một điều kiện cần thứ hai cho f để có một cực tiểu tại x* là 0 ≤ v T

F(x* + αtv)v (3)

Định lý 1 Cho f : R n

→ R 1 hai lần đạo hàm liên tục xung quanh một lân

cận của x* Nếu f có một cực tiểu tại x* thì:

(i) f (x*) = 0

(ii) F(x*) là một đại lượng xác định dương

Định lý 2 Cho f : R n

→ R 1 hai lần đạo hàm liên tục xung quanh một lân

cận của x* Khi đó một điều kiện đủ để cho f (x) có một cực tiểu tại x* , là f (x*) = 0 và F(x*) là một đại lượng xác định dương.

III.2.4 Giải bài toán tối ưu với điều kiện ràng buộc là các phương trình phi

Trong đó:

f : R n → R 1 , h : R n → R m , g: R n → R q và toàn bộ các hàm đều trong C 2

Định nghĩa Cho x* là một điểm thỏa mãn điều kiện h(x*) = 0, g(x*) ≥ 0

và g (x*) = 0 j với j J Khi đó x* được gọi là một điểm dừng của các ràng buộc

nếu các véctơ hi(x*) i với 1≤ i ≤ m và gj(x*) là độc lập tuyến tính

Định lý 1 (Kuhn - Tucker Conditions) Cho x* là một điểm cực tiểu của

bài toán (VI.3) và giả sử rằng x* là một điểm dừng Khi đó tồn tại một vector λ

R m

và một vector μ R q

sao cho:

f (x*) –λT h(x*) − μT g(x*) = 0 (a)

Trang 10

và một

vector μ Rq

, μ ≥ 0 từ (a) - (d), ta có L(x*) = F(x*) –λTH(x*) –μT G(x*) là xác định dương tại x*

Định lý 3 (điều kiện đủ) Cho f ,h, g C 2

Điều kiện để điểm x* là một

cực tiểu là tồn tại λ R m

và μ R q

thoả các ràng buộc từ (a) - (d) và ma trận

Hessian L(x*) = F(x*) − λTH(x*) –μT G(x*) xác định dương trong mặt phẳng

T'= {y : h(x*)y = 0, gj (x*)y = 0 với mọi j J '}, trong đó J '= {j: gj (x*) = 0, μj

> 0}

IV Bài toán phân phối

Bài toán phân phối là một trong những bài toán phổ biến nhất của quy

hoạch tuyến tính, được vận dụng trong nhiều lĩnh vực và có nhiều ứng dụng trong

thực tiễn Việc giải quyết Bài toán phân phối là xác định một phương án tối ưu sao

cho:

 Đáp ứng nhu cầu tốt nhất

 Chi phí thấp nhất

 Lợi nhuận cao nhất

Từ đó, xây dựng mạng lưới liên kết, chi nhánh, tài nguyên, sản phầm sản xuất,… để có phương án lên kế hoạch, phân bổ

IV.1 Bài toán phân phối dạng tổng quát

Giả sử một Công ty phần mềm VN đang cần xây dựng một phần mềm cho khách hàng Phần mềm này có n module được phân theo dạng sau:

 Các module từ 1, 2, m1 là các module đơn và các module từ

m1+1, , n là các tích hợp

 Các module từ 1, 2,…, m là các module mua và còn lại m+ 1, , n là

được phát triển trong công ty

Trang 11

Mỗi module có thể được mua ngoài hoặc được công ty phát triển

Ứng với từng module sẽ có một hoặc nhiều phiên bản (version) và mỗi phiên bản sẽ có một chi phí phát triển và một độ tin cậy

Hãy tìm cách phân phối chi phí để xây dựng một hệ thống phần mềm sao cho độ tin cậy của phần mềm là lớn nhất nhưng tổng chi phí là thấp nhất hoặc không vượt quá giới hạn ngân sách đã cho

IV.2 Mô tả bài toán

Quá trình phân phối chi phí cho độ tin cậy phần mềm được thực hiện như sau:

Bước 1 Xác định các module trong phần mềm module nào là module đơn

và module nào là module tích hợp Module đơn nào được phát triển trong công

ty và module đơn nào sẽ được mua bên ngoài thị trường

Bước 2 Xác định công thức tính độ tin cậy cho từng loại module:

 Đối với module mua, mỗi module mua có nhiều version trên thị trường, ứng với mỗi version đều có độ tin cậy và chi phí khác nhau Độ tin cậy và chi phí của một module bằng độ tin cậy và chi phí của version

mà chúng ta lựa chọn mua Với lý do tiết kiệm chi phí, do đó chúng ta phải lựa chọn duy nhất một trong số các version đã cho Do đó để thực hiện được vấn đề này, chúng ta đưa một biến thực hiện công việc lựa chọn mua hay không mua một version nào đó Đó là các biến nguyên nhị phân

 Đối với các module phát triển trong công ty, độ tin cậy của một module sẽ phụ thuộc vào chi phí Khi chi phí tăng thì độ tin cậy cũng tăng theo Tuy nhiên, độ tin cậy sẽ tăng đến một mức độ nào đó thì sẽ tăng chậm lại, cho dù ta có tăng chi phí nhiều thì độ tin cậy cũng tăng chậm Qua việc khảo sát hàm số mũ âm, ta nhận thấy cách đo độ tin cậy phần mềm rất giống với hàm số mũ âm Do đó ta chọn hàm số mũ âm để mô tả

độ tin cậy của các module phát triển trong công ty và các biến trong các module phát triển trong công ty là các biến thực

Trang 12

Việc giải quyết bài toán tối ưu hoá phân phối chi phí cho độ tin cậy phần mềm tồn tại cả hai loại biến nguyên nhị phân và biến thực rất khó giải quyết Một phương án đề xuất phân hoạch bài toán thành hai phần: phần module mua

và phần module phát triển trong công ty, chi phí để phát triển phần mềm cũng được phân hoạch thành hai phần ứng với hai sự phân hoạch đó

 Đối với bài toán module mua, cấu trúc bài toán giống như một bài toán quy hoạch tuyến tính, tuy nhiên các biến trong bài toán đều là các biến nguyên nhị phân, nếu chúng ta giải quyết bài toán theo phương pháp quy hoạch tuyến tính để tìm ra nghiệm, sau đó làm tròn các nghiệm để được giá trị nguyên, phương pháp làm tròn tìm ra lời giải rất xa so với lời giải thực tế, còn dùng phương pháp liệt kê tất cả các lời giải sau đó tìm ra lời giải tối ưu nhất thì dẫn đến việc bùng nổ tổ hợp Một giải pháp được

đề xuất là sử dụng giải thuật Branch and Bound để giải quyết bài toán, bước đầu đã đạt được những kết quả Do module mua cũng là một module đơn trong phần mềm, và các module tích hợp được tích hợp từ các module đơn Do đó, với việc giải quyết bài toán tối ưu hoá các module mua, chúng ta đã tìm được độ tin cậy và chi phí cho các module mua Kết quả

sẽ được đưa vào để giải quyết bài toán tối ưu hoá các module phát triển trong công ty

 Đối với bài toán các module phát triển trong công ty, do cấu trúc bài toán hàm mục tiêu là một hàm nhiều biến, lại liên quan đến hàm số mũ Cho nên để thực hiện được bài toán ta sử dụng phương pháp quy hoạch phi tuyến để giải quyết, thông qua đây ta cũng tìm được độ tin cậy và chi phí cho từng module trong phần mềm cũng như độ tin cậy của phần mềm Tuy nhiên, để đảm bảo bài toán tìm được lời giải tối ưu nhất, chúng ta cần phải xem xét nguồn chi phí cung cấp có đủ để phát triển phần mềm chưa, cũng như việc phân chia chi phí giữa các module mua và module phát triển trong công ty có hợp lý chưa, và các thông số nhập vào có đảm bảo phần mềm có độ tin cậy thoả mãn không

Ngày đăng: 10/10/2016, 09:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w