Tôi là một sinh viên đại học toán học (sẽ bắt đầu năm thứ ba của tôi rất sớm). Tôi đang cố gắng dạy cho bản thân sự phức tạp tính toán. Đáng buồn thay, không có khóa học được cung cấp trong trường đại học của tôi về chủ đề này và không có chuyên gia về nó (Trên thực tế, có vẻ như trường đại học của tôi không có chuyên gia về CS lý thuyết nào cả). Vì vậy, tôi không có lựa chọn để học chủ đề ngoại trừ thông qua tự học. Tôi đã trải qua một vài chương đầu tiên về độ phức tạp tính toán: Cách tiếp cận hiện đại [nhưng tôi không giải quyết bất kỳ bài tập nào (ngoại trừ hai hoặc ba trong chương đầu tiên tiết lộ vấn đề của TM và Dừng lại)]
Tôi phải đối mặt với một số vấn đề với các bài tập trong văn bản:
một điều là tôi cảm thấy rằng kiểu suy nghĩ cần thiết trong sự phức tạp tính toán khá khác so với toán học mà tôi quen thuộc (Có một sự nhấn mạnh về tư duy thuật toán, v.v. và làm thế nào để giảm các vấn đề sang các vấn đề khác và tạo ra một TM mô phỏng một TM khác, v.v.) đó là điều tôi cảm thấy khó khăn.
Có cách nào để bạn đề nghị giúp tôi phát triển mức độ trưởng thành này về các thuật toán, giảm bớt không?
Một lý do khó khăn của "1" là tôi không biết nên nghiêm ngặt đến mức nào? Ví dụ, khi tôi thực hiện giảm hoặc mô phỏng, có thể tôi có thể thấy bằng trực giác rằng một cái gì đó rõ ràng và có thể được thực hiện nhưng các chi tiết sẽ rất rất tẻ nhạt để thực hiện và do đó tôi cảm thấy rằng tôi không hiểu điều này rất tốt Vấn đề là, tôi biết rằng phải có sự thỏa hiệp giữa sự nghiêm khắc và suy nghĩ trực giác. Nhưng vì tôi không có người hướng dẫn cũng như người hướng dẫn, tôi không biết dòng này nên ở đâu.
Khi nào tôi nên thực hiện tất cả các chi tiết nếu một cái gì đó rõ ràng và khi nào tôi nên hài lòng với trực giác? Dường như có nhiều chi tiết về độ phức tạp tính toán hơn thường có trong toán học mà tôi biết và do đó, nên thỏa hiệp ở đâu?
Tôi tự hỏi liệu có tồn tại bất kỳ nguồn bài tập nào không dễ hơn các bài tập được cung cấp trong độ phức tạp tính toán: Một cách tiếp cận hiện đại để tôi có thể tự rèn luyện các khái niệm cơ bản \ công trình, v.v. trước khi giải quyết các bài tập phức tạp hơn. Ngoài ra, một nguồn chứng minh (khá chi tiết) của các định lý chính sẽ rất tuyệt vời vì nhiều định lý chỉ có một bản phác thảo chứng minh trong văn bản.
Đối với nền tảng của tôi, tôi đã học các kiến thức cơ bản về lập trình (tôi đã được đào tạo một thời gian về python, C và C ++) nhưng tôi không quen lắm với toán học logic toán học đặc biệt (các định lý hoàn chỉnh và không đầy đủ), tập nâng cao lý thuyết (buộc), Đại số (tuyến tính, trừu tượng, đại số phổ quát và một số lý thuyết thể loại) và cơ bản của phân tích cấu trúc liên kết và thực tế. Tôi cũng đã tham gia một khóa học về toán học rời rạc (tổ hợp + lý thuyết đồ thị).
Tôi xin lỗi nếu câu hỏi của tôi không có chủ đề nhưng tôi biết không có nơi nào tốt hơn để đề xuất những câu hỏi đó hơn ở đây.