luanvan - universal

Download Report

Transcript luanvan - universal

GIẢI THUẬT DI TRUYỀN VÀ
ỨNG DỤNG TRONG QUẢN LÝ
DỰ ÁN PHẦN MỀM
Học viên thực hiện : Nguyễn Hữu Huy
Hướng dẫn khoa học: TS.Bùi Thu Lâm
Outline

Quản trị dự án phần mềm, lập lịch các
công việc dự án

Giải thuật di truyền và ứng dụng

Áp dụng giải thuật di truyền giải quyết
bài toán lập lịch khi quản trị dự án
Quản trị dự án phần mềm
Dự án là một quá trình gồm các công
việc, nhiệm vụ có liên quan với nhau,
được thực hiện nhằm đạt được mục
tiêu đã đề ra trong điều kiện ràng
buộc về thời gian, nguồn lực và ngân
sách
 Quản lý dự án là việc áp dụng kiến
thức, phương pháp, kỹ thuật, công cụ
và tổ chức các hoạt động nhằm tạo ra
sản phẩm đáp ứng yêu cầu đã cho.

Các bước lập kế hoạch dự án

Lập bảng công việc

Ước lượng nguồn lực công việc

Lập lịch biểu

Lập các kế hoạch
Lập lịch trình dự án
Xác định thời gian kết thúc dự án
 Xác định các giai đoạn chính của dự án,
đánh dấu bằng việc kết thúc một giai
đoạn (= 1 cột mốc) với sản phẩm của giai
đoạn đó và thời gian lịch tương ứng
 Xác định các mốc dự án

Lập kế hoạch dự án

Kế hoạch là bản dự kiến công việc cần
làm(cái gì), thứ tự thực hiện(tiến trình),
thời gian (khi nào, bao lâu), phương tiện
(cái gì, bao nhiêu), người làm(ai), sản phẩm
ra (cái gì), và tiêu chí đánh giá(chất lượng)
Các nguồn lực cho dự án

Con người: Nhân tố quan trọng nhất, cần
có năng lực, cơ cấu phù hợp. Ở mọi giai
đoạn nhu cầu là khác nhau

Phần mềm dùng lại được.

Phần cứng/công cụ phần mềm chia sẻ
Cấu trúc của kế họach dự án
Mở đầu
 Tổ chức thực hiện dự án
 Phân tích rủi ro
 Các yêu cầu về nguồn lực: nhân lực, phần
cứng, phần mềm.
 Bảng phân rã công việc
 Lịch trình dự án
 Cơ chế điều hành và báo cáo
 Các kế hoạch phụ trợ

Tổ chức hoạt động dự án
Tổ chức bộ máy và cơ chế hoạt động: ban
quản lý, các đội, cơ chế điều hành, báo cáo.
 Hoạt động dự án cần tổ chức tạo ra các đầu
ra thấy được của mỗi tiến trình
 Cột mốc (milestone) là điểm cuối của một
tiến trình hoạt động có thể xuất phẩm và
các báo cáo yêu cầu
 Xuất phẩm (deliverables) là kết quả của dự
án gửi tới khách hàng tại mỗi thời điểm.

Hoạt động kế hoạch dự án (1)
Xây dựng bảng phân rã công việc: xác
định các nhiệm vụ (gói công việc) cần
thực hiện để tạo ra các sản phẩm
 Xác định các mối quan hệ giữa chúng: đặt
các gói công việc theo một tiến trình có
thứ tự trước sau.
 Ước lượng các gói công việc: mỗi gói công
việc có ước lượng công lao động, số trang
thiết bị và thời gian cần thiết để thực
hiện.

Hoạt động kế hoạch dự án (2)
Xây dựng Lịch biểu ban đầu: tính toán
thời gian thực hiện dự án thời gian bắt
đầu sớm nhất và kết thúc muộn nhất của
từng công việc
 Gán nguồn lực thực hiện, điều chỉnh lịch.
Sau khi gán nguồn lực cần chính xác hóa
lích biểu khi tính đến các ràng buộc về
nguồn lực. Các nhiệm vụ được lập lịch
sao cho tối ưu hóa việc sử dụng lao động
và các nguồn lực khác.

Sơ đồ tiến trình lập kế hoạch chi
tiết
Bảng phân rã công việc gồm

Các công việc

