Học ở đâu về Khoa học máy tính lý thuyết là gì?


15

Tôi là một sinh viên tốt nghiệp về toán học, và khoa học máy tính lý thuyết là một lĩnh vực mà tôi không bao giờ hiểu nó là gì vì tôi không thể tìm thấy một bài đọc tốt về chủ đề này. Tôi muốn biết tên miền này thực sự là về cái gì, loại chủ đề nào được quan tâm, những điều kiện tiên quyết cần thiết để bắt tay vào nó, v.v. Bây giờ, tôi chỉ muốn biết:

Một cuốn sách giới thiệu tốt cho khoa học máy tính lý thuyết là gì?

Cho rằng có một điều như vậy. Nếu không, một nhà toán học có kiến ​​thức cơ bản về khoa học máy tính (nghĩa là họ biết những điều cơ bản của một hoặc hai ngôn ngữ lập trình) nên bắt đầu nếu họ muốn hiểu về khoa học máy tính lý thuyết là gì? Bạn đề xuất món gì?

cảm ơn!


1
Câu hỏi tuyệt vời. Tôi thực sự thua lỗ. CS lý thuyết rất rộng và đa dạng, tôi nghi ngờ bất kỳ ai đã cố gắng khảo sát tất cả ở một nơi duy nhất. Có những cuốn sách giới thiệu, chẳng hạn như "Lý thuyết tính toán" của Sipser hoặc "Thuật toán" của Dasgupta, Papadimitriou và Vazirani. Nhưng những điều đó giống như điều kiện tiên quyết đại học và sẽ không đưa ra ý tưởng về việc TCS hiện tại "thực sự là gì" ...
usul

6
Câu hỏi quá rộng. Sau đó, người ta có thể hỏi như nhau: "Học thêm về toán học là gì?". Do đó, người ta nên nhìn vào các lĩnh vực của TCS gần với toán học, như lý thuyết phức tạp, mật mã học, xấp xỉ. Nói, độ phức tạp của mạch chỉ là một phần của Kết hợp cực trị. Cuốn sách của Sipser thực sự tuyệt vời: đó là một quan điểm của các nhà toán học tại TCS (một phần nhỏ của nó, không cần phải nói); Sipser mình thực sự là một nhà toán học.
Stasys

2
Văn bản sắp tới của Avi Wigderson là một tài nguyên tuyệt vời: math.ias.edu/avi/book
András Salamon

Câu trả lời:


29

Đầu tiên, "khoa học máy tính lý thuyết" có nghĩa là những thứ khác nhau đối với những người khác nhau. Tôi nghĩ rằng đối với hầu hết người dùng trên trang web này, một bức tranh biếm họa lịch sử (phản ánh một số khuynh hướng xã hội học hiện đại) là có "Lý thuyết A" và "Lý thuyết B" (không có quan hệ trật tự ngụ ý giữa chúng): Lý thuyết A bao gồm lý thuyết về thuật toán, lý thuyết phức tạp, mật mã, và tương tự. Lý thuyết B bao gồm những thứ như lý thuyết về ngôn ngữ lập trình, lý thuyết về automata, v.v. Tùy thuộc vào thị hiếu của bạn trong toán học, bạn có thể thích cái này hơn cái kia (hoặc giống như cả hai). Tôi quen thuộc hơn với "Lý thuyết A", vì vậy hãy để tôi đưa ra một số tài liệu tham khảo ở đó:

  • Bắt đầu với cuốn sách của Sipser. Điều này sẽ cung cấp cho bạn một giới thiệu tốt về automata, máy Turing, khả năng tính toán, độ phức tạp Kolmogorov, P vs NP và một vài lớp phức tạp khác. Nó được viết rất tốt (theo tôi, nó là một trong những cuốn sách kỹ thuật được viết tốt nhất từ trước đến nay )

  • Đối với các thuật toán, tôi có một sở thích nhỏ đối với Kleinberg-Tardos, nhưng có rất nhiều cuốn sách giới thiệu hay ngoài kia. Bạn có thể đặc biệt quan tâm đến hình học tính toán, trong đó có bộ sách tuyệt vời của riêng mình.

  • Cho rằng bạn là một sinh viên tốt nghiệp toán học, một nhánh chính của TCS bị thiếu trong những cuốn sách này là lý thuyết phức tạp đại số , thường liên quan chặt chẽ đến đại số (cả giao hoán và không giao hoán), lý thuyết đại diện, lý thuyết nhóm và hình học đại số . Có một văn bản kinh điển ở đây, đó là Burgisser-Clausen-Shokrollahi. Nó là hơi bách khoa, như vậy có thể không phải là giới thiệu tốt nhất, nhưng tôi không chắc chắn có một cuốn sách thực sự giới thiệu trong lĩnh vực này. Bạn cũng có thể kiểm tra các cuộc khảo sát của Chen-Kayal-Wigderson và Shiplka-Yehudayoff.

Sau đó, tôi khuyên bạn nên duyệt qua các sách nâng cao hơn về các chủ đề cụ thể, tùy thuộc vào sở thích toán học của bạn:

  • Arora-Barak là lý thuyết phức tạp hiện đại hơn (tiếp tục là nơi cuốn sách của Sipser kết thúc), mang đến cho bạn một hương vị của các kỹ thuật liên quan (chủ yếu là sự kết hợp của đại số và đại số)

  • Cuốn sách của Jukna về độ phức tạp của hàm Boolean cũng tương tự, nhưng sâu hơn về độ phức tạp của mạch Boolean nói riêng (rất kết hợp trong hương vị)

  • Lý thuyết phức tạp hình học. Xem ở đây hoặc giới thiệu của Landsberg cho địa lý .

  • Cuốn sách Phân tích các hàm Boolean của O'Donnell có nhiều phân tích Fourier hơn.

  • Mật mã học. Các khía cạnh toán học tiên tiến hơn ở đây thường là lý thuyết số và hình học đại số. Mặc dù các khía cạnh toán học thuần túy này chỉ chiếm một phần nhỏ trong mật mã, chúng là một khía cạnh quan trọng mà bạn có thể thấy thú vị. Không phải là khu vực của tôi, tôi không chắc cuốn sách khởi đầu tốt ở đây là gì.

  • Lý thuyết mã hóa. Ở đây, lý thuyết toán học bao gồm từ đóng gói hình cầu (xem cuốn sách của Conway và Sloane) đến hình học đại số (ví dụ, cuốn sách của Stichtenoth). Một lần nữa, không phải khu vực của tôi, vì vậy tôi không chắc đây có phải là điểm khởi đầu tốt nhất hay không, nhưng lướt qua chúng bạn sẽ nhanh chóng có được hương vị và quyết định xem bạn có muốn tìm hiểu sâu hơn không.

Và sau đó, có nhiều chủ đề toán học khác chỉ xuất hiện trong tài liệu nghiên cứu, như các mối liên hệ với bọt, lý thuyết đồ thị, C * -achebras (hãy để tôi chỉ cho bạn phỏng đoán Kadison-Singer ), lý thuyết bất biến, lý thuyết biểu diễn, tứ giác, và trên và trên. Xem thêm những câu hỏi liên quan


2
Một cuốn sách khởi đầu tốt về mật mã học là Giới thiệu về Mật mã học hiện đại của Katz-Lindell: cs.umd.edu/~jkatz/imc.html - Một lựa chọn thay thế (cũ hơn) là Cơ sở của Mật mã học bởi Goldreich: Wis.weizmann.ac.il /~oding/foc-book.html
Daniel Apon

4

Bản chất của tính toán của Cristopher Moore và Stephan Mertens.


Tôi thích cuốn sách này - tôi đã không đề xuất nó trong câu trả lời của mình chủ yếu cho độ dài của nó, mặc dù tất nhiên người ta luôn có thể chọn và chọn các chương để đọc.
Joshua Grochow
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.