Qua môn học Cơ sở tri thức và bài 1 của Cơ sở dữ liệu nâng cao, cùng với sự tham khảo một số các tài liệu, mình nhận thấy có một ý tưởng khá hay (đã được nghiên cứu và tìm hiểu) có thể dùng làm tiểu luận: Ứng dụng cơ sở dữ liệu suy diễn để xây dựng hoặc mô phỏng mộ hệ hỗ trợ quyết định.
Đây là một ý tưởng có tính ứng dụng thực tiễn cao và thầy Kiếm cũng có giới thiệu một số bài tiểu luận về hệ hỗ trợ quyết định trong ý tế, tài chính,… (nhưng mình chưa thấy up lên diễn đàn nên chưa có dịp được tham khảo, không biết những bài đó có dựa trên cơ sở dữ liệu suy diễn hay không ?)
Theo ý kiến riêng của mình, chúng ta có thể kết hợp kiến thức của 2 môn để xây dựng nên một ứng dụng tốt. Thêm nữa là không cần mất thời gian suy nghĩ 2 ý tưởng khác nhau để viết tiểu luận cho 2 môn.
Như vậy, ý tưởng thiết kế chương trình của mình sẽ như sau:
Cơ sở dữ liệu sẽ là một DBMS, có thể là Access, Oracle, SQL Server hoặc MySQL
a) Xây dựng đồ thị suy diễn
<!–emo&B)–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/cool.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘cool.gif’ /><!–endemo–> Hiện thực thuật toán 2 trong Datalog
c) Tìm những quyết định
Phần xuất sẽ là những quyết định được đưa ra
Trên đây mới chỉ là ý tưởng ban đầu của mình và tất nhiên trong các buổi học tới của môn Cơ sở dữ liệu nâng cao, sẽ còn nhiều kiến thức nữa mà chúng ta có thể bổ sung cho chương trình được tốt hơn. Mong nhận được sự góp ý của thầy Phúc cùng các bạn trong lớp để mình có thể nhận ra rõ hơn những việc phải thực hiện.
Bước kết nối Database của bạn Trung rất có lý:
Chúng ta có thể sử dụng mô hình ADO.NET để kết nối DBMS
với C# hoặc VB.NET . . .
à, lớp mình ai có bài thu hoạch mẫu khóa trước thì up lên cho lớp nhé!
Mình cũng đang loay hoay hoài mà vẫn chưa tìm được cách tiếp cận với thuật toán 2 để nạp các Rule vào.
Có anh chỉ nào có bản demo của khóa trước post lên cho anh em cùng tham khảo đi.
ý tưởng thì có mà chưa thể tiếp cận được hihi
Do không có nhiều thời gian với lại mình đang làm tiểu luận môn CNTT nên
chỉ mới định hình sơ sơ về tiểu luận môn CSDL Nâng cao.
Nếu có kết quả mình sẽ up lên để thảo luận thêm.
<!–QuoteBegin-CH0901059+21 Jun 2010, 10:15 AM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901059 @ 21 Jun 2010, 10:15 AM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–> [QUOTE=CH0901018,21 Jun 2010, 08:44 AM]
Như vậy mấu chốt ở đây là ở lớp xử lý, mình đang tìm cách xây dựng cấu trúc dữ liệu phù hợp.
Bạn nào có cùng ý tưởng thực hiện thì có thể trao đổi thêm.
<!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Chào Trung,
Ý tưởng của bạn rất hay, mình cũng thích lắm. Mình chỉ muốn hỏi thêm xíu để có thêm Motivation (<!–emo&:D–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/biggrin.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘biggrin.gif’ /><!–endemo–>).
Chương trình của mình dự định là mô phỏng hệ ra quyết định xử lý các cuộc tấn công, thế thì dự định việc xây dựng lớp để mô phỏng tấn công chưa thấy có? hay là Trung tính như thế nào?
Khi học về datalog, mình thấy có một giới hạn mà chúng ta có thể gặp phải khi xây dựng hệ quyết định dựa trên cơ sở tri thức, đó là sự đa dạng của các EDB.
Trong datalog, mỗi vị từ ứng với một quan hệ. Do vậy, số lượng quan hệ cũng như các đội của chúng cần phải được xác định ngay từ lúc thiết kế cơ sở dữ liệu. Điều này gây khó khăn khi cần phải bổ sung tri thức mới.
Để giải quyết vấn đề này, mình đề xuất hai hướng:
Giới hạn phạm vi bài toán và xác định trưóc các vị từ.
Về phần thực hiện bằng ngôn ngữ lập trình nào, theo ý kiến riêng của mình, chúng ta có thể đi theo những bước sau:
Tham khảo những ý tưởng trong Prolog
Phân tích thiết kế chương trình
Tạo cơ sở dữ liệu
Sử dụng ngôn ngữ lập trình nào mà mình quen thuộc (có thể kết nối DBMS và tạo GUI) để thực hiện
Mình nghĩ ngôn ngữ nào không quan trọng, mà quan trọng là thể hiện được ý tưởng. Vì thế chúng ta có thể trao đổi với nhau thoải mái để cùng học tập tốt <!–emo&:)–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/smile.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘smile.gif’ /><!–endemo–>
PS: Mình thì dự định dùng Java (đơn giản là vì mình chỉ quen dùng Java) để thực hiện. Có bạn nào đã có kinh nghiệm dùng Java viết các ứng dụng về Logic hoặc có tài liệu thì chúng ta có thể trao đổi thêm <!–emo&:)–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/smile.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘smile.gif’ /><!–endemo–>
<!–QuoteBegin-CH0901052+21 Jun 2010, 09:19 AM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901052 @ 21 Jun 2010, 09:19 AM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–> Nếu NN prolog có thể kết nối được với các NN lập trình khác thì tốt quá.
Mình có sưu tầm được bài thu hoạch của một bạn khóa trước xin gửi lên các bạn tham khảo cùng. <!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Mình có một số ý kiến về bài thu hoạch này:
Có lẽ nên up bài thu hoạch này ở box “Công nghệ tri thức” hay “Nhà kho dữ liệu & Khai thác dữ liệu” thì đúng hơn. Vì đây là box “Cơ sở dữ liệu nâng cao”.
Bài thu hoạch là một sự tổng hợp các phương pháp và kĩ thuật Data mining. Không biết là với khoa 4 chúng ta, việc chỉ tổng hợp mà không có demo cụ thể thì có được đánh giá cao không nhỉ ??
Dù sao cũng thanks chị Thủy đã up bài lên cho mọi người tham khảo <!–emo&:)–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/smile.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘smile.gif’ /><!–endemo–>
<!–QuoteBegin-CH0901018+21 Jun 2010, 08:44 AM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901018 @ 21 Jun 2010, 08:44 AM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–> Bước kết nối Database của bạn Trung rất có lý:
Chúng ta có thể sử dụng mô hình ADO.NET để kết nối DBMS
với C# hoặc VB.NET . . .
à, lớp mình ai có bài thu hoạch mẫu khóa trước thì up lên cho lớp nhé! <!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Chào anh Hùng,
Mình định xây dựng một chương trình mô phỏng hệ ra quyết định xử lý các cuộc tấn công mạng máy tính (kiểu như một phần mềm Internet Security) nhưng ở một mức đơn giản trong phạm vi bài tiểu luận.
Mình dự định sử dụng kiến trúc 3 lớp để viết chương trình như sau:
Lớp GUI :
a - cho phép nhập các luật cũng như các kiểu truy cập mạng
b - xuất ra quyết định xử lý: nếu là truy cập đúng thì thôi, không thì tùy theo là virus, worm hay loại khác thì sẽ có hình thức thông báo xử lý phù hợp
Lớp xử lý :
a - Xây dựng các hàm suy diễn để tạo đồ thị suy diễn
b - Hiện thực thuật toán 2 trong Datalog để sinh ra đại số quan hệ
c - Tìm ra quyết định
Lớp DAO :
a- Parse các biểu thức đại số quan hệ thành các câu lệnh SQL để truy vấn xuống DBMS, lấy ra những luật quyết định xử lý
Như vậy mấu chốt ở đây là ở lớp xử lý, mình đang tìm cách xây dựng cấu trúc dữ liệu phù hợp.
Bạn nào có cùng ý tưởng thực hiện thì có thể trao đổi thêm.
<!–QuoteBegin-CH0901053+21 Jun 2010, 08:33 PM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901053 @ 21 Jun 2010, 08:33 PM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–> Anh chi nao co tai lieu ve Prolog thi cho e xin voi nha vi ngon ngu nay e chua duoc hoc o dai hoc. Thanks a c nhieu! <!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Chào bạn,
Hi vọng lần sau bạn xem kĩ các bài trước khi hỏi nhé. Vì đã có bài của anh Hùng post các tài liệu về Prolog rồi.
<!–QuoteBegin-CH0901038+22 Jun 2010, 12:35 AM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901038 @ 22 Jun 2010, 12:35 AM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–>
Chào Trung,
Ý tưởng của bạn rất hay, mình cũng thích lắm. Mình chỉ muốn hỏi thêm xíu để có thêm Motivation (<!–emo&:D–><img src=‘http://www.uit.edu.vn/forum/html/emoticons/biggrin.gif’ border=‘0’ style=‘vertical-align:middle’ alt=‘biggrin.gif’ /><!–endemo–>).
Chương trình của mình dự định là mô phỏng hệ ra quyết định xử lý các cuộc tấn công, thế thì dự định việc xây dựng lớp để mô phỏng tấn công chưa thấy có? hay là Trung tính như thế nào? <!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Chào anh Phi,
Thực ra đây là một ý tưởng có thể nói là khá tham vọng của mình. Nói là tham vọng vì một số lý do sau đây:
Mình trước giờ chỉ chuyên lập trình phần mềm quản lý thôi, không có nhiều kiến thức về mạng cũng như bảo mật.
Ý tưởng bắt đầu hình thành từ lúc thầy Kiếm giới thiệu luận án Tiến Sĩ của anh Trương Minh Nhật Quang và dần dần rõ sau khi học buổi đầu môn CSDL Nâng cao.
Mình dự định sẽ đi sâu hơn về đề tài này để hướng đến luận văn sau này.
Chính vì thế, như mình đã nói ở trên, với phạm vi của một bài tiểu luận và thời gian cũng ngắn, mình sẽ giới hạn nhiều thứ, chủ yếu tập trung giải quyết 3 vấn đề chính:
Xây dựng đồ thị suy diễn
Hiện thực thuật toán 2 trong Datalog
Tìm quyết định phù hợp
Đó chỉ là mô phỏng ở mức đơn giản (vì qua những buổi sau của môn CSDL nâng cao cũng như các môn sau, sẽ còn rất nhiều kiến thức hay có thể dùng để cải tiến chương trình)
Về phần mô phỏng tấn công, mình cũng chỉ định làm đơn giản là nhập tay sẵn hoặc có thể tham khảo open source.
Mình nghĩ mục tiêu của bài tiểu luận chỉ cần đến mức đó là vừa.
PS: hình như chúng ta chỉ còn khoảng 1 tháng rưỡi nữa là thi và nộp tiểu luận thì phải.
<!–QuoteBegin-CH0901050+22 Jun 2010, 06:23 AM–></div><table border=‘0’ align=‘center’ width=‘95%’ cellpadding=‘3’ cellspacing=‘1’><tr><td><b>QUOTE</b> (CH0901050 @ 22 Jun 2010, 06:23 AM)</td></tr><tr><td id=‘QUOTE’><!–QuoteEBegin–> Chào các bạn,
Khi học về datalog, mình thấy có một giới hạn mà chúng ta có thể gặp phải khi xây dựng hệ quyết định dựa trên cơ sở tri thức, đó là sự đa dạng của các EDB.
Trong datalog, mỗi vị từ ứng với một quan hệ. Do vậy, số lượng quan hệ cũng như các đội của chúng cần phải được xác định ngay từ lúc thiết kế cơ sở dữ liệu. Điều này gây khó khăn khi cần phải bổ sung tri thức mới.
Để giải quyết vấn đề này, mình đề xuất hai hướng:
Giới hạn phạm vi bài toán và xác định trưóc các vị từ.
Xây dựng EDB động. <!–QuoteEnd–> </td></tr></table><div class=‘postcolor’> <!–QuoteEEnd–>
Mình đồng ý với ý tưởng của Thanh.
Chúng ta nên đi theo từng bước:
Với mức độ bài tiểu luận, có lẽ nên giới hạn phạm vi bài toán và xác định trước một số lượng vị từ. Mục đích chính là để hiện thực và chạy đúng thuật toán.
Sau này, khi có thêm thời gian, chúng ta sẽ nghiên cứu, tìm ra phương pháp tối ưu hơn để sinh EDB tự động. Mình nghĩ đây không phải là một vấn đề đơn giản, và cần phải có thêm thời gian nghiên cứu và tìm hiểu.