Heuristic để ước tính hiệu quả của Sơ đồ quyết định nhị phân giảm theo thứ tự?


8

Các sơ đồ quyết định nhị phân được đặt hàng giảm (ROBDD) là một cấu trúc dữ liệu hiệu quả để biểu diễn các hàm boolean của nhiều biến . Tôi muốn để có được một trực giác cho cách hiệu quả họ đang có.f(x1,x2,...,xn)

Ví dụ, để nén dữ liệu, chúng tôi biết rằng dữ liệu có entropy thấp (một số biểu tượng xuất hiện thường xuyên hơn so với khác, nhiều lần lặp lại) có thể được nén rất tốt trong khi dữ liệu hoàn toàn ngẫu nhiên không thể được nén.

Có một trực giác tương tự để ước tính mức độ hiệu quả của ROBDD có thể đại diện cho một công thức boolean nhất định không?

Ví dụ, tôi đã nghe nói rằng phép nhân số -bit có thể được biểu diễn một cách hiệu quả, kích thước ROBDD tối thiểu là số mũ theo . Bạn có biết về một lập luận trực quan giải thích tại sao lại như vậy không?nn

Câu hỏi liên quan: trực giác về hiệu quả của các BDD tính toán các số (nhiều BDD đầu cuối, v.v.)

Câu trả lời:


7

Có mối quan hệ giữa độ rộng của một OBDD cho hàm và độ phức tạp giao tiếp của giao thức truyền thông một chiều cho phân vùng trường hợp tốt nhất của các biến cho f (xem E. Kushilevitz và N. Nisan. Độ phức tạp giao tiếp. Đại học Cambridge Báo chí, 1997 ).ff

Đây là một công cụ mạnh để chứng minh OBDDs kích thước mũ cho các chức năng khác nhau (cùng với các đồng tác giả, chúng tôi sử dụng phương pháp này cho minh rằng -bipartiteness là khó khăn cho OBDDs, xem ở đây ). Về cơ bản, nếu có tồn tại một OBDD chiều rộng tối đa là w mà giải quyết f , sau đó κ b e s t ( f ) log w . Tôi nghĩ rằng điều này là trực quan hơn để suy nghĩ về sự phức tạp trong giao tiếp hơn là OBDD.ϵwfκbest(f)logw


3
Ah, vì vậy bạn chia các đầu vào của thành hai phần f ( x 1 , ... , x k , y 1 , ... , y l ) . Sau đó, Alice chỉ cần theo dõi các nhánh của BDD trên đầu vào x và truyền nút cuối cùng của mình cho Bob, người hoàn thành phép tính với y . Kể từ chiều rộng là w , cô cần ít nhất log wff(x1,,xk,y1,,yl)xywlogwbit để giao tiếp nút của cô. Đẹp! Điều này phần nào liên quan đến câu trả lời "sơ đồ khối" của Radu, vì sự tồn tại của sơ đồ khối như vậy chắc chắn ngụ ý một sự phức tạp trong giao tiếp nhỏ. (Tuy nhiên, "độ phức tạp giao tiếp nhỏ => chiều rộng nhỏ" không nhất thiết phải giữ, phải không?)
Heinrich Apfelmus

Yêu cầu nhỏ: bạn có biết một phiên bản giấy được liên kết của bạn có sẵn miễn phí, tức là không phải sau một tường thành không?
Apfelmus Heinrich

Chắc chắn, đây là một liên kết: sylvain.berbiqui.org/llmpr-full.pdf
Sylvain Peyronnet

"(Tuy nhiên," độ phức tạp giao tiếp nhỏ => chiều rộng nhỏ "không nhất thiết phải giữ, phải không?)" Thật vậy, nó không nhất thiết phải giữ.
Sylvain Peyronnet

6

Một cách để tính toán một hàm boolean là phải có một chuỗi các khối mạch boolean b 1 , ... , b nb k đọc chỉ x k (của đầu vào) và được kết nối chỉ đến b k - 1b k + 1 . Một trong những đầu ra của khối b n cuối cùng là giá trị của f . Định lý M trong TAoCP 4 fascicle 1 nói rằng BDD củaf(x1,,xn)b1,,bnbkxkbk1bk+1bnf phải lớn nếu đối với tất cả các mạch như vậy, bạn cần nhiều liên kết ngược (từ b k đến b k - 1 ).fbkbk1

Nói cách khác, để BDD nhỏ, phải có cách tóm tắt thông tin trong với 1 k n . Độ rộng của BDD tương ứng với k khó nén nhất, bằng trực giác.x1,,xk1knk

(Một ví dụ được đưa ra trong TAoCP là thế này: Hãy tưởng tượng một chu kỳ có độ dài và một hàm boolean f ( x 1 , ... , x n ) nói rằng "không có nút đó có màu giống như cả hai quốc gia láng giềng", nơi x k nói cho dù nút k là màu đen hoặc trắng Sau đó, 'tóm tắt' khi bạn nhìn vào các nút. 1 , 2 , ... , k nên lưu trữ màu sắc của 1 , k - 1 , k , và cho dù bạn đã nhận thấy một sự vi phạm bạn. cần k -nf(x1,,xn)xkk1,2,,k1k1k k để bạn có thể kiểm tra xem tài sản có bị vi phạm tại k không khi bạn cũng thấy k + 1 . Bạn cần 1 để bạn có thể kiểm tra xem tài sản có bị vi phạm ở n không , khi bạn đã kết thúc.)k1kkk+11n

Ngoài ra, nếu bạn quan tâm đến các hoạt động giữa các BDD , thì thực hiện thao tác nhị phân giữa g , trong đó f được đại diện bởi một BDD có m nút và g được đại diện bởi một BDD có n nút mất thời gian O ( m n ) nhưng có xu hướng chỉ mất thời gian O ( m + n ) cho các chức năng bạn thực sự tìm thấy trong thực tế. Tôi không biết về một phiên bản chính xác của những gì tôi vừa nói, nhưng tôi sẽ quan tâm nếu có.fgfmgnO(mn)O(m+n)


Tôi thích tiêu chí này của được tạo thành từ các khối b i . Cảm ơn các liên kết đến bí ẩn của Knuth! fbi
Apfelmus Heinrich

2

Để tính toán các con số, bạn nên xem xét các MTBD (Multi Terminal BDD) một cấu trúc dữ liệu được sử dụng để kiểm tra mô hình (xác suất). Xem ví dụ Đại diện của các hàm rời rạc, Sasao, Tsutomu; Fujita, Masahira (Eds.), Springer, 1996 , chương 4, bởi Clarke et al. là về MTBDD và Sơ đồ quyết định lai.


2

Trong TAoCP 4 fascicle 1 , Knuth cũng đề cập rằng

  • f(x1,x2,,xn)nO(n2)fn+1x1+x2++xn{0,1,2,n}2n
  • g(x1,x2):=f(x1,x2,x2)

f(x1,x2,x3):=(2x1+5x2+3x37)f(x1+x2++x107)


Cũng có một phần về các chức năng 'khó chịu'.
Radu GRIGore
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.