Tôi sẽ cố gắng để hiển thị vấn đề này là NP-khó, bởi giảm từ .Planar- 3 -SAT
Giảm từ Planar- 3 -SAT
Một số tiện ích cơ bản
Gadgets là cấu hình bên trong của hình học mà sẽ cho phép chúng tôi xây dựng cổng để sử dụng trong một mạch, mà chúng tôi sẽ giảm .Planar- 3 -SAT
Tiện ích 4X3
Tiện ích này có hai trạng thái phân vùng bình phương tối thiểu hợp lệ :
Còn lại Một tiện ích 4X3 . Giữa và phải: Hai trạng thái phân vùng vuông tối thiểu có thể .
Tiện ích 5X4
Tiện ích này, giống hệt như tiện ích 4X3 , chỉ với kích thước lớn hơn.
Còn lại Một tiện ích 5X4 . Giữa và phải: Hai trạng thái phân vùng vuông tối thiểu có thể .
thiết bị đầu cuối
Một thiết bị đầu cuối-tiện ích là một 5x4-tiện ích . Nó thường được sử dụng như một điểm cuối / pin của một cổng . Một trong hai trạng thái của điểm cuối có thể được định giá là đúng và trạng thái kia là sai. Một điểm cuối dấu hai đầu, một là và khác như F . Điểm cuối được bao phủ bởi hình vuông lớn là giá trị của điểm cuối.TF
Trái: Khung dây của thiết bị đầu cuối . Trung tâm: Điểm cuối có giá trị thực. Phải: Điểm cuối có giá trị sai.
tiện ích i-dây
Một tiện ích i-dây là viết tắt của dây ngụ ý .
Quy tắc:
- Một tiện ích i-dây bao gồm một hình chữ nhật có chiều dài lẻ có chiều dài hơn và chiều rộng là 2 .22
- Một tiện ích i-dây có thể có trạng thái phân vùng vuông tối thiểu , được đẩy từ một bên, bên kia hoặc không; một dây i ở trạng thái thứ ba này sẽ được gọi là không giới hạn cục bộ .3
Thí dụ:
Hình 7: Một tiện ích i-dây có chiều dài và chiều rộng 2 .72
Đây là cách nó được sử dụng:
Hình 8,9 , bên trái: khung dây i-dây qua hai điểm cuối . Phải: Liên minh.
Bây giờ, nếu một điểm cuối ở trạng thái phù hợp, nó sẽ buộc điểm cuối kia vào vị trí đẩy. Thí dụ:
Bên trái: Sơ đồ phân vùng vuông; công tắc bên trái bị tắt, "đẩy" tất cả các ô vuông xuống dây i và cuối cùng, đẩy công tắc khác ( điểm cuối ). Phải: Sơ đồ phân vùng vuông; điểm cuối bên trái đã đầy, "đẩy" tất cả các hình vuông xuống dây i và buộc điểm cuối bên trái phải "lên".
Một⟹¬ BMột⟹B
Tuy nhiên, điều này để lại trường hợp không bị ràng buộc:
Nếu chúng ta kết hợp hai dây i , chúng ta có thể có hàm ý hai chiều, về cơ bản là một đẳng thức boolean (in):
Vì vậy, hai dây i có thể mang một mối quan hệ bình đẳng đầy đủ, giống như một mạch điện - thực tế, nó là một mạch điện. Chúng tôi sẽ sử dụng các cặp này để xây dựng một dây có thể sử dụng .
l - 12+ 2
i-dây có thể được định hướng khi cần thiết.
dây điện
Một dây bao gồm một cặp dây i được kết nối với cùng một cổng tại mỗi điểm cuối.
- Các dây i có màu đỏ và xanh lá cây.
- 3
- Mỗi pin cổng sẽ có một liên hệ màu xanh lá cây và đỏ; một dây phải kết nối chính xác.
- Quy tắc bất biến: một dây i được đẩy theo hướng ngược lại với dây i khác, mỗi cổng sẽ thừa nhận điều này và chắc chắn về điều này (trừ khi có ghi chú khác).
- Vì mỗi dây chứa hàm ý hai chiều, nó mang các giá trị từ cổng này sang cổng khác giống như một dây trong mạch.
- Mỗi dây phải được kết nối với một cổng ở cả hai đầu. . Không thực hiện được điều này có thể phá hỏng các giả định của một số cổng mà tôi mô tả và quy tắc bất biến ở trên; tuy nhiên, các cổng có điểm cuối trên các dây dẫn đều an toàn - bạn có thể kết nối dây đi lạc với các điểm cuối này mà không lo nó phá hỏng cổng.
- dây phải có độ dài lẻ, bao gồm cả dây dẫn đến bất kỳ mạch nào mà nó kết nối; tuy nhiên tôi sẽ mô tả một cổng bỏ qua lẻ bên dưới cho phép một dây có chiều dài chẵn trở thành chiều dài lẻ.
Hình ảnh :
Trên: Một dây .
Trái và phải: Hai trạng thái phân vùng vuông tối thiểu có thể có của một dây . Lưu ý rằng nếu dây chỉ có chiều dài này, nó sẽ không thể dịch chuyển sang phải hoặc trái và sẽ phải phá vỡ một hình vuông thành các mảnh nhỏ hơn.
dây có thể được định hướng khi cần thiết.
uốn cong cổng : Uốn dây
Trái: Chế độ xem khung dây. Phải: Liên minh xem.
Lưu ý việc sử dụng tiện ích 4X3 . Nó được sử dụng để sửa chì đỏ thành chiều dài lẻ.
Sau đây là hai trạng thái phân vùng vuông tối thiểu có thể có của uốn cong:
Trái và phải: Hai trạng thái phân vùng vuông-vuông-vuông tối thiểu có thể có của một dây uốn.
Cổng có thể được định hướng khi cần thiết. Rõ ràng, cổng này có thể được nhân đôi để làm việc cho hướng khác.
Xiên dây
Nó rất dễ dàng để thay đổi một dây trên. Hình minh họa khung dây:
tên-giá trị cổng
Một tên-giá trị khẩu thực chất là một thiết bị đầu cuối như một cánh cửa với một dây liên hệ:
lẻ-bỏ qua cổng : lẻ lẻ một dây
Đôi khi thật bất tiện khi chỉ có dây có chiều dài lẻ. Ví dụ:
Như bạn có thể thấy, một chút mở rộng là một chút khó chịu. Đây là một giải pháp tương ứng, sử dụng cổng 4X3 :
Vì vậy, biến cái này thành một cái cổng, chúng ta có được cái cổng bỏ qua lẻ (trong khung dây):
Cổng có thể được định hướng khi cần thiết.
cổng xoắn: xoắn dây
Đôi khi bạn nhận được các dây i màu đỏ và đen ở phía sai để sử dụng với một cổng . Trong trường hợp này, một cổng xoắn được cung cấp, để xoắn dây i màu đỏ và đen sang hai bên đối diện.
Hình minh họa khung dây:
Tự thuyết phục bản thân nó hoạt động:
Một , đi theo mũi tên đẩy, mọi thứ khác nên bắt buộc và nhất quán.
Cổng có thể được định hướng khi cần thiết.
cổng chia: tách một dây
Tách một dây, khung dây:
Hãy thuyết phục bản thân rằng nó hoạt động:
Một
Một
Lưu ý: Tất cả các dây vào và ra của bộ chia hoàn toàn phải kết nối với điểm cuối ở đâu đó, để duy trì bất biến. Ngoài ra, bạn có thể thêm điểm cuối vào từng cặp đạo trình của bộ chia.
Cổng có thể được định hướng khi cần thiết.
cổng không
Cổng không lấy một dây và xuất ra một dây có ý nghĩa ngược lại. Về cơ bản, nó là một cổng xoắn , ngoại trừ việc nó làm mất màu của dây. Cổng không giống như thế này:
Và một cái nhìn của hai trạng thái có thể:
Cổng có thể được định hướng khi cần thiết.
cổng mệnh đề
Đối với cổng mệnh đề , trước tiên chúng tôi giới thiệu tiện ích mệnh đề :
3 .
Đây là những gì cổng trông giống như:
3
Giải trình:
- Bắt đầu tại mệnh đề-tiện ích và làm theo các mũi tên.
- Các đường không mũi tên có nghĩa là nó là một phần của mạch, nhưng nó không bị buộc vào trạng thái bằng cổng.
- Trạng thái của mệnh đề-tiện ích buộc một trong các điểm cuối phải được định giá đúng .
3 -CNF
Cổng có thể được định hướng khi cần thiết.
Giảm
Φ ( x )Planar- 3 -SAT
Φ ( x ) = ∧nTôiCTôi,C= { ( xj∨ xk∨ xtôi) }
Một trợ giúp trực quan (nguồn gốc: Terrain Guarding là NP-Hard (PDF) , được sao chép bằng tikz):
Sau đó:
- xTôi∈ xxTôi¬ xTôi .
- Kết nối các cổng với nhau bằng một cổng không để chúng phủ nhận một cách hợp lý các giá trị của nhau.
- Đặt các đa giác 'cổng' của các biến tại vị trí của chúng trong nhúng phẳng.
- Đối với mỗi mệnh đề, đặt một cổng mệnh đề tại vị trí của mệnh đề trong phần nhúng phẳng.
- Sử dụng các cổng được mô tả ở trên, kết nối tất cả các biến với mệnh đề của chúng.
- Chạy thuật toán phân chia bình phương tối thiểu trên kết hợp kết quả của tất cả các đa giác của cổng (toàn bộ mạch).
- Nếu thuật toán trả về tổng của tất cả các kích thước trạng thái phân vùng vuông tối thiểu của cổng (trừ cho các góc được chia sẻ) thì điều đó là thỏa đáng. Nếu không thỏa đáng, nó sẽ buộc một tiện ích bị ràng buộc chia thành các ô vuông nhỏ hơn, do đó làm tăng số lượng hình vuông cần thiết để phân vùng mạch.
Tại sao nó hoạt động
- Mỗi tiện ích có kích thước trạng thái phân vùng vuông tối thiểu ; nghĩa là, một phân vùng vuông tối thiểu của tiện ích đó có kích thước nhất định.
- Một số tiện ích có một số tiểu bang với kích thước này; mỗi trạng thái này là các phân vùng vuông tối thiểu hợp lệ .
- Khi tiện ích được kết hợp duy nhất ở các góc, tổng các tối thiểu vuông partition bang của tiện ích là * vẫn là tối thiểu vuông partition-state của sự kết hợp của họ; bạn có thể thấy điều này bằng trực giác: tham gia ở góc không cung cấp không gian rộng rãi cho hình vuông để mở rộng / kết nối với hình vuông từ một tiện ích khác.
- Mặc dù việc kết hợp các tiện ích ở góc không làm giảm tổng kích thước phân vùng bình phương tối thiểu , nhưng nó lại liên quan và ràng buộc các tiện ích với nhau.
- Với các cổng được hiển thị ở trên, bạn có thể giới hạn các trạng thái đủ để nếu công thức logic không thỏa mãn, thì một hoặc nhiều tiện ích sẽ phải chia thành các ô vuông nhỏ hơn và tăng kích thước phân vùng vuông tối thiểu .
nguồn đồ thị
Bạn cũng có thể xem hình ảnh lớn hơn bằng cách xóa "s", "m", "l", hậu tố của các url imgur. Ví dụ: Bạn có thể thấy một hình ảnh lớn hơn về điều này: http://i.stack.imgur.com/6CKlGs.jpg bằng cách truy cập
http://i.stack.imgur.com/6CKlG.jpg . Lưu ý "s" bị thiếu trước .jpg
.