กลับไปหน้าบทความ

อ่าน 9 นาที

ฟังก์ชันบูลีน

ใน ทางคณิตศาสตร์ ฟังก์ชัน บูลีน คือ ฟังก์ชัน ที่ อาร์กิวเมนต์ และผลลัพธ์มีค่าจากเซตสององค์ประกอบ (โดยปกติคือ {จริง, เท็จ}, {0,1} หรือ {−1,1}) [ 1 ] [ 2 ] ชื่อเรียกอื่นคือ...

ฟังก์ชันบูลีน

แผนภาพการตัดสินใจแบบไบนารีและตารางความจริงของฟังก์ชันบูลีนแบบไตรนารี

ในทางคณิตศาสตร์ฟังก์ชันบูลีนคือฟังก์ชันที่อาร์กิวเมนต์และผลลัพธ์มีค่าจากเซตสององค์ประกอบ (โดยปกติคือ {จริง, เท็จ}, {0,1} หรือ {−1,1}) [ 1 ] [ 2 ]ชื่อเรียกอื่นคือฟังก์ชันสวิตช์ซึ่งใช้โดยเฉพาะในวรรณกรรมวิทยาศาสตร์คอมพิวเตอร์ รุ่นเก่า [ 3 ] [ 4 ]และฟังก์ชันความจริง (หรือฟังก์ชันตรรกะ)ซึ่งใช้ในตรรกศาสตร์ฟังก์ชันบูลีนเป็นหัวข้อของพีชคณิตบูลีนและทฤษฎีสวิตช์[ 5 ]

ฟังก์ชันบูลีนมีรูปแบบโดยที่เรียกว่าโดเมนบูลีนและเป็นจำนวนเต็มที่ไม่เป็นลบ เรียกว่าจำนวนสมาชิกในฟังก์ชัน ในกรณีที่ฟังก์ชัน จะเป็นองค์ประกอบคงที่ของฟังก์ชันบูลีนที่มีเอาต์พุตหลายตัวโดยที่เป็น ฟังก์ชันบูลีน แบบเวกเตอร์หรือแบบค่าเวกเตอร์ ( S-boxในการเข้ารหัส แบบสมมาตร ) [ 6 ]

มีฟังก์ชันบูลีนหลายแบบที่มีอาร์กิวเมนต์ ซึ่งเท่ากับจำนวนตารางความจริงที่มีสมาชิก แตกต่างกัน

ฟังก์ชันบูลีนแบบ n-ary ทุกฟังก์ชันสามารถแสดงได้ในรูปสูตรเชิงประพจน์ในตัวแปรและสูตรเชิงประพจน์สองสูตรจะสมมูลกันทางตรรกะก็ต่อเมื่อสูตรทั้งสองนั้นแสดงถึงฟังก์ชันบูลีนเดียวกัน

ตัวอย่าง

แผนภาพแสดงฟังก์ชันบูลีนไบนารีทั้งสิบหกฟังก์ชัน
ฟังก์ชันบูลีนไบนารีทั้งสิบหกฟังก์ชัน

ฟังก์ชันบูลีนสมมาตรพื้นฐาน ( ตัวเชื่อมตรรกะหรือเกตตรรกะ ) ได้แก่:

ตัวอย่างของฟังก์ชันที่ซับซ้อนกว่านั้นคือฟังก์ชันเสียงข้างมาก (ซึ่งมีจำนวนอินพุตเป็นเลขคี่)

การเป็นตัวแทน

ฟังก์ชันบูลีนที่แสดงในรูปวงจรบูลีน

ฟังก์ชันบูลีนสามารถระบุได้หลายวิธี:

ในทางพีชคณิต โดย ใช้ สูตรเชิงประพจน์โดยใช้ฟังก์ชันบูลีนพื้นฐาน:

สูตรบูลีนสามารถแสดงผลในรูปแบบกราฟได้เช่นกัน:

เพื่อเพิ่มประสิทธิภาพของวงจรไฟฟ้า สูตรบูลีนสามารถลดรูปให้เหลือน้อยที่สุดได้โดยใช้อัลกอริธึม Quine–McCluskeyหรือแผนที่ Karnaugh

การวิเคราะห์

คุณสมบัติ

ฟังก์ชันบูลีนสามารถมีคุณสมบัติได้หลากหลาย: [ 7 ]

  • ค่าคงที่ : จะมีค่าเป็นจริงหรือเท็จเสมอ โดยไม่ขึ้นอยู่กับตัวแปรใดๆ
  • โมโนโทน : สำหรับทุกชุดค่าของอาร์กิวเมนต์ การเปลี่ยนอาร์กิวเมนต์จากเท็จเป็นจริง จะทำให้ผลลัพธ์เปลี่ยนจากเท็จเป็นจริงเท่านั้น ไม่ใช่จากจริงเป็นเท็จ ฟังก์ชันจะเรียกว่าเป็นฟังก์ชันโมโนโทนในตัวแปรใดตัวแปรหนึ่ง หากฟังก์ชันนั้นเป็นโมโนโทนเมื่อเทียบกับการเปลี่ยนแปลงของตัวแปรนั้น
  • เชิงเส้น : สำหรับแต่ละตัวแปร การสลับค่าของตัวแปรนั้นจะส่งผลให้ค่าความจริงเปลี่ยนแปลงเสมอ หรือไม่เปลี่ยนแปลงเลย ( ฟังก์ชันพาริตี )
  • สมมาตร : ค่าไม่ขึ้นอยู่กับลำดับของอาร์กิวเมนต์
  • อ่านครั้งเดียว : สามารถแสดงได้ด้วยการเชื่อมการแยกและการปฏิเสธโดยใช้ตัวแปรแต่ละตัวเพียงครั้งเดียว
  • สมดุล : ถ้าตารางค่าความจริง ของฟังก์ชันนั้น มีจำนวนเลขศูนย์และเลขหนึ่งเท่ากันน้ำหนักแฮมมิงของฟังก์ชันนั้นคือจำนวนเลขหนึ่งในตารางค่าความจริง
  • เบนท์ : อนุพันธ์ทั้งหมดของมันสมดุลกัน (สเปกตรัมความสัมพันธ์อัตโนมัติเป็นศูนย์)
  • ความต้านทานต่อความสัมพันธ์ ลำดับ ที่m : หากผลลัพธ์ไม่มีความสัมพันธ์กับชุดค่าผสมเชิงเส้นทั้งหมดของอาร์กิวเมนต์ ไม่เกิน m ตัว
  • หลีกเลี่ยง : หากการประเมินฟังก์ชันนั้นต้องการค่าของอาร์กิวเมนต์ทั้งหมดเสมอ
  • ฟังก์ชันบูลีนจะเป็นฟังก์ชันเชฟเฟอร์ได้ก็ต่อเมื่อสามารถใช้สร้างฟังก์ชันบูลีนใดๆ ก็ได้ (โดยการประกอบฟังก์ชัน) (ดูความสมบูรณ์ของฟังก์ชัน )
  • ระดับพีชคณิตของฟังก์ชัน คือ อันดับของเอกนามที่มีอันดับสูงสุดในรูปแบบปกติทางพีชคณิต ของฟังก์ชันนั้น

ความซับซ้อนของวงจรพยายามจำแนกฟังก์ชันบูลีนตามขนาดหรือความลึกของวงจรที่สามารถคำนวณฟังก์ชันเหล่านั้นได้

ฟังก์ชันอนุพันธ์

ฟังก์ชันบูลีนสามารถแยกส่วนได้โดยใช้ทฤษฎีบทการขยายของบูลีนในโคแฟกเตอร์แชน นอนบวกและลบ ( การขยายแชนนอน ) ซึ่งเป็นฟังก์ชัน ( k −1)-ary ที่ได้จากการกำหนดค่าอาร์กิวเมนต์หนึ่งตัว (เป็น 0 หรือ 1) ฟังก์ชัน k -ary ทั่วไปที่ได้จากการกำหนดข้อจำกัดเชิงเส้นบนชุดอินพุต (ปริภูมิย่อยเชิงเส้น) เรียกว่าฟังก์ชันย่อย[ 8 ]

อนุพันธ์บูลีนของฟังก์ชันกับอาร์กิวเมนต์ตัวใดตัวหนึ่งเป็นฟังก์ชัน ( k −1)-ary ที่เป็นจริงเมื่อเอาต์พุตของฟังก์ชันไวต่อตัวแปรอินพุตที่เลือก มันคือ XOR ของโคแฟกเตอร์ที่สอดคล้องกันสองตัว อนุพันธ์และโคแฟกเตอร์ถูกใช้ในการขยาย Reed–Mullerแนวคิดนี้สามารถสรุปได้เป็น อนุพันธ์ k -ary ในทิศทาง dx ซึ่งได้มาจากการหาผลต่าง (XOR) ของฟังก์ชันที่ x และ x + dx [ 8 ]

การแปลงโมเบียส (หรือการแปลงบูล-โมเบียส ) ของฟังก์ชันบูลีนคือเซตของสัมประสิทธิ์ของพหุนาม ( รูปแบบปกติทางพีชคณิต ) ของฟังก์ชันนั้น โดยเป็นฟังก์ชันของเวกเตอร์เลขชี้กำลังเอกนาม มันเป็นการ แปลง ผกผันตัวเองสามารถคำนวณได้อย่างมีประสิทธิภาพโดยใช้อัลกอริทึมผีเสื้อ (" การแปลงโมเบียสแบบเร็ว ") ซึ่งคล้ายกับการแปลงฟูริเยร์แบบเร็ว [ 9 ] ฟังก์ชัน บูลีน ที่ตรงกันจะเท่ากับการแปลงโมเบียสของฟังก์ชันนั้น กล่าวคือ ค่าตารางความจริง (มินเทอม) ของฟังก์ชันนั้นเท่ากับสัมประสิทธิ์ทางพีชคณิต (เอกนาม) ของ ฟังก์ชัน นั้น [ 10 ]มีฟังก์ชันที่ตรงกัน 2^2^( k −1) ฟังก์ชันที่มี อาร์กิวเมนต์ k ตัว [ 11 ]

การวิเคราะห์การเข้ารหัส

การแปลงวอลช์ของฟังก์ชันบูลีนเป็นฟังก์ชันค่าจำนวนเต็ม k ตัวที่ให้สัมประสิทธิ์ของการแยกส่วนเป็นฟังก์ชันเชิงเส้น ( ฟังก์ชันวอลช์ ) ซึ่งคล้ายคลึงกับการแยกส่วนฟังก์ชันค่าจริงเป็นฮา ร์มอนิก โดยการแปลงฟูริเย ร์ กำลังสองของมันคือสเปกตรัมกำลังหรือสเปกตรัมวอลช์ สัมประสิทธิ์วอลช์ของเวกเตอร์บิตเดี่ยวเป็นการวัดความสัมพันธ์ของบิตนั้นกับเอาต์พุตของฟังก์ชันบูลีน สัมประสิทธิ์วอลช์สูงสุด (ในค่าสัมบูรณ์) เรียกว่าความเป็นเชิงเส้นของฟังก์ชัน[ 8 ]จำนวนบิตสูงสุด (ลำดับ) ที่สัมประสิทธิ์วอลช์ทั้งหมดเป็น 0 (กล่าวคือฟังก์ชันย่อยมีความสมดุล) เรียกว่าความยืดหยุ่นและฟังก์ชันนั้นกล่าวได้ว่ามีภูมิคุ้มกันต่อความสัมพันธ์ของลำดับนั้น[ 8 ]สัมประสิทธิ์วอลช์มีบทบาทสำคัญใน การ วิเคราะห์ การเข้ารหัสเชิงเส้น

ค่าสหสัมพันธ์อัตโนมัติของฟังก์ชันบูลีนคือฟังก์ชันค่าจำนวนเต็ม k ตัว ซึ่งให้ความสัมพันธ์ระหว่างชุดการเปลี่ยนแปลงบางอย่างในอินพุตและเอาต์พุตของฟังก์ชัน สำหรับเวกเตอร์บิตที่กำหนด ค่าสหสัมพันธ์อัตโนมัติจะสัมพันธ์กับน้ำหนักแฮมมิงของอนุพันธ์ในทิศทางนั้น ค่าสัมประสิทธิ์สหสัมพันธ์อัตโนมัติสูงสุด (ในค่าสัมบูรณ์) เรียกว่า ตัวบ่ง ชี้สัมบูรณ์[ 7 ] [ 8 ]หากค่าสัมประสิทธิ์สหสัมพันธ์อัตโนมัติทั้งหมดเป็น 0 (กล่าวคือ อนุพันธ์มีความสมดุล) สำหรับจำนวนบิตที่กำหนด ฟังก์ชันนั้นจะถือว่าตรงตามเกณฑ์การแพร่กระจายตามลำดับนั้น หากค่าสัมประสิทธิ์ทั้งหมดเป็นศูนย์ ฟังก์ชันนั้นจะเป็นฟังก์ชันเบนท์ [ 12 ] ค่าสัมประสิทธิ์สหสัมพันธ์อัตโนมัติมีบทบาทสำคัญในการ วิเคราะห์การเข้ารหัสแบบดิฟเฟอเรนเชียล

สัมประสิทธิ์วอลช์ของฟังก์ชันบูลีนและสัมประสิทธิ์สหสัมพันธ์อัตโนมัติมีความสัมพันธ์กันโดยเทียบเท่ากับทฤษฎีบท Wiener–Khinchinซึ่งระบุว่าสหสัมพันธ์อัตโนมัติและสเปกตรัมกำลังเป็นคู่การแปลงวอลช์[ 8 ]

ตารางการประมาณเชิงเส้น

แนวคิดเหล่านี้สามารถขยายไปสู่ ฟังก์ชันบูลีน เวกเตอร์ ได้อย่างเป็นธรรมชาติ โดยพิจารณาบิตเอาต์พุต ( พิกัด ) ทีละบิต หรือพิจารณาอย่างละเอียดมากขึ้นโดยดูที่เซตของฟังก์ชันเชิงเส้นทั้งหมดของบิตเอาต์พุต ซึ่งเรียกว่าส่วนประกอบ [ 6 ]เซตของการแปลงวอลช์ของส่วนประกอบเรียกว่าตารางการประมาณเชิงเส้น (LAT) [ 13 ] [ 14 ]หรือเมทริกซ์สหสัมพันธ์[ 15 ] [ 16 ]ซึ่งอธิบายความสัมพันธ์ระหว่างการรวมเชิงเส้นที่แตกต่างกันของบิตอินพุตและเอาต์พุต เซตของสัมประสิทธิ์สหสัมพันธ์อัตโนมัติของส่วนประกอบคือตารางสหสัมพันธ์อัตโนมัติ [ 14 ] ซึ่งเกี่ยวข้องกับการแปลงวอลช์ของส่วนประกอบ[ 17 ] กับ ตารางการกระจายความแตกต่าง (DDT) ที่ใช้กันอย่างแพร่หลายมากขึ้น[ 13 ] [ 14 ]ซึ่งแสดงรายการความสัมพันธ์ระหว่างความแตกต่างในบิตอินพุตและเอาต์พุต (ดูเพิ่มเติม: S-box )

รูปแบบพหุนามจริง

บนไฮเปอร์คิวบ์หน่วย

ฟังก์ชันบูลีนใดๆสามารถขยาย (แทรกสอด) ไปยังโดเมนจำนวนจริง ได้อย่างไม่ซ้ำกัน โดยใช้พหุนามหลายเชิงเส้นในซึ่งสร้างขึ้นโดยการรวมค่าในตารางความจริงที่คูณด้วยพหุนามตัวบ่งชี้ตัวอย่างเช่น การขยายฟังก์ชัน XOR แบบไบนารีคือซึ่งเท่ากับตัวอย่างอื่นๆ ได้แก่ การปฏิเสธ ( ), AND ( ) และ OR ( ) เมื่อตัวถูกดำเนินการทั้งหมดเป็นอิสระต่อกัน (ไม่มีตัวแปรที่ใช้ร่วมกัน) รูปแบบพหุนามของฟังก์ชันสามารถหาได้โดยการใช้พหุนามของตัวดำเนินการในสูตรบูลีนซ้ำๆ เมื่อคำนวณสัมประสิทธิ์โมดูลัส 2จะได้รูปแบบปกติทางพีชคณิต ( พหุนาม Zhegalkin )

สามารถหาค่าสัมประสิทธิ์ของพหุนามโดยตรงได้โดยการหาอนุพันธ์ที่เหมาะสมซึ่งจะขยายความได้เป็นการผกผันโมเบียสของ เซต เวกเตอร์บิตที่มีลำดับบางส่วนโดยที่แทนน้ำหนักของเวกเตอร์บิตเมื่อหารด้วย 2 จะได้เป็นการแปลงโมเบียสแบบบูลีนซึ่งให้ค่าสัมประสิทธิ์ในรูปแบบปกติทางพีชคณิตในทั้งสองกรณี ผลรวมจะคำนวณจากเวกเตอร์บิตa ทั้งหมด ที่ครอบคลุมโดยmกล่าวคือ บิต "หนึ่ง" ของa เป็นส่วนย่อยของ บิต หนึ่งทั้งหมดของm

เมื่อจำกัดขอบเขตของโดเมนไว้ที่ ไฮเปอร์คิวบ์ n มิติพหุนามจะให้ความน่าจะเป็นของผลลัพธ์ที่เป็นบวกเมื่อใช้ ฟังก์ชันบูลีน f กับตัวแปร สุ่มอิสระ ( เบอร์นูลลี ) n ตัว โดยแต่ละตัวมีความน่าจะเป็นxเท่ากัน กรณีพิเศษของข้อเท็จจริงนี้คือทฤษฎีบทการสะสมสำหรับฟังก์ชันความเท่าเทียมกัน รูปแบบพหุนามของฟังก์ชันบูลีนยังสามารถใช้เป็นส่วนขยายตามธรรมชาติของฟังก์ชันนี้ในตรรกะคลุมเครือ ได้อีก ด้วย

บนไฮเปอร์คิวบ์สมมาตร

โดยทั่วไป โดเมนบูลีนจะถูกกำหนดให้เป็นโดยที่ค่าเท็จ ("0") จะถูกแมปไปยัง 1 และค่าจริง ("1") จะถูกแมปไปยัง −1 (ดูการวิเคราะห์ฟังก์ชันบูลีน ) พหุนามที่สอดคล้องกับจะกำหนดโดย: การใช้โดเมนบูลีนแบบสมมาตรช่วยลดความซับซ้อนของบางแง่มุมของการวิเคราะห์เนื่องจากค่าลบสอดคล้องกับการคูณด้วย −1 และฟังก์ชันเชิงเส้นเป็นเอกนาม (XOR คือการคูณ) ดังนั้นรูปแบบพหุนามนี้จึงสอดคล้องกับการแปลงวอลช์ (ในบริบทนี้เรียกอีกอย่างว่าการแปลงฟูริเยร์ ) ของฟังก์ชัน (ดูด้านบน) พหุนามนี้ยังมีการตีความทางสถิติเช่นเดียวกับในโดเมนบูลีนมาตรฐาน ยกเว้นว่าตอนนี้มันเกี่ยวข้องกับค่าที่คาดหวัง(ดูบทพิสูจน์การทับซ้อนเป็นตัวอย่าง)

