thuat giai heuristic

27
1 THUẬT GIẢI HEURISTIC Giảng viên: ThS. Đào Quốc Thắng Khoa Công nghệ thông tin Trường ĐH Ngân hàng Tp HCM CHUYÊN ĐỀ BỒI DƯỠNG ĐỘI TUYỂN OLYMPIC TIN HỌC

Upload: vandai88

Post on 28-Nov-2015

132 views

Category:

Documents


0 download

DESCRIPTION

Thuat giai Heuristic

TRANSCRIPT

Page 1: Thuat giai Heuristic

1

THUẬT GIẢI HEURISTIC

Giảng viên: ThS. Đào Quốc Thắng

Khoa Công nghệ thông tin

Trường ĐH Ngân hàng Tp HCM

CHUYÊN ĐỀ BỒI DƯỠNG ĐỘI TUYỂN OLYMPIC TIN HỌC

Page 2: Thuat giai Heuristic

2

Nội dung

Khái niệm “Thuật toán” và “Thuật giải”

Thuật giải Heuristic

Một số ví dụ ứng dụng

Bài tập

Page 3: Thuat giai Heuristic

3

Khái niệm “Thuật toán” và “Thuật giải”

Quan điểm lập trình cấu trúc

Algorithm + Data structure

= Program

Thuật toán: dãy hữu hạn các bước không mập mờ và có thể thực hiện được, quá trình hành động theo các bước này phải dừng và cho kết quả như mong muốn.

Page 4: Thuat giai Heuristic

4

Các tính chất cơ bản của thuật toán

Xác định.

Hữu hạn.

Tính đúng.

Page 5: Thuat giai Heuristic

5

Hạn chế

Có nhiều bài toán cho tới nay vẫn chưa xây dựng được thuật toán.

Có bài toán xây dựng được thuật toán song không thể áp dụng được do không đủ tài nguyên để cung cấp.

Có thể giải quyết một số bài toán theo những cách khác, thường cho kết quả tốt và thực hiện dễ dàng hơn so với thuật toán.

Page 6: Thuat giai Heuristic

6

Thuật giải

Các cách giải chấp nhận được nhưng không hoàn toàn đáp ứng đầy đủ các tiêu chuẩn của thuật toán.

Page 7: Thuat giai Heuristic

7

2. Thuật giải Heuristic

Là sự mở rộng của thuật toán với các đặc tính:

Thường cho lời giải tốt (nhưng không chắc là tốt nhất).

Cho phép giải quyết bài toán một cách nhanh chóng, dễ dàng.

Thể hiện tự nhiên, gần gũi với suy luận của con người.

Page 8: Thuat giai Heuristic

8

Các nguyên lý cơ sở của thuật giải Heuristic

Nguyên lý tham lam (nguyên lý Greedy).

Nguyên lý thứ tự.

Nguyên lý hướng đích (hàm Heuristic).

Nguyên lý vét cạn.

Page 9: Thuat giai Heuristic

9

Nguyên lý tham lam

Lấy tiêu chuẩn tối ưu toàn cục (đặt ra cho bài toán) làm tiêu chuẩn chọn lựa hành động cục bộ (từng bước/từng giai đoạn thực hiện).

Page 10: Thuat giai Heuristic

10

Nguyên lý hướng đích (Hàm Heuristic)

Các hàm đánh giá thô, giá trị phụ thuộc vào trạng thái hiện tại của bài toán tại một bước giải, cho phép chọn lựa hành động một cách hợp lý trong từng bước của thuật giải.

Page 11: Thuat giai Heuristic

11

Nguyên lý vét cạn

Bài toán tìm kiếm: cố gắng hạn chế không gian tìm kiếm hoặc sử dụng một kiểu dò tìm đặc biệt dựa vào đặc thù riêng của bài toán để nhanh chóng đi tới mục tiêu.

Page 12: Thuat giai Heuristic

12

3. Một số ví dụ ứng dụng

Bài toán hành trình ngắn nhất: ứng dụng nguyên lý Greedy

Bài toán phân việc: ứng dụng nguyên lý thứ tự

Bài toán tô màu bản đồ: ứng dụng nguyên lý thứ tự

Bài toán Ta-canh: ứng dụng hàm Heuristic

Page 13: Thuat giai Heuristic

13

Bài toán hành trình ngắn nhất

Một người bán hàng mỗi ngày phải đem hàng từ công ty đến giao cho các đại lý trong thành phố, rồi sau đó quay trở lại vị trí xuất phát (về lại công ty). Giả sử giữa mỗi cặp điểm (công ty/đại lý) đều tồn tại một đường đi trực tiếp. Hãy tìm con đường đi ngắn nhất sao cho mỗi đại lý chỉ được đi qua đúng 1 lần.

