1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN HỮU HUY
GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG TRONG
QUẢN LÝ DỰ ÁN PHẦN MỀM
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội-2014
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN HỮU HUY
GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG TRONG
QUẢN LÝ DỰ ÁN PHẦN MỀM
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: KỸ THUẬT PHẦN MỀM
Mã số:60480103
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Tôi xin bày tỏ lòng biết ơn tới gia đình, bạn bè, và các đồng nghiệp ngân hàng Dầu khí
toàn cầu GP.Bank, các chị em trong nhóm Ngân hàng điện tử và nhất là trưởng phòng
Ngân hàng điện tử Trần Trung Kiên đã động viên khích lệ tinh thần và giúp đỡ tôi
hoàn thành luận văn này.
5
MỤC LỤC
Trang phụ bìa Trang .................................................................................................... 2
Lời cam đoan ............................................................................................................... 3
Lời cảm ơn .................................................................................................................. 4
Mục lục ........................................................................................................................ 5
Danh mục các ký hiệu và chữ viết tắt ......................................................................... 7
Danh mục các hình vẽ, đồ thị ...................................................................................... 9
Danh mục các bảng ................................................................................................... 11
MỞ ĐẦU ....................................................................................................................... 12
Chương 1. Tổng quan về quản lý dự án phần mềm ....................................................... 14
1.1. Định nghĩa dự án, quản lý dự án phần mềm ....................................................14
1.1.1. Dự án là gì ....................................................................................................14
1.1.2. Thế nào là quản trị dự án ..............................................................................17
1.2. Vấn đề lập kế hoạch, lập lịch trong quản trị dự án phần mềm ........................21
1.2.1. Khái niệm về lập kế hoạch ...........................................................................21
1.2.2. Tự động hóa việc lập lịch .............................................................................21
Chương 2. Giải thuật di truyền và các ứng dụng ........................................................... 24
2.1. Tổng quan về giải thuật di truyền ....................................................................24
2.2. Lịch sử phát triển .............................................................................................25
2.3. Các bước áp dụng giải thuật di truyền .............................................................26
2.3.1. Mã hóa dữ liệu ..............................................................................................26
2.3.2. Khởi tạo quần thể..........................................................................................27
4.4. Dữ liệu demo ....................................................................................................62
4.4.1. Bảng công việc .............................................................................................62
4.4.2. Bảng loại tài nguyên .....................................................................................66
4.4.3. Bảng tài nguyên ............................................................................................66
4.5. Chương trình demo ..........................................................................................67
4.5.1. Tạo mới database lưu trữ dữ liệu. .................................................................67
4.5.2. Mở database có sẵn .......................................................................................68
4.5.3. Quản lý dự án................................................................................................69
4.5.4. Quản lý loại tài nguyên dự án .......................................................................70
4.5.5. Quản lý tài nguyên dự án ..............................................................................71
4.5.6. Quản lý công việc .........................................................................................71
4.5.7. Thực hiện việc estimate các công việc dự án ...............................................74
4.5.8. Chức năng lập lịch dự án bằng giải thuật di truyền:.....................................75
4.5.9. Các chức năng bổ trợ khác ...........................................................................77
4.6. Kết quả chạy chương trình ...............................................................................82
KẾT LUẬN ................................................................................................................... 90
TÀI LIỆU THAM KHẢO ............................................................................................. 91
PHỤ LỤC ...................................................................................................................... 92
7
THUẬT NGỮ VIẾT TẮT
Số thứ tự
1
2
3
4
5
TaskLine
4
5
DoingTask
NeedToDo
6
WorkingResource
Ý nghĩa
Tập hợp các công việc trực tiếp phía
trước của công việc j. Công việc j là
một công việc trong tập các công việc
được định nghĩa trong bảng phân rã
công việc.
Bảng phân rã công việc. Ở bảng này đã
chỉ định rõ công việc nào là công việc
trực tiếp phía trước, công việc nào là
công việc sau.
Đường biểu diễn chuỗi công việc. Đây
là tập hợp các công việc đã chỉ định rõ
thứ tự thực hiện. Giả sử công việc e có
công việc trực tiếp phía trước là d, trước
công việc d có công việc trực tiếp phía
trước c. Công việc e lại có công việc
trực tiếp phía sau là f, công việc f lại có
Hình 4.2 Mô hình quan hệ cơ sở dữ liệu .......................................................................51
Hình 4.3 Mô hình thực thể liên kết................................................................................52
Hình 4.4 Màn hình các chức năng Add-in ....................................................................59
Hình 4.5 Tạo project từ trình đơn Visual studio............................................................59
Hình 4.6 Chọn loại dự án là Project 2010 Add-in .........................................................60
Hình 4.7 Solution explorer của dự án ............................................................................60
Hình 4.8 class ThisAddIn ..............................................................................................61
Hình 4.9 Đồ thị thứ tự công việc được vẽ lại bằng phần mềm demo luận văn .............66
Hình 4.10 Truy cập tính năng tạo mới database từ menu ............................................67
Hình 4.11 Chọn tên database và lưu lại ........................................................................68
Hình 4.12 Chọn mở database từ menu .........................................................................68
Hình 4.13 Mở danh sách dự án từ menu ......................................................................69
Hình 4.14 Danh sách dự án ...........................................................................................69
Hình 4.15 Màn hình edit dự án ......................................................................................70
Hình 4.16 Màn hình tạo mới dự án ...............................................................................70
Hình 4.17 Vào chức năng quản trị Resource type từ menu...........................................70
Hình 4.18 Vào chức năng quản trị Resource từ menu ..................................................71
Hình 4.19 Màn hình quản trị tài nguyên.......................................................................71
Hình 4.20 Truy xuất màn hình đồ họa quản lý task từ menu ........................................72
Hình 4.21 Màn hình quản lý task ..................................................................................73
Hình 4.22 Xem danh sách tasks ....................................................................................73
Hình 4.23 Danh sách tasks trong dự án .........................................................................74
Hình 4.24 Màn hình estimate task .................................................................................75
Hình 4.25 Combobox công việc ....................................................................................75
10
Hình 4.26 Màn hình tùy chọn các tham số giải thuật di truyền ....................................76
Hình 4.27 Đồ thị hàm fitness qua các thế hệ .................................................................76
Bảng 4.5 Bảng lập lịch thực hiện công việc ..................................................................85
12
MỞ ĐẦU
Hiện nay quản trị dự án ngày càng được ứng dụng rộng rãi trong các ngành nghề xã
hội, trong đó có hoạt động quản lý dự án phần mềm. Cùng với sự phức tạp và đa dạng
của phần mềm, hoạt động quản lý dự án phần mềm ngày càng tinh vi và phức tạp hơn.
Trong đó nổi bật lên là vấn đề lập kế hoạch và phân bổ nguồn lực trong dự án. Với
những dự án ít đầu việc và ít người tham gia thì vấn đề lập kế hoạch và lập lịch dự án
một cách thủ công sẽ không đáng ngại. Nhưng với những dự án lớn, có nhiều đầu việc
phức tạp, số lượng nhân công (nguồn lực, tài nguyên) tham gia vào dự án lớn và
cónhiều biến động,khi đó vấn đề lập kế hoạch, lập lịch dự án sẽ gặp khó khăn. Người
làm kế hoạch sẽ phải tốn nhiều thời gian để tiến hành sửa đổi kế hoạch, lập lịch lại mỗi
khi có sự biến động về nhân sự (hay rộng hơn là thay đổi về nguồn lực thực hiện dự
án). Như vậy, vấn đề cấp thiết phải làm sao tự động được khâu này, để giảm thiểu sức
người cũng như nâng cao chất lượng khâu này.
Trong trí tuệ nhân tạo “Giải thuật di truyền” đã được ứng dụng rộng rãi đề giải quyết
nhiều bài toán phức tạp. Trong đó có các bài toán về lập lịch, lập kế hoạch.Việc áp
dụng giải thuật di truyền nhằm làm tối ưu hóa vấn đề lập kế hoạch và phân bổ nguồn
lực trong dự án phần mềm đã và đang được nghiên cứu cải tiến rất nhiều trên thế giới.
Trong luận văn này tôi đặt trọng tâm tìm hiểu giải thuật di truyền và áp dụng vào lập
lịch thực hiện các công việc trong dự án phần mềm với sự giới hạn về tài nguyên thực
hiện các công việc trong dự án.
Các kiến thức về lập lịch trong quản lý dự án phần mềm, kiến thức về giải thuật di
truyền, cách áp dụng giải thuật di truyền để tự động lập lịch dự án cũng như các kỹ
năng lập trình xây dựng ứng dụng hoàn chỉnh bước đầu có thể quản lý dự án và tự
động chọn lựa phương án tối ưu để lập lịch dự án được học viên trình bày chi tiết trong
luận văn vàđược chia thành 4 chương sau đây:
14
Chương 1. TổNG QUAN Về QUảN LÝ Dự ÁN PHầN MềM
1.1. Định nghĩa dự án,quản lý dự án phần mềm
1.1.1.
Dự án là gì
Có rất nhiều cách định nghĩa một dự án, chung quy lại dự án là quá trình tạo ra sản
phẩm hay dịch vụ. Do vậy các định nghĩa dự án như sau đều được chấp nhận: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. Hoặc định nghĩa dự án là một nhiệm vụ cần hoàn thành để có được một sản
phẩm, dịch vụ duy nhất trong một thời hạn đã cho với kinh phí dự kiến. Hoặc dự án là
một sự cố gắng nhất thời để tạo sản phẩm dịch vụ[5].
Cũng giống như các dự án thông thường, dự án phần mềmmang những đặc điểm cơ
bản như sau:
- Mỗi dự ánphải có một hoặc một số mục tiêu rõ ràng do dự ánlà một quá trình
tạo ra kết quả cụ thể.
- Mỗi dự án đều có một thời hạn nhất định, toàn bộ thời gian của dự án được chia
thành các giai đoạn: Giai đoạnkhởi đầu, giai đoạn triển khai và giai đoạn kết
thúc. Thời gian thực hiện dự án được chỉ định không được vượt quá một
khoảng thời gian nhất định (ví dụ không quá một tháng, một năm, hai năm…).
Thời gian thự hiện dự án được ước lượng thông qua các tính năng của sản phẩm
(kết quả của dự án) mà khách hàng yêu cầu và được sự đồng ý của khách hàng.
Để đảm bảo dự án hoàn thành theo đúng thời gian cho phép, bộ phận quản trị
dự án cần áp dụng các công cụ, phương pháp quản lý dự án phù hợp cho từng
loại hình dự án nhằm đảm bảo dự án hoàn thành đúng tiến độ đã đề ra.
- Mỗi dự án đều có sử dụng nguồn lực và nguồnlực này bị hạn chế. Các nguồn
lực đó bao gồm nhân lực, nguyên vậtliệu, ngân sách. Do các nguồn lực này là
nhất là xây dựng phần mềm sử dụng online qua internet, giải pháp thứ hai là
xây dựng phần mềm offline, không nhất thiết phải làm sao để có nhiều người
dùng truy xuất một lúc với giải pháp offline.Tùy vào giải pháp cụ thể mà đội
phát triển dự án sẽ có những phương án nguồn lực cụ thể để hoàn thành dự án,
như với giải pháp xây dựng phần mêm có thể sử dụng online qua internet thì
cần phải chọn nhân lực có các kỹ năng về lập trình web, ngược lại giải pháp
offline thì cần các nhân lực có kỹ năng về lập trình ứng dụng window.
Định hình sản phẩm của dự án phần mềm không cứng nhắc miễn là đáp ứng
được yêu cầu. Như ở ví dụ trên đã đưa ra về việc xây dựng phần mềm kế toán,
đội phát triển có thể định hình sản phẩm theo hai hướng là phần mềm được sử
dụng qua internet hoặc không cần kết nối qua internet miễn là phần mềm sao
đáp ứng được các tính năng cần có của một phần mềm kế toán mà khách hàng
yêu cầu.
Có nhiều công cụ trợ giúp và các công cụ này ngày càng tốt hơn mạnh hơn. Đối
với các dự án phần mềm các công cụ trợ giúp ngày càng mạnh, có thể kế đến
các công cụ quản lý mã nguồn, công cụ hỗ trợ quản lý yêu cầu, công cụ quản lý
lỗi, các công cụ hỗ trợ lập trình như Microsoft visual studio 2001, các công cụ
quản lý cơ sở dữ liệu…Nhờ có các công cụ này mà các dự án phần mềm ngày
càng được rút ngắn thời gian phát triển mà vẫn đảm bảo chất lượng phần mềm
và làm hài lòng khách hàng.
Dự án phần mềm còn có đăc điểm nữa là cho phép bộ phận triển khai dự án vận
dụng nhiều giải pháp: công nghệ, quản lý vào quản lý dự án.
Sản phẩm của dự án phần mềm là phần mềm bao gồm chương trình (mã máy) và dữ
liệu và tài liệu hướng dẫn, sản phẩm phần mềm mang các đặc trưng khác so với các
sản phẩm của dự án thông thường:
- Sản phẩm phần mềm là vô hình, không cầm nắm được như các sản phẩm thông
thường. Sản phẩm phần mềm được lưu trữ trên máy tính bao gồm chương trình,
cơ sở dữ liệu và các tài liệu hướng dẫn sử dụng. Khi sử dụng sản phẩm phần
mềm cần phải có máy tính, người sử dụng sản phẩm phần mềm cũng cần phải
- Báo cáo tình trạng dự án sơ sài
- Dự án không thực hiện quản lý độ rủi ro
- Việc giao tiếp khách hàng, người sử dụng và người phát triển dự án không tốt
dẫn tới hiểu sai yêu cầu khách hàng
- Dự án sử dụng công nghệ lạc hậu
- Không có khả năng xử lý độ phức tạp của dự án
- Phát triển thực hành không có hệ thống
- Thiếu kinh nghiệm trong việc quản lý dự án
- Các bên liên quan mang tính chính trị
- Các áp lực mang tính thương mại
Nhìn lại lịch sử về các dự án phần mềm, trong giai đoạn từ những năm 1970 và những
năm 1980 ngành công nghiệp phần mềm phát triển như vũ bão,do sản xuất phần mềm
giai đoạn này dễ hơn và giá thành rẻ hơn so với sản xuất phần cứng vì vậy ngành công
nghiệp sản xuất phần mềm nhanh chóng phát triển trong giai đoạn từ thập niên 1970
đến thập niên 1980. Các công ty cũng đã ứng dụng các phương thức quản lý phần
mềm, trong giai đoạn này các phương pháp quản lý phần mềm được đưa ra sử dụng
luôn, chưa qua quá trình kiểm thử thực tế nên hiệu quả không được tốt, đặc biệt là sự
không khớp giữa đặc tả người dùng và phần mềm được chuyển giao cho khách hàng,
17
dẫn đến một loạt các nguyên nhân thất bại của dự án phần mêm kể trên. Để tránh các
vấn đề trên, các phương thức quản lý dự án phần mềm tập trung vào làm rõ các yêu
cầu người dùng theo mô hình hình thác nước.
Hiện này phần mềm máy tính đã được ứng dụng rộng khắp vào hầu như tất cả các hoạt
động sản xuất, trong mọi ngành kinh tế, xã hội. Do vậy các phần mềm hiện đại ngày
nay nảy sinh nhiều vấn đề mới mà các nhà quản lý cần phải quan tâm, hoạch định để
giải quyết các vấn đề này. Các vấn đề của phần mềm bao gồm:
- Chi phí liên quan đến phần mềm ngày càng tăng.Do phần mềm ngày càng phức
Lập kế
hoạch
Khởi tạo dự án
Thực
hiện
Đóng
dự án
18
Hình 1.1 Vòng đời chuẩn của quản lý dự án
-
-
-
Giai đoạn xác định dự án: Giai đoạn này bắt đầu với công bố dự án cho đến
khi các tài liệu dự án được các bên tham gia thông qua. Kết quả của giai đoạn
này là một hoặc nhiều dự án được chọn, các tài liệu thông tin dự án được hoàn
thành và làm cơ sở để triển khai hoặc mời thầu dự án (với các dự án lớn).
Lập kế hoạch: Tạo các kế hoạch dự án, trong giai đoạn này có thể thay đổi tài
liệu dự án ở bước xác định dự án nếu như phù hợp và được các bên thông qua.
Thực hiện: Triển khai các kế hoạch dự án đã thông qua. Giai đoạn này dựa vào
kết quả ở bước Lập kế hoạch, bộ phận quản trị tiến hành lập lịch biểu chi tiết
19
-
Việc quản lý qua các thể hiện, không nhìn thấy trực tiếp:Các thể hiện ở đây là
tài liệu và chương trình, chúng rất đa dạng và thiếu thước đo, các dự án phần
mềm khác nhau lại dùng các chuẩn khác nhau, việc áp dụng chuẩn tài liệu rất
vất vả và mất nhiều công sức.
- Thách thức chất lượng: Chất lượng phần mềm phụ thuộc vào rất nhiều yếu tố
như: quy trình có phù hợp với thực tế hay không và có mang lại hiệu quả
không. Công nghệ và công cụ có phù hợp với sản phẩm và môi trường hay
không. Kiểm soát thay đổi, các thay đổi có được kiểm soát thường xuyên hay
không và phải đảm bảo rằng các thay đổi phải được thực thi nghiêm túc tránh
việc bỏ sót.
- Khống chế rủi ro:Rủi ro là các sự kiện khiến dự án thất bại, ví dụ: chi phí quá
cao, thời gian quá dài, tính năng quá kém. Rủi ro trong phần mềm có rất nhiều
và hay xảy ra, do vậy việc khống chế rủi ro phải được quan tâm, đảm bảo được
rằng phải biết được các rủi ro và lập kế hoạch phòng chống cụ thể. Nhiệm vụ
của người quản lý dự án trong việc khống chế rủi ro bao gồm: phải xác định, dự
đoán được rủi ro, phân tích rủi ro (khả năng và thiệt hại), đưa ra giải pháp để
khống chế rủi ro (quản lý rủi ro), giám sát (theo dõi sự xuất hiện, tác động của
rủi ro) và thực hiện các biện pháp quản lý.
Quản lý dự án phần mềm là việc quản lý toàn diện các mặt của hoạt động trên dự án
phần mềm để đảm bảo sản xuất ra phần mềm đúng chất lượng và yêu cầu của khách
hàng. Các hoạt động quản lý gồm mục tiêu thực hiện và chi tiết nội dung được liệt kê
trong bảng dưới đây:
Bảng 1.1 Các hoạt động của quản lý dự án
STT Hoạt động
Mục tiêu
Nội dung
-Xác định giai đoạn
- Xác định công việc
- Xác định sản phẩm giao
- Kiểm soát thay đổi
-Xác định thời gian hoàn thành
công việc
- Xác định trình tự thực hiện
- Lập lịch thực hiện
-Kiểm soát thực hiện theo lịch
- Lập kế hoạch huy động ngân
sách
-Ước tính chi phí
- Phân phối ngân sách
- Kiểm soát chi tiêu
- Xác định các chuẩn chất
lượng, độ đo, quy trình kiểm
định
20
Tìm và sử dụng người tham gia
một cách có hiệu quả
5
Quản lý nhân lực
việc
- Phát triển bồi dưỡng nguồn
lực
- Thúc đẩy, động viên, phối
hợp
- Xác định nhu cầu trợ giúp
- Lập kế hoạch mua sắm, trang
bị
-Tìm nhà cung cấp và đặt hàng
- Quản lý hợp đồng mua sắm
- Tổ chức việc cung cấp trợ
giúp
- Xác định nhu cầu thông tin
thành viên
- Xác định hình thức trao đổi
- Xác định dữ liệu thông tin lưu
trữ
- Quy định hình thức báo cáo,
lưu trữ, cung cấp thông tin
- Nhận diện các rủi ro
- Xác định khả năng xuất hiện,
phân tích tác động đến dự án
- Lập kế hoạch phòng chống
- Kiểm soát, xử lý
- Xác định khoản mục cấu hình
- Xây dựng triển khai quy trình
- Giám sát thực hiện quy trình
và lưu trữ cấu hình, phiên bản
Ngoài các hoạt động từng mặt người quản trị dự án cần quản lý chung để phối hợp các
Khái niệm về lập kế hoạch
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 dùng (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?).
Kế hoạch là công việc lặp đi lặp lại suốt quá trình dự án.Có rất nhiều kế hoạch cần lập
để quản trị dự án. Kế hoạch là công cụ chính để quản trị dự án.
1.2.2.
Tự động hóa việc lập lịch
Khi lập kế hoạch bộ phận chịu trách nhiệm lập kế hoạch cần phải quan tâm đến các
nguồn lực phục vụ cho dự án để lập kế hoạch được chi tiết và bám sát thực tế. Các
nguồn lực phục vụ dự án bao gồm:
- Con người: Lànhân tố hàng đầu quan trọng nhất quyết định đến kế hoạch cũng
như chất lượng của dự án. Với mỗi loại dự án khác nhau con người tham gia dự
án cần phải có năng lực phù hợp.
- Các phần mềm dùng lại được: Thành phần đóng gói dùng được ngay vào công
việc làm dự án, các thành phần đã kiểm nghiệm tốt, có thể sửa và dùng lại
được.
- Phần cứng, công cụ phần mềm chia sẻ.
Khi lập kế hoạch người quản trị dự án phải đưa ra được các kế hoạch phục vụ cho dự
án, đó là kế hoạch công việc, kế hoạch quản lý rủi ro, kế hoạch chất lượng, kế hoạch
quản lý cấu hình, kế hoạch ngân sách, kế hoạch nguồn lực. Trong các kế hoạch này kế
hoạch công việc là khá quan trọng. Trong phạm vi luận văn này học viên quan tâm tìm
22
Kế hoạch nguồn lực
Mô tả số lượng, kỹ năng, kinh nghiệm của
các thành viên dự án và giải pháp
Khi tiến hành lập kế hoạch, lập lịch công việc người lập kế hoạch cần phải làm các
công việc theo các bước như sau:
- Bước 1: Phải xây dựng được bảng phân rã công việc (work breakdown
structure). Đây là công việc mà đội dự án và người quản trị phải xác định nhiệm
vụ (gói công việc) cần thực hiện để tạo ra các sản phẩm.
- Bước 2: Phải xác định được các mối quan hệ giữa các công việc: đặt các gói
công việc theo tiến trình có trình tự trước-sau, công việc nào là công việc trực
tiếp phía trước, công việc nào trực tiếp phía sau.
- Bước 3: Ước lượng các gói công việc: mỗi gói công việc cần ước lượng ngày
công lao động (tốn bao nhiêu thời gian để làm) số lượng nhân lực và vật
lực(theo từng loại) cần tham gia để hoàn thành các gói công việc này.
- Bước 4: 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à thời gian kết thúc muộn nhất của từng công việc.
- Bước 5: 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 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.
Trong phạm vi nghiên cứu áp dụng giải thuật di truyền vào quản lý dự án phần mềm,
học viên thấy tại bước 4 và 5 của quá trình lập lịch, lập kế hoạch công việc có thể tiến
hành tự động. Việc áp dụng lập lịch tự động từ các dữ liệu đầu vào bao gồm: bảng dữ
liệu phân rã công việc, bảng dữ liệu ước lượng các gói công việc trong bảng phân rã
23
công việc, bảng dữ liệu nguồn lực hiện có trong dự án, tiến hành áp dụng giải thuật di
thể (thể xác) và tinh thần của cá thể sống như màu mắt, mức độ thông minh.
Sự sinh sản: Trong quá trình sinh sản sự tổ hợp (trao đổi chéo). Gen từ các cá thể cha
mẹ sẽ được chuyển cho thế hệ sau. Quá trình tạo mới cá thể con cháu có thể là đột
biến. Đột biến xảy ra khi các thành phần DNA có một chút thay đổi, nguyên nhân
chính của quá trình đột biến thường là lỗi trong quá trình sao chép các Gen từ các cá
thể cha-mẹ. Sự phù hợp của một cá thể (fitness) được đánh giá bằng sự thành công của
cá thể đó trong môi trường sống.
Giải thuật di truyền được ứng dụng để giải quyết các bài toán NP-Problem. NP-hard:
Non-deterministic polynomial time hard. Các bài toán dạng này bao gồm:
- Configuration: Cấu hình
- Data mining: Khai phá dữ liệu
- Selection: Chọn lọc
- Diagnosis: Phân tích
- Process monitoring and control: Thực hiện điều phối và giám sát
- Scheduling: Lập lịch
25
- Planning: Lập kế hoạch
- Rosters or schedules
- Tutoring systems: Hệ thống giám sát
- Decision support: Hỗ trợ quyết định
- Phylogenetics
“Giống như thuật toán tiến hóa nói chung, thuật toán di truyền hình thành dựa trên
quan niệm cho rằng quá trình tiến hóa tự nhiên là quá trình hoàn hảo và hợp lý nhất và
tự nó đã mang tính tối ưu. Quan niệm này có thể xem như một tiên đề đúng không
chứng minh được nhưng phù hợp với thực tế khách quan. Tính tối ưu trong tự nhiên
thể hiện ở chỗ thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ
trước nhờ hai quá trình cơ bản là sinh sản và chọn lọc tự nhiên. Xuyên suốt quá trình