1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN-MÔN-CẤU TRÚC DỮ LIỆU đề tài bố trí phòng họp

22 2,1K 8

Đ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

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 325,77 KB

Nội dung

LOGO TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM KHOA CÔNG NGHỆ THÔNG TIN LỚP TIN HỌC KHÓA 35 BÁO CÁO BÀI TẬP LỚN MÔN: CẤU TRÚC DỮ LIỆU 2 GVHD: ThS. NGUYỄN THỊ BÍCH NGÂN THỰC HIỆN: NHÓM 25 NGUYỄN NGỌC NHẤT LINH ĐINH VĂN QUYÊN ĐỀ BÀI  Tên đề bài: Bố trí phòng họp.  Mô tả: Có n cuộc họp, cuộc họp thứ i bắt đầu vào thời điểm si và kết thúc ở thời điểm fi. Do chỉ có một phòng hội thảo nên 2 cuộc họp bất kì sẽ được cùng bố trí phục vụ nếu khoảng thời gian làm việc của chúng chỉ giao nhau tại đầu mút. Hãy bố trí phòng họp để phục vụ được nhiều cuộc họp nhất. 2 PHÂN TÍCH BÀI TOÁN  Giả sử ta có một tập S = {1, 2, …, n} gồm n cuộc họp nhưng chỉ có 1 phòng hội thảo nên chỉ có thể được dùng cho một cuộc họp tại một lúc.  Mỗi cuộc họp i có thời điểm bắt đầu si và một thời điểm kết thúc fi, mà si ≤ fi. Nếu được lựa chọn, cuộc họp i diễn ra trong thời khoảng [si, fi). Cuộc họp i và j là tương thích nếu thời khoảng [si, fi) và [sj, fj) không phủ lấp lên nhau (tức là, i và j là tương thích nếu si >= fj hay sj >= fi). MĐFBM HDJF HJFD JDKF 3 PHÂN TÍCH BÀI TOÁN 4 CuỘC HỌP 1 CuỘC HỌP 2 CuỘC HỌP 3 S1 S2 S3F1 F3 F2 Khởi tạo: A={1} S2<F1  không chọn cuộc họp 2 S3>F1  chọn cuộc họp 3. A={1;3} GIẢI THUẬT SƠ BỘ  Trong thủ tục áp dụng giải thuật tham lam để giải bài toán bố trí cuộc họp, ta cần phải sắp các cuộc họp theo thứ tự tăng của thời điểm kết thúc: f1 ≤ f2 ≤ … ≤ fn. procedure MEETING-SELECTOR(S, f) ; /* S là mảng giữ thời điểm bắt đầu và f là mảng giữ thời điểm kết thúc */ begin n := length[s]; A := {1}; i: = 1; for j: = 2 to n do if sj >= fi then /*i tương thích với mọi cuộc họp trong A */ begin A: = A ∪ {j}; i: = j end end 5 TỔ CHỨC DỮ LIỆU int s[MAX];//lưu thời gian bắt đầu cuộc họp int f[MAX];//lưu thời gian kết thúc cuộc họp char *name[MAX];//Lưu tên khoa có cuộc họp int luu[MAX];//Lưu cuộc họp đã xếp lịch int n;//số cuộc họp có thể có int dem=0;//lưu tổng số cuộc họp hiện tại đã được bố trí 6 CÁC HÀM CHÍNH void nhapDuLieuCuocHop(); void sapXep();//sắp xếp tăng theo thời gian kết thúc void boTriLichHop(); void xuatLichHop(); 7 HÀM BỐ TRÍ LỊCH HỌP void boTriLichHop() { //dem=0; luu[dem]=0; for(int i=1; i<n; ++i) { if(s[i]>=f[luu[dem]]) { dem++; luu[dem]=i; } } } 8 THÍ DỤ 9 i si fi 1 1 3 2 5 7 3 8 10 4 6 11 5 11 14 6 15 17 7 17 19 8 19 26 9 23 25 10 24 29 NHẬN XÉT  Giải thuật tham lam áp dụng vào bài toán lựa chọn một khả năng tối ưu cục bộ với hy vọng sẽ dẫn đến một lời giải tối ưu toàn cục.  Giải thuật không nhất thiết đem lại lời giải tối ưu. Tuy nhiên thủ tục void boTriLichHop() ở trên thường tìm được một lời giải tối ưu cho một thể hiện của bài toán bố trí phòng họp. 10 [...]... KHÁC…  Giả sử dãy cuộc họp đã được sắp xếp tăng dần theo thời gian kết thúc  Hàm mục tiêu : y = độ dài dãy cuộc họp được sắp  Gọi L(i) là độ dài dãy cuộc họp được sắp dài nhất, các phần tử lấy trong miền từ 1 đến i và phần tử cuối cùng là i 1 2 3 … i i+1 Dãy cuộc họp PP QUY HOẠCH ĐỘNG  Nhận xét: Với cách làm này ta đã chia 1 bài toán lớn (dãy con của n cuộc họp) thành các bài toán con cùng kiểu... dụng những bài toán con trùng lắp bằng cách giải mỗi bài toán con một lần, cất lời giải vào trong một bảng mà bảng này sẽ được tham khảo đến khi cần  Giải thuật Quy hoạch động sẽ đưa ra một lời giải tối ưu hơn so với giải thuật Tham lam Tuy nhiên, giải thuật Quy hoạch động thường có độ phức tạp không dưới O(n2) nên khi không gian bài toán lớn thì thời gian chạy là không thể chấp nhận được TÀI LIỆU THAM... tử đang được xét là i Ta tìm đến phần tử j có fj . PHẠM TPHCM KHOA CÔNG NGHỆ THÔNG TIN LỚP TIN HỌC KHÓA 35 BÁO CÁO BÀI TẬP LỚN MÔN: CẤU TRÚC DỮ LIỆU 2 GVHD: ThS. NGUYỄN THỊ BÍCH NGÂN THỰC HIỆN: NHÓM 25 NGUYỄN NGỌC NHẤT LINH ĐINH VĂN QUYÊN ĐỀ BÀI  Tên. A ∪ {j}; i: = j end end 5 TỔ CHỨC DỮ LIỆU int s[MAX];//lưu thời gian bắt đầu cuộc họp int f[MAX];//lưu thời gian kết thúc cuộc họp char *name[MAX];//Lưu tên khoa có cuộc họp int luu[MAX];//Lưu. được dãy cuộc họp được sắp dài nhất xét từ 0 đến i. 13 TỔ CHỨC DỮ LIỆU  s[MAX], f[MAX], *name[MAX], n, luu[MAX] giống như khai báo ở trên  int truoc[MAX];//truoc[i] luu chi so cua cuoc hop

Ngày đăng: 17/05/2015, 11:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w