Tải bản đầy đủ (.pdf) (25 trang)

Thiếu sót của web bán hàng hiện nay và dùng sơ đồ giải thuật viết chương trình hỗ trợ khách hàng ra quyết định mua hàng online - 2 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (668.49 KB, 25 trang )


21

Hình 3.7 - Các câu hỏi của samsungtelecom.com.
3.4.1.g Shopping.Yahoo.com/Smartsort
Shopping.yahoo.com là một trong những hệ thống mua sắm lớn nhất hiện nay. Ngoài các
tính năng hỗ trợ tìm kiếm thông thường như duyệt theo catalog, cho khách hàng đánh giá
trên sản phẩm đã mua, người dùng còn có thể tìm các sản phẩm theo sở thích, mục đích
sử dụng qua tính năng Smartsort có trên trang web Yahoo!Shopping gồm nhiều loại mặt
hàng trong đó phần Smartsort hỗ trợ các mặt hàng đồ điện tử như
điện thoại di động,
digital camera, PDA, máy tính v.v… Phần khảo sát này ta tập trung vào mặt hàng điện
thoại di động. Tính năng Smartsort của Yahoo!Shoppping hỗ trợ người dùng chọn mức
độ quan trọng của các thuộc tính sản phẩm qua thanh kéo (slider bar). Người dùng đánh
giá độ quan trọng của các đặc tính trên máy điện thoại di động như thời gian dùng pin,
kích cỡ, nhà sản xuất, các tính năng giải trí khác v.v… Yahoo đưa ra 5 mức đánh giá độ
quan trọng đối v
ới tính năng của điện thoại di động như sau: không quan trọng (not
important), ít quan trọng (sightly important), quan trọng (important), rất quan trọng (very
important), hết sức quan trọng(most important). Kết quả đưa ra là 10 máy điện thoại di
động được sắp xếp theo độ quan trọng của các tính năng đã đánh giá trước đây. Trong
danh sách các máy điện thoại đưa ra người dùng có thể tiếp tục chọn vào danh sách so
sánh tiếp theo. Một ma trận so sánh sẽ đưa ra giúp khách hàng dễ
dàng so sánh.

22

Hình 3.8 - Đánh giá độ quan trọng của các thuộc tính với SmartSort.
3.4.2 Bảng tóm tắt và so sánh
Bảng 3.3 - Tổng kết so sánh website
STT Website Đặc điểm Mức hỗ


trợ đạt
được
1 Amazon.com Các đặc tính hỗ trợ rất phong phú, hỗ trợ
người dùng ở nhiều giai đoạn như tìm kiếm,
hướng dẫn mua.
3
2 Moviefinder.com Chỉ có 2 đặc điểm đơn giản là danh sách “Top
10” và đánh giá điểm cho mỗi phim.
2
3 Carsdirect.com Catalogue danh mục các xe chứa theo nhu cầu
người mua.
2
4 Samsungtelecom.com Danh sách các câu hỏi được đưa ra nhằm
đánh giá nhu cầu người dung. Danh sách kết
quả là ma trận so sánh khá hợp đã được sắp
xếp.
-
5 HpShopping.com Danh sách câu hỏi đưa ra cho khách hàng và
ma trận so sánh của danh sách sản phẩm được
đề nghị có nội dung và cách trình bày tốt.
3
6 Shopping.yahoo.com/
Smartsort
Danh sách đánh giá độ quan trọng các tiêu
chuẩn của sản phẩm đưa ra kết quả ngay lập
tức.
3

3.5 Các tiện ích mà một trang web bán hàng cần cung cấp để có thể Hỗ trợ khách
hàng tốt hơn

Qua các phần thống kê bên trên chúng ta thấy rằng “hỗ trợ khách hàng” vẫn là một sự
thiếu hụt nghiêm trọng của các trang web bán hàng hiện nay.

