Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

University of Information Technology VNU-HCM


KHOA CÔNG NGHỆ PHẦN MỀM

KHÓA LUẬN TỐT NGHIỆP


CHUYÊN NGÀNH: KỸ THUẬT PHẦN MỀM

Sinh viên thực hiện: LÊ VÕ GIA KHANG 15520341


LỤC TRƯỜNG PHONG 15520617

TPHCM, ngày 12 tháng 3 năm 2020


ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
University of Information Technology VNU-HCM
KHOA CÔNG NGHỆ PHẦN MỀM

XÂY DỰNG ỨNG DỤNG HỖ TRỢ VẼ HÌNH HỌC


CHO HỌC SINH TRUNG HỌC CƠ SỞ

Giảng viên hướng dẫn: NGUYỄN THANH BÌNH


NGUYỄN ĐÌNH HIỂN

TPHCM, ngày 12 tháng 3 năm 2020


Nội dung chính:
I. Giới thiệu đề tài.

II. Mô hình toán tử quan hệ Rela-Ops model.

III. Mạng quan hệ giữa các đối tượng hình học.

IV. Thiết kế thuật giải vẽ hình tự động trong hình học phẳng.

V. Xây dựng ứng dụng.

VI. Tổng kết.

Tài liệu tham khảo.


2
I. Giới thiệu đề tài
Trong quá trình xây dựng hệ thống IPS
(intelligent problem-solving) nhằm giải
quyết các bài toán thông minh, xử lý các
bài toán về hình học phẳng là một trong
những yếu tố quan trọng, nhằm giúp đa
dạng hóa sự tưởng tượng cũng như
cung cấp những thông tin dưới dạng
hình ảnh cho một bài toán cụ thể.

Từ ý tưởng lớn đó, nhóm đã nảy ra ý


tưởng xây dựng một ứng dụng có khả
năng vẽ hình học tự động.

3
I. Giới thiệu đề tài
Cùng tìm hiểu một số ứng dụng hỗ trợ vẽ hình đã có sẵn trước đây.

Sketchpad GeoGebrA Maple Paint

Nhìn chung các ứng dụng sẵn có hiện nay đều có điểm chung là việc hỗ trợ vẽ hình rất tốt, giao diện dễ dùng.
Tuy nhiên khuyết điểm lớn nhất là chúng còn phải yêu cầu người dùng vẽ thủ công, tức là người dùng vẫn phải
định hình rõ hình vẽ như thế nào trước khi sử dụng các chương trình.

=> Vẽ hình tự động sẽ giải quyết các bài toán vẽ hình thủ công bằng cách chỉ yêu cầu người dùng nhập vào đề
bài, ứng dụng sẽ tự động tính toán và cho ra hình vẽ thỏa mãn yêu cầu đề bài mà không cần yêu cầu khác từ
người dùng.
4
Mục tiêu đề tài:
• Xây dựng mô hình biểu diễn kiến thức hình học phẳng cấp THCS.
• Nghiên cứu các vấn đề cho việc vẽ hình phẳng tự động.
• Thiết kế các thuật giải để giải quyết các vấn đề vẽ hình tự động.
• Xây dựng chương trình thử nghiệm cho việc vẽ hình tự động các bài toán hình học cấp THCS.

5
II. Mô hình toán tử quan hệ Rela-Ops
Một mô hình tri thức quan hệ và toán tử (Rela-Ops model) bao gồm 4 thành phần:

( , , ps, ules )
 là một tập hợp các khái niệm, với mỗi khái niệm gọi là c là một lớp các đối tượng và mỗi đối tượng có một
tập thể hiện được gọi là Ic. Mỗi khái niệm c là một ống (Attrs, Facts, EqObj, RulObj), với Attrs là tập các
thuộc tính (attributes), Facts là tập các sự kiện nội tại của một khái niệm c, EqObj là các quan hệ dưới dạng
đẳng thức giữa các thuộc tính của khái niệm c và cuối cùng RulObj là tập các quy tắc suy diễn nội tại của
khái niệm c đó.

 là một tập các quan hệ giữa các khái niệm trong .  bao gồm các quan hệ cấp bậc và các quan hệ nhị
phân giữa các khái niệm trong .

ps là tập các toán tử giữa các khái niệm có trong . Nó bao gồm cả toán tử một ngôi và toán tử hai ngôi.

ules là tập các quy tắc suy luận của miền tri thức. Trong phạm vi của nghiên cứu này, ules-set được phân
thành bốn loại quy tắc: quy tắc suy diễn, quy tắc để khởi tạo ra một đối tượng mới, quy tắc tương đương và
quy tắc phương trình. 6
II. Mô hình toán tử quan hệ Rela-Ops
C – tập các khái niệm: Tập C bao gồm các khái Khái niệm HinhBinhHanh  C(2) gồm có:
niệm như:
Attrs = { A, B, C, D, O, a, b, c, d, m, n, S, p, ...}
C = C(0) giao C(1) A, B, C, D, O: Diem
a, b, c, d, m, n: DoanThang
C(0) = {R, Diem, DuongThang} // R: tập các
S, p: 
số thực.
Facts = { a//c, b//d, a = c, b = d, O = m giao n,
C(1) = {DoanThang, Tia}
O trung điểm AC, O trung điểm BD }

