Mọi người nên đọc những cuốn sách nào?


229

[ Dòng thời gian ]


Câu hỏi này có cùng tinh thần về những gì mọi người nên đọcnhững video nào mọi người nên xem . Nó yêu cầu những cuốn sách đáng chú ý trong các lĩnh vực khác nhau của khoa học máy tính lý thuyết.

Các cuốn sách có thể được định hướng toán học, nhưng bạn có thể thấy nó tuyệt vời cho một nhà khoa học máy tính. Ví dụ:

  • Xác suất
  • Bất bình đẳng
  • Logic VCL
  • Lý thuyết đồ thị
  • Kết hợp
  • Thiết kế và phân tích thuật toán
  • Lý thuyết tính toán / Lý thuyết phức tạp tính toán

Vui lòng dành từng câu trả lời cho các cuốn sách cùng chủ đề (ví dụ: sách về tổ hợp).

Lưu ý: Tiêu đề có thể gây hiểu nhầm. Đây là một sự làm rõ: Đặt X và Y là hai lĩnh vực trong khoa học máy tính. Có những cuốn sách mà mọi người

  • trong trường X nên đọc.
  • trong trường Y nên đọc.
  • trong cả hai lĩnh vực nên đọc.

Câu hỏi này tìm kiếm cả 3 trường hợp. Nói cách khác, nó KHÔNG cụ thể cho trường hợp sau.

Chỉnh sửa: Theo đề xuất của Đại Lê , vui lòng nêu rõ lý do bạn thích cuốn sách.


Chủ đề liên quan:


Vì tôi không thể trả lời cho câu hỏi tôi sẽ làm nó ở đây. Toán học rời rạc - TTC: Toán học rời rạc của Arthur T. Benjamin. Đó là một gói bài giảng về các chủ đề khác nhau từ Lý thuyết tập hợp đến Đồ thị và Xác suất.
Pithikos

Có thể thú vị khi so sánh danh sách các cuốn sách đáng chú ý này với danh sách các cuốn sách giới thiệu từ Có một danh sách các sách giáo khoa giới thiệu kinh điển bao gồm các ngành chính của khoa học máy tính? câu hỏi trên reddit / compsci. Có một số chồng chéo, nhưng may mắn là sự khác biệt là đủ đáng kể.
Thomas Klimpel

Câu trả lời:


91

Độ phức tạp tính toán:

Nếu bạn đang tìm kiếm sách giáo khoa phức tạp gần đây. Hai cái sau là phải có.

Phần lớn nội dung giữa hai cuốn sách này là tương đương nhau. Tuy nhiên, vẫn tồn tại một số khác biệt chính: Goldreich dành nhiều không gian hơn để khám phá cơ sở khái niệm và triết học của lý thuyết phức tạp, trong khi Arora / Barak bao gồm nhiều lựa chọn về các chủ đề, bao gồm các mô hình cụ thể về độ phức tạp, tính toán lượng tử và giới hạn mạch chủ yếu vắng mặt từ trước đây.

Một lựa chọn khác, một cuốn sách giáo khoa cũ nhưng vượt thời gian rất phức tạp là:

Cuốn sách của Papadimitriou đáng chú ý là các chương bao gồm logic thứ nhất cũng như các lớp SNP, MaxSNP và APX (nền tảng lý thuyết về độ cứng của xấp xỉ), vốn bị thiếu trong các văn bản hiện đại hơn.0

Một cổ điển khác (tương đối) cũ, nhưng khá đáng chú ý là:

Đây là một trong số ít / sách giáo khoa đầu tiên bao gồm rõ ràng "Ý tưởng bằng chứng:" giữa "Định lý:" và "Bằng chứng:", và là một trong những sách giáo khoa toán học được viết tốt nhất về bất kỳ chủ đề nào . Mặt khác, nó chỉ là một phần giới thiệu phức tạp, chỉ dành một chương 50 trang cho "các chủ đề nâng cao" (bao gồm xấp xỉ, thuật toán xác suất, IP = PSPACE và tiền điện tử). Là một cuốn sách đầu tiên về sự phức tạp, hoặc là một ví dụ về văn bản thực sự xuất sắc, cuốn sách này là tuyệt vời .