23
Theo một cuộc khảo sát các người thường xuyên mua hàng qua mạng thì các tiện ích hỗ
trợ khách hàng đóng vai trò then chốt trong việc gia tăng số lượng mua hàng qua mạng.
Các tiện ích mà các cửa hàng trên mạng cần cung cấp (tốt hơn)
• Giá cả và hỗ trợ so sánh giá cả.
• Tính bảo mật của các giao dịch.
• Các dịch vụ hỗ trợ khách hàng trong việc mua và hoàn trả hàng hóa.
• Hỗ trợ khách hàng tìm kiếm, chọn lựa sả
n phẩm.


24
Chương 4
Sử dụng giải thuật di truyền để giải quyết bài toán hỗ trợ chọn sản phẩm khi mua hàng
qua mạng
4.1 Giới thiệu
Để xây dựng được một trang web bán hàng thật sự hoàn hảo đó là sự kết hợp của rất
nhiều yếu tố bao gồm sự quảng bá đến người dùng, giao diện người dùng, các tiện ích hỗ
trợ khách hàng khi mua hàng, các dịch vụ giao hàng và hoàn tr
ả hàng. Trong khuôn khổ
luận văn, chúng em cố gắng đưa ra một cách tiếp cận để xây dựng một trong những yếu tố
trên “hỗ trợ khách hàng chọn sản phẩm khi mua hàng qua mạng”.
Chọn sản phẩm là một trong những phần quan trọng nhất khi mua hàng. Như chương
trước đã phân tích một trong những nguyên nhân chính dẫn đến sự không thành công của
phương thức mua hàng qua mạng đó là người mua không thể chọn ra được m
ột sản phẩm
ưng ý nhất trước vô vàn các mặt hàng được bày ra. Vậy trang web chúng ta xây dựng phải

có nhiệm vụ như một người bán hàng chuyên nghiệp đó là nắm bắt các nhu cầu của người
mua và khuyến cáo cho người mua một số sản phẩm mà mình cho là thích hợp. Mặc dù
quyết định cuối cùng vẫn thuộc về người ra quyết định, ở đây là người mua hàng, tuy
nhiên một lời khuyên cho người dùng vẫn rất quan trọ
ng.
4.2 Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản phẩm
Các khó khăn phi kỹ thuật:
• Không giống như một người bán hàng thực, một người bán hàng có thể qua
cách ứng xử, ăn mặc, thái độ v.v của người mua mà có thể chọn ra các mặt
hàng cho phù hợp. Trang web bán hàng hoàn toàn không biết gì về các thông
tin trên của khách hàng.
• Người mua có thể tự do tương tác, trao đổi với người bán để nói lên nhu cầu,
sở thích c
ủa mình. Trong khi mua hàng trên mạng thì yếu tố thời gian là rất
quan trọng, cần phải dung hòa giữa lượng thông tin cần thu thập và thời gian
tiêu tốn của người dùng.
• Trao đổi bằng ngôn ngữ tự nhiên sẽ dễ dàng và hiệu quả hơn. Trong khi đó
người mua chỉ có thể trao đổi với trang web qua một số cách nhất định (thường
được số hóa).

25
Các khó khăn về kỹ thuật:
• Không gian tìm kiếm sản phẩm rất lớn, không thể tìm tuyến tính vì sẽ bắt
khách hàng đợi lâu.
• Cần tạo một kich bản để thu thập thông tin khách hàng sao cho hợp lý, tránh
gây nhàm chán và làm mất nhiều thời gian.
• Vấn đề “đa mục tiêu” (xem phụ lục A), các sở thích của người dùng đôi khi
xung đột hoặc không hợp lý dẫn đên kết quả tìm kiếm thường là “Không tìm
th
ấy mặt hàng nào phù hợp”. Đây là một trong những điều cấm kỵ nhất của

