bài giảng môn lý thuyết tính toán - ch3 trò chơi, tìm kiếm vét cạn, độ phức tạp tính toán

18 534 0
bài giảng môn lý thuyết tính toán - ch3 trò chơi, tìm kiếm vét cạn, độ phức tạp tính toán

Đ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

1 Chương 3. TRÒ CHƠI, TÌM KIẾM VÉT CẠN, ĐỘ PHỨC TẠP TÍNH TOÁN NỘI DUNG 3.1 Làm sao để thắng - định nghĩa trò chơi 3.2 Các trò chơi độ phức tạp hàm mũ 3.3 Kỹ thuật rút gọn, máy Turing bất định 3.4 Tính toán nhanh TÀI LIỆU THAM KHẢO 1. Bài giảng về cơ sở tính toán tại địa chỉ http://www.cs.bu.edu/~lnd/toc/ 2. Dexter C. Kozen. Theory of Computation. Springer, 2006 3. Michael Sipser , Introduction to the Theory of Computation, 2nd edition, Couse technology 2005 4.J. V. Neumann, O. Morgenstern. Theory of Game and Economic Behavior, Princeton Univ. Press, 1944 2 3.1. Làm sao để thắng - định nghĩa trò chơi Trong mục này sẽ xét bài toán có lẽ hấp dẫn hơn: trò chơi với thông tin đầy đủ, hai người chơi và tổng 0. Sẽ xét một vài trò chơi đơn giản không có thuật toán hữu hiệu mà phải tìm kiếm vét cạn tất cả các cấu hình cho phép. 3.1.1 Định nghĩa trò chơi Qui tắc của trò chơi n-người G là tập hợp các họ hàm: hàm thông tin f, hàm giá trị v và hàm chuyển (nước đi) r. Mỗi người chơi i  I tại mỗi bước tham gia vào việc chuyển cấu hình (thế của trò chơi) x  C thành cấu hình mới r(x, m), m: I  M bằng cách lựa chọn nước đi m i = m(i) dựa trên những hiểu biết f i (x) của x. Trò chơi được tiếp tục cho đến khi đạt được cấu hình kết thúc t  T C. Hơn nữa, v i (t) là số điểm mất đi hoặc tăng thêm của người chơi thứ i. Trò chơi có tổng không: v i (t) = 0 và thông tin đầy đủ: f i (x) = x, r(x, m) = r’(x, m a(x) ), trong đó a(x) là trỏ đến người chơi có nước đi hiện thời. Giả sử C và M là tập hợp các số nguyên và xét trò chơi thắng-thua hai người chơi. Đặt I = {1}, a(x) = sign(x) và v i (t) = a(t)i. Giả thiết địa điểm chơi luôn giữ nguyên kích thước: r(x, m) = x và có bộ đếm thời gian xác định tại mỗi bước để ngăn ngừa trường hợp vô tận của trò chơi. 3 Các ví dụ trò chơi - Trò chơi cờ : Cờ là trò chơi 2-người chơi với thông tin đầy đủ, nhưng không phải là trò chơi thắng-thua vì có khả năng hai đấu thủ hòa nhau Hình 1: Một thế cờ - Trò chơi bài:Trò chơi bài là trò chơi không có thông tin đầy đủ. Bởi vì trong trò chơi bài, chỉ có một phần thông tin f i (x) (các quân bài trên tay của người chơi thứ i) của thế x là được biết 4 3.1.2 Chiến lược chơi để giành chiến thắng Mỗi người chơi có chiến lược chọn nước đi đối với mỗi thế. Chiến lược S gọi là chiến thắng nếu nó đảm bảo thắng lợi cho người chơi biết nó trong mọi cách chơi của các đối thủ. Có thể mở rộng t trong T thành V trong tất cả các thế có chiến lược chiến thắng cho một bên chơi mà V(x) = max m {a(x)V(r(x, m))}. Định giá hoặc giải trò chơi có nghĩa là tính V. Cho phép chọn nước đi tốt trong một trò chơi mở rộng. Thực chất có thể mở rộng trò chơi G thành G’ bằng cách bổ sung thêm giai đoạn chuẩn bị vào G. Tại giai đoạn chuẩn bị, người chơi A có thể đề nghị thế bắt đầu G, còn đối thủ B lựa chọn phía để chơi. Sau đó, A có thể bắt đầu chơi G hoặc giảm số đếm các thế chưa sử dụng và đề nghị thế khác. Hiển nhiên là B sẽ chiến thắng nếu B có thể xác định được phía thắng trong mỗi thế. Nếu B không thể làm được điều đó và A có thể thì A thắng. Ngoài ra, mỗi trò chơi có thể thay đổi 1 hoặc tối đa 2 = M nước đi. Định giá một trò chơi là có khả năng lựa chọn nước đi đúng. Thế của trò chơi mới gồm có thế x của trò chơi cũ và có thể một phần y của nước đi được mở rộng với các dấu ? trên toàn bộ kích thước của nước đi. Người chơi hiện thời thay thế dấu ? thứ nhất bằng bit tiếp theo của y. Khi tất cả các dấu ? được thay thế hết, thế tiếp theo sẽ được sinh bởi r. Định lý: Mỗi thế của trò chơi đầy đủ thông tin bất kỳ luôn có chiến lược chiến thắng cho một người chơi. Định lý trên không còn đúng với trò chơi có thông tin không đầy đủ. Trò chơi có thể giải được 5 bằng cách thử chơi tất cả các chiến lược có thể. Có 2 n thế với độ dài n  có nn nn 22 2)2(  chiến lược chơi  1 2 2 n n cặp chiến lược cho 2 người chơi. Đối với trò chơi 5-bit là 2 320 . Để chứng minh định lý, đưa ra một chiến lược nhanh (nhưng với thời gian hàm mũ). Chứng minh định lý: - Xây dựng một đồ thị gồm tất cả các thế và các nước đi x-bit. - Tạo V = 0 và tạo lại V = v trong T. - Lặp cho đến hết: nếu V(x) = 0, tạo V(x) = a(x)max m {a(x)V(r(x, m))}. Thủ tục dừng khi V -1 (0) rỗng do hết thời gian hạn định cho trò chơi. - Về nguyên tắc, khó tính được r. Chỉ xét tính được r trong không gian O(x). Sau đó, 2 2x nước đi có thể có thể tính được với thời gian hàm mũ 2 3x . Thuật toán thực hiệ mọi nước đi trong từng bước. Vì vây, tổng thời gian chạy là 2 3x+1 ; tuy cực kỳ chậm (2 313 đối với trò chơi 13 bit) nhưng nhanh hơn rất nhiều so với thuật toán vét cạn (Hàm mũ của hàm mũ thời gian).  Bài tập: Trò chơi vơi que diêm. Cho 3 hộp, mỗi hộp có 3 que diêm: Mỗi người chơi lần lượt một số lượng dương các que diêm trong một hộp bất kỳ. Ngừoi chơi nào đến lượt đi không còn diêm để bốc bị thua. Hãy sử dụng thuật toán nêu trên để định giá toàn bộ các thế và danh sách giá trị sau mỗi chu trình được thực hiện. 6 3.2. Các trò chơi độ phức tạp hàm mũ 3.2.1. Ví dụ trò chơi dừng Xét trò chơi với thông tin đầy đủ: Trò chơi cờ tuyến tính trên dải băng hữu hạn. Mỗi quân cờ luôn là một trong hai phía: W (weak) hoặc S (shy). Mỗi quân cờ được chỉ định giới tính M hoặc F và có cấp bậc trong tập hợp các cấp bậc ; tập hợp này không phụ thuộc vào kích thước dải băng. Toàn bộ W nằm bên trái, còn toàn bộ S nằm bên phải . Toàn bộ các ô của dải băng được lấp đầy. Sự thay đổi chỉ xuất hiện tại ranh giới hoạt động nơi mà W và S gặp nhau (và chiến đấu với nhau). Người chiến thắng trong cuộc chiến đấu được xác định theo qui tắc giới tính như sau: (1) Nếu W và S có cùng giới tính thì W thua cuộc (2) Nếu W và S có giới tính khác nhau thì S bị đảo lộn và thua cuộc. Bên quân cờ A chiến thắng sẽ thay thế quân cờ B thua cuộc bằng một quân cờ C của mình. Việc lựa chọn C bị hạn chế bởi bảng qui tắc là danh sách các bộ ba cho phép (ABC). Ta sẽ thấy rằng, trò chơi này không thể giải được trong thời gian nhỏ hơn hàm mũ. Trước hết ta chứng minh điều đó đối với trò chơi nhân tạo. Sau đó sẽ rút gọn trò chơi dừng này về trò chơi cờ trên dải băng. Ví dụ các phương án trò chơi cờ một chiều: - Phương án của Martin Gardne: Mối người chơi có 3 quân cờ: Vua, Mã và Tháp, sắp xếp như hình 2. Trong đó Vua và Tháp di chuyển như thông thường, còn Mã nhảy 2 ô một và có thể nhảy qua ô có quân khác đang đứng. 7 Hình 2: Bàn cờ của Martin Gardne Xét xem bên trắng có thể luôn luôn thắng hay không? - Phương án của Sid Sackson: Bàn cờ được mô tả như hình 3. Hình 3: Bàn cờ của Sid Sackson Trong phương án này, quân vua và quân tháp có thể hoán đổi vị trí cho nhau về cuối của bàn cờ chỉ một lần duy nhất trong một ván cờ. Xét xem bên trắng có thể luôn luôn thắng hay không? 8 - Phương án của Dam Glimne: Bàn cờ được mô tả như hình 4. Hình 4: Bàn cờ của Dam Glimne Trong phương án này, Vua có thể di chuyển một hoặc hai ô với điều kiện không nhảy qua một quân cờ khác. Quân xe di chuyển như thông thường. Quân Tượng di chuyển qua một số ô tùy ý đến một ô cùng màu và có thể nhảy qua các quân cờ ở ô khác màu. Quân Mã di chuyển qua 2 hoặc 3 ô và có thể nhảy qua quân cờ khác. Quân Hậu di chuyển như quân Xe và như quân Tượng. Xét xem bên trắng có thể luôn luôn thắng hay không? Sử dụng máy Turing phổ dụng u (được định nghĩa như một ô tô mát tế bào 1-con trỏ) với u chỉ dừng khi đầu đọc-ghi của nó lăn ra khỏi tận cùng bên trái của băng vào ô trắng. Bài toán dừng giới nội BHP(x) đơn định nếu u(x) dừng (tức là ô tận cùng bên trái băng được trỏ vào bên trái) trong 2 x bước. Điều đó đòi hỏi (2 x ) bước. Ta chuyển u thành một trò chơi dừng. 9 Các người chơi: L đòi hỏi u(x) dừng sau một khoảng thời gian (và cần có chiến thuật giành chiến thắng nếu có); đối thủ của nó là S. Băng gồm 4 phần (hình 5): một sơ đồ, input cho u, số nguyên dương p ( thế) và t (thời gian thực hiện của u(x)). Sơ đồ biểu diễn trạng thái A của ô p tại thời điểm t+1 và B s , s  {0, 1}, của ô p+s tại thời điểm. A, B bao gồm cả sự điều khiển con trỏ; B có thể tahy thế bởi “?”. Một vài trạng thái của băng có thể phạm luật: (1) hai trạng thái B s chỉ vào cách xa mỗi một, (2) A khác với kết quả được qui định bởi qui tắc chuyển đối với B s , (3) t = 1 trong khi (B s )  x p+s ( Tại t = 1, u(x) ngay lập tức bắt đầu, nhưng băng chứa input x ở bên trái, đầu đọc-ghi trong khởi trạng ở phía cuối với các ô trắng hướng ra bên phải) Hình 5: Hình ảnh của băng Qui tắc của trò chơi: Trò chơi bắt đầu với cấu hình trong hình 6. Hình 6: Cấu hình khởi tạo trò chơi 10 L đi đầu tiên và thay thế các dấu ? bởi các ký hiệu theo đòi hỏi tương ứng trạng thái của ô p+s tại bước t của u(x) (Xem hình 7). Hình 7: Nước đi của L S đi như sau: chọn s, chép B s vào thế của A, điền các dấu ? vào B, cộng s vào p và -1 vào t (Xem hình 8). Hình 8: Nước đi của S Chú ý rằng, L có thể phạm sai lầm (tức là điền vào dấu ? không đúng như tính toán thực tế của u(x)), với điều kiện L luôn kiên định vơi qui tắc nêu trên. S có thể tiến hành kiểm tra hai cấu hình băng liên tiếp. S không thể dựa vào các nước đi trước đây hoặc tính toán thực tế của u(x) như là căn cứ đối với sai lầm của L. [...]... dụng Độ phức tạp là số tổ hợp các bước của tất cả các bộ xử lý Độ phức tạp nhỏ sẽ có giá trị giới hạn bởi đa thức của độ dài input, còn độ phức tạp lớn sẽ có giá trị hàm mũ Ta gọi tính toán hẹp  thời gian hoặc không gian yêu cầu là đa thức Ta gọi tính toán nén  thời gian và không gian đều yêu cầu là đa thức Trong mục 3.4 sẽ thu các quá trình tính toán với thời gian lớn, không gian nhỏ về tính toán. .. xác định người chiến thắng trong trò chơi nhanh (tương tự trò chơi dừng) Vì vậy, các trò chơi nhanh (tức là tính toán kế tiếp hẹp) phù hợp với tính toán tiền định lớn Câu hỏi liên quan: Có phải toàn bộ các thuật toán độ phức tạp hàm mũ (chẳng hạn, giải quyết trò chơi cờ tuyến tính) là tương đương tính toán hẹp? Có hai giả thuyết loại trừ lẫn nhau: có thể giải bài toán dừng giới nội thời gian hàm mũ... bị thay thế Tuy vậy, mỗi thuật toán nhanh giải trò chơi cờ tuyến tính cũng có thể áp dụng để giải các trò chơi khác Do trò chơi dừng đòi hỏi thời gian hàm mũ nên trò chơi cờ tuyến tính cũng thế 13 3.3.2 Cân bằng yêu cầu bộ nhớ và độ phức tạp tính toán  Các tính toán không tiền định với bộ nhớ tuyến tính là các trò chơi trong đó tại mỗi thế có nhiều hơn một nước đi (và tính được dễ dàng) Ta đã biết,... hình tính toán hẹp  Có thể chuyển tính toán hẹp thành tính toán nén? Điều đó tương đương với việc tồn tại thuật toán P-thời gian giải quyết mọi trò chơi nhanh, tức là trò chơi có qui tắc chuyển vị P-thời gian và bộ đếm xác định mỗi nước đi, được giới hạn số lượng các nước đi bởi đa thức Thuật toán trong mục 3.1 có thể cài đặt song song với P-thời gian đối với mỗi trò chơi Ngược lại, mỗi tân từ tính. .. trỏ 4-bước, 8-bước, Nếu máy nhỏ của giáo sư dừng thì nó không lặp cấu hình và phải ổn định trong thời gian < M Tuy nhiên, thủ tục con trỏ-nén sẽ thực hiện logM = O(n logn) bước và chỉ với P-thời gian Thủ tục đó là đầy đủ, chỉ cần thực hiện cấu hình input để kiểm tra và nó sẽ trỏ đến cấu hình kết quả Độ phức tạp (thời gian*không gian) tính toán là rất lớn Đây không phải là cách thức để rút gọn độ phức. .. quả của trò chơi Nó nhắc nhở l và r lần lượt lựa chọn nước đi (trong một vài bước nếu nước đi được xác định bởi một số bit) và tính thế kết quả cho đến khi có người chơi chiến thắng Trước hết ta mô phỏng trò chơi máy Turing bởi L -trò chơi cờ, một phương án của trò chơi cờ tuyến tính Nó sẽ có bàn cờ như hình 9 và giống như cờ, có 6 cấp bậc 12 Hình 9: Bàn cờ tuyến tính Khác với trò chơi cờ tuyến tính, ... kiện trong lược đồ đang xét Mỗi sự kiện có thể tính cùng với các cha của nó Số lượng thực tế các sự kiện là k và có thể lưu trữ đồng thời Do có thể đặt sỏi vào đồ thị với 3n viên sỏi nên có thể giải quyết bài toán với 3n*(i, t, s) Như vậy ta đã chuyển bài toán với không gian lớn, thời gian nhỏ sang bài toán không gian nhỏ, thời gian lớn Tuy nhiên độ phức tạp (không gian*thời gian) vẫn còn lớn 18 ... biết, không có cận dưới siêu tuyến tính chung hoặc cận trên hàm mũ đối với thời gian để xác định kết quả của các trò chơi đó Đó chính là vấn đề cân bằng bộ nhớ và độ phức tạp tính toán Ta đã gặp vấn đề cân bằng khi sử dụng kỹ thuật chương trình động: tiết kiệm thời gian thì phải mở rộng bộ nhớ Ta nhớ lại máy song song: thời gian là số lượng các bước cho đến khi bộ xử lý cuối cùng dừng, không gian chính... mát 1-con trỏ: các ô W ở bên phải, các ô S ở bên trái Đầu đọc-ghi của TM được đặt nước đi trong lúc kết thúc tại cuối băng mà nhữn quân cờ không thua nằm ở bên trái Quá trình chuyển L -trò chơi cờ về trò chơi cờ tuyến tính cho phép thay đổi giới tính , mở rộng cấp bậc, và thay thế mỗi một chuyển vị bởi một vài chuyển vi, với mục đích quân cờ chiến thắng đã được xác định đơn nhất bởi qui tắc giới tính. .. cờ chiến thắng được phép thay thế, trong L -trò chơi cờ, quân cờ chiến thắng cũng có thể thay thế bởi quân cờ (có cùng giới tính) cùng phe; bit giới tính được xác định bởi bít phe trong các bước trước, và một bảng tùy ý phù hợp hơn qui tắc giới tính đơn giản để xác định quân cờ chiến thắng Quá trình mô phỏng sẽ hoàn tất bằng mô tả trò chơi dừng như là tính toán ATM mô phỏng bởi máy Turing phổ dụng . 1 Chương 3. TRÒ CHƠI, TÌM KIẾM VÉT CẠN, ĐỘ PHỨC TẠP TÍNH TOÁN NỘI DUNG 3.1 Làm sao để thắng - định nghĩa trò chơi 3.2 Các trò chơi độ phức tạp hàm mũ 3.3 Kỹ thuật rút. nên trò chơi cờ tuyến tính cũng thế. 14 3.3.2. Cân bằng yêu cầu bộ nhớ và độ phức tạp tính toán  Các tính toán không tiền định với bộ nhớ tuyến tính là các trò chơi trong đó tại mỗi. (tương tự trò chơi dừng). Vì vậy, các trò chơi nhanh (tức là tính toán kế tiếp hẹp) phù hợp với tính toán tiền định lớn.  Câu hỏi liên quan: Có phải toàn bộ các thuật toán độ phức tạp hàm

Ngày đăng: 17/10/2014, 07:30

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan