Cuốn sách toán học tốt về thuật toán [đóng]


11

Tôi là một người say mê sự tao nhã và nghiêm ngặt của toán học, và bây giờ tôi đang tìm kiếm những tài liệu như vậy về các thuật toán và phân tích thuật toán. Bây giờ, nó không quan trọng nhiều đối với tôi những gì các thuật toán được bảo hiểm, nhưng rất nhiều cách chúng được trình bày và treated.¹ tôi giá trị nhất một ngôn ngữ rất rõ ràng và chính xác mà định nghĩa tất cả các khái niệm được sử dụng trong một nghiêm ngặt và cách trừu tượng.

Tôi thấy rằng Giới thiệu cổ điển về Thuật toán , của Cormen, Leiserson, Rivest và Stein khá gọn gàng, nhưng không xử lý tốt toán học và khá không chính thức với các bằng chứng và định nghĩa của nó. Giới thiệu về Lý thuyết tính toán của Sipser có vẻ tốt hơn về vấn đề đó, nhưng vẫn không cung cấp sự chuyển tiếp liền mạch từ toán học sang thuật toán.

Bất cứ ai có thể đề nghị một cái gì đó?


: Các thuật toán ít nhất phải thu hút việc quản lý dữ liệu cần thiết của chúng bằng cách sử dụng các cấu trúc dữ liệu trừu tượng không tầm thường cổ điển như đồ thị, mảng, tập hợp, danh sách, cây, v.v. - tốt nhất là cũng hoạt động trên các cấu trúc dữ liệu đó. Tôi sẽ không quá quan tâm nếu vấn đề sử dụng và quản lý cấu trúc dữ liệu bị bỏ qua hoàn toàn. Tôi không quan tâm nhiều về các vấn đề được giải quyết với họ, mặc dù.


2
Đây là chủ quan; định nghĩa "tốt". Ngoài ra, trong khi chúng tôi không có chính sách nghiêm ngặt cho các câu hỏi trong danh sách, có một sự không thích chung . Cũng xin lưu ý điều này và cuộc thảo luận này ; bạn có thể muốn cải thiện câu hỏi của mình để tránh những vấn đề được giải thích ở đó. Nếu bạn không chắc chắn cách cải thiện câu hỏi của mình, có lẽ chúng tôi có thể giúp bạn trong Trò chuyện Khoa học Máy tính ?
Raphael


@Raphael Cảm ơn. Tôi chỉ sử dụng từ tốt, tốt trong tiêu đề, trong câu hỏi của tôi, tôi đã chỉ định những gì tôi muốn. Mặc dù tôi cố tình không quá cụ thể, nhưng ít nhất nên rõ ràng rằng trọng tâm của tôi là (như được gợi ý) về sự thanh lịch và chặt chẽ toán học . Tôi không nghĩ câu trả lời này hét lên cho một danh sách các cuốn sách, bởi vì không nên có quá nhiều cuốn sách thuộc thể loại đó, và thậm chí nếu vậy, tôi không tin vào điều đó giữ gìn sự thuần khiết của một câu hỏi nghiêm ngặt câu trả lời cấu trúc điều điều xảy ra tại một số trang web stackexchange ở đây - nhưng tôi đoán không phải là cuộc gọi của tôi. Tôi không chắc mình có thể cải thiện câu hỏi không.
k.stm

Ngoài ra, tôi không nghĩ rằng yêu cầu tham khảo của người Viking là phù hợp với câu hỏi. Ít nhất là không theo mô tả của nó: Tôi cũng không tìm kiếm giấy tờ và tôi không quan tâm đến một vấn đề cụ thể và hẹp. Trong thực tế, tôi khá cởi mở về nội dung được đề cập, xem câu thứ hai của tôi. Có ổn không nếu tôi gỡ thẻ lần nữa? Có lẽ tôi có thể và nên thu hẹp với loại thuật toán nào tôi sẽ có nội dung?
k.stm

