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

Quá trình ra quyết định 4 2.2.1Phân loại quyết định .4 2.2.2Các giai đoạn của quá trình ra quyết định 4 2.3Hệ hỗ trợ ra quyết định 5 2.3.1Khái niệm Hệ hỗ trợ ra quyết định 5 2.3.2Các thành phần của Hệ hỗ trợ ra quyết định 6 2.3.3Mô hình ra quyết định 7 2.3.4Phân loại Hệ hỗ trợ ra quyết định 8 2.4Tìm kiếm và đánh giá các lựa chọn một phần rất quan trọng trong hỗ trợ ra quyết định 10 Chương 3 Mua hàng qua mạng và sự cần thiết của hỗ trợ ra quyết định 11 3.1Internet đem đến một phương thức mua bán mới 11 3.2Khảo sát thực trạng mua bán qua mạng .11 3.3So sánh giữa phương thức mua hàng truyền thống và mua qua mạng 12 3.3.1Các bước cơ bản để tiến hành một giao dịch mua hàng 12 3.3.2Các điểm thuận lợi và không thuận lợi trong phương thức mua bán truyền thống 3.3.3Các điểm thuận lợi và không thuận lợi trong phương thức mua bán qua mạng 13 3.4Khảo sát các trang web bán hàng và sự hỗ trợ khách hàng của chúng 13 3.4.1Khảo sát một số hệ hỗ trợ ra quyết định trong E-Commerce 14 3.4.2Bảng tóm tắt và so sánh .22 3.5Cá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 .22 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 .24 4.1Giới thiệu .24 4.2Các khó khăn khi xây dựng một module hỗ trợ khách hàng chọn sản phẩm 24 4.3Vấn đề “đa mục tiêu” khi chọn sản phẩm 25 4.4Cá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 25 4.5Chuyể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 .26 4.5.1Lời giải cho bài toán 26 4.5.2Các biến quyết định .26 4.5.3Các ràng buộc 26 4.5.4Các mục tiêu 27 4.5.5Hướng đến một lời giải “tối ưu” 28 4.5.6Các cải tiến để phù hợp với bài toán 31 [IMG]file:///C:/Users/ADMINI%7E1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg[/IMG]Chương 1 Giới thiệu 1.1 Tổng quan Trong những năm gần đây, sự phát triển của thương mại điện tử (E-Commerce) đã đem lại nhiều lợi ích to lớn cho nền kinh tế toàn cầu. Thông qua thương mại điện tử, nhiều loại hình kinh doanh mới được hình thành, trong đó có mua bán hàng trên mạng. Với hình thức mới này, người tiêu dùng có thể tiếp cận với hàng hóa một cách dễ dàng và nhanh chóng hơn rất nhiều so với phương thức mua bán truyền thống. Những tưởng với những thế mạnh của mình các trang web bán hàng sẽ dần thay thế các gian hàng hay các siêu thị truyền thống. Nhưng trên thực tế người mua vẫn còn rất mặn mà với phương pháp mua bán cũ. Một phần vì phương thức mua bán cũ dần dần từng bước chuyển từ thói quen thành một nếp văn hóa, văn hóa mua sắm. Khi đó người ta xem hoạt động mua sắm là một hoạt động không thể thiếu trong nền văn hóa đó. Mặt khác, các trang web bán hàng hiện nay dù đã được phát triển nhưng thực sự vẫn chưa thể thay thế được các cửa hàng thực tế. Một trong những nguyên nhân của sự thua kém này đó là yếu tố con người, một yếu tố mà chắc hẳn các trang web bán hàng khó có thể bù đắp được. Bên cạnh đó, đâu là các nguyên nhân khác gây ra sự thua kém này? Người mua nhận xét gì về những nổ lực mà các trang web bán hàng đã và đang mang lại? Làm thể nào để nâng cao hiệu quả của những cửa hàng điện tử này? 1.2 Vấn đề đặt ra Hiện nay, các hệ thống bán hàng trực tuyến đã tạo nhiều điều kiện thuận lợi để người mua có thể tiếp cận nhiều mặt hàng cùng lúc. Tuy nhiên, việc trình bày và trang trí quá nhiều các mặt hàng trên trang web đã gây ra không ít khó khăn cho người mua. Họ khó có thể chọn ra cho mình một sản phẩm ưng ý nhất. Để khách hàng có thể đến và mua được một sản phẩm ưng ý thì một lời khuyên, một sự trợ giúp là rất quan trọng. Một người bán hàng trong phương thức bán hàng truyền thống là một lợi thế rất lớn. Do đó để phương thức bán hàng qua mạng thực sự phát triển thì bên cạnh các lợi thế vốn có của mình việc có thêm một “người trợ giúp” là hết sức cần thiết. Hệ thống hỗ trợ ra quyết định (Decision Support System - DSS) với sự kết hợp của máy tính đã được áp dụng nhiều trong các công tác quản lý, những công việc tất yếu liên quan [IMG]file:///C:/Users/ADMINI%7E1/AppData/Local/Temp/msohtml1/01/clip_image002.jpg[/IMG]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 35 5.1Phân tích .35 5.1.1Mô hình Usecase 35 5.1.2Mô tả các Actor 35 5.1.3Mô tả các Usecase 35 5.2Thiết kế 41 5.2.1Thiết kế hệ thống .41 5.2.2Thiết kế cơ sở dữ liệu .42 5.2.3Thiết kế các lớp đối tượng .45 Chương 6 Cài đặt .55 6.1Môi trường phát triển ứng dụng .55 6.2Cài đặt chương trình 55 6.3Một số màn hình tiêu biểu .56 Chương 7 Kết luận và hướng phát triển .60 7.1Kết luận 60 7.2Hướng phát triển 61 Phụ lục A Bài toán tối ưu đa mục tiêu 62 Phụ lục B Thuật giải di truyền 68 Tài liệu tham khảo .71 v

pdf74 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3011 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ự 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 )(xfc 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à )(Xfc = 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 đó 0kX là giá trị lớn nhất mà thuộc tính 1X 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. )(Xfc )(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 kPPPef = (Pref - Preference ) Trong đó iP là một hằng số, mô tả giá trị mà người mua mong muốn có được ở thuộc tính ix . 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ị iP 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 iP là một mục đích của chúng ta. Một mục đích trên thuộc tính ix 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. )(xfc )(xf p Miền tối ưu Pareto iP 1P 2P 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 đó iw 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ả cw 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ộ. )(xfc )(xf p cw pw 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. )(xfc )(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á). )(xfc )(xf p Đột biến )(xfc )(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 −−= và )/||1()( *ccpwxf ccc −−= trong đó iw là độ quan trọng của thuộc tính i. ip là giá trị mà người dùng mong đợi ở thuộc tính i. ix là giá trị của thuộc tính i * ix 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: 46 Hình 5.15 - Lược đồ trình tự (mức thiết kế) cho usecase Xem sản phẩm mới ra mắt. Usecase Trợ giúp chọn sản phẩm Hình 5.16 - Lược đồ trình tự (mức thiết kế) cho usecase Trợ giúp chọn sản phẩm 47 Usecase Xem chi tiết Hình 5.17 - Lược đồ trình tự (mức thiết kế) cho usecase Xem thông tin chi tiết Usecase Thêm hàng vào giỏ Hình 5.18 - Lược đồ trình tự (mức thiết kế) cho usecase Thêm hàng vào giỏ Usecase Xem giỏ hàng Hình 5.19 Lược đồ trình tự (mức thiết kế) cho usecase Xem giỏ hàng 48 Usecase Thanh toán Hình 5.20 - Lược đồ trình tự (mức thiết kế) cho usecase Thanh toán 5.2.3.b Sơ đồ phối hợp giữa các trang web Hình 5.21 Sơ đồ phối hợp giữa các trang web 52 5.2.3.c Sơ đồ lớp của ứng dụng web Hình 5.22 - Sơ đồ lớp ứng dụng WebMobileShop. 53 Các thành phần của sơ đồ: Bảng 5.7 - Các đối tượng lớp của hệ thống WebMobileShop STT Lớp Mô tả 1 pageDefault Trang chủ của ứng dụng web 2 pageSearch Trang tìm kiếm sản phẩm theo giá và hãng sản xuất 3 pageCriterionChoose Trang trợ giúp khách hàng lựa chọn sản phẩm thông qua đánh giá các tiêu chuẩn của sản phẩm 4 pageResult Trang kết quả sản phẩm đề nghị cho khách hàng. 5 pageViewcart Trang xem giỏ hàng. 6 Checkout Trang đặt hàng và kết xuất hóa đơn. 7 BLItems Lớp đối tượng xử lý liên quan đến sản phẩm gồm các phương thức lấy sản phẩm theo hãng sản xuất, tìm kiếm sản phẩm theo giá và hãng sản xuất. 8 BLProducer Lớp đối tượng xử lý liên quan đến hãng sản xuất gồm các phương thức lấy danh sách các hãng sản xuất. 9 OrderItem Lớp đối tượng xử lý các sản phẩm đã đặt hàng. 10 OrderList Lớp đối tượng xử lý liên quan đến danh sách đặt hàng. 11 CustomerPreference Lớp đối tượng chứa các đánh giá khách hàng về mỗi tiêu chuẩn sản phẩm. 12 Weight Lớp đối tượng chứa thuộc tính trọng lượng của sản phẩm. 13 Price Lớp đối tượng chứa thuộc tính giá bán của sản phẩm. 14 CaseType Lớp đối tượng chứa thuộc tính kiểu dáng của sản phẩm. 15 Entertainment Lớp đối tượng chứa các thuộc tính giải trí của sản phẩm. 16 StandbyTime Lớp đối tượng chứa thuộc tính thời gian sử dụng của sản phẩm. 17 Population Lớp đối tượng chứa các xử lý danh sách sản phẩm của module thuật toán GA. 18 MobileContainer Lớp đối tượng xử lý dữ liệu danh sách sản phẩm của module thuật toán GA. 19 DAItems Lớp đối tượng xử lý dữ liệu danh sách sản phẩm. 20 DAProducer Lớp đối tượng xử lý dữ liệu danh sách hãng sản xuất. 54 5.2.3.d Sơ đồ lớp của module thuật toán GA Hình 5.23 - Sơ đồ lớp của module thuật toán GA. Các lớp đối tượng trong module này được mô tả trong bảng dưới đây: Bảng 5.8 - Các đối tượng thuộc module thuật toán GA STT Lớp Mô tả 1 Genome Lớp đối tượng biểu diễn một gen của thuật toán di truỳen. 2 Individual Lớp đối tượng biểu diễn một cá thể 3 CustomerPreference Lớp đối tượng chứa các đánh giá khách hàng về mỗi tiêu chuẩn sản phẩm. 4 Weight Lớp đối tượng chứa thuộc tính trọng lượng của sản phẩm. 5 Price Lớp đối tượng chứa thuộc tính giá bán của sản phẩm. 6 CaseType Lớp đối tượng chứa thuộc tính kiểu dáng của sản phẩm. 7 Entertainment Lớp đối tượng chứa các thuộc tính giải trí của sản phẩm. 8 StandbyTime Lớp đối tượng chứa thuộc tính thời gian sử dụng của sản phẩm. 9 Population Lớp đối tượng chứa các xử lý danh sách sản phẩm, biểu diễn quần thể của thuật giải di truyền. 10 MobileContainer Lớp đối tượng xử lý dữ liệu danh sách sản phẩm. 11 MobileCriterion Lớp đối tượng cha được xử lý dữ liệu danh sách sản phẩm từ cơ sở dữ liệu.. 55 Chương 6 Cài đặt 6.1 Môi trường phát triển ứng dụng Hệ thống website được cài đặt dựa trên các môi trường phát triển sau: • Môi trường cài đặt ứng dung: Visual Studio.NET • Ngôn ngữ sử dụng: ASP.NET và C#.NET • Hệ quản trị cơ sở dữ liệu: SQL Server • Phần mềm mô hình hóa ứng dụng: Rational XDE 6.2 Cài đặt chương trình Tập tin cơ sở dữ liệu SQL Server được cài đặt tại máy Server. Hệ chương trình được viết bằng ngôn ngữ C#.NET gồm 2 phần: • Phần cài đặt thuật toán GA gồm 2 project : project MobilePhoneShop chứa kết nối và xử lý đến cơ sở dữ liệu và project GeneticAlgorithm chứa cài đặt thuật toán di truyền theo trọng số. Cả hai project là những Class Library project kết xuất ra tập tin DLL. • Phần trang web Mua bán điện thoại di động gồm 1 project WebMobileShop được cài đặt theo mô hình ứng dụng web 3 tầng: - Tầng dữ liệu bao gồm các phương thức đọc, ghi cơ sở dữ liệu sử dụng kỹ thuật ADO.NET để kết nối và truy cập dữ liệu. Các hàm này chứa trong các lớp đối tượng DABasic, DAItems, DAProducers. Khi khởi động chương trình, hệ thống đọc vào bộ nhớ chính danh sách thuộc tính của các máy điện thoại di động. Trong quá trình hoạt động, khi có nhu cầu đọc, ghi dữ liệu, hệ thống kết nối với Server để đọc các thông tin dữ liệu vào bộ nhớ chính của hệ thống hoặc ghi dữ liệu từ bộ nhớ chính vào tập tin cơ sở dữ liệu trên Server. - Tầng xử lý bao gồm các hàm xử lý nghiệp vụ. Các hàm xử lý khi xử lý trên dữ liệu sẽ thực hiện trực tiếp trên dữ liệu đã được đọc vào bộ nhớ chính. Nếu chưa có dữ liệu trong bộ nhớ, các hàm xử lý sẽ triệu gọi đến các hàm đọc ghi dữ liệu ở tầng dữ liệu. Trong chương trình, các hàm xử lý được thiết kế độc lập với giao diện người dùng. 56 - Tầng giao tiếp bao gồm các hàm hiển thị thông tin và các xử lý dữ liệu có thể hiện trên màn hình được thiết kế. Các hàm này được cài đặt trực tiếp tại các trang web. Khi các trang web được triệu gọi, thông tin dữ liệu được lấy từ bộ nhớ của máy chủ để hiển thị đến trình duyệt của người dùng. Khi có các xử lý nghiệp vụ xảy ra, các hàm tại tầng giao tiếp sẽ triệu gọi đến các hàm xử lý nghiệp vụ ở tầng xử lý. Riêng trang trợ giúp lựa chọn sản phẩm sẽ áp dụng mô hình thuật toán GA bằng cách gọi các hàm trong 2 DLL đã trình bày ở trên. Với mô hình xử lý như mô tả trên, hệ thống phần nào đã thể hiện được sự hoạt động của mô hình ba lớp trên môi trường .NET, sự phối hợp cũng như tính độc lập của các lớp đối tượng được cài đặt tại mỗi tầng và trong toàn ứng dụng. 6.3 Một số màn hình tiêu biểu Khi gọi ứng dụng web, trang đầu tiên sẽ hiển thị như sau: Trang web: Default.aspx Tiêu đề: WebMobileShop Homepage Ý nghĩa: Trang chủ của ứng dụng 57 Trang web: CriterionChoose.aspx Ý nghĩa: Trợ giúp người dùng chọn lựa sản phẩm theo các tiêu chuẩn cần có của một máy điện thoại di động Trang web: Result.aspx Ý nghĩa: Danh sách các máy điện thoại đề nghị cho khách hàng sau khi họ đã đánh giá các tiêu chuẩn ở trang CriterionChoose.aspx 58 Trang web: Viewcart.aspx Ý nghĩa: Trang chủ của ứng dụng 59 60 Chương 7 Kết luận và hướng phát triển 7.1 Kết luận Hệ hỗ trợ ra quyết định tuy không phải là một đề tài mới mẻ, với rất nhiều đề tài nghiên cứu và các nổ lực áp dụng thực tế nó đã dần dà trở thành một bộ phận quan trọng của các hệ thống thông tin hiện đại. Tuy nhiên các áp dụng của nó vẫn ở mức rất sơ khai và vẫn chưa có một chuẩn thống nhất.Trong khuôn khổ luận văn chúng em đã tìm hiểu một cách tổng quan Hệ hỗ trợ ra quyết định. Bài toán tối ưu hóa đa mục tiêu thực chất là một pha trong Hệ hỗ trợ ra quyết định, giai đoạn lựa chọn. Đã có rất nhiều cách tiếp cận được đặt ra để giải quyết bài toán này, xong các cách tiếp cận đó vẫn giựa trên một ứng dụng, một tình huống cụ thể thực tế nào đó. Và thực tế là chưa có một phương pháp nào có thể thỏa mãn tất cả các tình huống và cũng chưa có phương pháp nào để so sánh hiệu quả của các phương pháp đó với nhau.Trong luận văn này chúng em đã cố gắng đưa ra một cái nhìn tổng quát về bài toán tối ưu hóa đa mục tiêu và một số cách tiếp cận.Trong đó chúng em tập trung vào phương pháp dùng thuật giải di truyền, một phương pháp còn tương đối mới mẻ. Và giựa trên phương pháp áp dụng thuật giải di truyền trong bài toán tối ưu hóa đa mục tiêu ,chúng em cũng đã có những cải tiến để có thể áp dụng vào bài toán cụ thể đó là “Trợ giúp khách hàng chọn sản phẩm khi mua hàng qua mạng”. Với cách tiếp cận trên chúng em đã tìm cách áp dụng và xây dựng một trang web bán điện thoại qua mạng.Trong đó có cài đặt phần trợ giúp để khách hàng có thể chọn một chiếc vừa ý và nhanh chóng nhất.Do trong khuôn khổ giới hạn của luận văn ,tuy trang web có thể đáp ứng được các thành phần cơ bản cho một trang web bán hàng nhưng vẫn còn rất nhiều thiếu sót và hạn chế. Sau khi cài đặt chúng em nhận thấy rằng với cách tiếp cận này trang web sẽ đảm bảo được về mặt thời gian.Thế nhưng kết quả trả về có thể khác nhau qua các lần chạy (vì đôi khi miền tối ưu Pareto có nhiều lời giải). Tuy nhiên một điểm mạnh của phương pháp này so với các phương pháp tìm kiếm thông thường đó là luôn cho ra kết quả (tối ưu hoặc gần tối ưu) chứ không phải đưa ra một câu thông báo đáng buồn cho người mua lẫn kẻ bán “Không thể tìm thấy sản phẩm thích hợp”. 61 7.2 Hướng phát triển Hoàn thiện trang web để nó có thể áp dụng một cách thực tế: giao diện thân thiện và gần gủi hơn, hoàn thiện chức năng thanh toán. Cải tiến phương pháp đánh giá trên miền Pareto để có thể cho ra kết quả xâu xát hơn và để tránh tình trạng cho ra các kết quả khác nhau qua các lần chạy. Hổ trợ thêm để người dùng có thể chọn ra sản phẩm cuối cùng trong số các sản phẩm mà ta đã đề nghị. Vì chỉ cần có 2 sự chọn lựa là ta đã phải đưa ra quyết định. Chúng ta có thể áp dụng các phương pháp giải quyết tối ưu cũ (tiêu tốn nhiều thời gian hơn) như AHP, Tweak Utility... 62 Phụ lục A Bài toán tối ưu đa mục tiêu A.1 Sự ra đời Tất cả các lĩnh vực như kỹ thuật, khoa học, kinh doanh, và khoa học xã hội và tự nhiên đều liên quan đến việc quyết định phân bổ,hoạch định các tài nguyên hạn hẹp cho các hoạt động,ví dụ quyết định đầu tư kinh doanh,phân công công việc, phân bổ tài nguyên v.v... Những hoạt động này đều liên quan đến việc đo lường và tối ưu các hiệu xuất, mục tiêu. Trong một trường hợp cụ thể nào đó, các mục tiêu có thể được tối ưu hóa một cách độc lập để đạt được kết quả tốt nhất ứng với mục tiêu đó. Tuy nhiên một kết quả chấp nhận được cho toàn bộ các mục tiêu khó có thể tìm ra theo cách đó. Bởi vì việc tối ưu hóa một mục tiêu có thể dẫn đến kết quả của một hoặc nhiều mục tiêu khác trở nên tồi tệ. Ví dụ trong việc chế tạo xe đua làm sao tìm ra được trọng lượng hợp lý của thùng xăng để xe có thể đi một khoảng đường dài mà không phải tiếp nhiên liệu (cần một lượng xăng lớn) nhưng không làm tăng nhiều khối lượng của xe (làm giảm tốc độ xe). Tuy nhiên thực tế là chưa có một định nghĩa thống nhất thế nào là tối ưu như trong bài toán một mục tiêu do đó thậm chí rất khó để ta có thể so sánh kết quả giữa các phương pháp với nhau bởi vì việc quyết định cái gì là tốt nhất rốt cuộc vẫn thuộc về người ra quyết định. A.2 Phát biểu bài toán Khi một vấn đề được đặt ra trong đó có nhiều tiêu chí, mục tiêu kèm theo.Nếu các mục tiêu xung đột với nhau và các biến quyết định có những ràng buộc với nhau thì việc đi tìm giải pháp tối ưu của vấn đề trở thành bài toán “Tối ưu hóa đa mục tiêu” Việc giải quyết bài toán tối ưu hóa đa mục tiêu được giải quyết với ý tưởng tương tự bài toán tối ưu một mục tiêu. Trong bài toán một mục tiêu để giải quyết bài toán ta phải đi tìm một tập các các biến quyết định thỏa các ràng buộc và đưa ra một kết quả tối ưu đối với hàm mục tiêu. Bài toán đa mục tiêu chỉ khác là nó phải giải quyết nhiều mục tiêu khác nhau (có thể xung đột với nhau) và thường cho ra một tập các giải pháp tối ưu hoặc không so sánh được với nhau. 63 A.3 Một số định nghĩa A.3.1 Các biến quyết định Bước đầu tiên trong quá trình tối ưu hóa là việc công thức hóa vấn đề. Một mô hình toán học cần được đưa ra để mô tả chính xác các hành vi hay giá trị của các tình huống. Nhìn chung các bài toán đa mục tiêu đều có thể biểu diễn bằng một vector các hàm trong đó ánh xạ m tham số (các biến quyết định) thành một tập n mục tiêu. Min/Max y = f(x) = (f1(x),f2(x)…fn(x)) Trong đó x=(x1, x2,… ,xm) ∈ X y=( y1, y2,… ,yn) ∈ Y x được gọi là vector quyết định bao gồm m biến quyết định . X được gọi là không gian tham số(hay không gian tìm kiếm) . y được gọi là vector mục tiêu bao gồm n mục tiêu và Y được gọi là không gian mục tiêu. A.3.2 Các ràng buộc Bước tiếp theo của việc công thức hóa vẫn đề đó là xác định các ràng buộc. Ràng buộc là những điều kiện giữa các biến quyết định mà các giải pháp cần phải thỏa. Các ràng buộc được mô tả bằng các đẳng thức hoặc bất đẳng thức. gj(x) ≤ 0 , j = 1,2,…,J hk(x) = 0 , k = 1,2,…,K A.3.3 Hàm mục tiêu Bước cuối cùng của việc công thức hóa vấn đề đó là định nghĩa các hàm mục tiêu. Đây chính là con số mà người thiết kế cần tối ưu hóa. Các hàm này được biểu diễn dưới dạng: f(x)=(f1(x),f2(x),…,fn(x)) A.3.4 Dạng chuẩn của vấn đề Một vấn đề được công thức hóa có dạng chuẩn như sau min/max {f(x):h(x)=0,g(x) ≤0} => x ∈ Rn Công thức trên có thể được diến đạt như sau: tìm một tập các giá trị R của vector quyết định sao cho hàm mục tiêu đạt giá trị nhỏ nhất (lớn nhất) và thỏa các ràng buộc là các dẳng thức h(x) và bất đẳng thức g(x). 64 A.4 Miền tối ưu Pareto A.4.1 Giới thiệu Trong bài toán tối ưu đa mục tiêu, ta mong muốn tìm được một tập giá trị các biến quyết định nhằm tối ưu các hàm mục tiêu. Tập các biến quyết định cho ta một kết quả tối ưu được gọi là một tập tối ưu và được ký hiệu là x*. Miền tối ưu Pareto là một tập hợp chứa các tập tối ưu mà từ đó ta có thể chọn ra các giá trị mong muốn (tối ưu). A.4.2 Tối ưu pareto Mieàn khaû thi C A B C1 f1 f2 Hình 7.1 - Miền tối ưu Pareto. Như hình trên miền tối ưu Pareto (đường tô đậm) là một tập hợp các điểm nếu di chuyển từ điểm này (ví dụ điểm A) đến điểm kia (ví dụ điểm B) trong tập hợp làm cho một mục tiêu bị giảm thì phải có ít nhất một mục tiêu khác tăng lên và ngược lại. Nói cách khác một vector xv = f(xv)=(v1,v2,…,vn) thuộc một tập P được gọi là thuộc miền tối ưu Pareto khi và chỉ khi không tồn tại một vector quyết định xu = f(xu) = (u1,u2,…un) nào thống trị xv ,nghĩa là ∀ i ∈{1,…,n}, ui ≤ xi và ∃ i ∈ {1,…,n}, ui<xi Như ở hình trên thì A,B,C1 thuộc miền tối ưu Pareto nhưng C thì không, vì C bị thống trị bởi C1. Một phương án x* không bị thống trị bởi một phương án nào cả sẽ thuộc về miền tối ưu Pareto. Do vậy việc giải bài tóan tối ưu hóa đa mục tiêu là chọn ra từ miền Pareto của bài 65 toán một hay một số các phương án tốt nhất theo một nghĩa nào đó dựa trên cơ cấu ưu tiên của người ra quyết định. A.5 Cách tiếp cận bài toán đa mục tiêu giựa trên thuật giải di truyền A.5.1 Giới thiệu Khái niệm về áp dụng thuật toán di truyền vào bài toán đa mục tiêu đã xuất hiện vào những năm 60 trong một nổ lực nghiên cứu của Rosenberg (1967). Ông đã đề xuất sử dụng nhiều thuộc tính trong việc mô phỏng các gene và quần thể các sinh vật dơn bào. Thật ra trong cài đặt của mình ông chỉ sử dụng một thuộc tính và cách tiếp cận đa mục tiêu không thể thấy được trong cài đặt của ông nhưng nó đã trở thành điểm xuất phát cho việc áp dụng giải thuật di truyền vào bài toán tối ưu đa mục tiêu. Chúng ta biết rằng thuật toán di truyền (xem phụ lục B) cần thông tin về độ thích nghi để làm việc. Có lẽ ý nghĩ đơn giản và tự nhiên nhất đó là kết hợp các mục tiêu lại làm một bằng cách sử dụng các phép toán đại số. Cách tiếp cận này đòi hỏi chúng ta phải cung cấp các thông tin về tầm mức của các mục tiêu. Điều này đòi hỏi chúng ta phải biết về hành vi, hoạt động của các hàm mục tiêu, đây không phải là một tiến trình đơn giản. Với cách kết hợp các mục tiêu lại với nhau, rõ ràng đây không phải là cách đơn giản nhất nhưng có lẽ là một trong những cách hiệu quả nhất bởi vì nó không đòi hỏi phải giao tiếp với người ra quyết định thêm lần nào nữa trong khi thuật toán đang được thực hiện. Và nếu GA kết thúc bằng một kết quả thích nghi tối ưu thì kết quả này ít nhất sẽ thuộc về một tập các giải pháp tối ưu trong đa số trường hợp. Cách tiếp cận kết hợp các mục tiêu lại đưa về bài toán một mục tiêu là một trong các cách được biết đến nhiều nhất trong việc giải bái toán tối ưu đa mục tiêu vì tính hiệu quả của nó. Một số cách tiếp cận theo cách trên đã được đề ra như tổng trọng số, hướng mục đích và tối ưu Min-Max. A.5.2 Cách tiếp cận tổng trọng số (Weighting objective) Phương pháp này chúng ta sẽ cộng các hàm mục tiêu lại với nhau và sử dụng các trọng số đối với từng mục tiêu, trọng số này thể hiện sự tương quan về độ quan trong của các mục tiêu. Với cách này các giải pháp trên miền Pareto (vốn không so sánh được với nhau) sẽ có thể đánh giá và so sánh được. Khi đó vấn đề của chúng ta sẽ được chuyển thành dạng: 66 ∑ = k i ii xfw 1 )(min hoặc ∑ *)(min iii cxfw Trong đó wi ≥ 0 là các trọng số mô tả mối tương quan độ quan trọng giữa các mục tiêu.Và thường được tạo với cách: ∑ = = k i iw 1 1 Và *ic là một hằng số với ** 1 ii fc = và *if là giá trị tối ưu của hàm mục tiêu if . Rõ ràng kết quả của bài toán sẽ thay đổi khi các hệ số trọng số thay đổi, và thông thường các trọng số này khó được xác định do đó cần một cách tiếp cận khác khi chúng ta phải sử đụng nhiều giá trị trọng số khác nhau. Nhưng trong trường hợp các trọng số được xác định bởi người ra quyết định giựa trên trực giác của mình thì cách này vẫn tỏ ra có hiệu quả. A.5.3 Cách tiếp cận hướng mục đích (Goal programming) Cách tiếp cận này được đưa ra và đã đóng một vai trò then chốt trong các ứng dụng trong lĩnh vực công nghiệp.Trong phương pháp này người ra quyết định phải xác định mục đích mà mỗi mục tiêu cần đạt được. Các hàm mục tiêu sẽ cố gắng tìm cách làm tối thiểu hóa khoảng cách giữa giá trị hiện đạt được của mục tiêu với giá trị đích mà người ra quyết định mong muốn đạt được. Hình thức đơn giản nhất của phương pháp này là: FxTxf k i ii ∈−∑ = ,|)(|min 1 Trong đó iT là giá trị đích mà người ra quyết định mong muốn đạt được ở hàm mục tiêu thứ i, F là vùng khả thi.Trong đó mục tiêu của ta bây giờ là làm tối thiểu hóa khoảng cách giữa giá trị đích và giá trị thực sự mà mục tiêu đạt được. Phương pháp này sẽ cho ra một giải pháp đôi khi bị thống trị bởi một giải pháp khác nếu đích cần đạt được nằm trong vùng khả thi. Đây có thể là một cách tiếp cận rất hiệu quả nếu chúng ta biết được giá trị đích mà chúng ta mong đợi và giá trị đó nằm trong vùng 67 khả thi. Tuy nhiên người ra quyết định vẫn phải cung cấp các trọng số ưu tiên của các mục tiêu để cho các giải pháp có thể so sánh được, và trong nhiều trường hợp điều này rất khó thực hiện nếu không biết trước được hình dáng của không gian tìm kiếm. A.5.4 Các cách tiếp cận khác Một số cách tiếp cận khác để giải bài toán tối ưu đa mục tiêu khác cũng giựa trên thuật giải di truyền như Min-Max, ràng buộc ε, VEGA… A.5.5 Cách tiếp cận ràng buộc ε A.6 Tổng kết Mặc dù rất nhiều nổ lực được đưa ra để giải quyết bài toán tối ưu đa mục tiêu, tuy nhiên hầu hết đều nhằm để giải quyết các vấn đề cụ thể nào đó và chưa có một phương thức nào tỏ ra có hiệu quả trong tất cả các vấn đề. Và cũng chưa có phương cách nào để so sánh tính hiệu quả của các phương pháp.Do đó để muôn áp dụng thuật toán di truyền để giải quyết một bài toán tối ưu đa mục tiêu thì có rất nhiều chuyện để làm như kích thứoc một quần thể, biểu diễn các biến quyết định, các thao tác của thuật toán như lai ghép, đột biến. Mặc dù độ phức tạp khi cài đặt thuật toán khá cao nhưng do kết quả mà nó đem lại rỏ ràng rất ấn tượng. Do đó việc áp dụng thuật toán di truyền để giải quyết bài toán tối ưu đa mục tiêu đang được ngày càng quan tâm và phát triển. 68 Phụ lục B Thuật giải di truyền B.1 Tổng quát về thuật giải di truyền Các khái niệm cơ bản của Thuật giải di truyền (Genetic Algorithm-GA) lần đầu tiên được đưa ra bởi Holland [29] vào những năm 70. GA hoạt động dựa trên cơ chế chọn lọc tự nhiên được đề xuất bởi nhà bác học Darwin. Theo cơ chế này, những cá thể thích nghi hơn sẽ tồn tại, và được gọi là “quy luật tồn tại của sự thích nghi”.Tương tự như vậy, thuật giả GA cũng sử dụng cơ chế chọn lọc tự nhiên, theo cách đó những giải pháp tối ưu sẽ được tồn tại qua các tiến trình của thuật giải .Nhìn chung thuật giải GA bao gồm các yếu tố :biểu diễn số,tính toán độ thích nghi,chọn lọc và các thao tác di truyền .Một thuật giải GA tổng quát có dạng như sau: Tạo nhẫu nhiên quần thể ban đầu P(0), đặt i=0 Lặp Định giá độ thích nghi của từng cá thể trong P(i) Chọn các cặp bố mẹ dựa trên độ thích nghi của các cá thể P(i) Thực hiện các hàm lai ghép và đột biến trên các các cập bố mẹ đã chọn để tạo ra thế hệ tiếp theo Cho đến khi “tiêu chuẩn dừng” thỏa mãn. B.2 Biểu diễn một giải pháp dưới dạng gen Theo GA mỗi giải pháp cho một vấn đề đều có thể biểu diễn dưới dạng một tấp hợp các tham số. Các tham số này đóng vai trò như các gene trong một nhiễm sắc thể, và có thể biểu diễn dưới dạng một dạng chuỗi các bit số học. Mỗi nhiễm sắc thể được mã hóa từ một giải pháp được gọi là “kiểu di truyền” và giải pháp được mã hóa đó được gọi là một “kiểu hình”. Biểu diễn một vấn đề được dưới dạng gene luôn là phần quan trọng nhất của thuật giải di truyền. B.3 Tính độ thích nghi Một số thực dùng để phản ánh độ tốt của nhiễm sắc thể được gọi là “độ thích nghi”.Nó dùng để diễn tả giá trị mục tiêu của nhiễm sắc thể. Việc tính toán độ thích nghi dùng để xác định chất lượng của một nhiễm sắc thể đối với một mục tiêu của kiểu hình. 69 B.4 Chọn lọc tự nhiên Sau khi tính toán độ thích nghi những nhiễm sắc thể (NST) tốt hơn sẽ có nhiều cơ hội sống sót và di truyền sang thế hệ sau hơn. Trong các ứng dụng GA quần thể ban đầu phải được khởi tạo, các nhiễm sắc thể sẽ được khởi tạo ngẫu nhiên. Kích thước của quần thể thay đổi theo từng bài toán cụ thể. Trong mỗi chu trình tiến hóa, một số cặp NST sẽ được chọn lọc để nhân giống, tạo ra thế hệ kế tiếp. B.5 Những hoạt động di truyền Trong quần thể các cặp gene bố mẹ được chọn sẽ được trộn lẫn và kết hợp lại để tạo ra các cặp gene thế hệ con. Thao tác như vậy gọi là “lai ghép” . Hình B.1 - Lai ghép trong thuật toán di truyền. Thao tác ”đột biến” được thực hiện với tần số thấp để tạo ra các gene mới cho quần thể. Đột biến được thực hiện bằng cách thay đổi ngẫu nhiên một gene trong NST Hình B.2 - Thao tác đột biến trong thuật toán di truyền. B.6 Điều kiện dừng Các vòng lặp của thuật giải sẽ kết thúc khi gặp điều kiện dừng. Các điều kiện dừng có thể như: 70 • Đạt số vòng lặp tối đa. • Đạt độ thích nghi tối đa. • Quá thời gian thực hiện. • Đạt ngưỡng tài nguyên. 71 Tài liệu tham khảo [1] Nguyễn Tấn Trần Minh Khang, Giải thuật di truyền trong một lớp bài tóan lập lịch, Luận Văn Thạc sĩ Khoa Học CNTT, 2002. [2] Nguyễn Hòang Tú Anh, Nghiên cứu và phát triển thuật tóan tìm luật kết hợp tối ưu trên thuộc tính số, Luận Văn Thạc sĩ Khoa Học CNTT, 2002. [3] Ngô Quang Tuấn Huy, Xây dựng hệ thống giải lớp bài tóan tôi ưu số trên cơ sở thuật giải di truyền, Luận Văn Cử Nhân CNTT, 2002. [4] DSS Glossary, [5] Gorry,G.A, Scott Morton, A framework for Management Information Systems , Sloan Management Review, Vol 13, No 1, (1971). [6] Efraim Turban và Jay E Aronson, Decision Support Systems and Intelligent Systems [7] Management Information Systems for the Information Age [8] Susan Sproule và Norm Archer, Knowledgeable Agents For Search And Choice Support In E-Commerce: A Decision Support Systems Approach, [9] Bing Xu, Zhi-geng Pan và Hong-wei Yang, Agent-based Model for Intelligent Shopping Assistant and its Application ccd13cce.pdf [10] Filippo Menczer và các cộng sự, IntelliShopper: A Proactive, Personal, Private Shopping Assistant. [11] Nguyễn Đình Thúc, Trí tuệ nhân tạo : Lập trình tiến hóa, Nhà xuất bản giáo dục, Tp HCM, 2001. [12] Hoàng Kiếm và Nguyễn Đình Thúc, Về sự hội tụ của hồi quy di truyền, Hội nghị khoa học trường ĐHKHTN lần 2 , 2000. [13] Bùi Thế Tâm và Trần Vũ Thiên, Các phương pháp tối ưu hóa , NXB Giao thông Vận tải, 1998. 72 [14] Carlos A Coello, A comprehensive survey of evolutionary-based multiobjective optimization techniques, [15] Carlos M Fonseca và Peter J Fleming, Genetic Algorithms for multiobjective optimization: Formulation, Discussion and Generalizations [16] Barry G. Silverman, Mintu Bachann, Khaled Al-Akharas (Dept. of Systems Engineering, University of Pennsylvania),Implications of Buyer Decision Theory for Design of eCommerce Websites,2001,pp.24. [17] J. Ben Schafer, Joseph A. Konstan, John Riedl(Department of Computer Science and Engineering University of Minnesota),E-Commerce Recommendation Applications,2004. [18] Jochen Hansen, How new and different are consumer in the digital marketplace?, The Impact of Networking,Vienna Austria,tháng 9 năm 2000.

Các file đính kèm theo tài liệu này:

  • pdfPhâ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.pdf
Luận văn liên quan