Đị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.. Một vài trạng thái của băng có thể phạm luật: 1 hai trạng thái Bs chỉ vào cách
Trang 1Chươ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
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
Trang 23.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 mi = m(i) dựa trên những hiểu biết fi(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, vi(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: vi(t) = 0 và thông tin đầy đủ: fi(x) = x, r(x, m) = r’(x, ma(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à vi(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
Trang 3Cá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 fi(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
Trang 43.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) = maxm{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
Trang 5bằ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ó
n n
n
n 2 2
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)maxm{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 đó, 22 x
nước đi có thể có thể tính được với thời gian hàm mũ 23 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à 23 x +1
; tuy cực kỳ chậm (2313 đố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
Trang 63.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
Trang 7Hì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?
Trang 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 2x bước Điều đó đòi hỏi (2x) bước Ta chuyển u thành một trò chơi dừng
Trang 9Cá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à Bs, 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 Bs 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 Bs, (3) t = 1 trong khi (Bs) xp+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
Trang 10L đ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 Bs 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
Trang 113.2.2 Chiến lược trong trò chơi
Nếu u(x) thực sự dừng sau 2x
bước thì cấu hình khởi tạo là đúng đối với tính toán của u(x) L có chiến lược thắng hiển nhiên (nhưng khó tính toán): L luôn nói sự thật trong suốt quá trình tính toán L luôn kiên định S sẽ thua khi t = 1 và không thể giảm bớt hơn nữa Nếu cấu hình khởi tạo là sai thì S có thể thắng nếu L phạm sai lầm Nếu
L phạm sai lầm chỉ một lần, S có thể buộc L luôn sai lầm trong suốt quá trình dẫn đến
t = 1
Nếu hộp bên trên a của cấu hình hợp lệ là sai thì các hộp phía dưới b, c, d không thể tất cả đều đúng, vì theo qui tắc đơn định, a duy nhất trong chúng Nếu S đoán nhận một cách chính xác b, c hoặc d là sai thì S đưa nó lên đầu trong nước đi của mình thì L sẽ luôn bị buộc phải phạm sai lầm Tại thời điểm t = 1, toàn thể các mạch đều bị giảm xuống, L bị đặt vào tình thế phạm sai lầm do cấu hình không thể thực hiện xâu vào thực tế x, nghĩa là, cấu hình đó phạm luật Nói cách khác, L không thể đánh lừa được S trong toàn bộ thời gian: dẫn đến thời điểm nào đó, S sẽ nắm được cơ hội Lời giải của trò chơi này đưa đến câu trả lời cấu hình khởi tạo là đúng hay không?, tức là u(x) dừng sau 2x
bước hay không, với (2x) bước Trò chơi này là nhân tạo tăng thêm hấp dẫn của BHP vì nó không đề cấp đến tính hàm mũ trong định nghĩa Ta sẽ thu gọn nó thành trò chơi đúng nghĩa (Trò chơi cờ tuyến tính trên dải băng) và cũng chứng minh tính hàm mũ của nó
Trang 123.3 Kỹ thuật rút gọn, máy Turing bất định
3.3.1 Mô phỏng trò chơi máy Turing bằng trò chơi cờ tuyến tính
Để rút gọn trò chơi dừng về trò chơi cờ tuyến tính cần đưa vào một số khái niệm:
- Máy Turing không tiền định (NTM) là máy Turing TM mà đôi khi xảy ra sự thay đổi trạng thái (giới hạn) được lựa chọn một hàm (của cấu hình TM), thực hiện bởi một bộ điều khiển Máy
TM (nguyên bản) M thừa nhận xâu x nếu M(x) = yes, còn NTM M thực hiện nếu cho trước bộ điều khiển d sao cho Md(x) = yes NTM mô tả những trò chơi một người chơi, chẳng hạn khối Rubic với các qui tắc đơn giản Ta có thể tính toán chiến lược chiến thắng với thời gian hàm mũ (Vét cạn tất cả các thế)
- Các TM xen kẽ (ATM) là sự biến đổi của NTM được điều khiển bởi hai bộ điều khiển xen
kẽ (người chơi) l và r Một xâu được thừa nhận nếu tồn tại l mà với mọi r có Ml,r(x) = yes Trò chơi của ta có thể xem như một ATM sử dụng không gian nhỏ nhưng với thời gian hàm mũ để đưa ra kết 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
Trang 13Hình 9: Bàn cờ tuyến tính
Khác với trò chơi cờ tuyến tính, trong đó chỉ quân 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 (Sử dụng lệnh “=” đối với các input của người chơi) Máy Turing phổ dụng được xem như là mảng các tế bào ô tô 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
và không 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ế
Trang 143.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, 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 là số lượng bộ nhớ cần sử 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 (song song) với thời gian nhỏ, không gian lớn (Xem hình 10)
Trang 15Hình 10 Mô 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 được hẹp có thể biểu diễn như là việc 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ũ trong một bộ nhớ đa thức