Thiết kế các lớp đối tượng

Một phần của tài liệu Hệ hỗ trợ ra quyết định (Trang 50)

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.

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

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

Usecase Thanh tốn

Hình 5.20 - Lược đồ trình tự (mức thiết kế) cho usecase Thanh tốn

5.2.3.b Sơ đồ phối hợp giữa các trang web

5.2.3.c Sơđồ lớp của ứng dụng web

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 Lp 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. (adsbygoogle = window.adsbygoogle || []).push({});

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 tố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 tố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.

5.2.3.d Sơ đồ lớp của module thuật tốn GA

Hình 5.23 - Sơđồ lớp của module thuật tố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 tốn GA

STT Lp Mơ t

1 Genome Lớp đối tượng biểu diễn một gen của thuật tố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..

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 tố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 tố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.

- 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 tố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 tồn ứng dụng.

6.3 Một số màn hình tiêu biểu (adsbygoogle = window.adsbygoogle || []).push({});

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

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

Trang web: Viewcart.aspx

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 tố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 tố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 tố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 tố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 tố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”.

7.2 Hướng phát triển

Hồ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, hồn thiện chức năng thanh tố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...

Phụ lục A Bài tố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 tồ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 tố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 tố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 tốn “Tối ưu hĩa đa mục tiêu”

Việc giải quyết bài tố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 tốn tối ưu một mục tiêu. Trong bài tốn một mục tiêu để giải quyết bài tố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 tố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.

A.3 Một số định nghĩa A.3.1 Các biến quyết định (adsbygoogle = window.adsbygoogle || []).push({});

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 tố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 tố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).

A.4 Miền tối ưu Pareto A.4.1 Giới thiệu

Trong bài tố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

Miền khả 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

Một phần của tài liệu Hệ hỗ trợ ra quyết định (Trang 50)