Scott Aaronson viết rằng cuốn sách này có "niềm vui của một cuốn sách nổi tiếng với sức mạnh trí tuệ của một cuốn sách giáo khoa". Nó kể những câu chuyện và đưa ra rất nhiều ví dụ và tài liệu tham khảo thú vị (Game of Life, và rất nhiều ví dụ khác cho các máy hoàn chỉnh Turing). Nó không đi quá sâu vào lý thuyết phức tạp nhưng có bề rộng lớn. Đặc biệt lưu ý là các kết nối của nó với vật lý thống kê.


2
Để dành cho những người quan tâm đến việc những cuốn sách này so sánh với nhau như thế nào, tôi cũng có thể đưa ra đánh giá cuốn sách này về Arora / Barak và Goldreich mà tôi mới viết cho cột đánh giá sách SIGACT.
Daniel Apon

1
xem thêm danh sách các sách phức tạp tính toán yêu thích của Lance Fortnow trên Amazon: amzn.com/l/22R1UX0Y9YRT2
Alessandro Cosentino

5
Nhận xét duy nhất về cuốn sách của Sipser là đôi khi anh ta sử dụng tên không chuẩn khi trình bày lý thuyết tính toán. Ví dụ, anh ta sử dụng "dễ nhận biết" thay vì "bán quyết định". Nhưng tôi đoán vì sách giáo khoa được sử dụng rộng rãi, nên bây giờ nó có thể trở thành tiêu chuẩn.
Đại Lê

4
Trên thực tế, đó là một nhận xét tuyệt vời nói chung, @Dai Le. Tôi có thể nghĩ về sự khác biệt tương tự giữa Goldreich và Arora / Barak. Chẳng hạn, Goldreich sử dụng tên và Arora / Barak sử dụng tên , mặc dù cả hai đều nói về cùng một khái niệm. F N PPCFNP
Daniel Apon

1
Tôi đã tìm thấy Sipser hữu ích hơn nhiều so với Papadimitriou vì thực sự dạy lý thuyết phức tạp, ymmv.
Jeff Burdges

49

NP-Hoàn thành:

Chà, tôi đoán Máy tính và Độ hấp dẫn của Garey và Johnson : Hướng dẫn về Lý thuyết hoàn thiện NP sẽ được tìm thấy trong số những cuốn sách hàng đầu trong danh sách này.


6
Vẫn là giới thiệu tốt nhất cho lý thuyết phức tạp sau 30 năm.
Emil

1
Sau nhiều thập kỷ, cuốn sách này vẫn là danh sách đầy đủ nhất về các vấn đề NP hoàn chỉnh ở một nơi, rõ ràng, gần như một cuốn bách khoa toàn thư, và nhiều nhà nghiên cứu cs dường như chia sẻ quan điểm này
vzn

1
đề nghị điều này được thêm vào FAQ cho câu hỏi chung, "vấn đề X NP của tôi đã hoàn tất chưa?" với câu trả lời, "Đầu tiên hãy kiểm tra cuốn sách này trước và sau đó quay lại với chúng tôi"
vzn

47

Thiết kế & phân tích thuật toán:

Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest và Clifford Stein. Giới thiệu về thuật toán.

R. Motwani, P. Raghavan. Các thuật toán ngẫu nhiên.

Tôi tìm thấy cuốn sách này được đề xuất bởi Ryan Williams trên MathOverflow: Al Thuậtm Design của Kleinberg & Tardos .

Một cuốn sách xuất sắc khác là Giới thiệu về Thuật toán: Cách tiếp cận sáng tạo của Udi Manber . Cuốn sách này không phải là một danh mục các thuật toán; đúng hơn, nó cố gắng cung cấp cho người đọc trực giác để "nhận ra cấu trúc toán học trong các vấn đề trừu tượng". (trích dẫn từ một đánh giá)


7
"Giới thiệu về phân tích thuật toán" của Sedgewick và Flajolet là tuyệt vời.
Jay

Daniel Spielman sử dụng cuốn sách của Kleinberg và Tardos trong khóa học "Thiết kế và phân tích thuật toán" của mình. Tôi đã lấy nó, và thực sự yêu thích cuốn sách. Tôi thấy nó dễ tiếp cận hơn nhiều so với CLRS.
Alex Reinking


41

Loại hệ thống và ngữ nghĩa ngôn ngữ lập trình:

Các loại và ngôn ngữ lập trình của Benjamin Pierce khối lượng tiếp theo Các chủ đề nâng cao về các loại và ngôn ngữ lập trình . Họ cung cấp một cái nhìn tổng quan vững chắc nhưng dễ hiểu về vai trò của lý thuyết loại trong thiết kế ngôn ngữ lập trình, cùng với việc sử dụng ngữ nghĩa hoạt động để diễn đạt ngữ nghĩa ngôn ngữ lập trình.


7
Đối với một góc nhìn toán học hơn về lý thuyết loại, "Các bài giảng về sự đồng hình hóa Curry-Howard" của Sorensen và Urzyczyn là một khởi đầu tuyệt vời, cung cấp một cái nhìn tổng quan tốt về lambda-tính toán cho đến tính toán các công trình, và hơn thế nữa.
Đaminh Mulligan

4
Tôi muốn đề xuất nền tảng cho ngôn ngữ lập trình của John Mitchell về chủ đề này. Như trong bình luận trước, nó trưởng thành hơn về mặt toán học.
Artem Pelenitsyn

2
Upvote cho TAPL. FYI Benjamin Pierce là một trong những tác giả của cuốn sách mới "Tổ chức phần mềm" sử dụng Coq.
kunjan kshetri

40

Bất bình đẳng:

Một cuốn sách giá trị khác cho bất cứ ai trong ngành khoa học máy tính muốn ràng buộc bất kỳ số lượng nào (vì vậy, tất cả mọi người!) Là: Lớp học Master Cauchy-Schwarz: Giới thiệu về nghệ thuật bất bình đẳng toán học của Michael Steele.

Một cuốn sách bách khoa về chủ đề này là Từ điển bất bình đẳng . Mặc dù đây không phải là một cuốn sách để đọc bìa, nhưng thật tốt khi có nó theo ý của bạn. Xem thêm phần bổ sung của cuốn sách.

Hơn nữa, Wikipedia có một danh sách bất bình đẳng tuyệt vời .

Đối với các chủ đề cụ thể, bạn có thể tham khảo:


1
Nếu tôi có thể thêm một liên kết đến một cái gì đó mà bản thân tôi đã thu thập (từ nhiều nguồn khác nhau bao gồm cả một số ở trên), thì đây là một bảng cheat về sự bất bình đẳng phổ biến: lkozma.net/inequalities_cheat_sheet
László Kozma

1
Hardy, Littlewood, Polya, "Bất bình đẳng", một viên ngọc quý từ những năm 1930 (?)
kodlu

38

Hấp dẫn. Không ai đề cập đến tập Nghệ thuật lập trình máy tính của Donald E. Knuth . Một điều trị rất chi tiết của các chủ đề với các bài tập rất tốt.

Tôi đã tìm thấy những viên đá quý như 'lấy mẫu resorvoir' trong cuốn sách này chỉ để đề cập đến một ví dụ.


4
TAOCP vẫn có liên quan và Tập. 4A vừa được phát hành.
dbasnett

33

Như Sylvain Peyronnet đã đề cập, logic là một phần quan trọng của khoa học máy tính lý thuyết. Tuy nhiên, học logic từ sách giáo khoa dành cho các nhà toán học thuần túy là không đủ. Nói cách khác, điều quan trọng là học logic từ góc độ "khoa học máy tính" hơn.

Lý thuyết mô hình hữu hạn

Chúng tôi muốn học các kỹ thuật xử lý các cấu trúc hữu hạn. Người ta biết rằng nhiều công cụ truyền thống từ lý thuyết mô hình, ví dụ, tính gọn nhẹ và định lý Löwenheim - Skolem, không áp dụng được cho các mô hình hữu hạn. Điều này dẫn chúng ta đến nghiên cứu về Lý thuyết mô hình hữu hạn . Đối với lĩnh vực này, tôi đề nghị những cuốn sách tuyệt vời sau:

Một tiểu vùng của lý thuyết mô hình hữu hạn là độ phức tạp mô tả , trong đó chúng ta muốn mô tả các lớp phức tạp theo loại logic cần thiết để xác định các ngôn ngữ. Tham chiếu dứt khoát cho độ phức tạp mô tả là:

Độ phức tạp chứng minh

Một lĩnh vực logic quan trọng khác trong khoa học máy tính là Proof Complexity , một nghiên cứu về mối quan hệ ba chiều giữa các lớp phức tạp, hệ thống logic yếu và hệ thống chứng minh mệnh đề. Hai khía cạnh liên quan sau đây được xem xét: (i) độ phức tạp của chứng minh các công thức mệnh đề và (ii) nghiên cứu các lý thuyết yếu về số học, được gọi là số học giới hạn .

Aspect (i) phải làm với câu hỏi sau: "Có một hệ thống chứng minh mệnh đề trong đó mọi tautology có một bằng chứng về đa thức kích thước trong kích thước của tautology?"

CVCVCC

PVPV

Đối với các khảo sát xuất sắc về độ phức tạp của bằng chứng, tôi đề xuất hai cuốn sách sau:

PV0

Cuốn sách của Krajíček khó khăn hơn một chút vì ông cho rằng độc giả đã quen thuộc với logic toán học và lý thuyết mô hình (hoặc sẵn sàng tìm hiểu nền tảng cần thiết trên đường đi). Nhưng bạn sẽ học được rất nhiều từ việc đọc và hiểu cuốn sách này.


32

Thuật toán ngẫu nhiên:

Xác suất và tính toán: Các thuật toán ngẫu nhiên và phân tích xác suất của Michael Mitzenmacher và Eli Upfal.

Cuốn sách tuyệt vời để giải thích những điều cơ bản của các thuật toán ngẫu nhiên. Các ví dụ và bằng chứng được giải thích rất rõ ràng, và dễ làm theo. Ngoài ra, các bài tập rất thú vị để làm.

(trả lời bởi Marcos Villagra)

Phân tích các thuật toán ngẫu nhiên:

Bất cứ ai làm việc trong các thuật toán nên có Nồng độ đo lường để phân tích các thuật toán ngẫu nhiên , cũng có sẵn để tải xuống ở định dạng PDF tại đây .


3
Cuốn sách này đã được đề xuất trong một chủ đề khác (tôi nghĩ bởi Suresh). Tôi thấy nó xuất sắc. Cảm ơn Aaron đã đề cập đến nó ở đây.
MS Dousti

29

Mật mã:

Cuốn sách hai tập Cơ sở về Mật mã học của Oded Goldreich ( Tập 1: Công cụ cơ bảnTập 2: Ứng dụng cơ bản ) là một cuốn sách xuất sắc về chủ đề này. (Bản nháp sớm có sẵn từ trang chủ của tác giả .) Phiên bản rút gọn của cuốn sách này cũng có sẵn.

Một cuốn sách xuất sắc khác là Giới thiệu về Mật mã học hiện đại: Nguyên tắc và giao thức của Katz & Lindell.

Đối với những người quan tâm đến nền tảng toán học của mật mã học, Giới thiệu về Mật mã học toán học của Hoffstein et al. là sự lựa chọn tự nhiên.

Những cuốn sách tuyệt vời khác là:


Chủ đề cụ thể:


2
Kể từ khi được giới thiệu vào năm 1993, các nhà tiên tri ngẫu nhiên đã được sử dụng rộng rãi trong văn học; đặc biệt trong các chương trình chữ ký. Tôi không biết một cuốn sách bao gồm khu vực này một cách thích hợp. Đề nghị được chào đón.
MS Dousti

1
Một cuốn sách về các nhà tiên tri ngẫu nhiên sẽ là một trợ giúp rất lớn. Tôi không làm việc với tiền điện tử, nhưng tôi đã đọc trực tiếp Katz / Lindell. Việc chuyển đổi từ sách giáo khoa sang văn học tiền điện tử rất khó khăn vì lý do cụ thể này. Ngoài ra, @Sadeq, vì tò mò: Có bất kỳ cuốn sách nào bạn đọc có độ phủ tốt của tua lại không?
Daniel Apon

1
@Daniel: Luận án của Martin Gagné "Một nghiên cứu về mô hình Oracle ngẫu nhiên" (UC Davis, 2008) là một tài liệu tham khảo tương đối tốt về các nhà tiên tri ngẫu nhiên (mặc dù vẫn chưa hoàn thành). Về câu hỏi "tua lại": Tôi không biết một cuốn sách nào về nó, nhưng tôi nghĩ tôi đã hoàn toàn nắm bắt được nó. Bạn có thể vui lòng giải thích phần nào có vẻ có vấn đề với bạn? Bạn thậm chí có thể hỏi nó về một chủ đề riêng biệt.
MS Dousti

@Sadeq, tôi có xu hướng không bắt đầu một câu hỏi độc lập về nó, bởi vì nó sẽ ít hơn một chút so với "Trợ giúp, tua lại là gì?" :) Phần có vấn đề là việc tua lại không có trong sách giáo khoa được sử dụng trong khóa học về tiền điện tử mà tôi đã học (ví dụ Katz / Lindell), vì vậy tôi chưa bao giờ thấy phần giới thiệu về khái niệm này. Tôi biết rằng nó xuất hiện thường xuyên trong tài liệu về tiền điện tử, nhưng vì một người nào đó không tích cực tham gia nghiên cứu về tiền điện tử, tôi nghi ngờ tôi sẽ đọc đủ các bài báo để có được sự hiểu biết vững chắc về việc tua lại chỉ bằng cách gặp đủ. Có lẽ tôi có thể hỏi một câu hỏi về nguồn gốc của tua lại ...
Daniel Apon

3
@Daniel: Việc giới thiệu cuốn sách của tôi về kiến ​​thức không đồng thời giải thích việc tua lại và những khó khăn do nó gây ra trong bối cảnh cấu thành giao thức. Các nguồn khác là: (1) Oded Goldreich, Hugo Krawchot: Về thành phần của các hệ thống chứng minh không kiến ​​thức. SIAM J. Tính toán. 25 (1): 169-192 (1996) và (2) Cynthia Dwork, Moni Naor, Amit Sahai: Không có kiến ​​thức đồng thời. J. ACM 51 (6): 851-898 (2004).
Alon Rosen

25

Lập trình chức năng

  • Cấu trúc dữ liệu chức năng thuần túy của Chris Okasaki . Hầu hết các cuốn sách về cấu trúc dữ liệu giả định một ngôn ngữ bắt buộc như C hoặc C ++. Tuy nhiên, cấu trúc dữ liệu cho các ngôn ngữ này không phải lúc nào cũng dịch tốt sang các ngôn ngữ chức năng. Cuốn sách này là một trong những giải trình tốt nhất về việc thực hiện các cấu trúc dữ liệu & thuật toán bằng ngôn ngữ chức năng.
  • Lập trình chức năng: Thực hành và lý thuyết của Bruce J. Maclennan . Mặc dù tên của nó, cuốn sách này thiên về lý thuyết hơn là định hướng thực hành. Những người đọc cuốn sách này sẽ có cái nhìn tốt hơn về chủ đề này so với những người học nó bằng lập trình ad-hoc.
  • Ngọc trai của thiết kế thuật toán chức năng của Richard Bird . Một giải trình hoàn toàn mới về chủ đề này, đưa ra cách tiếp cận giải pháp vấn đề và cho thấy vẻ đẹp của lĩnh vực này bằng cách thể hiện những ý tưởng hấp dẫn trong việc thiết kế các thuật toán chức năng.
  • Lập trình được chứng nhận với các loại phụ thuộc của Adam Chlipala . Đây là một trong những tài nguyên tốt nhất khi học Coq và đặc biệt tập trung vào cách tự động hóa chứng nhận chương trình và định lý chứng minh bằng cách sử dụng các hệ thống dựa trên logic / quy tắc. Ví dụ rất rộng và dễ làm theo.

21

Các thuật toán gần đúng

Cuốn sách Thuật toán xấp xỉ của Vazirani là cuốn sách hay nhất về chủ đề này. Một cuốn sách khác là Thuật toán xấp xỉ cho các vấn đề NP-Hard của Hochbaum.

Dưới đây là so sánh của hai nhà phê bình:

Tôi đã sử dụng cuốn sách của Dorit Hochbaum về các thuật toán gần đúng cho các vấn đề NP-Hard làm kim chỉ nam cho công việc của tôi. Không nghi ngờ gì nữa, cuốn sách của Hồ Chí Minh là tuyệt vời. Tuy nhiên, định dạng khảo sát đã thỏa hiệp một dòng chảy thuận lợi để tập hợp những người giỏi nhất trong lĩnh vực này. Cuốn sách của Vazirani sửa chữa điều này bằng cách rất mượt mà và thanh lịch từ đầu đến cuối. Bộ vấn đề tuyệt vời, gợi ý tuyệt vời cho hầu hết các vấn đề, và có một phần ở cuối cuốn sách dành cho các vấn đề mở, đó là một tính năng thực sự thú vị.

