Nghiên cứu xây dựng mô hình tính toán ứng dụng chiến đấu của phương tiện sát thương hàng không dựa trên văn phạm phi ngữ cảnh
Bài báo trình bày kết quả xây dựng mô hình toán để giải quyết các bài
toán ứng dụng chiến đấu của phương tiện sát thương hàng không. Trong nghiên
cứu này, chúng tôi đề xuất sử dụng văn phạm phi ngữ cảnh để mô hình hóa lời giải
của các bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không. Lời
giải của các bài toán được mô tả thành các chuỗi thuộc ngôn ngữ của văn phạm phi
ngữ cảnh đề xuất, sau đó, chuỗi được đưa vào một bộ phân tích cú pháp để xây
dựng cây dẫn xuất tương ứng. Từ các cây dẫn xuất, các bài toán sẽ được giải và
đưa ra đáp án với các giá trị đầu vào cụ thể. Mô hình này đã được đưa vào ứng
dụng thực tiễn để xây dựng các phần mềm giải quyết các bài toán ứng dụng chiến
đấu của phương tiện sát thương hàng không phục vụ công tác dẫn đường của Quân
chủng Phòng không – Không quân và cho thấy kết quả khả quan.
Tóm tắt nội dung tài liệu: Nghiên cứu xây dựng mô hình tính toán ứng dụng chiến đấu của phương tiện sát thương hàng không dựa trên văn phạm phi ngữ cảnh
Công nghệ thông tin & Cơ sở toán học cho tin học Đ. T. Quyền, N. C. Thành, , “Nghiên cứu xây dựng mô hình văn phạm phi ngữ cảnh.” 138 NGHIÊN CỨU XÂY DỰNG MÔ HÌNH TÍNH TOÁN ỨNG DỤNG CHIẾN ĐẤU CỦA PHƯƠNG TIỆN SÁT THƯƠNG HÀNG KHÔNG DỰA TRÊN VĂN PHẠM PHI NGỮ CẢNH Đặng Thanh Quyền*, Nguyễn Chí Thành,Phạm Thu Hương, Nguyễn Nhật An Tóm tắt: Bài báo trình bày kết quả xây dựng mô hình toán để giải quyết các bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không. Trong nghiên cứu này, chúng tôi đề xuất sử dụng văn phạm phi ngữ cảnh để mô hình hóa lời giải của các bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không. Lời giải của các bài toán được mô tả thành các chuỗi thuộc ngôn ngữ của văn phạm phi ngữ cảnh đề xuất, sau đó, chuỗi được đưa vào một bộ phân tích cú pháp để xây dựng cây dẫn xuất tương ứng. Từ các cây dẫn xuất, các bài toán sẽ được giải và đưa ra đáp án với các giá trị đầu vào cụ thể. Mô hình này đã được đưa vào ứng dụng thực tiễn để xây dựng các phần mềm giải quyết các bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không phục vụ công tác dẫn đường của Quân chủng Phòng không – Không quân và cho thấy kết quả khả quan. Từ khóa: Phương tiện sát thương hàng không, Văn phạm phi ngữ cảnh, Phân tích cú pháp. 1. ĐẶT VẤN ĐỀ Bài toán tính toán ứng dụng chiến đấu phương tiện sát thương hàng không (PTSTHK) đánh mục tiêu mặt đất, mặt nước là một bài toán quan trọng trong quá trình chuẩn bị, bao gồm các tính toán về sử dụng lực lượng, lựa chọn đường bay mặt cắt đường bay và chế độ bay, tính toán các số liệu công kích và đảm bảo an toàn [1, 2]. Các nghiên cứu về hiệu suất cũng như phương thức sử dụng PTSTHK của quân đội mỗi nước đều có những đặc trưng riêng, tùy thuộc vào tiềm lực quốc phòng và nghệ thuật quân sự của mỗi nước, phương pháp luận trong tiến công quân sự và phụ thuộc vào PTSTHK được trang bị. Các nghiên cứu về tính toán ứng dụng chiến đấu cho PTSTHK của các nước tư bản và khối NATO hiện nay có rất ít thông tin chúng ta không tiếp cận được các tài liệu có liên quan. Các nghiên cứu về ứng dụng PTSTHK trên thế giới mà hiện nay chúng ta biết đến nhiều nhất là các nghiên cứu của Nga trên cơ sở việc viện trợ, trao đổi, đào tạo giữa quân đội Nga (Liên Xô trước đây) và quân đội ta. Phương pháp tính toán ứng dụng chiến đấu sử dụng PTSTHK của Nga hiện nay đang được sử dụng rộng rãi trong quân đội ta, tuy nhiên các phương pháp này đang được áp dụng hoàn toàn thủ công, dựa trên các loại tài liệu giấy chứ chưa có một hệ thống máy tính điện tử trợ giúp cho việc tính toán. Hiện nay, chưa có các nghiên cứu ứng dụng khoa học kỹ thuật, nhất là sử dụng thế mạnh về tính toán và xử lý số liệu của máy tính, nhằm cải tiến hiệu năng, rút ngắn thời gian, đảm bảo độ tin cậy của việc giải bài toán trong tính toán ứng dụng chiến đấu của PTSTHK. Tại Học viện Phòng không Không quân và Quân Chủng Phòng không Không quân cũng đã xây dựng và ứng dụng một số phần mềm tính toán phục vụ những mục đích tính toán cụ thể, nhưng đó chỉ là những phần mềm nhỏ, giải quyết một số bài toán tính toán cụ thể, chưa giải quyết được bài toán tính toán tổng thể. Do đó, việc xây dựng mô hình toán học để giải quyết các bài toán là hết sức cần thiết. Trong bài báo này, chúng tôi đề xuất một phương pháp sử dụng văn phạm phi ngữ cảnh để mô hình hóa lời giải của các bài toán tính toán ứng dụng chiến đấu PTSTHK, nhằm xây dựng phần mềm tự động giải các bài toán đó. Nghiên cứu được trình bày theo thứ tự sau: Phần 2 trình bày nội dung nghiên cứu; Phần 3 trình bày các kết quả thử nghiệm, đánh giá; Cuối cùng, kết luận được trình bày trong phần 4. Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 139 2. NỘI DUNG CẦN GIẢI QUYẾT 2.1. Bài toán tính toán ứng dụng chiến đấu phương tiện sát thương hàng không (PTSTHK) Bài toán tính toán ứng dụng chiến đấu PTSTHK đánh mục tiêu mặt đất, mặt nước là một bài toán quan trọng trong quá trình chuẩn bị tổ chức bay bắn, ném bom, phóng tên lửa vào các mục tiêu điểm, mục tiêu cụm (mục tiêu diện) và các mục tiêu phức hợp trong tấn công đường không. Các bài toán này có thể chia làm các dạng chính như sau. - Chọn phương án, loại và cỡ PTSTHK: Khi chọn các phương án mang treo PTSTHK theo tình huống, để đánh giá so sánh hiệu quả tấn công mục tiêu của chúng cần phải xem xét tính chất mục tiêu, đặc điểm tác động sát thương của PTSTHK vào mục tiêu dự kiến, kiểu loại (và số lượng) PTSTHK có trên máy bay, khả năng của hệ thống điều khiển vũ khí tạo vùng phân bố của PTSTHK cần thiết, các đặc điểm tản mát nhóm và tản mát riêng lẻ. Phương pháp nghiệp vụ lựa chọn chủng loại và cỡ PTSTHK cùng loại trong các phương án mang treo PTSTHK hiện có là ưu tiên lựa chọn loại PTSTHK có tổng diện tích sát thương tương đối là lớn nhất. - Xác định độ dài loạt hợp lý của PTSTHK (độ dài loạt bom) theo hướng bay của máy bay. - Chọn các điểm ngắm khi tấn công hỏa lực vào các mục tiêu cụm (mục tiêu diện): xác định các điểm ngắm vào mục tiêu tấn công đường không nhằm bảo đảm hiệu suất sát thương cao nhất đối với mục tiêu cần tính toán. - Lựa chọn hướng bắn hoặc tiếp cận mục tiêu, được tính toán để phát hiện chắc chắn mục tiêu từ khoảng cách bảo đảm thực hiện ngắm bắn và khả năng thực hiện nhiệm vụ được giao với hiệu quả cao nhất. - Đánh giá hiệu suất sử dụng phương tiện sát thương hàng không trong bắn, ném bom, phóng tên lửa vào mục tiêu mặt đất (mặt nước): bài toán tính xác suất tiêu diệt mục tiêu theo các mức độ sát thương mục tiêu (tiêu diệt, loại khỏi vòng chiến đấu, làm hư hỏng). - Tính số lượng máy bay dùng để tiêu diệt mục tiêu trong các tình huống tác chiến tiêu biểu: với mỗi phương án mang treo PTSTHK cụ thể của máy bay, tính số lượng máy bay (số lần tấn công độc lập lặp lại vào mục tiêu) cần thiết để sát thương mục tiêu theo yêu cầu đặt ra. Để giải quyết các bài toán này, cần thực hiện các bước tính toán từ các tham số đầu vào để tính các giá trị trung gian, kết hợp với tra cứu các bảng biểu, tra cứu đồ thị để tính toán đưa ra kết quả cuối cùng. Với mỗi bài toán, các bước thực hiện tính toán cụ thể là khác nhau, tuy nhiên có thể khái quát quy trình giải quyết các bài toán thành 4 bước như sau. Bước 1: Nhập các tham số đầu vào, ví dụ: loại mục tiêu, kích thước mục tiêu, loại PTST sử dụng, số lượng PTST sử dụng, mức độ tiêu diệt, số lượng mục tiêu thành phần trong mục tiêu cụm cùng loại, độ dài loạt, độ lệch xác suất tản mát nhóm dọc theo trục x và z, độ lệch xác suất tản mát riêng lẻ dọc theo trục x và z, xác suất tin cậy trong tính toán (xác suất mà theo đó tổn thất tương đối trong thực tế sẽ không nhỏ hơn giá trị dự kiến), tỷ lệ dự kiến các mục tiêu thành phần (cần phải) bị tiêu diệt trong mục tiêu cụm cùng loại hoặc phần (tỷ lệ) diện tích bị sát thương trong mục tiêu diện (mục tiêu phức hợp). Bước 2: Tra bảng để xác định kích thước vùng sát thương quy đổi khi biết loại mục tiêu, loại phương tiện sát thương sử dụng, mức độ sát thương mục tiêu. Bước 3: Tính toán các giá trị trung gian. Các giá trị này có thể tính toán qua các biểu thức toán học của các giá trị tham số hoặc được tra trên đồ thị có sẵn do tài liệu Nga cung cấp. Bước 4: Đưa ra kết quả theo yêu cầu của từng bài toán. Các bước tính toán trong lời giải các bài toán tính toán ứng dụng chiến đấu PTSTHK có những điểm tương đồng với các thuật toán như đều có các bước gán giá trị đầu vào, gọi Công nghệ thông tin & Cơ sở toán học cho tin học Đ. T. Quyền, N. C. Thành, , “Nghiên cứu xây dựng mô hình văn phạm phi ngữ cảnh.” 140 các hàm (tra cứu bảng, đồ thị), tính các giá trị trung gian bằng biểu thức toán học, Đặc điểm chung của các lời giải các bài toán này và các thuật toán là có thể được biểu diễn bằng một ngôn ngữ lập trình để thực hiện và đưa ra kết quả cuối cùng. Đối với các ngôn ngữ lập trình, văn bản phi ngữ cảnh thường được sử dụng trong các trình biên dịch để phân tích một chương trình viết bằng một ngôn ngữ lập trình thành các câu lệnh cụ thể. Do đó, chúng tôi đề xuất sử dụng một mô hình dựa trên văn phạm phi ngữ cảnh để có thể phân tích được một lời giải bài toán thành các bước tính toán cụ thể, từ đó xây dựng được phần mềm tự động giải các bài toán này. Chúng ta có thể sử dụng một ngôn ngữ lập trình đã có để thực hiện việc giải các bài toán này, tuy nhiên, việc học và thành thạo một ngôn ngữ lập trình tốn khá nhiều thời gian và công sức, chúng tôi đề xuất một ngôn ngữ đơn giản, dễ học, giúp những người không có kiến thức lập trình cũng có thể đưa các lời giải bài toàn vào chương trình tính toán tự động. 2.2. Văn phạm phi ngữ cảnh Văn phạm phi ngữ cảnh (Context Free Grammar - CFG) là một hệ thống gồm bốn thành phần [3], ký hiệu là văn phạm G = (V, Ʃ, R, S), trong đó : 1. V là tập hữu hạn các ký hiệu không kết thúc (hay còn gọi là các biến). 2. Ʃ là tập hữu hạn các ký hiệu kết thúc, V ∩ Ʃ = ∅. 3. R là tập hữu hạn các luật sản xuất mà mỗi luật sản xuất có dạng A →α với A là ký hiệu không kết thúc và α là chuỗi các ký hiệu ∈ (V∪ Ʃ)* 4. S là một ký hiệu không kết thúc đặc biệt gọi là ký hiệu bắt đầu văn phạm. Ví dụ: Văn phạm G1 = (V, Ʃ, R, S), trong đó: V = {A, B} Ʃ = {0, 1, 2} R = {A → 0A1, A → B, B → 2} S = A Cho văn phạm G = (V, Ʃ, R, S) và η, ω∈(V∪ Ʃ)*. Ta nói ω được suy dẫn trực tiếp từ η trong G, ký hiệu η├G ω hay ngắn gọn là η├ ω, nếu tồn tại luật sản xuất α→β∈R và γ, δ∈(V∪ Ʃ)* sao cho η = γαδ, ω = γβδ. Ta nói ω được suy dẫn từ η trong G, ký hiệu η╞G ω hay ngắn gọn là η╞ ω, nếu η = ω hoặc tồn tại một dãy D = ω0, ω1,, ωk∈(V∪ Ʃ)* sao cho ω0 = η, ωk = ω và ωi-1├ ωi, với i = 1, 2,..., k. Dãy D = ω0, ω1, , ωk được gọi là một dẫn xuất của ω từ η trong G và số k được gọi là độ dài của dẫn xuất này. Nếu ω0 = S và ωk∈ Σ* thì dãy D gọi là dẫn xuất đầy đủ. Hình 1. Mô hình phân tích cú pháp trong trình biên dịch. Cây phân tích (hay còn gọi là cây dẫn xuất) là một biểu diễn dưới dạng đồ thị của một dẫn xuất đầy đủ với gốc là ký hiệu bắt đầu S, các lá là các ký hiệu kết thúc, các đỉnh còn lại là các ký hiệu không kết thúc, mỗi đỉnh và các đỉnh con của nó tương ứng với một luật sản xuất. mã nguồn Phân tích từ vựng Phân tích cú pháp chuỗi thẻ từ vựng Sinh mã trung gian cây phân tích Bảng ký hiệu mã trung gian Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 141 Văn phạm phi ngữ cảnh thường được ứng dụng để định nghĩa cú pháp của các ngôn ngữ lập trình [4], biểu diễn cú pháp trong xử lý ngôn ngữ tự nhiên, mô hình hóa tính toán, biểu diễn cấu trúc các file văn bản [5]. Hình 1 minh họa ứng dụng của văn phạm phi ngữ cảnh trong trình biên dịch[6]. Với chương trình nguồn (source program) là đầu vào, bộ phân tích từ vựng (lexical analyzer) sẽ biến đổi nó thành một chuỗi các thẻ từ vựng (token). Chuỗi này được đưa vào bộ phân tích cú pháp (parser) để sinh ra một cây phân tích (systax tree) và từ đó sinh ra mã trung gian. Ở các giai đoạn sau, mã trung gian được tối ưu hóa và cuối cùng trình biên dịch sinh mã máy. Do các thuật toán trong các ngôn ngữ lập trình và lời giải các bài toán ứng dụng chiến đấu PTSTHK có những điểm tương đồng như đều có các bước gán giá trị đầu vào, gọi các hàm, tính các giá trị trung gian bằng biểu thức toán học, nên mô hình tương tự như mô hình trong trình biên dịch có thể áp dụng cho để tự động giải các bài toán tính toán ứng dụng chiến đấu PTSTHK. 2.3. Mô hình hóa bài toán tính toán ứng dụng chiến đấu phương tiện sát thương hàng không Để mô hình hóa lời giải của bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không, chúng tôi định nghĩa một văn phạm phi ngữ cảnh để biểu diễn lời giải của bài toán này. prog → stat+ stat → expr NEWLINE | VARIABLE '=' expr NEWLINE | NEWLINE | 'clear' expr → expr MUL expr | expr DIV expr | expr ADD expr | expr SUB expr | '-'?NUMBER | VARIABLE | '(' expr ')' | FUNCNAME '(' expr (',' expr)* ')' | TABLE '(' VARIABLE ',' VARIABLE ',' expr (',' expr)* ')' | GRAPH '(' STRING (',' expr)* ')' TABLE → 'table'; GRAPH → 'graph'; FUNCNAME → 'cos' | 'tan' | 'sin' | 'acos' | 'atan' | 'asin' | 'log' | 'pow' | 'max' | 'min' | 'ceiling' | 'abs' | 'nextgreater' | 'iif' MUL → '*' DIV → '/' ADD → '+' SUB → '-' NEWLINE → '\r'? '\n' NUMBER → [0-9]+ ('.' [0-9]+)? VARIABLE → [a-zA-Z][a-zA-Z0-9]* STRING → '"' ~[\r\n"]* '"' Hình 2. Tập luật sản xuất của văn phạm phi ngữ cảnh dùng để biểu diễn lời giải của bài toán ứng dụng chiến đấu của phương tiện sát thương hàng không. Công nghệ thông tin & Cơ sở toán học cho tin học Đ. T. Quyền, N. C. Thành, , “Nghiên cứu xây dựng mô hình văn phạm phi ngữ cảnh.” 142 Đặc điểm của lời giải các bài toán này là ngoài các tính toán đại số trên dữ liệu đầu vào, chúng ta còn phải tra cứu các tham số của các phương tiện sát thương hàng không và các trận địa qua đồ thị hoặc các bảng biểu, tính toán các hàm. Văn phạm phi ngữ cảnh biểu diễn lời giải của bài toán này được định nghĩa gồm bốn thành phần (V, Ʃ, R, S) như sau. V = { prog, stat, expr, NEWLINE, VARIABLE, NUMBER, FUNCNAME, TABLE, GRAPH } Ʃ = { ‘a’ ‘z’, ‘A’ ‘Z’, ‘0’ ‘9’, ‘\r’, ‘\n’ }, với ‘\r’ , ‘\n’ là các ký tự đặc biệt biểu thị hết một dòng và bắt đầu một dòng mới trong chuỗi ký tự. S = prog Tập luật sản xuất R được định nghĩa ở hình 2. Trong đó, các kí hiệu không kết thúc thuộc V có ý nghĩa như sau. Kí hiệu prog tương ứng với một lời giải bài toán, stat tương ứng với một bước tính toán trong lời giải, expr tương ứng với một biểu thực toán học, NEWLINE là kí hiệu kết thúc một dòng, bắt đầu một dòng mới, VARIABLE là các biến số, NUMBER kí hiệu các số thực, FUNCNAME kí hiệu các tên hàm số, TABLE, GRAPH tương ứng các hàm tra cứu bảng và đồ thị tham số. Xxk=20 Xzk=200 vc=800 n=8 Exr=30 Ezr=15 Exi=10 Ezi=5 table(lx, lz, 65, 1, 8, 1) Xxks=Xxk/Exr Xzks=Xzk/Ezr lxs=lx/Exr lzs=lz/Ezr Exis=Exi/Exr Ezis=Ezi/Ezr nze=n Lzis = graph("4.10", lzs, nze) Lzs=Lzis nk=1 Sxs=n*nk*lxs*min(1, (lzs/Lzs)) FSxs = graph("3.3.1", Xxks, Sxs) LxtsP=FSxs-(0.8*lxs) LxtP=LxtsP*Exr ix=LxtP/(n-1) Lxt = nextgreater(LxtP, 80, 160, 320, 640) Hình 3. Script giải một bài toán xác định độ dài loạt hợp lý của PTSTHK (chiều dài loạt bom) theo hướng bay của máy bay. Mỗi lời giải bài toán sẽ được viết lại dưới dạng 1 chuỗi thuộc ngôn ngữ được định nghĩa bởi văn phạm trên, được gọi là một script. Mỗi script đầu vào sẽ được phân tích qua bộ phân tích cú pháp theo thuật toán Adaptive LL(*) Parsing để sinh ra một cây phân tích [7]. Đầu vào của thuật toán Adaptive LL(*) Parsing là một chuỗi (một script), đầu ra là Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 143 cây phân tích tương ứng của chuỗi đó. Cây phân tích là một cây nhiều nhánh, mỗi đỉnh và các đỉnh con của nó tương ứng với một luật sản xuất trong văn phạm phi ngữ cảnh. Hình 3 minh họa script của một lời giải một bài toán xác định độ dài loạt hợp lý của PTSTHK (chiều dài loạt bom) theo hướng bay của máy bay. Các biến số Xxk, Xzk, vc, n, Exr, Ezr, Exi, Ezi là các tham số đầu vào, Lxt là kết quả đầu ra, các biến số khác trong các bước tính toán là các giá trị trung gian. Hàm table thực hiện việc tra cứu đồ thị để lấy ra các giá trị lx và lz, hàm graph là hàm tra cứu đồ thị. Hình 4. Mô hình hoạt động của phương pháp giải bài toán bằng phân tích văn phạm phi ngữ cảnh. Quy trình hoạt động của phương pháp giải bài toán bằng phân tích văn phạm phi ngữ cảnh được minh họa ở hình 4. Mỗi script đầu vào (tương ứng với lời giải của một bài toán) sẽ được đưa qua bộ phân tích từ vựng để sinh ra một chuỗi thẻ từ vựng tương ứng, sau đó bộ phân tích cú pháp dựa vào văn phạm phi ngữ cảnh đã được định nghĩa ở trên để phân tích script thành một cây phân tích. Bước cuối cùng là duyệt cây phân tích để thực hiện các bước tính toán tương ứng với mỗi đỉnh (mỗi đỉnh tương ứng với một luật sản xuất). Khi mỗi đỉnh trên cây phân tích được duyệt cũng tương ứng với việc một bước tính toán trong lời giải bài toán. Các kết quả tính toán được lưu vào một bảng giá trị biến. Sau khi quá trình duyệt cây kết thúc, các kết quả tính toán có thể lấy từ các biến trong bảng giá trị biến. Các bước tính toán này được mô tả trong thuật toán ở bảng 1. Bảng 1. Thuật toán giải bài toán tính toán ứng dụng chiến đấu PTSTHK. Đầu vào: script s lời giải bài toán, mảng các tham số đầu vào p[] của một bài toán tính toán ứng dụng chiến đấu PTSTHK Đầu ra: giá trị kết quả đầu ra o của bài toán [1] t[] ← tách script s thành chuỗi các thẻ từ vựng. /* Cập nhật giá trị các tham số đầu vào p[] vào bảng giá trị biến variable_table */ [2]variable_table[] ← p[] /* Dùng thuật toán Adaptive LL(*) Parsing để phân tích chuỗi thẻ từ vựng t[] thành một cây phân tích */ [3] syntax_tree ← Adaptive_LL(*)_Parsing(t[]) /* Sử dụng một thuật toán duyệt cây đệ quy để duyệt toàn bộ cây phân tích, đồng thời thực hiện các bước tính toán tương ứng với mỗi đỉnh trên cây, các kết quả được lưu vào bảng giá trị biến variable_table */ [4] visit(syntax_tree.root) /* Đọc giá trị đầu ra o từ bảng giá trị biến */ [5] o ← variable_table[index_of_o] /* Trả về giá trị đầu ra */ [6] return (o) Phân tích từ vựng script Phân tích cú pháp chuỗi thẻ từ vựng Duyệt cây cây phân tích Bảng giá trị biến Văn phạm phi ngữ cảnh Công nghệ thông tin & Cơ sở toán học cho tin học Đ. T. Quyền, N. C. Thành, , “Nghiên cứu xây dựng mô hình văn phạm phi ngữ cảnh.” 144 3. THỬ NGHIỆM, ĐÁNH GIÁ 3.1. Số liệu đầu vào Để thử nghiệm tính chính xác của mô hình tính toán này, chúng tôi đã tiến hành viết lại lời giải của 80 bài toán đặc trưng tính toán ứng dụng chiến đấu PTSTHK theo chuẩn văn phạm phi ngữ cảnh được đề xuất ở trên. 80 lời giải được viết thành 80 script để đưa vào chương trình tính toán. Các bài toán này là các bài toán mẫu trong tài liệu tham khảo về tính toán ứng dụng chiến đấu PTSTHK của Nga. 3.2. Phương pháp, công cụ thử nghiệm Sau khi chạy chương trình với 80 bài toán, kết quả tính toán được thể hiện từ các kết quả trung gian đến đáp số cuối cùng, các kết quả được so sánh với các bước làm bằng tay theo đúng quy trình nghiệp vụ. Ngoài ra, những bài toán đặc trưng này cũng được kiểm nghiệm lời giải với các số liệu đầu vào khác nhau, đảm bảo độ chính xác trong tính toán. Để kiểm tra mức độ hiệu quả của mô hình tính toán, chúng tôi tiến hành thử nghiệm so sánh thời gian giải các bài toán dùng chương trình và thời gian tính toán bằng tay. Những người tham gia thử nghiệm được chia thành 2 nhóm là chuyên gia và không phải chuyên gia. Nhóm chuyên gia là nhóm những người nắm vững các kiến thức về ứng dụng PTSTHK và thành thạo việc giải các bài toán tính toán ứng dụng chiến đấu PTSTHK, những người còn lại được xếp vào nhóm không phải chuyên gia. Mỗi người tham gia thử nghiệm sẽ giải các bài toán bằng 2 cách là dùng chương trình và giải bằng tính toán thủ công để so sánh thời gian giữa 2 cách. Khi dùng chương trình để giải bài toán, thời gian được tính từ lúc người dùng bắt đầu nhập các số liệu đầu vào cho tới khi chương trình hiển thị kết quả của lời giải. 80 bài toán được chia làm 2 nhóm là đơn giản và phức tạp theo độ khó của các bước tính toán. Chương trình phần mềm áp dụng mô hình tính toán giải quyết bài toán dựa trên văn phạm phi ngữ cảnh được viết bằng công cụ lập trình Visual C#, các thử nghiệm được chạy trên máy tính để bàn hệ điều hành Windows 10. 3.3. Kết quả thử nghiệm và bình luận 3.3.1. Đánh giá về độ chính xác Sau khi thực hiện giải 80 bài toán bằng chương trình, các đáp số cuối cùng và các kết quả tính trung gian được kiểm tra tính đúng đắn theo quy trình nghiệp vụ. Kết quả cho thấy các bước tính toán của chương trình đều đảm bảo chính xác so với lời giải bằng phương pháp nghiệp vụ của chuyên gia. 3.3.2. Đánh giá về thời gian thực hiện Kết quả thử nghiệm đánh giá về thời gian thực hiện của chương trình so với phương pháp nghiệp vụ truyền thống được trình bày ở bảng 2. Kết quả này cho thấy việc sử dụng chương trình giúp giảm đáng kể thời gian giải các bài toán tính toán ứng dụng chiến đấu PTSTHK, thời gian để giải quyết bài toán chỉ còn trong vài phút, trong đó phần lớn thời gian là để nhập các dữ liệu đầu vào, thời gian để máy tính thực hiện tính toán chỉ vài giây. Bảng 2.Kết quả thử nghiệm chương trình. Mức độ bài toán Chuyên gia Không phải là chuyên gia Tính toán bằng tay Đơn giản 5 phút 20 phút Phức tạp 15 phút 40 phút Sử dụng chương trình Đơn giản 1 phút 2 phút Phức tạp 2 phút 3 phút Nghiên cứu khoa học công nghệ Tạp chí Nghiên cứu KH&CN quân sự, Số 50, 08 - 2017 145 3.3.3. Nhận xét Thuật toán và cách thức giải các bài toán được đưa vào dưới dạng các script mô tả để engine của chương trình thực hiện tính toán, do vậy, hoàn toàn có khả năng đưa thêm các tính toán cho các tình huống tác chiến khác. Cách tiếp cận truyền thống để xây dựng một chương trình giải quyết những bài toán này là lập trình thực hiện các bước tính toán sử dụng một công cụ lập trình nào đó. Cách tiếp cận truyền thống này đòi hỏi người dùng phải thông thạo về một ngôn ngữ lập trình, công cụ lập trình của ngôn ngữ đó, biết cách xây dựng giao diện chương trình, tương tác với người sử dụng để nhập các tham số đầu vào và hiển thị kết quả đầu ra, tìm hiểu các thư viện để tra cứu các tham số dạng bảng biểu và các tham số dạng đồ thị. Ưu điểm của phương pháp được đề xuất là nó không yêu cầu người dùng phải hiểu biết những kiến thức về lập trình như vậy mà chỉ cần viết ra một script để định nghĩa các tham số đầu vào và kết quả đầu ra, các bước tính toán của lời giải. Như vậy, với phương pháp mới này, việc thêm một bài toán và lời giải cho nó vào trong phần mềm để tự động tính toán, giải quyết bài toán đơn giản hơn so với cách tiếp cận truyền thống. 4. KẾT LUẬN Để đáp ứng nhu cầu giải quyết các bài toán tính toán ứng dụng chiến đấu PTSTHK một cách nhanh chóng, chính xác, đáp ứng yêu cầu tác chiến của Quân chủng Phòng không – Không quân, chúng tôi đã xây dựng một mô hình tính toán dựa trên văn phạm phi ngữ cảnh để tự động hóa quá trình giải các bài toán. Lời giải bài toán được viết lại dưới dạng ngôn ngữ phi ngữ cảnh, sau đó được đưa vào bộ phân tích cú pháp để xây dựng cây cú pháp. Cuối cùng, chương trình duyệt cây cú pháp để thực hiện các bước tính toán và đưa ra đáp số cuối cùng. Mô hình tính toán này đã được thử nghiệm với một tập các bài toán mẫu, kết quả thử nghiệm cho thấy kết quả tính toán của mô hình này là chính xác, tốc độ tính toán cao. Từ mô hình này chúng tôi đã xây dựng phần mềm phục vụ tính toán, xây dựng cơ sở dữ liệu các bài toán tính toán ứng dụng chiến đấu PTSTHK giúp người dùng tra cứu nhanh và giải nhanh các bài toán, phục vụ tham mưu, chỉ huy trong công tác dẫn đường ở Quân chủng Phòng không – Không quân. Lời cảm ơn: Nhóm tác giả cảm ơn sự tài trợ về kinh phí của đề tài: “Nghiên cứu thiết kế xây dựng hệ thống phần mềm hỗ trợ tính toán ứng dụng chiến đấu sử dụng các phương tiện sát thương hàng không tiêu diệt mục tiêu mặt đất, mặt nước”. TÀI LIỆU THAM KHẢO [1]. Đỗ Duy Đản, “Tài liệu sử dụng vũ khí hàng không công kích mục tiêu mặt đất, mặt nước”, Học viện PK-KQ (2005). [2]. Lê Đình Vạn, “Giáo trình ứng dụng chiến đấu súng, pháo, tên lửa trên máy bay”, Học viện PK-KQ (2000). [3]. D. Jurafsky and J. H. Martin, “Speech and language processing, Prentice Hall”, (2008). [4]. K. Cooper and L. Torczon, “Engineering a Compiler”, Elsevier Science & Technology, (2011) [5]. T. Parr, “Language implementation patterns: create your own domain-specific and general programming languages”, Pragmatic Bookshelf, (2009). [6]. A. V. Aho, M. S. Lam, R. Sethi and J. D. Ullman, “Compilers - Principles, Techniques, and Tools-Pearson”, Addison Wesley, (2006). [7]. T. Parr, S. Harwell and K. Fisher, “Adaptive LL (*) parsing: the power of dynamic analysis” in ACM SIGPLAN Notices, Vol. 49. No. 10. ACM, 2014. Công nghệ thông tin & Cơ sở toán học cho tin học Đ. T. Quyền, N. C. Thành, , “Nghiên cứu xây dựng mô hình văn phạm phi ngữ cảnh.” 146 ABSTRACT A METHOD FOR COMPUTING COMBAT USE OF AIRCRAFT WEAPONS BASED ON CONTEXT-FREE GRAMMAR In the paper, results of a study on building a model for computing combat use of aircraft weapons are presented. To enable computer to automatically solve the problems of combat use of aircraft weapons, a method to model solutions based on a context-free grammar is proposed. In this method, a solution to a problem is represented by a sentence of the language generated by the defined contex-free grammar. Then, a parsing algorithm constructs a parse tree from the sentence. Finally, a tree traversal algorithm is applied to the parse tree to visit each node in the tree struct. Computational steps of the solution are performed simultaneously with node visiting and the problem is solved when the tree traversal finish. Experiment results show that the proposed method could solve problems of combat use of aircraft weapons with accurate calculations. Keywords: Context-free grammar, Aircraft weapons usage, Parsing syntax. Nhận bài ngày 21 tháng 12 năm 2016 Hoàn thiện ngày 22 tháng 02 năm 2017 Chấp nhận đăng ngày 18 tháng 8 năm 2017 Địa chỉ: 1Viện Công nghệ Thông tin, Viện KHCNQS. *Email:dangthanhquyen@gmail.com.
File đính kèm:
- nghien_cuu_xay_dung_mo_hinh_tinh_toan_ung_dung_chien_dau_cua.pdf