การใช้งานสำคัญอย่างหนึ่งของคอมพิวเตอร์ในปัจจุบัน นอกเหนือจากการเขียนและแก้ไขข้อความ งานกราฟิก การคอมไพล์โปรแกรม ฯลฯ ก็คือ simulation (การจำลอง)
การจำลองคือคำตอบของคำถามว่า “ถ้า... จะเป็นอย่างไร?”
ถ้าเราทำแบบนี้จะเป็นอย่างไร? ถ้านี่คือสิ่งที่เกิดขึ้น จะเป็นอย่างไร?
ทุกวันนี้ มากกว่า 9 ใน 10 ของการทดลองถูกทำบนคอมพิวเตอร์แล้ว ผมได้แสดงความกังวลอย่างจริงจังไปแล้วว่าพวกเรากำลังพึ่งพาการจำลองมากขึ้นและมองความเป็นจริงน้อยลง จนดูเหมือนว่าเรากำลังเข้าใกล้ทัศนคติแบบนักวิชาการโบราณที่ถือว่าสิ่งในตำราเป็นความจริงและไม่ต้องการการตรวจสอบทางทดลองอย่างต่อเนื่อง ผมจะไม่ลงรายละเอียดเรื่องนี้ต่อ ณ ที่นี้
เราใช้คอมพิวเตอร์ในการจำลองเพราะว่า
- ถูกกว่า,
- เร็วกว่า,
- มักจะให้ผลดีกว่า และ
- สามารถทำสิ่งที่คุณทำไม่ได้ในห้องปฏิบัติการ
ในข้อ 1 และ 2 แม้การเขียนโปรแกรมจะมีค่าใช้จ่ายสูงและช้า พร้อมด้วยข้อผิดพลาดและปัญหาต่าง ๆ แต่มันโดยทั่วไปยังถูกกว่าและเร็วกว่าการจัดการอุปกรณ์ห้องปฏิบัติการให้ใช้งานได้ นอกจากนี้ ในช่วงหลัง ๆ มักมีการซื้ออุปกรณ์ห้องปฏิบัติการคุณภาพสูงราคาแพง แต่ปรากฏว่าไม่กี่ปี—น้อยกว่า 10 ปี—ก็ต้องถูกทิ้งเพราะล้าสมัย ข้อสังเกตข้างต้นทั้งหมดจะไม่เป็นจริงเมื่อสถานการณ์เกิดซ้ำบ่อย ๆ และอุปกรณ์ทดสอบในห้องปฏิบัติการถูกใช้งานอย่างต่อเนื่อง แต่ถ้าให้อุปกรณ์ห้องทดลองพักไว้เฉย ๆ สักระยะ มันอาจใช้งานได้ไม่ถูกต้องอีกต่อไป! นี่เรียกว่า “shelf life” ซึ่งบางครั้งหมายถึงอายุการใช้งานของทักษะในการใช้อุปกรณ์มากกว่าสภาพของอุปกรณ์เอง ผมเห็นเรื่องนี้บ่อยครั้งจากประสบการณ์ตรง อายุการใช้งานทางปัญญามักจะทำให้เกิดปัญหาได้มากกว่าการเสื่อมสภาพทางกายภาพ
ในข้อ 3 บ่อยครั้งเราสามารถได้การอ่านค่าที่แม่นยำกว่าจากการจำลองมากกว่าการวัดโดยตรงในโลกจริง การวัดภาคสนามหรือแม้แต่ในห้องทดลองมักยากจะทำให้แม่นยำในสถานการณ์ที่มีพลวัต นอกจากนี้ ในการจำลองเรามักสามารถรันช่วงค่าตัวแปรอิสระได้กว้างกว่าที่จะทำได้กับการตั้งค่าห้องทดลองชุดเดียว
ในข้อ 4 ซึ่งอาจสำคัญที่สุด การจำลองสามารถทำสิ่งที่การทดลองใด ๆ ทำไม่ได้
ผมจะยกตัวอย่างเรื่องจริงจากการจำลองที่ผมเคยมีส่วนร่วมให้เห็นว่าการจำลองช่วยอะไรได้บ้าง และจะชี้รายละเอียดบางอย่างเพื่อให้ผู้ที่มีประสบการณ์เล็กน้อยกับการจำลองเข้าใจแนวทางการทำงาน — การทำการจำลองขนาดใหญ่ในชั้นเรียนเป็นไปได้ยากเพราะมักกินเวลาหลายปี
การคำนวณขนาดใหญ่ครั้งแรกที่ผมมีส่วนร่วมเกิดขึ้นที่ Los Alamos ในช่วง wwii เมื่อเรากำลังออกแบบระเบิดปรมาณูลูกแรก ไม่มีความเป็นไปได้ของการทดลองขนาดย่อม—คุณต้องมีมวลวิกฤตหรือไม่มีเลย
สรุป:
Figure 18.1—Shells in the implosion design
โดยไม่ลงรายละเอียดที่เป็นความลับ คุณคงจำได้ว่าแบบหนึ่งในสองแบบมีสมมาตรรอบตัวและอาศัยการยุบตัว Figure 18.1 พวกเขาแบ่งวัสดุและพื้นที่ออกเป็นเปลือกวง concentric หลายชั้น แล้วเขียนสมการแรงที่กระทำต่อแต่ละเปลือก (ทั้งสองด้านของมัน) รวมทั้ง equation of state (สมการสถานะ) ซึ่งให้ค่า เช่น ความหนาแน่นของวัสดุตามความดันที่กระทำต่อมัน ต่อมาแบ่งเวลาเป็นช่วงขนาด 10^-8 วินาที (เรียกว่า “shake” มาจากการสะบัดหางลูกแกะ ผมคิดว่า) แล้วสำหรับแต่ละช่วงเวลานั้น เราคำนวณด้วยคอมพิวเตอร์ว่าทุกเปลือกจะเคลื่อนที่ไปที่ใดและจะทำอย่างไรภายใต้แรงที่กระทำ แน่นอนว่ามีการจัดการพิเศษสำหรับแนวหน้าคลื่นช็อกจากวัสดุระเบิดด้านนอกเมื่อมันเคลื่อนผ่านบริเวณนั้น แต่กฎทั้งหมดเหล่านี้ โดยหลักการแล้ว เป็นที่รู้จักดีของผู้เชี่ยวชาญในสาขาที่เกี่ยวข้อง ความดันมีลักษณะที่ต้องมีการเดามากมายว่าสิ่งต่าง ๆ จะเป็นอย่างไรนอกขอบเขตการทดสอบที่ผ่านมา แต่ทฤษฎีฟิสิกส์เล็กน้อยก็ให้ความมั่นใจได้บ้าง
สิ่งนี้แสดงจุดสำคัญหนึ่งที่ผมอยากจะย้ำ มัน จำเป็น ที่ต้องมีความรู้เฉพาะด้านมากมายในสาขาการประยุกต์จริง ๆ ในความเป็นจริง ผมมักมองว่าหลายวิชาที่พวกคุณได้เรียนและจะได้เรียน เป็นเพียงการให้ความรู้เชิงผู้เชี่ยวชาญที่สอดคล้องกันเท่านั้น ผมอยากเน้นความจำเป็นชัดเจนนี้สำหรับความรู้เชิงผู้เชี่ยวชาญ—บ่อยครั้งเกินไปที่ผมเห็นผู้ที่อ้างว่าเป็นผู้เชี่ยวชาญด้านการจำลองมองข้ามข้อเท็จจริงขั้นพื้นฐานนี้และคิดว่าสามารถทำการจำลองได้ด้วยตัวเอง Only ผู้เชี่ยวชาญในสาขาการประยุกต์เท่านั้นที่จะรู้ว่าสิ่งที่คุณละเว้นไปนั้นมีความสำคัญต่อความถูกต้องของการจำลองหรือสามารถละไว้ได้อย่างปลอดภัย
อีกประเด็นหลักคือในการจำลองส่วนใหญ่ต้องมีส่วนที่ทำซ้ำมาก ๆ ซึ่งต้องถูกเรียกใช้อีกและอีกจากโค้ดชิ้นเดียว มิฉะนั้นคุณจะไม่สามารถจ่ายค่าการเขียนโปรแกรมเริ่มต้นได้ คำนวณชุดเดียวกันจะทำซ้ำสำหรับแต่ละเปลือกแล้วสำหรับแต่ละช่วงเวลา—มีการทำซ้ำจำนวนมาก! ในหลายสถานการณ์ กำลังของเครื่องจักรเองมีมากจนเกินกำลังของเราในการเขียนโปรแกรม ดังนั้นควรมองหาและระบุส่วนที่ทำซ้ำตั้งแต่เนิ่น ๆ และเมื่อเป็นไปได้ให้จัดการจำลองให้อยู่ในรูปแบบที่สอดคล้องกับส่วนที่ทำซ้ำนั้น
Figure 18.2—Weather prediction (การพยากรณ์อากาศ)
สรุป: A very similar simulation to the atomic bomb arises in weather prediction. There the atmosphere is broken up into large blocks of air, and the relevant conditions for cloud cover, albedo, temperature, pressure, moisture, velocity, etc. must be initially assigned to each block, Figure 18.2. Then using conventional physics for the atmosphere, we trace where each block goes in a short time interval, along with the relevant changes. It is the same kind of step-by-step evolution as before.
อย่างไรก็ตาม มีความแตกต่างสำคัญระหว่างสองปัญหานี้—ระเบิดกับการพยากรณ์อากาศ สำหรับระเบิด ความแตกต่างเล็กน้อยระหว่างทางไม่ได้มีผลต่อสมรรถนะโดยรวมอย่างมาก แต่การพยากรณ์อากาศไวต่อการเปลี่ยนแปลงเล็กน้อยอย่างที่คุณรู้ นักวิชาการบางคนอ้างว่าแม้การโบกปีกของผีเสื้อที่ญี่ปุ่นอาจตัดสินได้ว่าจะเกิดพายุในประเทศนี้หรือไม่ และมันจะรุนแรงแค่ไหน
นี่เป็นหัวข้อพื้นฐานที่ผมต้องขยายความ เมื่อการจำลองมีความ เสถียร สูง หมายถึงมีความต้านทานต่อการเปลี่ยนแปลงเล็กน้อยในพฤติกรรมโดยรวม การจำลองก็สามารถทำได้อย่างเหมาะสม แต่เมื่อการเปลี่ยนแปลงเล็ก ๆ ในรายละเอียดบางอย่างสามารถทำให้ผลลัพธ์แตกต่างกันมาก การจำลองก็ยากที่จะทำให้แม่นยำ แน่นอนว่ายังมีความเสถียรระยะยาวในสภาพอากาศ ฤดูกาลดำเนินไปตามวัฏจักรของมันโดยไม่สนใจรายละเอียดเล็ก ๆ ดังนั้นจึงมีทั้งความไม่เสถียรระยะสั้น (วันต่อวัน) ในสภาพอากาศ และความเสถียรระยะยาว (ปีต่อปี) ด้วย แต่ก็มีความไม่เสถียรระยะยาวเช่นยุคน้ำแข็ง ซึ่งแสดงว่ามีทั้งช่วงที่ไม่เสถียรยาวนานและช่วงที่ดูเหมือนมีความเสถียรยาวนาน
ผมได้พบปัญหาลักษณะหลังประเภทนี้จำนวนมาก มักยากที่จะตัดสินล่วงหน้าว่าความเสถียรหรือความไม่เสถียรจะมีอิทธิพลเหนือปัญหา และด้วยเหตุนี้จึงเป็นเรื่องยากที่จะรู้ว่าเราจะสามารถหาคำตอบที่ต้องการได้หรือไม่ เมื่อคุณเริ่มทำการจำลอง ให้พิจารณาแง่มุมนี้อย่างรอบคอบ ก่อน ที่คุณจะลงลึกเกินไปแล้วพบว่า หลังจากเสียทั้งแรงงาน เงิน และเวลา คุณไม่สามารถได้คำตอบที่เหมาะสม ดังนั้นมีสถานการณ์ที่ง่ายต่อการจำลอง มีสถานการณ์ที่คุณไม่สามารถจัดการได้จริง ๆ เลย และส่วนใหญ่จะอยู่ระหว่างสองขั้วนั้น จงระมัดระวังในสิ่งที่คุณสัญญาว่าจะทำโดยการจำลอง
เมื่อผมไปที่ Bell Telephone Laboratories ในปี 1946 ผมพบว่าตัวเองอยู่ในขั้นเริ่มต้นของการออกแบบระบบ Nike สำหรับขีปนาวุธนำวิถียุคแรก ๆ ผมถูกส่งไปที่ MIT เพื่อใช้ rda #2 differential analyzer ของเขา ได้รับการบอกถึงการเชื่อมต่อระหว่างส่วนต่าง ๆ ของเครื่องวิเคราะห์ และคำแนะนำมากมายจากคนอื่นที่รู้มากกว่าผมเกี่ยวกับวิธีการรันการจำลอง
ในการออกแบบต้นฉบับมีการยิงแบบเอียงพร้อมสมการเชิงตัวแปรแปรที่จะให้ข้อมูลเพื่อให้ผมสามารถปรับส่วนต่าง ๆ ได้อย่างสมเหตุสมผล เช่น ขนาดปีก ผมควรชี้ให้เห็นว่า เวลาแก้ปัญหาสำหรับหนึ่งเส้นทางประมาณครึ่งชั่วโมง และประมาณครึ่งทางผ่านหนึ่งเส้นทางผมต้องตัดสินใจสำหรับช็อตทดลองถัดไป ดังนั้นผมจึงมีเวลามากที่จะสังเกตและคิดให้ลึกว่าทำไมสิ่งต่าง ๆ จึงเป็นอย่างที่เป็น หลังจากไม่กี่วัน ผมค่อย ๆ ได้ “ความรู้สึก” ต่อพฤติกรรมของขีปนาวุธ ว่าทำไมมันทำอย่างที่มันทำภายใต้กฎการนำวิถีต่าง ๆ ที่ผมต้องให้ เมื่อเวลาผ่านไป ผมค่อย ๆ ตระหนักว่าการยิงแนวตั้งดีที่สุด ในทุกกรณี การหลุดออกจากอากาศชั้นล่างที่หนาแน่นขึ้นไปสู่อากาศชั้นบางด้านบนกลับดีกว่ายุทธศาสตร์อื่น ๆ — ผมสามารถทนต่อแรงต้านที่เพิ่มขึ้นในภายหลังเมื่อผมต้องให้คำสั่งนำวิถีเพื่อลดเส้นทาง ผมพบว่าผมกำลังลดขนาดปีกอย่างมาก และตระหนักในระดับหนึ่งว่าสมการและค่าคงที่ที่ผมได้รับเพื่อประมาณการการเปลี่ยนแปลงเนื่องจากการเปลี่ยนแปลงโครงสร้างของขีปนาวุธคงไม่แม่นยำในช่วงการรบกวนที่กว้างมากนัก (แม้ว่าพวกเขาจะไม่บอกผมแหล่งที่มาของสมการแต่ผมอนุมานได้) ดังนั้นผมจึงโทรลงไปขอคำแนะนำและพบว่าผมถูก—ผมควรกลับบ้านและเอาสมการใหม่มาใช้
ด้วยความล่าช้าเนื่องจากผู้ใช้อื่นต้องการเวลาใช้ rda #2 ผมกลับมาทำงานอีกครั้งพร้อมด้วยปัญญาและประสบการณ์มากขึ้น อีกครั้ง ผมพัฒนาความรู้สึกต่อพฤติกรรมของขีปนาวุธ—ผมเริ่มรู้สึกถึงแรงที่กระทำต่อมันเมื่อมีการทดลองรูปแบบต่าง ๆ ของการปรับเส้นทาง วางตัวเหนือเครื่องพล็อตเอาต์พุตขณะที่การแก้ปัญหาโผล่ขึ้นมาทีละน้อยทำให้ผมมีเวลาเพียงพอที่จะซึมซับสิ่งที่เกิดขึ้น ผมมักสงสัยว่าถ้าผมมีคอมพิวเตอร์ความเร็วสูงสมัยใหม่ จะเกิดอะไรขึ้น ผมจะได้ “ความรู้สึก” ต่อขีปนาวุธหรือไม่ ซึ่งการได้ความรู้สึกนั้นมีความสำคัญมากในการออกแบบขั้นสุดท้าย ผมมักสงสัยว่าการได้ผลลัพธ์จำนวนมากจะสอนผมได้เท่านี้หรือไม่—ผมก็ไม่รู้ แต่ผมยังคงระแวงมาจนถึงทุกวันนี้เกี่ยวกับการได้คำตอบมากเกินไปโดยไม่คิดอย่างรอบคอบในสิ่งที่เห็น ผลลัพธ์ปริมาณมากดูเหมือนเป็นตัวทดแทนที่ไม่ดีสำหรับการได้ความรู้สึกอย่างใกล้ชิดต่อสถานการณ์ที่จำลอง
ผลลัพธ์จากการจำลองครั้งแรกเหล่านี้คือเราหันไปใช้การยิงแนวตั้ง (ซึ่งประหยัดอุปกรณ์ภาคพื้นจำนวนมากในรูปแบบรางวงกลมและความซับซ้อนอื่น ๆ) ทำให้หลายส่วนอื่น ๆ ง่ายขึ้น และดูเหมือนจะหดขนาดปีกลงเหลือประมาณหนึ่งในสามของขนาดที่ผมได้รับในตอนแรก ผมพบว่าปีกขนาดใหญ่ แม้จะให้ความสามารถในการบังคับได้มากขึ้นในหลักการ แต่ในทางปฏิบัติกลับให้แรงต้านมากในช่วงแรกของเส้นทาง จนความเร็วที่ลดลงในภายหลังทำให้ความสามารถในการบังคับลดลงใน “เกมสุดท้าย” ของการเข้าใกล้เป้าหมาย
แน่นอน การจำลองในตอนแรกเหล่านี้ใช้บรรยากาศง่าย ๆ ที่ลดความหนาแน่นแบบเอ็กซ์โปเนนเชียลเมื่อขึ้นสูง และการสมมติอื่น ๆ ซึ่งในการจำลองที่ทำในปีต่อ ๆ มาได้มีการปรับแก้ทั้งหมด นี่นำมาสู่ความเชื่ออีกข้อของผม—การทำการจำลองง่าย ๆ ในระยะแรกจะช่วยให้คุณได้ insights ต่อระบบโดยรวม ซึ่งจะถูกปกปิดในการจำลองเต็มรูปแบบ ผมขอแนะนำอย่างยิ่งว่า เมื่อเป็นไปได้ ให้เริ่มด้วยการจำลองง่าย ๆ และพัฒนาไปสู่การจำลองที่สมบูรณ์และแม่นยำมากขึ้นในภายหลังเพื่อให้แนวคิดเกิดขึ้นตั้งแต่เนิ่น ๆ แน่นอน ในที่สุด เมื่อคุณตรึงแบบสุดท้าย คุณต้องใส่ผลกระทบเล็ก ๆ ทั้งหมดที่อาจส่งผลต่อประสิทธิภาพสุดท้าย แต่ (1) เริ่มอย่างง่ายที่สุดเท่าที่จะเป็นไปได้ โดยมีผลกระทบหลักทั้งหมดอยู่ (2) หาข้อคิดเห็นเชิงลึก และจากนั้น (3) พัฒนาแบบจำลองให้ละเอียดครบถ้วน
ขีปนาวุธนำวิถีเป็นหนึ่งในการสำรวจการบินเหนือเสียงในช่วงแรก และมีตัวแปรที่ไม่รู้มากอีกอย่างหนึ่ง ข้อมูลจากอุโมงค์ลมเหนือเสียงเพียงสองแห่งที่เราสามารถเข้าถึงได้กลับขัดแย้งกันโดยสิ้นเชิง!
ขีปนาวุธนำวิถีนำไปสู่การบินสู่อวกาศโดยธรรมชาติ ซึ่งผมมีบทบาทน้อยกว่าในด้านการจำลอง มากกว่าเป็นที่ปรึกษาภายนอกและการวางแผนเริ่มต้นของ mission profile ตามที่เรียกกัน
การจำลองอีกเรื่องหนึ่งที่ผมจำได้คือการออกแบบ travelling wave tube อีกครั้ง บนเครื่องมือรีเลย์ดั้งเดิม ผมมีเวลามากที่จะคิด และผมตระหนักว่าขณะที่การคำนวณดำเนินไป ผมสามารถรู้ได้ว่าควรให้รูปร่างอื่นนอกเหนือจากท่อที่มักสมมติว่ามีเส้นผ่านศูนย์กลางคงที่ เพื่อดูว่ามันเกิดขึ้นอย่างไร ให้พิจารณาการออกแบบพื้นฐานของ travelling wave tube แนวคิดคือคุณส่งคลื่นอินพุตไปตามเกลียวที่พันแน่นรอบท่อกลวง ดังนั้นความเร็วเชิงผลของคลื่นแม่เหล็กไฟฟ้าตามท่อจึงลดลงอย่างมาก จากนั้นเราส่งลำอิเล็กตรอนลงกลางท่อ ลำแสงมีความเร็วเริ่มต้นมากกว่าคลื่นที่วิ่งไปตามเกลียว การโต้ตอบระหว่างคลื่นและลำแสงทำให้ลำแสงช้าลง—หมายความว่าพลังงานไหลจากลำแสงไปยังคลื่น ซึ่งหมายถึงการขยายของคลื่น! แต่แน่นอนจะมีจุดหนึ่งตามท่อที่ความเร็วของพวกมันใกล้เคียงกันมากและการโต้ตอบเพิ่มเติมจะทำลายสิ่งต่าง ๆ ดังนั้นผมจึงเกิดความคิดว่าถ้าผมค่อย ๆ ขยายเส้นผ่านศูนย์กลางของท่อ ลำแสงจะยังเร็วกว่าคลื่นและพลังงานจะถูกโอนจากลำแสงไปยังคลื่นได้มากขึ้น ตามจริงแล้วเป็นไปได้ที่จะคำนวณที่แต่ละรอบการคำนวณการค่อย ๆ ปรับรูปร่างที่เหมาะสมสำหรับสัญญาณ
ผมยังมีไอเดียที่ไม่ค่อยดีนักว่า เนื่องจากผมพบว่าสมการเป็นการทำเชิงเส้นท้องถิ่นของสมการไม่เชิงเส้นที่ซับซ้อนกว่า ผมจึงสามารถในประมาณทุก ๆ ขั้นที่ยี่สิบถึงห้าสิบ ประเมินองค์ประกอบไม่เชิงเส้น ผมพบว่าทำให้พวกเขาตกใจในบางการออกแบบว่าค่าประมาณขององค์ประกอบไม่เชิงเส้นอาจใหญ่กว่าส่วนเชิงเส้นที่คำนวณได้—ซึ่งจะทำให้การประมาณมีปัญหาและหยุดการคำนวณที่ไร้ประโยชน์
ทำไมต้องเล่าเรื่องนี้? เพราะมันแสดงอีกจุดหนึ่งที่ผมอยากจะชี้—จิตใจที่กระฉับกระเฉงสามารถมีส่วนร่วมในการจำลองแม้เมื่อคุณกำลังทำงานกับผู้เชี่ยวชาญในสาขาที่คุณเป็นแค่มือสมัครเล่น คุณผู้ซึ่งจับรายละเอียดทั้งหมดมีโอกาสเห็นสิ่งที่พวกเขาอาจไม่เห็น และมีโอกาสทำผลงานสำคัญ รวมถึงประหยัดเวลาเครื่องจักรอีกมาก! อีกครั้ง ผมมักเห็นสิ่งที่ถูกมองข้ามระหว่างการจำลองโดยผู้ที่รันมัน จนไม่ค่อยมีโอกาสไปถึงผู้ใช้ผลลัพธ์
หนึ่งขั้นตอนสำคัญที่คุณต้องทำ และผมขอเน้นเรื่องนี้ คือพยายามทำความชำนาญในศัพท์เฉพาะของพวกเขา ทุกสาขาดูจะมีศัพท์แสงเฉพาะที่มักทำให้ผู้ที่อยู่นอกสาขาไม่เข้าใจสิ่งที่เกิดขึ้น—และบางครั้งแม้แต่คนในสาขาก็ไม่เห็น! ระวังศัพท์แสง—เรียนรู้ที่จะจดจำมันในฐานะสิ่งที่มันเป็น คือภาษาพิเศษที่ช่วยการสื่อสารในพื้นที่จำกัดของเรื่องหรือเหตุการณ์ แต่ก็ขัดขวางการคิดนอกขอบเขตที่ออกแบบไว้ ศัพท์แสงเป็นทั้งความจำเป็นและคำสาป คุณต้องตระหนักว่าต้องตื่นตัวทางปัญญาเพื่อใช้ประโยชน์จากศัพท์แสงและหลีกเลี่ยงกับดักของมัน แม้ในสาขาที่คุณเชี่ยวชาญเอง
ในช่วงยาวนานของวิวัฒนาการมนุษย์ยุคถ้ำ คนดูเหมือนจะอยู่เป็นกลุ่มขนาดประมาณ 25 ถึง 100 คน คนจากนอกกลุ่มมักไม่ได้รับการต้อนรับ แม้ว่าคาดว่าอาจมีการลักพาตัวภรรยาเกิดขึ้นบ่อย เมื่อเปรียบเทียบเวลายาวนานของการอยู่แบบมนุษย์ถ้ำกับเวลาสั้น ๆ ของอารยธรรม (น้อยกว่า 10,000 ปี) เราเห็นว่าโดยหลักแล้ววิวัฒนาการได้คัดเลือกให้เราไม่ชอบคนภายนอก และหนึ่งในวิธีการทำเช่นนี้คือการใช้ภาษาเฉพาะของกลุ่ม คำศัพท์โจร สแลงของกลุ่ม ภาษาส่วนตัวของคู่สมรส คำท่าทาง แม้แต่การยกคิ้วเล็กน้อย ล้วนเป็นตัวอย่างของการใช้ภาษาส่วนตัวเพื่อกีดกันคนนอก ดังนั้นสัญชาตญาณในการใช้ศัพท์แสงเมื่อคนนอกเข้ามาควรต่อต้านอย่างมีสติเราตลอดเวลา—ตอนนี้เราทำงานในหน่วยที่ใหญ่กว่ากลุ่มของมนุษย์ถ้ำมาก และเราต้องพยายามเขียนทับลักษณะเดิมนี้ในตัวเราอยู่เสมอ
คณิตศาสตร์ไม่ได้เป็นภาษาที่มีเอกเทศเสมอไปดังที่คุณอาจหวัง เพื่ออธิบายจุดนี้ ให้ผมย้อนกลับไปที่การกล่าวถึงก่อนหน้านี้เกี่ยวกับการจำลองการดักตีของกองทัพเรือที่เกี่ยวข้องกับสมการเชิงอนุพันธ์อันดับหนึ่งพร้อมกัน 28 สมการ ผมต้องเล่าเรื่องอย่างย่อ โดยละเว้นรายละเอียดที่ไม่จำเป็น ให้พิจารณาปัญหาแก้สมการเชิงอนุพันธ์หนึ่งสมการ
สรุป:
Figure 18.3—y' = f (x, y), |y| ≤ 1
Figure 18.3. ให้สมการนี้อยู่ในใจขณะที่ผมพูดถึงปัญหาในจริง ผมได้เขียนโปรแกรมปัญหาจริงที่มี 28 สมการเชิงอนุพันธ์พร้อมกันเพื่อให้ได้คำตอบ แล้วจำกัดค่าบางค่าไว้ที่ 1 เหมือนกับการจำกัดแรงดันไฟฟ้า
สรุป: You should not get the idea simulations are always of time-dependent functions. One problem I was given to run on the differential analyzer we had built out of old m9 gun director parts was to compute the probability distributions of blocking in the central office. Never mind that they gave me an infinite system of interconnected linear differential equations, each one giving the probability distribution of that many calls on the central office as a function of the total load. Of course on a finite machine something must be done, and I had only 12 integrators, as I remember. I viewed it as an impedance line, and using the difference of the last two computed probabilities I assumed they were proportional to the difference of the next two (I used a reasonable constant of proportionality derived from the difference from the two earlier functions), thus the term from the next equation beyond what I was computing was reasonably supplied. The answers were quite popular with the switching department, and made an impression, I believe, on my boss, who still had a low opinion of computing machines.
สรุป: There were underwater simulations, especially of an acoustic array put down in the Bahamas by a friend of mine, where, of course, in winter he often had to go to inspect things and take further measurements. There were numerous simulations of transistor design and behavior. There were simulations of the microwave “jump-jump” relay stations with their receiver horns, and the overall stability arising from a single blip at one end going through all the separate relay stations. It is perfectly possible that while each station recovers promptly from the blip, nevertheless the size of the blip could grow as it crossed the continent. At each relay station there was stability in the sense that the pulse died out in time, but there was also the question of the stability in space—did a random pulse grow indefinitely as it crossed the continent? For colorful reasons I named the problem “space stabilization.” We had to know the circumstances in which this could and could not happen—hence a simulation was necessary because, among other things, the shape of the blip changed as it went across the continent.
สรุป: I hope you see that almost any situation you can describe by some sort of mathematical description can be simulated in principle. In practice you have to be very careful when simulating an unstable situation—though I will tell you in Chapter 20 about an extreme case I had to solve because it was important to the Laboratories, and that meant, at least to me, I had to get the solution, no matter what excuses I gave myself it could not be done. There are always answers of some sort for important problems if you are determined to get them. They may not be perfect, but in desperation something is better than nothing—provided it is reliable!
ผมหวังว่าคุณคงเห็นว่าเกือบทุกสถานการณ์ที่คุณพอจะอธิบายได้ด้วยลักษณะเชิงคณิตศาสตร์สามารถจำลองได้ในหลักการ แต่ในทางปฏิบัติคุณต้องระมัดระวังมากเมื่อจำลองสถานการณ์ที่ไม่เสถียร—แม้ว่าผมจะเล่าเรื่องกรณีสุดขีดที่ผมต้องแก้ให้ห้องปฏิบัติการในบทที่ 20 ซึ่งสำหรับผมหมายความว่าผมต้องได้คำตอบไม่ว่าผมจะหาเหตุผลว่าเป็นไปไม่ได้เพียงใดก็ตาม สำหรับปัญหาสำคัญ มักมีคำตอบบางรูปแบบถ้าคุณตั้งใจจะหา พวกมันอาจไม่สมบูรณ์แบบ แต่ในยามสิ้นหวังอะไรบางอย่างย่อมดีกว่าไม่มี—ตราบใดที่มันเชื่อถือได้!
การจำลองที่ผิดพลาดทำให้คนทิ้งแนวคิดดี ๆ ไป และสิ่งเหล่านี้เกิดขึ้นบ่อยเกินไป! อย่างไรก็ตาม มักไม่ค่อยมีรายงานในวรรณกรรมเพราะมันถูกบันทึกน้อยมาก การจำลองที่ผิดพลาดที่มีชื่อเสียงหนึ่งครั้งซึ่งถูกเผยแพร่กว้างขวาง (ก่อนจะมีคนชี้ข้อผิดพลาด) คือการจำลองโลกทั้งใบโดยกลุ่มที่เรียกว่า “Club of Rome” ปรากฏว่าสมการที่พวกเขาเลือกออกแบบมาให้แสดงหายนะไม่ว่าจะเริ่มอย่างไรหรือเลือกสัมประสิทธิ์ส่วนใหญ่เท่าใดก็ตาม! แต่ยังพบด้วยว่าเมื่อคนอื่นได้รับสมการและพยายามทำซ้ำการคำนวณ กลับพบว่าการคำนวณมีความผิดพลาดอย่างร้ายแรง! ผมจะพูดถึงแง่มุมนี้ของการจำลองในบทถัดไป เพราะมันเป็นเรื่องสำคัญมาก—จะรายงานสิ่งที่ทำให้คนเชื่อสิ่งที่เขาต้องการเชื่อได้หรือไม่ หรือจะทำให้คนเลิกตามแนวคิดดี ๆ ของพวกเขา