Tôi đã tìm kiếm những cuốn sách liên quan đến việc giải quyết các vấn đề NP-Complete và NP-hard. Có một cuốn sách khác của Hochbaum và tôi cũng có cuốn sách đó. Thật không may, cuốn sách đó là một cuốn sách định hướng nghiên cứu vì nó được viết bởi một số nhà nghiên cứu. Nó giống như đọc một số tài liệu nghiên cứu trong hai bìa cứng. Điều này có nghĩa là người ta cần phải có một loại kinh nghiệm trung cấp với các thuật toán gần đúng.

Một cuốn sách gần đây là Thiết kế các thuật toán gần đúng của Williamson và Shmoys.


21

Kết hợp

Sách giới thiệu. Bất kỳ cuốn sách nào sau đây cũng có thể đóng vai trò giới thiệu tuyệt vời về chủ đề này:

Văn bản nâng cao hơn.

  • Kết hợp toàn diện, Tập 1 & Tập 2 của Stanley. Nó chỉ đơn giản là một kiệt tác về tổ hợp liệt kê; rất thách thức, rất sâu sắc.
  • Các thuật toán kết hợp: Tạo, liệt kê và tìm kiếm bởi Kreher & Stinson. Phù hợp hơn với các ứng dụng khoa học máy tính của tổ hợp.
  • Kết hợp phụ gia của Terence Tao và Van H. Vu. Một tài liệu tham khảo rất hữu ích khi đối mặt với một vấn đề tổ hợp liên quan đến lý thuyết số.

21

Kết hợp

Tôi muốn trích dẫn Combinatorics phân tích , bởi Philippe Flajolet và Robert Sedgewick. Nó cung cấp một nền tảng toán học mạnh mẽ để liệt kê và phân tích các thuật toán. Tôi cũng muốn bày tỏ lòng kính trọng đối với Philippe Flajolet, người đã chết hai ngày trước và là một nhà toán học và nhà khoa học máy tính tuyệt vời.


20

Xác minh chương trình


1
Một số cuốn sách (Manna và Apt và cộng sự) khá cũ (Manna là từ năm 1977 và Apt et al từ năm 1991), lĩnh vực xác minh chương trình dựa trên logic đã chứng kiến ​​sự tiến bộ lớn trong thập kỷ qua. Than ôi, không có văn bản cập nhật có sẵn.
Martin Berger

@MartinBerger Bất kỳ gợi ý nào về tiến trình quan trọng này có thể được học về, nếu nó không có trong bất kỳ sách giáo khoa gần đây?
Mitch

@Mitch Tôi sợ rằng chưa được viết trong sách giáo khoa. Có thể nhìn vào một số tài liệu về các công cụ tương tác như Isabelle / HOL và Coq. Cũng xem các công cụ xác minh tự động gần đây như "suy luận" của Facebook và lý thuyết đằng sau nó.
Martin Berger

Huth & Ryan rất thân thiện với người mới bắt đầu. Đối với một người không quen thuộc với tất cả các môn toán khắt khe trong CS, đó là một khởi đầu tốt. Đó là cuốn sách đầu tiên tôi đọc về khía cạnh chính thức của CS và khiến tôi bị cuốn hút kể từ đó! Đây cũng là cuốn sách giáo khoa đầu tiên mà tôi thực sự đã hoàn thành tất cả các bài đọc.
RexYuan

19

Lý thuyết thông tin

Lý thuyết thông tin, suy luận và thuật toán học tập của David MacKay

Sách giáo khoa nổi tiếng khác về lý thuyết thông tin có thể được tìm thấy trên Wikipedia .


Tiêu đề là "Mọi người nên đọc những cuốn sách nào?", Vì vậy khuyến nghị nên được chọn lọc. Bất cứ ai cũng có thể tìm thấy một danh sách lớn các cuốn sách về "lý thuyết thông tin" từ Amazon / thư viện, nhưng nếu bạn chỉ có 2-3 lựa chọn, chúng sẽ là gì? Bạn chỉ nên giới thiệu những cuốn sách hoặc bài viết mà bạn đã đọc khá cẩn thận và thu hẹp vào mục yêu thích tuyệt đối của bạn!
Đại Lê

1
@Dai Lê: Bạn nói đúng. Tôi nghĩ rằng danh sách nên được thu hẹp. (Cá nhân tôi chịu trách nhiệm làm đầy danh sách!) Tuy nhiên, đây là một bài viết wiki cộng đồng . Tôi đã thêm một danh sách dài gợi ý các ứng cử viên là gì. Vui lòng cắt danh sách để chỉ bao gồm những cuốn sách phù hợp nhất.
MS Dousti