Mối liên hệ (trước – sau giữa các công
việc

Thời gian thực hiện công việc

Nguồn lực thực hiện công việc
Tiến trình xác định bảng công việc
Các bước xây dựng bảng công việc
(1)
Bước 1:Viết ra sản phẩm chung nhất (sản
phẩm của hệ con – lấy từ bản dự án cơ sở)
 Bước 2: Tạo danh sách các sản phẩm chi tiết
ở các mức thấp hơn (khoảng 2, 3 mức)
 Bước 3: Tạo danh sách các công việc thực
hiện sản phẩm ở mức thấp nhất, phân rã các
công việc để được công việc ở mức thấp
hơn đến mức đạt yêu cầu (có khối lượng
<=80 giờ công…)

Các bước xây dựng bảng công việc
(2)

Bước 4: Đánh mã số cho mỗi công việc,
nhóm lại.

Bước 5: Xét duyệt lại bảng công việc.
Sơ đồ phân rã, đánh mã công việc
Chuẩn công việc và ước lượng

Công việc có mức thấp nhất phải đảm
bảo các điều kiện sau
◦ Có kết quả bàn giao
◦ Quy được tráchnhiệm cá nhân
◦ Có hạn định về thời gian và có thể đo được
(tiến độ, chất lượng)
◦ Có khối lượng từ 8 đến 80 giờ / người

Các kỹ thuật ước lượng thời gian:
◦ Theo kinh nghiệm
◦ Theo phương pháp PERT
Giải thuật di truyền và ứng dụng
Tổngquan về giải thuật di truyền (GA)
 Hàm thích nghi (fitness function)
 Thông số giải thuật di truyền (GA
paramater)
 Các toán tử GA

Tổngquan về giải thuật di truyền
(GA)
Giải thuật di truyền là một kỹ thuật
của khoa học máy tính nhằm tìm kiếm
giải pháp thích hợp cho các bài toán
tối ưu tổ hợp (combinatorial
optimization).
 Giải thuật di truyền là một phân
ngành của giải thuật tiến hóa vận
dụng các nguyên lý của tiến hóa như
di truyền, đột biến, chọn lọc tự nhiên,
và trao đổi chéo.

Tổngquan về giải thuật di truyền
(GA)

Ngày nay, giải thuật di truyền được
dùng phổ biến trong một số ngành
như tin sinh học, khoa học máy tính,
trí tuệ nhân tạo, tài chính và một số
ngành khác
Lịch sử
phát triển(1)
Năm 1954, GP bắt đầu với giải thuật tiến
hóa, nó được sử dụng lần đầu tiên bởi
Nils Aall Barricelli trong việc mô phỏng
quá trình tiến hóa.
 Những năm 1960 và nửa đầu những năm
1970 giải thuật tiên hóa (EA) được biết
đến như là các phương pháp tối ưu hóa. I.
Rechenberg đã giải quyết được nhiều vấn
đề phức tạp trong ngành công nghệ bằng
chiến lược tiến hóa (Evolution strategies)

Lịch sử
phát triển(2)

Những năm 1970 Giải thuật di truyền
(GA) được Holland phát minh.

Năm 1992, John Koza đã sử dụng giải
thuật di truyền để thực hiện một vài
nhiệm vụ trong trương trình tiến hóa.
Ông đã gọi phương pháp này là Lập trình
tiến hóa ("genetic programming" (GP)).
Nguyên lý hoạt động(1)
Giả lập sự lựa chọn tự nhiên: Quần thể là
tập hợp các giải pháp để giải quyết một
vấn đề. Được biểu diễn bằng tập hợp các
nhiễm sắc thể (chromes)
 Các cá thể trong quần thể sẽ được lai tạo,
đột biến để sinh ra quần thể mới.
 Các cá thể sẽ được lựa chọn thông qua
giá trị hàm thích nghi.

Nguyên lý hoạt động(2)

Quá trình tiến hóa sẽ dừng khi tìm được
lời giải phù hợp.
Sơ đồ giải thuật
Hàm thích nghi
Dùng để đánh giá độ thích nghi của các
nhiễm sắc thể.
 Cần phải đánh giá được mức độ thích
nghi cho tất cả các nghiệm khả thi và luôn
được giả định là không âm
 Công thức biểu diễn hàm phải thể hiện
được tất cả các đặc tính mong muốn của
nhiễm sắc thể, thông qua đó có thể chọn
lọc được các quần thể nghiệm tốt nhất
cho bài toán

Thông số giải thuật di truyền

Tham số xác suất trao đổi chéo
(crossover)

Tham số xác suất đột biến

Kích thước quần thể

Số lượng quần thể
Các toán tử GA
Mã hóa
 Lựa chọn
 Lai ghép
 Đột biến

Mã hóa
Mã hóa nhị phân
 Mã hóa kiểu hóa vị
 Mã hóa giá trị

Mã hóa nhị phân

Các nhiễm sắc thể được biểu diễn bằng
chuỗi các bit 0 và 1

Được dùng trong bài toán xếp ba lô (hay
còn gọi là bài toán cái túi)
Mã hóa hoán vị (Permutation
encoding)

được sử dụng trong các bài toán xắp xếp,
ví dụ các bài toán người giao hàng
(travelling salesman), bài toán xắp xếp các
nhiệm vụ.
Chromosome A
Chromosome B

1 5 3 2 6 4 7 9 8
8 5 6 7 2 3 1 4 9
Nhiễm sắc thể được biểu diễn bởi chuỗi
các số nguyên dương liên tiếp nhau.
Mã hóa giá trị
Nhiễm sắc thể được biểu diễn là một
chuỗi các giá trị
 Các giá trị này có thể là bất kể cái gì liên
quan đến bài toán, có thể là số nguyên, số
thực, kiểu ký tự, kiểu chuỗi.

Toán tử chọn lọc
 Chọn lọc bánh xe (Roulette Wheel Selection)
 Chọn lọc đánh giá (Rank Selection)
 Tournament Selection
 Chọn lọc các phần tử tối ưu (Elitism).
Chọn lọc bánh xe (Roulette Wheel
Selection)

Lựu chọn bằng giá trị hàm thích nghi.

Nhiễm sắc thể nào có giá trị hàm thích
nghi lớn có thể được lựa chọn nhiều hơn.
Thuật toán chọn lọc bánh xe
Bước 1: Tính tổng S các giá trị fitness của
toán bộ các thể trong quần thể.
 Bước 2: Chọn một số ngẫu nhiên từ 0
đến S, giả sử là số r
 Bước 3: Duyệt quần thể từ cá thể số 0
đến s, tính tổng fitness từ 0 đến s, khi mà
s >= r thì dừng lại và chọn cá thể s.
 Lặp lại quá trình trên cho đến khi chọn
xong quẩn thể mới

Chọn lọc đánh giá (Rank Selection)
Đánh giá toàn bộ quần thể
 Đầu tiên sẽ đánh giá quần thể và mọi cá
thể sẽ nhận được giá trị fitness từ sự
đánh giá này. Cá thể tồi nhất có fitness là
1, rồi là 2,… tốt nhất là N (số lượng cá
thể trong quần thể). Tất cả các cá thể sẽ
được chọn ngẫu nhiên sang thế hệ tiếp
theo.

Trao đổi chéo (crossover)
Là quá trình nhiễm sắc thể mới được hình
thành dựa trên nhiễm sắc thể cha-mẹ
bằng cách lai ghép một hay nhiều đoạn
nhiễm sắc thể cha mẹ với nhau. Phép lai
ghép
 Thuật toán trao đổi chéo phụ thuộc vào
mã hóa dữ liệu nst

Đột biến
Là quá trình cá thể con mang một hay
một số tính trạng không có trong mã di
truyền của cha-mẹ.
 Các bước thực hiện

◦ Chọn ngẫu nhiên một cá thể bất kỳ trong
quần thể
◦ Chọn một gen bất kỳ của cá thể vừa chọn
◦ Thay đổi giá trị gen đó rồi trả về quần thể để
thực hiện các quá trình tiếp theo
Bài toán tổng quát
Áp dụng giải thuật di truyền vào lập
lịch dự án

Bài toán: áp dụng giải thuật di truyền để
tiến hành lập lịch dự án sao cho tối ưu về
thời gian.Với điều kiện nguồn tài nguyên
giới hạn. Nhân công làm việc theo chế độ
được nghỉ thứ 7, chủ nhật. Làm việc ngày
7 tiếng từ thứ 2 đến thứ 6. Bắt đầu làm
việc lúc 8h sáng, kết thúc lúc 5pm. Nghỉ
giải lao từ 12h đến 13h và từ 14h đến
15h. Giả thiết tài nguyên là đồng nhất.
Áp dụng giải thuật di truyền vào lập
lịch dự án
Số lượng task 15, được đánh index từ 0
đến 14
 Định nghĩa thứ tự trước sau như đồ thị
dưới

Áp dụng GA
Dùng kiểu mã hóa hoán vị để tìm lời giải
cuả bài toán. Mỗi một chrome bao gồm
chuỗi các giá trị từ 0 tới 14, tương ứng
với thứ tự các task.
 Dùng phép chọn Elitism để nhanh tìm ra
bài toán
 Hàm fitness có giá trị bằng 1 chia cho
tổng thời gian hoàn thành các task.

Tính giá trị fitness
Nếu thứ tự các task không thỏa mãn thứ
tự đã được định nghĩa trong đồ thị task
thì giá trị fitness gán bằng 0
 Nếu thứ tự thỏa mãn tính tổng thời gian
hoàn thành các task trong chrome, giá trị
là t. Fitness sẽ có giá trị bằng 1/t.

Kết quả chạy chương trình
Đồ thị fitness
Q &A