ออโตมาตาเซลลูลาร์คืออะไร
ออโตมาตาเซลลูลาร์คือกระดานที่ประกอบด้วยช่อง แต่ละช่องมีสถานะ (ในกรณีนี้คือมีชีวิตหรือตาย) และเปลี่ยนไปทีละขั้นที่เรียกว่ารุ่น ในแต่ละขั้น ทุกช่องจะอัปเดตพร้อมกันโดยใช้กฎเดียวกัน ซึ่งดูเฉพาะช่องข้างเคียงทั้งแปดช่องที่ล้อมรอบแต่ละช่อง
เกมแห่งชีวิตไม่มีแพ้หรือชนะ คุณเลือกตำแหน่งเริ่มต้น แล้วกฎจะจัดการส่วนที่เหลือ สิ่งที่น่าสนใจคือกฎที่เรียบง่ายขนาดนี้ให้พฤติกรรมที่ซับซ้อนและคาดเดายาก จึงมีการศึกษาทั้งในคณิตศาสตร์ วิทยาการคอมพิวเตอร์ และแม้แต่ชีววิทยา
กฎ อธิบายด้วยภาษาง่าย ๆ
ให้นับจำนวนเพื่อนบ้านที่มีชีวิตของแต่ละช่อง (แปดช่องรอบตัว รวมช่องทแยง) แล้วใช้กฎต่อไปนี้พร้อมกันทั้งกระดาน
- เซลล์ที่มีชีวิตและมีเพื่อนบ้านที่มีชีวิตน้อยกว่าสองช่อง จะตายเพราะโดดเดี่ยว
- เซลล์ที่มีชีวิตและมีเพื่อนบ้านที่มีชีวิตสองหรือสามช่อง จะมีชีวิตต่อไป
- เซลล์ที่มีชีวิตและมีเพื่อนบ้านที่มีชีวิตมากกว่าสามช่อง จะตายเพราะแออัดเกินไป
- ช่องว่างที่มีเพื่อนบ้านที่มีชีวิตสามช่องพอดี จะเกิดเซลล์ใหม่
สัญกรณ์ย่อของกฎนี้คือ B3/S23 โดย B (มาจาก birth คือการเกิด) 3 หมายถึงเกิดเมื่อมีเพื่อนบ้านสามช่อง และ S (มาจาก survival คือการอยู่รอด) 23 หมายถึงอยู่รอดเมื่อมีสองหรือสามช่อง กฎทางเลือกในเครื่องมือก็ใช้สัญกรณ์เดียวกัน เช่น HighLife คือ B36/S23 และเมล็ดพันธุ์คือ B2/S
คำนวณหนึ่งรุ่นด้วยมือ
ลองดูบลิงเกอร์ ซึ่งเป็นเซลล์ที่มีชีวิตสามช่องเรียงกันในแนวนอน ช่องกลางมีเพื่อนบ้านที่มีชีวิตสองช่อง จึงอยู่รอด ช่องที่ปลายทั้งสองข้างมีเพื่อนบ้านเพียงหนึ่งช่อง จึงตาย ส่วนช่องที่อยู่เหนือและใต้ช่องกลางพอดีมีเพื่อนบ้านที่มีชีวิตสามช่อง (ทั้งสามช่องในแถว) จึงเกิดเซลล์ใหม่ ผลลัพธ์คือเซลล์สามช่องเรียงกันในแนวตั้ง
ในรุ่นถัดไป กระบวนการเดิมซ้ำอีกครั้งและกลับมาเป็นแนวนอน บลิงเกอร์จึงเป็นออสซิลเลเตอร์คาบ 2 ลองทำแบบเดียวกันกับบล็อก ซึ่งเป็นสี่เหลี่ยมจัตุรัส 2 × 2 ทุกเซลล์มีเพื่อนบ้านสามช่อง จึงอยู่รอดทั้งหมด และไม่มีช่องว่างใดที่มีเพื่อนบ้านที่มีชีวิตสามช่อง จึงไม่เปลี่ยนแปลงเลย เราเรียกรูปแบบนี้ว่าชีวิตนิ่ง
ประวัติ: คอนเวย์ การ์ดเนอร์ และนิตยสาร
จอห์น คอนเวย์ นักคณิตศาสตร์ชาวอังกฤษ คิดเกมนี้ขึ้นในปี 1970 มาร์ติน การ์ดเนอร์ เผยแพร่เกมนี้ในคอลัมน์เกมคณิตศาสตร์ของนิตยสาร Scientific American ฉบับเดือนตุลาคม 1970 และนับจากนั้นก็เกิดชุมชนผู้สนใจขนาดใหญ่ที่ค้นหาและจัดทำรายการแพตเทิร์น
ต่อมามีการพิสูจน์ว่าเกมนี้เป็นทัวริงสมบูรณ์ คือเมื่อมีรูปร่างที่เหมาะสม ในทางทฤษฎีก็สามารถคำนวณอะไรก็ได้ที่คอมพิวเตอร์คำนวณได้ นี่เป็นหนึ่งในเหตุผลที่เกมยังมีชื่อเสียง คือความซับซ้อนไร้ขีดจำกัดจากกฎที่น้อยที่สุด
ตระกูลของแพตเทิร์นและแบบที่ควรลอง
แพตเทิร์นแบ่งตามพฤติกรรมของมัน ทั้งหมดอยู่ในเมนู «แพตเทิร์น» ของเครื่องมือ ตามชื่อเหล่านี้
| ตระกูล | แพตเทิร์น | สิ่งที่ทำ |
|---|---|---|
| ชีวิตนิ่ง | บล็อก, รังผึ้ง | ไม่เปลี่ยนแปลงเลย: บล็อกมี 4 เซลล์ รังผึ้งมี 6 เซลล์ |
| ออสซิลเลเตอร์ | บลิงเกอร์, คางคก, บีคอน | คาบ 2: กลับมาเริ่มใหม่ทุก 2 รุ่น |
| ออสซิลเลเตอร์ | พัลซาร์ | คาบ 3 มี 48 เซลล์ในระยะเริ่มต้น |
| ออสซิลเลเตอร์ | เพนทาเดคาธลอน | คาบ 15 |
| ยาน | กลายเดอร์ | 5 เซลล์ เคลื่อนที่ไปทางทแยง 1 ช่องทุก 4 รุ่น |
| ยาน | ยานเบา | ข้ามกระดานเป็นเส้นตรง คาบ 4 |
| ปืน | ปืนกลายเดอร์ของกอสเปอร์ | ปล่อยกลายเดอร์ใหม่ทุก 30 รุ่น |
| ความวุ่นวายช่วงต้น | R-pentomino | 5 เซลล์ที่ใช้ 1,103 รุ่นกว่าจะนิ่งบนระนาบอนันต์ |
ปืนของกอสเปอร์ถูกค้นพบโดยบิล กอสเปอร์ ในปี 1970 และเป็นหลักฐานแรกที่แสดงว่าประชากรสามารถเพิ่มได้ไม่จำกัด นอกจากนี้ เครื่องมือยังมีเอคอร์นและไดฮาร์ด ซึ่งเป็นแพตเทิร์นเล็ก ๆ สองแบบที่ใช้เวลานานมากกว่าจะนิ่ง
วิธีใช้เครื่องมือเกมแห่งชีวิต
- แตะหรือลากบนกระดานเพื่อวาดเซลล์ที่มีชีวิต (แตะช่องที่มีชีวิตอีกครั้งเพื่อเอาออก) หรือเลือกแพตเทิร์นจากเมนู «แพตเทิร์น»
- กด «เริ่ม» ปุ่ม «ทีละรุ่น» ให้เดินหน้าทีละขั้นเพื่อดูวิวัฒนาการอย่างช้า ๆ และ «หยุดชั่วคราว» จะหยุดทุกอย่าง ใช้แป้นพิมพ์ได้เมื่อเลือกกระดานอยู่ คือเว้นวรรคเริ่มหรือหยุด N เดินหน้าหนึ่งขั้น R สุ่มเติมกระดาน และ C ล้างกระดาน
- ปรับ «ความเร็ว» «ขนาดกระดาน» และ «กฎ» และลอง «สุ่ม» (พร้อม «ความหนาแน่นของการสุ่ม») เพื่อเริ่มจากกระดานที่เต็มไปด้วยเซลล์ ปุ่ม «ล้าง» ทำให้กระดานว่าง
- เปิด «ระบายสีตามอายุของแต่ละเซลล์» เพื่อดูว่าบริเวณไหนนิ่งมานานกว่า ด้านบนจะแสดงรุ่นและจำนวนเซลล์ที่มีชีวิต และเครื่องมือจะแจ้งเมื่อกระดานนิ่ง เข้าสู่วงจรซ้ำ หรือไม่มีชีวิตเหลืออยู่
ทุกอย่างคำนวณบนอุปกรณ์ของคุณ และไม่มีการส่งอะไรไปยังเซิร์ฟเวอร์ เครื่องมือจะเก็บการตั้งค่า (ขนาด ความเร็ว กฎ) ไว้ในเบราว์เซอร์ของคุณ แต่ไม่เก็บภาพที่วาด
การทดลองที่น่าลอง
- โหลดกลายเดอร์ แล้วนับว่าใช้กี่รุ่นถึงจะขยับไปทางทแยงหนึ่งช่อง คำตอบคือ 4 ถ้าเปิดขอบเชื่อมต่อกัน มันจะวนรอบกระดานและโผล่อีกด้านหนึ่ง
- วางกลายเดอร์สองตัวบนเส้นทางที่ชนกัน แล้วดูว่าผลจะเป็นอย่างไร ขึ้นอยู่กับวิธีที่มันมาชนกัน อาจทำลายกันหรือเหลือชีวิตนิ่ง
- โหลดปืนของกอสเปอร์บนกระดานขนาดอย่างน้อย 48 × 48 แล้วนับว่าใช้เวลาเท่าไรในการยิงกลายเดอร์แต่ละตัว คือ 30 รุ่น
- โหลด R-pentomino บนกระดานใหญ่ แล้วเปรียบเทียบเมื่อเปิดและปิดขอบเชื่อมต่อกัน บนระนาบอนันต์ใช้ 1,103 รุ่นกว่าจะนิ่ง แต่บนกระดานจำกัดผลจะต่างออกไป
- เปลี่ยนกฎโดยใช้ภาพเดิม ด้วยกฎเมล็ดพันธุ์ (B2/S) ทุกเซลล์จะตายในทุกรุ่น เหลือเพียงเซลล์ที่เกิดใหม่ ภาพจึงขยายออกด้านนอก ด้วยกฎเขาวงกต (B3/S12345) จะเกิดโครงสร้างคล้ายทางเดิน
ข้อจำกัดของกระดานที่มีขนาดจำกัด
เกมต้นฉบับเกิดขึ้นบนระนาบอนันต์ แต่กระดานของเครื่องมือมีขนาดคงที่ สิ่งที่ไปถึงขอบจึงทำงานต่างออกไป เมื่อเปิดขอบเชื่อมต่อกัน มันจะวนกลับเข้ามาทางด้านตรงข้าม (กระดานกลายเป็นเหมือนโดนัท) และเมื่อไม่เชื่อมต่อ มันจะดับลงที่กำแพง
ด้วยเหตุนี้ แพตเทิร์นขนาดใหญ่จึงต้องการพื้นที่ (ปืนของกอสเปอร์ต้องการอย่างน้อย 48 × 48) และบางแบบ เช่น R-pentomino อาจจบต่างจากที่เห็นบนระนาบไร้ขอบเขต ถ้าแพตเทิร์นไม่พอดีกับกระดาน เครื่องมือจะขอให้ใช้กระดานที่ใหญ่ขึ้น
คำถามที่พบบ่อย
กฎของเกมแห่งชีวิตของคอนเวย์คืออะไร
เซลล์ที่มีชีวิตและมีเพื่อนบ้านที่มีชีวิต 2 หรือ 3 ช่องจะอยู่รอด ถ้าน้อยกว่า 2 จะตายเพราะโดดเดี่ยว และถ้ามากกว่า 3 จะตายเพราะแออัด ช่องว่างที่มีเพื่อนบ้านที่มีชีวิต 3 ช่องพอดีจะเกิดเซลล์ใหม่ สรุปเป็น B3/S23
B3/S23 หมายความว่าอะไร
B คือการเกิด (birth) และ S คือการอยู่รอด (survival) B3 หมายความว่าเซลล์เกิดเมื่อมีเพื่อนบ้านที่มีชีวิต 3 ช่อง และ S23 หมายความว่าเซลล์ที่มี 2 หรือ 3 ช่องจะอยู่รอด
กลายเดอร์คืออะไร
เป็นรูปร่างที่มีห้าเซลล์และเคลื่อนที่ไปทางทแยงหนึ่งช่องทุก 4 รุ่น เป็นแพตเทิร์นที่รู้จักกันมากที่สุดของเกมนี้
ใครเป็นผู้คิดเกมแห่งชีวิต
จอห์น คอนเวย์ นักคณิตศาสตร์ชาวอังกฤษ ในปี 1970 และมาร์ติน การ์ดเนอร์ ทำให้เกมเป็นที่รู้จักในปีนั้นผ่านนิตยสาร Scientific American
ทำไมภาพที่ฉันวาดจึงหายไปหรือนิ่งอยู่กับที่
เป็นเรื่องที่พบบ่อยที่สุด รูปร่างเล็ก ๆ หลายแบบจะสูญพันธุ์หรือนิ่งภายในไม่กี่รุ่น ลองเปลี่ยนจุดเริ่มต้น ใช้กระดานที่ใหญ่ขึ้น หรือลอง «สุ่ม»