Một số dạng hàng đợi và các nguyên lý xử lý

174 5 0
  • Loading ...
1/174 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 26/11/2018, 10:31

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ỘT SỐ DẠNG HÀNG ĐỢI VÀ CÁC NGUYÊN XỬ 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ỘT SỐ DẠNG HÀNG ĐỢI VÀ CÁC NGUYÊN XỬ 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ỘT SỐ VẤN ĐỀ CƠ BẢN VỀ THUYẾT HÀNG ĐỢI MẠNG HÀNG ĐỢI 1.1 Một số 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ột số đạ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 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Ã 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 đồ 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 ĐỢI DẠ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
- Xem thêm -

Xem thêm: Một số dạng hàng đợi và các nguyên lý xử lý, Một số dạng hàng đợi và các nguyên lý xử lý

Từ khóa liên quan

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay