MỤC LỤC
PHỤBÌA . ii
NHIỆM VỤ ĐỒÁN TỐT NGHIỆP . iii
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN .v
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN . vi
LỜI CẢM ƠN . vii
TÓM TẮT ĐỒÁN . viii
MỤC LỤC. 1
DANH MỤC BẢNG BIỂU. 3
DANH SÁCH HÌNH VẼ. 4
DANH SÁCH CÔNG THỨC. 5
Chương 1. TỔNG QUAN. 7
1.1. Đặt vấn đề. 7
1.2. Ý nghĩa khoa học và thực tiễn. 8
1.3. Mục tiêu của nghiên cứu. 9
1.4. Bốcục.10
Chương 2. TỔNG QUAN VỀQUẢN TRNDANH MỤC ĐẦU TƯ.11
2.1. Giới thiệu vềquản trịdanh mục đầu tư.11
2.2. Nội dung quản trịdanh mục đầu tư.11
2.1.1. Những giả định nền tảng.11
2.1.2. Lý thuyết danh mục Markowitz.12
2.1.3. Các khái niệm liên quan tới lý thuyết danh mục.13
Chương 3. TỔNG QUAN VỀTHUẬT GIẢI DI TRUYỀN.20
3.1. Giới thiệu vềquá trình tiến hóa tựnhiên.20
3.2. Giới thiệu vềthuật giải di truyền.20
3.3. Các quá trình chính trong thuật giải di truyền.21
3.3.1. Tiến trình Chọn lọc.21
3.3.2. Quá trình Lai ghép.22
3.3.3. Quá trình Đột biến.23
3.3.4. Hàm Thích nghi.23
3.3.5. Điều kiện kết thúc lặp của GAs.23
3.3.6. Thuật giải di truyền.24
Chương 4. PHƯƠNG PHÁP NGHIÊN CỨU.25
4.1. Mô tảbài toán.25
4.1.1. Xửlý dữliệu.25
4.1.2. Phát biểu bài toán.25
4.1.3. Mã hóa bài toán.26
4.1.4. Khởi tạo quần thể.26
4.1.5. Hàm lượng giá.27
4.1.6. Các tham số.27
4.2. Phân tích và thiết kếhệthống.28
4.2.1. Use Case Diagrams.28
4.2.2. Tổchức các gói (Packages Definitions).30
4.2.3. Sơ đồlớp (Class Diagrams).32
4.2.4. Sơ đồtuần tự(Sequence Diagrams).38
4.2.5. Lược đồcơsởdữliệu.40
Chương 5. KẾT QUẢTHỰC NGHIỆM.41
5.1. Phương pháp thực nghiệm.41
5.2. Kết quảchương trình.41
5.3. Đối chiếu thực tế.42
Chương 6. KẾT LUẬN CHUNG.45
TÀI LIỆU THAM KHẢO.47
PHỤLỤC. P1
Phụlục A: Giới thiệu vềSàn Giao dịch Chứng khoán HOSE. P1
Phụlục B: Khái quát vềtình hình thịtrường chứng khoán Việt Nam. P2
Phụlục C: Các chứng khoán niêm yết trên sàn HOSE (đến ngày 19/11/2008). P3
47 trang |
Chia sẻ: netpro | Lượt xem: 1993 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Ứng dụng thuật giải di truyền và lập danh mục đầu tư, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c đó sẽ
đáp ứng những mục tiêu đầu tư của chúng ta. Điều quan trọng là sự thừa nhận
trong việc thiết lập danh mục đã được giải thích trong lý thuyết đa dạng hóa
danh mục đầu tư.
2.2. Nội dung của quản trị danh mục đầu tư
2.2.1. Những giả định nền tảng
Trước khi trình bày lý thuyết danh mục, chúng ta cần làm rõ một vài giả
định chung của lý thuyết. Điều này không chỉ bao gồm một danh mục đầu
tư tối ưu mà còn có nghĩa là rủi ro và thái độ rủi ro.
- Một giả định cơ bản của lý thuyết danh mục đó là, một nhà đầu tư mong
muốn tối đa hóa tỷ suất sinh lợi từ việc đầu tư của mình, với mộ mức độ
rủi ro cho phép. Để giải quyết một cách thích đáng giả định này, chắc
chắn những quy tắc nền tảng phải được trình bày. Đầu tiên, danh mục
của bạn nên bao gồm tất cả những tài sản và các khoản nợ phải trả,
không chỉ đơn thuần là cổ phiếu và trái phiếu, mà còn có các khoản mục
như xe hơi, nhà cửa, và những khoản đầu tư có tính thanh khoản thấp
như: tem, đồ cổ, đồ nội thất…
12
Tuy nhiên trong phạm vi đề tài, chúng ta cũng giả định rằng, danh mục đầu
tư của chúng ta chỉ bao gồm các loại chứng khoán cổ phiếu. Tuy nhiên, cục
diện đầu tư cũng cần phải được xem xét lại vì tỷ suất sinh lợi từ hầu hết các
loại chứng khoán này tác động qua lại lẫn nhau, và mối quan hệ giữa những
tỷ suất sinh lợi đối với các tài sản trong danh mục đầu tư là rất quan trọng.
Vì một danh mục đầu tư tốt, không đơn giản chỉ là một bộ sưu tập các
khoản mục đầu tư tốt cá thể.
- Một giả định nữa của lý thuyết danh mục đầu tư, về cơ bản, những nhà
đầu tư luôn từ chối rủi ro. Bằng chứng là, hầu hết các nhà đầu tư không
thích rủi ro, thì họ luôn theo đuổi những hình thức bảo hiểm khác nhau như
bảo hiểm nhân thọ, y tế… nhằm đề phòng những biến cố không chắc chắn
trong tương lai. Và dĩ nhiên, sự lựa chọn giữa hai cổ phiếu có cùng tỷ suất
sinh lợi, nhà đầu tư sẽ chọn tài sản có mức rủi ro thấp hơn. Tuy nhiên, điều
này không ám chỉ rằng mọi người đều từ chối rủi ro. Sự thật là không ai
mua bảo hiểm cho tất cả mọi thứ xung quanh cả. Thậm chí, có người còn
không mua bất kỳ loại bảo hiểm nào, đó có thể là một sự lựa chọn, hoặc là
họ không có khả năng theo đuổi nó. Thêm nữa, một số cá nhân, bên cạnh
việc mua các loại bảo hiểm như tai nạn ô tô, bênh tật… họ đồng thời cũng
mua vé số, đánh bạc… vốn được biết đến như những khoản sinh lợi tiêu
cực. Điều này đồng nghĩa với việc luôn tồn tại những cá nhân sẵn lòng chấp
nhận rủi ro.
Trong khi có nhiều thái độ ứng xử khác nhau về rủi ro, thì giả định cơ bản
của chúng ta cho rằng, hầu hết các nhà đầu tư đều chuyển một khoản tiền
lớn để phát triển danh mục đầu tư mà vẫn từ chối rủi ro. Vì vậy, chúng ta
mong đợi một mối quan hệ đồng thuận giữa tỷ suất sinh lợi mong đợi và rủi
ro mong đợi. Đặc biệt, đây cũng là điều mà nhìn chung, chúng ta luôn tìm
kiếm trong tương lai.
2.2.2. Lý thuyết danh mục Markowitz
13
Vào đầu những năm 1960, những nhà đầu tư đã nói về rủi ro, nhưng không
có những ước lượng cụ thể cho từng khoản mục. Tuy nhiên, để xây dựng
một mô hình danh mục đầu tư, các nhà đầu tư phải xác định lượng rủi ro có
thể có. Mô hình danh mục đầu tư cơ bản được Harry Markowitz phát triển.
Ông là người đoạt giải Nobel kinh tế sau khi phát minh ra thuyết danh mục
hiện đại năm 1952. Học thuyết này nhấn mạnh tầm quan trọng của danh
mục đầu tư, các rủi ro và sự tương quan giữa các cổ phiếu với việc đa dạng
hóa danh mục đầu tư.
Điều này đã thay đổi cách thức mà các nhà đầu tư đang thực hiện. Cụ thể,
Markowitz đã phát hiện, tỷ suất sinh lợi mong đợi đối với một danh mục
của các tài sản, và một ước lượng rủi ro mong đợi. Markowitz chỉ ra rằng,
phương sai của tỷ suất sinh lợi là một ước lượng có ý nghĩa của rủi ro danh
mục với một tập hợp những giả định, và ông đã tìm ra công thức để tính
toán phương sai của danh mục. Công thức tính toán phương sai danh mục
này, đã chỉ ra sự quan trọng của việc đa dạng hóa đầu tư để giảm thiểu rủi
ro tổng thể và cũng chỉ ra cách đa dạng hóa đầu tư hiệu quả.
2.2.3. Các khái niệm liên quan tới lý thuyết danh mục
2.2.3.1. Tỷ suất lợi nhuận (Rate of Return)
Chúng ta định nghĩa tỷ suất sinh lợi qua một thời kỳ t, với thời gian là ∆, sẽ là tỷ suất sinh lợi được thực hiện từ thời điểm t đến thời điểm + ∆. Nếu giá của chứng khoán ở thời điểm t là P(t) , ở thời
điểm + ∆ là P( + ∆, và thu nhập của chứng khoán trong suốt
thời kỳ là d(t). Vậy tổng tỷ suất sinh lợi của chứng khoán sẽ là:
= + ∆ +
2.1
Do đó tỷ lệ sinh lợi của chứng khoán sẽ là 00 = − 1
Ví dụ: Giá đóng cửa của cổ phiếu A tháng 10/2008 là 40$ và tháng
11/2008 là 50$. Chi phí phải trả cho giao dịch là 4$ khi mua và bán cổ
14
phiếu, cổ tức nhận được là 2$. Vậy tổng tỷ suất sinh lợi của chứng
khoán sẽ là:
= 50$ + 2$ − 4$40$ = 1,2 *à 00 = 0,2 = 20%
2.2.3.2. Tỷ suất lợi nhuận mong đợi (Expected Rate of Return)
Tỷ suất lợi nhuận mong đợi đối với một tài sản được tính như trong
bảng 2.1. Tỷ suất sinh lợi mong đợi đối với một tài sản rủi ro cụ thể
với tập hợp tỷ suất sinh lợi tiềm năng, và một giả định các khả năng
xảy ra các mức tỷ suất sinh lợi dự kiến.
Bảng 2.1. Ví dụ về cách tính tỷ suất mong đợi
Khả năng Tỷ suất sinh lợi (%) Tỷ suất sinh lợi mong đợi
0,20 8,0 1,60
0,30 10,0 3,00
0,20 12,0 2,40
0,30 14,0 4,20
E(R)= 11,20
Tỷ suất sinh lợi mong đợi của tài sản rủi ro:
ER = . 2.2
Trong đó:
- Rj là tỷ suất sinh lợi của tài sản rủi ro trong tình huống j.
15
- Pj là khả năng xảy ra mức tỷ suất sinh lợi Rj
Tỷ suất sinh lợi mong đợi đối với một danh mục của những khoản đầu
tư, đơn giản là giá trị trung bình theo tỷ trọng của tỷ suất sinh lợi mong
đợi đối với những khoản đầu tư cụ thể trong danh mục. Tỷ trọng này là
sự cân đối tổng giá trị đối với các khoản đầu tư.
Tỷ suất sinh lợi mong đợi đối với một danh mục đầu tư được tính theo
công thức sau:
= . 2.3
Trong đó:
- wi : Tỷ trọng đầu tư tài sản i trong danh mục.
- E(Ri): Tỷ suất sinh lợi mong đợi của tài sản i.
2.2.3.3. Phương sai (độ lệch chuNn) của tỷ suất sinh lợi đối với một
khoản đầu tư cụ thể (Variance or Standard Deviation).
Phương sai hay độ lệch chuNn, là một phương pháp ước lượng chênh
lệch của những mức tỷ suất sinh lợi có thể có Ri, so với tỷ suất sinh lợi
mong đợi [E(Ri)] sau đây.
Phương sai: = [ − ]. 2.4
Trong đó:
- pi là khả năng xảy ra tỷ suất sinh lợi.
- Độ lệch chuNn: = √ 2.5
Tuy nhiên, khi tính toán độ lệch chuNn của các giá trị tỷ suất sinh lợi
thực nghiệm, chúng ta có thể lấy tổng bình phương các khoảng chênh
lệch và chia cho N. Với N là số mẫu thực nghiệm.
16
= 1%&[ − ]' 2.6
Việc tính toán phương sai và độ lệch chuNn của tỷ suất sinh lợi mong
đợi đối với tài sản rủi ro trong bảng 2.1 được tính lại trong
bảng 2.2.
Bảng 2.2. Tính toán Phương sai tỷ suất sinh lợi mong đợi đối với một
tài sản cụ thể.
Ri [Ri – E(Ri) {Ri – E(Ri)}2 Pi {Ri – E(Ri)}2pi
8,0 -3,20 10,24 0,20 2,048
10,0 -1,20 1,44 0,30 0,432
12,0 0,80 0,64 0,20 0,128
14,0 2,80 7,84 0,30 2,235
4,960
Khi đó = 4,960 và độ lệch chuNn = 2,227%
2.2.3.4. Hiệp phương sai của những tỷ suất sinh lợi (Covariance)
Trong phần này, chúng ta trình bày về hiệp phương sai của tỷ suất sinh
lợi được dự định để ước lượng, đưa ra công thức để tính toán nó. Phân
tích danh mục, chúng ta thường quan tâm tới hiệp phương sai của tỷ
suất sinh lợi hơn là sự thay đổi giá cả và một vài thứ khác.
Hiệp phương sai là một ước lượng để hai mức độ ưu tiên khác nhau
“tiến lại gần nhau” nhằm tạo ra một giá trị có ý nghĩa.
Một giá trị hiệp phương sai dương, có nghĩa là tỷ suất sinh lợi đối với
hai khoản đầu tư có khuynh hướng dịch chuyển về một hướng, so với
mức trung bình của chúng trong suốt một khoảng thời gian. Ngược lại,
17
một giá trị hiệp phương sai âm, chỉ ra tỷ suất sinh lợi đối với hai khoản
đầu tư có khuynh hướng dịch chuyển về hai hướng khác nhau, liên
quan đến mức trung bình vào từng thời điểm cụ thể trong một khoảng
thời gian. Độ lớn của hiệp phương sai phụ thuộc vào phương sai của
những chuỗi tỷ suất sinh lợi cụ thể, cũng như mối quan hệ giữa những
chuỗi tỷ suất sinh lợi.
Đối với hai tài sản A và B, hiệp phương sai của tỷ suất sinh lợi được
định nghĩa là:
()*+, = -.á 0ị 1ỳ *ọ345[+ − +][, − ,]6 = +, 2.6.1
Trong trường hợp tỷ suất sinh lợi của hai tài sản A và B được tính dự
vào thực nghiệm thì hiệp phương sai của chúng được xác định như sau:
()*+, = 1%+ − +. , − ,' 2.6.2
2.2.3.5. Hệ số tương quan của những tỷ suất sinh lợi (Corelation)
Hiệp phương sai bị ảnh hưởng bởi biến thiên của hai chuỗi tỷ suất sinh
lợi riêng lẻ. Vì vậy, một con số hiệp phương sai chỉ có thể nhấn mạnh
một mối quan hệ mờ nhạt, nếu hai chuỗi tỷ suất sinh lợi riêng lẻ không
ổn định nhưng lại phản ánh mối quan hệ bền vững nếu hai chuỗi này
rất ổn định. Hiển nhiên, chúng ta muốn “chuNn hóa” ước lượng hiệp
phương sai này để đưa vào xem xét tính biến thiên của hai chuỗi tỷ
suất sinh lợi riêng lẻ như công thức sau:
8+, = ()*+,+, 2.7
Trong đó:
- 8+, : Hệ số tương quan của những tỷ suất sinh lợi.
- + : Độ lệch chuNn của RiA
18
-
, : Độ lệch chuNn của RiB
Như vậy hệ số tương quan là sự “chuNn hóa” ước lượng hiệp phương
sai. Bằng cách chuNn hóa hiệp phương sai bởi những độ lệch chuNn
riêng lẻ sẽ mang lại hệ số tương quan 8+,), hệ số tương quan này chỉ
có thể thay đổi trong khoảng từ -1 đến +1. Giá trị +1 có thể nhấn mạnh
mối quan hệ tuyến tính xác định giữa RA và RB, nghĩa là, tỷ suất sinh
lợi đối với hai cổ phiếu cùng thay đổi trong một kiểu tuyến tính xác
định hoàn toàn. Giá trị -1 có thể nhấn mạnh mối quan hệ phủ định hoàn
toàn giữa hai chuỗi tỷ suất sinh lợi, như khi tỷ suất sinh lợi của một cổ
phiếu cao hơn mức trung bình, tỷ suất sinh lợi của những cổ phiếu
khác sẽ thấp hơn mức trung bình bằng một số lượng lớn.
Để tính toán ước lượng chuNn này, cần tính toán được độ lệch chuNn
đối với hai chuỗi tỷ suất riêng lẻ. Chúng ta đã có những giá trị RiA -
E(RA) và RiB – E(RB).
2.2.3.6. Độ lệch chuNn của một danh mục đầu tư
Như đã biết, một tương quan +1,0 có thể nhấn mạnh tương quan xác
định hoàn toàn, và một giá trị -1,0 có nghĩa là tỷ suất sinh lợi đã thay
đổi theo hướng hoàn toàn ngược lại. Một giá trị 0 có nghĩa là tỷ suất
sinh lợi không có mối quan hệ tuyến tính – tương quan độc lập, qua
thống kê chúng không có tương quan với nhau. Nhưng không có nghĩa
là chúng độc lập với nhau. Một giá trị như 8+, = 0,108 là rất thấp.
Liên quan đến hệ số tương quan thấp này không khác thường đối với
những cổ phiếu trong những ngành khác nhau (ngành giải khát và
ngành xây dựng). Sự tương quan giữa những cổ phiếu của những công
ty trong phạm vi một vài ngành gần bằng 0,85.
Bây giờ, chúng ta thảo luận về các khái niệm của hiệp phương sai và
hệ số tương quan, chúng ta có thể xem công thức tính toán độ lệch
chuNn của tỷ suất sinh lợi đối với một danh mục những tài sản, phương
19
pháp ước lượng rủi ro của chúng ta đối với một danh mục. Như đã
được ghi nhận, Harry Markowitz tìm thấy công thức để tính toán độ
lệch chuNn của danh mục đầu tư.
= & + ()*
:
2.8
Trong đó:
- : Độ lệch chuNn của danh mục đầu tư.
- wi : Tỷ trọng đầu tư của tài sản riêng lẻ trong danh mục, tỷ trọng này
được xác định bởi tỷ lệ của giá trị trong danh mục đầu tư.
- σQ : Phương sai của tỷ suất sinh lợi đối với tài sản i.
- ()* : Hiệp phương sai giữa tỷ suất sinh lợi đối với tài sản i và tài
sản j, với Covij = .
Công thức này cho thấy độ lệch chuNn của danh mục đầu tư là một
phần giá trị trung bình của những phương sai riêng lẻ (trong đó tỷ
trọng là bình phương), cộng với tỷ trọng hiệp phương sai giữa những
tài sản trong danh mục. Độ lệch chuNn đối với danh mục của những tài
sản bao gồm, không chỉ phương sai của những tài sản riêng lẻ mà còn
bao gồm hiệp phương sai giữa những cặp tài sản riêng lẻ trong danh
mục.
Công thức (2.8) chính là cơ sở để chúng ta giải quyết bài toán đã đặt ra
bằng thuật giải di truyền, sẽ được trình bày ở chương kế tiếp.
20
CHƯƠNG 3. TỔNG QUAN VỀ THUẬT GIẢI DI TRUYỀN
3.1. Giới thiệu về quá trình tiến hóa tự nhiên
Như chúng ta đều biết rằng, quá trình tiến hóa tự nhiên là quá trình hoàn hảo
nhất, hợp lý nhất và đặc biệt là, tự nó đã mang tính tối ưu. Dù rằng không được
chứng minh, song nó vô cùng phù hợp với hiện thực khách quan. Thực tế cho
thấy, quá trình tiến hóa thể hiện tính tối ưu ở chỗ, thế hệ sau bao giờ cũng tốt
hơn thế hệ trước.
Tiến hóa tự nhiên được duy trì nhờ hai quá trình cơ bản: sinh sản và chọn lọc tự
nhiên. Xuyên suốt quá trình này, các thế hệ mới luôn được sinh ra để bổ sung và
thay thế cho thế hệ cũ. Cá thể nào phát triển hơn, thích ứng hơn đối với môi
trường sẽ tồn tại. Ngược lại, cá thể nào không thích ứng được sẽ bị đào thải.
Các cá thể mới sinh ra trong quá trình tiến hóa nhờ sự lai ghép ở thế hệ cha –
mẹ. Một cá thể mới có thể mang những tính trạng của cha – mẹ (gọi là cơ chế di
truyền), cũng có thể mang những tính trạng hoàn toàn mới (gọi là cơ chế đột
biến). Chính hai cơ chế này giữ vai trò chủ đạo trong tiến trình tiến hóa và có
mức độ quan trọng như nhau. Dù rằng, xác suất xảy ra của hiện tượng đột biến
thấp hơn rất nhiều so với hiện tượng di truyền.
3.2. Giới thiệu về thuật giải di truyền
Thuật giải di truyền (Genetic Algorithms – GAs), do John Holland (1975) và
Goldberg (1989) đề xuất và phát triển. Cũng như những thuật toán tiến hóa khác
nói chung, thuật giải di truyền dựa trên việc mô phỏng quá trình tiến hóa sinh
học. Chính vì vậy, nguyên lý hoạt động của thuật giải sử dụng các nguyên lý di
truyền về sự thích nghi và sự sống của các cá thể thích nghi nhất trong tự nhiên.
Nhìn chung, các thuật toán tiến hóa tuy có có những điểm khác biệt, song về cơ
bản, đều mô phỏng ba quá trình cơ bản: lai ghép, đột biến, và chọn lọc tự nhiên.
Tập hợp tất cả các lời giải trong không gian tìm kiếm gọi là kiểu hình. Các kiểu
hình này khi mã hóa gọi là kiểu gen. Toán tử di truyền sẽ được thực thi trên đối
21
tượng này. Một ánh xạ từ kiểu hình sang kiểu gen gọi là quá trình mã hóa. Mỗi
cá thể trong kiểu gen có nhiều nhiễm sắc thể. Trong mỗi nhiễm sắc thể có chứa
nhiều gen. Mỗi đặc trưng di truyền cụ thể được quy định bởi giá trị và vị trí của
gen trong nhiễm sắc thể. Độ thích nghi là thước đo khả năng sống sót và phát
triển của cá thể trong môi trường.
Toán tử xác định cá thể trong thế hệ hiện tại được giữ lại trong thế hệ tiếp theo,
được gọi là chọn lọc. Toán tử kết hợp ngẫu nhiên hai cá thể được chọn là lai
ghép. Toán tử thay đổi ngẫu nhiên cấu trúc cá thể, tức làm thay đổi giá trị của
gen gọi là đột biến.
3.3. Các quá trình chính trong thuật giải di truyền
3.3.1. Tiến trình Chọn lọc
Đối với tiến trình chọn lọc (chọn quần thể mới thỏa phân bố xác suất dựa
trên các độ thích nghi), ta dùng bánh xe Ru-lét với các rãnh được định kích
thước theo độ thích nghi. Bánh xe Ru-lét được xây dựng như sau:
- Tính độ thích nghi R*ST* của mỗi nhiễm sắc thể *. = 1…)_W.XR
với pop_size là kích thước quần thể.
- Tính tổng giá trị thích nghi toàn quần thể:
Y = R*ST*Z_[\] 3.1
- Tính xác suất chọn pQ cho mỗi nhiễm sắc thể vQi = 1…pop_size:
= R*ST*Y 3.2
- Tính vị trí xác xuất qQ của mỗi nhiễm sắc thể vQi = 1…pop_size
d = 3.3
22
Tiến trình chọn lọc được thực hiện bằng cách quay bánh xe Ru-lét pop_size
lần; mỗi lần chọn một nhiễm sắc thể từ quần thể hiện hành vào quần thể
mới theo cách sau:
- Phát sinh ngẫu nhiên một số r trong đoạn [0..1]
- Nếu r < qQ thì chọn nhiễm sắc thể đầu tiên vQ; ngược lại thì chọn nhiễm
sắc thể thứ i là vQ 2 ≤ i ≤ pop_size sao cho qQ: < 0 ≤ qQ
3.3.2. Quá trình Lai ghép
Phép lai là quá trình hình thành nhiễm sắc thể mới, trên cơ sở các nhiễm sắc
thể cha – mẹ, bằng cách ghép một hay nhiều đoạn gen của hai (hay nhiều)
nhiễm sắc thể cha – mẹ với nhau. Phép lai xảy ra với xác xuất pc, có 3 dạng
lai ghép cơ bản: lai một vị trí (lai đơn), lai nhiều vị trí (lai bội) và lai đều.
Đồ án chỉ trình bày kiểu lai đơn. Quá trình lai đơn có thể mô phỏng như
sau:
Đối với mỗi nhiễm sắc thể trong quần thể:
- Phát sinh một số ngẫu nhiên r trong đoạn [0,1].
- Nếu r < pg thì chọn nhiễm sắc thể đó để lai ghép.
Bây giờ, ta ghép đôi các nhiễm sắc thể đã được chọn một cách ngẫu nhiên:
đối với mỗi cặp nhiễm sắc thể được ghép đôi, ta phát sinh ngẫu nhiên một
số )W trong đoạn [1,h − 1] với h là chiều dài của mỗi nhiễm sắc thể. Số )W cho biết vị trí của điểm lai. Hai nhiễm sắc thể:
ii…iZ[iZ[j…ik*à ll…lZ[lZ[j…lk
sẽ được thay bằng cặp con của nó là
ii…iZ[lZ[j…lk *à ll…lZ[iZ[j…ik.
23
3.3.3. Quá trình Đột biến
Đột biến là hiện tượng cá thể con mang một (số) tính trạng không có trong
mã di truyền của cha – mẹ. Phép đột biến xảy ra với xác suất pm, nhỏ hơn
rất nhiều so với xác suất lai pc. Phép đột biến có thể được mô phỏng như
sau:
Đối với mỗi nhiễm sắc thể trong quần thể hiện hành (nghĩa là sau khi lai) và
đối với mỗi bit trong nhiễm sắc thể:
- Phát sinh một số r trong đoạn [0,1];
- Nếu r < pm, đột biến bit đó (từ 1 thành 0 hoặc từ 0 thành 1)
3.3.4. Hàm Thích nghi
Sau quá trình chọn lọc, lai ghép và đột biến, quần thể mới cần phải được
lượng giá. Việc lượng giá này được dùng để xây dựng phân bố xác suất
(cho quá trình chọn lọc kế tiếp).
Vì hàm thích nghi phải nhận giá trị không âm, do đó phải xây dựng ánh xạ
hàm mục tiêu đang xét sang hàm thích nghi, thông qua một hay nhiều ánh
xạ. Nếu bài toán tối ưu là cực tiểu một hàm mục tiêu 4n thì việc chuyển 4n này sang hàm thích nghi on trong GAs như sau:
on = (kpq − 4n 1ℎ. 4n < (kpq; %4ượl Tạ. on = 0;
Trong đó, (kpq là tham số đầu vào. Có thể lấy (kpq là giá trị 4n lớn
nhất trong quần thể hiện tại, hoặc lớn nhất sau 1 vòng lặp.
3.3.5. Điều kiện kết thúc lặp của GAs
Để kết thúc vòng lặp GAs, thường có thể chỉ định trước số thế hệ cần tạo ra,
sau đó kiểm tra độ thích nghi những phần tử tốt nhất bằng cách so sánh với
bài toán ban đầu.
24
3.3.6. Thuật giải di truyền
Tóm lại, một thuật giải di truyền, giải một bài toán được cho phải có năm
thành phần sau:
- Một cấu trúc dữ liệu z biểu diễn không gian lời giải của bài toán.
- Phương pháp khởi tạo quần thể ban đầu 0.
- Hàm định nghĩa độ thích nghi R*ST , đóng vai trò môi trường.
- Các phép toán di truyền như đã mô phỏng ở trên.
- Các tham số thuật giải di truyền sử dụng (kích thước quần thể, xác suất lai,
đột biến…)
Thuật toán GAs có thể được biểu diễn dưới dạng lưu đồ thuật giải (xem
Hình 3.1) như sau:
Hình 3.1: Lưu đồ thuật giải di truyền
25
CHƯƠNG 4. PHƯƠNG PHÁP NGHIÊN CỨU
Trở lại với nhiệm vụ của đồ án, chúng ta sẽ sử dụng thuật giải di truyền để thiết lập
một danh mục đầu tư bao gồm các cổ phiếu hiện đang giao dịch trên sàn HOSE.
4.1. Mô tả bài toán
4.1.1. Xử lý dữ liệu
Dữ liệu được sử dụng là lịch sử giao dịch của các mã chứng khoán được
niêm yết trên sàn HOSE, gồm có 168 mã cổ phiếu các loại (xem phụ lục A).
Dữ liệu giao dịch này có khoảng 100,000 dòng dữ liệu, bắt đầu từ khi mã
chứng khoán đó được giao dịch cho tới ngày 19 tháng 11 năm 2008.
Các thông tin cần có trong file dữ liệu là Mã Chứng khoán, Ngày Giao dịch,
Giá Đóng cửa. Thông thường các file dữ liệu này được cung cấp miễn phí
trên các website
Hoặc trên các diễn đàn như
4.1.2. Phát biểu bài toán
Từ một danh sách có 3 chứng khoán thuộc các lĩnh vực, được niêm yết trên
sàn HOSE, chúng ta cần thiết lập một danh mục đầu tư hiệu quả có h h < 3 chứng khoán. Chúng ta cũng giả định tỷ trọng giữa các chứng
khoán là như nhau. Sao cho, danh mục kết quả có độ lệch chuNn (đã được
giới thiệu trong chương 2) là nhỏ nhất hoặc thỏa mãn yêu cầu của nhà đầu
tư.
Dĩ nhiên, người đầu tư mong muốn tìm được một danh mục ưng ý nhất, tuy
nhiên việc đưa ra một lời giải duy nhất trong trường hợp này sẽ không phù
hợp và thiếu sự linh động. Do đó, kết quả bài toán sẽ là một tập các danh
mục hiệu quả thỏa mãn yêu cầu về mức rủi ro mà nhà đầu tư có thể chấp
nhận.
26
4.1.3. Mã hóa bài toán
Mặc dù chúng ta chỉ cần 8 bit ( 28 = 256), là hoàn toàn có thể biểu diễn cho
tất cả các chứng khoán đang được niêm yết trên sàn HOSE, tuy nhiên, điều
này sẽ gây ra bất tiện, đó là khi có những chuỗi nhị phân không biểu diễn
cho một loại chứng khoán nào. Do vậy, chúng ta sẽ sử dụng một chuỗi nhị
phân (gồm các bit 1 và 0) có chiều dài n-bit (với n là số lượng chứng khoán
được niêm yết trên sàn HOSE) làm nhiễm sắc thể để biểu diễn một danh
mục gồm 3 mã chứng khoán đang được giao dịch trên sàn HOSE. Mỗi bit
sẽ biểu diễn cho sự xuất hiện hoặc không xuất hiện của một mã chứng
khoán. Thứ tự các các bit này (tương ứng với mỗi mã chứng khoán) được
quy định theo thứ tự bảng chữ cái.
4.1.4. Khởi tạo quần thể
Tiến trình khởi tạo quần thể khá đơn giản. Chúng ta cần tạo ra một quần thể
các nhiễm sắc thể. Trong đó mỗi nhiễm sắc thể là một vector nhị phân dài
n-bit, tất cả n-bit này đều được khởi tạo ngẫu nhiên.
Để thực hiện việc khởi tạo ngẫu nhiên này, chúng ta cần có thêm một tham
số, đó là ước lượng về số lượng chứng khoán sẽ xuất hiện trong các danh
mục kết quả. Bởi chúng ta không không mong muốn một danh mục có số
lượng cổ phiếu quá lớn, thậm chí là có tất cả các cổ phiếu hiện đang giao
dịch trên thị trường. Khi đó, sự xuất hiện của mỗi loại chứng khoán trong
danh mục sẽ phụ thuộc vào xác suất xuất hiện Z:
{ál W|ấ n|ấ ℎ.ệ3 Z = h3
Trong đó:
- h : ước lượng số lượng chứng khoán có trong danh mục kết quả.
- 3: Số lượng chứng khoán được chọn.
Khi đó, quá trình khởi tạo được mô tả như sau:
27
- Tại mỗi bit của chuỗi nhị phân của mỗi nhiễm sắc thể trong quần thể,
chúng ta phát sinh một số thực r ngẫu nhiên trong đoạn [0, 1].
- Nếu r < p} thì loại chứng khoán đó sẽ xuất hiện trong danh mục, tức là
giá trị của bit bằng 1. Ngược lại bit bằng 0, loại chứng khoán đó sẽ
không xuất hiện trong danh mục.
4.1.5. Hàm lượng giá
Chúng ta sẽ sử dụng công thức tính độ lệch chuNn của danh mục (được trình
bày trong chương 2) như một hàm mục tiêu của bài toán, tuy nhiên, mục
tiêu chúng ta là cần tối thiểu hàm này, do đó hàm thích nghi R*ST của các
vector nhị phân cần được điều chỉnh thành:
R*ST* = on = (m~ −
trong đó
= & + ()*
:
(kpq = 100
Lý do chúng ta chọn Cm~ = 100 chính là chúng ta không mong muốn một
danh mục có độ lệch chuNn quá lớn.
4.1.6. Các tham số
Một vấn đề cũng khá quan trọng trong việc giải bài toán sử dụng thuật toán
di truyền đó là việc chọn các tham số cho bài toán. Một số tham số cần lưu
ý đó là kích thước quần thể _size, xác suất lai tạo _pc, xác xuất đột biến
_pm, số thế hệ _tours. Trong bài toán, chúng ta sẽ sử dụng các giá trị mặc
định sau _size = số lượng cổ phiếu được chọn, _pc = 0.8, _pm = 0.01,
_tours = 30.
28
Một tham số cũng khá quan trọng đó là _po chỉ ra xác xuất xuất hiện của bit
1, tức là liên quan tới số lượng cổ phiếu trong danh mục kết quả.
Dĩ nhiên, để cho linh động và phù hợp với tài nguyên của máy, các tham số
này hoàn toàn có thể được thay đổi trong chương trình.
4.2. Phân tích và thiết kế hệ thống
4.2.1. Use Case Diagrams
Hình 4.1.Lược đồ Use Case cho hệ thống
4.2.1.1. Đặc tả UC001: Choose Candidate Securities
- Mô tả chức năng:
o Cho phép người dùng chọn danh sách chứng khoán ứng viên
có thể xuất hiện trong danh mục kết quả.
- Dòng sự kiện:
o Dòng dự kiện chính:
Hệ thống hiển thị danh sách tất cả các Chứng khoán
vào Hộp danh sách (listbox) chứng khoán.
29
Người dùng chọn một (số) chứng khoán từ Hộp danh
sách chứng khoán và đưa vào Hộp danh sách chứng
khoán được chọn.
Nhấn nút “Tiếp tục”
- Yêu cầu đặc biệt: Không
- Tình trạng trước: Không
- Tình trạng sau: Một danh sách các chứng khoán được chọn.
4.2.1.2. Đặc tả UC002: Generate Efficient Porfolio
- Mô tả chức năng:
o Cho phép người dùng thiết lập các tham số và xuất ra kết
quả là tập hợp các danh mục đầu tư hiệu quả.
- Dòng sự kiện:
o Dòng sự kiện chính:
Người dùng thiết lập (hoặc để mặc định) các tham số.
Người dùng nhấn nút “Thiết lập Danh mục”.
Hệ thống hiển thị tập hợp các danh mục hiệu quả.
Người dùng nhấn vào mỗi danh mục trong Hộp danh
sách Danh mục để xem chi tiết các chứng khoán có
trong danh mục đó.
o Dòng sự kiện phụ:
Người dùng nhấn nút “Quay lại” để trở lại phần chọn
danh sách chứng khoán.
- Điều kiện đặc biệt: Không
30
- Tình trạng trước: Một danh sách các chứng khoán đã được chọn.
- Tình trạng sau: Tập hợp các danh mục hiệu quả.
4.2.2. Tổ chức các gói (Packages Definitions)
Hình 4.2. Tổ chức các gói và
Các file đính kèm theo tài liệu này:
- Ứng dụng thuật giải di truyền và lập danh mục đầu tư.pdf