Mạng ngữ nghĩa sử dụng mảng 1 chiều

Một phần của tài liệu Sử dụng mạng ngữ nghĩa trong bài toán điều chế chất hóa học cân bằng phản ứng hóa học (Trang 57)

Cũng tương tự như cách cài đặt trên, nhưng chỉ sử dụng mảng 1 chiều để lưu thông tin mạng ngữ nghĩa. Và danh sách L chứa các chất ở vế trái (chất tham gia) của tất cả các phương trình phản ứng.

L = {(1), (2), (3), (4), (5)} Mảng biểu diễn mạng ngữ nghĩa ban đầu:

FeS2 O2 SO2 Fe2O3 Fe SO3 H2O NaCl H2

0 0 0 0 0 0 0 0 0

Khởi đầu: các chất FeS2, NaCl, O2, H2O được kích hoạt

FeS2 O2 SO2 Fe2O3 Fe SO3 H2O NaCl H2

1 1 0 0 0 0 1 1 0

Lặp từng phương trình phản ứng (1) tới (5), ứng với từng phương trình, kiểm tra các chất ở vế trái của phương trình đó. Nếu tất cả giá trị lớn hơn 0 thì các chất ở vế phải ứng với phương trình đó được kích hoạt.

Ở phương trình (1), vế trái FeS2 = 1, O2 = 1 nên các chất ở vế phải Fe2O3, SO2 được kích hoạt. Loại bỏ phương trình (1) ra khỏi danh sách L.

L = {(2), (3), (4), (5)}

FeS2 O2 SO2 Fe2O3 Fe SO3 H2O NaCl H2

1 1 1 1 0 0 1 1 0

Tiếp đến kiểm tra phương trình (2), vế trái SO2 = 1, O2 = 1 nên các chất ở vế phải SO3 được kích hoạt. Loại bỏ phương trình (2) ra khỏi danh sách L.

L = {(3), (4), (5)}

FeS2 O2 SO2 Fe2O3 Fe SO3 H2O NaCl H2

1 1 1 1 0 1 1 1 0

Kiểm tra phương trình (3), vế trái Fe = 0, H2O= 1, SO3= 1 nên các chất ở vế phải chưađược kích hoạt.

53 L = {(3), (4), (5)}

FeS2 O2 SO2 Fe2O3 Fe SO3 H2O NaCl H2

1 1 1 1 0 1 1 1 0

Lặp lại bước trên cho đến khi tìm được FeSO4. Ngược lại, nếu trong quá trình lặp lại mà không có phương trình nào bị loại khi đã duyệt hết danh sách L thì thuật toán dừng, không tìm được lời giải.

Sử dụng mảng 1 chiều tiết kiệm được không gian lưu trữ hơn so với mảng 2 chiều. Do đó, em sử dụng cài đặt mảng 1 chiều cho chương trình demo Điều chế này.

Một phần của tài liệu Sử dụng mạng ngữ nghĩa trong bài toán điều chế chất hóa học cân bằng phản ứng hóa học (Trang 57)