Page 14: Thuat giai Heuristic

14

Ví dụ minh họa

1

2

4

5

3

1

5 2

1

5

3

2

1

5

4 3

2

1

5

1

2

3

5 7

4

3

2 4

1

Page 15: Thuat giai Heuristic

15

Bài toán phân việc

Một công ty nhận hợp đồng gia công n chi tiết máy J1, J2, …Jn. Công ty có m máy công cụ P1, P2, …Pm, trong đó mỗi chi tiết máy đều có thể gia công trên bất kỳ máy nào, một khi đã gia công một chi tiết máy thì không thể ngưng giữa chừng.

Page 16: Thuat giai Heuristic

16

Ví dụ

Giả sử thời gian cần thiết để gia công mỗi chi tiết Ji là Ti, hãy phân công công việc trên các máy để thời gian thực hiện hợp đồng là ngắn nhất.

VD 1: m=3, n=5, T1=2, T2=5, T3=8, T4=1, T5=5.

VD 2: m-2, n=5, T1=3, T3, T4=2, T5=2.

Page 17: Thuat giai Heuristic

17

Bài toán tô màu bản đồ

Cho một bản đồ n vùng, hãy tô màu các vùng sao cho mỗi cặp 2 vùng lân cận phải được tô bằng 2 màu riêng biệt và số màu được sử dụng là ít nhất.

Page 18: Thuat giai Heuristic

Ví dụ: Tô màu bản đồ

18

6

5

2

1

3

8

9

7 4

Page 19: Thuat giai Heuristic

19

Bài toán Ta-canh (trò chơi 9-puzzle)

Cho hình vuông kích thước 3x3 với 9 ô chứa 1 trong 8 con số 1, 2, …, 8 và 1 ô để trống. Hãy di chuyển ô trống sao cho các ô số được sắp xếp theo thứ tự tứ 1 đến 8.

Page 20: Thuat giai Heuristic

20

Ví dụ minh họa

3 1 4

7 6

8 2 5

1 2 3

4 5 6

7 8

Page 21: Thuat giai Heuristic

4. Bài tập

21

Bài tập 1

Bài tập 2

Bài tập 3

Page 22: Thuat giai Heuristic

Bài tập 1

22

Cho n loại tiền với các mệnh giá m1, m2, …, mn khác nhau, trong đó có một loại tiền có mệnh giá bằng 1. Hãy biểu diễn số tiền N bằng các loại tiền trên sao cho số tờ tiền sử dụng là ít nhất.

Page 23: Thuat giai Heuristic

Dữ liệu thử nghiệm

n = 4, m1 = 5, m2 = 10, m3 = 2, m4 = 1, N = 89.

n = 4, m1 = 7, m2 = 10, m3 = 3, m4 = 1, N = 89.

n = 4, m1 = 6, m2 = 10, m3 = 4, m4 = 1, N = 89.

23

Page 24: Thuat giai Heuristic

Bài tập 2

24

Cho n container cùng loại và k đồ vật có khối lượng lần lượt là m1, m2 ,…, mk. Giả sử có thể xếp hết toàn bộ các đồ vật trên vào các container, hãy tìm cách sắp xếp sao cho chênh lệch khối lưởng giữa các container là nhỏ nhất.

Lặp lại bài toán trên cới đk bổ sung: số lượng đồ vật trong mỗi container < l với k < n*l.

Page 25: Thuat giai Heuristic

Dữ liệu thử nghiệm

n = 3, k = 10, mi = 5,4, 6, 1, 3, 2, 7, 10, 9, 4 với i = 1, 2, … k, l = 4.

n = 3, k = 10, mi = 2, 3, 1, 2, 1, 1, 2, 20, 10, 4 với i = 1, 2, … k, l = 4.

25

Page 26: Thuat giai Heuristic

Bài tập 3

26

Cho n xe tải với tải trọng C1, C2, …, Cn và k thùng hàng với khối lượng lần lượt là m1, m2 ,…, mk, m1+ m2 +…+ mk,> C1 + C2 + …+ Cn. Hãy tìm cách sắp xếp các thùng hàng trên lên xe sao cho tổng lượng hàng sắp xếp được là nhiều nhất.

Page 27: Thuat giai Heuristic

Dữ liệu thử nghiệm

n = 3, C1= 10, C2, = 5, C3 = 8, k = 12, mi = 5, 1, 7, 3, 1, 2, 2, 4, 1, 3, 4, 1 với i = 1, 2, … k.

n = 3, C1= 10, C2, = 5, C3 = 8, k = 12, mi = 2, 1, 8, 3, 2, 3, 1, 4, 3, 1, 4. 5 với i = 1, 2, … k.

27