Xuất phát từ lý do đó mà mục đích của đồ án này là nghiên cứu ứng dụng của thuật toán di truyền và mô hình cân bằng Nash vào trong công tác lập lịch thanh toán dự án nhằm đưa ra những gi
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 3
LỜI CAM ĐOAN 4
DANH MỤC CÁC CHỮ VIẾT TẮT 5
DANH MỤC HÌNH VẼ 6
DANH MỤC CÁC BẢNG 6
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH CÂN BẰNG NASH TRONG LÝ THUYẾT TRÒ CHƠI VÀ THUẬT TOÁN DI TRUYỀN 3
1.1 Tổng quan về lập lịch thanh toán dự án 3
1.2 Lý thuyết trò chơi và cân bằng Nash 4
1.2.1 Giới thiệu lý thuyết trò chơi 4
1.2.2 Các loại trò chơi 4
1.2.3 Mô hình cân bằng Nash 5
1.3 Thuật toán di truyền 5
1.3.1 Khái niệm 5
1.3.2 Các toán tử di truyền 6
1.3.3 Các bước của thuật toán di truyền 7
1.4 Kết hợp thuật toán di truyền và cân bằng Nash 8
1.5 Tiểu kết chương 1 10
CHƯƠNG 2: XÂY DỰNG THUẬT TOÁN DI TRUYỀN VÀ CÂN BẰNG NASH TRONG LẬP LỊCH THANH TOÁN DỰ ÁN 11
2.1 Mô tả bài toán 11
2.2 Mô hình hóa trò chơi và cân bằng Nash trong lập lịch thanh toán 12
2.2.1 Mạng dự án 12
2.2.2 Cách thức mô hình hóa việc thanh toán dự án 13
2.2.3 Tối ưu hóa mục tiêu 17
2.3 Thuật toán di truyền và giải pháp cân bằng Nash 18
2.3.1 Mô hình chung của thiết kế thuật toán di truyền cho bài toán lập lịch thanh toán dự án 18
2.3.2 Thiết kế thuật toán di truyền cho chiến lược thứ nhất 23
2.3.3 Thiết kế thuật toán di truyền cho chiến lược thứ hai 25
2.4 Tiểu kết chương 2 28
CHƯƠNG 3: THỬ NGHIỆM THỰC TẾ VÀ ĐÁNH GIÁ 29
3.1 Kịch bản mô phỏng 29
3.2 Các tham số của thuật toán di truyền 29
3.3 Bộ dữ liệu đầu vào 29
3.4 Đánh giá kết quả 41
Trang 23.5 Tiểu kết chương 3 47
CHƯƠNG 4: KẾT LUẬN VÀ KIẾN NGHỊ 48
4.1 Kết luận 48
4.2 Kiến nghị 50
4.3 Hướng phát triển của đề tài 51
TÀI LIỆU THAM KHẢO 52
PHỤ LỤC 53
Trang 3LỜI CẢM ƠN
Đầu tiên, tôi muốn gửi lời biết ơn chân thành tới PGS.TS Huỳnh Quyết Thắng, người trực tiếp hướng dẫn và tạo điều kiện cho tôi về thời gian, sự giúp đỡ tận tình về kiến thức, sự chỉ dẫn, định hướng và tài liệu tham khảo quý báu
Tiếp theo, tôi xin cảm ơn các thầy cô trong Viện Công nghệ thông tin và Truyền thông – Đại học Bách khoa Hà Nội đã giảng dạy, truyền đạt kiến thức cho tôi trong suốt thời gian qua
Tôi cũng xin cảm ơn anh Trịnh Bảo Ngọc đã tư vấn, giúp đỡ và hỗ trợ tôi trong quá trình thực hiện đề tài này
Xin cảm ơn gia đình, bạn bè đã chia sẻ, động viên tôi trong học tập và thời gian thực hiện nghiên cứu đề tài này
Trong luận văn này chắc chắn không tránh khỏi những chỗ thiếu sót, tôi mong nhận được những lời góp ý, chỉ bảo từ thầy cô để có thể hoàn thiện đề tài của mình tốt hơn
Hà Nội, ngày 19 tháng 04 năm 2016
Người thực hiện
Nguyễn Thị Thu Bích
Trang 4LỜI CAM ĐOAN
Luận văn Thạc sĩ “Lập lịch thanh toán dự án sử dụng mô hình cân bằng
Nash và thuật toán di truyền”, chuyên ngành Kỹ thuật Máy tính là công trình của
cá nhân tôi Các nội dung nghiên cứu và kết quả trình bày trong luận văn là trung thực, rõ ràng Các tài liệu tham khảo, nội dung trích dẫn đã ghi rõ nguồn gốc
Ngày 19 tháng 04 năm 2016
Tác giả luận văn
Nguyễn Thị Thu Bích
Trang 5DANH MỤC CÁC CHỮ VIẾT TẮT
STT Viết tắt Viết đầy đủ Chú thích
1 AOA Activity-On-Arrow Công việc trên mũi tên
2 AON Activity-On-Node Công việc trên nút
3 GA Genetic algorithm Thuật toán di truyền
4 NPV Net Presnet Value Giá trị hiện tại của dòng tiền thuần
5 NST Nhiễm sắc thể
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Sơ đồ cấu trúc thuật toán di truyền 8
Hình 1.2: Mô hình chiến thuật Nash GA 9
Hình 2.1: Mô hình mạng AON 13
Hình 2.2: Mô hình mạng AOA 13
Hình 2.3: Sự tương tác giữa nhà thầu và nhà đầu tư 14
Hình 3.1: Sơ đồ mạng dự án 1 30
Hình 3.2: Sơ đồ mạng dự án 2 35
Hình 3.3: Kết quả chạy chương trình của dự án 1 43
Hình 3.4: Kết quả chạy chương trình của dự án 2 46
DANH MỤC CÁC BẢNG Bảng 3.1: Mạng dự án 1 32
Bảng 3.2: Bảng thông số các hoạt động của mạng dự án 1 34
Bảng 3.3: Mạng dự án 2 38
Bảng 3.4: Bảng thông số các hoạt động của mạng dự án 2 41
Bảng 3.5: Lịch thanh toán ban đầu của dự án 1 42
Bảng 3.6: Lịch thanh toán tối ưu theo phần mềm của dự án 1 42
Bảng 3.7: Lịch thanh toán ban đầu của dự án 2 44
Bảng 3.8: Lịch thanh toán tối ưu theo phần mềm của dự án 2 45
Trang 7sự bất đồng giữa chủ đầu tư và nhà thầu Do đó, quá trình ra quyết định trong lập kế hoạch thanh toán dự án đều phải đáp ứng yêu cầu của cả hai bên là chủ đầu tư và nhà thầu Thông thường, chủ đầu tư luôn mong muốn việc thanh toán tất cả khoản tiền cho dự án được thực hiện muộn nhất tức là khi dự án được hoàn thành, trong khi đó mong muốn từ phía nhà thầu lại ngược lại, họ muốn các khoản thanh toán nên thực hiện ngay từ đầu khi bắt đầu dự án Bởi vậy, để giải quyết vấn đề này cần phải có một phương án phù hợp nhất cho yêu cầu của cả hai bên, đảm bảo lợi ích cho cả nhà đầu tư và nhà thầu trong suốt quá trình thực hiện dự án Xuất phát từ lý
do đó mà mục đích của đồ án này là nghiên cứu ứng dụng của thuật toán di truyền
và mô hình cân bằng Nash vào trong công tác lập lịch thanh toán dự án nhằm đưa ra những giải pháp tối ưu trong công tác lập lịch và cân bằng lợi ích cho chủ đầu tư dự
án và nhà thầu mà họ mong muốn
2 Mục tiêu của đề tài
Đề tài tập trung nghiên cứu sử dụng mô hình cân bằng Nash và thuật toán di truyền trong lập lịch thanh toán dự án
Để đạt được mục tiêu trên, đề tài tập trung vào các nhiệm vụ cụ thể như sau:
- Nghiên cứu về lý thuyết trò chơi và mô hình cân bằng Nash;
- Nghiên cứu về thuật toán di truyền và sự kết hợp thuật toán di truyền và cân bằng Nash;
- Ứng dụng thuật toán di truyền và mô hình cân bằng Nash vào lập lịch thanh toán dự
án phần mềm và đánh giá các kết quả nhận được
3 Phạm vi nghiên cứu
Trang 82
Trong luận văn này tôi xin nghiên cứu đến các vấn đề sau:
- Cơ sở lý luận của lý thuyết trò chơi và mô hình cân bằng Nash;
- Tổng quan về thuật toán di truyền;
- Lập lịch thanh toán dự án sử dụng mô hình cân bằng Nash và thuật toán di truyền
4 Phương pháp nghiên cứu
a Phương pháp nghiên cứu lý thuyết:
- Nghiên cứu tổng quan về lý thuyết trò chơi và cân bằng Nash
- Tìm hiểu về thuật toán di truyền
- Sự kết hợp thuật toán di truyền và cân bằng Nash
b Phương pháp nghiên cứu thực nghiệm:
Ứng dụng mô hình cân bằng Nash và thuật toán di truyền vào lập lịch thanh toán dự
án phần mềm
5 Kết quả
Nghiên cứu ứng dụng từ việc kết hợp thuật toán di truyền cùng mô hình cân bằng Nash trong lý thuyết trò chơi vào việc tối ưu hóa lịch thanh toán dự án, đảm bảo cân bằng những yêu cầu của chủ đầu tư và nhà thầu
Xây dựng một mô hình thực nghiệm trong quản lý lập lịch thanh toán dự án, đưa ra những giải pháp tối ưu trong lịch trình thanh toán của dự án
6 Ý nghĩa khoa học và thực tiễn
Với sự kết hợp mô hình cân bằng Nash và thuật toán di truyền sẽ tối ưu hóa trong công việc lập lịch thanh toán dự án mà vẫn đảm bảo được lợi ích của chủ đầu tư và nhà thầu
7 Bố cục luận văn
Bố cục luận văn được chia làm 4 chương như sau:
Chương 1: Tổng quan về mô hình cân bằng Nash trong lý thuyết trò chơi và thuật toán
di truyền
Chương 2: Xây dựng thuật toán di truyền và cân bằng Nash trong lập lịch thanh toán dự
án
Chương 3: Thử nghiệm thực tế và đánh giá
Chương 4: Kết luận và kiến nghị
Trang 93
CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH CÂN BẰNG NASH TRONG LÝ
THUYẾT TRÒ CHƠI VÀ THUẬT TOÁN DI TRUYỀN
1.1 Tổng quan về lập lịch thanh toán dự án
Lập lịch thanh toán dự án là một kế hoạch thanh toán chi tiết của một dự án
mà chủ đầu tư cần thực hiện Mục đích của việc lập lịch thanh toán là tạo ra một quy trình thanh toán tương ứng với mỗi công việc trong dự án đã hoàn thành Số lần thanh toán sẽ phụ thuộc vào quy mô của dự án, số lượng công việc cần thực hiện và những ưu đãi của chủ đầu tư đối với nhà thầu Mỗi giai đoạn thanh toán là phần trăm số tiền dự kiến đầu tư cần trả tương ứng với một hoặc một số các công việc cần hoàn thành hay chính là các mốc của dự án Việc thanh toán phải được tương đương với giá trị công việc hoàn thành Những giá trị các công việc này do chủ đầu
tư yêu cầu và được tóm tắt trong việc phân bổ ngân sách
Việc lập lịch thanh toán thường gặp khó khăn xuất phát từ sự bất đồng giữa chủ đầu tư và nhà thầu Các chủ đầu tư muốn thực hiện việc thanh toán vào cuối dự
án tức là khi bàn giao tất cả các công việc đã hoàn thành, nhưng nhà thầu lại muốn các khoản tiền đầu tư cần thanh toán ngay lúc đầu Vậy một lịch thanh toán phù hợp
là phải cân bằng cả hai nhu cầu trên và giữ cho công việc được thực hiện đúng tiến
độ Việc lập lịch thanh toán cần một lịch trình các công việc cụ thể hay là một tiến trình triển khai dự án và để tránh các xung đột trong việc lập lịch thanh toán thì tiến
độ thanh toán phải phản ánh sát giá trị thực tế của công việc hoàn thành
Đã có nhiều thuật toán được sử dụng để giải quyết bài toán lập lịch thanh toán như: thuật toán tham lam, các thuật toán heuristic, thuật toán tìm kiếm cục bộ, thuật toán Simulated Annealing, thuật toán Tabu Search, thuật toán di truyền…Tuy nhiên hầu hết các thuật toán đều có không gian tìm kiếm khá lớn Thuật toán di truyền có lợi ích là làm giảm không gian tìm kiếm, hội tụ về lời giải toàn cục và tối ưu đa mục tiêu trong bài toán lập lịch thanh toán
Một số bài báo nước ngoài đã nghiên cứu và cho thấy kết quả khả quan khi sử dụng cân bằng Nash và thuật toán di truyền như:
Trang 104
- "A Preference-Based Bi-Objective Approach to the Payment Scheduling Negotiation Problem with the Extended r-Dominance and NSGAII” của tác giả Wei-neng Chen và Jun Zhang
- "Nash genetic algorithms: examples and applications" của tác giả M Sefrioui J và J Periaux
- "Scheduling of activities to maximize the net present value of projects” của tác giả Yanf KK, Talbot FB, Patterson JH
1.2 Lý thuyết trò chơi và cân bằng Nash
1.2.1 Giới thiệu lý thuyết trò chơi
Lý thuyết trò chơi là một ngành chuyên nghiên cứu về việc đưa ra quyết định chiến lược Lý thuyết trò chơi được mô tả như một lý thuyết trong toán học, nghiên cứu tình huống trong đó người chơi sẽ hành động theo các cách khác nhau để tối ưu hóa lợi ích của mình Kết quả sẽ phụ thuộc vào quyết định của tất cả người chơi, trong đó mỗi người chơi sẽ cố gắng dự đoán sự lựa chọn của những người chơi còn lại để có thể đưa ra lựa chọn tốt nhất cho mình Một vấn đề quan trọng là lý thuyết trò chơi chính là phương pháp tiếp cận để đưa ra các quyết định nhằm giải quyết một vấn đề nào đó Điều này sẽ xác định xác suất thành công khi cho trước một không gian chiến lược
1.2.2 Các loại trò chơi
a Trò chơi có tổng bằng không và trò chơi có tổng khác không:
Trò chơi có tổng bằng không là trò chơi mà tổng điểm của các người chơi bằng không, số lợi ích của người này thu được bằng thiệt hại từ người chơi khác
Trò chơi có tổng khác không là loại trò chơi mà khi lợi ích của người chơi không nhất thiết thu được từ thiệt hại của người chơi khác hay lợi ích của người chơi này không nhất thiết phải tương ứng với thiệt hại của người chơi kia
b Trò chơi thông tin hoàn hảo và trò chơi thông tin không hoàn hảo:
Trò chơi thông tin hoàn hảo là trò chơi mà người chơi biết được tất cả các nước đi của đối thủ đã thực hiện và là bài toán con của trò chơi tuần tự
Trang 115
Trò chơi thông tin không hoàn hảo là trò chơi mà khi người chơi không biết đầy đủ thông tin về các nước đi của người chơi khác
1.2.3 Mô hình cân bằng Nash
Một trò chơi bao gồm ba yếu tố như: một tập hợp các người chơi; một tập hợp các hành động (hay chiến lược) có sẵn cho mỗi người chơi và một tập các kết quả thưởng phạt tương ứng Các kết quả thưởng phạt này tương ứng với mỗi hành động chiến lược của người chơi đã lựa chọn Một mô hình cân bằng Nash cơ bản là một tập các hành động với các kết quả thưởng phạt nhằm đảm bảo không có bất cứ người chơi nào có thể có kết quả thưởng phạt cao hơn bằng việc làm sai lệch các lựa chọn có sẵn [6]
Định nghĩa cơ bản của cân bằng Nash là: Nếu tồn tại một tập hợp các chiến lược cho một trò chơi với đặc tính là không có một đối thủ nào có thể hưởng lợi bằng cách thay đổi chiến lược hiện tại của mình khi các đối thủ khác không thay đổi, tập hợp các chiến lược đó cùng kết quả tương ứng nhận được tạo nên cân bằng Nash
Cân bằng Nash trong game cộng tác với 2 người chơi với 2 chiến lược khác nhau và người này biết hành động của người kia, ở trạng thái cả 2 đều tối ưu được lợi ích của mình với trạng thái tương ứng của đối thủ thì khi đó ta được trạng thái cân bằng Nash Như vậy bằng việc luân phiên thay đổi kế hoạch của mình dựa trên
kế hoạch của đối thủ để đến khi cả hai không thể tối ưu được nữa, khi đó cả 2 đều đạt được lợi ích
1.3 Thuật toán di truyền
1.3.1 Khái niệm
Thuật toán di truyền (Genetic algorithm – GA) là một phương pháp tìm kiếm tối ưu mô phỏng quá trình tiến hóa của tự nhiên, thuộc lớp thuật toán tiến hóa và sử dụng các kỹ thuật như kế thừa, đột biến, lai ghép, chọn lọc
Trong thuật toán di truyền, từ một quần thể gồm các cá thể tương ứng với một tập các “lời giải cho bài toán” và để đạt tới một lời giải tối ưu là một quá trình tiến
Trang 126
hóa nhằm tạo ra các thế hệ tốt hơn Mỗi cá thể lời giải được xem như một nhiễm sắc thể chứa các gen (thành phần của lời giải) có thể bị thay đổi Quá trình tiến hóa được bắt đầu từ một quần thể ngẫu nhiên các cá thể và quá trình tiến hóa được tiến hành qua các thế hệ vòng lặp Trong mỗi thế hệ, độ thích nghi của mỗi cá thể được đánh giá lại và độ thích nghi thường được lấy từ giá trị hàm mục tiêu ban đầu Quá trình lựa chọn cá thể để tiến hành lai ghép, đột biến là một quá trình lựa chọn ngẫu nhiên dựa trên mức độ thích nghi của cá thể, từ đó hình thành nên thế hệ mới Quá trình tiến hóa sẽ dừng lại khi đạt số thế hệ xác định hoặc thỏa mãn điều kiện dừng cho trước [9]
Thuật toán di truyền sử dụng một số thuật ngữ của ngành di truyền học như: Nhiễm sắc thể, Quần thể, Gen… Nhiễm sắc thể (NST) được tạo thành từ các Gen (được biểu diễn của một chuỗi tuyến tính) Mỗi gen mang một số đặc trưng và có vị trí nhất định trong NST Mỗi NST sẽ biểu diễn một lời giải của bài toán
1.3.2 Các toán tử di truyền
a Toán tử chọn lọc:
Toán tử chọn lọc (hay tái sinh) thường là toán tử đầu tiền áp dụng trong một quần thể Toán tử chọn lọc là hình thức chọn lọc cá thể tốt nhất và có dạng như một tổ hợp lai ghép Toán tử chọn lọc thường được sử dụng chính là để chọn lọc các
cá thể có độ thích nghi phù hợp tương ứng với điều kiện đặt ra của bài toán
b Toán tử lai ghép:
Toán tử lai ghép chính là quá trình tạo NST mới trên cơ sở các NST cha
mẹ bằng cách ghép một đoạn trên NST cha mẹ với nhau được một cá thể mới để đưa vào quần thể [10]
Trang 137
Toán tử đột biến là cá thể con mang một số đặc tính không có trong mã di truyền của cha mẹ hay một đoạn mã di truyền đã bị thay đổi tức là khác với cá thể cha mẹ Toán tử di truyền được thực hiện bằng cách chọn ngẫu nhiên một đoạn mã
di truyền trong quần thể rồi tạo ra một số k ngẫu nhiên trong khoảng từ 1 đến m với điều kiện 1 ≤ k ≤ m rồi thay đổi mã thứ k và đưa vào quần thể để tham gia quá trình
tiến hóa ở thế hệ tiếp theo [10]
1.3.3 Các bước của thuật toán di truyền
Thuật toán di truyền lại là một phương thức giải quyết vấn đề bài toán bằng cách sử dụng mô hình di truyền tiến hóa, tìm kiếm các giải pháp gần đúng nhằm tối
ưu hóa và tìm kiếm các vấn đề [9]
Bởi vậy, quy trình cơ bản của thuật toán di truyền bắt đầu bằng bước khởi tạo một quần thể ban đầu là các chuỗi nhiễm sắc thể gồm các gen tương ứng với lời giải của bài toán Các nhiễm sắc thể này sẽ được tính độ thích nghi thông qua hàm thích nghi hay độ phù hợp của lời giải Nếu độ thích nghi của các nhiễm sắc thể này chưa thỏa mãn điều kiện dừng của bài toán thì sẽ được tiến hành lai ghép và đột biến tạo
ra nhiễm sắc thể mới Các nhiễm sắc thể mới được tạo ra sẽ được tính lại độ thích nghi và nếu chưa thỏa mãn thì sẽ quay lại các bước sinh sản nhằm tạo ra một lời giải phù hợp nhất với bài toán Thuật toán sẽ kết thúc khi thỏa mãn các điều kiện dừng cho trước Các bước của thuật toán được thể hiện bằng sơ đồ sau [9]:
Trang 148
Nhận các tham số của bài toán
Khởi tạo quần thể ban đầu
Kết thúc
Bắt đầu
Lựa chọn giải pháp tốt
nhất
Hình 1.1: Sơ đồ cấu trúc thuật toán di truyền
1.4 Kết hợp thuật toán di truyền và cân bằng Nash
Một vấn đề đặt ra về trạng thái cân bằng Nash chính là việc tìm ra nó không đơn giản Nhưng bằng việc kết hợp cân bằng Nash với thuật toán di truyền, bài toán
đã trở nên dễ dàng hơn
Ta có thể thấy rằng trong lý thuyết trò chơi, mỗi người chơi có một tập các chiến lược, khi các bên đều đạt được lợi ích nhất định thì trò chơi sẽ ở trạng thái cân bằng Nash Nếu xem tập các chiến lược của người chơi như một tập quần thể lời giải tương ứng, chiến lược tối ưu được tìm dựa trên những người chơi khác xem như cách tạo thế hệ mới trong thuật toán di truyền, dựa trên ý tưởng này ta có sự kết hợp giữa thuật toán di truyền và cân bằng Nash trong lý thuyết trò chơi
Trang 159
Tối ưu P1XYP2 P1 ~ Quần thể 1 P2 ~ Quần thể 2
Tối ưu Yk+1
Cố định Y từ người chơi 2
Tối ưu Xk
Cố định Y từ người chơi 2
Tối ưu Yk
Cố định X từ người chơi 1 Gửi
Ký hiệu s = XY là mục tiêu đồng thời của cả 2 người chơi Theo lý thuyết cân bằng Nash, người chơi 1 tối ưu s bằng việc giữ nguyên chiến lược Y của người chơi
2 và chỉ tối ưu chiến lược X của mình Ngược lại, khi người chơi 2 tối ưu s thì chỉ
tối ưu trên tập chiến lược Y của mình và giữ nguyên X [8]
Giả thiết ở thế hệ thứ k-1, tập các chiến lược tối ưu của cả hai lần lượt là Xk-1,
Yk-1 Ở thế hệ thứ k, người chơi P1 tìm ra tập chiến lược tối ưu Xk bằng việc đánh
Hình 1.2: Mô hình chiến thuật Nash GA
Trang 1610
giá s = XkYk-1 Tại cùng thời điểm, người chơi P2 tìm ra Yk bằng việc đánh giá s =
Xk-1Yk [8]
Sau bước tối ưu, người chơi P1 gửi các giá trị tốt nhất Xk vừa tìm được cho P2
và ngược lại Các giá trị Xk,Yk này lại được tiếp tục sử dụng cho thế hệ k+1 Trạng thái cân bằng quần thể tương ứng với việc cả 2 người chơi đều không thể tối ưu hơn được phương án của mình Chú ý là quá trình tối ưu có thể được thực hiện tuần tự hoặc tiến hành song song [8]
mô hình cân bằng Nash vào lập lịch thanh toán dự án trong chương 2
Trang 1711
CHƯƠNG 2: XÂY DỰNG THUẬT TOÁN DI TRUYỀN VÀ CÂN BẰNG
NASH TRONG LẬP LỊCH THANH TOÁN DỰ ÁN 2.1 Mô tả bài toán
Bài toán lập lịch thanh toán dự án là một bài toán tối ưu đa mục tiêu Bài toán cũng là một mô hình trò chơi thông tin đầy đủ và có tổng khác không gồm hai đối thủ là chủ đầu tư và nhà thầu Giá trị tổng số tiền cần thanh toán tại mỗi giai đoạn của dự án luôn lớn hơn không Mô hình cân bằng Nash là kết quả mà bài toán cần đạt đến chính là cân bằng lợi ích cho chủ đầu tư và nhà thầu cũng định hướng cách gải quyết cho bài toán lập lịch thanh toán Việc áp dụng giải thuật di truyền bằng việc mô phỏng các khoản cần thanh toán trong mỗi giai đoạn và các công việc cần thực hiện trên nhiễm sắc thể được lai ghép và đột biến sẽ tạo ra một không gian tìm kiếm lời giải tối ưu cho bài toán
Lịch thanh toán dự án gồm nhiều process Một process trong dự án là một mảng việc /tiến trình trong một dự bao gồm các activities hay còn gọi là các task Mỗi process này gồm một hay nhiều các hoạt động hay activities cần thực hiện trong dự án được thể hiện trên các nút của mô hình mạng dự án
Trong việc thanh toán các khoản tiền của dự án thì cả nhà thầu và chủ đầu tư đều muốn tối đa lợi nhuận hoạt động tài chính và giá trị NPV (Net Presnet Value - Giá trị hiện tại dòng tiền thuần) của họ Ngân sách bao gồm tỉ suất lợi nhuận được thỏa mãn bởi hai bên Các nhà thầu đáp ứng các chi phí cho công việc và bằng việc
sử dụng các khoản thanh toán của ngân sách của chủ đầu tư Tiền tích lũy của các nhà thầu mang giá trị âm nếu giả sử nhà thầu được vay vốn với một lãi xuất vay vồn lớn hơn lãi xuất chiết khấu thường được sử dụng để tính toán NPV Tiến độ thanh toán tối ưu nhất với nhà thầu là có được tổng số thanh toán một lần khi bắt đầu dự
án Sau khi nhận được tổng số tiền trả ban đầu, các nhà thầu sẽ cố gắng giảm thiểu chi phí của mình bằng cách lập lịch trình công việc theo cách thức sao cho dòng chảy tiền mặt cao hơn Để tính toán NPV của chủ đầu tư, ta giả định rằng ngân sách ban đầu là có sẵn và NPV của tất cả các khoản giải ngân bởi chủ đầu tư phải được trừ vào khoản tiền này Tiến độ thanh toán tối ưu nhất của chủ đầu tư là việc thanh
Trang 1812
toán một lần duy nhất khi dự án đã được hoàn thành Sau đó, chủ đầu tư sẽ không phải lo lắng về lịch trình công việc mà chỉ quan tâm đến thời hạn dự án Tiến độ thanh toán dự án tối ưu cho cả nhà thầu và nhà đầu tư được gọi là giải pháp lý tưởng cho cả hai tức là có một lịch trình thanh toán tương ứng với các công việc đã hoàn thành của dự án
Cả hai lịch trình thanh toán và lịch trình hoạt động có ảnh hưởng đáng kể tới NPV của chủ đầu tư và nhà thầu Cả chủ đầu tư và nhà thầu đều có ý định muốn tối
đa hóa NPV của riêng mình nhưng gia tăng NPV của người này lại thường gây ra
sự sụt giảm NPV của người khác và đây chính là những điều cần giải quyết trong bài toán lập lịch thanh toán dự án đảm bảo cả lợi ích của nhà đầu tư và nhà thầu trong suốt quá trình thực hiện dự án
Sự phối hợp cả Lý thuyết trò chơi và Giải thuật di truyền để dưa ra mô hình giải quyết bài toán, cụ thể là điều chỉnh hệ thống gen của thuật toán di truyền thỏa mãn mô hình Win-Win của Lý thuyết trò chơi Những Activities cần thực hiện và số tiền cần thanh toán tương ứng sẽ được biểu diễn trên gen của thuật toán
2.2 Mô hình hóa trò chơi và cân bằng Nash trong lập lịch thanh toán
2.2.1 Mạng dự án
Mạng dự án là một phương pháp mà tính cốt lõi của nó là dùng lý thuyết trò chơi có hướng để xác định đường đi trong mạng, từ khởi điểm khởi đầu dự án đến thời điểm kết thúc dự án, qua một số công việc và các mối quan hệ giữa các công việc này Một mạng dự án còn thể hiện mối quan hệ qua một số các quyền ưu tiên (thứ bậc) của hoạt động tham gia trong dự án [7]
Có hai dạng mạng dự án thường gặp là AON (Activity-on-node: công việc trên nút) và AOA (Activity-on-arrow: công việc trên mũi tên)
Trang 1913
Trong kiểu mạng dự án AON thì mỗi sự kiện được đặt trên mũi tên và các nút thể hiện các công việc cần làm còn các sự kiện của dự án được thể hiện trên các mũi tên
Trong kiểu mạng dự án AOA thì mỗi sự kiện được đặt trên nút dự án, mỗi công việc được đặt trên mũi tên
2.2.2 Cách thức mô hình hóa việc thanh toán dự án
Các vấn đề trong việc điều phối tiến độ thanh toán dự án được thể hiện qua các nút công việc trong mô hình mạng dự án AON Giả định rằng các điều khoản thanh toán trong hợp đồng dự án được thể hiện trong các giai đoạn khác nhau và việc thanh toán dự án được thực hiện tại một nút của một mạng lưới hoạt động nơi
mà sẽ được hoàn thành từ một hay nhiều hoạt động Dự án sẽ được bắt đầu tại nút công việc đầu tiên và sẽ kết thúc tại nút công việc cuối cùng Vì vậy, trong việc đưa
ra các quyết định lập tiến độ thanh toán dự án thì giao thức lý tưởng nhất cho chủ
Trang 2014
đầu tư là việc chỉ phải thanh toán số tiền một lần cho tất cả khi dự án kết thúc Trong trường hợp này thì giá trị hiện tại của dòng tiền là tối thiểu Tuy nhiên giao thức có lợi nhất cho nhà thầu là có thể có được các khoản tiền thanh toán cho dự án khi dự án mới bắt đầu Trong trường hợp này, giá trị dòng tiền hiện tại của nhà đầu
tư lại đạt mức tối đa
Vì vậy, vấn đề của việc tối ưu hóa tiến độ thanh toán dự án có thể được mô hình hóa thành một dạng trò chơi với thông tin đầy đủ được đại diện bởi các tập chiến lược như sau [1]:
G = {𝑆𝑜, 𝑆𝑐, 𝐹𝑜 , 𝐹𝑐 }
Trong đó:
𝑆𝑜 : Tập các chiến lược của chủ đầu tư
𝐹𝑜 : Sự chênh lệch chi phí so với khoản đầu tư tối ưu của chủ đầu tư
𝑆𝑐 : Tập các chiến lược của nhà thầu hay nhóm phát triển dự án
𝐹𝑐 : Lợi ích ròng của nhà thầu
Để xây dựng một lịch tiến độ thanh toán dự án thì chủ đầu tư phải đưa ra một danh sách các khoản thanh toán như sau:
Payment list: (𝑝𝑎𝑦1,𝑝𝑎𝑦2, ,𝑝𝑎𝑦𝑁)
Trong biểu thức này, pay i là phần trăm ngân sách mà chủ đầu tư định trả cho
nhà thầu tại sự kiện i Danh sách các khoản cần thanh toán phải đáp ứng các ràng
buộc sau:
Chủ đầu tư
Nhà thầu
Hình 2.3: Sự tương tác giữa nhà thầu và nhà đầu tư
Trang 2115
Trước khi xác định các chi phí, xác định lợi ích của chủ đầu tư và nhà thầu thì trước hết cần phải xác định được tỷ lệ chiết khấu Bởi giá trị tiền mặt có thể bị thay đổi sau một khoảng thời gian nhất định nào đó do lạm phát, biến động tỷ giá và chi phí cơ hội Như vậy, có thể thấy rằng giá trị của khoản tiền dự kiến ban đầu sẽ suy giảm sau một thời gian nhất định trong khi số tiền này có thể sẽ được mang đi đầu
tư để thu lợi nhuận Nên tỷ lệ chiết khấu sẽ là giá trị để tính giá trị tiền bị hao hụt do chi phí cơ hội và suy ra giá trị lợi nhuận ròng sẽ được tính như sau:
∆𝑖 = 𝐵𝑖− 𝐶𝑖 tại 𝑡𝑖 (2.2) Trong đó:
∆𝑖 : là lợi ích ròng
B i : là doanh thu thuần
C i : là chi phí cho các giai đoạn của dự án trong khoảng thời gian t i
Để tính lợi ích ròng trong thời gian bắt đầu dự án t 0 thì cần phải sử dụng tỷ lệ chiết khấu để tính giá trị dòng tiền bị sụt giảm như sau:
∆𝑖0= 𝐵𝑖− 𝐶𝑖
Trong đó, r là lãi suất chiết khấu và ∆𝑖0 là lợi ích ròng trong thời gian t i so với
lợi ích ròng trong thời gian t 0 Thông thường khi chọn t 0 = 0 ta sẽ có:
( 1+𝑟 ) 𝑡𝑖
𝑁 𝑖=0
− ∑ 𝐶𝑖
( 1+𝑟 ) 𝑡𝑖
𝑁 𝑖=0
Trang 22− ∑ 𝐶𝑖
( 1+𝑟 ) 𝑡𝑖
𝑁 𝑖=0
≈ ∑ 𝐵𝑖 𝑒−𝑟.𝑡𝑖 𝑁
𝑖=0
− ∑ 𝐶𝑖 𝑒−𝑟.𝑡𝑖 𝑁
Đối với chủ đầu tư:
Từ công thức trên, ta thấy rằng phương án thanh toán tốt nhất đối với chủ đầu
tư là thanh toán các khoản tiền khi dự án hoàn thành Bởi vậy, giá trị 𝑡𝐹𝑖𝑛𝑖𝑠ℎ là lớn nhất mà 𝑡𝐹𝑖𝑛𝑖𝑠ℎ chính là thời gian để hoàn thành toàn bộ dự án Giá trị nhỏ nhất đối
với chủ đầu tư tại t 0 = 0 sẽ là:
𝑈( 1 + 𝑟 )𝑡𝑓𝑖𝑛𝑖𝑠ℎ ≈ 𝑈 𝑒
Các trường hợp khác về các khoản chi phí để tối ưu khoản đầu tư cho chủ đầu
tư là F 0 sẽ được tính như sau:
𝐹0 = ∑𝑝𝑎𝑦𝑖
100 𝑈 𝑒
−𝑟.𝑡𝑖 − 𝑈 𝑒−𝑟.𝑡𝐹𝑖𝑛𝑖𝑠ℎ 𝑁
𝑖=1
(2.9)
Bởi vậy cần giảm thiểu F 0 để giảm các khoản chi phí mà chủ đầu tư phải trả
Đối với nhà thầu:
Đối với nhà thầu (hay nhóm phát triển dự án) có thể dễ dàng thấy được họ muốn các khoản thanh toán được thực hiện càng sớm càng tốt để tối đa hóa lợi nhuận ròng Vì vậy, lợi nhuận ròng của nhà thầu sẽ được tính bằng công thức sau:
Trang 2317
𝐹𝑐 = ∑𝑝𝑎𝑦𝑖
100 𝑈 𝑒
−𝑟.𝑡𝑖 𝑁
𝑖=0
− ∑ 𝐶𝑖 𝑒−𝑟.𝑡𝑖 𝑁
𝑖=0
(2.10)
Vì lý do này mà để đáp ứng được yêu cầu của nhà thầu thì cần tối đa hóa giá trị hàm 𝐹𝑐
Như vậy, để tìm được phương án tối ưu đáp ứng được cả yêu cầu của chủ đầu
tư và nhà thầu thì việc sử dụng thuật toán di truyền sẽ tìm kiếm được kết quả tối ưu
và đạt được cân bằng Nash cho mô hình bài toán lập lịch thanh toán hay còn là mô hình trò chơi gồm hai người chơi là chủ đầu tư và nhà thầu
2.2.3 Tối ưu hóa mục tiêu
Trong quá trình thanh toán dự án, chủ đầu tư xác định tiến độ thanh toán được đưa ra trong danh sách cần thanh toán với nhà thầu từ đó sẽ xác định được lịch trình hoạt động cụ thể của danh sách công việc và danh sách chế độ tương ứng Khi cả chủ đầu tư và nhà thầu muốn tối ưu hóa NPV của mình và đạt được lợi ích tối đa,
đó là lý do mà họ hợp tác, đàm phán với nhau để đưa ra quyết định cuối cùng cho lịch trình thanh toán và lịch trình công việc tương ứng Nếu lịch trình công việc không được tối ưu hóa tốt thì nhà thầu sẽ phải thay đổi lịch trình công việc nhằm nâng cao giá trị NPV để có lợi cho mình Với một lịch trình thanh toán nhất định, vấn đề tối ưu hóa NPV của chủ đầu tư chỉ là việc điều phối giải quyết các ràng buộc tài nguyên với tiền chiết khấu ròng Để thuận tiện cho việc đưa ra quyết định, cần
có một giải pháp dựa trên sự khác biệt giữa giá trị giới hạn NPV của nhà thầu và
NPV thực tế tương ứng với lịch trình công việc Giả sử với giải pháp x với một lịch
trình hoạt động được đánh giá như theo các bước sau [7]:
Bước 1: Đánh giá các ràng buộc trên 𝑁𝑃𝑉𝑜𝑢𝑝𝑝𝑒𝑟/𝑃𝑆 của NPV chủ đầu tư khi
lịch trình thanh toán PS được cố định Các ràng buộc trên thu được từ việc:
- Bỏ qua tất cả các hạn chế về tài nguyên, nhân lực
- Giả sử tất cả các sự kiện, biến cố xảy ra sớm nhất có thể để các khoản thanh toán xảy ra càng sớm càng tốt
Trang 2418
- Chi phí xảy ra càng muộn càng tốt
- Giả sử mọi công việc được thực hiện theo cách thức mà chi phí tốn kém là thấp nhất
Bước 2: Tính toán sự khác biệt giữa các ràng buộc 𝑁𝑃𝑉𝑜𝑢𝑝𝑝𝑒𝑟/𝑃𝑆 và NPV thực
tế của đẩu tư là NPVo
OD(x) = 𝑁𝑃𝑉𝑜𝑢𝑝𝑝𝑒𝑟/𝑃𝑆 NPVo (2.11)
Nếu giá trị mức tối ưu hóa OD(x) là nhỏ thì có nghĩa là lịch trình công việc trong giải pháp x cũng được tối ưu hóa Nếu không, lịch trình công việc trong x không tối ưu hóa, do đó x sẽ không được lựa chọn [7]
2.3 Thuật toán di truyền và giải pháp cân bằng Nash
Thuật toán di truyền là một công cụ hiệu quả cho các vấn đề tối ưu hóa tổ hợp
Nó được áp dụng để xây dựng mô hình hóa giải quyết các mô hình trò chơi với thông tin đầy đủ, tối ưu hóa tiến độ thanh toán dự án
2.3.1 Mô hình chung của thiết kế thuật toán di truyền cho bài toán lập lịch thanh toán dự án
a) Các ràng buộc của bài toán
Mô hình giải quyết bài toán lập lịch thanh toán phải thỏa mãn một số yêu cầu ràng buộc sau:
Một trạng thái của dự án được hoàn thành khi tất cả các hoạt động ràng buộc với nó phải được hoàn thành
Việc chuyển đổi trạng thái dự án được thực hiện khi các trạng thái dự
án ràng buộc trước đó đã được hoàn thành
b) Lược đồ mã hóa
Trong việc tối ưu việc thanh toán dự án, cả tiến độ thanh toán và tiến độ hoạt động của dự án cũng cần phải được tối ưu Để biểu diễn các quyết định được tối ưu thì ta thiết kế một giải pháp để xem xét vấn đề này:
Payment list: (𝑝𝑎𝑦1,𝑝𝑎𝑦2, ,𝑝𝑎𝑦𝑁)
Trang 2519
Activity list: (𝑎1 , 𝑎2 , … , 𝑎𝑁 )
Để đạt được yêu cầu mong muốn như ở trên ta phải sử dụng hàm thích nghi
F Adaptability như sau:
Bởi vì 𝐹0 > 0 nên 𝐹𝐴𝑑𝑎𝑝𝑡𝑎𝑏𝑖𝑙𝑖𝑡𝑦 đạt một giá trị tối đa khi hàm thích nghi của nhà thầu là 𝐹𝑐 đạt giá trị tối đa và hàm thích nghi của chủ đầu tư 𝐹𝑜 đạt giá trị tối thiểu Ta nhân đôi 𝐹0 để đảm bảo rằng ∑ 𝑝𝑎𝑦𝑖
100 𝑈 𝑒−𝑟.𝑡𝑖
𝑁 𝑖=0
không bị hạn chế khi tính toán hàm thích nghi Bởi vậy, ta suy ra công thức tính hàm thích nghi như sau:
100 𝑈 𝑒
−𝑟.𝑡𝑖 𝑁
𝑖=0
– ∑ 𝐶𝑖 𝑒−𝑟.𝑡𝑖 𝑁
Do đó, chúng ta cần phải tìm ra lịch thanh toán dự án đúng tiến độ hoạt động
để tối đa hàm thích nghi 𝐹𝐴𝑑𝑎𝑝𝑡𝑎𝑏𝑖𝑙𝑖𝑡𝑦và là hàm chọn lọc
c) Mô hình Nhiễm sắc thể
Trong một điều kiện đơn giản ta phân tích một dự án gồm 10 nút Vì vậy để đồng thời tìm được một kết quả tối ưu cho cả nhà thầu và nhà đầu tư thì chúng ta sẽ chọn 1 Nhiễm sắc thể gồm 20 gen Trên NST này có 10 gen đầu tiên đại diện cho ngân sách cho từng giai đoạn của dự án, 10 gen tiếp theo là số lượng công việc phải làm ở mỗi đoạn của dự án đối với nhà thầu Tất nhiên có những nhiệm vụ quan trọng phải được ưu tiên bằng cách xác định thứ tự ưu tiên cho hoạt động này Nguyên tắc của công việc này là phải đảm bảo cho các Nhiễm sắc thể mà có tổng giá trị 10 gen đầu tiên bằng 100 và tổng giá trị của 10 gen cuối bằng tổng số tác vụ
sẽ được thực hiện bởi nhà thầu Ví dụ:
Trong ví dụ này thì cho ta thấy là nhà thầu có 20 nhiệm vụ (tổng của 10 gen cuối) để hoàn thành dự án này đúng với tiến độ thanh toán Cụ thể:
Trang 26họ phải hoàn thành nhiệm vụ 2, 3 và 4 rồi cứ tiếp tục thực hiện như vậy cho đến khi
họ hoàn thành tất cả các nhiệm vụ
d) Khởi tạo
Để xây dựng quần thể với một mật độ nhất định thì ta phải xây dựng một
phương pháp cho phép tạo ra ngẫu nhiên một mảng n các phần tử Ví dụ, nếu trường hợp có biến n = 20 và nó rất quan trọng là mảng phải đáp ứng các điều kiện
chúng ta đưa ra đối với nhiễm sắc thể
e) Chọn lọc
Để có được lời giải tốt hơn sau mỗi thế hệ thì chúng ta phải chọn các nhiễm sắc thể tốt nhất để thực hiện lai ghép chéo Điều quan trọng là chúng ta phải thực hiện sắp xếp nhiễm sắc thể theo thứ tự của tầm quan trọng của hàm chọn lọc theo hướng giảm dần Như vậy, các nhiễm sắc thể trong quần thể là những nhiễm sắc thể
có giá trị lớn nhất của hàm chọn lọc và là giải pháp tốt nhất mà chúng ta có sau mỗi thế hệ
Trang 2721
có là giải pháp tốt nhất Chúng ta sẽ tiến hành lai ghép một nửa đầu tiên của đoạn
nhiễm sắc thể trong quần thể (với 2n nhiễm sắc thể) và gọi đoạn nhiễm sắc thể sẽ được ghép đầu tiên của C là C 1 (với n1= n/2 nhiễm sắc thể) và thực hiện lai ghép chéo mỗi đoạn trong C 1 được gọi là nhiễm sắc thể mẹ cùng với nhiễm sắc thể được
chọn ngẫu nhiên trong C gọi là nhiễm sắc thể cha Mỗi lần 2 nhiếm sắc thể được lai
ghép sẽ tạo ra 2 thế hệ sau Sau khi thực hiện lai ghép trong quần thể ta thu được
2.n1= n nhiễm sắc thể mới Chúng ta lại tiến hành lai ghép một đoạn khác của
nhiễm sắc thể của quần thể ban đầu sẽ được n nhiễm sắc thể mới Sau đó chúng ta
sẽ sắp xếp độ thích nghi theo hướng giảm dần (quần thể hiện tại sẽ bao gồm một nửa số nhiễm sắc thể từ quần thể ban đầu và một nửa số nhiễm sắc thể mới) Như vậy chúng ta có một thế hệ mới với nhiễm sắc thể mới là giải pháp phù hợp nhất
Vấn đề quan trọng tiếp theo là sau khi chúng ta có cặp nhiễm sắc thể để tiến hành lai ghép thì chúng ta cần quản lý việc lai ghép để đảm bảo các hạn chế không đáng có Chẳng hạn chúng ta xem xét một nhiễm sắc thể gồm 20 gen, và để đảm bảo yêu cầu thì ta chia nhiễm sắc thể thành hai phần, đoạn đầu gồm 10 gen đầu và đoạn sau là 10 gen tiếp theo đó Trước khi thực hiện lai ghép thì ta vẫn cần thực hiện chọn đoạn nhiễm sắc thể cần lai ghép để chắc chắn là kế hoạch được khả thi và đảm bảo sự đa dạng nguồn tài nguyên di truyền nên ta chọn 4 đoạn để lai ghép, 2 đoạn đầu là tổng 10 gen và 2 đoạn sau là tổng 10 gen còn lại Tại vị trí cắt sẽ chọn
ngẫu nhiên hai điểm tại hai vị trí khác nhau và gọi hai điểm cắt này là cut-1 và cut-2 trong đó cut-1 < cut-2 Với một cặp gen cha-mẹ ta được 2 thế hệ con là thế hệ con 1
là thế hệ con 2 với số lượng gen tương đương với số lượng gen của cha-mẹ Sau đó
ta sao chép những gen trong các đoạn cut-1 tới cut-2 của cha mẹ, sao chép nó thành đoạn cut-1 và cut-2 của thế hệ con 1 và thế hệ con 2 Đối với thế hệ con 1 sau khi thừa hưởng yếu tố di truyền từ cut-1 tới cut-2 của nhiễm sắc thể cha thì bước tiếp
theo ta cần thực hiện sao chép đoạn gen của mẹ trong đó gồm có một đoạn gen đầu
và từ cut-2 đến kết thúc nhiễm sắc thể mẹ nhưng để đảm bảo các ràng buộc ta tạo ra một biến gọi là $sum ( $sum phải nhỏ hơn hoặc bằng 100) và khởi tạo các giá trị của
$sum bằng tổng giá trị của các gen nằm trong đoạn từ vị trí cut-1 đến cut-2 Sau mỗi
Trang 2822
lần sao chép đoạn gen của nhiễm sắc thể thì sẽ tính toán lại gía trị tổng bằng cách thêm giá trị của các gen đã được bổ sung bởi vậy sẽ nảy sinh một vài trường hợp Trường hợp thứ nhất là sẽ có tổng vượt quá 100 sau khi thêm một gen nào đó vào,
nếu gen cuối cùng thì đơn giản là ta gán một giá trị của gen bằng 100 trừ đi $sum, ta
sẽ gán giá trị ngẫu nhiên từ gen hiện tại cho tới đoạn gen cuối cùng sao cho tổng giá
trị của các gen này bằng 100 trừ đi $sum Trường hợp thứ hai có thể xảy ra là tổng
của tất cả các gen lại nhỏ hơn 100 thì lúc này ta giữ lại giá trị cuối cùng khi thêm
các gen và tính toán lại $sum rồi gán giá trị cho gen cuối bằng 100 trừ đi $sum Từ
đó, ta sẽ đảm bảo được các hạn chế và ta cũng làm tương tự quá trình này với 10 gen và thế hệ con 2 còn lại.Ta có ví dụ minh họa như sau:
Đột biến sẽ được tiến hành cùng với quá trình lai ghép Mỗi một thế hệ con
sẽ được đột biến với xác suất đột biến là 𝑝𝑥 Tương tự như vậy, khi chúng ta thực hiện lai ghép chéo ta sẽ tách các nhiễm sắc thể thành hai đoạn gồm 10 gen đầu tiên
và 10 gen cuối cùng và tiến hành đột biến trên hai đoạn này Với mỗi quy trình trong việc thực hiện đột biến thì ta chỉ trao đổi ngẫu nhiên các gen trong nhiễm sắc thể với điều kiện hai đoạn gen này là không giống nhau
Trang 2923
Điều kiện để hoàn thành quá trình của bài toán này là thời gian hoạt động của kết quả tốt nhất trong các thế hệ không thay đổi nữa hoặc sau một số lượng các thế
hệ nhất định có kết quả tốt nhất không khác so với ∆% ngân sách đầu tư Giá trị này
sẽ được điều chỉnh tùy thuộc vào các vấn đề đưa ra nhằm đạt được một giải pháp với thời gian tính toán phù hợp
i) Lựa chọn các thông số
Các thông số được sử dụng trong thuật toán sẽ được lựa chọn một cách chính xác nhằm nâng cao tính hiệu quả của thuật toán di truyền và bên cạnh đó chương trình cũng có chức năng cho phép tùy chỉnh các thông số tùy thuộc vào số lượng các giai đoạn của dự án cũng như các yêu cầu về thời gian cho phép
2.3.2 Thiết kế thuật toán di truyền cho chiến lược thứ nhất
Ý nghĩa của chiến lược:
Chiến lược đầu tiên này sẽ xác định giá trị thích nghi cho chủ đầu tư hay NPVo hay nhằm tối ưu hóa NPVo trong việc lập lịch thanh toán Kết qủa thu được ở chiến lược thứ nhất này là quá trình các giai đoạn cần thanh toán cho nhà thầu Hàm mục tiêu trong chiến lược đầu tiên này sẽ được tính theo công thức:
Z = 𝑁𝑃𝑉𝑜𝑖𝑑𝑒𝑎𝑙 𝑁𝑃𝑉 𝑜
𝑁𝑃𝑉𝑜𝑖𝑑𝑒𝑎𝑙 𝑁𝑃𝑉𝑐𝑖𝑑𝑒𝑎𝑙 𝑁𝑃𝑉 𝑐
Trong đó ideal chỉ giải pháp lý tưởng trong trường hợp tương ứng với giá trị
thuần của nhà thầu NPV c và giá trị thuần của chủ đầu tư NPV o
Khi tính toán giá trị của hàm mục tiêu của các NST, ta làm tròn giá trị đến chữ
số có nghĩa thứ hai Với một giá trị hàm mục tiêu nhất định có thể tồn tại một số
giải pháp tương ứng để NPV c và NPV o khác nhau, giải pháp đó được gọi là giải pháp chi phối Rõ ràng các giải pháp chi phối này sẽ được đưa ra bởi việc ra quyết
định Giả định rằng NPV c được tính bằng cách sử dụng cùng một tỉ lệ chiết khấu r với NPV o
Mã:
Trang 3024
Tiến độ thanh toán được cung cấp bởi chủ đầu tư được sử dụng như là các nhiễm sắc thể (NST) trong thuật toán di truyền Sự biểu diễn của NST liên quan đến tỉ lệ phần trăm của tiến độ thanh toán dự án sẽ được trả tại các nút trạng thái dự
án NST được ký hiệu bằng một loạt các số là số nút trong mạng lưới hoạt động Vì vậy mỗi số nguyên đại diện cho một gen của NST Số gen có liên quan trực tiếp đến kích thước của các đơn vị phần trăm ngân sách phân bổ cho một gen Nếu số NST
có 20 gen thì mỗi gen sẽ được phân bổ 5% ngân sách tương ứng với NST đó Vì vậy số tiền mà chủ đầu tư phải trả cho một nút được thể hiện bởi tần số xuất hiện của các gen đại diện cho nút đó trong NST [1]
Thao tác:
Tần số xuất hiện của các gen đại diện cho các nút quan trọng trong việc thể hiện tiến độ thanh toán dự án của chủ đầu tư
Toán tử lai ghép: Để áp dụng được các toán tử lai ghép chéo, hai điểm được
lựa chọn để phân chia NST cha mẹ thành 3 phần Những NST con được hình thành bằng cách lấy những phần tử đầu tiên, phần tử cuối cùng của NST mẹ và phần giữa của NST cha Lấy một ví dụ về toán tử lai ghép chéo hai điểm được đưa ra như hình dưới đây Các gen chuyển sang NST con sẽ được in đậm Kết quả lai ghép chéo trên một con duy nhất [1]
Toán tử đột biến: Hai loại toán tử đột biến được xem xét là toán tử đột biến
toàn cục và toán tử đột biến địa phương Toán tử đột biến toàn cục là một NST được chọn để gây đột biến với xác suất đột biến toàn cục và mỗi điểm của cá thể trên NST được xem xét để sử dụng các xác suất đột biến toàn cục, các điểm được đột biến gán với một sự kiện ngẫu nhiên Trên một NST có thể chọn nhiều hơn một nơi để gây đột biến Toán tử đột biến địa phương là một NST được chọn để gây đột biến với xác suất đột biến địa phương và một nơi trên NST được chọn để biến đổi, các nơi được chọn gây đột biến được gán với một sự kiện ngẫu nhiên Do đó, chỉ có một gen là bị đột biến trên một NST được lựa chọn [1]
Trang 3125
Giá trị hàm thích nghi: Để xác định giá trị thích nghi của một NST X của
chiến lược đầu tiên này ta lấy giá trị hàm mục tiêu cho NST X trừ đi giá trị lớn nhất của hàm mục tiêu trong quần thể Để tính toán được giá trị thích nghi, ta cần phải
xác định được hai giá trị NPV c và NPV o Mỗi NST X sinh ra trong chiến lược đầu
tiên này sẽ được gửi đến chiến lược thứ hai để xác định giá trị NPV o lớn nhất, xác định vị trí và thời gian tương ứng với các khoản thanh toán Các thông tin này được
sử dụng cùng với cơ cấu thanh toán để tính NPV c [1]
Khả năng thích nghi:
Sau khi chủ đầu tư cung cấp một lịch trình thanh toán cho nhà thầu, nhà thầu
cố gắng tối đa hóa NPV c bằng cách điều chỉnh mạng lưới hoạt động của mình để có lịch trình tương ứng Lịch trình của nhà thầu được giao cho các chủ đầu tư tính toán
NPV o của nó theo hai lịch trình Các hàm lợi ích được chỉ định trong khả năng thích
ứng hay thích nghi của các NST Nó được coi là tỉ lệ chiết khấu (r) cho cả nhà thầu
và chủ đầu tư là như nhau cho việc tính toán NPV o và NPV o i Ngoài ra nếu số lượng
các khoản thanh toán của chủ đầu tư không đủ thì khoản tiền của nhà thầu so với
ngân sách ban đầu sẽ được một lãi xuất i cao hơn r [1]
2.3.3 Thiết kế thuật toán di truyền cho chiến lược thứ hai
Ý nghĩa của chiến lược:
Mục tiêu trong chiến lược thứ hai là tối đa hóa NPV o trong phần trăm thanh toán cụ thể Sự phân phối thanh toán được đặt lên một cá thể của chiến lược đầu tiên, cá thể mà giá trị thích nghi đã được xác định Kết quả thu được từ chiến lược thứ hai là một lịch trình công việc, hoạt động được xác định bằng việc tối đa hóa
NPV o
Mã:
NST của việc điều phối các hoạt động của nhà thầu sẽ có thể đại diện cho các hoạt động bao gồm các bước và các chế độ hoạt động của các hoạt động, công việc Mỗi gen phải có số thứ tự và chế độ hoạt động tương ứng Mỗi gen trong NST đã
Trang 32 Chọn ngẫu nhiên một cặp cha mẹ
Tìm công việc, hoạt động đầu tiên trong cha mẹ được chọn mà chưa gán cho con nào Công việc, hoạt động đó sẽ trở thành công việc, hoạt động kế tiếp trên con
Nếu việc gán các hoạt động được thực hiện giống nhau trên cả cha mẹ, thì việc gán các hoạt động trên con cũng hoàn toàn tương tự Còn nếu không, chọn một cách thức gán của cha mẹ một cách ngẫu nhiên và ghi nó vào con
Nếu tất cả các gen của NST con được hoàn thành thì STOP
Còn nếu không tiếp tục xem xét tới gen tiếp theo trong con và lặp lại vòng lặp LOOP
Các toán tử đột biến: Với chiến lược thứ hai này, có hai kiểu toán tử đột biến
và đột biến tái định vị và đột biến đảo bit Đột biến tái định vị chọn ngẫu nhiên ra hai vị trí trong NST và chuyển nội dung vị trí trước xuống vị trí sau Đột biến tái định vị có thể gây ra các hành vi vi phạm quyền ưu tiên, do vậy một chức năng sửa chữa đơn giản được bổ sung đột biến tái định vị [1]
Toán tử đột biến đảo bit sử dụng để thay đổi các lựa chọn cho một hoạt động đối với các toán tử hoạt động, phương thức hoạt động, các NST được lựa chọn một
Trang 3327
cách ngẫu nhiên và các chế độ hoạt động cũng được phân chia ngẫu nhiên để đáp ứng tiến độ thanh toán
Vấn đề điều phối, thời hạn: Để có được giá trị NPV một cá thể trong quẩn thể
thì trước tiên cá thể đó phải được lên kế hoạch điều phối Điều phối được sử dụng là một điều phối chuyển tiếp với việc điều phối hoạt động xảy ra càng sớm càng tốt nhưng vẫn đảm bảo không vi phạm các hạn chế tài nguyên, nguồn lực và sắp đặt các hoạt động trên các NST [1]
Giả sử có hai hoạt động, công việc xảy ra liên tiếp là act1 và act2 trên NST
theo đúng thứ tự và giả sử cả hai đều có đầy đủ các điều kiện, tức là những hoạt động xảy ra trước nó đã được điều phối Nếu các nguồn lực, tài nguyên có sẵn
không đủ cho act1 thì act2 cũng sẽ không được điều phối ngay cả khi nguồn lực, tài
nguyên đủ cho việc lập lịch Do đó, việc điều phối lập lịch sẽ giữ nguyên vị trí, trật
tự, thứ tự của các hoạt động có trên NST, có nghĩa là bất kỳ hoạt động nào trong vị trí sẽ có thời gian bắt đầu nhỏ hơn một hoạt động trong một vị trí nằm trước nó trên NST Hơn nữa, để cải thiện tiến độ bằng cách không dịch chuyển thứ tự các hoạt động, công việc trên NST với thời gian bắt đầu các hoạt động bao hàm các sự can thiệp với quá trình tiến hóa tự nhiên của thuật toán di truyền Lịch trình, điều phối lập lịch được sửa đổi theo cách này sẽ tương ứng với một NST khác trong quá trình tạo ra thuật toán mới
Giá trị thích nghi: Một khi NST được điều phối, thời hạn kết thúc hoạt động
công việc thì để tính hàm mục tiêu cho chiến lược thứ hai này là cần tính tỉ lệ chiết khấu, tỉ lệ cho vay, thời gian và số lượng tiền phải trả cần phải được xác định Giá trị thích nghi của NST trong quần thể được tính bằng giá trị tối thiểu NPV của quần thể trừ đi giá trị NPV của NST
Khả năng thích nghi:
Sau khi nhận được thông tin về chế độ thanh toán được đưa ra bởi chủ đầu tư thì nhà đầu tư sẽ điều chỉnh mạng lưới hoạt động và các chế độ hoạt động tối đa hóa
NPV c [1]
Trang 3428
2.4 Tiểu kết chương 2
Chương này đã mô tả cách thức sử dụng thuật toán di truyền trong bài toán lập lịch thanh toán Mỗi dự án bao gồm nhiều công việc hay là các activities là các gen
trên nhiễm sắc thể Mỗi nhiễm sắc thể có n gen trong đó nửa số gen đầu là các
khoản tiền cần thanh toán tương ứng với nửa số gen còn lại là các activities cần thực hiện Một lịch thanh toán dự án là các quá trình (process) trong đó là tập các activities Việc tiến hành lai ghép, đột biến và tính giá trị hàm thích nghi cho mỗi cá thể sẽ đánh giá sự phù hợp của lời giải Đây là tiền đề để xây dựng mô hình thực nghiệm trong chương 3