Tôi sẽ cho rằng các hằng số được mã hóa cứng này là công khai (được cả người cắt xén và người đánh giá biết đến). Có một vài tùy chọn:
Hãy coi các hằng số là đầu vào bổ sung cho mạch, như bạn đề xuất. Lưu ý rằng dây đầu vào có thể được tái sử dụng cho nhiều cổng, vì vậy bạn chỉ cần một dây duy nhất thật
và sai
dây cho toàn mạch.Hầu hết các chương trình cắt xén hỗ trợ không phải
miễn phí, vì vậy bạn thực sự chỉ cần một hằng số thật
dây điện. Hơn nữa, hóa ra bạn luôn có thể lấy thật
nhãn dây là chuỗi gồm tất cả các số 0 mà không mất tính tổng quát. Kết hợp tất cả các quan sát này, các dây đầu vào không đổi bổ sung không gây thêm chi phí cho mạch.
Truyền hằng số qua mạch. Ví dụ, một cổng y=VÀ(x,đúng)
trở thành chỉ y=x
, nghĩa là bạn có thể thay thế y
dây bằng x
trong bất kỳ cửa hạ lưu nào sử dụng y
như một đầu vào. một cánh cổng y=VÀ(x,sai)
trở thành y=false
, và bạn lại có thể tuyên truyền y=false
xuôi dòng trong các cổng sử dụng y
như một đầu vào. Bằng cách này, bạn sẽ thấy rằng nhiều cổng xuôi dòng của hằng số được mã hóa cứng có thể được loại bỏ hoàn toàn khỏi mạch một cách đơn giản. Quá trình này không liên quan gì đến việc cắt xén mà chỉ đơn giản hóa mạch boolean dựa trên các đầu vào được mã hóa cứng.
Nếu các hằng số chỉ được biết đến với trình cắt xén, thì mục tiêu là đơn giản hóa mạch/sự cắt xén trong khi ẩn các hằng số đó.
Hầu hết các kế hoạch cắt xén (và chắc chắn là những kế hoạch hiện đại hàng đầu) đều hỗ trợ các cổng hấp thụ tự do không phải
cổng, có nghĩa là bạn có thể cắt xén và (không phải (x), y)
, và (x, không phải (y))
, ... cổng với chi phí tương tự như cắt xén một và
cánh cổng. Trên thực tế, những kế hoạch cắt xén này che giấu sự tồn tại của những không phải
cổng. Sử dụng quan sát này, bạn vẫn có thể thực hiện #1 từ phía trên. Nếu bạn cần mã cứng một cổng y=và(x,sai)
sau đó bạn có thể nuôi đĩa đơn của mình thật
đầu vào dây vào một cổng của hình thức y=và(x,KHÔNG(đúng))
trong khi che giấu sự hiện diện của điều đó không phải
(nghĩa là ẩn xem cổng có được mã hóa cứng hay không bằng một thật
hoặc sai
).
Tuy nhiên, bạn có thể làm tốt hơn một chút bằng cách sử dụng "cổng nửa cổng" từ công trình nửa cổng. Điều này cho phép bạn cắt xén một và (x, đúng)
hoặc và (x, sai)
cổng, trong khi ẩn cái nào bị cắt xén, với giá chỉ bằng một nửa so với cổng chính thức và
-cánh cổng.