Vấn đề với là coNP-hard (và do đó coNP-hoàn thành).k=3
Để chứng minh điều này, tôi sẽ giảm từ 3-SAT xuống phần bù của vấn đề này (đối với mạch , mạch có thực hiện chức năng không tính toán).NC03
Đầu tiên một định nghĩa sơ bộ sẽ hữu ích:
Chúng tôi xác định biểu đồ được gắn nhãn là biểu đồ có hướng, một số cạnh có nhãn bằng chữ, với đặc tính là mọi đỉnh đều có một cạnh đến không được gắn nhãn, một cạnh đến được gắn nhãn hoặc hai cạnh đến không được gắn nhãn.
Giảm
Giả sử chúng ta có một công thức 3-SAT bao gồm mệnh đề, mỗi mệnh đề chứa ba chữ. Bước đầu tiên là xây dựng một biểu đồ có nhãn từ . Biểu đồ được gắn nhãn này chứa một bản sao của tiện ích sau (xin lỗi vì sơ đồ khủng khiếp) cho mỗi mệnh đề trong . Thay vào đó, ba cạnh có nhãn L1, L2 và L3 được dán nhãn bằng chữ trong mệnh đề.m G φ φϕmGϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
Các tiện ích (một cho mỗi mệnh đề) đều được sắp xếp theo một chu kỳ lớn với phần dưới cùng của một tiện ích liên kết với đỉnh của kế tiếp.
Lưu ý rằng sự sắp xếp các tiện ích này trên thực tế tạo thành một biểu đồ được dán nhãn (mọi đỉnh đều có 1 hoặc 2 chỉ có các cạnh dẫn đến các đỉnh của indegree 1 được dán nhãn).
Từ công thức và đồ thị có nhãn (được xây dựng từ ), chúng tôi tiếp theo xây dựng một (điều này sẽ kết luận việc giảm). Số lượng đầu vào và đầu ra cho mạch này là nơi là số biến trong và là số đỉnh của . Một đầu vào và một đầu ra được gán cho mỗi biến trong và cho mỗi đỉnh trong . Nếu là một số biến trong thì chúng ta sẽ đề cập đến các bit đầu vào và đầu ra được liên kết với làG ϕ N C 0 3 n + v n ϕ v G ϕ G x ϕ x x iϕGϕNC03n+vnϕvGϕGxϕx x o u t ll=x l i n = x i n ll=¬x l i n =¬ x i n vGv v i n v o u txin và . Hơn nữa, nếu là một chữ có thì chúng ta xác định và nếu là một chữ có thì chúng ta xác định . Cuối cùng, nếu là một số đỉnh trong thì chúng ta sẽ đề cập đến các bit đầu vào và đầu ra được liên kết với là và .xoutll=xlin=xinll=¬xlin=¬xinvGvvinvout
Có bốn loại bit đầu ra:
1) Với mọi biến in , . Lưu ý rằng đầu ra này chỉ phụ thuộc vào một bit đầu vào.ϕ x o u t = x i nxϕxout=xin
2) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác một cạnh đến sao cho cạnh đó không được gắn nhãn, . Lưu ý rằng đầu ra này chỉ phụ thuộc vào hai bit đầu vào.( u , v ) v o u t = v i n ⊕ u i nv(u,v)vout=vin⊕uin
3) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác một cạnh đến sao cho cạnh đó được gắn nhãn , . Lưu ý rằng đầu ra này chỉ phụ thuộc vào ba bit đầu vào vì chỉ phụ thuộc vào cho bất kỳ biến được sử dụng trong chữ .( u , v )v(u,v)v o u t = v i n ⊕ ( u i n ∧ l i n ) l i n x i n x llvout=vin⊕(uin∧lin)linxinxl
4) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác hai cạnh đến và , . Lưu ý rằng đầu ra này chỉ phụ thuộc vào ba bit đầu vào.( u , v ) ( w , v ) v o u t = v i n ⊕ ( u i n ∨ w i n )v(u,v)(w,v)vout=vin⊕(uin∨win)
Vì trong mọi trường hợp, đầu ra chỉ phụ thuộc vào ba đầu vào, mạch chúng tôi xây dựng nằm trong như mong muốn.NC03
Trường hợp chứng minh đúng 1: là thỏa đángϕ
Giả sử tồn tại một nhiệm vụ thỏa mãn cho . Sau đó xây dựng hai bộ giá trị sau cho các đầu vào.ϕ
1) Các đầu vào được liên kết với các biến của được đưa ra các giá trị của phép gán thỏa mãn. Tất cả các đầu vào được liên kết với các đỉnh của được cho giá trị 0.GϕG
2) Các đầu vào được liên kết với các biến của được đưa ra các giá trị của phép gán thỏa mãn. Hãy xem xét các đỉnh trong một tiện ích điều khoản trong . Nếu giá trị của nhãn là 0 (dưới sự phân công thỏa mãn), đầu vào được liên kết với đỉnh ở điểm cuối đích của cạnh được gắn nhãn đó sẽ có giá trị 0. Nếu cả L1 và L2 có giá trị 0 thì giá trị thứ hai đỉnh-đỉnh trong tiện ích (như hình trên) cũng được cho giá trị bằng 0. Tất cả các đỉnh khác được cho giá trị là 1.GϕG
Chúng tôi muốn chỉ ra rằng hai bộ đầu vào này mang lại đầu ra giống hệt nhau và do đó mạch không mã hóa một hoán vị.NC03
Hãy xem xét bốn loại bit đầu ra:
1) Với mọi biến in , . Vì là giống nhau cho cả hai bộ đầu vào, nên các đầu ra của mẫu này sẽ luôn giống nhau trên hai bộ đầu vào.ϕ x o u t = x i n x i nxϕxout=xinxin
2) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác một cạnh đến sao cho cạnh đó không được gắn nhãn, . Kiểm tra tiện ích có các bản sao tạo thành , chúng ta thấy rằng tất cả các cạnh như vậy chỉ bao gồm các cặp đỉnh có giá trị đầu vào luôn là 1s dưới bộ đầu vào thứ hai. Do đó trong tập hợp đầu vào đầu tiên và dưới bộ đầu vào thứ hai. Do đó, các đầu ra của mẫu này sẽ luôn giống nhau (và trên thực tế là 0) trên hai bộ đầu vào.( u , v )v(u,v) G v o u tvout=vin⊕uinGv o u t = v i n ⊕ u i n = 1 ⊕ 1 = 0vout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác một cạnh đến sao cho cạnh đó được gắn nhãn , . Nếu sai dưới sự gán thì là 0 dưới cả hai bộ đầu vào; sau đó trong cả hai bộ đầu vào. Nếu đúng dưới sự gán, là 0 dưới tập đầu vào đầu tiên và 1 dưới số thứ hai; cũng lưu ý rằng trong tiện ích, các cạnh có nhãn duy nhất có các đỉnh luôn có( u , v ) l v o u t l v i n ( u , v ) u uv(u,v)ll v i n i n = 1 u i n = v i n l v o u tvout=vin⊕(uin∧l)lvinvout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0lvin(u,v)uuin=1 dưới bộ đầu vào thứ hai. Kết quả là chúng ta thấy rằng trong cả hai bộ đầu vào, bất cứ khi nào là đúng; sau đó . Do đó, các đầu ra của mẫu này sẽ luôn giống nhau (và trên thực tế là 0) trên hai bộ đầu vào.uin=vinlvout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
4) Với mỗi đỉnh trong biểu đồ được gắn nhãn có chính xác hai cạnh đến và , . Có hai đỉnh như vậy trong mỗi tiện ích. Đỉnh trên cùng và đỉnh thứ hai từ đỉnh. Chúng tôi xem xét hai trường hợp riêng biệt.( u , v ) ( w , v ) v o u t = v i n ⊕ ( u i n ∨ w i n )v(u,v)(w,v)vout=vin⊕(uin∨win)
4a) Khi là đỉnh trên cùng thứ hai trong một tiện ích, và là hai điểm cuối đích của các cạnh có nhãn L1 và L2. Trong bộ đầu vào đầu tiên, . Trong bộ đầu vào thứ hai, là 0 iff L1 có giá trị 0 theo phép gán thỏa mãn (còn gọi là ); tương tự, là 0 iff L2 có giá trị 0 theo phép gán thỏa mãn (aka ); và cuối cùng, được định nghĩa là 0 iff cả L1 và L2 đều có giá trị 0 (còn gọi là ). Do đó, dưới bộ đầu vào thứ hai,u w v o u t = v i n ⊕ ( u i n ∨ w i n ) = 0 ⊕ ( 0 ∨ 0 ) = 0 u i n u i n = L 1 w i n w i n = L 2 v i n v i n = L 1 ∨ L 2vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uinuin=L1winwin=L2vinvin=L1∨L2vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0 . Do đó, các đầu ra của mẫu này sẽ luôn giống nhau (và trên thực tế là 0) trên hai bộ đầu vào.
4b) Khi là đỉnh trên cùng trong một tiện ích, là đỉnh trên cùng thứ hai và là điểm cuối đích của cạnh có nhãn L3. Trong bộ đầu vào đầu tiên, . Trong bộ đầu vào thứ hai, là 0 iff cả L1 và L2 có giá trị 0 (còn gọi là ); là 0 iff L3 có giá trị 0 (còn gọi là ); và cuối cùng là . Do đó, dưới bộ đầu vào thứ hai, trong đó đẳng thứcu w v o u t = v i n ⊕ ( u i n ∨ w = v ivuw u i n u i n ⊕( u i n ∨ w i n )=1⊕((L1∨L2)vout=vin⊕(uin∨win)=0⊕(0∨0)=0uin w i n w i n =L3 v i n =1 v o u tuin=L1∨L2winwin=L3vin=1( L 1 ∨ L 2 ∨ L 3 ) = 1vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1 giữ theo định nghĩa trong một phép gán thỏa mãn cho mọi mệnh đề. Do đó, các đầu ra của mẫu này sẽ luôn giống nhau (và trên thực tế là 0) trên hai bộ đầu vào.
Rõ ràng, chúng ta thấy rằng các đầu ra giống nhau cho hai bộ đầu vào khác nhau và do đó mạch thực hiện chức năng không tính toán.NC03
Trường hợp bằng chứng chính xác 2: là không thỏa đángϕ
Giả sử bây giờ không tồn tại sự phân công thỏa mãn cho . Sau đó, giả sử vì mâu thuẫn rằng một số hai bộ đầu vào khác nhau dẫn đến mạch có cùng một đầu ra.N C 0 3ϕNC03
Rõ ràng, hai đầu vào phải có cùng giá trị cho cho mọi biến in . Vì vậy, bây giờ chúng ta có thể đề cập rõ ràng đến giá trị của . x ϕ xxinxϕx
Xác định là tập hợp các đỉnh trong sao cho khác nhau trong hai bộ giá trị đầu vào.v G v i nSvGvin
Chúng tôi sẽ chứng minh các bổ đề sau đây:
Bổ đề 1: Nếu trong một số tiện ích cả ba đỉnh tại điểm cuối Mục tiêu của cạnh nhãn đang không ở trong thì không có đỉnh trên ba trong tiện ích đang ở .SSS
Bổ đề 2: Nếu trong một số tiện ích đỉnh đầu không có trong sau đó trong tiện ích tiếp theo lên không đỉnh là .SSS
Do các tiện ích tạo thành một vòng lặp, điều này ngụ ý rằng nếu trong bất kỳ tiện ích nào, cả ba đỉnh tại điểm cuối đích của các cạnh được gắn nhãn đều không nằm trong thì không có đỉnh nào trong nằm trong (nói cách khác là trống).G S SSGSS
Tuy nhiên, hãy xem xét một tiện ích được liên kết với một mệnh đề không hài lòng. Trong tiện ích này, cả ba nhãn đều có giá trị 0. Chúng tôi biết rằng cạnh có nhãn phải thỏa mãn , nhưng , vì vậy . Do đó, vì đầu ra giống nhau cho cả hai đầu vào, nên các giá trị của cũng phải giống nhau trên hai bộ đầu vào. Nói cách khác, chúng tôi đã chỉ ra rằng không nằm trong( u , v ) L v(L1∨L2∨L3)(u,v)LL=00)=vout=vin⊕(uin∧L)L=0 v i n v S Svout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvS. Như vậy chúng ta thấy rằng trong tiện ích này đặc biệt, ba đỉnh tại điểm cuối Mục tiêu của cạnh nhãn đang không ở trong .S
Kết quả là, chúng tôi kết luận rằng trống. Tuy nhiên, điều này ngụ ý rằng giữa hai bộ đầu vào, không có sự khác biệt, điều này mâu thuẫn với giả định rằng các bộ đầu vào này là khác nhau. Kết quả là, chúng ta thấy rằng hàm được ban hành bởi mạch là tiêm truyền và do đó là một mệnh đề.N C 0 3SNC03
Tất cả chỉ còn lại là để chứng minh bổ đề.
Để làm điều này, chúng tôi lưu ý rằng đối với mọi loại đỉnh trong (indegree 1 có nhãn, indegree 1 không có nhãn và indegree 2), nếu tất cả các cạnh đến từ các đỉnh không thuộc thì đỉnh trong câu hỏi cũng không nằm trong . Điều này là do trong cả ba trường hợp trong đó là một số chức năng của các đầu vào được liên kết với các biến và / hoặc đỉnh có cạnh với . Do tất cả các đỉnh như vậy không nằm trong theo giả định, nên giá trị của phải giống nhau dưới cả hai bộ đầu vào. Do đó cũng giống nhau trong cả hai bộ đầu vào. Nói cách khácSGSv o u t = v i n ⊕ X X vSvout=vin⊕XXvX v i n = v o u t ⊕ X v SSXvin=vout⊕Xvkhông có trong .S
Bây giờ chúng ta có quy tắc rằng một đỉnh không nằm trong bất cứ khi nào tất cả các tiền thân của nó không ở , các bổ đề tuân theo đơn giản bằng cách áp dụng quy tắc nhiều lần vào sơ đồ tiện ích ở trên.SSS