Ứng dụng luồngcựcđạitoán tối ưu rời rạc Đức Trọng I Bàitoán Xét toán: Trong aij thuộc {0,1} pi nguyên dương i = 1,2, ,m; j = 1,2, ,n Bàitoán mô hình toán học nhiều toán tối ưu tổ hợp thực tế Ví dụ: II Ví dụ Bàitoán phân nhóm sinh hoạt: Có m sinh viên n nhóm sinh hoạt chuyên đề.Với sinh viên i biết: - aij =1, sinh viên i có nguyện vọng tham gia vào nhóm j - aij =0, ngược lại - pi số lượng nhóm chuyên đề mà sinh viên i phải tham dự i=1,2, ,m; j=1,2, ,n Trong số cách phân sinh viên vào nhóm chuyên đề mà họ có nguyện vọng tham gia đảm bảo sinh viên i phải tham gia pi nhóm, tìm cách phân phối với số người nhóm có nhiều sinh viên tham gia nhỏ Đưa vào biến số: xij =1, sinh viên i tham gia vào nhóm j xij = 0, ngược lại i=1, 2, ,m ; j=1, 2, ,n, dễ thấy mô hình toán học cho toán đặt toán (1)-(2) Bàitoán lập lịch cho hội nghị: Một hội nghị có m tiểu ban, tiểu ban cần sinh hoạt ngày phòng họp phù hợp với Có n phòng họp dành cho việc sinh hoạt tiểu ban Biết: - aij =1, phòng họp i thích hợp với tiểu ban j - aij =0, ngược lại i=1, 2, ,m, j=1, 2, ,n Hãy bố trí phòng họp cho tiểu ban cho hội nghị kết thúc sau ngày làm việc Đưa vào biến số : xij = 1, bố trí tiểu ban i làm việc phòng j xij = 0, ngược lại i=1, 2, ,m ; j=1, 2, ,n, dễ thấy mô hình toán học cho toán đặt toán (1)-(2), pi =1, i=1, 2, ,m III Cơ sở thuật toán Bổ đề 1: Bàitoán (1)-(2) có nghiệm tối ưu khi: Chứng minh: Điều kiện cần hiển nhiên tồn phương án toán suy bất đẳng thức (3) thực dạng dấu đẳng thức Điều kiện đủ: Chỉ cần có (3) có phương án Giả sử (3) đúng, gọi: Do (3) điều kiện để (1)-(2) có nghiệm nên phần ta giả thiết điều kiện thực hiên Bây ta toán (1)-(2) chuyển giải số hữu hạn toánluồngcựcđại mạng Trước hết với k nguyên dương ta xây dựng mạng G (k) = (V,E) với e thuộc E: khả thông qua c(e) c(s,ui) = pi c(ui,vj) = aij c(vj,t) = k Bổ đề 2: Giả sử với k luồngcựcđại mạng G(k) có giá trị Δ x* với x*ij = Φ (ui,vj) phương án toán (1)-(2) Φ (ui,vj) luồng qua (ui,vj) Chứng minh: Thật vậy, luồngcựcđại mạng có giá trị Δ nguyên nên Φ(s,ui) = pi Φ(ui,vj) thuộc {0,1} với i=1,2, ,m;j=1,2, ,n Vậy x* phương án toán (1)-(2) (đpcm) Bổ đề 3: Giả sử x* phương án tối ưu k* giá trị tối ưu toán (1)-(2) luồngcựcđại G(k*) có giá trị Δ Chứng minh: Do giá trị luồngcựcđại mạng G(k*) không vượt qu Δ, nên để chứng minh bổ đề ta cần luồng với giá trị Δ mạng G (k*) Ta xây dựng luồng Φ sau: Dễ dàng chứng minh Φ luồng mạng G(m) có giá trị Δ.(đpcm) Bổ đề 4: Nếu k=m luồngcựcđại mạng G(m) có giá trị Δ Chứng minh: Lập luận tương tự bổ đề ta cần luồng với giá trị Δ mạng G (m) Thật vậy, giả sử x* nghiệm toán (1)-(2) xây dựng theo công thức bổ đề 1, xây dựng Φ theo bổ đề ta có luồng giá trị Δ.(đpcm) IV Thuật toán: Từ nhận xét suy việc giải toán (1)-(2) tìm k* nguyên dương nhỏ cho luồngcựcđại mạng G(k*) có giá trị Δ Nhận xét giới hạn giá trị k* thuộc [1,m] Từ rút thuật toán: áp dụng phương pháp chia nhị phân đoạn [1,m] tìm k* bước giải toán tìm luồngcựcđại V Chương trình Input: file văn INPUT.TXT - Dòng 1: Chứa số m,n (m,n