แอปพลิเคชัน

ฟังก์ชันบูลีนมีบทบาทพื้นฐานในทฤษฎีความซับซ้อนรวมถึงการออกแบบโปรเซสเซอร์สำหรับคอมพิวเตอร์ดิจิทัลซึ่งมีการนำไปใช้ในวงจรอิเล็กทรอนิกส์โดยใช้เกตตรรกะ

คุณสมบัติของฟังก์ชันบูลีนมีความสำคัญอย่างยิ่งในด้านการเข้ารหัสโดยเฉพาะอย่างยิ่งในการออกแบบอัลกอริธึมกุญแจสมมาตร (ดูในกรอบการแทนที่ )

ใน ทฤษฎี เกมแบบร่วมมือฟังก์ชันบูลีนแบบโมโนโทนเรียกว่าเกมแบบง่าย (เกมการลงคะแนน) แนวคิดนี้ถูกนำไปประยุกต์ใช้ในการแก้ปัญหาในทฤษฎีการเลือกทางสังคม

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • Crama, Yves; Hammer, Peter L. (2011), ฟังก์ชันบูลีน: ทฤษฎี อัลกอริทึม และการประยุกต์ใช้ , สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์, doi : 10.1017/CBO9780511852008 , ISBN 9780511852008
  • "ฟังก์ชันบูลีน" , สารานุกรมคณิตศาสตร์ , EMS Press , 2001 [1994]
  • Janković, Dragan; Stanković, Radomir S.; Moraga, Claudio (พฤศจิกายน 2546). "การปรับปรุงนิพจน์ทางคณิตศาสตร์โดยใช้คุณสมบัติขั้วคู่"วารสารวิศวกรรมไฟฟ้าเซอร์เบีย 1 ( 71– 80 , ฉบับที่ 1): 71– 80. doi : 10.2298/SJEE0301071J .
  • อาร์โนลด์, แบรดฟอร์ด เฮนรี (1 มกราคม 2011). ตรรกศาสตร์และพีชคณิตบูลีน . บริษัท คูเรียร์ คอร์ปอเรชั่น. ISBN 978-0-486-48385-6.
  • มาโน, เอ็มเอ็ม; ซิเล็ตติ, เอ็มดี (2013), การออกแบบดิจิทัล , เพียร์สัน
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Boolean_function&oldid=1360621070#Cryptographic_analysis "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ฟังก์ชันบูลีน

ใน ทางคณิตศาสตร์ ฟังก์ชัน บูลีน คือ ฟังก์ชัน ที่ อาร์กิวเมนต์ และผลลัพธ์มีค่าจากเซตสององค์ประกอบ (โดยปกติคือ {จริง, เท็จ}, {0,1} หรือ {−1,1}) [ 1 ] [ 2 ] ชื่อเรียกอื่นคือ...

ตัวอย่าง

ฟังก์ชันบูลีนสมมาตรพื้นฐาน ( ตัวเชื่อมตรรกะ หรือ เกตตรรกะ ) ได้แก่:

คุณสมบัติ

ฟังก์ชันบูลีนสามารถมีคุณสมบัติได้หลากหลาย: [ 7 ]

ฟังก์ชันอนุพันธ์

ฟังก์ชันบูลีนสามารถแยกส่วนได้โดยใช้ ทฤษฎีบทการขยายของบูลีน ใน โคแฟกเตอร์ แชน นอนบวกและลบ ( การขยายแชนนอน ) ซึ่งเป็นฟังก์ชัน ( k −1)-ary ที่ได้จากการกำหนดค่าอาร์กิวเมนต์หนึ่งตัว (เป็น 0 หรือ 1) ฟังก์ชัน k -ary ทั่วไปที่ได้จากการกำหนดข้อจำกัดเชิงเส้นบนชุดอินพุต...