Nếu bạn sử dụng các toán tử (nghĩa là bạn không bao gồm toán tử nguồn), thì tất cả các vấn đề của bạn đều có thể quyết định được.{+,−,×,/}
Kiểm tra đẳng thức bằng không
Chẳng hạn, hãy xem xét . Sau đó, bạn có thể coi là ký hiệu chính thức, sao cho mỗi lá là một đa thức trong (ví dụ: số nguyên là đa thức ; là đa thức của độ 1). Bây giờ bạn có thể biểu thị cây dưới dạng đa thức hợp lý trên , với là ẩn số chính thức.L=Z∪{π}πZ[π]55ππ+0Zπ
Giả sử đa thức này là . Kiểm tra xem có phải là đa thức không (độ ). Nếu nó không phải là đa thức 0, thì biểu thức không bằng không. Nếu là đa thức 0 và không phải là đa thức 0, thì biểu thức bằng 0. Tính đúng đắn của quy trình này xuất phát từ thực tế là là siêu việt .p(π)/q(π)p(π)−∞p(π)q(π)π
Sự phức tạp của thủ tục này là gì? Câu trả lời phụ thuộc vào mô hình tính toán. Giả sử rằng mỗi toán tử mất thời gian liên tục để đánh giá (bất kể kích thước của toán hạng). Sau đó, độ phức tạp phụ thuộc vào kích thước của đa thức kết quả. Mức độ của đa thức có thể tăng theo cấp số nhân với độ sâu của cây, vì vậy nếu bạn xây dựng đa thức đệ quy và biểu thị rõ ràng (ở dạng hệ số), thời gian chạy sẽ theo cấp số nhân theo độ sâu của cây. May mắn thay, mức độ tăng trưởng tuyến tính nhiều nhất theo số lượng lá trong cây, vì vậy thời gian chạy của thuật toán xác định là tuyến tính theo kích thước của cây.
Do đó, giả sử một biểu diễn đơn giản của cây và mô hình tính toán đơn giản, điều này mang đến cho bạn thuật toán thời gian tuyến tính để kiểm tra bằng 0 khi các toán tử là .{+,−,×,/}
Quy trình này hoạt động không chỉ với , mà còn cho và .L=Z∪{π}N∪{π}Q∪{π}
Quy trình tương tự cũng hoạt động đối với , nếu chúng ta có thể giả sử một phỏng đoán hợp lý: rằng và là độc lập đại số. Người ta không biết liệu phỏng đoán này là chính xác, nhưng có vẻ như có khả năng. Dù sao, đây là cách tiếp cận. Chúng tôi coi đa thức là một đa thức đa biến trên hai ẩn sốL=Q∪{π,e}πeπ,ethay vì một ẩn số, nhưng mọi thứ tiếp tục như trước đây, với sự độc lập đại số củaπ và e. Nó cũng hoạt động choL=Z∪{π,e} và L=N∪{π,e}cũng vậy, một lần nữa, giả sử phỏng đoán.
Nếu bạn muốn có được sự ưa thích, bạn có thể sử dụng các thuật toán ngẫu nhiên để kiểm tra nhận dạng đa thức. NếuL=Z∪{π}, họ sẽ tính như sau: chọn một số nguyên tố ngẫu nhiên r và một số nguyên ngẫu nhiên sπ∈{0,…,r−1}; thay thế từng trường hợpπ với sπ; và sau đó kiểm tra xem biểu thức kết quả có đánh giá thành0modr. (Nếu bạn có cả và , bạn sẽ chọn hai số nguyên ngẫu nhiên và .) Bạn có thể lặp lại thử nghiệm này nhiều lần. Nếu quy trình này từng cung cấp cho bạn một cái gì đó khác không (modulo ), thì biểu thức ban đầu chắc chắn là khác không. Nếu nó luôn cho bạn số không (modulo ), thì với xác suất cao, biểu thức ban đầu bằng 0. Điều này có thể hiệu quả hơn trong một số mô hình tính toán (ví dụ: thời gian để đánh giá một toán tử đơn lẻ phụ thuộc vào kích thước của toán hạng).πesπserr
Dấu hiệu so sánh
Bạn cũng có thể tìm thấy dấu của biểu thức bằng các thủ tục tương tự (một lần nữa, giả sử bạn đã loại trừ toán tử ^ và một lần nữa, giả sử rằng và độc lập với đại số). Đánh giá biểu thức dưới dạng đa thức trên . Giả sử bạn đã xác định rằng và . Bạn muốn biết liệu hay không.πep(π,e)/q(π,e)Q[π,e]p(π,e)/q(π,e)≠0q(π,e)≠0p(π,e)/q(π,e)>0
Đây là một cách tiếp cận. Lưu ý rằng iff . Do đó, chúng ta có thể tạo thành một đa thức mới và giảm vấn đề này để đánh giá dấu của . Về cơ bản, chúng ta cần đánh giá dấu của một đa thức hợp lý trong và . Chúng tôi biết điều này đánh giá một cái gì đó khác không.p(π,e)/q(π,e)>0p(π,e)⋅q(π,e)>0r(π,e)=p(π,e)⋅q(π,e)r(π,e)πe
Một cách tiếp cận là tính toán và với bit chính xác, sau đó đánh giá tương ứng, đạt được giới hạn dưới và trên trên . Nếu 0 được bao gồm trong khoảng này, gấp đôi , cho đến khi giới hạn dưới hoàn toàn dương hoặc giới hạn dưới là âm hoàn toàn.πekr(π,e)r(π,e)k
Sự phức tạp của phương pháp này là gì? Nếuước tính giá trị , sau đó tôi nghĩ thời gian chạy sẽ là đa thức theo kích thước của đầu vào và trong .|r(π,e)|ϵlg1/ϵ
Có thể có một thuật toán tốt hơn, nhưng đây là thuật toán tốt nhất tôi có thể đưa ra ngay bây giờ.
Phần kết luận
Điều đáng nói là nhà điều hành điện (^) là nguồn khó khăn thực sự. Không có toán tử công suất, tất cả các vấn đề của bạn có thể được giải quyết mà không gặp quá nhiều khó khăn (giả sử một phỏng đoán hợp lý).