người bán hàng, để người khách hàng ra về tay không, không những không bán
được hàng mà còn để lại ấn tượng không tốt nơi khách hàng.
4.3 Vấn đề “đa mục tiêu” khi chọn sản phẩm
Có thể thấy khó khăn lớn nhất của module hỗ trợ chọn sản phẩm đó là giải quyết, thỏa
mãn cùng lúc nhiều tiêu chí củ
a người mua về mặt hàng mà khách hàng đó quan tâm.
Các mục tiêu,sở thích này có thể đối chọi nhau.Đây thực chất chính là đi giải quyết bài
toán tối ưu đa mục tiêu (xem phụ lục A), trong đó mỗi mục tiêu chính là các sở thích của
người dùng mà mặt hàng đó phải thỏa. Module này có nhiệm vụ tìm ra sản phẩm phù hợp
(hoặc gần giống) với các sở thích của người mua.
4.4 Cách tiếp cận để
giải bài toán “Tối ưu đa mục tiêu” khi chọn sản phẩm
Nội dung của luận văn này là tìm hiểu bài toán tối ưu hóa đa mục tiêu và cách tiếp cận
dùng giải thuật di truyền (Genetic Algorithm - GA). Và áp dụng cách tiếp cận trên để giải
bài toán tối ưu hóa đa mục tiêu khi hỗ trợ khách hàng chọn sản phẩm. Luận văn này chọn
cách tiếp cận trên với các lý do sau:
• Đây là một cách tiếp cận mới m
ẻ và đang được nhiều người quan tâm,phát
triển và ứng dụng vào nhiều lĩnh vực khác nhau.
• Giải thuật di truyền (GA) giựa trên ý tưởng quần thể tự nhiên, chọn lọc ngẫu
nhiên sẽ làm cho giải thuật có khả năng mạnh mẽ trong việc tìm kiếm một cách
song song. Trong đó tất cả các cá thể trong quẩn thể sẽ được cố gắng tìm kiếm
ở tất cả các hướng trong không gian tìm kiế
m qua đó cho phép GA tránh được
tối ưu hóa cục bộ.
• Một thế mạnh của GA trong nhiệm vụ tìm kiếm đó là không lo sợ khả năng
bùng nổ của tổ hợp tìm kiếm.GA đặc biệt tỏ ra hữu hiệu với các không gian tìm
kiếm lớn. Với các không gian tìm kiếm lớn GA không những bảo đảm được tối

26

ưu hóa toàn cục mà còn bảo đảm được thời gian tìm kiếm, một trong những
yêu cầu quan trọng của bài toán.
• Và do đặc trưng của bài toán, chúng ta cần trả về cho người mua một danh sách
các mặt hàng mà theo hệ thống là phù hợp nhất (thông thường từ 3 đến 5 giải
pháp) nên việc sử dụng GA lại càng hợp lý. GA khác các phương pháp tìm
kiếm tuyến tính khác là trong một lần chạy có thể cho ta một tập các giải pháp
thuộc miền Pareto (xem ph
ụ lục A) trong quần thể của nó.
4.5 Chuyển bài toán chọn sản phẩm thành bài toán tối ưu đa mục tiêu
Chúng ta sẽ mô tả bài toán mua hàng thành các khái niệm trong bài toán tối ưu hóa đa
mục tiêu.
4.5.1 Lời giải cho bài toán
Trong bài toán tìm kiếm sản phẩm, người dùng mong muốn chọn ra một mặt hàng thích
hợp do đó sản phẩm tối ưu đối với sở thích người mua chính là lời giải của bài toán.
Nhưng chọn ra ch
ỉ một sản phẩm cho người dùng có vẻ không phù hợp cho lắm, đôi khi
tạo cho người dùng cảm giác bị ép buộc. Do đó giải pháp phù hợp đó là một tập các lời
giải tối ưu, tập hợp này tương tự như những sản phẩm mà một người bán hàng sẽ gợi ý
cho chúng ta khi đã nắm bắt được nhu cầu của khách hàng.
4.5.2 Các biến quyết định
Ở đây các bi
ến quyết định (xem phụ lục A) chính là các thuộc tính cấu thành nên sản
phẩm.
Ví dụ (sản phẩm là điện thoại di động)
=
X
(Giá, trọng lượng, kiểu dáng, thời gian sử dụng pin)
X
là một điểm trong vùng khả thi (xem phụ lục A). Trong ví dụ trên có 4 biến quyết
định.

