Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 174 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
174
Dung lượng
3,05 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ - NGUYỄN TRUNG DŨNG MỘTSỐDẠNG HÀNG ĐỢI VÀ CÁCNGUYÊNLÝXỬLÝ LUẬN ÁN TIẾN SĨ TỐN HỌC Hà Nội - 2018 BỢ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ NGUYỄN TRUNG DŨNG MỘTSỐDẠNG HÀNG ĐỢI VÀ CÁCNGUYÊNLÝXỬLÝ Chuyên ngành: Cơ sở tốn học cho tin học Mã sớ : 9460110 LUẬN ÁN TIẾN SĨ TOÁN HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS.NCVCC Nguyễn Hồng Hải TS Trần Quang Vinh Hà Nội - 2018 i LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu luận án cá nhân Các kết nêu luận án trung thực chưa cơng bố cơng trình khác Các liệu tham khảo trích dẫn đầy đủ Tác giả Nguyễn Trung Dũng ii LỜI CÁM ƠN Luận án nghiên cứu thực Viện Công nghệ thông tin - Viện Khoa học Công nghệ Quân sự/BQP Bộ tư lệnh 86/BQP, hướng dẫn khoa học TS.Nguyễn Hồng Hải TS.Trần Quang Vinh Lời nghiên cứu sinh xin bày tỏ lòng biết sâu sắc tới thầy giáo Nguyễn Hồng Hải thầy giáo Trần Quang Vinh, người thầy giúp đỡ đưa nghiên cứu sinh đến lĩnh vực nghiên cứu Các thầy tận tình giảng dạy, hướng dẫn, động viên, khuyến khích dẫn giúp nghiên cứu sinh tiếp cận đạt thành công học tập, nghiên cứu hoàn thành luận án Nghiên cứu sinh xin bày tỏ lòng biết ơn tới Đảng ủy, huy Viện Công nghệ thông tin - Viện KH-CN Quân sự; Đảng ủy, huy BTL 86; cán Phòng Đào tạo - Viện KH-CN Qn sự; cán phòng Tốn ứng dụng - Viện Công nghệ thông tin - Viện KH-CN Quân sự; cán phòng Phần mềm CSDL – BTL 86 nhiệt tình ủng hộ, động viên kịp thời hết lòng giúp đỡ nghiên cứu sinh suốt trình học tập nghiên cứu đơn vị Cuối nghiên cứu sinh xin chân thành cảm ơn toàn thể gia đình, người ln bên cạnh dành cho nghiên cứu sinh tình cảm chia sẻ động viên giúp đỡ tinh thần lúc khó khăn sống, trình học tập nghiên cứu Tác giả Nguyễn Trung Dũng iii MỤC LỤC Trang DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT V DANH MỤC CÁC BẢNG VIII DANH MỤC CÁC HÌNH VẼ IX CHƯƠNG MỘTSỐ VẤN ĐỀ CƠ BẢN VỀ LÝ THUYẾT HÀNGĐỢIVÀ MẠNG HÀNGĐỢI 1.1 Mộtsố khái niệm xác suất có liên quan 1.1.1 Biến ngẫu nhiên 1.1.2 Hàm phân phối xác suất biến ngẫu nhiên 1.1.3 Các đặc trưng biến ngẫu nhiên 1.1.4 Mộtsố đại lượng ngẫu nhiên quan trọng (thường dùng) 1.2 Quá trình Markov 10 1.2.1 Các định nghĩa số tính chất ban đầu 10 1.2.2 Xích Markov thời gian rời rạc 11 1.3 Lý thuyết hàngđợi mạng hàngđợi 14 1.3.1 Hàngđợi 14 1.3.2 Mạng hàngđợi 18 1.4 Tình hình nghiên cứu nước nước mạng hàngđợi 27 CHƯƠNG MẠNG ĐA LỚP TỔNG QUÁT - THUẬT TOÁN PHÂN RÃ VÀ TỔNG HỢP 41 2.1 Phân rã mạng hàngđợi tổng quát thành mạng thành phần 42 2.2 Tổng hợp mạng hàngđợi tổng quát theo mạng thành phần 46 2.2.1 Luân chuyển job mạng hàngđợi tổng quát G/G/J bối cảnh job luân chuyển mạng thành phần 47 2.2.2 Xét trường hợp riêng – mạng chập ln chuyển dòng job mạng thành phần 65 2.3 Về mơ hình mạng hàngđợi cụ thể 68 2.3.1 Tập mạng thành phần 69 2.3.2 Dòng job luân chuyển mạng hàngđợi bước n (n≥1) .70 2.4 Xây dựng chương trình tính tốn lưu lượng dòng job luân chuyển iv mạng hàngđợi 72 2.4.1 Nêu toán 73 2.4.3 Sơ đồ khối thuật toán tổng hợp mạng hàngđợi .75 2.4.4 Bộ số liệu thử nghiệm 76 2.4.5 Kết tính tốn lưu lượng dòng job ln chuyển mạng 76 CHƯƠNG ĐÁNH GIÁ QUÁ TRÌNH TRẠNG THÁI CỦA MẠNG HÀNGĐỢIDẠNG TỔNG QUÁT 86 3.1 Trạng thái phương trình chuyển trạng thái mạng 88 3.1.1 Các định nghĩa, ký hiệu .89 3.1.2 Phương trình chuyển trạng thái nút mạng 90 3.1.3 Phân phối xác suất chuyển trạng thái nút mạng .92 3.2 Phân phối tính chất q trình trạng thái 94 3.2.1 Phân phối xác suất trạng thái nút mạng sau bước .94 3.2.2 Phân phối xác suất trạng thái nút mạng sau k bước 96 3.2.3 Điều kiện để trình trạng thái nút mạng mạng hàngđợi Markov 97 3.3 Ứng dụng để tính đặc trưng mạng hàngđợi 107 3.3.1 Trung bình số job có nút mạng .107 3.3.2 Thông lượng nút mạng 107 3.3.3 Xác suất vượt ngưỡng nút mạng 107 3.3.4 Trung bình số job có mạng hàngđợi 108 3.3.5 Thông lượng mạng hàngđợi 108 3.3.6 Một phương pháp phân chia dòng job vào mạng hàngđợi 108 KẾT LUẬN .114 DANH MỤC CƠNG TRÌNH KHOA HỌC ĐÃ CƠNG BỐ 116 TÀI LIỆU THAM KHẢO .117 Phụ lục Ma trận xác suất định tuyến mạng thành phần ma trận xác suất chuyển job nút mạng mạng thành phần……………… P1 Phụ lục Chương trình phần mềm tính tốn lưu lượng dòng job ln chuyển mạng hàngđợi tổng quát…………………………………………… P12 v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Danh mục ký hiệu A(1) Số job thuộc loại từ bên vào nút j khoảng thời j ( n ) : gian [ n−1 , n ] A(2) Số job thuộc loại từ bên vào nút j khoảng thời j ( n ) : gian [ n−1 , n ] Ai(,hj,l ) ( t ) : Biến cố job chuyển từ nút i sang nút j mạng thành phần ( h, l ) thời điểm t Ai , j ( t ) : Biến cố job chuyển từ nút i sang nút j mạng chập thời điểm t aic ( n ) : Lưu lượng dòng job đến nút i mạng thành phần c bước n (n) : Véc tơ lưu lượng dòng job đến nút i mạng hàngđợi c bước n bic ( n ) : Lưu lượng dòng job nút i mạng thành phần c bước n bi (n) : Véc tơ lưu lượng dòng job nút i mạng hàngđợi bước n di ( n ) : Lưu lượng dòng job từ nút i khỏi mạng hàngđợi bước n Ej : Không gian trạng thái nút j L: Tập tất mạng thành phần mạng hàngđợi Li : Tập mạng thành phần có chứa nút i Nj : Kích thước hàngđợi nút j mạng P(t ) : Ma trận xác suất định tuyến mạng chập thời điểm t P c ( n) : Ma trận xác suất định tuyến mạng thành phần c bước n pi , j (t ) : Xác suất định tuyến job chuyển từ nút i sang nút j mạng chập thời điểm t vi pic, j (n) : Xác suất định tuyến job chuyển từ nút i sang nút j mạng thành phần c bước n Qi ( n ) : Ma trận xác suất chuyển trạng thái trình trạng thái nút j thời điểm n Si ( n ) : Ma trận xác suất chuyển job nút i mạng thành phần bước n Sic,d (n) : Xác suất chuyển job nút i từ mạng thành phần c sang mạng thành phần d bước n Si ( n ) : Ma trận xác suất chuyển job nút i bước n sic (n) : Xác suất chuyển job từ nút i mạng thành phần c mạng hàngđợi c bước n si (n) : Véc tơ xác suất chuyển job từ nút i mạng hàngđợi c bước n vic ( n ) : Lưu lượng dòng job từ bên vào mạng thành phần c nút i bước n vi (n) : Véc tơ lưu lượng dòng job từ ngồi mạng hàngđợi vào nút i mạng hàngđợi bước n X ( n ) : Trạng thái mạng hàngđợi thời điểm n X j ( n ) : Số job có nút j thời điểm n gọi trạng thái nút j thời điểm n ij ( n ) : Số job từ nút i chuyển sang nút j thời điểm n Danh mục chữ viết tắt DP: Ưu tiên phục vụ theo chế động (Dynamic Priorities) FCFS: Job vào trước phục vụ trước (First-Come-First-Served) FIFO: Job vào trước trước (First-In-First-Out) GPSS: Hệ thống mô kiện rời rạc, Geoffrey Gordon vii (IBM), phát triển từ năm 1960 (General Purpose Simulation System) HTTP: Giao thức truyền tải siêu văn (HyperText Transfer Protocol) IS: Số lượng server vô hạn (Infinite Server) JMT: Công cụ dùng để mô mạng hàngđợi sử dụng ngơn ngữ lập trình Java (Java Modelling Tools) Job: Cơng việc, Khách hàng (Job) LCFS: Job vào sau phục vụ trước (Last-Come-First-Served) OSI: Mơ hình tham chiếu cho việc kết nối hệ thống mở (Reference model for Open Systems Interconnection) RR: Thời gian phục vụ job hàngđợi phân chia thành đoạn thời gian cuối đoạn thời gian mà job chưa phục vụ xong, job quay hàng chờ để phục vụ tiếp (Round Robin) SIRO: Job lựa chọn phục vụ ngẫu nhiên (Service-In-Random- Order) viii DANH MỤC CÁC BẢNG Trang Bảng 2.1 Chỉ số hóa mạng thành phần……………………………… 69 Bảng 2.2 Lưu lượng dòng job luân chuyển mạng hàngđợi tổng quát 76 Bảng 2.3 Lưu lượng dòng job luân chuyển mạng thành phần…… 77 Bảng 2.4 Lưu lượng dòng job luân chuyển mạng thành phần nút 79 P26 } } } 2.3.6 Modul tính lƣu lƣợng dòng job có mạng thành phần nút private void Tinh_Luu_Luong_Job_Co_Trong_Cac_Nut() { double[,] b1 = new double[J + 1, J * J + 1]; for (int nut_i = 1; nut_i = 0) { DataGridView grid = (DataGridView)tabControlMatranDinhtuyen.TabPages[index_mang].Control s[i]; for (int row = 0; row < grid.Rows.Count; row++) { for (int col = 0; col < grid.Columns.Count; col++) { double value; double.TryParse((grid.Rows[row].Cells[col].Value == null ? "0" : grid.Rows[row].Cells[col].Value.ToString()), out value); if (string.IsNullOrEmpty(value_xac_suat)) value_xac_suat = index_mang.ToString() + "*" + row.ToString() + "*" + col.ToString() + "*" + value.ToString(); P37 else value_xac_suat = value_xac_suat + ";" + index_mang.ToString() + "*" + row.ToString() + "*" + col.ToString() + "*" + value.ToString(); } } } } } richTextBox1.Text = value_xac_suat; richTextBox1.SaveFile(folder + "\\MatranDinhtuyen_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); } 2.5.3 Modul lƣu ma trận xác suất luân chuyển mạng thành phần nút mạng tệp cấu hình private void Save_Ma_Tran_Xac_Suat_Luan_Chuyen_Giua_Cac_mang_Thanh_Phan(string folder) { string value_xac_suat = ""; for (int index_nut = 0; index_nut < tabControlMatranLuanChuyen.TabPages.Count; index_nut++) { for (int i = 0; i < tabControlMatranLuanChuyen.TabPages[index_nut].Controls.Count; i++) { if (tabControlMatranLuanChuyen.TabPages[index_nut].Controls[i].Name.Index Of("MaTranLuanChuyen_Nut") >= 0) { DataGridView grid = (DataGridView)tabControlMatranLuanChuyen.TabPages[index_nut].Contr ols[i]; for (int row = 0; row < grid.Rows.Count; row++) { for (int col = 0; col < grid.Columns.Count; col++) { double value; double.TryParse((grid.Rows[row].Cells[col].Value == null ? "0" : grid.Rows[row].Cells[col].Value.ToString()), out value); if (string.IsNullOrEmpty(value_xac_suat)) value_xac_suat = index_nut.ToString() + "*" + row.ToString() + "*" + col.ToString() + "*" + value.ToString(); else value_xac_suat = value_xac_suat + ";" + index_nut.ToString() + "*" + row.ToString() + "*" + col.ToString() + "*" + value.ToString(); } } } } } richTextBox1.Text = value_xac_suat; P38 richTextBox1.SaveFile(folder + "\\MatranLuanChuyen_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); } 2.5.4 Modul lƣu lƣu lƣợng dòng job từ ngồi vào mạng thành phần tệp cấu hình private void Save_Luu_Luong_Job_Vao_Mang(string folder) { string value_xac_suat = ""; for (int index_nut = 0; index_nut < tabControlLuu_Luong_Dong_Vao.TabPages.Count; index_nut++) { for (int i = 0; i < tabControlLuu_Luong_Dong_Vao.TabPages[index_nut].Controls.Count; i++) { if (tabControlLuu_Luong_Dong_Vao.TabPages[index_nut].Controls[i].Name.In dexOf("MaTranDongVao_Nut") >= 0) { DataGridView grid = (DataGridView)tabControlLuu_Luong_Dong_Vao.TabPages[index_nut].Co ntrols[i]; for (int row = 0; row < grid.Rows.Count; row++) { double value; double.TryParse((grid.Rows[row].Cells[0].Value == null ? "0" : grid.Rows[row].Cells[0].Value.ToString()), out value); if (string.IsNullOrEmpty(value_xac_suat)) value_xac_suat = index_nut.ToString() + "*" + row.ToString() + "*" + value.ToString(); else value_xac_suat = value_xac_suat + ";" + index_nut.ToString() + "*" + row.ToString() + "*" + value.ToString(); } } } } richTextBox1.Text = value_xac_suat; richTextBox1.SaveFile(folder + "\\Luu_Luong_Job_Vao_Mang_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); } 2.6 Các modul mở mạng hàngđợi từ tệp cấu hình 2.6.1 Modul mở mạng hàngđợi từ tệp cấu hình private void button5_Click(object sender, EventArgs e) { folderBrowserDialog1.ShowDialog(); string folder = folderBrowserDialog1.SelectedPath; if (folder != "") { Open_Nut_Mang(folder); P39 Open_Ma_Tran_Xac_Suat_Dinh_Tuyen(folder); Open_Ma_Tran_Xac_Suat_Luan_Chuyen_Giua_Cac_mang_Thanh_Phan(folde r); Open_Luu_Luong_Job_Vao_Mang(folder); } } 2.6.2 Modul load nút mạng hàngđợi từ tệp cấu hình private void Open_Nut_Mang(string folder) { richTextBox1.LoadFile(folder + "\\SoNutMang.dat", RichTextBoxStreamType.RichText); txtSO_NUT.Text = richTextBox1.Text; if (folder != "") { //Khởi tạo tham sốđối tượng thể tham số mạng hàngđợi Khoi_Tao_Cac_Tham_So(); Create_Control_MaTranDinhTuyen(); Create_Control_MaTranLuanChuyen(); Create_Control_Dong_Job_Vao_Mang(); Create_Control_Ketqua_MoPhong_Mang_Thanh_Phan(); Create_Control_Ketqua_MoPhong_NutMang(); } } 2.6.3 Modul load ma trận xác suất định tuyến mạng thành phần từ tệp cấu hình private void Open_Ma_Tran_Xac_Suat_Dinh_Tuyen(string folder) { string value_xac_suat = ""; richTextBox1.LoadFile(folder + "\\MatranDinhtuyen_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); value_xac_suat = richTextBox1.Text; string[] arr_value_xac_suat = value_xac_suat.Split(';'); for (int index = 0; index < arr_value_xac_suat.Length; index++) { string[] row_col_value = arr_value_xac_suat[index].Split('*'); int index_mang = int.Parse(row_col_value[0]); int row = int.Parse(row_col_value[1]); int col = int.Parse(row_col_value[2]); double value = double.Parse(row_col_value[3]); DataGridView grid = (DataGridView)tabControlMatranDinhtuyen.TabPages[index_mang].Controls[0]; if (value > 0) grid.Rows[row].Cells[col].Value = value; else grid.Rows[row].Cells[col].Value = ""; } } 2.6.4 Modul load ma trận xác suất job luân chuyển mạng thành phần nút mạng từ tệp cấu hình P40 private void Open_Ma_Tran_Xac_Suat_Luan_Chuyen_Giua_Cac_mang_Thanh_Phan(string folder) { string value_xac_suat = ""; richTextBox1.LoadFile(folder + "\\MatranLuanChuyen_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); value_xac_suat = richTextBox1.Text; string[] arr_value_xac_suat = value_xac_suat.Split(';'); for (int index = 0; index < arr_value_xac_suat.Length; index++) { string[] row_col_value = arr_value_xac_suat[index].Split('*'); int index_nut = int.Parse(row_col_value[0]); int row = int.Parse(row_col_value[1]); int col = int.Parse(row_col_value[2]); double value = double.Parse(row_col_value[3]); DataGridView grid = (DataGridView)tabControlMatranLuanChuyen.TabPages[index_nut].Controls[0]; if (value > 0) grid.Rows[row].Cells[col].Value = value; else grid.Rows[row].Cells[col].Value = ""; } } 2.6.5 Modul load lƣu lƣợng dòng job từ bên ngồi vào mạng thành phần từ tệp cấu hình private void Open_Luu_Luong_Job_Vao_Mang(string folder) { string value_xac_suat = ""; richTextBox1.LoadFile(folder + "\\Luu_Luong_Job_Vao_Mang_" + J.ToString() + "_nut.dat", RichTextBoxStreamType.RichText); value_xac_suat = richTextBox1.Text; string[] arr_value_xac_suat = value_xac_suat.Split(';'); for (int index = 0; index < arr_value_xac_suat.Length; index++) { string[] row_col_value = arr_value_xac_suat[index].Split('*'); int index_nut = int.Parse(row_col_value[0]); int row = int.Parse(row_col_value[1]); double value = double.Parse(row_col_value[2]); DataGridView grid = (DataGridView)tabControlLuu_Luong_Dong_Vao.TabPages[index_nut].Controls[ 0]; if (value > 0) grid.Rows[row].Cells[0].Value = value; else grid.Rows[row].Cells[0].Value = ""; } } } ... CHƯƠNG MỘT SỐ VẤN ĐỀ CƠ BẢN VỀ LÝ THUYẾT HÀNG ĐỢI VÀ MẠNG HÀNG ĐỢI Hoạt động mạng hàng đợi phụ thuộc vào nhiều tham số đầu vào, có số tham số đầu vào quan trọng dòng job từ bên vào mạng hàng đợi, ... job hàng đợi hàng chờ; trung bình số job có hàng đợi hàng chờ… Định nghĩa 1.13 Hàng đợi gọi hoạt động cân tổng cường độ dòng job vào hàng đợi tổng cường độ dòng job khỏi hàng đợi Một số hàng đợi. .. khỏi mạng hàng đợi Một mạng hàng đợi gọi mạng nửa mở job từ bên mạng hàng đợi vào mạng hàng đợi tổng số job có mạng hàng đợi nhỏ K ( K + số kỹ thuật) job có mạng hàng đợi khỏi mạng hàng đợi Định