Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Các mẫu thiết kế hướng ₫ối tượngbai 9 1
Nội dung xem thử
Mô tả chi tiết
Trang 1
MÔN : CÁC MẪU THIẾT KẾ HỚNG ỐI TỢNG
Bài thực hành số 9.1 : Tiến hóa các tập luật chi ể tìm ờng i trong mê cung
I. Mục tiêu :
Giúp SV làm quen cách áp dụng gii thuật tiến hóa vào loi cá thể xác ịnh :
tập luật miêu t ờng i của agent trong mê cung.
II. Nội dung :
Tổng hợp kết qu 2 bài thực hành 5.1 và 8.1 ể thử tiến hóa các tập luật miêu t
ờng i của agent trong mê cung ban ầu về tập luật tối u.
III. Chuẩn ầu ra :
Nắm vững tính chất, công dụng của các mẫu thiết kế ợc dùng trong bài
thực hành này ể có thể dùng li các mẫu này trong bất kỳ vị trí nào của
chng trình mới cần xây dựng.
IV. Qui trình xây dựng chng trình
1. Chy VS .Net, chọn menu File.Open.Project ể mở li Project của bài thực
hành 8.1.
2. Copy li các file mã nguồn ã viết trong bài thực hành 7.1 sang project hiện
hành :
Dời chuột về phần tử gốc của cây Project trong cửa sổ “Solution Explorer”, ấn
phi chuột vào nó ể hiển thị menu lệnh, chọn chức nng Add.New Folder ể
to 1 folder mới. ặt tên cho folder này là BaiTH5. Click phi chuột vào folder
mới vừa to và chọn option Add.Existing Item, duyệt chọn các file *.cs trong
th mục qun lý project BaiTH7 ã có ể copy chúng vào folder hiện hành
(chú ý không cần copy các file Program.cs, Form1.cs).
3. Vào folder BaiTH5 của Project BaiTH81, duyệt xem và hiệu chỉnh (nếu cần)
nội dung từng file mã nguồn theo nội dung mới nh sau :
//nội dung file IEnvironment.cs
interface IEnvironment {
//tác vụ tính toán trị của cá thể
double getVal(IIndividual ind);
//tác vụ tính toán cá thể
double eval(IIndividual ind);
}
//nội dung file IIndividual.cs
interface IIndividual : IComparable<IIndividual> {
//thuộc tính luận lý SpecValue : chỉ ọc
Object SpecValue { get; set; }
//thuộc tính luận lý Fitness : ọc/ghi
double Fitness { get; set; }
//thuộc tính miêu t bị ột biến
bool Muted { get; set; }
//hàm phối giống với other
Trang 2
IIndividual cross(IIndividual other);
//hàm ột biến mình
void muter();
//hàm to ối tợng mới theo c chế nhân bn vô tính (dùng mẫu Prototype)
IIndividual clone();
//hàm gii mã ối tợng thành dng chuỗi vn bn
String ToString();
}
//nội dung file Individual.cs
class Individual : IIndividual {
//giá trị ặc trng của cá thể
private MyDouble spVal;
//ộ thích nghi của cá thể
private double fitness = 0.0;
//thuộc tính miêu t ã bị ộ biến cha
private bool muted = false;
//ối tợng to số ngẫu nhiên duy nhất trong toàn chng trình
private static MyRandom rnd = MyRandom.getInstance();
//hàm khởi to cá thể có giá trị ặc trng ngẫu nhiên
public Individual()
{
this.spVal = new MyDouble(rnd.RndDouble());
}
//hàm khởi to cá thể có giá trị ặc trng xác ịnh
public Individual(MyDouble valeurPropre)
{
this.spVal = valeurPropre;
}
//hiện thực thuộc tính luận lý Muted
public bool Muted
{
get { return muted; }
set { muted = value; }
}
//hiện thực thuộc tính luận lý SpecValue
public Object SpecValue
{
get { return spVal; }
set { spVal = (MyDouble)value; }
}
//hiện thực thuộc tính luận lý Fitness
public double Fitness