Cài đặt chơng trình
4.1. Cấu trúc dữ liệu và các khai báo cần thiết
4.2. Thiết kế giải thuật
4.1. Cấu trúc dữ liệu và các khai báo cần thiết
Giải thuật di truyền
Các toán tử của giải thuật GA hoạt động ở mức chuỗi nên cấu trúc dữ liệu cơ bản là quần thể các chuỗi. Một trong những cấu trúc dữ liệu sử dụng là bảng hai chiều với mỗi hàng là một cá thể và số cột là độ dài của mỗi cá thể. Do độ dài của mỗi cá thể và số cá thể thờng xuyên biến động nên bảng hai chiều đợc cấp phát động. Với ngôn ngữ Visual Basic, hai quần thể cũ và mới đợc định nghĩa là hai con trỏ chỉ đến hai bảng hai chiều có kích thớc động Oldpop( ) và NewPop( ).
Đồng thời với quần thể các cá thể là hai véc tơ đợc cấp phát động của các số thực nhằm ghi nhận giá trị của hàm mục tiêu tơng ứng với các cá thể và giá trị sức khỏe tơng ứng : Objective( ) và Fitness( ).
Các biến Popsize ghi số cá thể trong quần thể, Pcross ghi xác suất tạp lai, Pmutation ghi xác suất đột biến, Gen ghi số thế hệ cần tiến hóa và độ dài chuỗi là Lchrom.
Mạng nơ ron
Mạng nơ ron truyền thẳng đợc cài đặt trên ngôn ngữ Visual Basic là một lớp có tên gọi là Network, các tham số của mạng là các biến thành viên; NumInputs, NumOutputs, NumNeurals tơng ứng là số đầu vào, số đầu ra, số nơ ron trên lớp ẩn, Inputs( ) và Expected_Outputs( ) là hai véc tơ chứa đầu vào và đầu ra mong muốn của mạng, Layers( ) là véc tơ có kiểu phần tử thuộc lớp Layer chứa các lớp mạng. Lớp Layer có biến thành viên là hai véc tơ Inputs( ), Outputs( ) và Output_Errors( ) chứa đầu vào, đầu ra và sai số đầu ra của lớp.
Để tích hợp giải thuật GA với giải thuật BP cần sử dụng một bảng hai chiều cấp phát động GA_Weights( ) để lu trữ các trọng số của mạng tại mỗi thế hệ tiến hóa, số cột là số trọng số của mạng, số hàng là số cá thể trong quần thể. Mỗi hàng của bảng tơng ứng với một bộ trọng số của mạng, việc đa vào mạng bộ trọng số này đợc thực hiện nhờ thủ tục GA_loadWeight( ) của lớp network.
Ngoài ra còn sử dụng bảng hai chiều cấp phát động BP_weights( ) để lu trữ 0.05*N bộ trọng số kết quả của giải thuật GA sau Gen thế hệ tiến hóa làm đầu vào cho giải thuật BP.
Số liệu mẫu và tổ chức số liệu:
Số liệu thực nghiệm đợc tổ chức trong một tệp số liệu. Các cặp véc tơ tín hiệu vào và tín hiệu ra đợc viết trên một dòng. Do hàm biến đổi dùng trong mạng là hàm sigmoid nên các số liệu này sẽ đợc chơng trình tự động tỷ lệ hóa tuyến tính trong khoảng [0.1, 0.9]. Tập dữ liệu sau khi đã đợc tỷ lệ hóa nh trên đợc lu trữ trong hai véc tơ cấp phát động Inputs( ) và Expected_outputs( ).