1
@Sadeq: Tôi e rằng hiếm khi xảy ra trường hợp một người sẽ cắt giảm danh sách của người khác. Miễn là bài viết vẫn ở dạng hiện tại, nó hoàn toàn vô giá trị đối với mục đích của bài đăng.
Đại Lê

@Dai: Bạn nói đúng. Nhưng, vì tôi không phải là chuyên gia về "lý thuyết thông tin", tôi không thể tự cắt danh sách. Tôi có thể: 1) xóa danh sách tôi đã thêm hoàn toàn (để lại danh sách ban đầu) hoặc 2) Thêm thông báo trong văn bản để thu hút sự chú ý của chuyên gia. Bạn có đề nghị gì?
MS Dousti

@Sadeq: Tôi cũng không làm việc trên lý thuyết thông tin, nếu không tôi sẽ giúp cắt bớt danh sách. Tôi biết rằng cuốn sách "Thomas M. Cover, Joy A. Thomas. Các yếu tố của lý thuyết thông tin" được nhiều người trong đó có Lance Fortnow khuyên dùng. Nhưng tôi không chắc liệu mọi người có nên đọc nó hay không. Tôi nghĩ chúng ta nên tôn trọng poster gốc vì cuốn sách có thể là cuốn sách yêu thích nhất của anh ấy. Vì vậy, xóa toàn bộ danh sách là một lựa chọn tốt. Tôi thực sự xin lỗi vì quá đơn giản. Ngoài ra bạn có thể yêu cầu mọi người giải thích lý do tại sao họ đề xuất sách của họ?
Đại Lê

19

Thuật toán phân tán

Thuật toán phân tán của Nancy Lynch Đây là một văn bản cổ điển được viết bởi người tiên phong về điện toán phân tán;

Giới thiệu về thuật toán phân tán của Gerard Tel Giới thiệu rất tốt, cũng phù hợp cho các khóa học đại học; tập trung vào mô hình truyền tin nhắn

Máy tính phân tán: Nguyên tắc cơ bản, mô phỏng và chủ đề nâng cao của Hagit Attiya và Jennifer Welch Tài liệu này chứa các tài liệu nâng cao, phù hợp cho các khóa học cấp tiến sĩ; cả hai mô hình truyền tin và bộ nhớ chia sẻ đều được thảo luận

Thiết kế và phân tích các thuật toán phân tán của Nicola Santoro Một cuốn sách tương đối gần đây, có thể được sử dụng cả ở cấp đại học và tiến sĩ; tài liệu được trình bày với sự nhấn mạnh vào thiết kế giao thức


19

Tính toán lượng tử

Hai cuốn sách giới thiệu tuyệt vời khác về chủ đề này là:



17

Tổ hợp truyền thông:


Sự phức tạp trong giao tiếp của Eyal Kushilevitz và Noam Nisan.

Đây là một cuốn sách cổ điển và được viết rất tốt. Mặc dù bây giờ hơi cũ, nhưng vẫn là cuốn sách giới thiệu tốt nhất cho lĩnh vực này. Ngoài ra, các bài tập cực kỳ thú vị, và được đưa ra chính xác sau khi giải thích các khái niệm để bạn có thể sửa những gì bạn vừa học.

Một phần của sự phức tạp trong giao tiếp ngẫu nhiên nên được bổ sung với các phần của cuốn sách đầu tiên.


Độ phức tạp trong giao tiếp và tính toán song song của Juraj Hromkovič.

Rất đầy đủ, mặc dù đôi khi hơi khó đọc. Các giải thích trực quan là rất rõ ràng, và các bài tập rất tốt đẹp. Trong phần thứ hai, nó trình bày các kết nối với tính toán song song.


16

Một số khác, tuyệt vời cho phân tích Boolean Fourier (như tiêu đề gợi ý) và bao gồm cả những điều cơ bản, chủ đề nâng cao hơn và (nhiều) ứng dụng, là Phân tích chức năng Boolean , của Ryan O'Donnell (2014). Nó có sẵn trực tuyến miễn phí ở đây là tốt.
Clement C.

16

Đại số tính toán

