1. Trang chủ
  2. » Công Nghệ Thông Tin

BÀI TẬP LỚN MÔN HỌC PHÂN TÍCH ĐÁNH GIÁ THUẬT TOÁN pptx

7 777 5
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 192,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sắp xếp n cái áo theo chiều không giảm của kích cỡ vai, sắp xếp các học sinh theo chiều không giảm của kích cỡ vai.. Trường hợp 5 Trong đó  Mav: Là giá trị lớn nhất của vai áo  Miv: Là

Trang 1

MỤC LỤC

I Bài toán (Đề 24) 2

II Phân tích bài toán 2

III Xây dựng giải thuật 5

1) Tư tưởng giải thuật 5

2) Phương án thực hiện 5

IV Đánh giá giải thuật xây dựng được 7

Trang 2

BÀI TẬP LỚN MÔN HỌC PHÂN TÍCH ĐÁNH GIÁ THUẬT TOÁN

I Bài toán (Đề 24)

Người ta may sẵn n cái áo với các kích thước vai V(1), V(2), …, V(n) cho

n học sinh Các học sinh này được đánh số từ 1 tới n và có kích thước vai là p(1), p(2), …, p(n) Nếu học sinh i được nhận áo j thì độ lệch vai cho trường hợp này sẽ là |V(i)-p(j)| Một phương án phân phối áo cho các học sinh 1, 2, n

được mô tả như một hoán vị p1, p2, , pn với hàm ý học sinh i nhận được áo p i

Độ lệch của phương án này được định nghĩa bằng

max {|V(i) – p(pi )|, i=1,2, ,n}

II Phân tích bài toán

Không mất tính tổng quát ta giả sử:

 Các cỡ vai áo đôi một khác nhau

 Các cỡ vai của học sinh đôi một khác nhau

Sắp xếp n cái áo theo chiều không giảm của kích cỡ vai, sắp xếp các học sinh theo chiều không giảm của kích cỡ vai Sử dụng đồ thị với đường nét đậm biểu thị giá trị kích cỡ vai áo, đường nét mảnh biểu thị kích cỡ vai của học sinh

Ta có các trường hợp sau có thể xảy ra:

 Trường hợp 1:

Trường hợp 1

* Miv<Mip<Mav<Map

* |Mip-Miv| > |Map-Mav|

Mav

Mip

Miv

Size

Map

Trang 3

 Trường hợp 2:

Trường hợp 2

* |Miv<Mip<Mav<Map|

* |Mip-Miv| < |Map-Mav|

 Trường hợp 3:

Trường hợp 3

 Trường hợp 4:

Trường hợp 4

 Trường hợp 5: Là trường hợp suy biến của các trường hợp trên

Map

Mav

Mip

Miv

Size

Mav

Map

Mip

Miv

Size

Map

Mav

Miv

Mip

Size

Trang 4

Trường hợp 5 Trong đó

 Mav: Là giá trị lớn nhất của vai áo

 Miv: Là giá trị nhỏ nhất của vai áo

 Map: Là kích thước lớn nhất của vai học sinh

 Mip: Là kích thước nhỏ nhất của vai học sinh

Nhận xét rằng trong khi đổi vai trò của áo và học sinh ta sẽ được các trường hợp tương tự

Từ các tình huống trên ta dự đoán một phương án phân phát áo cho học sinh như sau:

 Sắp xếp n học sinh theo thứ tự không giảm của kích thước vai, đánh

số từ 1 đến n theo thứ tự đó (1)

 Sắp xếp n cái áo theo thứ tự không giảm của kích thước vai, đánh

số từ 1 đến n theo thứ tự đó (2)

 Lần lượt phát áo cho học sinh theo quy tắc: Học sinh thứ 1 được

nhận áo thứ 1… Học sinh thứ n nhận áo thứ n (3)

Rõ ràng phương án phân phối áo như trên là thoả mãn yêu cầu đầu bài, với

độ lệc có thể là |Mip-Miv| hoặc |Map-Mav| tuỳ từng trường hợp Như vậy chúng

ta có thể tìm ra một lời giải cho bài toán theo cách trên Nhưng giải thuật này có những hạn chế là:

 Một là: Việc sắp xếp học sinh và áo theo một trật tự nào đó là một vấn đề khó khăn và tốn kém (O(n2)) Giả sử ta phải phân phối khoảng 10000 chiếc áo cho 10000 học sinh Thông thường để sắp xếp học sinh và áo như trên chúng ta thường dùng phương pháp sắp xếp chèn hoặc chọn Khi đó, trường hợp xấu nhất ta phải dùng đến 10000(10000-1) phép duyệt qua các phần tử (Học sinh và áo) chưa

Map

Mav

Miv

Mip

Size

Trang 5