2
Có lẽ bạn nên xem xét ngữ nghĩa học và xác minh chương trình.
Yuval Filmus

Câu trả lời:


7

Hendrik Lenstra viết năm 1992 :

Mặc dù, từ quan điểm toán học khắt khe, mong muốn rằng tôi xác định ý của tôi bằng thuật toán và thời gian chạy của nó, tôi sẽ không làm như vậy. Lý do chính của tôi là tôi không biết những định nghĩa này. Thậm chí tệ hơn, tôi chưa bao giờ thấy một điều trị của lý thuyết phù hợp là chính xác, thanh lịch và thuận tiện để làm việc với. Nó sẽ là một doanh nghiệp đáng khen ngợi để lấp đầy khoảng trống rõ ràng này trong tài liệu.

Tôi không biết liệu có bất kỳ tiến bộ nào đã được thực hiện kể từ đó hay không, hay liệu điều này thậm chí còn được coi là "lỗ hổng" bởi sự đồng thuận. Nhưng vấn đề vẫn là ít nhất một số nhà toán học nổi tiếng đã không hài lòng với sự chặt chẽ toán học của việc tạo ra các thuật toán. Vì vậy, có thể không tồn tại cuốn sách nào với mức độ hình thức mong muốn của OP.

Tầm nhìn của những quan điểm thực tế mà chúng ta có do Knuth, Gries , Stepanov và những người khác dự định sẽ hỗ trợ các lập trình viên nhiều hơn toán học và do đó chắc chắn không thể thiếu sự nghiêm túc và lâu dài về tính chủ quan.

Tuy nhiên, công trình của Stepanov được hoan nghênh rộng rãi ở Thung lũng Silicon là một trong những nỗ lực tốt nhất trong một tổng hợp khoa học.

Trong các yếu tố lập trình , Alexander Stepanov và Paul McJones cố gắng đặt nền tảng đại số trừu tượng của các thuật toán. Cuốn sách bắt đầu với các định nghĩa tiên đề có phần không chính thức về các thực thể, giá trị và thuộc tính của chúng, nhưng trong 288 trang tiến triển một cách khấu trừ thông qua một loạt các bổ đề cho các nền tảng của Thư viện Mẫu Tiêu chuẩn.

TOC, lời nói đầu và một chương mẫu về Biến đổi và quỹ đạo của chúng có thể được tìm thấy ở đây , và một bài giảng giới thiệu ở đây .

Cuốn sách gần đây và thoải mái hơn của Stepanov, từ Toán học đến Lập trình chung , được cấu trúc nhiều hơn theo một lộ trình lịch sử toán học, xây dựng từ phép nhân Ai Cập đến các đơn thức, nửa nhóm và định lý Lagrange, cuối cùng phát triển các cấu trúc dữ liệu hiện đại với các trình lặp và thuật toán của chúng được sử dụng trong STL.


?!? "Hiện tại không tồn tại các dẫn xuất toán học chính xác, thanh lịch và thuận tiện về khái niệm thuật toán ..." về máy Turing!
vzn

1
Lenstra giải quyết các máy Turing trong bài báo được liên kết, nhưng tôi nghĩ ý tưởng là chúng không cung cấp phân tích đại số đầy đủ. Các trích dẫn là khá nhiều nguyên văn, bao gồm cả phần "khoảng cách", nếu bạn muốn tự đọc nó. Tôi sẽ chỉnh sửa bài đăng để xóa "sự đồng thuận" được đề xuất, trong trường hợp nó nên được xem là gây tranh cãi.

ofc am / đã biết rằng bạn đã trích dẫn Lenstra nhưng bạn có thể thêm các trích dẫn hoặc một chuỗi dài hơn về khẳng định đáng chú ý / gây tranh cãi / nghi vấn của anh ấy
vzn

