วิทยาศาสตร์ต้องอาศัยการสร้างแบบจำลองคอมพิวเตอร์ - ดังนั้นอะไรจะเกิดขึ้นเมื่อมันจะไปผิด?

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

แต่วิธีที่เราทำวิทยาศาสตร์กำลังเปลี่ยนแปลง - ตอนนี้เราพึ่งพาแบบจำลองคอมพิวเตอร์ที่ซับซ้อนมากขึ้นเพื่อทำความเข้าใจกับธรรมชาติ และปรากฎว่าแบบจำลองเหล่านี้แทบจะเป็นไปไม่ได้เลยที่จะทำซ้ำ - หมายถึงมาตรฐานทางวิทยาศาสตร์ที่สำคัญกำลังถูกท้าทาย ดังนั้นผลกระทบที่เกิดขึ้นจริงจากการเปลี่ยนแปลงนี้คืออะไรและเราจะทำอะไรได้บ้าง?

วิทยาศาสตร์ยุคก่อนสมัยใหม่ - รู้จักกันในนาม "ปรัชญาธรรมชาติ" - เป็นเชิงประจักษ์ วิทยาศาสตร์เชิงประจักษ์ใช้การสังเกตการณ์ในอดีตเพื่อคาดการณ์อนาคตซึ่งอาจถูกทดสอบ Tycho Braheนักดาราศาสตร์ชาวเดนมาร์กในศตวรรษที่ 16th สามารถทำการสำรวจท้องฟ้าได้อย่างแม่นยำและครอบคลุม

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

ตัวอย่างเช่นมีสมการอธิบายวงโคจรของโลกรอบดวงอาทิตย์ สมการนี้สามารถใช้ในการสร้างแบบจำลองคอมพิวเตอร์ที่คุณสามารถเสียบตัวแปรบางตัวและดูวิธีการแก้ปัญหาการเปลี่ยนแปลง คุณสามารถเสียบวันที่ในอนาคตและอ่านตำแหน่งของโลกในวันนั้นได้ นอกจากนี้คุณยังสามารถใช้โปรแกรมเดียวกันเพื่อจำลองระบบดาวเคราะห์อื่น ๆ ได้ทั้งหมดนี้ใช้คณิตศาสตร์เดียวกัน สิ่งที่คุณต้องทำคือเสียบมวลที่แตกต่างกันและคุณสมบัติอื่น ๆ ของร่างกายที่เกี่ยวข้อง


กราฟิกสมัครสมาชิกภายในตัวเอง


สมการทางคณิตศาสตร์ดังกล่าวดีมากเมื่อมี - แต่บ่อยครั้งที่มันไม่ได้ ตัวอย่างเช่นเรารู้ว่าไม่มีสมการง่ายๆที่แก้สิ่งที่เรียกว่า“ปัญหาสามตัว"ซึ่งอธิบายสามศพโคจรไปรอบ ๆ และมีอิทธิพลต่อกันโดยแรงโน้มถ่วง - เหมือนดวงจันทร์โลกและดวงอาทิตย์

วิทยาศาสตร์ในปัจจุบันส่วนใหญ่เกี่ยวข้องกับระบบที่ซับซ้อนยิ่งขึ้นและขาดวิธีแก้ปัญหาที่เหมือนกัน แบบจำลองดังกล่าวจะต้องเป็น "การคำนวณ" - อธิบายว่าระบบเปลี่ยนแปลงจากหนึ่งไปยังอีกต่อไปได้อย่างไร แต่ไม่มีทางที่จะกำหนดสถานะที่แน่นอนในบางเวลาในอนาคตนอกเหนือจากการ "จำลอง" วิวัฒนาการของมันในลักษณะนี้ การพยากรณ์อากาศเป็นตัวอย่างที่คุ้นเคย จนกว่าคอมพิวเตอร์ใน 1950 จะมาถึงมันเป็นไปไม่ได้ที่จะทำนายสภาพอากาศในอนาคตได้เร็วกว่าที่เกิดขึ้นจริง

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

เมื่อแบบจำลองล้มเหลว

การสร้างแบบจำลองถูกนำมาใช้ในสาขาวิทยาศาสตร์ - ตั้งแต่ฟิสิกส์ดาราศาสตร์และ การทำนายสภาพอากาศ เพื่อชีวสารสนเทศศาสตร์และเศรษฐศาสตร์ แต่มี การอภิปรายที่เพิ่มขึ้น เกี่ยวกับความจริงที่ว่าวิทยาศาสตร์นี้ยากที่จะตรวจสอบผ่านการทำสำเนา

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

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

ในทำนองเดียวกัน ผลการศึกษาล่าสุด บนสเปรดชีต 15,770 ที่เผยแพร่ต่อสาธารณะในระหว่างการสอบสวน บริษัท สหรัฐ Enron แสดงให้เห็นว่า 24% ของสเปรดชีตที่มีอย่างน้อยหนึ่งสูตรมีข้อบกพร่องที่เห็นได้ชัดเช่นการเพิ่มเซลล์ว่าง

ในวิทยาศาสตร์ธรรมชาติ ดาวอังคารสังเกตการณ์สภาพภูมิอากาศยานสำรวจอวกาศที่เปิดตัวใน 1998 เพื่อศึกษาสภาพอากาศบนดาวอังคารได้สูญเสียไปในอีกหนึ่งปีต่อมาเนื่องจากส่วนหนึ่งของซอฟต์แวร์ควบคุมที่ใช้อย่างผิดพลาดแทนจักรวรรดิแทนที่จะเป็นหน่วยเมตริก การศึกษาอื่น เก้าการใช้งานที่เป็นอิสระจากการทดลอง Geoscience เดียวกัน - การใช้ชุดเดียวกันขั้นตอนวิธีการและภาษาการเขียนโปรแกรม - แสดงให้เห็นว่าข้อตกลงน้อยมากในผลที่ได้รับ

ยิ่งไปกว่านั้น แม้ว่าผู้อ่านงานวิจัยจะสามารถตีความความหมายที่แม่นยำของผู้เขียนได้สำเร็จ และแปลเป็นโปรแกรมได้อย่างไม่มีข้อผิดพลาด แต่การดำเนินการดังกล่าวก็ยังมีข้อผิดพลาดอยู่ ปัญหาที่ยุ่งยากอย่างหนึ่งเกิดขึ้นจากการที่คอมพิวเตอร์จัดการกับตัวเลข แม้ว่าคอมพิวเตอร์จะสามารถจัดการกับจำนวนเต็ม เช่น 42 และ -17 ได้อย่างแม่นยำสมบูรณ์แบบ แต่เทคนิคมาตรฐานสำหรับจัดการกับจำนวนจริง เช่น ??3.14 และ ?2?1.414 อนุญาตให้มีความแม่นยำโดยประมาณเท่านั้น การประมาณเหล่านี้หมายความว่าวิธีการคำนวณค่าเดียวกันที่เทียบเท่ากันสามารถทำได้ ให้ผลลัพธ์ที่แตกต่าง.

ดังนั้นสิ่งที่สามารถทำได้? ถ้าแม้แต่นักพัฒนาซอฟต์แวร์ผู้เชี่ยวชาญก็ไม่สามารถผลิตซอฟต์แวร์ที่ถูกต้องได้อย่างน่าเชื่อถืออะไรคือความหวังสำหรับโปรแกรมเมอร์มือสมัครเล่นเช่นนักวิทยาศาสตร์?

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

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

มีโอกาสทุกวิธีที่สามารถช่วยแก้ไขปัญหาในอนาคตหรืออย่างน้อยก็กำจัดความเสี่ยง ท้ายที่สุดแล้วโลกต้องการวิทยาศาสตร์และนักวิทยาศาสตร์ต้องการคอมพิวเตอร์ - ที่ไม่น่าจะเปลี่ยนแปลงได้ตลอดเวลาเร็ว ๆ นี้

เกี่ยวกับผู้เขียน

เจเรมีกิบบอนส์ศาสตราจารย์วิชาคอมพิวเตอร์มหาวิทยาลัยอ๊อกซฟอร์ด หัวหน้าชุดรูปแบบการวิจัยการเขียนโปรแกรมภาษา

บทความนี้เดิมปรากฏบนสนทนา

หนังสือที่เกี่ยวข้อง:

at ตลาดภายในและอเมซอน