Hệ chuyên gia Tư vấn chọn trang phục mặc Nhóm thực hiện 12 TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO HỆ THỐNG THÔNG TIN ĐỊA LÝ ĐỀ TÀI Xây dựng bản đồ tàu điện ngầm tại các thành phố.
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO HỆ THỐNG THÔNG TIN ĐỊA LÝ ĐỀ TÀI: Xây dựng đồ tàu điện ngầm thành phố lớn giới Sinh viên thực : ĐÀO NGUYÊN TRUNG 19810310448 : LÝ QUANG SANG 19810310001 Giảng viên hướng dẫn : NGÔ QUỐC TẠO Ngành : CÔNG NGHỆ THƠNG TIN Lớp : D14CNPM1 Khóa : 2019-2024 Hà Nội, tháng năm 2022 PHIẾU CHẤM ĐIỂM STT Họ tên sinh viên Nội dung thực Đào Nguyên Trung Phân tích, code + làm báo cáo word Lý Quang Sang Phân tích, code + làm báo cáo word Điểm Chữ ký MỤC LỤC MỤC LỤC .2 II.Nhược điểm ưu điếm hệ thống thông tin địa lý CHƯƠNG 2: PHÂN TÍCH BÀI TỐN 11 I.Giới thiệu đề tài 11 II.Yêu cầu đặt 11 CHƯƠNG 3: THUẬT TOÁN SỬ DỤNG .13 CHƯƠNG 4: BIỂU DIỄN CƠ SỞ TRI THỨC .14 I.Phương pháp biểu diễn tri thức 14 II.Tri thức có tốn tư vấn thời trang 14 1.Tập kiện 14 2.Tập luật chương trình: 15 CHƯƠNG 5: GIAO DIỆN PHẦN MỀM 22 I.Giao diện 23 II.Giao diện quản lý 26 III Giao diện kết 29 IV.Code số form phần mềm 31 1.Code form 31 1.Code form quản lý .35 Code form kết 37 LỜI NÓI ĐẦU Thế giới ngày phát triển mạnh mẽ với hoạt động vơ đa dạng phức tạp địi hỏi khả giải vấn đề mức độ trí tuệ nhân tạo ngày cao Hệ thống thông tin địa lý GIS hỗ trợ quốc gia, nhà khoa học việc phân tích vật, tượng thực xảy bề mặt Trái Đất thông qua nguồn liệu không gian mặt địa lý Từ hoạch định chiến lược kế hoạch cải tạo địa chất, môi trường tài ngun cách hiệu quả.Ví dụ: GIS sử dụng để giải câu hỏi dựa vị trí “Cái nằm đây” Tìm đối tượng địa lý cụ thể đâu? Người dùng GIS lấy giá trị từ đồ, chẳng hạn diện tích đất rừng đồ Điều thực cách sử dụng cơng cụ trình tạo truy vấn Các tính quan trọng GIS khả kết hợp lớp khác để hiển thị thông tin Nhóm cố gắng hồn thành, nhiên q trình xây dựng phần mềm cịn có nhiều thiếu sót, mong thầy tiếp tục góp ý cho chúng em hoàn thiện Chúng em xin chân thành cảm ơn CHƯƠNG1: GIỚITHIỆUVỀ HỆ THỐNG THÔNG TIN ĐỊA LÝ I Khái niệm thống thông tin địa lý ứng dụng đời sông Khái niệm: Geographic Information System hay Hệ thống thông tin địa lý (viết tắt GIS) hệ thống có chức thu thập, lưu trữ, thao tác phân tích liệu khơng gian để phục vụ cho mục đích khác nhau.Hệ thống thông tin địa lý GIS hỗ trợ quốc gia, nhà khoa học việc phân tích vật, tượng thực xảy bề mặt Trái Đất thông qua nguồn liệu không gian mặt địa lý Từ hoạch định chiến lược kế hoạch cải tạo địa chất, mơi trường tài ngun cách hiệu Ví dụ: GIS sử dụng để giải câu hỏi dựa vị trí “Cái nằm đây” Tìm đối tượng địa lý cụ thể đâu? Người dùng GIS lấy giá trị từ đồ, chẳng hạn diện tích đất rừng đồ Điều thực cách sử dụng cơng cụ trình tạo truy vấn Các tính quan trọng GIS khả kết hợp lớp khác để hiển thị thông tin Hệ thống thông tin địa lý GIS cần đảm bảo phải thực chức sau • Thu thập liệu: Hệ thống thu thập liệu từ nhiều nguồn, đồ giấy, ảnh chụp, biểu đồ, đồ số hay dạng liệu khác… • Lưu trữ: Dữ liệu hệ thống thu thập lưu dạng mơ hình Vector dạng mơ hình Raster • Truy vấn: Người sử dụng truy vấn thông tin đồ hoạ hiển thị đồ • Phân tích: Người dùng xác định tình xảy đồ có thay đổi nhờ vào nguồn liệu Đây chức hỗ trợ việc đưa kế hoạch định hướng việc sử dụng tài nguyên người sử dụng • Hiển thị: Hệ thống có chức hiển thị dạng đồ, biểu đồ khác • Xuất liệu: Hệ thống phải hỗ trợ việc kết xuất liệu đồ định dạng như: giấy in, Web, ảnh, file… II Nhược điểm ưu điếm hệ thống thông tin địa lý Ưu điểm GIS : Là cách tiết kiệm chi phí thời gian việc lưu trữ số liệu, * Có thể thu thập số liệu với số lượng lớn, * Số liệu lưu trữ cập nhật hố cách dễ dàng, * Chất lượng số liệu quản lý, xử lý hiệu chỉnh tốt, * Dễ dàng truy cập, phân tích số liệu từ nhiều nguổn nhiều loại khác nhau, * Tổng hợp lần nhiều loại số liệu khác để phân tích tạo nhanh chóng lớp số liệu tổng hợp Những nhược điểm điểm hệ thống thông tin địa lý : Chi phí vấn đề kỹ thuật đòi hỏi việc chuẩn bị lại số liệu thơ có, nhằm chuyển từ đổ dạng giấy truyền thống sang dạng kỹ thuật số máy tính (thơng qua việc số hố, qt ảnh ) * Đòi hỏi nhiều kiến thức kỹ thuật máy tính, yêu cầu lớn nguồn tài ban đầu * Chi phí việc mua sắm lắp đặt thiết bị phần mềm GIS cao * Trong số lĩnh vực ứng dụng, hiệu tài chánh thu lại thấp • Các thành phần hệ thống thơng tin địa lý gì? Các thành phần GIS: Hệ thống thông tin địa lý (GIS) hệ thống máy tính xây dựng để thu thập, lưu trữ, thao tác, phân tích, quản lý hiển thị tất loại liệu không gian địa lý… Hệ thống GIS bao gồm thành phần sau đây: • • Phần cứng Phần cứng máy tính chạy phần mềm GIS Hiện có nhiều loại máy tính khác nhau, máy tính để bàn máy chủ ArcGIS Server máy tính dựa máy chủ, nơi phần mềm GIS chạy máy tính kết nối mạng máy tính dựa đám mây • Để máy tính chạy tốt tất thành phần phần cứng phải có dung lượng cao Một số thành phần phần cứng là: Bo mạch chủ, ổ cứng, xử lý, card đồ họa, máy in, v.v Tất thành phần hoạt động để chạy phần mềm GIS cách trơn tru Các thành phần phần cứng chính: • Bo mạch chủ: Bo mạch chủ nơi thành phần phần cứng lắp đặt nơi kết nối tất thành phần • • Đĩa cứng: Hay gọi ổ cứng, nơi chứa liệu Bộ xử lý: Bộ xử lý thành phần máy tính, thực phép tính Nó gọi đơn vị xử lý trung tâm (CPU) • RAM: Bộ nhớ truy cập ngẫu nhiên (RAM), tất chương trình chạy tải tạm thời • • Máy in: Là thiết bị đầu dùng để in hình ảnh, đồ tài liệu Có nhiều loại máy in thị trường Đĩa ngồi: Đây khơng gian lưu trữ di động, chẳng hạn ổ USB, DVD, CD đĩa • Màn hình: Là hình hiển thị thơng tin đầu Có nhiều loại hình: CRT (Cathode Ray Tube), LCD (Liquid Crystal Display), LED (Light Emitting Diode), v.v • • Phần mềm Thành phần phần mềm GIS, cung cấp công cụ để chạy chỉnh sửa thơng tin khơng gian Nó giúp truy vấn, chỉnh sửa, chạy hiển thị liệu GIS Nó sử dụng RDBMS (Hệ thống quản lý sở liệu quan hệ) để lưu trữ liệu Danh sách vài phần mềm GIS: ArcGis, ArcView 3.2, QGIS, SAGA GIS Thành phần phần mềm: • • Cơng cụ GIS: Các cơng cụ hỗ trợ duyệt liệu GIS RDBMS (Relational Database Management System): Hệ quản trị sở liệu quan hệ, sử dụng để lưu trữ liệu GIS Phần mềm GIS lấy từ RDBMS chèn liệu vào RDBMS • Cơng cụ truy vấn: Một công cụ sử dụng với hệ quản trị sở liệu để truy vấn, chèn, xóa SQL khác (ngơn ngữ truy vấn chuẩn) • GUI (Graphical User Interface): Giao diện người dùng đồ họa để giúp người dùng tương tác tốt với phần mềm • • Bố cục: Thiết kế cửa sổ bố cục tốt cho đồ • Dữ liệu Thành phần quan trọng đắt tiền hệ thống thông tin địa lý liệu, thường coi nguồn cung cấp lượng cho GIS Dữ liệu GIS kết hợp liệu đồ họa liệu dạng bảng Đồ họa vector raster Cả hai loại liệu tạo nội phần mềm GIS mua • Q trình tạo liệu GIS từ liệu tương tự định dạng giấy gọi số hóa Q trình số hóa liên quan đến việc đăng ký hình ảnh raster với số lượng nhỏ GCP (điểm kiểm soát mặt đất) tọa độ biết Quá trình gọi rộng rãi cao su khúc xạ địa lý Đa giác, đường thẳng điểm tạo cách số hóa hình ảnh raster • Bản thân hình ảnh raster đăng ký với tọa độ, gọi rộng rãi hình ảnh hiệu chỉnh Hầu hết hình ảnh đăng ký xuất định dạng TIFF Như đề cập trên, liệu GIS raster vector Loại liệu GIS: • Raster: Hình ảnh Raster lưu trữ thông tin sở đơn vị Nó ảnh hàng khơng, ảnh vệ tinh, mơ hình độ cao kỹ thuật số (DEM) Hình ảnh Raster thường lưu trữ liệu liên tục • Vectơ: Dữ liệu vectơ rời rạc Nó lưu trữ thơng tin định dạng tọa độ x y Dữ liệu vectơ chia thành ba loại: Đường, điểm diện tích • • Hệ thống thơng tin địa lý GIS cấu tạo từ thành phần bản: Phần cứng, phần mềm, người, phương pháp liệu • Con người Con người người sử dụng hệ thống thông tin địa lý Họ chạy phần mềm GIS Cả phần cứng phần mềm phát triển, điều giúp người dễ dàng chạy phần mềm GIS Máy tính có giá phải chăng, người dùng sử dụng tác vụ GIS Những cơng việc tạo đồ đơn giản thực phân tích GIS nâng cao Con người thành phần • 10 Với giao diện không khác nhiều so với giao diện trang chủ nên người dùng dễ dàng thao tác nhanh chóng đưa phương án trả lời Để có lời tư vấn từ hệ thống thông tin địa lý người dùng cần qua hết tất câu hỏi phần mềm Chính người dùng phải nhấn nút “Tiếp tục” nhấn nút có cửa sổ Cửa sổ minh họa hình ảnh sau: 24 Giao diện có chứa câu hỏi “Bạn chọn đồ đâu?” phần mềm đưa gợi ý cho người dùng “Đi chơi”, “Di dự hội nghị” hay “Đi làm” Nếu người dùng muốn chọn “Đi chơi” khơng cần kích vào phương án phần mềm thiết kế mặc định phương án phương án trả lời Nhưng người dùng muốn chọn phương án “Đi dự hội nghị” hay “Đi làm” phải kích chọn vào phương án Khi lựa chọn phương án trả lời người dùng lại nhấn nút “Tiếp tục” để chuyển sang câu hỏi Giao diện minh họa hình ảnh sau: 25 Giới tính yếu tố quan trọng việc tư vấn chọn trang phục nên hệ thống thông tin địa lý cần biết giới tính người dùng Người dùng có lựa chọn hình ảnh minh họa Người dùng phải kích chọn hai II.Giao diện quản lý Trong tất giao diện thấy chúng có chung nút “Quản lý” Khi bạn kích vào nút giao diện sau ra: 26 Trong cửa sổ có tab “Quản lý kiện” “Quản lý luật” Trong tab “Quản lý kiện” có khung: khung thứ câu hỏi mà người dùng phải trả lời, khung thứ đáp án cho câu hỏi khung thứ kết luận tư vấn sau thu thập thông tin từ phía người dùng Chúng ta phải quan tâm tới tab “Quản lý luật” Tab có nội dung hình vẽ sau: 27 Tab “Quản lý luật” chứa luật kết hợp kiện để đưa kết luận tư vấn cho người dùng Trong tab có nhìn thấy nút “Thốt” nút có chức quay trở lại giao diện trang chủ phần câu hỏi mà người dùng dừng lại Tại giao diện ta nhấn nút “Tiếp tục” cho giao diện sau: 28 III Giao diện kết Giao diện kết tư vấn mà hệ thống thông tin địa lý muốn gửi tới người dùng sau thu thập thơng tin từ phía họ Trong giao diện có chứa kết tư vấn giải thích lại đưa kết Giao diện có nút “Thốt” có chức khỏi hệ thống 29 Trong trình chạy tư vấn, nút quay lại bị ẩn tới cuối lần tư vấn sau nhấn thoát khỏi form kết tư vấn, giao diện nút quay lại kích hoạt người dùng nhấn vào nút giúp quay trở lại câu hỏi ban đầu để tư vấn lại 30 IV Code số form phần mềm Code form public partial class formchinh : Form { List lstQuest = new List(); List lstAns = new List(); List lstCon = new List(); static List lstResult = new List(); public formchinh() { InitializeComponent(); } public void process() { FactList.Init(); List FactNode = FactList.SingleFactList.ListFact(); for (int i = 0; i < FactNode.Count; i++) { switch (FactNode[i].Type) { case 0: lstQuest.Add(FactNode[i]); break; case 1: lstAns.Add(FactNode[i]); break; case 2: lstCon.Add(FactNode[i]); break; } } } int iCount; private void formchinh_Load(object sender, EventArgs e) { button2.Enabled = false; process(); txtQuestion.Text = lstQuest[iCount].Name; showAnswer(); } public void btnNext_Click(object sender, EventArgs e) { lstResult.Add(loadSelected(getAnswerSelected())); iCount++; 31 if (iCount < lstQuest.Count) { txtQuestion.Text = lstQuest[iCount].Name; showAnswer(); } else { button2.Enabled=true; iCount ; if (iCount >= 0) { txtQuestion.Text = lstQuest[iCount].Name; lstResult.Add(loadSelected(getAnswerSelected())); show(); } RuleList listrule = new RuleList(); Rule rule = listrule.ListAnswer(lstResult); if (rule != null) { frmketqua frm = new frmketqua(); frm.rule = rule; frm.ShowDialog(); } else MessageBox.Show("không khớp với luật !"); } } public void button2_Click(object sender, EventArgs e) { iCount ; if (iCount >= 0) { txtQuestion.Text = lstQuest[iCount].Name; lstResult.Add(loadSelected(getAnswerSelected())); show(); } else { button2.Enabled = false; lstResult.Add(loadSelected(getAnswerSelected())); iCount++; if (iCount < lstQuest.Count) { txtQuestion.Text = lstQuest[iCount].Name; showAnswer(); } MessageBox.Show("đã trở câu hỏi đầu tiên"); } } 32 private void showAnswer() { List lstQA = loadAnswer(lstQuest[iCount].Code); switch (lstQA.Count) { case 2: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Visible = false; rad4.Visible = false; rad5.Visible = false; break; case 3: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Text = lstQA[2].Name; rad4.Visible = false; rad5.Visible = false; break; case 4: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Text = lstQA[2].Name; rad4.Text = lstQA[3].Name; rad5.Visible = false; break; case 5: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Text = lstQA[2].Name; rad4.Text = lstQA[3].Name; rad5.Text = lstQA[4].Name; break; } rad1.Checked = true; } private void show() { List lstQA = loadAnswer(lstQuest[iCount].Code); switch (lstQA.Count) { case 2: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Visible = false; rad4.Visible = false; rad5.Visible = false; break; case 3: 33 rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Visible = true; rad3.Text = lstQA[2].Name; rad4.Visible = false; rad5.Visible = false; break; case 4: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Text = lstQA[2].Name; rad4.Visible = true; rad4.Text = lstQA[3].Name; rad5.Visible = false; break; case 5: rad1.Text = lstQA[0].Name; rad2.Text = lstQA[1].Name; rad3.Text = lstQA[2].Name; rad4.Text = lstQA[3].Name; rad5.Visible = true; rad5.Text = lstQA[4].Name; break; } rad1.Checked = true; } private List loadAnswer(string code) { List lstAnswers = new List(); for (int i = 0; i < lstAns.Count; i++) { if ((lstAns[i].Code.StartsWith(code)) && (lstAns[i].Code.Length == code.Length + 1)) lstAnswers.Add(lstAns[i]); } return lstAnswers; } private Fact loadSelected(string strName) { Fact fact = new Fact(); for (int i = 0; i < lstAns.Count; i++) { if (lstAns[i].Name.Equals(strName)) { fact = lstAns[i]; } } return fact; } 34 private string getAnswerSelected() { if (rad1.Checked) return rad1.Text; if (rad2.Checked) return rad2.Text; if (rad3.Checked) return rad3.Text; return rad4.Checked ? rad4.Text : rad5.Text; } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } private void button1_Click(object sender, EventArgs e) { dlgManage manager = new dlgManage(); manager.ShowDialog(); } List lstQuestion = new List(); FactList factList = new FactList(); private void btnExit_Click_1(object sender, EventArgs e) { this.Dispose(); } } Code form quản lý public partial class dlgManage : Form { List lstQuestion = new List(); List lstAnswer = new List(); List lstConclusion = new List(); List lstRule = new List(); public dlgManage() { InitializeComponent(); } private void dlgManage_Load(object sender, EventArgs e) { filterList(); foreach (Fact question in lstQuestion) 35 { lbcauhoi.Items.Add(question.Name); } foreach (Fact conclusion in lstConclusion) { lbketluan.Items.Add(conclusion.Name); } lbcauhoi.SelectedIndex = 0; refreshAnswer(); foreach (Rule rule in lstRule) { lbluat.Items.Add(rule.code + ": " + rule.condition1 + " & " + rule.condition2 + " & " + rule.condition3 + " & " + rule.condition4); } } public void filterList() { FactList.Init(); RuleList.Init(); List fact = FactList.SingleFactList.ListFact(); for (int i = 0; i < fact.Count; i++) { switch (fact[i].Type) { case 0: lstQuestion.Add(fact[i]); break; case 1: lstAnswer.Add(fact[i]); break; case 2: lstConclusion.Add(fact[i]); break; } } lstRule = RuleList.SingleRuleList.ListRule(); } private void lbQuestion_MouseUp(object sender, MouseEventArgs e) { refreshAnswer(); } private void refreshAnswer() { lbtraloi.Items.Clear(); 36 string strQuestionSelected = Convert.ToString(lbcauhoi.Items[lbcauhoi.SelectedIndex]); string strCodeofAnswer = ""; foreach (Fact fq in lstQuestion) { if (!fq.Name.Equals(strQuestionSelected)) continue; strCodeofAnswer = fq.Code; break; } if (strCodeofAnswer.Trim().Length == 0) return; foreach (Fact fa in lstAnswer) { if (fa.Code.StartsWith(strCodeofAnswer) && fa.Code.Length == strCodeofAnswer.Length + 1) { lbtraloi.Items.Add(fa.Name); } } } private void button1_Click(object sender, EventArgs e) { this.Close(); } } Code form kết public partial class frmketqua : Form { public Rule rule; public frmketqua() { InitializeComponent(); } private void frmResult_Load(object sender, System.EventArgs e) { formchinh frm = new formchinh(); frm.Close(); FactList factList = new FactList(); string strExplain; strExplain = "Có: " + "\r\n" + rule.condition1 + ": " + factList.findFact(rule.condition1).Name + "\r\n" + rule.condition2 + ": " + factList.findFact(rule.condition2).Name 37 + "\r\n" + rule.condition3 + ": " + factList.findFact(rule.condition3).Name + "\r\n" + rule.condition4 + ": " + factList.findFact(rule.condition4).Name +"\r\n" + rule.code + ": " + rule.condition1 + " & " + rule.condition2 + " & " +rule.condition3 + " & " + rule.condition4 +"\r\n"+"mà mã " +rule.code+ " có kết luận là: "+rule.conclusion + "\r\n" + "=>> " + factList.findFact(rule.conclusion).Name + "(" + rule.conclusion + ")"; txtgiaithich.Text = strExplain; } private void button1_Click(object sender, System.EventArgs e) { this.Close(); } } 38 ... hệ) để lưu trữ liệu Danh sách vài phần mềm GIS: ArcGis, ArcView 3.2, QGIS, SAGA GIS Thành phần phần mềm: • • Cơng cụ GIS: Các cơng cụ hỗ trợ duyệt liệu GIS RDBMS (Relational Database Management... nghệ mà muốn đề cập đến cơng cụ mang tính ứng dụng cao phát triển mạnh, ARCGIS Phạm vi đề tài Đề tài “Xây dựng hệ thống GIS đồ tàu điện ngầm ” giới hạn phạm vi tìm hiểu phần mềm ArcGis để cài đặt... chức cần ghi lại kế hoạch quy trình vận hành GIS • Các tài liệu giải câu hỏi phương pháp GIS: Số lượng chuyên gia GIS cần thiết, phần mềm phần cứng GIS, quy trình lưu trữ liệu, loại DBMS (hệ quản