Luận văn Thuật toán Frame – Stewart giải bài toán tháp Hà Nội tổng quát

THUẬT TOÁN FRAME – STEWART GIẢI BÀI TOÁN THÁP HÀ NỘI TỔNG QUÁT LUẬN VĂN THẠC SĨ TOÁN HỌC LỜI NÓI ĐẦU Trò chơi (Bài toán) Tháp Hà Nội được phổ biến rộng rãi ở Paris năm 1883 bởi nhà toán học Edouard Lucas, là một bài toán nổi tiếng thế giới, hiện nay đang được nghiên cứu bởi rất nhiều nhà toán học và khoa học máy tính, các chuyên gia giáo dục và y học, được đưa vào nhiều giáo trình tin học và sách về trò chơi toán học như một ví dụ điển hình về thuật toán đệ qui và lập trình căn bản, nhưng hình như chưa được chú ý nghiên cứu ở Việt Nam. Mặc dù trò chơi Tháp Hà Nội có mặt trên khá nhiều trang WEB và giáo trình tiếng Việt, số lượng bài viết tiếng Việt giới thiệu về trò chơi và bài toán Tháp Hà Nội trên các tạp chí là rất ít và còn rất sơ lược (xem [1]-[6]), hình như chưa có bài nghiên cứu tiếng Việt nào về bài toán Tháp Hà Nội, trong khi đó chỉ tính riêng số bài báo nghiên cứu về bài toán Tháp Hà Nội trong lĩnh vực Toán-Tin học đã có đến hơn 450 bài với khoảng 250 bài với đầu đề có cụm từ "The Tower of Hanoi", đăng trên hơn 100 tạp chí khoa học uy tín (trong [5] thống kê số lượng bài báo khoa học viết về Tháp Hà Nội là 464 bài). Đó là chưa kể đến những bài viết về sử dụng bài toán Tháp Hà Nội trong khoa học giáo dục và y học. Trò chơi Tháp Hà Nội thú vị đến mức nó đã được dùng làm đề tài của một số luận án Tiến sĩ và luận văn cao học. Một hội thảo khoa học quốc tế [21] với tên gọi Workshop on the Tower of Hanoi and Related Problems đã được tổ chức năm 2005. Bài toán Tháp Hà Nội không chỉ thú vị ở chỗ nó mang tên Hà Nội, thủ đô của Việt nam, mà nó hấp dẫn các nhà Toán-Tin học bởi nó liên quan đến nhiều vấn đề như giải thuật đệ qui, hệ đếm, tam giác Pascal, thảm Sierpinski, lý thuyết đồ thị và chu trình Hamilton, ôtômát hữu hạn, độ phức tạp tính toán, Bài toán Tháp Hà Nội gợi ý cho nhiều nghiên cứu trong khoa học máy tính và toán học. Luận văn Thuật toán Frame-Stewart giải bài toán Tháp Hà Nội tổng quát có mục đích trình bày tổng quan về một thuật toán quan trọng giải bài toán Tháp Hà Nội với số cọc bất kì. Luận văn gồm phần mở đầu, bốn Chương và phần tài liệu tham khảo. Chương 1. Tổng quan về trò chơi Tháp Hà Nội. Chương 2. Bài toán Tháp Hà Nội cổ điển. Chương 3. Bài toán Tháp Hà Nội với bốn cọc. Chương 4. Bài toán Tháp Hà Nội tổng quát. Chương 1 giới thiệu tổng quan về Trò chơi Tháp Hà Nội. Lời giải Bài toán Tháp Hà Nội cho ba cọc được trình bày trong Chương 2. MỤC LỤC Trang MỤC LỤC LỜI NÓI ĐẦU . 2 Chương 1 . 4 TỔNG QUAN VỀ TRÒ CHƠI THÁP HÀ NỘI 4 §1. Lịch sử trò chơi Tháp Hà Nội 4 §2. Sơ lược về bài toán tháp Hà Nội tổng quát, các bài toán cải biên và các vấn đề toán học liên quan 15 Chương 2: TRÒ CHƠI THÁP HÀ NỘI . 21 §1 Trò chơi tháp Hà Nội và thuật giải đệ qui 21 §2 Giải bài toán tháp Hà Nội bằng biểu diễn trong hệ đếm cơ số 2 26 §3 Đồ thị Hà Nội 34 §4 Giải bài toán Tháp Hà Nội trên máy tính . 38 Chương 3: BÀI TOÁN THÁP HÀ NỘI VỚI BỐN CỌC (Trò chơi Reve-The Reve’s Puzzle) . 39 §1 Trò chơi Tháp Hà Nội với bốn cọc 39 §2 Tính số bước chuyển tối ưu trong trò chơi Tháp Hà Nội với bốn cọc 43 Chương 4: BÀI TOÁN THÁP HÀ NỘI TỔNG QUÁT . 52 §1 Tính số S p (n) trong thuật toán Frame-Stewart cho trò chơi Tháp Hà Nội tổng quát . 52 §2 Đánh giá S p (n) . 68 §3 Sự tương đương của một số thuật toán giải bài toán Tháp Hà Nội tổng quát 70 KẾT LUẬN 78 TÀI LIỆU THAM KHẢO . 79