Khái niệm DoanThang  C(1) có cấu trúc: RulesObj = { r1:{m ⊥ n} → {HinhThoi},


Attrs = {_A, _B, len}, trong đó: r2:{m = n} → {HinhChuNhat},
_A, _B: Diem r3:{a = b} → {HinhThoi},
len: ; r4:{ABC = 90o}→ {HinhChuNhat},
Facts = {len > 0} r5:{m ⊥ n} → {S = ½*m*n}}
RulObj = { }

C(2) = {Goc, TamGiac và các dạng đặc biệt,


TuGiac và các dạng đặc biệt, DuongTron, …}
7
II. Mô hình toán tử quan hệ Rela-Ops
R – tập các mối quan hệ: Bên cạnh đó, một số quan hệ phân cấp giữa các khái
Có rất nhiều loại mối quan hệ giữa các khái niệm niệm trong C cũng được xây dựng:
trong C • Mối quan hệ phân cấp trong lớp TamGiac.
• Mối quan hệ phân cấp trong lớp TuGiac.
Mối quan hệ c  C: mối quan hệ kép giữa các đối
tượng cùng loại như: Rules – tập các quy tắc: Một số quy tắc cụ thể có thể
• Mối quan hệ giữa các tam giác bằng nhau. được biểu diễn bởi quy tắc suy diễn:
• Mối quan hệ giữa các tam giác đồng dạng.
a: DoanThang, b: DoanThang, c: DoanThang,
Mối quan hệ ci  cj (ci, cj  C): mối quan hệ kép giữa Nếu: a // b, b  c
các đối tượng khác loại: Thì: a  c
• Mối quan hệ TrungDiem: giữa đoạn thẳng và
điểm. O: Diem, AB: DoanThang, CD: DoanThang,
• Mối quan hệ VuongGoc (): giữa 2 đường thẳng, Nếu: O = AB Giao CD
2 đoạn thẳng, giữa 1 đường thẳng và một đoạn Thì: AOC = BOD và AOD = BOC
thẳng,…
• Mối quan hệ SongSong (//): giữa 2 đường thẳng, DEF: TamGiac, P: Diem, Q: Diem,
2 đoạn thẳng, giữa 1 đường thẳng và một đoạn Nếu: P TrungDiem DE, Q TrungDiem DF
thẳng,… Thì: PQ // EF, PQ = ½ EF
• Mối quan hệ Giao: giữa 2 đường thẳng, 2 đoạn 8
thẳng, giữa 1 đường thẳng và một đoạn thẳng,…
II. Mô hình toán tử quan hệ Rela-Ops
Ngôn ngữ đặc tả:
Cho tam giác ABC. Điểm D là trung điểm của BC. Điểm F thuộc AB sao cho AF = ½ AB. Đường vuông góc
với AC đi qua F và đường vuông góc với BC đi qua D cắt nhau tại N.
Một số cú pháp của ngôn ngữ đặc tả:

Cú pháp Ví dụ Ý nghĩa
AB = 5 Xác định giá trị của đối tượng
[OBJECT] = [VALUE]
Góc(ABC) = 45 (độ)
AB = AC
[OBJECT] = [OBJECT]
Góc(ABC) = Góc(ABD)
AB song song CD
[OBJECT] [RELATION] [OBJECT] AB vuông góc BC
Mô tả mối quan hệ giữa các đối tượng.
AH phân giác BAC
Tam giác ABC
[SHAPE TYPE] [SHAPE NAME] Tứ giác ABCD
Hình thoi MNPO
9
III. Mạng quan hệ giữa các đối tượng hình học
Mạng biểu diễn quan hệ giữa các đối tượng gồm hai thành phần:
(Vertex, Arc)
Vertex: Tập hợp các đỉnh biểu diễn các đối tượng, được Arc: Tập hợp các cung có hướng nối giữa các đỉnh, mỗi cung
chia thành 2 loại: biểu diễn quan hệ sinh ra giữa các đối tượng. Có 2 loại là:
Đối tượng nguyên thủy: là đối tượng được xác định Cung liền: Biểu diễn mối quan hệ giữa các đối tượng
một cách riêng biệt, không cần phải thông qua các nguyên thủy.
đối tượng khác. Cung nét đứt: Biểu diễn mỗi quan hệ giữa đối tượng
Đối tượng dẫn xuất: là các đối tượng được xác nguyên thủy và đối tượng dẫn xuất hay mối quan hệ giữa 2
định khi các đối tượng thành phần của nó xác định. đối tượng dẫn xuất.

Ví dụ về mối quan hệ giữa các điểm trong một tam giác ABC:

10
III. Mạng quan hệ giữa các đối tượng hình học
Trong mô hình trên, các loại sự kiện được định nghĩa như sau:
Sự kiện loại 1: cho biết thông tin về loại của đối tượng.
Ví dụ: hình tam giác, hình vuông, hình thoi, đường thẳng, đường tròn,…

Sự kiện loại 2: cho biết sự xác định của một đối tượng hoặc thuộc tính của một đối tượng.
Ví dụ: tam giác ABC, đoạn thẳng AB, đường tròn tâm C bán kính R,…

Sự kiện loại 3: sự xác định của một đối tượng hay thuộc tính của nó bởi một giá trị hằng số.
Ví dụ: đoạn thẳng AB = 5cm, tam giác ABC vuông tại A,…

Sự kiện loại 4: sự bằng nhau giữa các đối tượng hay giữa các thuộc tính của các đối tượng.
Ví dụ: đoạn thẳng AB = CD, góc ABC = góc MON,…

Sự kiện loại 5: về một quan hệ trên các đối tượng hay trên các thuộc tính của các đối tượng.
Ví dụ: A là giao điểm của đoạn OM và đoạn CD, AD là phân giác góc BAC,…

11
IV. Thiết kế thuật giải vẽ hình tự động trong
hình học phẳng
Có 2 bài toán lớn cần giải quyết trong bài toán vẽ hình tự động:

Bài toán 1: Bài toán về việc hợp nhất các câu đặc tả để tạo thành mạng
lưới mô hình quan hệ giữa các đối tượng.

Bài toán 2: Bài toán về việc vẽ hình từ mô hình mạng lưới quan hệ giữa
các đối tượng.

12
IV. Thiết kế thuật giải vẽ hình tự động trong
hình học phẳng
Bài toán 1: Bài toán về việc hợp nhất các câu đặc tả để tạo thành mạng lưới mô hình
quan hệ giữa các đối tượng
• Bước 1: Khởi tạo các biến điều kiện cần thiết.
• Bước 2: Duyện tuần tự các câu đặc tả của bài toán dưới dạng ngôn ngữ tự định nghĩa của chương trình.
• Bước 3: Kiểm tra tính đúng đắn của câu đặc tả.
• Bước 4: Tạo mạng lưới mô hình biểu diễn ứng với từng câu đặc tả.
• Bước 5: Gắn mạng lưới mô hình biểu diễn của từng câu đặc tả vào mạng lưới tổng thể của bài toán.
• Bước 6: Lặp lại bước 4 cho đến khi hết yêu cầu đề bài.

13
IV. Thiết kế thuật giải vẽ hình tự động trong
hình học phẳng
Ví dụ minh họa sau khi thực hiện giải thuật 1:

Đề bài:
Cho tam giác ABC. (1)
BD là phân giác góc ABC. (2)
CE là phân giác góc ACB. (3)
BD cắt CE tại F. (4)
Góc BAC = 60 độ. (5)
Góc ABC = 80 độ. (6)

14
IV. Thiết kế thuật giải vẽ hình tự động trong
hình học phẳng
Bài toán 2: Bài toán về việc vẽ hình từ mô hình mạng lưới quan hệ giữa các đối tượng
• Bước 1: Khởi tạo các biến điều kiện cần thiết.
• Bước 2: Chạy thuật toán xác định độ ưu tiên của đối tượng nguyên thủy (điểm).
• Bước 3: Chọn ra đối tượng có độ ưu tiên cao nhất, tiến hành thực hiện các phương pháp luận dựa trên
thông tin có trong mạng lưới mô hình quan hệ giữa các đối tượng. Từ đó xác định được tọa độ của đối
tượng thông qua các hàm tính toán.
• Bước 4: Kiểm tra tính đúng đắn của dữ kiện và lặp lại bước 2 cho đến khi tất cả các đối tượng nguyên
thủy đã được xác định.
• Bước 5: Trả về tập các tọa độ của điểm và các dây nối điểm, đường tròn.
• Bước 6: Thực hiện vẽ hình bằng các thông tin đã có.

15
V. Xây dựng ứng dụng
Từ những thuật giải của bài toán đã được trình bày ở trên, tiến hành xây dựng ứng dụng kèm với các yêu cầu
cơ bản:
Chức năng: vẽ hình tự động từ ngôn ngữ đặc tả của bài toán.
Giao diện: đơn giản, dễ tiếp cận, dễ dùng.
Tổ chức tri thức: có thể đáp ứng được đa phần các bài toán vẽ hình học của khối trung học cơ sở.
Tính tương thích cao và thời gian thực thi nhanh.

Ngôn ngữ sử dụng: JavaScript.


Nền tảng: ReactJS.
Thực thi: Web.
Mô hình ứng dụng: Model – View – ViewModel.

16
V. Xây dựng ứng dụng

Sơ đồ luồng dữ liệu:

17
V. Xây dựng ứng dụng
Hình ảnh chạy thực tế:

Đề tuyển sinh lớp 10:


Cho tam giác ABC, gọi D, E, F lần lượt
thuộc BC, AC và AB sao cho AD vuông góc
BC, BE vuông góc AC, CF vuông góc AB.
Gọi là H là giao điểm của AD và BE. Cho
đường tròn tâm O ngoại tiếp ABC, AD cắt
đường tròn tại M, BE cắt đường tròn lại N,
CF cắt đường tròn tại P.

18
VI. Tổng kết

Thống kê:

Lớp Số dạng bài test Số dạng vẽ đúng Tỉ lệ

Lớp 7 20 15 75%

Lớp 8 16 14 88%

Lớp 9 15 11 73%

Tổng cộng 51 40 78%

19
VI. Tổng kết
Kết quả đề tài:
Kết quả nghiên cứu:
• Tìm hiểu và ứng dụng được mô hình quan hệ toán tử Rela-Ops model từ đó xây dựng mô hình biễu
diễn kiến thức hình học phẳng.
• Đề xuất các lớp vấn đề giải quyết bài toán vẽ hình học tự động.
• Thiết kế các thuật giải để giải quyết các vấn đề vẽ hình. Từ đó xây dựng chương trình vẽ hình học
phẳng tự động.
Kết quả ứng dụng:
• Xây dựng thành công ứng dụng vẽ hình học tự động với các tính năng cơ bản của thuật toán vẽ hình
học tự động cũng như giao diện dễ sử dụng.
• Ứng dụng các kiến thức đã học về quy trình làm phần mềm. Xây dựng ứng dụng dựa trên các yêu cầu
được đề ra.
• Áp dụng mô hình MVVM, phân chia các modules cụ thể, đảm bảo tính bảo trì và phát triển.
• Là cơ sở nền dành cho các hệ thống giải toán khác có thể tích hợp vào. 20
VI. Tổng kết
Khó khăn và giải pháp:
• Tìm thuật toán quyết định thứ tự ưu tiên xử lý node.
 Giải nhiều dạng bài với tư duy của một học sinh cấp 2. Giải tuần tự từng câu trong đề
bài; bổ sung điều kiện trong những dạng bài đặc biệt.
• Sai số trong quá trình tính toán.
 Chuyển kết quả các phép tính thành chuỗi các phép toán, chỉ làm tròn kết quả sau
cùng, giảm thiểu tối đa sai số trong quá trình thực thi.

21
VI. Tổng kết
Phương hướng phát triển:
• Nghiên cứu giải quyết các vấn đề bị hạn chế.
• Hỗ trợ thêm các dạng đặc tả khác.
• Cải tiến ngôn ngữ đặc tả bài toán để trở nên tự nhiên hơn.
• Xây dựng API để tích hợp và các hệ thống giải toán khác.

22
Bài báo của khóa luận tốt nghiệp
[1] Hien D. Nguyen, Khang Le, Phong T. Luc, Minh N. Phan, Method for automatically drawing the
figure of a problem in Plane Geometry, in Proceedings of 4th International Conference on
Advanced Engineering and ICT-Convergence 2020 (ICAEIC 2020), pp. 58 - 61, Ho Chi Minh, Viet
Nam, Jan. 2020. ISSN: 2635-4586.

23
Tài liệu tham khảo
[1] H. Nguyen, D. Nguyen, V. Pham. Design an Intelligent Problems Solver about Solid
Geometry based on Knowledge model about Relation, in Proceedings of 2016 IEEE International
Conference on Knowledge and Systems Engineering (KSE 2016), Ha Noi, Vietnam, 2016, pp. 150-
155

[2] H.D. Nguyen, V.T. Pham, T.T. Le, D.H. Tran. A Mathematical Approach for Representation
Knowledge about Relations and Its Application, in Proceedings of 2015 IEEE International
Conference on Knowledge and Systems Engineering (KSE 2015), Ho Chi Minh, Vietnam, 2015, pp.
324-327.

[3] H.D. Nguyen, V.T. Pham. Relational Network of Geometric Objects and Apply to Draw the
Figure of Problem automatically, Journal of Science, Special Issue, Can Tho University, pp. 198–
204, 2013.

[4] N.V. Do, H.D. Nguyen, A. Selamat. Knowledge-Based model of Expert Systems using Rela-
model. International Journal of Software Engineering and Knowledge Engineering (IJSEKE), Vol. 28,
No. 8, pp. 1047 – 1090, 2018.

24

You might also like