Giải bài toán luồng cực đại (Max Flow) trên Excel và Matlab

20 422 2
Giải bài toán luồng cực đại (Max Flow) trên Excel và Matlab

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo Thí Nghiệm Kỹ Thuật Ra Quyết Định: Giải Bài Toán Luồng Cực Đại (Max Flow)Trên Excel Và Matlab.Trình bày đầy đủ các bước giải bài toán max flow bằng thuật toán đánh nhãn, các bước thực hiện trên Excel và Matlab.Giải các ví dụ thực tế trên công cụ Excel và Matlab, sau đó kiểm chứng và nhận xét kết quả của 2 cách giải này

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BÁO CÁO THÍ NGHIỆM KỸ THUẬT RA QUYẾT ĐỊNH BÀI 3: GIẢI BÀI TOÁN LUỒNG CỰC ĐẠI BẰNG EXCEL MATLAB GVHD: Th.S Hồ Thanh Phương Nhóm: Họ tên Mã số sinh viên TP.HCM, Tháng Năm 2018 MỤC LỤC I Phương pháp giải toán luồng cực đại (Max Flow):………………………….… II Các bước thực giải toán max flow Excel Matlab:……… Các bước giải Excel:…………………………………………………………………………2 Các bước giải Matlab: ……………………… ……………………………………………5 III Một số ví dụ kết quả: ………………………………………………………………………………8 Ví dụ 1: ……………………………………………………………………………………… ………………8 Ví dụ 2: ……………………………………………………………………………………… ……………11 Ví dụ 3: ……………………………………………………………………………….………………………14 I Phương pháp giải toán luồng cực đại (Max Flow): Mục đích tốn max flow tìm lưu lượng tối đa cho phép nút nguồn (source) nút đích (sink) Thuật tốn để giải tốn max flow bao gồm bước sau:  Bước 1: Bắt đầu với luồng khả thi;  Bước 2: Sử dụng quy trình đánh nhãn để tìm đường tăng luồng;  Bước 3: Xác định giá trị δ lớn cho luồng tăng cực đại tất cung tới (forward arcs) cho luồng giảm cực đại tất cung lùi (backward arcs)  Bước 4: Tiếp tục sử dụng quy trình đánh nhãn để tìm đường tăng luồng Nếu khơng tồn đường đến kết luận Ngược lại, tồn đường tăng luồng quay lại bước Quy trình đánh nhãn (Labeling Procedure): + Bước 1: Bắt đầu với nút s (nút nguồn); + Bước 2: Nút nhãn j cho nút i đánh nhãn khi: i) Hoặc tồn arc(i,j) – cung (i, j) fij < kij ii) Hoặc tồn mội arc(j,i) – cung (j, i) fij > + Bước 3: Nếu j = t dừng, ngược lại quay lại bước fij: lưu lượng arc(i,j); kij: lưu lượng cực đại hay sức chứa tối đa arc(i,j) II Các bước thực giải toán max flow Excel Matlab: Xét ví dụ sau: SA A C B T D E Tìm luồng cực đại (max flow) từ nút S đến nút T Các bước giải Excel: Dựa vào luồng ta có cung (arc) sau: SA, SB, SC, AC, AD, BC, BE, CD, CE, CT, DT, ET Tiến hành thiết kế Excel sau: Cột Flow từ ô D3 đến ô D14 lưu lượng chảy qua cung đường tương ứng (From – To) cần tìm Lưu lượng ln ≤ giá trị tương ứng cột Capacity, sức chứa tối đa cung đường (arc) Ta gộp từ B3 đến B14 đặt tên From (như hình trên), tương tự cho ô C3 đến ô C14 đặt To, gộp từ ô D3 đến ô D14 đặt tên Flow từ ô F3 đến F14 Capacity Hàm SUMIF làm hàm tính tốn lưu lượng nút luồng Tại ô I3 nhập =SUMIF(From,H3,Flow) với H3 có giá trị S Tại I4 nhập =SUMIF(From,H4,Flow)-SUMIF(To,H4,Flow), click chuột phải chọn Copy (hoặc ctrl + V) kéo chuột từ ô I4 đến ô I8 để thay giá trị H4 H5, H6, H7, H8 cho ô I5, I6, I7, I8 tương ứng Cuối cùng, ô I9 nhập =-SUMIF(To,H9,Flow) Cột Supply/Demand, từ ô K4 đến ô K8 nhập giá trị Hàng Max Flow, ô I11 nhập =I3, kết luồng cực đại cần tìm Cấu hình cơng cụ Solver Parameters sau:  Set Objective: $I$11  To: tích chọn Max  By Changing Variable Cells: Flow  Subject to the Constraints: $I$4:$I$8 = $K$4:$K$8 Flow

Ngày đăng: 15/08/2018, 17:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan