Các thuật toán đáng ngạc nhiên để đếm các vấn đề


54

Có một số vấn đề đếm liên quan đến việc đếm nhiều thứ theo cấp số nhân (liên quan đến kích thước của đầu vào), và vẫn có các thuật toán xác định, chính xác thời gian đa thức đáng ngạc nhiên. Những ví dụ bao gồm:

Một bước quan trọng trong cả hai ví dụ này là giảm vấn đề đếm để tính toán định thức của một ma trận nhất định. Tất nhiên, một yếu tố quyết định là một tổng của nhiều thứ theo cấp số nhân, nhưng đáng ngạc nhiên có thể được tính toán trong thời gian đa thức.

Câu hỏi của tôi là: có bất kỳ thuật toán chính xác và xác định "hiệu quả đáng ngạc nhiên" nào được biết để đếm các vấn đề không làm giảm tính toán một định thức không?


8
BTW, nhiều vấn đề đếm hơn giảm để tính toán các yếu tố quyết định. Bộ xác định số nguyên hoàn tất cho lớp GapL, chứa #L.
5501

Câu trả lời:


11

Tôi không biết liệu các vấn đề sau có giảm hay không tính toán định thức, nhưng dù sao tôi cũng sẽ liệt kê:

1) Đếm số lượng đường dẫn trong DAG từ nút đến nút . Nhưng điều này không đáng ngạc nhiên. Đơn giản chỉ cần xác định xem có thể truy cập được từ có trong NL hay không, và do đó trong DET . Tôi không có ý tưởng về phiên bản đếm.v0vfvfv0

2) Đếm số lượng các giải pháp cho các vấn đề có thể xác định trong logic MSO trong các cấu trúc có chiều rộng của cây. Xem ví dụ như bài báo viết về các tác phẩm của Courcelle, Arnborg và những người khác .

3) Nếu bạn có hàm , có thể được biểu thị bằng một mạch bolean có chiều rộng của cây logarit, bạn có thể đếm số lượng nhập sao cho bằng cách tạo ra mạch lượng tử gửi tới và mô phỏng kinh điển xác suất đo trong thanh ghi thứ hai sau khi áp dụng bằng các kết quả này .f:{0,1}n{0,1}xf(x)=1Uf|x|0|x|f(x)|1UfHn|0|0


Cảm ơn - vật phẩm (2) và (3) rất thú vị nhưng bằng cách nào đó không hoàn toàn là thứ tôi đang tìm kiếm; đếm các vấn đề với chiều rộng cây bị chặn có vẻ giống như các trường hợp đặc biệt trong đó cấu trúc bạn đang làm việc thực sự bị ràng buộc về mặt đa thức. Tôi quan tâm nhiều hơn đến các trường hợp có nhiều "đối tượng" thực sự được tính theo cấp số nhân, nhưng bằng cách nào đó chúng có thể được tính một cách kỳ diệu trong thời gian đa thức.
Ashley Montanaro

Điều đó có nghĩa là, nếu bạn sử dụng mã hóa đơn nguyên, thuật toán cần thời gian theo cấp số nhân chỉ để viết số? Có thể vấn đề này được khắc phục bằng cách sử dụng mã hóa nhị phân, nhưng điều này nghe có vẻ hợp với tôi.
Antonio Valerio Miceli-Barone

2
@ Miceli-Barone, Những gì bạn nói sẽ áp dụng cho hầu hết mọi thuật toán đa thời gian tạo ra một số. Các yếu tố quyết định sẽ là khá lớn trong trường hợp xấu nhất trong unary.
Raphael

@Raphael: ok, tôi thấy rằng giá trị tuyệt đối của định thức của a (0,1) -matrix được giới hạn bởi(n+1)n+122n
Antonio Valerio Miceli-Barone


11

Trong khung Holant, có một số trường hợp có thể dễ dàng (vì không tầm thường) ngoài việc thông qua các trận đấu trong đồ thị phẳng.

1) Cổng Fibonacci

2) Bất kỳ bộ chữ ký affine .

3) #CSP có trọng số không âm

...đến tên một vài.

Ngoài ra, Định lý TỐT NHẤT đưa ra thuật toán thời gian đa thức để đếm số lượng mạch Euler trong đồ thị có hướng, mặc dù một phần của thuật toán sử dụng phép tính xác định.

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.