บทความ

9 กรกฎาคม 1918 — นิโคลาส เดอ บรอยน์: ลำดับวงกลมที่บรรจุทุกรหัสผ่านไว้ในตัวเอง

บทความโดย

41
แชร์บทความนี้

9 กรกฎาคม 1918 — นิโคลาส เดอ บรอยน์: ลำดับวงกลมที่บรรจุทุกรหัสผ่านไว้ในตัวเอง

วันนี้ในประวัติศาสตร์คณิตศาสตร์ | 9 กรกฎาคม ค.ศ. 1918


บทนำ: ปัญหาของขโมยที่ฉลาด

สมมติว่าประตูห้องนิรภัยใช้รหัส 4 หลัก แต่ละหลักเป็นเลข 0–9 และประตูจะเปิดทันทีที่ 4 ตัวอักษรล่าสุดที่กด ตรงกับรหัส (ไม่มีปุ่ม Enter ไม่มีการล็อกหลังกดผิด)

ถ้าลองทุกรหัสแยกกัน ต้องกด $10{,}000 \times 4 = 40{,}000$ ครั้ง

แต่ถ้ากดอย่างชาญฉลาด — ให้รหัสถัดไป เหลื่อมทับ กับรหัสก่อนหน้า — จะต้องกดกี่ครั้ง?

คำตอบ: 10,003 ครั้ง และกุญแจของคำตอบนั้นชื่อว่า ลำดับเดอ บรอยน์ (de Bruijn sequence)

ผู้ตั้งชื่อนี้คือ นิโคลาส โกเวิร์ต เดอ บรอยน์ (Nicolaas Govert “Dick” de Bruijn, 1918–2012) นักคณิตศาสตร์ชาวดัตช์ที่เกิดในวันนี้ที่กรุงเฮก


1. นิยามและความมหัศจรรย์

นิยาม ลำดับเดอ บรอยน์อันดับ $n$ บนตัวอักษรขนาด $k$ เขียนแทนด้วย $B(k,n)$ คือลำดับวงกลม (cyclic sequence) ที่มีความยาว $k^n$ ซึ่งบล็อกย่อยความยาว $n$ ที่เป็นไปได้ทั้ง $k^n$ แบบ ปรากฏขึ้น แบบละครั้งพอดี

ตัวอย่าง $B(2,3)$:

$$ \mathbf{00010111} $$

อ่านเป็นวงกลม (ต่อหางกับหัว) แล้วเลื่อนหน้าต่างขนาด 3 ไปทีละตำแหน่ง:

ตำแหน่ง บล็อก
1 000
2 001
3 010
4 101
5 011
6 111
7 110 (วนกลับ)
8 100 (วนกลับ)

ครบทั้ง 8 บล็อก ไม่ซ้ำเลยแม้แต่บล็อกเดียว — สวยงามอย่างน่าอัศจรรย์

จำนวนลำดับเดอ บรอยน์ที่แตกต่างกัน สำหรับ $B(k,n)$ คือ

$$ \frac{(k!)^{,k^{,n-1}}}{k^{,n}} $$


2. เคล็ดลับ: แปลงเป็นปัญหากราฟ

นี่คือส่วนที่งดงามที่สุด และเหมาะกับการสอนทฤษฎีกราฟมาก

สร้าง กราฟเดอ บรอยน์ $G$ ดังนี้

  • จุดยอด (vertex): ทุกสตริงความยาว $n-1$ (มี $k^{n-1}$ จุด)
  • เส้นเชื่อม (edge): จากจุด $a_1a_2\cdots a_{n-1}$ ไปยัง $a_2a_3\cdots a_{n-1}b$ สำหรับทุก $b$ ในตัวอักษร (มี $k^n$ เส้น)

สังเกตว่า แต่ละเส้นเชื่อมสอดคล้องกับบล็อกความยาว $n$ หนึ่งบล็อกพอดี

ดังนั้น ลำดับเดอ บรอยน์ = วงจรออยเลอร์ (Eulerian circuit) บนกราฟนี้

และเพราะทุกจุดยอดมี in-degree $= k$ และ out-degree $= k$ เท่ากัน อีกทั้งกราฟเชื่อมโยงกันแบบ strongly connected → ทฤษฎีบทออยเลอร์รับประกันว่าวงจรออยเลอร์มีอยู่จริงเสมอ $\blacksquare$

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

หมายเหตุประวัติศาสตร์: เดอ บรอยน์เองเป็นคนแรกที่ยอมรับต่อสาธารณะ (ในรายงานเทคนิคปี 1975) ว่านักคณิตศาสตร์ชาวฝรั่งเศส C. Flye Sainte-Marie ได้นับลำดับเหล่านี้ไว้ตั้งแต่ ค.ศ. 1894 แล้ว — ความซื่อสัตย์ทางวิชาการที่น่าเคารพ


3. ที่ใช้จริงในโลกปัจจุบัน

  • การเจาะรหัสประตู / การทดสอบระบบ: ดังตัวอย่างข้างต้น
  • หุ่นยนต์ระบุตำแหน่ง: พิมพ์ลำดับเดอ บรอยน์ลงบนแถบ แล้วเซนเซอร์อ่านแค่ $n$ ตำแหน่งก็รู้ทันทีว่าอยู่ที่ไหนบนแถบ
  • การประกอบจีโนม (genome assembly): อัลกอริทึม de Bruijn graph assembly เป็นวิธีมาตรฐานในการต่อชิ้นส่วน DNA สั้น ๆ ให้เป็นลำดับยาว
  • การเขียนโปรแกรมระดับบิต: เทคนิค de Bruijn multiplication หาตำแหน่งบิต 1 ที่ต่ำที่สุดใน word ได้ในไม่กี่คำสั่ง (ใช้ในโปรแกรมหมากรุกคอมพิวเตอร์)
  • มายากลไพ่: ผู้เล่นเปิดไพ่ 5 ใบติดกัน นักมายากลบอกได้ทันทีว่าเป็นใบใด