kể thao tác chèn và phân phối áo cho học sinh 49995000 phép duyệt Giả sử mỗi phép duyệt mất ½ giây ta sẽ mất xấp xỉ 578 ngày (Hơn một năm rưỡi) cho 1 người thực hiện việc này

 Hai là: Một học sinh i không nhất thiết phải nhận được áo i mà có thể nhận một cái áo j bất kỳ nào đó miễn là độ lệch |V(j)-P(i)| không vượt quá độ lệch của phương án Như vậy việc sắp xếp tất cả các phần tử áo vào học sinh sẽ là không cần thiết trong đa số các trường hợp của dữ liệu đầu vào

 Ba là: Phải sắp xếp cả hai dãy

 Từ những nhận xét trên chúng ta nghĩ đến việc phân nhóm học sinh, phân nhóm áo sao cho một học sinh bất kỳ trong nhóm học sinh có thể nhận bất kỳ một cái áo nào trong nhóm áo tương ứng mà độ lệch không vượt quá độ lệch của phương án Trong đó các học sinh và áo trong các nhóm này không nhất thiết phải được sắp xếp Với tư tưởng này, bài toán của chúng ta bây giờ sẽ trở thành:

 Xác định độ lệch nhỏ nhất của các phương án thoả mãn đầu bài

Mà theo nhận xét trên, độ lệch này có thể là là |Mip-Miv| hoặc | Map-Mav| Tương đương với việc tìm phần tử lớn nhất và nhỏ nhất cho mỗi dãy kích cỡ vai học sinh và dãy kích cỡ vai áo

 Xác định giá trị kích thước vai học sinh (vai áo) làm tiêu trí để phân nhóm

III Xây dựng giải thuật

Tìm cách phân các cái áo và học sinh vào cùng một nhóm sao cho học một học sinh bất kỳ trong nhóm có thể được phân phối bất kỳ một áo nào trong nhóm

mà độ lệch không vượt quá độ lệch của d phương án

Ở đây tôi chỉ đi phân tích và xây dựng giải thuật cho trường hợp 1 khi Miv

Mip Mav Map Các trường hợp khác tương tự

 B1: Tìm các giá trị Mav, Map, Miv, Mip Trong đó

* Mav - Là giá trị lớn nhất của vai áo

Trang 6

* Miv - Là giá trị nhỏ nhất của vai áo

* Map - Là kích thước lớn nhất của vai học sinh

* Mip - Là kích thước nhỏ nhất của vai học sinh

 Tìm Mav, Map, Miv, Mip Giải thuật tìm cỡ lớn nhất và bé nhất này

có độ phức tạp O(n) Thực tế có số phép duyệt là 2n.

 Tập các phương án thoả mãn đầu bài sẽ có độ lệch là d=Map-Mav

 Ta sẽ đi tìm một phương án trong tập này

 B2: Phân nhóm

 Nhận thấy rằng việc phân nhóm phải thoả mãn yêu cầu sau:

* Độ lệch giữa kích cỡ vai áo nhỏ nhất và kích cỡ vai học sinh lớn nhất trong nhóm (thực chất là 2 nhóm áo và học sinh có thể ghép đôi với nhau) không vượt quá d

* Độ lệch giữa kích cỡ vai học sinh nhỏ nhất và kích cỡ vai áo lớn nhất cũng không vượt quá d

* Số lượng cái áo và học sinh trong cùng nhóm phải bằng nhau

 Nhóm thứ i sẽ chứa cái áo có kích cỡ bé Mivi (có thể được xác định nhờ bước xác định đoạn trước), chứa học sinh có cỡ vai lớn nhất là Mapi = Mivi+d Chứa học sinh có cỡ vai bé nhất Mipi (có thể được xác định nhờ bước xác định đoạn trước) Vấn đề ở đây là xác định kích cỡ lớn nhất Mavi của những cái áo trong đoạn này Mavi có thể được xác định bằng cách duyệt hết các cái áo chưa được phân nhóm xem cỡ vai của cái áo nào gần với cỡ vai Mapi nhất nhưng vẫn nhỏ hơn Mapi thì đó chính là Mavi

Mav

Mip

Miv

Size

Map

d d d

Trang 7

IV Đánh giá giải thuật xây dựng được

Ta vẫn chỉ xét trường hợp 1 Miv Mip Mav Map

 Với giải thuật xây dựng như trên ta có một số nhận xét sau

 Với d=Map-Mav

 Khi d=0 sẽ suy biến sang trường hợp 5 nhưng lúc này hai đường trùng nhau, tức là với mỗi học sinh ta đều tìm được một cái áo có cùng cỡ vai (Vì ta đa giả thiết các cỡ vai áo đôi một khác nhau và

cỡ vai của học sinh đôi một khác nhau) Giải thuật này không có lời giải Ta phải thực hiện giải thuật như ở phần II hoặc giải thuật tương đương với số phép duyệt là (n-1)n (O(n2))

 Khi d=1 Giải thuật có lời giải nhưng với số phép duyệt là (n-1)n (O(n2))

 Khi d > 1 Giải thuật có lời giải với phép duyệt càng nhỏ khi d càng lớn

Ngày đăng: 02/08/2014, 02:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w