nghĩ rằng máy Turing không thể có nguồn gốc , ngược lại chúng tạo thành tiên đề của một hệ thống tính toán (ala luận án Church-Turing ). đó là tất cả các phân tích Lenstras và CS nói chung bắt nguồn từ tiên đề của sự tồn tại TM.
vzn

1
@Raphael, nếu mẹ nói rằng đó sẽ là một "doanh nghiệp đáng khen ngợi" để dọn dẹp phòng của tôi đúng cách, ý chính trong bài phát biểu của mẹ là "đừng bận tâm đến việc dọn dẹp phòng của bạn." Tôi đang hiểu lầm bạn, hay bạn đang hiểu lầm tôi?

7

Tôi nghĩ rằng cuốn sách bạn mô tả có một tên. Nó gồm bảy tập, chỉ ba và một nửa trong số đó đã được xuất bản. Nó được gọi là Nghệ thuật lập trình máy tính , (TAOCP) và được viết bởi Donald Knuth.

Nó có thể mặc dù đôi khi anh ấy sẽ mô tả các ứng dụng. Nhưng bạn luôn có thể bỏ qua điều đó, và tôi nghi ngờ nó làm cho nhiều nội dung. Bạn không nên quá thất vọng với môn toán.


Tôi sợ câu trả lời này có thể đi lên. Tôi buộc phải nhìn vào nó và nó không phù hợp với tôi. Bạn không nên quá thất vọng với môn toán. - có thể, nhưng Knuth dường như cũng không định nghĩa công cụ, nhưng anh ta giới thiệu nó một cách không chính thức, giải thích nó. Tuyệt vời để có được ý tưởng trên, mặc dù không phải những gì tôi mong đợi của toán học.
k.stm

Có lẽ bạn có thể đóng góp cho lĩnh vực này bằng cách xuất bản phiên bản bị xáo trộn về mặt toán học của tác phẩm của mình. Nhưng nếu điều bạn quan tâm là "sự chuyển đổi liền mạch từ toán học sang thuật toán", một chủ đề tốt hơn cho bạn có thể là lý thuyết loại. Mối quan hệ giữa toán học và thuật toán vẫn là một chủ đề nghiên cứu.
babou

1
Tái bút: Nếu bạn "sợ câu trả lời này có thể xuất hiện", bạn nên nói như vậy trong câu hỏi của bạn vì đây là một trong những cuốn sách tham khảo chính. Câu hỏi đầy đủ và tài liệu nhận được câu trả lời tốt hơn.
babou

Nó chỉ đến với tôi sau khi đã đặt câu hỏi, khi tôi rời khỏi máy tính của tôi. Nhận xét của tôi về cuốn sách của Knuth không nên được đưa ra một cách miệt thị (đó là cách tôi nghĩ rằng bạn đã đưa nó cho nhà xuất bản phiên bản bị xáo trộn về mặt toán học) - có lẽ giống như bên cạnh lời báng bổ. Cách của anh ấy cũng không phải là điều tôi đang tìm kiếm. Có lẽ không có bất cứ thứ gì giống như những gì tôi tưởng tượng ra ngoài đó
k.stm

2
@ k.stm Vâng, hãy quên điều khó hiểu đó là toàn bộ chủ đề. Vấn đề là, tôi tin rằng thuật toán không phải là (chưa?) Toán học. Nó có thể là bạn có thể có được chính thức hóa, nhưng chúng có thể là mã hóa đơn giản mà mất chất, với rất ít lợi ích. Điều đó phụ thuộc vào chủ đề. Có lẽ ít đúng với lý thuyết automata, vốn có thuật toán quan trọng. Vấn đề là việc xác định đầy đủ bản chất toán học trừu tượng của các cấu trúc là không rõ ràng. Đó là một vấn đề về sự hiểu biết, không phải là chính thức hóa, và phải mất nhiều năm. Hãy nghĩ về nó giống như vật lý
babou
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.