4. ชายผู้ทำงานข้ามศาสตร์อย่างไม่หยุดยั้ง

เดอ บรอยน์เกิดที่กรุงเฮก เข้าเรียนคณิตศาสตร์ที่ Leiden University ในปี 1936 แต่สงครามโลกครั้งที่สองทำให้การเรียนสะดุด เขาไปเป็นผู้ช่วยเต็มเวลาที่ Delft ตั้งแต่ปี 1939 (ซึ่งช่วยให้เขารอดพ้นจากการถูกเกณฑ์ไปใช้แรงงานในเยอรมนี) และได้ปริญญาเอกในปี 1943

ผลงานของเขากระจายไปทั่วคณิตศาสตร์อย่างน่าทึ่ง

ปี ผลงาน สาขา
1946 ลำดับเดอ บรอยน์ คณิตศาสตร์เชิงการจัด
1948 ทฤษฎีบทเดอ บรอยน์–แอร์ดิช ทฤษฎีกราฟ / เรขาคณิตเชิงตกกระทบ
1958 หนังสือ Asymptotic Methods in Analysis การวิเคราะห์
1967– โครงการ AUTOMATH ตรรกศาสตร์ / วิทยาการคอมพิวเตอร์
1972 de Bruijn index แคลคูลัสแลมบ์ดา
1981 การสร้างการปูกระเบื้องเพนโรสด้วย pentagrid ควอไซคริสตัล

AUTOMATH สมควรได้รับความสนใจเป็นพิเศษ ในปี 1967 ขณะอายุ 49 ปี เดอ บรอยน์ตัดสินใจเปลี่ยนทิศทางไปสร้าง ระบบตรวจสอบบทพิสูจน์ด้วยคอมพิวเตอร์เครื่องแรกของโลก เขาต้องการภาษาที่เขียนคณิตศาสตร์ทั้งเล่มลงไปได้แล้วให้เครื่องตรวจสอบความถูกต้องทุกบรรทัด

นั่นคือบรรพบุรุษโดยตรงของ Coq, Lean, Isabelle ที่นักคณิตศาสตร์ยุคนี้ใช้พิสูจน์ทฤษฎีบทระดับสี่สีและ Kepler conjecture


5. ทฤษฎีบทเดอ บรอยน์–แอร์ดิช (ฉบับเรขาคณิต)

ถ้ามีจุด $n$ จุดบนระนาบที่ ไม่ได้เรียงอยู่บนเส้นตรงเดียวกันทั้งหมด แล้วเส้นตรงที่ลากผ่านจุดเหล่านั้นอย่างน้อยสองจุด จะมีอย่างน้อย $n$ เส้น

บทพิสูจน์ใช้อุปนัยและหลักการคู่ควบ (duality) เป็นตัวอย่างชั้นเยี่ยมของ combinatorial geometry ที่นักเรียนมัธยมปลายเข้าใจได้


กิจกรรมชวนคิด

  1. สร้าง $B(2,4)$ ด้วยมือ (ความยาว 16) โดยวาดกราฟเดอ บรอยน์ที่มี 8 จุดยอดแล้วเดินหาวงจรออยเลอร์
  2. เขียนโปรแกรมสร้าง $B(10,4)$ แล้วยืนยันว่ามีความยาว 10,000 และเมื่อเติมอีก 3 ตัวที่หัวไปต่อท้าย จะเป็นสตริงเชิงเส้นยาว 10,003 ที่บรรจุทุกรหัส 4 หลัก
  3. พิสูจน์ว่ากราฟเดอ บรอยน์ $G(k, n)$ มีวงจรออยเลอร์เสมอ โดยตรวจสอบเงื่อนไข in-degree = out-degree
  4. ค้นคว้า: อัลกอริทึม de Bruijn graph ใช้ประกอบจีโนมอย่างไร? เหตุใดจึงเหมาะกับ short reads?
  5. ให้ $n = 3$ จุดบนระนาบที่ไม่เรียงเป็นเส้นตรง นับเส้นตรงที่ได้ แล้วตรวจสอบทฤษฎีบทเดอ บรอยน์–แอร์ดิช สำหรับ $n = 4, 5$

เอกสารอ้างอิง

  • de Bruijn, N. G. (1946). A combinatorial problem. Koninklijke Nederlandse Akademie v. Wetenschappen, 49, 758–764.
  • de Bruijn, N. G., & Erdős, P. (1948). On a combinatorial problem. Indagationes Mathematicae, 10, 421–423.
  • de Bruijn, N. G. (1958). Asymptotic Methods in Analysis. North-Holland. (ต่อมาพิมพ์ซ้ำโดย Dover)
  • de Bruijn, N. G. (1975). Acknowledgement of priority to C. Flye Sainte-Marie… Technical Report, TH Eindhoven.
  • Nederpelt, R., Geuvers, H., & de Vrijer, R. (eds.) (1994). Selected Papers on Automath. North-Holland.
  • O’Connor, J. J., & Robertson, E. F. Nicolaas de Bruijn. MacTutor History of Mathematics Archive.

ชุดบทความ “วันนี้ในประวัติศาสตร์คณิตศาสตร์” — เผยแพร่ 9 กรกฎาคม 2569