Tôi có vấn đề thuật toán sau:
Xác định độ phức tạp Turing của việc nhận dạng các chuỗi DNA là các palindromes Watson-Crick.
Watson-Crick palindromes là các chuỗi có bổ sung đảo ngược là chuỗi ban đầu. Phần bù được định nghĩa là chữ cái, lấy cảm hứng từ DNA: A là phần bù của T và C là phần bù của G. Một ví dụ đơn giản cho WC-palindrom là ACGT.
Tôi đã đưa ra hai cách để giải quyết điều này.
Một yêu cầu không gian .
- Khi máy đã đọc xong đầu vào. Băng đầu vào phải được sao chép vào băng làm việc theo thứ tự ngược lại.
- Sau đó, máy sẽ đọc băng đầu vào và băng làm việc từ bên trái và so sánh từng mục để xác minh ô trong băng làm việc là lời khen của ô trong đầu vào. Điều này đòi hỏi không gian .
Cái kia yêu cầu không gian .
- Trong khi đọc đầu vào. Đếm số lượng mục trên băng đầu vào.
- Khi băng đầu vào được đọc xong
- sao chép phần bổ sung của thư vào băng công việc
- sao chép chữ L vào cuối băng công việc
- (Điểm vòng lặp) Nếu bộ đếm = 0, hãy xóa worktape và viết có, sau đó tạm dừng
- Nếu băng đầu vào đọc L
- Di chuyển đầu vào sang trái theo số lần được chỉ định bởi bộ đếm (yêu cầu bộ đếm thứ hai)
- Nếu băng đầu vào đọc R
- Di chuyển đầu vào sang phải theo số lần được chỉ định bởi bộ đếm (yêu cầu bộ đếm thứ hai)
- Nếu ô giữ giá trị trên worktape khớp với ô hiện tại trên băng đầu vào
- giảm số lượt truy cập của hai
- Di chuyển một sang trái hoặc phải tùy thuộc vào R hoặc L trên worktape tương ứng
- sao chép phần Bổ sung của L hoặc R vào bản in thay cho L hoặc R hiện tại
- tiếp tục vòng lặp
- Nếu các giá trị không khớp, xóa bảng làm việc và viết không, sau đó tạm dừng
Điều này xuất hiện khoảng không gian để lưu trữ cả hai bộ đếm, phần bù hiện tại và giá trị L hoặc R.
Vấn đề của tôi
Cái đầu tiên đòi hỏi cả thời gian và không gian tuyến tính. Cái thứ hai yêu cầu time và space. Tôi đã đưa ra vấn đề từ trích dẫn và đưa ra hai cách tiếp cận này, nhưng tôi không biết nên dùng cái nào. Tôi chỉ cần đưa ra sự phức tạp không gian của vấn đề.
Lý do tôi bối rối
Tôi có xu hướng nói rằng cái thứ hai là lựa chọn tốt nhất vì nó tốt hơn về mặt thời gian, nhưng câu trả lời đó chỉ xuất phát từ việc tôi gặp may mắn và tìm ra thuật toán. Có vẻ như nếu tôi muốn tạo ra sự phức tạp cho không gian của một thứ gì đó, nó sẽ không đòi hỏi sự may mắn khi đưa ra thuật toán phù hợp. Tui bỏ lỡ điều gì vậy? Tôi thậm chí có nên đưa ra một giải pháp cho vấn đề để trả lời cho sự phức tạp của không gian không?