4.5.3 Các ràng buộc
Trong bài toán “tối ưu đa mục tiêu “ các ràng buộc (xem phụ lục A) chính là các điều
kiện giữa các biến quyết định. Nhưng trong bài toán này không gian tìm kiếm là rời rạc,
các điểm trong không gian tìm kiếm chính là ràng buộc của các biến quyết định. Hay nói
cách khác nếu các giá trị của các biến quyết định cùng tồn tạ
i trong một lời giải thì đó là
một ràng buộc đúng đắn.
Các ràng buộc được mô tả bằng 1 vector:

27
))(), ,(),((
21
xhxhxhH
n
= với n là số biến quyết định.
Trong đó
)()(
kkk
Nxxh ==
Khi đó ràng buộc
H
thỏa khi ), ,,(,
21 nii
NNNXFX =∈∃
Với F là vùng khả thi, không gian lời giải và trong bài toán này là không gian các sản
phẩm.
4.5.4 Các mục tiêu
Có thể dễ dàng nhận thấy 2 mục tiêu (objective) (xem phụ lục A) mà người mua luôn
nhắm tới là giá cả (cost) và chất lượng của sản phẩm (performance). Người mua luôn
muốn mua được sản phẩm đáp ứng đầy đủ các yêu cầu với một giá rẻ nhất .Và điều khó

khăn ở
đây đó là 2 mục tiêu này luôn xung đột với nhau. Một sản phẩm với các tính năng
nổi trội luôn có một cái giá cao hơn một sản phẩm khác và ngược lại do đó thường đi
ngược lại với mong muốn của người mua. Do đó nhiệm vụ của bài toán đa mục tiêu đó là
phải dung hòa cả 2 mục tiêu đó.
Mô tả tổng quát:
))(),((maxmin/ xfxfF
cp
= . Từ đây ta thống nhất là sẽ dùng min, tức là mục tiêu của ta
là làm tối thiểu hóa vector mục tiêu.
Trong đó
F
là một vector mô tả 2 mục tiêu chính là cost và performance
)(xf
c
là hàm mục tiêu cho mục tiêu về giá cả (cost).
)(xf
p
là hàm mục tiêu cho mục tiêu về chất lượng (performance)
Một ví dụ đơn giản về vector mục tiêu trên một sản phẩm gồm 2 thuộc tính.
Sản phẩm
X
=(weight, cost) với tính chất giá (cost) càng cao trọng lượng (weight) càng
thấp và người mua muốn một sản phẩm với giá (cost) thấp và trọng lượng (weight) cũng
thấp.
Vector mục tiêu được định nghĩa như sau:

))(),(( XfXfF
cp
=

với
)(Xf
p
= weight và )(Xf
c
= cost

28

Hình 4.1 - Vector mục tiêu của sản phẩm có 2 thuộc tính.
Trên đây chỉ là trường hợp đơn giản performance của ta chỉ có một thuộc tính. Đối với
trường hợp tổng quát thì sao? Bây giờ hàm mục tiêu về chất lượng (performance) sản
phẩm sẽ trở thành:
))( )()(()(
)1(21
xfxfxfxf
npppp −
+++=
với n là số thuộc tính của sản phẩm (n-1 vì đã
bỏ qua thuộc tính giá cả)
Nhưng khó khăn đặt ra là các thuộc tính lại không có đơn vị tính giống nhau do đó ta cần
có một số tinh chỉnh để hàm
)(xf
p
có thể thực hiện được. Một cách đơn giản mà ta có
thể áp dụng đó là tinh chỉnh (normalize) các thuộc tính để các thuộc tính đều có giá trị là
một số thực từ 0 đến 1. Bây giờ hàm mục tiêu về performance sẽ có dạng:
)/)( /)(/)(()(
0
1)1(

0
22
0
11 −−
+++=
nnpppp
XxfXxfXxfxf trong đó
0
k
X là giá trị lớn nhất
mà thuộc tính
1
X có thể có được.
4.5.5 Hướng đến một lời giải “tối ưu”
Để có được một lời giải tối ưu (hoặc gần tối ưu) chúng ta cần qua 2 giai đoạn:

Hướng các lời giải của chúng ta về miền tối ưu Pareto (xem phụ lục A)

Chọn trên miền Pareto một lời giải phù hợp nhất.
4.5.5.a Điều hướng lời giải về miền tối ưu Pareto
Cũng như với cách mua hàng truyền thống ,để người bán hàng có thể chọn ra các sản
phẩm phù hợp thì người mua phải cung cấp các tiêu chí (sở thích) về sản phẩm mà mình
định mua. Cũng tương tự như vậy để giải quyết bài toán này chúng ta cũng phải thu thập
một số thông tin về sản phẩm mà người dùng mong đợi, đây chính là mục tiêu của người
dùng.
)(Xf
c
)(Xf
p
Xu hướng người mua

Vùng khả thi hay
không gian tìm
kiếm
Vùng yêu thích

29
Chúng ta có thể mô tả một mục tiêu của người dùng bằng một vector như sau:
), ,,(Pr
21 k
PPPef = (Pref - Preference )
Trong đó
i
P là một hằng số, mô tả giá trị mà người mua mong muốn có được ở thuộc tính
i
x . Và k là số thuộc tính mà người dùng mô tả về sản phẩm.Trong đó nk ≤≤1 (n là số
thuộc tính của sản phẩm) vì không nhất thiết người dùng phải mô tả tất cả các thuộc tính.
Và mục tiêu của chúng ta là đưa giá trị của các thuộc tính được mô tả về càng gần với giá
trị
i
P càng tốt. Đây chính là nơi ta áp dụng hướng tiếp cận hướng mục đích (xem phụ lục
A), mỗi
i
P là một mục đích của chúng ta.
Một mục đích trên thuộc tính
i
x có thể được mô tả một cách đơn giản là:
ipi
xxf −)(min
Và hàm mục tiêu về chất lượng sản phẩm sẽ có dạng:
))(minmin()(

1

=
−=
k
i
ipip
xxfxf

Khi tối ưu từng mục đích (goal) chúng ta hi vọng rằng các sản phẩm trong không gian tìm
kiếm của thuật toán di truyền sẽ điều hướng về miền tối ưu Pareto.

Hình 4.2 - Điều hướng về miền tối ưu Pareto.
)(xf
c
)(xf
p
Miền tối ưu
Pareto
i
P
1
P
2
P

30
4.5.5.b Chọn trên miền tối ưu Pareto lời giải tối ưu nhất
Theo định nghĩa của miền tối ưu Pareto thì những lời giải trên miền này không thể so
sánh với nhau được nữa vì trên miền này không có lời giải nào hoàn toàn thống trị lời giải

khác (xem phụ lục A). Khi chúng ta đã chọn lọc được các lời giải trên miền Pareto (ở
bước trên) thì việc tiếp theo đó là chọn ra trên miền đó 1 hoặc nhiều lời giải mà ta cho là
tốt hơn những lời giải khác (cũng thu
ộc miền Pareto). Chúng ta phải làm việc này vì trên
miền Pareto không đảm bảo chỉ tồn tại 1 lời giải.
Để chọn ra lời giải tốt hơn trên miền này chúng ta sẽ áp dụng cách tiếp cận Weighting
Objective(xem phụ lục A). Khi đó ta cần thêm các thông tin về mức độ quan trọng của
các mục tiêu (đây là các đánh giá khách quan của người ra quyết định-người mua
hàng).Đây chính là mối tương quan về độ trội của các mục tiêu.
Lúc này vector mô t
ả sở thích của người mua có dạng:
)),(), ,,(),,((Pr
2211 kpkpp
PwPwPwef = trong đó
i
w chính là độ quan trọng của mục tiêu
thứ i trong mục tiêu về chất lượng của sản phẩm
)(xf
pi

Khi đó trọng số quan trọng của mục tiêu về chất lượng sản phẩm (performance) sẽ là :


=
=
k
i
pip
ww
1


Và độ quan trọng của mục tiêu về giá cả
c
w
Với các ràng buộc:
1
1
=+=+

=
c
k
i
picp
wwww
Khi người dùng thay đổi các trọng số độ quan trọng của các mục tiêu thì các lời giải “tối
ưu” sẽ di chuyển trên miền Pareto. Người ra quyết định có thể thay đổi trọng số này để có
thể chọn ra các lời giải “tối ưu”.

31

Hình 4.3 Di chuyển trên miền Pareto bằng cách thay đổi trọng số
4.5.6 Các cải tiến để phù hợp với bài toán.
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:

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ộ.
)(xf
c
)(xf
p
c
w
p
w
Miền tối ưu
Pareto
ID1 ID2 … IDn

32

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.
)(xf
c
)(xf
p
Loại gene
tốt nhất
Gene tương
đối tốt
Gene xấu

33

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.

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
cpi
xfxfF
1
)()(

trong đó
)(xf
pi
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á).
)(xf
c
)(xf
p
Đ
ộtbiến
)(xf
c
)(xf

p
Gene b

Gene mẹ
Gene con t
ốt
Gene con x
ấu

34
)(xf
c
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:
)/1()(
*
iiiipi
xxpwxf −−=

)/||1()(
*
ccpwxf
ccc
−−=

trong đó
i

w
là độ quan trọng của thuộc tính i.
i
p
là giá trị mà người dùng mong đợi ở thuộc tính i.
i
x
là giá trị của thuộc tính i
*
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ó.


35
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

36

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.
5.1.3.c Usecase Xem danh sách sản phẩm mới ra mắ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:

37

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.
5.1.3.e Usecase Trợ giúp chọn sản phẩm
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

38
“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:

Hình 5.6 - Lược đồ trình tự cho usecase Trợ giúp lựa chọn sản phẩm.
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:

39

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.

Lược đồ trình tự-luồng cơ bản cho usecase Xem chi tiết như sau:

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:

40

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.
Lược đồ trình tự-luồng cơ bản cho usecase Xem giỏ hàng như sau:

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.

41
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.

Lược đồ trình tự-luồng cơ bản cho usecase Thanh toán như sau:

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:

42

Hình 5.12 - Mô hình kiến trúc hệ thống.
5.2.2 Thiết kế cơ sở dữ liệu
5.2.2.a Lược đồ cơ sở dữ liệu quan hệ

Hình 5.13 - Sơ đồ dữ liệu quan hệ.

43
5.2.2.b Danh sách các bảng
Bảng 5-1-Danh sách các bảng cơ sở dữ liệu
STT Tên bảng Ghi chú
1.
tblItems Sản phẩm điện thoại di động
2.
tblProducers Hãng sản xuất
3.

tblCaseType Danh sách kiểu dáng của điện thoại di động
4.
tblOders Đơn đặt hàng
5.
tblOderDetails Chi tiết đơn đặt hàng
5.2.2.c Chi tiết các bảng dữ liệu
Bảng 5.2 - Bảng dữ liệu tblItems
STT Tên thuộc tính Ý nghĩa Kiểu dữ liệu Miền giá trị Ghi chú
1 ItemID Mã sản phẩm int Khóa chính
2 ItemModel Tên sản phẩm nvarchar(50)
3 ProducerID Mã hãng sản
xuất
int
4 Image Đường dẫn chứa
file hình của sản
phẩm

5 SmallImage
6 Comingdate Ngày ra mắt datetime
7 Height Chiều cao real Đơn vị: mm
8 Length Chiều rộng real Đơn vị: mm
9 Width Độ dày real Đơn vị: mm
10 Weight Trọng lượng smallint Đơnvị: gam
11 Standby Time Thời gian chờ smallint Đơn vị: giờ
12 Talk Time Thời gian đàm
thoại
smallint
13 Screen Color Màn hình char(10)
14 Screen
Resolution

Độ phân giải của
màn hình
char(10)
15 GPRS GPRS Bit
16 FM Nghe radio FM bit
17 Message Loại tin nhắn hỗ
trợ
nvarchar(50)
18 Camera Chụp hình nvarchar(50)
19 MP3 Nghe nhạc MP3 bit
20 Memory Dung lượng bộ
nhớ
int
21 WAP Char(10)

44
22 Bluetooth bit
23 Java Bit
24 Battery nvarchar(50)
25 Networks Mô tả các băng
tần hỗ trợ
nvarchar(50)
26 Price float
27 CaseType Mã kiểu dáng int 1-4
28 Midi bit
29 Video Quay video bit
30 Games Mô tả các trò
chơi có trong
máy
nvarchar(50)


Bảng 5.3 - Bảng dữ liệu tblCaseType
STT Tên thuộc tính Ý nghĩa Kiểu dữ liệu Miền giá trị Ghi chú
1 CasetypeID Mã kiểu dáng int Khóa chính
2 Description Mô tả nvarchar(20)

Bảng 5.4 - Bảng dữ liệu tblProducers
STT Tên thuộc tính Ý nghĩa Kiểu dữ liệu Miền giá trị Ghi chú
1 ProducerID Mã hãng sản
xuất
Int Khóa chính
2 ProducerName Tên hãng sản
xuất
nvarchar(50)
3 Website Đường dẫn
trang web hãng
sản xuất
nvarchar(50)
4 Logo Đường dẫn chứa
hình của hãng
sản xuất
nvarchar(50)

Bảng 5.5 - Bảng dữ liệu tblOrders
STT Tên thuộc tính Ý nghĩa Kiểu dữ liệu Miền giá trị Ghi chú
1 OderID Mã đơn đặt
hàng
Int Khóa chính
2 OderDate Ngày đặt datetime
3 CusName Tên khách hàng nvarchar(50)

4 CusAdd Địa chỉ khách
hàng
nvarchar(50)
5 CusEmail Email của khách
hàng
nvarchar(50)
6 CusTel Điện thoại của
khách hàng
char(10)
7 DeliveryAdd Địa chỉ giao
hàng
nvarchar(50)
8 Amount Tổng tiền khách float

45
hàng
9 DiscountAmount Phần trăm giảm
giá
float
10 ShipCost Phí giao hàng float
11 TotalAmount Tổng tiền thanh
toán hóa đơn.
float

Bảng dữ liệu tblOrderDetails
Bảng 5.6 - Bảng dữ liệu tblOrderDetails
STT Tên thuộc tính Ý nghĩa Kiểu dữ
liệu
Miền giá trị Ghi chú
1 OrderNumber Số thứ tự của chi

tiết trong hóa đơn
Int Khóa chính
2 OrderID Mã hóa đơn Int Khóa chính
3 ItemID Mã sản phẩm Int Khóa chính
4 Quatity Số lượng Int
5 Price Giá Float

5.2.3 Thiết kế các lớp đối tượng
Phần này bao gồm thiết kế các xử lý của đối tượng ở cả ba tầng hoạt động của hệ thống
và sự phối hợp hoạt động giữa chúng ở các mức độ tổng thể và chi tiết đến từng nghiệp
vụ.
5.2.3.a Hiện thực hóa các usecase ở mức thiết kế
Usecase Tìm kiếm

Hình 5.14 - Lược đồ trình tự (mức thiết kế) cho usecase Tìm kiếm.
Usecase Xem danh sách sản phẩm mới ra mắt:

×