pdf82 trang | Chia sẻ: maiphuongtl | Lượt xem: 1780 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Thuật toán Frame – Stewart giải bài toán tháp Hà Nội tổng quát, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o nhất trên cọc 2P . Cọc 1P , 3P , 4P trống. Tương tự, đến bước cuối cùng ta có: Các cọc 1P , 3P ,…, 1pP  trống, cọc 2P chứa các đĩa từ có số từ n đến p , cọc pP chứa các đĩa có số từ 1p  đến số 1. Chuyển các đĩa có số 1 đến 2p  sang các cọc 1P , 3P ,…, 1pP  tương ứng. Sau đó chuyển đĩa số 1p  từ cọc pP sang cọc 2P . Lại chuyển các đĩa có số 2p  đến số 1 từ các cọc 1pP  ,…, 3P , 1P sang cọc 2P . Mất    2 1 2 2 3p p p      lần chuyển. Tất cả các đĩa ở trên cọc 2P . Công việc hoàn thành. Tổng số lần chuyển đĩa từ các cọc 3,..., pP P sang cọc 2P mất:         2 2 3 3 2 3 5 ... 2 3 2 2 p p p p p p             . Vậy tổng số lần chuyển đĩa là:       2 21 2 2 4 1 2 1 2 1 4 2 1p p p p p p p p n p             . Nhận xét 2.4 Ta cũng có thể viết số lần chuyển đĩa trên bằng       2 221 2 2 4 1 2 1 1p p p p p p         . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 49 Trƣờng hợp 3  1 2 3 2 p p p n     . Đặt  1 2 p p i n    . Thực hiện thuật toán như trên, nhưng số lần chuyển đĩa lúc này giảm đi 4i và bằng      2 2 1 ( ) 2 1 1 4 2 1 1 4 4 2 1 2 p p p S n p i p n n p                  . Định lí 2.1 chứng minh xong. Như vậy, nếu  1 2 p p n   thì ta có công thức hiển tính số bước chuyển tối ưu giải bài toán Tháp Hà Nội. Trường hợp  1 2 p p n   với số cọc p bất kì sẽ được xem xét trong Chương 4. Dưới đây chúng ta xét trường hợp 4p  . 2.2 Tính số bƣớc chuyển tối ƣu trong trò chơi Tháp Hà Nội với bốn cọc và n đĩa Định lí 2.2 Giả sử n là số đĩa cố định và    1 1 2 2 x x x x n     . Số bước chuyển tối ưu theo thuật toán Frame-Stewart là   224( ) 2 2 2 1xS n n x x     . (2.1) Chứng minh Xét các trường hợp sau. Trƣờng hợp 1  1 2 x x n   ( n là số tam giác) Thuật toán Frame-Stewart chuyển n đĩa từ cọc 1P sang cọc 4P như sau: Bước 1: Với 0 l n  chọn trước, chuyển l đĩa nhỏ nhất (trên cùng) từ cọc 1P sang cọc 4P (sử dụng tất cả bốn cọc). Số lần chuyển tối ưu là 4( )S l . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 50 Bước 2: Chuyển n l đĩa lớn nhất (dưới cùng) từ cọc 1P sang cọc 2P , sử dụng ba cọc (vì cọc 4P đang chứa l đĩa nhỏ nhất). Số lần chuyển tối ưu là 2 1n l  . Bước 3: Lại chuyển l đĩa nhỏ nhất (trên cùng) từ cọc 4P sang cọc 2P (sử dụng tất cả bốn cọc). Số lần chuyển tối ưu là 4( )S l . Như vậy, với mỗi 0 l n  chọn trước, số lần chuyển tối ưu là 4 4( ) 2 ( ) 2 1 n lS n S l    . (2.2) Rõ ràng, vì cọc 3P trống nên trong Bước 1, để chuyển l đĩa từ cọc 1P sang cọc 4P , ta có thể áp dụng thuật toán Frame-Stewart chuyển j đĩa nhỏ nhất (trên cùng, 0 j l  ) từ cọc 1P sang cọc 3P (sử dụng bốn cọc) và l j đĩa lớn hơn từ cọc 1P sang cọc 4P (sử dụng ba cọc mất 2 1l j  lần chuyển), sau đó lại chuyển j đĩa nhỏ nhất từ cọc 3P sang cọc 4P (sử dụng bốn cọc). Như vậy, để chuyển l đĩa từ cọc 1P sang cọc 4P sẽ mất 42 ( ) 2 1 l jS j   bước chuyển. Do đó, với mỗi l và j chọn trước, cần  4 42 ( ) 2 1 2 2 ( ) 2 1 2 1n l l j n lS l S j         bước để chuyển n đĩa từ cọc 1P sang cọc 2P . Sử dụng thuật toán Frame-Stewart và công thức (2.2) nhiều lần, chúng ta nhận được công thức sau đây tính số bước chuyển tối ưu cho bài tóan tháp Hà Nội với bốn cọc và    1 1 ... 1 2 x x n x x        là số tam giác:    1 2 24( ) 2 1 2 2 1 2 2 1 ... 2 2 1 2.1 ...x x xS n            . (2.3) Số đĩa cần thiết để chuyển ba đĩa nhỏ nhất từ cọc 1P sang cọc trung gian ( 3P hoặc 4P ) được thể hiện trong ngoặc trong cùng. Mở ngoặc trong công thức (2.3) ta nhận được 1x  số hạng có tổng bằng 2x , và một số hạng bằng 12x . Các số hạng còn lại có tổng bằng Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 51    2 11 2 4 ... 2 2 1x x         . Vậy, khi  1 2 x x n   là số tam giác, ta có      1 14( ) 1 2 2 2 1 1 2 1x x x xS n x x         . (2.4) Trƣờng hợp 2    1 1 2 2 x x x x n     ( n không phải là số tam giác) Ta tính số 4( )S n như sau. Quan sát công thức (2.3) ta thấy, nếu thiếu một đĩa (nhỏ nhất), tức là  1 1 2 x x n    thì trên cọc 1P cho phép tiết kiệm 12m lần chuyển để đưa các đĩa từ cọc 1P sang cọc 2P so với trường hợp n là số tam giác. Nếu ta cần chuyển  1 2 x x n   từ cọc 1P sang cọc 2P và  1 2 x x n   thì số lần chuyển “tiết kiệm” được sẽ là     1 2 1 2 1 2 2 2 x xx x n x x n           . Cuối cùng, ta nhận được                2 2 2 2 4 22 2 2 ( ) 1 2 1 1 2 2 1 2 .2 1 1 2 2 2 4 4 2 1 2 2 2 1. x x x x x x S n x x x n x x x n x x x n n x x                             Nhận xét rằng, khi  1 2 x x n   thì hai công thức (2.3) và (2.4) trùng nhau và trùng với công thức (2.1). Định lí chứng minh xong. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 52 Chƣơng 4 BÀI TOÁN THÁP HÀ NỘI TỔNG QUÁT §1 Tính số ( )pS n trong thuật toán Frame-Stewart cho trò chơi Tháp Hà Nội tổng quát Trong §2 Chương 3 chúng tôi đã trình bày kết quả của Novikov, 2007 [13] tính giá trị tối ưu ( )pS n của bài toán tháp Hà Nội cho trường hợp bốn cọc và cho một số trường hợp với số cọc bất kì. Trong § này chúng tôi trình bày nghiên cứu của Rand (2009, [16]) về số lần chuyển tối ưu theo thuật toán Frame-Stewart cho bài toán tháp Hà Nội với số cọc bất kì. Kết quả của Rand là sự phát triển của hàng loạt các kết quả của các tác giả trước (S. Novikov, 2007; Petr, 2002; Maujumdar, 1996,…) và bổ sung cho kết quả của Novikov trong chương trước. 1.1 Số chia tối ƣu Ta cần kết quả bổ trợ sau trong các chứng minh định lí. Nhận xét 2.1 Ta có công thức tính toán tổ hợp sau. 1 1 1 k k k m m mC C C     . trong đó   ! : ! ! k m m C k m k   ; : 0kmC  nếu m k ; ,m k . Chứng minh Theo định nghĩa ta có                            1 1 1 ! 1 !! ! ! ! 1 ! 1 ! 1 ! 1 ! 1 ! ! 1 ! . 1 ! 1 1 ! k k m m k m m k m m km m C C k m k k m k k m k m k m C k m k                          . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 53 Định nghĩa 2.1 Giả sử :pD   là hàm số xác định bởi công thức ( ) ( ) ( 1)p p pD i S i S i   . Như vậy, ( )pD i miêu tả số chuyển động đòi hỏi phải thực hiện theo thuật toán Stewart khi thêm một đĩa (từ 1i  đến i đĩa), khi số cọc vẫn là p . Định lí 1.1 Giả sử , ,n p x , 1n  , 3p  . Khi ấy ta có đánh giá sau cho bài toán Tháp Hà Nội với p cọc: Với mọi 0x  , ( ) 2xpD n   2 2 3 2 p p p x p xC n C        . Điều này tương đương với: nếu ta kí hiệu pD là dãy  ( )p iD i  thì dãy pD sẽ chứa 3 3 p pC   phần tử có giá trị 02 , tiếp theo 3 3 1 p pC    phần tử có giá trị 12 , 3 3 2 p pC    phần tử có giá trị 22 ,v.v. Ví dụ 1.1 Với 5p  dãy  5D là như sau:         3 3 1 3 0 3 1 5 0 1 2 0 1 1 1 2 2 2 2 2 2 phan tu gia tri 2 ; phan tu gia tri 2 ;... 1phan tu gia tri 2 ;3 phan tu gia tri 2 ;6 phan tu gia tri 2 ... 2 , 2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ... 1, 2,2,2,4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,8,. p p p pC C         .. Chứng minh Định lí 1.1 Để chứng minh Định lí 1.1 ta sẽ sử dụng hai lần qui nạp theo số đĩa và theo số cọc. Chứng minh gồm các bước sau.  Chứng minh Định lí 1.1 đúng cho mọi n nếu 3p  .  Chứng minh Định lí 1.1 đúng cho mọi p nếu 1n  . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 54  Giả sử Định lí 1.1 đúng với mọi 0p p và 0n n , khi ấy Định lí 1.1 đúng cho 0p p và 0n n . Trƣờng hợp cơ bản 1 Định lí 1.1 đúng cho mọi n nếu 3p  . Chứng minh Chúng ta cần chỉ ra rằng 3( ) 2 xD n   1 11x xC n C   . Vì 1 1 1x xC n C       1 !! 1! 1 ! 1! ! xx n x x      1x n x    1x n  , nghĩa là ta phải chứng minh 1 3( ) 2 nD n  . Vì 3( ) 2 1 nS n   nên    1 13 3 3( ) : ( ) ( 1) 2 1 2 1 2n n nD n S n S n          . Trƣờng hợp cơ bản 2 Định lí 1.1 đúng cho mọi p nếu 1n  . Chứng minh Khẳng định của Định lí 1.1 dẫn đến (1) 2xpD   2 2 3 21 p p p x p xC C        . Vì 2 2 3 21 p p p x p xC C        nên 2 3 0 p p xC     hay 3 2p x p    . Suy ra 0x  . Vậy (1) 1 (1) (0)p p pD S S   . Điều này hiển nhiên đúng vì (1) 1pS  ; (0) 0pS  . Bƣớc qui nạp Giả sử Định lí 1.1 đúng với mọi 0p p và 0n n , khi ấy Định lí 1.1 đúng cho 0p p và 0n n . Để chứng minh bước qui nạp, ta cần các định nghĩa sau. Định nghĩa 1.2 Trong bài toán Tháp Hà Nội với p cọc, ta gọi số đĩa n là hoàn hảo ứng với p , nếu có thể biểu diễn n dưới dạng 2 2 p p xn C    cho một số 0x  nào đó. Khi p cố định, để ngắn gọn, ta chỉ nói n là hoàn hảo. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 55 Định nghĩa 1.3 Trong bài toán Tháp Hà Nội với p cọc và n đĩa, ta gọi số i là số chia tối ưu nếu 1( ) 2 ( ) ( )p p pS n S i S n i   . Nhận xét rằng i là số chia tối ưu nếu và chỉ nếu: Với mọi l mà 0 l n  thì 1 12 ( ) ( ) 2 ( ) ( )p p p pS i S n i S l S n l      , tức là  1 1 0 ( ) 2 ( ) ( ) min 2 ( ) ( )p p p p p l n S n S i S n i S l S n l          . Nói cách khác, số chia tối ưu i làm cực tiểu số lần chuyển đĩa theo thuật toán Frame-Stewart. Chứng minh bƣớc qui nạp Giả sử Định lí 1.1 đúng với mọi số cọc nhỏ hơn p và mọi số đĩa nhỏ hơn n , khi ấy Định lí 1.1 đúng cho p và n . Hơn nữa,  Ta sẽ xác định một đánh giá trên và đánh giá dưới cho số chia tối ưu i của n .  Trong khoảng đánh giá ấy, mọi i đều là những số chia tối ưu. Sau đó, sử dụng thông tin này, ta có thể tính trực tiếp ( )pD n cho số n liên quan bằng cách sử dụng giả thiết qui nạp. Bổ đề 1.1 Giả sử Định lí 1.1 đúng cho mọi số đĩa nhỏ hơn n . Khi ấy với n thỏa mãn bất đẳng thức 2 2 3 2 p p p x p xC n C        thì số chia tối ưu i nằm trong khoảng 2 2 4 3 p p p x p xC i C        . (1.1) Nhận xét rằng trong trường hợp cơ bản 1n  thì bất đẳng thức 2 2 3 21 p p p x p xC C        thỏa mãn cho duy nhất 0x  . Bất đẳng thức (1.1) trở thành 4 3 2 2 p p p pC i C      nên 0i  , tức là khi 1n  không có (không cần) phép chia tối ưu (chỉ cần một lần chuyển đĩa). Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 56 Chứng minh Bổ đề 1.1 Nếu i là số chia tối ưu thì theo định nghĩa, với mọi l thỏa mãn 0 l n  ta có 1 12 ( ) ( ) 2 ( ) ( )k k k kS i S n i S l S n l      . Với n thỏa mãn bất đẳng thức 2 2 3 2 p p p x p xC n C        , ta sẽ chứng minh rằng nếu i nằm ngoài khoảng đánh giá (1.1), thì tồn tại số l sao cho 1 12 ( ) ( ) 2 ( ) ( )k k k kS l S n l S i S n i      , (1.2) tức là nó không phải là số chia tối ưu. Đầu tiên giả sử rằng, 2 4 p p xi C    . Đoạn 241, pp xC   được chia bởi các số   2 2 2 2 2 2 2 1 5 41 1 ... ...p p p p p p pk x xkC C C C C C C                     . Như vậy,   2 2 2 2 1 p p p k p k C i C       với  0,1,..., 3k x  nào đó. Ta sẽ chứng minh 1l i  thỏa mãn bất đẳng thức (1.2). Vì l n (do 2 4 p p xi C    nên 2 2 4 31 1 1 p p x xl i C C n           ) nên kết hợp với bất đẳng thức     2 2 3 1 2 1 p p p k p k C l C          (do   2 2 2 2 1 p p p p k C i C       và 1l i  ) và chú ý rằng 3k x  , theo giả thiết qui nạp, ta suy ra 1 2( ) 2 2k xpD l    . Do 2 4 p p xi C    nên 2 2 4 41 1 p p x xl i C C             . Vì 2 3 p p xn C    nên sử dụng Nhận xét 1.1 ta có 2 2 3 3 4 4 p p p p x p x p xn l C C C          . Hơn nữa, do 1i  nên 2l  và 2 2 2 p p xn l C      (do 2 2 3 2 p p p x p xC n C        ). Lập luận tương tự như trên, chia khoảng  3 24 2,p pp x p xC C     bởi các điểm     3 3 2 33 1 3 1 ...p p pp xp x p xC C C           hay                      1 2 1 2 1 2 1 2 1 1 ... ... p p p p x x x k x k C C C C                      Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 57 thì n l nằm một trong các khoảng        1 2 1 2 1 2 1 1 2 p p p k x p x k C n l C                 với  0,1,...k thì theo qui nạp của định lí ta có 1( ) 2 2 x k x pD n l      . Bây giờ, nhắc lại rằng ( ) ( ) ( 1)p p pD k S k S k   và 1l i  , ta có          1 1 1 1 1 2 1 1 2 ( ) ( ) 2 ( ) ( 1) ( 1 ) ( ) 2 ( ) 2 ( ) ( ) ( ) 2 ( ) 2.2 ( ) 2 2 ( ) ( ). p p p p p p p p p p x x p p p p S l S n l D l S l S n l D n l S i D l S n i D n l S i S n i S i S n i                                 Như vậy, nếu 2 4 p p xi C    thì i không phải là số chia tối ưu. Bây giờ giả sử 2 3 p p xn i C     và chọn 1l i  (nhắc lại rằng ta đòi hỏi i n để có thể sử dụng giả thiết qui nạp cho i và l . ) Bởi vì 2 3 p p xi C    và 2 2 p x pn C    nên ta có 2 2 3 2 3 3 p p p p x p x p xn i C C C          và 3 31 p p xn l n i C        . Tương tự như chứng minh trường hợp trên, vì giả thiết qui nạp của Định lí 1.1 đúng với 2 3 p p xn i C     nên ta suy ra rằng ( ) 2xpD i  . Với 3 3 k x kn l C     theo qui nạp ta cũng suy ra 1( ) 2 x pD n l   . Do 1l i  nên         1 1 1 1 1 1 1 2 ( ) ( ) 2 ( 1) ( 1) ( 1 ) ( ) 2 ( ) 2 ( ) ( ) ( ) 2 ( ) 2.2 ( ) 2 2 ( ) ( ). p p p p p p p p p p x x p p p p S l S n l S l D l S n l D n l S i D i S n i D n l S i S n i S i S n i                                 Như vậy, i không phải là số chia tối ưu. Bổ đề chứng minh xong. Bổ đề 1.2 Giả sử Định lí 1.1 đúng cho mọi số đĩa nhỏ hơn n . Khi ấy với n thỏa mãn bất đẳng thức 2 3 p p xC    2 2 p p xn C     , và với mọi số chia tối ưu i ta có 3 3 4 3 p p p x p xC n i C         . (1.3) Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 58 Chứng minh Tương tự như trong Bổ đề 1.1. Đầu tiên ta giả sử 3 4 p p xn i C     . Khi ấy   3 2 3 2 2 4 3 4 4 3 1 p p p p p x x x x x i n C C C C C               . Do đó theo giả thiết qui nạp của Định lí 1.1 ta có 1( ) 2xpD i  . Đặt 1l i  thì      1 23 4 1 2 1 1 pp x p x n l n i C C            vì 3 4 p p xn i     . Theo giả thiết qui nạp của Định lí 1.1 ta lại có 1 1( ) 2 x pD n l     . Khi ấy         1 1 1 1 1 1 1 1 1 2 ( ) ( ) 2 ( 1) ( 1) ( 1) ( ) 2 ( ) 2 ( ) ( ) ( ) 2 ( ) 2.2 ( ) 2 2 ( ) ( ). p p p p p p p p p p x x p p p p S l S n l S l D l S n l D n l S i D i S n i D n l S i S n i S i S n i                                   Vậy i không thể là số chia tối ưu hay nếu i là số chia tối ưu thì 3 4 p p xn i C     . Bây giờ giả sử      1 23 3 1 3 1 pp p x p x n i C C            . Khi ấy lại theo giả thiết qui nạp của Định lí 1.1 ta có 1 1( ) 2 x pD n i     . Mặt khác,    2 13 2 3 3 p xp p p x p x x xi n C C C C C                . Do đó nếu đặt 1l i  thì    2 1 2 1 p x p x l C        . Lại theo giả thiết qui nạp của Định lí 1.1 ta có 1( ) 2xpD l  . Bây giờ ta có thể tính         1 1 1 1 1 1 1 1 1 2 ( ) ( ) 2 ( 1) ( ) ( 1) ( ) 2 ( ) 2 ( ) ( ) ( ) 2 ( ) 2.2 ( ) 2 2 ( ) ( ). p p p p p p p p p p x x p p p p S l S n l S l D l S n l D n l S i D l S n i D n l S i S n i S i S n i                                  Vậy i không phải là số chia tối ưu. Do đó ta đi đến kết luận rằng nếu i là số chia tối ưu thì 3 3 k k xn i C     . Kết hợp hai trường hợp ta đí đến kết luận của Bổ đề 1.1. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 59 Nhận xét 1.2 Nhận xét rằng với mọi số hoàn hảo 2 2 p p xn C    , Bổ đề 1.1 nói rằng mọi số chia tối ưu i phải thỏa mãn bất đẳng thức 2 3 p p xi C    và Bổ đề 1.2 nói rằng 3 3 p p xn i C      3 2 3 2 3 p p p p x x x xi n C C C C             . Do đó chúng ta đã chứng minh rằng từ Định lí 1.1 suy ra nếu 2 2 p p xn C    thì số chia tối ưu 3 3 p p xi C    là duy nhất. Nói cách khác, khi n là số hoàn hảo ( 2 2 p p xn C    ) thì số chia tối ưu i cũng là số hoàn hảo ( 3 3 p p xi C    ), và là duy nhất. Ta cũng dễ dàng tính được i . Ta sẽ có các hệ quả từ nhận xét thú vị này ở cuối mục. Bổ đề 1.3 Giả sử Định lí 1.1 đúng cho mọi số đĩa nhỏ hơn n . Khi ấy với n thỏa mãn bất đẳng thức 2 2 3 2 p p p x p xC n C        , nếu số nguyên i thỏa mãn điều kiện phát biểu trong Bổ đề 1.1 và Bổ đề 1.2 (thỏa mãn các bất đẳng thức (1.1) và (1.3)) thì i là số chia tối ưu. Chứng minh Ta sẽ chỉ ra rằng với mọi cách chọn i đồng thời thỏa mãn các bất đẳng thức (1.1) và (1.3) thì biểu thức 12 ( ) ( )p pS i S n i  là không đổi. Vì 2 2 3 2 p p p x p xC n C        nên ta có thể đặt 2 3 p p xn C a     , trong đó 3 2 2 30 p p p x x xa C C C          . Vì i thỏa mãn bất đẳng thức (1.1), tức là 2 2 4 3 p p p x p xC i C        nên ta có thể đặt 2 4 p p xi C b     . Hơn nữa, ta có thể viết bất đẳng thức 2 2 4 3 p p p x p xC i C        dưới dạng     2 2 3 1 2 1 p p p x p x C i C          . Áp dụng giả thiết qui nạp của Định lí 1.1 ta có     2 2 3 1 2 1 p p p x p x C i C           1( ) 2xpD i  . Từ Định nghĩa của ( )pD i và Bổ đề 1.1: Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 60             1 1 1 1 ( ) 1 ( ) 1 2 2 ( 1) 2 3 ( 2) 2.2 ... 2 . x x p p p p p p x x p p p S i S i D i S i S i D i S i D i S i b b                         (1.4) Hoàn toàn tương tự, do n i thỏa mãn bất đẳng thức (1.3), tức là 3 3 4 3 p p p x p xC n i C         nên ta có thể đặt 3 4 p p xn i C c      . Hơn nữa, bất đẳng thức 3 3 4 3 p p p x p xC n i C         có thể viết dưới dạng        1 2 1 2 1 3 1 2 p p p x p x C n i C              . Áp dụng giả thiết qui nạp của Định lí 1.1, ta có        1 2 1 2 1 3 1 2 p p p x p x C n i C               1( ) 2 x pD n i   . Theo Định nghĩa của ( )pD i , Bổ đề 1.2 và theo giả thiết qui nạp của Định lí 1.1:          1 1 1 1 1 1 1 1 ( ) ( 1) ( 1) 1 2 2 ( 1) 2 2 2.2 ... .2 . x p p p p x x p p p x p S n i S n i D n i S n i S n i D n i S n i S n i c c                                    (1.5) Do 2 4 p p xi C b     và 3 4 p p xn i C c      nên      2 3 24 4 3p p px x xn i n i C b C c C b c              . Mà 2 3 p p xn C a     nên a b c  . Do   2 2 3 2 1 p p p x p x n a C C        là số hoàn hảo (theo Định nghĩa 1.2) nên theo Nhận xét 1.2, số   3 3 43 1 p p p xp x i C C      là số chia tối ưu duy nhất cho n a . Do đó theo Định nghĩa số chia tối ưu và Định nghĩa của ( )pD i ta có: Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 61     1 1 1 1 1 1 1 1 ( ) 2 ( ) ( ) 2 ( 1) ( ) ( 1) ( 1) 2 ( 1) 2.2 ( 1) 2 2 ( 1) ( 1) ... 2 ( ) ( ) 2 ( ) ( ). p p p p p p p x x p p p p p p p p S n a S i S n a i S i D i S n a i D n a i S i S n a i S i S n a i S i b S n a i b S i b S n c i                                                   (1.6) Từ (1.4), (1.5) và (1.6) ta có     11 12 ( ) ( ) 2 2 .2 ( ) 2 . x x p p p p x p S i S n i S i b b S n i c c S n a a               (1.7) Biểu thức trên không phụ thuộc vào cách chọn i (hay cách chọn b và c , miễn là chúng thỏa mãn các bất đẳng thức (1.1), (1.3) và a b c  ). Hơn nữa giá trị 12 ( ) ( )p pS i S n i  là nhỏ nhất (trong tất cả các số 12 ( ) ( )p pS l S n l  , 0 l n  ), từ đó suy ra rằng mọi i đồng thời thỏa mãn các bất đẳng thức (1.1) và (1.3) là số chia tối ưu. Đẳng thức (1.7) cũng kết thúc chứng minh Định lí 1.1. Từ Định lí 1.1 ta có Hệ quả 1.1 Nếu n là một trong k số trong khoảng 1k kt n t   thì 1 4 4 4( ) ( ) ( 1) 2 kD n M n M n     . 1.2 Công thức tính ( )pS n Mục 1.1 đã cung cấp cho ta khá nhiều thông tin về các giá trị của ( )pS n , do đó có thể tính giá trị của ( )pS n theo n và p mà không cần dùng công thức đệ qui. Định lí 1.2 Với 3k  và 2 2 3 2 p p p x p xC n C        với một 0x  nào đó, ta có .   1 3 3 3 3 0 ( ) 2 2 x p i p x p p x p x i S n C n C            . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 62 Chứng minh Đây là hệ quả trực tiếp từ Định lí 1.1, bởi vì       2 2 2 2 3 3 1 1 0 1 1 1 1 2 2 3 3 3 2 3 3 3 3 0 0 ( ) (0) ( ) 0 2 2 2 2 2 2 . p p i p p p i p i Cn x n i x p p p i i j C i C x x p p i p x p i p x p i p i p x p i p x i i S n S D i C C n C C n C                                                      Hệ quả 1.2 Nếu 1k kt n t   thì  1 14 1 ( ) 2 2 k i k k i S n i t n      . Trƣờng hợp số hoàn hảo Nhắc lại Nhận xét 1.2, nếu n là số hoàn hảo, 2 2 p p xn C    thì tồn tại duy nhất số chia tối ưu 2 3 p p xi C    và do đó 2 2 3 2 3 3 p p p p x p x p xn i C C C          . Như vậy,   2 2 3 2 1 p p p x p x i C C       là số hoàn hảo cho bài toán với p cọc,    1 2 1 2 p p x n i C        là số hoàn hảo cho bài toán với 1p  cọc. Do đó mỗi ( )pS i và 1( )pS n i  trong công thức truy hồi 1( ) 2 ( ) ( )p p pS n S i S n i   cũng là hoàn hảo và dễ dàng tính được nếu sử dụng tam giác Pascal. Sử dụng tam giác Pascal, ta dễ dàng tính được ( )pS n cho mọi số hoàn hảo n như sau. Nhắc lại rằng các số tham gia trong tam giác Pascal có công thức là 1, 1, 1 1 khi 0 0 khi 0, 0 khi 0, 0 j ij i i j i j j P C i j P P i j              trong đó ijP là số Pascal tại dòng thứ i và cột thứ j , chỉ số bắt đầu tính từ 0. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 63 Đầu tiên xây dựng tam giác Pascal P với các cột được đánh số bên ngoài theo 2, nghĩa là ijP chỉ được xác định khi 0i  , 2j  và , 2ij i jP P   , do đó 2 1iP  với mọi 0i  . Điều này cho phép chúng ta ánh xạ x và p qua số hoàn hảo p xn C như sau: p xp xP C n   . Sau đó chúng ta xây dựng tam giác thứ hai P với cột ngoài rìa cũng như vậy, nhưng thay vì các số Pascal 1, 1, 1ij i j i jP P P    ta đặt 1, 1, 12ij i j i jP P P      . Khi ấy ta có thể ánh xạ x và p qua      1 1 12p p pxp p x p x p xP S C S C S C      . Bây giờ, sử dụng P để tính x dựa trên n , và sử dụng P để tính ( )pS n dựa trên x , ta có thể dễ dàng và thuận tiện tính được ( )pS n cho mọi số đĩa là số hoàn hảo và mọi số cọc p (xem Bảng dưới đây). P p x 2 3 4 5 6 7 8 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1 6 1 6 15 20 15 6 1 P p x 2 3 4 5 6 7 8 0 1 1 1 1 2 1 3 1 3 1 7 5 1 4 1 15 17 7 1 5 1 31 49 31 9 1 6 1 63 129 111 49 11 1 Để tìm ( )pS n cho một số hoàn hảo p xn C nào đó, đầu tiên ta nhìn vào cột p trong P . Khi đó ta có thể tìm được x bằng cách nhìn vào chỉ số của dòng chứa n . Cuối cùng, nhìn sang ,x k của bảng P để tính được ( )xp pP S n  . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 64 Ví dụ 1.2 Với 15n  Để tính 4(15)S ta nhìn vào cột 4p  , thấy số 15, ứng với 6x  . Bảng P cho 6,4 129P  . Như vậy, 4(15) 129S  . Số 15n  nằm trong bảng Pascal vì nó là số hoàn hảo: 4 4 6 415 xn C C    . Ví dụ 1.3 Để tìm 5(10)S ta chỉ cần nhìn trên bảng P , ứng với cột 5p  , 10P  sẽ là 5x  . Bảng P cho 5,5 31P  . Như vậy, 5(5) 31S  . 1.3 Tính trực tiếp số chia tối ƣu i Bài toán 1.1 Giả sử số cọc p cố định. Tính số chia tối ưu i theo số đĩa n . Từ các Định lí 1.1, 1.2 và các hệ quả của nó, ta có thể giải quyết bài toán này cho trường hợp bốn cọc. Định lí 1.3 Cho bài toán bốn cọc, với mọi số đĩa n . Nếu 2 2 1 2x xC n C   thì 1i n x   là số chia tối ưu. Chứng minh Ta nhắc lại các Bổ đề 1.1 và 1.2: Nếu 2 2 3 2 p p p x p xC n C        thì mọi số i thỏa mãn hai bất đẳng thức (1.1) và (1.3) 2 2 4 3 p p p x p xC i C        và 3 3 4 3 p p p x p xC n i C         sẽ là số chia tối ưu. Với 4p  các bổ đề này có thể phát biểu lại như sau: Nếu 2 2 1 2x xC n C   thì mọi số i thỏa mãn hai bất đẳng thức 2 2 1x xC i C   và 1 1 1x xC n i C    (1.8) Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 65 hay 2 2 1x xC i C          1 !! 2! 2 ! 2! 1 ! xx i x x          1 1 2 2 x x x x i     (1.8a) và 1 1 1x xC n i C     1x n i x    . (1.8b) Ta có 2 2 1 2x xC n C         1 ! 2 ! 2! 1 ! 2! ! x x n x x           1 1 2 2 2 x x x x n      . (1.9) Vì i phải thỏa mãn (1.8b) nên n i chỉ có thể là: n i x  hoặc 1n i x   hay i n x  hoặc 1i n x   . Chọn 1i n x   thì ta có đánh giá sau đây cho i : (1.9)      1 1 2 1 1 1 2 2 x x x x x n x x             2 22 2 2 x x x x i         21 1 2 2 x x x x i      . .Do i nguyên nên    1 1 2 2 x x x x i     . Chứng tỏ i thỏa mãn bất đẳng thức (1.8a). Vậy theo Bổ đề 1.3, 1i n x   là số chia tối ưu. Nhận xét 1.3 Nếu chọn i n x  thì vì     1 1 2 2 2 x x x x n      nên ta có đánh giá sau đây cho i : (1.9)      1 1 2 2 2 x x x x x n x x            21 2 2 2 x x x x i      . Bất đẳng thức (1.8a) không thỏa mãn khi 2 2 2 x x i    hay 2 2 2 x x n x       2 1 ( 2)3 2 2 2 x xx x n      . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 66 Vì vậy i n x  có thể không phải là số chia tối ưu. Bổ đề 1.4 Với mọi ,a b , 0 a b  ta có a ab    . Bổ đề 1.5 Cho  1 ( ) 2 x x f x   và 3 ( ) 2 2 g y y        . Khi ấy ( ( ))g f x x với mọi x R . Chứng minh Theo Bổ đề 1.5 ta có     3 ( ( )) 2 ( ) 1 1 1 1 2 g f x f x x x x x                . Mặt khác, do x nên 1 0x x   . Do đó theo bất đẳng thức Cauchy ta có    1 1 2 x x x x        3 1 3 1 1 2 2 2 x x x x       . Suy ra   3 1 1 2 x x x          . Vậy   3 1 1 2 x x x x           . Chứng tỏ   3 1 ( ( )) 1 2 x g f x x x x            hay ( ( ))g f x x . Bổ đề 1.6 Cho 3 ( ) : 2 2 g y y        . Khi ấy 2 2 1( ) x xg y x C y C    . Chứng minh Ta có 2 2 1x xC y C        1 2 1 2 2 x x x x y      . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 67 Trước tiên ta chứng minh rằng,   1 2 2 x x y    suy ra  g y x . Thật vậy, do cả hai số y và   1 2 2 x x  đều là những số nguyên nên từ   1 2 2 x x y    suy ra    2 2 3 1 2 3 4 2 1 2 2 2 x x x x x y            .  2 3 2 2 y x         3 2 2 y x   3 2 2 y x        (do x là số tự nhiên), hay  g y x . Bây giờ giả sử  1 ( ) 2 x x y f x    . Vì 3 ( ) 2 2 g y y        là hàm tăng và theo Bổ đề 1.5 ta có ( ( ))g f x x nên ( )y f x suy ra ( ) ( ( ))g y g f x x  . Kết hợp cả hai bất đẳng thức trên ta có 2 2 1( ) x xg y x C y C    Hệ quả 1.4 Trong bài toán Tháp Hà Nội với bốn cọc và với n đĩa bất kì, số chia tối ưu là 1 2 2 i n n         . Chứng minh Xây dựng hàm :g   sao cho 2 2 1( ) x xg y x C y C    . Khi ấy 2 2 1 2( ) 2 x xg y x C y C      . Theo Định lí 1.3 ta có thể tìm được số i xác định bởi       3 11 2 1 2 1 2 2 2 i n x n g n n n n n                       là số chia tối ưu. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 68 §2 Đánh giá ( )pS n Như ta đã biết, số lần chuyển đĩa cho bài toán ba cọc là 3( ) 2 1 nS n   , nên sẽ tăng theo hàm mũ khi n tăng. Tuy nhiên, trong trường hợp số cọc 4p  , phân tích thuật toán Frame- Stewart, Stockmeyer 1994 [19] phát hiện ra rằng, thật đáng ngạc nhiên, là độ phức tạp của thuật toán là dưới mũ (sub- exponential), cỡ  2 nn cho 4k  . Đánh giá dưới đã được Xiao Chen và Jian Shen (2004) và Szegedy (1999) xét. Dưới đây chúng tôi trình bày kết quả của Stockmeyer [19]. Bổ đề 2.1 Kí hiệu  x là số nguyên gần số thực x nhất. Khi ấy 1k kt n t   khi và chỉ khi  2k n , trong đó ( 1) 2 k k k t   là các số Pascal. Chứng minh Ta có  2k n  1 1 2 2 2 k n k     2 21 12 4 4 k k n k k       1 1 1 8 8 k kt n t      1k kt n t   . Dấu bằng trong bắt đẳng thức cuối là do tất cả các số 1, ,k kt n t đều là những số nguyên. Nhận xét rằng từ Bổ đề này suy ra rằng  2n chính là giá trị tối ưu của tham số i trong thuật toán. Định lí 2.1 Giả sử  2 2n n   , tức là 1 1 2 2    . Khi ấy  24( ) 2 1nS n n    , trong đó   1 2 3 2 2 4              và   2 3 4 2 4             . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 69 Chứng minh Giả sử  2 2k n n    . Sử dụng các Hệ quả 1.1 và 1.2. và tính tổng ta có           1 1 1 4 1 2 2 2 2 ( 1 ( ) 2 2 1 2 1 2 2 2 3 4 3 2 3 4 2 1 2 2 1 4 4 4 2 1. k i k k k k i k n n k k S n i t n k n n k k n n                                                    Đây chính là điều phải chứng minh. Mặc dù   1 2 3 2 2 4              và   2 3 4 2 4              có dạng phức tạp, cả hai đều rất gần với 1 khi 1 1 2 2    . Hàm    đạt giá trị cực tiểu bằng 1 khi 1 2    và đạt cự đại bằng 2 1.0615 ln 2e  tại 3 1 0.0573 2 ln 2     . Hàm    giảm chặt từ cực đại bằng 23 2 1.0164 32  tại 1 2    đến cực tiểu bằng 11 2 0.9723 16  tại 1 2   . Nếu kn t là số tam giác thì ta có 1 lim 2n     . Như vậy,  2( ) 2 1 1nM n n   là xấp xỉ tốt nhất cho các số này. Trong mọi trường hợp, ( )M n luôn luôn không xa quá 6.2% so với 22 nn với n đủ lớn. Ta nhận xét rằng 22 nn thật sự tăng nhanh hơn 2 nn , do đó Krishnamoorthy và Biswas đã chứng minh rằng  ( ) 2 nM n O n . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 70 §3 Sự tƣơng đƣơng của một số thuật toán giải bài toán Tháp Hà Nội tổng quát Trong §1 ta đã xét khá tỉ mỉ một thuật toán truy hồi giải bài toán Tháp Hà Nội tổng quát (thuật toán Frame-Stewart, thực ra đó là thuật toán do Stewart đề nghị năm 1942). Frame (1941) cũng đã đưa ra một thuật toán khác với thuật toán Stewart. Sau này, một số tác giả đã đưa ra một số thuật toán truy hôi tương tự các thuật toán của Stewart và Frame. Trong § này chúng ta sẽ trình bày chứng minh trong [11] khẳng định rằng các thuật toán này là tương đương theo nghĩa số lần chuyển đĩa tối ưu trong các thuật toán này là bằng nhau. 3.1 Các thuật toán truy hồi Giả sử ( )pH n là số bước chuyển nhỏ nhất cần thiết để giải bài toán Tháp Hà Nội với n đĩa và p cọc. Chỉ với 4p  và n p đĩa thì bài toán Tháp Hà Nội với nhiều cọc mới không tầm thường, bởi vì ta đã chứng minh được rằng (Chương 2) 3( ) 2 1 nH n   và hiển nhiên ( ) 2 1pH n n  khi n p (lần lượt lấy từng đĩa từ nhỏ tới lớn từ cọc nguồn đặt vào từng cọc, nhấc đĩa cuối cùng từ cọc nguồn đặt vào cọc đích, sau đó lại lần lượt xếp các đĩa vào cọc đích theo thứ tự từ lớn đến bé, xem Nhận xét 2.1 Chương 3). Do đó trong trường hợp tầm thường 3p  hoặc n p ta sẽ kí hiệu tất cả các hàm được xem xét ở đây là được xác định như là ( )pH n . Vì lí do kĩ thuật, ta coi 2(1) 1H  và 2( ) 0H n  khi 2n  . Thuật toán Frame (1941) Đầu tiên tất cả n đĩa đều nằm trên cọc nguồn 1P . Ta chia 1n  đĩa nhỏ nhất thành 2p  nhóm đĩa có kích thước liên tiếp. Chuyển 1n đĩa nhỏ nhất (trên cùng) từ cọc nguồn 1P sang cọc trung gian 2P bằng cách sử dụng tất cả Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 71 p cọc. Chuyển 2n đĩa nhỏ hơn (tiếp theo) từ đĩa nguồn 1P sang đĩa trung gian 3P bằng cách sử dụng 1p  cọc (không sử dụng cọc 2P vì cọc 2P đang chứa 1n đĩa nhỏ nhất). Tiếp tục chuyển các nhóm đĩa từ cọc nguồn sang các cọc trung gian bằng cách tại mỗi bước ta sử dụng ít hơn một cọc so với bước trước. Nhóm đĩa cuối cùng được chuyển từ cọc nguồn 1P sang cọc trung gian 1pP  bằng cách sử dụng ba cọc trung gian còn lại. Đĩa lớn nhất (thứ n ) khi ấy được chuyển từ cọc nguồn 1P sang cọc đích pP . Sau đó ta chuyển tất cả các nhóm đĩa sang cọc đích theo thứ tự ngược lại. Như vậy, bài toán tìm số lần chuyển nhỏ nhất n đĩa từ cọc nguồn sang cọc đích trở thành Bài toán 3.1 Với 4p  và n p tìm cực tiểu ( )pF n của đại lượng      1 1 2 3 22 2 ... 2 1p p pF n F n F n       với điều kiện 1 2 2... 1pn n n n     , in  , ,2,..., 2i p  . Bài toán trên là một dạng nới lỏng của bài toán Frame ban đầu: Bài toán 3.2 Với 4p  và n p , tìm cực tiểu ( )pF n của đại lượng      1 1 2 3 22 2 ... 2 1p p pF n F n F n     với điều kiện 1 2 2... 1pn n n n     , 1 2 2... pn n    , trong đó in  . Như vậy, so với bài toán 3.1, thuật toán Frame (Bài toán 3.2) đòi hỏi thêm một điều kiện đơn điệu của số đĩa: 1 2 2... pn n n    . Dưới đây, để thuận tiện, ta nhắc lại Thuật toán Stewart (1941) Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 72 Đầu tiên tất cả n đĩa đều nằm trên cọc nguồn 1P . Chia các đĩa thành hai nhóm. Nhóm thứ nhất gồm 1n đĩa nhỏ nhất và nhóm thứ hai gồm 1n n đĩa còn lại. Chuyển 1n đĩa nhỏ nhất từ cọc nguồn 1P sang cọc trung gian 2P bằng cách sử dụng tất cả p cọc. Chuyển 1n n đĩa còn lại từ cọc nguồn 1P sang cọc đích pP bằng cách sử dụng 1p  cọc (không sử dụng cọc 2P ). Cuối cùng chuyển 1n đĩa từ cọc 1P sang cọc đích pP , sử dụng tất cả p cọc. Bài toán 3.3 Với 4p  và n p , tìm     1 1 2 1 2( ) : min 2p p pS n S n S n n n n    , trong đó in  , 1,2i  . Thuật toán Stewart có thể được tổng quát hóa như sau. Kí hiệu ( )pA n là số bước chuyển cần thiết trong Bài toán 2 theo thuật toán có tính đến tất cả các phép chia n đĩa sau đây. Bài toán 3.4 Với 4p  và n p , giả sử ( )pA n là cực tiểu của số       1 1 2 3 2 1 2 1 1 2 3 2 1 2 1 2 1 2 2 ( ) 2 ( ) ... 2 ( ) 1 ... 1 2 ( ) 2 ( ) ... 2 ( ) ... ... 2 ( ) 2 ( ) , p p p p p p p p p p A A n A n n n n A n A n A n n n n A n A n n n n                                trong đó in  . Một phiên bản của 3.4 nhưng đòi hỏi tính đơn điệu của phép chia n đĩa là Bài toán 3.5 Với 4p  và n p , tìm cực tiểu ( )pA n của số (trong đó in  )       1 1 2 3 2 1 2 1 2 1 1 2 3 2 1 2 1 2 1 1 2 1 2 1 2 2 ( ) 2 ( ) ... 2 ( ) 1 ... 1 , ... 2 ( ) 2 ( ) ... 2 ( ) ... , ... ... ... 2 ( ) 2 ( ) , . p p p p p p p p p p A A n A n n n n n n A n A n A n n n n n n A n A n n n n n n                                   Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 73 Định nghĩa 3.1 Nếu 2,3p  hoặc n p thì đặt (định nghĩa) ( ) ( ) ( ) ( ) ( ) ( )p p p p p pF n F n A n A n S n M n      . 3.2 Chứng minh ( ) ( ) ( )p p pA n F n S n   Chúng ta bắt đầu bằng hai Bổ đề về hàm ( )pA n . Mặc dù Bổ đề 3.1 cũng khá hiển nhiên và Bổ đề 3.2 chủ yếu là xét trường hợp tầm thường, tuy nhiên cũng cần chứng minh hai Bổ đề này, bởi vì một số “điều hiển nhiên” trong bài toánTháp Hà Nội thường đưa đến các kết luận sai lầm. Bổ đề 3.1 Với mọi 3p  và 1n  ta có ( ) 2 1pA n n   . Chứng minh Với n p Bổ dề đúng theo định nghĩa của ( )pA n . Với 3p  và 3n  ta có 3( ) 2 1 2 1 nA n n     . Cuối cùng, với 4p  và n p ta có 1 1 2 1 1( ) 2 ( ) 2 ( ) ... 2 ( ) ( )p p p i p i i p iA n A n A n A n A n             , trong đó 1 2 1... p in n n n     và 2 2i p   . Theo qui nạp ta có               1 1 1 1 1 1 ( ) 2 2 1 ... 2 1 2 1 2 ... 2 ... 2 1 2 2 ... 2 2 1. p p i p i p i p i p i p i p i A n n n n n n n n n n p i n n n p i n                                       Bổ đề được chứng minh. Bổ đề 3.2 Với mọi 1n  , 3p  và 1 1, ,..., p ii n n   với 2 1i p   và 1 2 1... p in n n n      : 1 1 2 1 1( ) 2 ( ) 2 ( ) ... 2 ( ) ( )p p p i p i i p iA n A n A n A n A n             . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 74 Chứng minh Trường hợp 4p  và n p : Khẳng định được suy ra trực tiếp từ định nghĩa số ( )pA n . Trường hợp 3p  : Từ 2 1i p   suy ra 2i  . Ta phải chứng minh 3 3 1 2 2( ) 2 ( ) ( )A n A n A n    , 1 2n n n . (3.1) Nếu 2 2n  thì (3.1) suy biến. Vậy 2 1n  và ta chỉ còn phải chứng minh 3 3 2( ) 2 ( 1) (1)A n A n A     Theo định nghĩa ta có: (3.1)  3 3 1 2 2( ) 2 ( ) ( )M n M n M n     12 1 2 2 1 1nn     . Hiển nhiên đúng. Trường hợp cuối cùng: n p và 4p  . Ta sẽ chứng minh bằng truy hồi theo n . Nếu 2n  thì 1 2 12 ... 1p in n n n p i         (vì 1in  với mọi i ). Như vậy, 1p i  . Mặt khác ta lại có 1p i p n    nên suy ra 1p i  . Do đó 1 2 1n n  . Như vậy chỉ còn phải chỉ ra là 1(2) 2 (1) (1)p p pA A A     , hiển nhiên vì theo định nghĩa khi n p thì (2) (2) 2.2 1 3p pA M     ; (1) (1) 1p pA M   ; 1 1(1) (1) 1p pA M    . Như vậy, trường hợp 2n  được chứng minh. Theo qui nạp ta suy ra:  1 1 2 1 1 1 1 12 ( ) 2 ( ) ... 2 ( ) ( ) 2 ( ) ( ).p p i p i i p i p pA n A n A n A n A n A n n                 Do đó khẳng định được chứng minh nếu ta chỉ ra rằng 1 1 12 ( ) ( ) ( )p p pA n A n n A n     . Do n p nên theo định nghĩa ta có ( ) ( ) 2 1p pA n M n n    . Vậy theo Bổ đề 3.1:         1 1 1 1 1 1 1 1 2 ( ) ( ) 2 2 1 2 1 2 2 3 2 1 ( ). p p p A n A n n n n n n n n n n A n                  Bổ đề 3.2 được chứng minh. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 75 Mệnh đề 3.3 Với mọi 3p  và 1n  ta có ( ) ( )p pA n S n  . Chứng minh Ta sẽ chứng minh bằng qui nạp theo n . Cụ thể hơn, ta sẽ đi chứng minh rằng khẳng định đúng với mọi 4n  và, khi n cố định thì nó đúng với mọi 4 p n  . Với 4n  , ta chỉ cần xét 4p  . Tính toán đơn giản và trực tiếp chỉ ra rằng trong trường hợp này ta có 4 4(4) (4) 9A S   . Bây giờ ta giả sử rằng khẳng định đúng với mọi 4 m n  . Giả sử p là số nguyên bất kì thỏa mãn 4 p n  . Theo giả thiết qui nạp, với mọi 1 2,n n  , 1 2n n n  ta có 1 1 2 1 1 22 ( ) ( ) 2 ( ) ( )p p p pA n A n S n S n     . Như vậy, tập mà theo đó chúng ta xác định ( )pS n (như là cực tiểu của nó) là tập con của tập, mà theo đó chúng ta xác định ( )pA n (như là cực tiểu của nó) . Từ đây suy ra rằng ( ) ( )p pA n S n  . Còn lại cần phải chứng minh rằng ( ) ( )p pA n S n  . Nếu với 1 2,n n  , 1 2n n n  nào đó, ta có 1 1 2( ) 2 ( ) ( )p p pA n A n A n    thì ta có điều phải chứng minh, vì trong trường hợp này ( )pA n là tập mà ( )pS n đạt cực tiểu. Bởi vậy ta giả thiết rằng 1 1 2 1 1( ) 2 ( ) ( ) ... 2 ( ) ( )p p p i p i i p iA n A n A n A n A n             , trong đó 1 2 1... p in n n n     và 2 2i p   . (Nhận xét rằng trong trường hợp riêng 2i  ta có 1 1 1p i pn n    và 2 1( ) 1pA n   .) Khi đó 2 3 1 1... p in n n n n      . Theo Bổ đề 3.2 ta có 1 1 1 2 1 1( ) 2 ( ) ... 2 ( ) ( )p p i p i i p iA n n A n A n A n             , Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 76 Và vì vậy, sử dụng giả thiết qui nạp, ta đi đến kết luận 1 1 1 1 1 1( ) 2 ( ) ( ) 2 ( ) ( ) ( )p p p p p pA n A n A n n S n S n n S n          . Vậy ( ) ( )p pA n S n  . Mệnh đề 3.4 Với mọi 3p  và 1n  ta có ( ) ( )p pA n F n  . Chứng minh Ta sẽ chứng minh bằng qui nạp theo n như trong Mệnh đề 3.3. Với 4n  ta có            4 4 1 3 2 1 2 4 1 3 2 1 2 4 3 4 3 4 (4) min 2 ( ) 2 ( ) 1 1 4 min 2 ( ) 2 ( ) 1 3 min 2 (1) 2 (2) 1;2 (2) 2 (1) 1 min 2 1 3 1,2 3 1 1 9 (4). F F n F n n n A n A n n n A A A A A                              Giả thiết rằng ( ) ( )p pA m F m  với mọi 4 m n  . Tập mà theo đó ta xác định ( )pF n (như là cực tiểu của nó) là tập con của tập theo đó ta xác định ( )pA n (như là cực tiểu của nó), bởi vì với mọi 1 2 2, ,..., pn n n  thỏa mãn 1 2 2... 1pn n n n     ta có 1 3 2 1 3 22 ( ) ... 2 ( ) 1 2 ( ) ... 2 ( ) 1p p p pF n F n A n A n           . Do đó ( ) ( )p pF n A n  . Để chứng minh bất đẳng thức ngược lại, chúng ta sử dụng phương pháp qui hoạch động như sau. Theo Mệnh đề 3.3 ta có thể viết 0 1 1 2( ) 2 ( ) ( )p p pA n A n A n    trong đó 0 1 2n n n  . Áp dụng một lần nữa lý luận này, ta có 0 0 1 2 1 2 2 3( ) 2 ( ) ( )p p pA n A n A n      trong đó 0 0 2 3 2n n n  . Vậy 0 1 1 2 2 3( ) 2 ( ) 2 ( ) ( )p p p pA n A n A n A n       . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 77 Quá trình này có thể thực hiện đến khi nào? Chúng ta phân biệt hai trường hợp. Trƣờng hợp 1 0 1 1 1( ) 2 ( ) ... 2 ( ) ( )p p i p i i p iA n A n A n A n          với 2i  và 0 1 1p in    . Đặt  max 1kr k n  và nhận xét rằng r p i  . Khi ấy ta có:   1 1 1 1 1 1 1 1 1 1 1 1 ( ) 2 ( ) ... 2 ( ) 2 (1) ... 2 (1) 2 (1) 2 ( ) ... 2 2 ( ) ( ) 2 (1) ... 2 (1) (1) 2 ( ) ... 2 ( ) 2 ( ) 2 (1) ... 2 p p i p i p r i i p p r r p r r p r i i p p r r p r r p r A n A n A n A A A A n A n A n A A A A n A n A n A A                                                        1(1) (1) ( ).i i pA A n   Nhận xét rằng trong tính toán trên đổi biến trong đẳng thức thứ hai là có thể bởi vì mọi giá trị của (1),..., (1)p r iA A  cũng như là 1 1(1),..., (1)p r iA A    bằng 1 và 1 2i   . Do đó ta có mâu thuẫn. Chứng tỏ trường hợp này là không thể. Trƣờng hợp 2 0 1 1 1( ) 2 ( ) ... 2 ( ) ( )p p i p i i p iA n A n A n A n          với 2i  và 0 1 1p in    . Ta có 0 0 1 3 2 1 3 2( ) 2 ( ) ... 2 ( ) 1 2 ( ) ... 2 ( ) 1 ( ).p p p p p pA n A n A n F n F n F n               Vậy Mệnh đề 3.4 được chứng minh. Kết hợp Mệnh đề 3.3 và Mệnh đề 3.4 ta có thể phát biểu Hệ quả 3.5 Với mọi 3p  và 1n  ta có ( ) ( ) ( ) ( )p p p pA n F n S n H n    . Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 78 KẾT LUẬN Trong luận văn này, ngoài Chương 1 trình bày sơ lược lịch sử phát triển của bài toán Tháp Hà Nội và Chương 2 trình bày chi tiết các lời giải bài toán tháp Hà Nội với ba cọc, chúng tôi tập trung trình bày một vấn đề quan trọng trong bài toán tháp Hà Nội tổng quát, đó là các công thức tính số lần chuyển tối ưu, độ phức tạp tính toán và sự tương đương của các các thuật toán hồi qui dạng Frame-Stewart. Mặc dù còn rất sơ lược và chưa bao quát hết được số lượng lớn các bài viết chỉ riêng về thuật toán Frame-Stewart giải bài toán tháp Hà Nội, hy vọng luận văn cũng đã cho một bức tranh tương đối rõ nét về bài toán này và gợi ý sự quan tâm đến các vấn đề thú vị của bài toán tháp Hà Nội, nhân dịp 1000 năm Thăng Long. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 79 TÀI LIỆU THAM KHẢO [1] Phạm Trà Ân, Bài toán Tháp Hà Nội, Tạp chí Toán học và Tuổi trẻ, số 280, tháng 10.2000. [2] Phạm Trà Ân, Bài toán Tháp Hà Nội-Cái nhìn từ lý thuyết Độ phức tạp tính toán, Tạp chí Thông tin Toán học, Tập 6 Số 2, tháng 8 năm 2002, trang 10-13. [3] Vũ Đình Hòa, Bài toán Tháp Hà Nội, Tạp chí Toán Tuổi thơ 2, Số 68, tháng 10.2008. [4] Tạ Duy Phượng, Trò chơi Tháp Hà Nội-Lịch sử và bài toán tổng quát, Tạp chí Toán học và Tuổi trẻ, số 280, tháng 1.2010. [5] Tạ Duy Phượng, Trò chơi Tháp Hà Nội và những bài toán liên quan (Bản thảo), 150 trang. [6] Nguyễn Xuân Tấn, Bài toán “Tháp Hà Nội”-một bài toán hóc búa hơn một trăm năm nay, Tạp chí Thông tin Toán học, Tập 6 Số 1, tháng 3 năm 2002, trang 2-4. [7] Henry Ernest Dudeney, The Canterbury Puzzles (and other curious problems), Thomas Nelson and Sons, Ltd., London, 1907; New York, E. P. Dutton and Company, 1908. [8] Otto Dunkel, Editorial note concerning advanced problem 3918, Amer. Math. Monthly 48 (1941), 219. [9] J. S. Frame, Solution to advanced problem 3918, Amer. Math. Monthly 48 (1941), 216-217. [10] P. J. Hilton, private communication. [11] Sandi Klavžar, Uroš Milutinović, and Ciril Petr, On the Frame-Stewart algorithm for the multi-peg Tower of Hanoi problem, Discrete Appl. Math. 120 (2002), no. 1-3, 141-157. MR1912864 (2003c:05028) [12] Édouard Lucas, L’Arithméique Amusante: Introduction aux Récréations Mathematicques, Gauthier-Villars, Paris, 1895, pp. 179-183. Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên 80 [13] Sergey Novikov, Upper estimates of complexity of algorithms for multi- peg Tower of Hanoi problem, Annales Academiae Paedagogicae Cracoviensis, Folia 45 Studia Mathematica VI, 2007, pp. 57-66. [14] Henri de Parville, Récréations mathématiques: La tour d ’ Hanoi et la question du Tonkin, La Nature, 12 th year, 1 st semester, no. 565 (March 29, 1884), 285-286. [15] David G. Poole, The towers and triangles of Professor Claus (or, Pascal knows Hanoi), Math. Mag. 67 (1994), 323-344. MR1307797 (95m:05023) [16] Michel Rand, On the Frame-Stewart algorithm for the Tower of Hanoi, pp. 1-13, 2009. [17] B. M. Stewart, Advanced problem 3918, Amer. Math. Monthly 46 (1939), 363. [18] B. M. Stewart, Solution to advanced problem 3918, Amer. Math. Monthly 48 (1941), 217-219. [19] Paul K. Stockmeyer, Variations on the four-post Tower of Hanoi puzzle, Congr. Numer. 102 (1994), 3-12. (Proceedings of the 25th Southeastern International Conference on Combinatorics, Graph Theory and computing). [20] Paul K. Stockmeyer: The Tower of Hanoi: A Bibliography, Internet publication, Version 2.2, 22/10/2005, [21] Workshop on the Tower of Hanoi and Related Problems, September 18 - September 22, 2005, Maribor, Slovenia. [22] Các bài trên các trang WEB viết về trò chơi Tháp Hà Nội.

Các file đính kèm theo tài liệu này:

  • pdfLV2010_SP_NguyenThiHongPhuong.pdf