Như Shiva đã nói trong câu trả lời này , văn học trong lĩnh vực này nằm rải rác khắp nơi, không có thuật ngữ chung. Người ta có thể tìm thấy các tài liệu tham khảo hữu ích bằng cách tìm kiếm "tính toán biểu tượng", "lý thuyết phức tạp đại số", "đại số máy tính" hoặc "đại số tính toán". Như được đề xuất trong câu trả lời cho câu hỏi này ,

Phân tích tính toán

Một lĩnh vực thú vị cũng, liên quan đến tính toán trong các chức năng thực sự. Còn được gọi là "phân tích tính toán" hoặc "tính toán tính toán".


16

Kết hợp

Hàm tạo , bởi Herbert S. Wilf, là một giới thiệu tuyệt vời về lý thuyết tạo hàm, được viết một cách trơn tru và được đóng gói với các bài tập. Nếu anh ấy viết tất cả những cuốn sách của mình như thế, tôi không thể chờ để bắt đầu một cuốn khác.

Kết hợp toàn diện của Richard Stanley là một tài liệu tham khảo tuyệt vời (nâng cao).

Kết hợp: chủ đề, kỹ thuật, thuật toán của Peter Cameron và Lời mời toán học rời rạc của Matousek và Nesetril là những lời giới thiệu tốt cho tổ hợp.

Ứng dụng kết hợp của Roberts và Tesman là một tài liệu tham khảo bách khoa toàn thư về tổ hợp ứng dụng.



14

3
Làm thế nào điều này so sánh với "Làm thế nào để giải quyết nó" của G. Polya? Tôi nghĩ rằng tôi đã đọc lời khuyên rằng Polya là bản gốc và tốt hơn nhiều, nhưng tôi không chắc chắn và không thể từ chối nó trên các interwebs;)
DaveBall aka user750378

2
"Cách giải quyết" của Polya (HTSI) đề cập đến một chủ đề khác với cuốn sách của Velleman. Polya là một loại tin đồn về cách tìm giải pháp cho các vấn đề khó khăn, trong khi Velleman là một cuốn sách giáo khoa về cách chính thức hóa các giải pháp bằng cách sử dụng các quy ước và ngôn ngữ toán học. HTSI có thông tin về bằng chứng, nhưng nó được trình bày dưới dạng "bảng chú giải" không có cấu trúc, trong khi Velleman trình bày cho bạn một chương trình giảng dạy có hệ thống với các bài tập. Cả hai đều đáng đọc, nhưng cái này không thay thế cái kia.
Nate CK

13

Lý thuyết số

Tôi tìm thấy một số cuốn sách thường được trích dẫn trong nhiều bài báo. Họ xuất sắc về chủ đề này, nhưng một số trong số họ khá cũ. Đây là danh sách những gì tôi nhớ lại:


Bạn nghĩ gì về cuốn sách của Rosen, hoặc tái bản Dover?
Đánh dấu C

@Mark: Họ cũng tốt. Tại sao không chỉnh sửa bài đăng, và thêm những cuốn sách đó?
MS Dousti



11

Lý thuyết đồ thị

Giới thiệu về lý thuyết đồ thị: Giới thiệu về Lý thuyết đồ thị của phương Tây

Thông tin thêm về lý thuyết đồ thị: Lý thuyết đồ thị của Bondy và Murty

Cuốn sách toàn diện chứa những phát triển mới cũng như kết quả cổ điển cũ trong lý thuyết đồ thị:

Lý thuyết đồ thị: Reinhard Diestel .

Đối với đồ thị trên các bề mặt với phương pháp tổ hợp:

Đồ thị trên các bề mặt

Và đối với máy in:

Sơ đồ: Lý thuyết, Thuật toán và Ứng dụng


1
Ngoài ra còn có Lý thuyết đồ thị của Claude Berge, một trong những người sáng lập lý thuyết đồ thị. Và đồ thị và thuật toán của Michel Minoux và Michel Gondran.
Lamine

9

Thiết kế VLSI

Tôi không vào phần cứng. Tuy nhiên, vì Câu hỏi thường gặp bao gồm VLSI là một trong những lĩnh vực con của TCS, tôi đã hỏi một chuyên gia về những cuốn sách nổi tiếng trong thiết kế VLSI. Họ đây rồi:


Trong lĩnh vực này, tôi muốn giới thiệu cuốn sách cực kỳ dễ đọc này: Tổng hợp và tối ưu hóa các mạch kỹ thuật số của Giovanni De Micheli
Chan Li
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.