4.5.6.a Mô tả cấu trúc gene của thuật giải di truyền
Do nhu cầu của bài toán (cần trả về một tập lớn hơn 1 lời giải tối ưu) nên mỗi gen sẽ được biễu diễn bằng một mảng các định danh của các lời giải trong không gian tím kiếm (trong trường hợp cụ thể đó là các id của các sản phẩm trong cơ sở dữ liệu). Số lời giải trả về có thể phụ thuộc vào mong muốn của người dùng (nhưng phải lớn hơn 1, không ai lại muốn không tìm thấy sản phẩm nào).
Mô tả một gen:
ID1 ID2 … IDn
Trong đó n là số kết quả mà người dùng mong đợi được trả về.
Kết quả tốt nhất mà ta mong đợi để chọn đó là gen mà tất cả các ID trong gen đều nằm trên miền tối ưu Pareto hoặc tồi hơn có thể có một số ID thuộc Pareto và một số ít hơn nằm gần miền Pareto. Trường hợp không thành công là không có ID nào thuộc miền Pareto lúc này thuật giải chưa được hội tụ, hoặc hội tụ quá sớm gây ra tối ưu cục bộ.
31
f
p (x) Loại gene
Gene xấu
Gene tương đối tốt
f c (x) Hình 4.4 - Các trạng thái gen trong quần thể.
4.5.6.b Vai trò của các thao tác chọn lọc, lai ghép, đột biến trên quần thể
Chọn lọc: Quá trình này nhằm mục đích loại bỏ khỏi quần thể những gen chứa các lời giải xấu (những lời giải nằm xa miền tối ưu Pareto) (xem hình trên). Tuy nhiên vấn đề cần quan tâm ở đây đó là bảo toán tính tốt và tính đa dạng của quần thể. Khi loại bỏ các gen xấu chúng ta có thể loại bỏ luôn cả các lời giải tốt (hoặc tương đối tốt) tồn tại trong gen.
Lai ghép: Đây là một quá trình tự nhiên trong đó các nhiễm sắc thể giữa 2 gen sẽ được hoán đổi cho nhau. Nhiệm vụ chính của nó là làm tăng tính đa dạng của quần thể, với hi vọng các gen tốt hơn sẽ được tạo ra.
Chúng ta cần một số cải tiến để bảo đảm rằng các gen đời sau sẽ tốt hơn đời trước. Bởi vì độ tốt của một gen được xác định bằng tổng độ tốt của mỗi nhiễm sắc thể (gen nào có nhiều nhiễm sắc thể (NST) trên miền Pareto, hoặc gần miền Pareto hơn thì gen đó tốt hơn). Nên khi lai ghép ta sẽ chuyển các NST tốt của một gen (bố hoặc mẹ) vào gen của người còn lại. Như vậy sau khi lai ghép sẽ tạo ra một gen hoàn toàn trội hơn 2 gen bố mẹ, và một gen sẽ chứa toàn những tính xấu. Khi đó trong quá trình chọn lọc ta chỉ giữ lại một gen con tốt vừa được tạo ra và một gen (bố hoặc mẹ) tốt hơn. Khi đó ta sẽ vừa bảo đảm các nhiễm sắc thể tốt sẽ không bị “vô tình” loại bỏ và tính đa dạng của quần thể cũng vẫn được bảo tồn qua các đời.
32
f
Gene con xấu Gene con tốt Genemẹ f c (x) Hình 4.5 - Lai ghép.
Đột biến: Vai trò của thao tác đột biến là để tránh tối ưu hóa cục bộ (các gen chưa tiến đến được miền Pareto). Qua thao tác đột biến chúng ta sẽ đưa các lời giải tốt hơn vào không gian quần thể của thuật giải di truyền.
f p (x) Đột biến f c (x) Hình 4.6 - Đột biến. 4.5.6.c Hàm thích nghi
Hàm thích nghi của mỗi sản phẩm sẽ có dạng như sau:
k i=1
trong đó fpi (x)là hàm mục tiêu của thuộc tính về chất lượng thứ i (người mua quan tâm đến k thuộc tính-ngoài giá).
33
F =
fc(x)
hàm mục tiêu về giá.
Một sản phẩm tốt khi có giá trị hàm thích nghi lớn hơn.Khi thuật giải cố gắng tối đại hóa hàm thích nghi, thực chất là đang điều hướng các sản phẩm về miền tối ưu Pareto.
Để kết hợp cả 2 giai đoạn điều hướng chúng ta có thể kết hợp cả 2 cách dùng hướng mục đích và trọng số quan trọng vào cùng một hàm mục tiêu như sau:
f
pi (x)=w
i (1− p
i − x
i /x*) *
trong đó wi là độ quan trọng của thuộc tính i.
pi
là giá trị mà người dùng mong đợi ở thuộc tính i.
xi
là giá trị của thuộc tính i
x*
là giá trị tối đa mà thuộc tính i có thể có được.
c*
là giá tiền tối đa mà một sản phẩm có thể có.
và fc(x)=wc(1− |pc − c|/c
)
i
34
Chương 5
Phân tích và thiết kế website bán điện thoại di động có hỗ trợ người mua chọn sản phẩ m
5.1 Phân tích
5.1.1 Mô hình Usecase
Hình 5.1 - Lược đồ Usecase.
5.1.2 Mô tả các Actor
Actor khách hàng: Người dùng duy nhất của hệ thống là khách hàng. Hệ thống không yêu cầu mỗi khách hàng phải có tài khoản riêng. Một người dùng bất kỳ có thể vào hệ thống tìm và mua điện thoại bất cứ lúc nào.
5.1.3 Mô tả các Usecase 5.1.3.a Usecase Tìm kiếm
Usecase này thực hiện khi khách hàng muốn tìm kiếm sản phẩm điện thoại di động theo một mức giá và theo một số hãng sản xuất. Người dùng chọn một mức giá trong năm mức giá sau: và chọn các hãng điện thoại cần tìm. Hệ thống sẽ trả về cho khách hàng danh sách các máy điện thoại di động của các hãng đã chọn có mức giá đó. Danh sách thể hiện thông tin sơ bộ về mỗi sản phẩm gồm: tên máy, nhà sản xuất, giá bán, kích cỡ, thời gian chờ, thời gian đàm thoại. Và đối với mỗi sản phẩm đều cho phép người dùng xem thông tin chi tiết sản phẩm hoặc đặt mua sản phẩm.
Lược đồ trình tự - luồng cơ bản cho usecase Tìm kiếm
35
Hình 5.2 - Lược đồ trình tự cho usecase Tìm kiếm.
5.1.3.b Usecase Xem danh sách sản phẩm bán chạy nhất
Usecase này nhằm đưa ra cho khách hàng một danh sách các sản phẩm bán chạy nhất của hệ thống. Hệ thống thể hiển danh sách thông tin sơ bộ về mỗi sản phẩm gồm: tên máy, nhà sản xuất, giá bán, kích cỡ, thời gian chờ, thời gian đàm thoại. Và đối với mỗi sản phẩm đều cho phép người dùng xem thông tin chi tiết sản phẩm hoặc đặt mua sản phẩm. Lược đồ trình tự-luồng cơ bản cho usecase Xem danh sách sản phẩm bán chạy nhất như sau:
Hình 5.3 - Lược đồ trình tự cho usecase Xem danh sách sản phẩm được mua nhiều nhất.
Usecase này nhằm đưa ra cho khách hàng một danh sách các sản phẩm mới ra mắt trong tháng. Hệ thống thể hiển danh sách thông tin sơ bộ về mỗi sản phẩm gồm: tên máy, nhà sản xuất, giá bán, kích cỡ, thời gian chờ, thời gian đàm thoại. Và đối với mỗi sản phẩm đều cho phép người dùng xem thông tin chi tiết sản phẩm hoặc đặt mua sản phẩm.
Lược đồ trình tự-luồng cơ bản cho usecase Xem danh sách sản phẩm mới ra mắt như sau:
36
Hình 5.4 - Xem danh sách sản phẩm mới ra mắt.
5.1.3.d Usecase Xem danh sách sản phẩm được nhiều người quan tâm
Usecase này nhằm đưa ra cho khách hàng danh sách các sản phẩm được nhiều người xem chi tiết nhất. Hệ thống thể hiển danh sách thông tin sơ bộ về mỗi sản phẩm gồm: tên máy, nhà sản xuất, giá bán, kích cỡ, thời gian chờ, thời gian đàm thoại. Và đối với mỗi sản phẩm đều cho phép người dùng xem thông tin chi tiết sản phẩm hoặc đặt mua sản phẩm. Lược đồ trình tự-luồng cơ bản cho usecase Xem danh sách sản phẩm được nhiều người quan tâm như sau:
Hình 5.5 - Lược đồ tuần tự Usecase Sản phẩm được quan tâm nhiều nhất.
Usecase này thực hiện khi khách hàng muốn tìm kiếm những chiếc điện thoại di động có các đặc tính mà mình thích. Hệ thống yêu cầu khách hàng đánh giá mức độ quan tâm đối với các tiêu chuẩn của máy điện thoại di động và giá trị mong muốn của thuộc tính đó. Hệ thống sẽ trả về danh sách gồm 3 máy điện thoại phù hợp nhất với tiêu chuẩn đã đánh giá của khách hàng.
Năm tiêu chuẩn cho khách hàng sau đánh giá gồm có: Trọng lượng của máy, thời gian sử dụng máy, kiểu dáng của máy, các tính năng giải trí có trong máy (bao gồm các tính năng
37
“có camera”,”xem video”,”nghe nhạc MP3”, “nghe radio FM” và “tải nhạc chuông Midi”), và giá bán của máy. Ta chọn 5 tiêu chuẩn trên tiêu biểu cho sự phong phú thuộc tính của một máy điện thoại di động. Hai tiêu chuẩn đầu (trọng lượng, thời gian sử dụng máy) và tiêu chuẩn cuối (giá bán) là những thuộc tính có miền giá trị gần như liên tục, có thể chia ra các khoảng cho người dùng chọn. Ví dụ thời gian chờ có thể chia ra các khoảng “ngắn”, ”rất ngắn”, ”trung bình”, “dài”, ”rất dài”. Tiêu chuẩn thứ ba(kiểu dáng của máy) là thuộc tính có miền giá trị rời rạc, người dùng chọn một kiểu dáng cụ thể của máy mà họ ưa thích. Tiêu chuẩn thứ tư là sự kết hợp nhiều tính năng của máy điện thoại di động, người dùng sẽ chọn các tính năng mà họ thích.
Đây sẽ là nơi thuật toán di truyền được áp dụng. Các đánh giá của khách hàng được dùng tìm kiếm sản phẩm thích hợp nhất trong quần thể sản phẩm của thuật toán di truyền. Lược đồ trình tự-luồng cơ bản cho usecase Trợ giúp chọn sản phẩm như sau:
5.1.3.f Usecase Duyệt danh mục sản phẩm theo hãng sản xuất
Usecase này thực hiện khi khách hàng muốn xem tất cả các sản phẩm điện thoại di động của một nhà sản xuất cụ thể. Hệ thống đưa ra các danh sách thông tin sơ bộ về các điện thoại của nhà sản xuất đã chọn.
Lược đồ trình tự-luồng cơ bản cho usecase Duyệt danh mục sản phẩm theo hãng sản xuất như sau:
38
Hình 5.7 - Lược đồ trình tự cho usecase Duyệt sản phẩm theo hãng sản xuất.
5.1.3.g Usecase Xem chi tiết
Usecase này thực hiện khi khách hàng muốn xem thông tin chi tiết về một máy điện thoại di động nào đó từ danh sách các điên thoại. Các thông tin đưa ra cho khách hàng gồm : Tên nhà sản xuất, model máy, kích thước, trọng lượng, kiểu dáng, băng tần hỗ trợ, độ phân giải và màu sắc màn hình hiển thị, thời gian đàm thoại và thời gian chờ, giá bán, bộ nhớ, dạng tin nhắn hỗ trợ, các tính năng giải trí (bao gồm tích hợp máy ảnh, quay video, nghe nhạc MP3, nghe radio FM) và các tính năng kết nối dữ liệu (bao gồm Java, GPRS, WAP, Bluetooth). Tại đây, khách hàng có thể đặt mua ngay máy điện thoại này.
Hình 5.8 - Lược đồ trình tự cho usecase Xem thông tin chi tiết.
5.1.3.h Usecase Thêm hàng vào giỏ
Usecase này thực hiện khi khách hàng muốn chọn một sản phẩm và thêm vào giỏ hàng. Hệ thống sẽ báo cho khách hàng khi đã thêm sản phẩm vào giỏ thành công.
Lược đồ trình tự-luồng cơ bản cho usecase Thêm hàng vào giỏ như sau:
39
Hình 5.9 - Lược đồ trình tự cho usecase Thêm hàng vào giỏ.
5.1.3.i Usecase Xem giỏ hàng
Usecase này thực hiện khi khách hàng muốn xem danh sách sản phẩm đã đặt mua trong giỏ hàng. Hệ thống hiển thị danh sách từng sản phẩm đã đặt mua của khách hàng và số lượng của chúng. Người dùng có thể nhập lại số lượng đặt mua hoặc hủy việc đặt mua một sản phẩm.
Hình 5.10 - Lược đồ trình tự cho usecase Xem giỏ hàng.
5.1.3.j Usecase Thanh toán
Usecase này thực hiện khi khách hàng muốn thanh toán cho những sản phẩm đã chọn trong giỏ hàng. Hệ thống sẽ xem khách hàng đã đăng ký thông tin cá nhân chưa. Nếu chưa hệ thống sẽ buộc khách hàng điền vào thông tin cá nhân bao gồm: Họ tên khách hàng, địa chỉ, email.
40
Hệ thống sẽ tạo tạo hóa đơn liệt kê các sản phẩm trong giỏ hàng, yêu cầu khách hàng chọn phương thức giao hàng, phương thức thanh toán. Khách hàng chọn phương thức giao hàng và phương thức thanh toán thích hợp với mình rồi chấp nhận đặt mua hoặc hủy không mua.
Hình 5.11 – Lược đồ trình tự cho usecase Thanh toán.
5.2 Thiết kế
5.2.1 Thiết kế hệ thống
Hệ thống gồm 2 module chính: Module ứng dụng cửa hàng web bán điện thoại di động và module áp dụng thuật toán GA tìm kiếm điện thoại theo sở thích người dùng. Mobile ứng dụng thuật toán GA có thể phân gồm 2 gói riêng biệt. Gói MobilePhoneShop chứa thông tin các thuộc tính của máy điện thoại di động, có chức năng kết nối và đưa thông tin của cơ sở dữ liệu lên một nhớ chính. Gói GenecticAlgorithm chứa thuật toán di truyền.
Sơ đồ kiến trúc các thành phần hệ thống:
41