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

วิธีการมอนเตคาร์โลหรือที่เรียกว่าการทดลองมอนเตคาร์โลหรือการจำลองมอนเตคาร์โลเป็นกลุ่มของ อัลก อริธึมการคำนวณ ที่ใช้การสุ่มตัวอย่างซ้ำๆเพื่อให้ได้ผลลัพธ์เชิงตัวเลข ซึ่งคิดค้นโดยนักคณิตศาสตร์ชาวโปแลนด์สตานิสลาฟ อูแลม แนวคิดพื้นฐานคือการใช้ความสุ่มเพื่อแก้ปัญหา เชิงกำหนด
วิธีการมอนเตคาร์โลส่วนใหญ่ใช้ในปัญหา 3 ประเภทหลัก ได้แก่การ หาค่าเหมาะสม ที่สุด การบูรณา การเชิงตัวเลขและการสร้างตัวแปรสุ่มที่ไม่สม่ำเสมอซึ่งสามารถใช้ในการจำลองปรากฏการณ์ที่มีความไม่แน่นอน ของข้อมูลนำเข้าสูง เช่น การประเมินความเสี่ยงสำหรับโรงไฟฟ้านิวเคลียร์ วิธีการมอนเตคาร์โลมักถูกนำไปใช้โดยใช้การจำลองด้วยคอมพิวเตอร์ และสามารถให้คำตอบโดยประมาณสำหรับปัญหาที่ซับซ้อนเกินกว่าจะวิเคราะห์ทางคณิตศาสตร์ได้
ภาพรวม
ชื่อนี้มาจากคาสิโนมอนเตคาร์โลในโมนาโก ซึ่ง นักคณิตศาสตร์Stanisław Ulamผู้พัฒนาวิธีการนี้ ได้รับแรงบันดาลใจจากนิสัย การพนันของลุงของเขาวิธีการมอนเตคาร์โลถูกนำไปใช้อย่างกว้างขวางในสาขาวิทยาศาสตร์ วิศวกรรม และคณิตศาสตร์ต่างๆ เช่น ฟิสิกส์ เคมี ชีววิทยา สถิติ ปัญญาประดิษฐ์ การเงิน และการเข้ารหัสลับ นอกจากนี้ยังถูกนำไปประยุกต์ใช้ในสังคมศาสตร์ เช่น สังคมวิทยา จิตวิทยา และรัฐศาสตร์ วิธีการมอนเตคาร์โลได้รับการยอมรับว่าเป็นหนึ่งในแนวคิดที่สำคัญและมีอิทธิพลมากที่สุดในศตวรรษที่ 20 และได้ช่วยให้เกิดความก้าวหน้าทางวิทยาศาสตร์และเทคโนโลยีมากมาย
วิธีการมอนเตคาร์โลก็มีข้อจำกัดและความท้าทายอยู่บ้าง เช่น ความสมดุลระหว่างความแม่นยำและต้นทุนการคำนวณ ปัญหาความซับซ้อนของมิติความน่าเชื่อถือของตัวสร้างเลขสุ่ม และการตรวจสอบและการรับรองผลลัพธ์ วิธีการมอนเตคาร์โลมีความหลากหลาย แต่โดยทั่วไปมักจะปฏิบัติตามรูปแบบเฉพาะ:
- กำหนดขอบเขตของข้อมูลป้อนเข้าที่เป็นไปได้
- สร้างข้อมูลป้อนเข้าแบบสุ่มจากฟังก์ชันการกระจายความน่าจะเป็นบนโดเมน
- ดำเนินการคำนวณผลลัพธ์แบบกำหนดได้
- รวบรวมผลลัพธ์เข้าด้วยกัน

ตัวอย่างเช่น พิจารณาส่วนโค้งวงกลมที่บรรจุอยู่ในสี่เหลี่ยมจัตุรัสหน่วยโดยที่อัตราส่วนของพื้นที่ของทั้งสองคือπ/4ค่าของπสามารถประมาณได้โดยใช้วิธี Monte Carlo : [ 1 ]
- วาดรูปสี่เหลี่ยมจัตุรัส จากนั้นวาดส่วนโค้งหนึ่งส่วนสี่ภายในรูปสี่เหลี่ยมจัตุรัสนั้น
- กระจายจุดจำนวนหนึ่งอย่างสม่ำเสมอ ทั่วรูปสี่เหลี่ยมจัตุรัส
- นับจำนวนจุดที่อยู่ภายในควอดแรนต์ กล่าวคือ จุดที่มีระยะห่างจากจุดกำเนิดน้อยกว่า 1
- อัตราส่วนระหว่างจำนวนนับภายในและจำนวนนับรวมของตัวอย่างทั้งหมด เป็นค่าประมาณของอัตราส่วนของพื้นที่ทั้งสองπ/4นำผลลัพธ์ที่ได้มาคูณด้วย 4 เพื่อประมาณค่าπ
ในกระบวนการนี้ ขอบเขตของข้อมูลนำเข้าคือสี่เหลี่ยมจัตุรัสที่ล้อมรอบควอดแรนต์ เราสามารถสร้างข้อมูลนำเข้าแบบสุ่มได้โดยการกระจายเม็ดเล็กๆ ไปทั่วสี่เหลี่ยมจัตุรัส จากนั้นทำการคำนวณกับข้อมูลนำเข้าแต่ละค่าเพื่อทดสอบว่ามันตกอยู่ในควอดแรนต์หรือไม่ การรวมผลลัพธ์เข้าด้วยกันจะให้ผลลัพธ์สุดท้ายของเรา ซึ่งก็คือค่าประมาณของπมีข้อควรพิจารณาที่สำคัญสองประการ:
- หากจุดต่างๆ ไม่กระจายตัวอย่างสม่ำเสมอ การประมาณค่าก็จะไม่มีความแม่นยำ
- ค่าประมาณจะดีขึ้นเมื่อมีการวางจุดแบบสุ่มมากขึ้นทั่วทั้งสี่เหลี่ยมจัตุรัส
การใช้ระเบียบวิธีมอนเตคาร์โลจำเป็นต้องใช้ตัวเลขสุ่มจำนวนมาก และการใช้งานระเบียบวิธีนี้ได้รับประโยชน์อย่างมากจากเครื่องกำเนิดตัวเลขสุ่มเทียมซึ่งใช้งานได้เร็วกว่าตารางตัวเลขสุ่มที่เคยใช้มาก่อนหน้านี้มาก
แอปพลิเคชัน
วิธีการมอนเตคาร์โลมักใช้ใน ปัญหา ทางฟิสิกส์และคณิตศาสตร์และมีประโยชน์มากที่สุดเมื่อการใช้วิธีการอื่นทำได้ยากหรือเป็นไปไม่ได้ วิธีการมอนเตคาร์โลส่วนใหญ่ใช้ในปัญหา 3 ประเภทหลัก ได้แก่[ 2 ]การเพิ่มประสิทธิภาพการบูรณาการเชิงตัวเลขและการสร้างการสุ่มจากการกระจายความน่าจะเป็น
ในปัญหาที่เกี่ยวข้องกับฟิสิกส์ วิธีการมอนเตคาร์โลมีประโยชน์สำหรับการจำลองระบบที่มีองศาอิสระที่เชื่อมโยงกัน หลายระดับ เช่น ของไหล วัสดุที่ไม่เป็นระเบียบ ของแข็งที่เชื่อมโยงกันอย่างแน่นหนา และโครงสร้างเซลลูลาร์ เช่นแบบจำลองเซลลูลาร์พอตต์ระบบอนุภาคที่มีปฏิสัมพันธ์กระบวนการแมคคีน-วลาซอฟและแบบจำลองจลนศาสตร์ของก๊าซ
ตัวอย่างอื่นๆ ได้แก่ การสร้างแบบจำลองปรากฏการณ์ที่มีความไม่แน่นอน อย่างมาก ในข้อมูลนำเข้า เช่น การคำนวณความเสี่ยงในธุรกิจ และในทางคณิตศาสตร์ การประเมินอินทิกรัลจำกัด หลายมิติที่มี เงื่อนไขขอบเขตที่ซับซ้อนในการประยุกต์ใช้กับปัญหาด้านวิศวกรรมระบบ (อวกาศการสำรวจน้ำมัน การออกแบบเครื่องบิน ฯลฯ) การคาดการณ์ความล้ม เหลว ค่าใช้จ่ายเกินงบประมาณ และกำหนดการเกินงบประมาณ โดยใช้ Monte Carlo มักจะดีกว่าสัญชาตญาณของมนุษย์หรือวิธีการ "อ่อน" อื่นๆ[ 3 ]
โดยหลักการแล้ว วิธี Monte Carlo สามารถใช้แก้ปัญหาใดๆ ก็ได้ที่มีการตีความเชิงความน่าจะเป็นตามกฎของจำนวนมากอินทิกรัลที่อธิบายโดยค่าคาดหวังของตัวแปรสุ่มบางตัวสามารถประมาณได้โดยการหาค่าเฉลี่ยเชิงประจักษ์ ( หรือที่เรียกว่า 'ค่าเฉลี่ยตัวอย่าง') ของตัวอย่างอิสระของตัวแปร เมื่อการแจกแจงความน่าจะ เป็น ของตัวแปรมีการกำหนดพารามิเตอร์ นักคณิตศาสตร์มักใช้ ตัวสุ่มแบบ Markov chain Monte Carlo (MCMC) [ 4 ] [ 5 ] [ 6 ]แนวคิดหลักคือการออกแบบ แบบจำลอง Markov chain ที่เหมาะสม ด้วยการแจกแจงความน่าจะเป็นแบบคงที่ ที่กำหนดไว้ นั่นคือ ในขีดจำกัด ตัวอย่างที่สร้างขึ้นโดยวิธี MCMC จะเป็นตัวอย่างจากการแจกแจงที่ต้องการ (เป้าหมาย) [ 7 ] [ 8 ]ตามทฤษฎีบทเออร์โกดิกการแจกแจงแบบคงที่จะถูกประมาณโดยการวัดเชิงประจักษ์ของสถานะสุ่มของตัวสุ่ม MCMC
ในปัญหาอื่นๆ วัตถุประสงค์คือการสร้างการสุ่มจากลำดับของการแจกแจงความน่าจะเป็นที่สอดคล้องกับสมการวิวัฒนาการแบบไม่เชิงเส้น การไหลของการแจกแจงความน่าจะเป็นเหล่านี้สามารถตีความได้เสมอว่าเป็นการแจกแจงสถานะสุ่มของกระบวนการมาร์คอฟซึ่งความน่าจะเป็นของการเปลี่ยนสถานะขึ้นอยู่กับการแจกแจงสถานะสุ่มปัจจุบัน (ดูกระบวนการ McKean–Vlasovสมการการกรองแบบไม่เชิงเส้น ) [ 9 ] [ 10 ]ในกรณีอื่นๆ การไหลของการแจกแจงความน่าจะเป็นที่มีระดับความซับซ้อนของการสุ่มตัวอย่างเพิ่มขึ้นเกิดขึ้น (แบบจำลองพื้นที่เส้นทางที่มีขอบเขตเวลาเพิ่มขึ้น การวัด Boltzmann–Gibbs ที่เกี่ยวข้องกับพารามิเตอร์อุณหภูมิที่ลดลง และอื่นๆ อีกมากมาย) แบบจำลองเหล่านี้ยังสามารถมองได้ว่าเป็นวิวัฒนาการของกฎของสถานะสุ่มของห่วงโซ่มาร์คอฟแบบไม่เชิงเส้น[ 10 ] [ 11 ]
วิธีที่เป็นธรรมชาติในการจำลองกระบวนการมาร์คอฟแบบไม่เชิงเส้นที่ซับซ้อนเหล่านี้ คือการสุ่มตัวอย่างกระบวนการหลายชุด โดยแทนที่การกระจายที่ไม่ทราบค่าของสถานะสุ่มในสมการวิวัฒนาการด้วยค่าเชิงประจักษ์ที่สุ่มมา ในทางตรงกันข้ามกับวิธีการมอนเตคาร์โลและ MCMC แบบดั้งเดิมเทคนิคอนุภาคแบบสนามเฉลี่ย เหล่านี้อาศัยตัวอย่างที่โต้ตอบกันตามลำดับ คำว่า สนามเฉลี่ยสะท้อนให้เห็นถึงข้อเท็จจริงที่ว่าแต่ละตัวอย่าง ( หรือที่เรียกว่าอนุภาค บุคคล ผู้เดิน ตัวแทน สิ่งมีชีวิต หรือฟีโนไทป์) โต้ตอบกับค่าเชิงประจักษ์ของกระบวนการ เมื่อขนาดของระบบมีแนวโน้มเข้าสู่ค่าอนันต์ ค่าเชิงประจักษ์แบบสุ่มเหล่านี้จะลู่เข้าสู่การกระจายแบบกำหนดของสถานะสุ่มของห่วงโซ่มาร์คอฟแบบไม่เชิงเส้น ดังนั้นปฏิสัมพันธ์ทางสถิติระหว่างอนุภาคจึงหายไป
มอนเตคาร์โลแบบง่าย
สมมติว่าเราต้องการทราบค่าที่คาดหวังของประชากร (และรู้ว่ามีอยู่จริง) แต่ไม่มีสูตรในการคำนวณ วิธี Monte Carlo แบบง่ายจะให้ค่าประมาณของโดยการจำลองและหาค่าเฉลี่ยของผลลัพธ์จากการจำลอง วิธีนี้ไม่มีข้อจำกัดเกี่ยวกับการกระจายความน่าจะเป็นของข้อมูลป้อนเข้าในการจำลอง โดยต้องการเพียงว่าข้อมูลป้อนเข้าถูกสร้างขึ้นแบบสุ่มและเป็นอิสระต่อกัน และมีอยู่จริง ค่า ที่มากพอจะทำให้ได้ค่าที่ใกล้เคียงกับมากพอสมควร กล่าวอย่างเป็นทางการมากขึ้นคือ สำหรับค่า ใดๆ ก็ตาม[ 12 ]โดยทั่วไปอัลกอริทึมในการหาคือ
s = 0; สำหรับi = 1 ถึงn ให้ ทำการจำลองซ้ำเป็นครั้งที่i โดยให้ผลลัพธ์r i ; s = s + r i ; ทำซ้ำm = s / n ;
ตัวอย่าง
สมมติว่าเราต้องการทราบว่าเราควรคาดหวังว่าจะต้องทอยลูกเต๋าแปดด้านสามลูกกี่ครั้งเพื่อให้ผลรวมของการทอยลูกเต๋าอย่างน้อยเท่ากับเราทราบว่าค่าเฉลี่ยมีอยู่จริง การทอยลูกเต๋าเป็นการสุ่มและเป็นอิสระต่อกัน ดังนั้นวิธีการมอนเตคาร์โลแบบง่ายจึงสามารถนำมาใช้ได้:
s = 0; สำหรับi = 1 ถึงn ให้ ทอยลูกเต๋า 3 ลูกจนกว่า จะถึงค่า Tหรือเกินค่า T ก่อน ; r i = จำนวนครั้งที่ทอย ; s = s + r i ; ทำซ้ำm = s / n ;
ถ้ามีขนาดใหญ่พอ ก็จะอยู่ภายในขอบเขตของสำหรับทุกๆ
การกำหนดค่า nที่มีขนาดใหญ่เพียงพอ
สูตรทั่วไป
ให้เลือกค่าระดับความเชื่อมั่นที่ต้องการ – เปอร์เซ็นต์โอกาสที่เมื่ออัลกอริทึม Monte Carlo ทำงานเสร็จสิ้นค่า จะอยู่ภายในช่วงให้เป็นค่า -scoreที่สอดคล้องกับระดับความเชื่อมั่นนั้น
ให้เป็นค่าความแปรปรวนโดยประมาณ ซึ่งบางครั้งเรียกว่าค่าความแปรปรวนของ "ตัวอย่าง" มันคือค่าความแปรปรวนของผลลัพธ์ที่ได้จากการจำลอง "ตัวอย่าง" จำนวนค่อนข้างน้อย เลือก a ; Driels และ Shin สังเกตว่า " แม้สำหรับขนาดตัวอย่างที่ต่ำกว่าจำนวนที่ต้องการถึงหนึ่งลำดับ การคำนวณจำนวนนั้นก็ยังค่อนข้างเสถียร " [ 13 ]อัลกอริทึมต่อไปนี้คำนวณในรอบเดียวในขณะที่ลดโอกาสที่ข้อผิดพลาดเชิงตัวเลขสะสมจะทำให้เกิดผลลัพธ์ที่ผิดพลาด: [ 12 ]
s 1 = 0; เรียกใช้การจำลองครั้งแรก โดยให้ผลลัพธ์r 1 ; m 1 = r 1 ; // m iคือค่าเฉลี่ยของการจำลองi ครั้งแรก สำหรับ i = 2 ถึงk ให้เรียกใช้การจำลอง ครั้ง ที่i โดย ให้ผลลัพธ์r i ; δ i = r i - m i −1 ; m i = m i-1 + (1/ i ) δ i ; s i = s i-1 + (( i - 1)/ i )( δ i ) 2 ; ทำซ้ำs 2 = s k /( k - 1);
โปรดทราบว่า เมื่ออัลกอริทึมทำงานเสร็จสิ้น ค่าที่ได้จะเป็นค่าเฉลี่ยของผลลัพธ์
ค่าดังกล่าวมีขนาดใหญ่เพียงพอเมื่อ
- [ 12 ] [ 13 ]
ถ้าแล้ว; ได้ทำการจำลองตัวอย่างเพียงพอเพื่อให้แน่ใจว่าอยู่ภายในถ้าแล้วสามารถทำการจำลอง "ตั้งแต่เริ่มต้น" หรือเนื่องจากได้ทำการจำลองไปแล้ว ก็สามารถทำการจำลองเพิ่มเติมและนำผลลัพธ์เหล่านั้นมารวมกับผลลัพธ์จากการจำลองตัวอย่างได้:
s = m k * k ; สำหรับ i = k + 1 ถึงnให้ทำการจำลองซ้ำเป็นครั้งที่i โดยให้ผลลัพธ์r i ; s = s + r i ; m = s / n ;
สูตรสำหรับผลลัพธ์ของการจำลองพร้อมขอบเขต
สามารถใช้สูตรทางเลือกได้ในกรณีพิเศษที่ผลลัพธ์การจำลองทั้งหมดมีขอบเขตบนและล่าง
เลือกค่าสำหรับที่เป็นสองเท่าของความแตกต่างสูงสุดที่อนุญาตระหว่างและให้เป็นระดับความเชื่อมั่นที่ต้องการ โดยแสดงเป็นเปอร์เซ็นต์ ให้ผลลัพธ์การจำลองทุกครั้งเป็นไปในลักษณะที่ สำหรับ และที่มีค่าจำกัดเพื่อให้มีความเชื่อมั่นอย่างน้อยว่าให้ใช้ค่าสำหรับในลักษณะที่:
ตัวอย่างเช่น ถ้าแล้ว[ 12 ]
ต้นทุนการคำนวณ
แม้ว่าการจำลองแบบมอนเตคาร์โลจะมีความเรียบง่ายในเชิงแนวคิดและอัลกอริทึม แต่ต้นทุนการคำนวณที่เกี่ยวข้องกับการจำลองแบบมอนเตคาร์โลนั้นอาจสูงมาก โดยทั่วไปแล้ว วิธีการนี้ต้องการตัวอย่างจำนวนมากเพื่อให้ได้ค่าประมาณที่ดี ซึ่งอาจทำให้เวลาการทำงานโดยรวมเพิ่มขึ้นอย่างมากหากเวลาในการประมวลผลของตัวอย่างแต่ละตัวสูง[ 14 ]แม้ว่านี่จะเป็นข้อจำกัดที่สำคัญในปัญหาที่ซับซ้อนมาก แต่ ลักษณะการประมวลผล แบบขนานที่น่าขันของอัลกอริทึมทำให้ต้นทุนที่สูงนี้สามารถลดลงได้ (อาจถึงระดับที่ทำได้) ผ่าน กลยุทธ์ การคำนวณแบบขนานในโปรเซสเซอร์ในพื้นที่ คลัสเตอร์ การประมวลผลแบบคลาวด์ GPU FPGA เป็นต้น[ 15 ] [ 16 ] [ 17 ] [ 18 ] ในแอปพลิเคชันทางการเงินและความปลอดภัยที่สำคัญ ความไม่แน่นอนของจุดลอยตัวในแพลตฟอร์มฮาร์ดแวร์ต่างๆ อาจทำให้ต้นทุนเหล่านี้เพิ่มขึ้น เนื่องจากผลลัพธ์อาจแตกต่างกันระหว่างการทำงานหรือในโปรเซสเซอร์ต่างๆ (x86, ARM, GPU) ซึ่งบางครั้งอาจต้องมีการจำลองซ้ำซ้อนหรือกลไกฉันทามติเพื่อตรวจสอบความถูกต้องเชิงตัวเลข[ 19 ]
ประวัติศาสตร์
ก่อนที่จะมีการพัฒนาวิธีการมอนเตคาร์โล การจำลองจะทดสอบปัญหาเชิงกำหนดที่เข้าใจได้ก่อนหน้านี้ และใช้การสุ่มตัวอย่างทางสถิติเพื่อประเมินความไม่แน่นอนในการจำลอง การจำลองมอนเตคาร์โลเป็นการกลับแนวทางนี้ โดยแก้ปัญหาเชิงกำหนดโดยใช้วิธีการแก้ปัญหาแบบเมตาฮิวริสติกเชิงความน่าจะเป็น (ดูการจำลองการอบอ่อน )
รูปแบบแรกเริ่มของวิธี Monte Carlo ถูกคิดค้นขึ้นเพื่อแก้ปัญหาเข็มของ Buffonซึ่งสามารถประมาณค่า π ได้โดยการทิ้งเข็มลงบนพื้นที่ทำจากแถบขนานที่มีระยะห่างเท่ากัน ในช่วงทศวรรษ 1930 Enrico Fermiได้ทดลองใช้วิธี Monte Carlo เป็นครั้งแรกในขณะที่ศึกษาการแพร่กระจายของนิวตรอน แต่เขาไม่ได้ตีพิมพ์ผลงานนี้[ 20 ]
ในช่วงปลายทศวรรษ 1940 Stanisław Ulamได้คิดค้นวิธีการ Markov Chain Monte Carlo เวอร์ชันสมัยใหม่ในขณะที่เขากำลังทำงานในโครงการอาวุธนิวเคลียร์ที่ห้องปฏิบัติการแห่งชาติ Los Alamosในปี 1946 นักฟิสิกส์อาวุธนิวเคลียร์ที่ Los Alamos กำลังตรวจสอบการแพร่กระจายของนิวตรอนในแกนกลางของอาวุธนิวเคลียร์[ 20 ]
แม้ว่าจะมีข้อมูลที่จำเป็นส่วนใหญ่ครบถ้วนแล้ว เช่น ระยะทางเฉลี่ยที่นิวตรอนจะเคลื่อนที่ในสารก่อนที่จะชนกับนิวเคลียสของอะตอม และพลังงานที่นิวตรอนน่าจะปล่อยออกมาหลังจากการชนกัน นักฟิสิกส์แห่งลอสอะลามอสก็ไม่สามารถแก้ปัญหาได้โดยใช้วิธีทางคณิตศาสตร์แบบดั้งเดิมที่กำหนดไว้ล่วงหน้า อูแลมจึงเสนอให้ใช้การทดลองแบบสุ่ม เขาเล่าถึงแรงบันดาลใจของเขาดังนี้:
ความคิดและความพยายามครั้งแรกที่ผมใช้ในการฝึกฝน [วิธีมอนเตคาร์โล] เกิดขึ้นจากคำถามที่เกิดขึ้นกับผมในปี 1946 ขณะที่ผมกำลังพักฟื้นจากอาการป่วยและเล่นไพ่โซลิแทร์ คำถามนั้นคือ โอกาสที่ไพ่โซลิแทร์แบบแคนฟิลด์ 52 ใบจะออกมาสำเร็จนั้นมีมากน้อยเพียงใด หลังจากใช้เวลามากมายในการพยายามประมาณค่าโดยใช้การคำนวณเชิงการจัดเรียงล้วนๆ ผมก็สงสัยว่าวิธีการที่ใช้งานได้จริงมากกว่า "การคิดเชิงนามธรรม" อาจจะเป็นการวางไพ่สักร้อยครั้งแล้วสังเกตและนับจำนวนครั้งที่เล่นสำเร็จหรือไม่ วิธีนี้สามารถทำได้แล้วในช่วงเริ่มต้นของยุคใหม่ของคอมพิวเตอร์ความเร็วสูง และผมก็คิดถึงปัญหาการแพร่กระจายของนิวตรอนและคำถามอื่นๆ ในฟิสิกส์เชิงคณิตศาสตร์ และโดยทั่วไปแล้ววิธีการเปลี่ยนกระบวนการที่อธิบายโดยสมการเชิงอนุพันธ์บางอย่างให้เป็นรูปแบบที่เทียบเท่ากันซึ่งสามารถตีความได้ว่าเป็นลำดับของการดำเนินการแบบสุ่ม ต่อมา [ในปี 1946] ผมได้อธิบายแนวคิดนี้ให้จอห์น ฟอน นอยมันน์ฟังและเราก็เริ่มวางแผนการคำนวณจริง[ 21 ]
เนื่องจากเป็นความลับ งานของฟอน นอยมันน์และอูแลมจึงต้องใช้ชื่อรหัส[ 22 ] นิโค ลัส เมโทรโพ ลิส เพื่อนร่วมงานของฟอน นอยมันน์และอูแลมเสนอให้ใช้ชื่อมอนเตคาร์โลซึ่งหมายถึงคาสิโนมอนเตคาร์โลในโมนาโกที่ซึ่งลุงของอูแลมจะยืมเงินจากญาติเพื่อเล่นการพนัน[ 20 ] วิธีการมอนเตคาร์โลเป็นหัวใจสำคัญของการจำลองที่จำเป็นสำหรับการพัฒนาอาวุธนิวเคลียร์หลังสงคราม รวมถึงการออกแบบระเบิดไฮโดรเจน แม้ว่าจะถูกจำกัดอย่างมากด้วยเครื่องมือคำนวณในขณะนั้น ฟอน นอยมันน์นิโคลัส เมโทรโพลิสและคนอื่นๆ ได้ตั้งโปรแกรม คอมพิวเตอร์ ENIACเพื่อทำการคำนวณมอนเตคาร์โลแบบอัตโนมัติเต็มรูปแบบครั้งแรกของ แกนอาวุธ ฟิสชันในฤดูใบไม้ผลิปี 1948 [ 23 ]
ในทศวรรษ 1950 วิธีการมอนเตคาร์โลถูกนำมาใช้ที่ลอสอะลาโมสในการพัฒนาอาวุธไฮโดรเจนและได้รับความนิยมในสาขาฟิสิกส์ เคมี เชิงฟิสิกส์และการวิจัยเชิงปฏิบัติการบริษัทแรนด์และกองทัพอากาศสหรัฐฯเป็นสององค์กรหลักที่รับผิดชอบในการให้ทุนและเผยแพร่ข้อมูลเกี่ยวกับวิธีการมอนเตคาร์โลในช่วงเวลานั้น และวิธีการนี้เริ่มถูกนำไปประยุกต์ใช้ในวงกว้างในหลายสาขา
ทฤษฎีของวิธีการ Monte Carlo อนุภาคแบบ mean-field ที่ซับซ้อนกว่านั้นเริ่มต้นขึ้นในช่วงกลางทศวรรษ 1960 อย่างแน่นอน ด้วยผลงานของHenry P. McKean Jr.เกี่ยวกับการตีความแบบ Markov ของสมการเชิงอนุพันธ์ย่อยพาราโบลิกแบบไม่เชิงเส้นที่เกิดขึ้นในกลศาสตร์ของไหล[ 24 ] [ 25 ]บทความบุกเบิกก่อนหน้านี้โดยTheodore E. Harrisและ Herman Kahn ซึ่งตีพิมพ์ในปี 1951 ได้ใช้ วิธี Monte Carlo แบบ genetic mean-field เพื่อประมาณพลังงานการส่งผ่านอนุภาค[ 26 ]
วิธีการ Monte Carlo แบบพันธุกรรมสนามเฉลี่ยยังถูกใช้เป็นอัลกอริธึมการค้นหาแบบธรรมชาติเชิงฮิวริสติก (หรือที่เรียกว่าเมตาฮิวริสติก ) ในการคำนวณเชิงวิวัฒนาการ ต้นกำเนิดของเทคนิคการคำนวณสนามเฉลี่ยเหล่านี้สามารถสืบย้อนไปได้ถึงปี 1950 และ 1954 ด้วยผลงานของAlan Turingเกี่ยวกับเครื่องจักรการเรียนรู้แบบการกลายพันธุ์-การคัดเลือกประเภทพันธุกรรม[ 27 ]และบทความของNils Aall Barricelliที่Institute for Advanced StudyในPrinceton รัฐนิวเจอร์ซีย์[ 28 ] [ 29 ]
วิธีการค วอนตัมมอนเตคาร์โลและโดยเฉพาะอย่างยิ่งวิธีการดิฟฟิวชันมอนเตคาร์โลสามารถตีความได้ว่าเป็นการประมาณค่าแบบมอนเตคาร์โลของอนุภาคแบบสนามเฉลี่ยของปริพันธ์เส้นทาง ของ ไฟน์แมน - คาค[ 30 ] [ 31 ] [ 32 ] [ 33 ] [ 34 ] [ 35 ] [ 36 ]ต้นกำเนิดของวิธีการ Quantum Monte Carlo มักถูกยกให้เป็นผลงานของ Enrico Fermi และRobert Richtmyerซึ่งพัฒนาการตีความอนุภาคสนามเฉลี่ยของปฏิกิริยาลูกโซ่นิวตรอนในปี 1948 [ 37 ]แต่ขั้นตอนวิธีอนุภาคแบบฮิวริสติกและแบบพันธุกรรมตัวแรก (หรือที่เรียกว่าวิธีการ Resampled หรือ Reconfiguration Monte Carlo) สำหรับการประมาณพลังงานสถานะพื้นฐานของระบบควอนตัม (ในแบบจำลองเมทริกซ์ลดรูป) นั้นเป็นผลงานของ Jack H. Hetherington ในปี 1984 [ 36 ]ในเคมีโมเลกุล การใช้วิธีการอนุภาคแบบฮิวริสติกทางพันธุกรรม (หรือที่เรียกว่ากลยุทธ์การตัดแต่งและการเสริมคุณค่า) สามารถสืบย้อนไปได้ถึงปี 1955 ด้วยผลงานสำคัญของMarshall N. RosenbluthและArianna W. Rosenbluth [ 38 ]
การใช้Monte Carlo แบบลำดับในการประมวลผลสัญญาณ ขั้นสูง และการอนุมานแบบเบย์เซียนนั้นค่อนข้างใหม่ ในปี 1993 Gordon และคณะได้ตีพิมพ์ผลงานสำคัญ[ 39 ] ซึ่ง เป็นการประยุกต์ใช้ อัลกอริทึม การสุ่มตัวอย่าง Monte Carlo ครั้งแรก ในการอนุมานทางสถิติแบบเบย์เซียน ผู้เขียนตั้งชื่ออัลกอริทึมของพวกเขาว่า 'ตัวกรองบูตสแตรป' และแสดงให้เห็นว่าเมื่อเปรียบเทียบกับวิธีการกรองอื่นๆ อัลกอริทึมบูตสแตรปของพวกเขาไม่จำเป็นต้องมีข้อสมมติใดๆ เกี่ยวกับปริภูมิสถานะหรือสัญญาณรบกวนของระบบ บทความบุกเบิกอีกบทความหนึ่งในสาขานี้คือบทความของ Genshiro Kitagawa เกี่ยวกับ "ตัวกรอง Monte Carlo" ที่เกี่ยวข้อง[ 40 ]และบทความของ Pierre Del Moral [ 41 ]และ Himilcon Carvalho, Pierre Del Moral, André Monin และ Gérard Salut [ 42 ]เกี่ยวกับตัวกรองอนุภาคที่ตีพิมพ์ในช่วงกลางทศวรรษ 1990 ตัวกรองอนุภาคยังได้รับการพัฒนาในการประมวลผลสัญญาณในช่วงปี 1989–1992 โดย P. Del Moral, JC Noyer, G. Rigal และ G. Salut ใน LAAS-CNRS ในชุดรายงานการวิจัยที่จำกัดและเป็นความลับร่วมกับ STCAN (Service Technique des Constructions et Armes Navales), บริษัทไอที DIGILOG และLAAS-CNRS (ห้องปฏิบัติการวิเคราะห์และสถาปัตยกรรมของระบบ) เกี่ยวกับปัญหาการประมวลผลสัญญาณเรดาร์/โซนาร์และ GPS [ 43 ] [ 44 ] [ 45 ] [ 46 ] [ 47 ] [ 48 ]วิธีการ Monte Carlo แบบลำดับเหล่านี้สามารถตีความได้ว่าเป็นตัวสุ่มตัวอย่างแบบยอมรับ-ปฏิเสธที่ติดตั้งกลไกการรีไซเคิลแบบโต้ตอบ
ตั้งแต่ปี พ.ศ. 2493 ถึง พ.ศ. 2539 สิ่งพิมพ์ทั้งหมดเกี่ยวกับระเบียบวิธี Monte Carlo แบบลำดับ รวมถึงวิธีการ Monte Carlo แบบตัดแต่งและสุ่มตัวอย่างใหม่ที่นำเสนอในฟิสิกส์เชิงคำนวณและเคมีโมเลกุล นำเสนออัลกอริทึมแบบธรรมชาติและคล้ายฮิวริสติกที่นำไปใช้กับสถานการณ์ต่างๆ โดยไม่มีการพิสูจน์ความสอดคล้องกันแม้แต่ครั้งเดียว รวมถึงการอภิปรายเกี่ยวกับอคติของการประมาณค่าและอัลกอริทึมตามลำดับวงศ์ตระกูลและต้นไม้บรรพบุรุษ พื้นฐานทางคณิตศาสตร์และการวิเคราะห์อย่างเข้มงวดครั้งแรกของอัลกอริทึมอนุภาคเหล่านี้เขียนโดย Pierre Del Moral ในปี พ.ศ. 2539 [ 41 ] [ 49 ]
ระเบียบวิธีอนุภาคแบบแตกแขนงที่มีขนาดประชากรแตกต่างกันได้รับการพัฒนาขึ้นในช่วงปลายทศวรรษ 1990 โดย Dan Crisan, Jessica Gaines และ Terry Lyons [ 50 ] [ 51 ] [ 52 ]และโดย Dan Crisan, Pierre Del Moral และ Terry Lyons [ 53 ]การพัฒนาเพิ่มเติมในสาขานี้ได้รับการอธิบายในช่วงปี 1999 ถึง 2001 โดย P. Del Moral, A. Guionnet และ L. Miclo [ 31 ] [ 54 ] [ 55 ]
คำจำกัดความ
ไม่มีข้อตกลงร่วมกันว่าควรนิยามMonte Carlo อย่างไร ตัวอย่างเช่น Ripley [ 56 ]นิยามการสร้างแบบจำลองความน่าจะเป็นส่วนใหญ่ว่าเป็นการจำลองแบบสุ่มโดยMonte Carloสงวนไว้สำหรับการบูรณาการ Monte Carloและการทดสอบทางสถิติ Monte Carlo Sawilowsky [ 57 ]แยกแยะความแตกต่างระหว่างการจำลองวิธี Monte Carlo และการจำลอง Monte Carlo: การจำลองคือการแสดงความเป็นจริงแบบสมมติ วิธี Monte Carlo คือเทคนิคที่สามารถใช้แก้ปัญหาทางคณิตศาสตร์หรือทางสถิติได้ การจำลอง Monte Carlo ใช้การสุ่มตัวอย่างซ้ำๆ เพื่อให้ได้คุณสมบัติทางสถิติของปรากฏการณ์บางอย่าง นี่คือตัวอย่างบางส่วน:
- การจำลอง: การสุ่ม ตัวแปรเอกพันธุ์เทียม หนึ่งตัวจากช่วง [0,1] สามารถใช้จำลองการโยนเหรียญได้: ถ้าค่าที่ได้น้อยกว่าหรือเท่ากับ 0.50 ให้กำหนดผลลัพธ์เป็นหัว แต่ถ้าค่าที่ได้มากกว่า 0.50 ให้กำหนดผลลัพธ์เป็นก้อย นี่เป็นการจำลอง แต่ไม่ใช่การจำลองแบบมอนเตคาร์โล
- วิธีการมอนเตคาร์โล: การเทเหรียญออกจากกล่องลงบนโต๊ะ แล้วคำนวณอัตราส่วนของเหรียญที่ออกหัวเทียบกับเหรียญที่ออกก้อย เป็นวิธีการมอนเตคาร์โลในการกำหนดพฤติกรรมของการโยนเหรียญซ้ำๆ แต่ไม่ใช่การจำลอง
- การจำลองแบบมอนเตคาร์โล: การสุ่ม ตัวแปรสุ่มแบบเอกรูป จำนวนมากจากช่วง [0,1] ในครั้งเดียว หรือสุ่มครั้งเดียวในหลายๆ ครั้ง และกำหนดค่าที่น้อยกว่าหรือเท่ากับ 0.50 เป็นหัว และค่าที่มากกว่า 0.50 เป็นก้อย คือการจำลองแบบมอนเตคาร์โลของพฤติกรรมการโยนเหรียญซ้ำๆ
Kalos และ Whitlock [ 58 ]ชี้ให้เห็นว่าความแตกต่างดังกล่าวไม่ใช่เรื่องง่ายที่จะรักษาไว้เสมอไป ตัวอย่างเช่น การปล่อยรังสีจากอะตอมเป็นกระบวนการสุ่มตามธรรมชาติ สามารถจำลองได้โดยตรง หรือพฤติกรรมเฉลี่ยสามารถอธิบายได้ด้วยสมการสุ่มที่สามารถแก้ไขได้โดยใช้วิธี Monte Carlo “ที่จริงแล้ว รหัสคอมพิวเตอร์เดียวกันสามารถมองได้พร้อมกันว่าเป็น 'การจำลองตามธรรมชาติ' หรือเป็นการแก้สมการโดยการสุ่มตัวอย่างตามธรรมชาติ” สามารถตรวจสอบการบรรจบกันของการจำลอง Monte Carlo ได้ด้วยสถิติ Gelman- Rubin
วิธีมอนเตคาร์โลและตัวเลขสุ่ม
แนวคิดหลักเบื้องหลังวิธีการนี้คือ ผลลัพธ์จะถูกคำนวณโดยอาศัยการสุ่มตัวอย่างซ้ำๆ และการวิเคราะห์ทางสถิติ การจำลองแบบมอนเตคาร์โลนั้นแท้จริงแล้วคือการทดลองแบบสุ่ม ในกรณีที่ผลลัพธ์ของการทดลองเหล่านี้ไม่เป็นที่ทราบแน่ชัด การจำลองแบบมอนเตคาร์โลมักมีลักษณะเฉพาะด้วยพารามิเตอร์ที่ไม่ทราบค่าจำนวนมาก ซึ่งหลายค่าหาได้ยากจากการทดลอง[ 59 ]วิธีการจำลองแบบมอนเตคาร์โลไม่จำเป็นต้อง ใช้ ตัวเลขสุ่มที่แท้จริง เสมอไป จึงจะมีประโยชน์ (แม้ว่าสำหรับบางแอปพลิเคชัน เช่นการทดสอบความเป็นจำนวนเฉพาะ ความไม่สามารถคาดเดาได้นั้นมีความสำคัญอย่างยิ่ง) [ 60 ]เทคนิคที่มีประโยชน์ที่สุดหลายอย่างใช้ ลำดับ สุ่ม เทียมแบบกำหนด ทำให้ง่ายต่อการทดสอบและเรียกใช้การจำลองซ้ำ คุณสมบัติเดียวที่มักจำเป็นสำหรับการจำลอง ที่ดี คือ ลำดับสุ่มเทียมต้องดู "สุ่มเพียงพอ" ในแง่หนึ่ง
ความหมายของสิ่งนี้ขึ้นอยู่กับการใช้งาน แต่โดยทั่วไปแล้วควรผ่านการทดสอบทางสถิติหลายชุด การทดสอบว่าตัวเลขมีการกระจายอย่างสม่ำเสมอหรือเป็นไปตามการกระจายที่ต้องการอื่น ๆ เมื่อพิจารณาองค์ประกอบจำนวนมากพอของลำดับนั้นเป็นหนึ่งในวิธีที่ง่ายที่สุดและพบได้บ่อยที่สุด ความสัมพันธ์ที่อ่อนแอระหว่างตัวอย่างที่ต่อเนื่องกันก็มักเป็นที่ต้องการ/จำเป็นเช่นกัน Sawilowsky ระบุลักษณะของการจำลอง Monte Carlo คุณภาพสูงไว้ดังนี้: [ 57 ]
- ตัวสร้างตัวเลขสุ่มเทียมมีลักษณะเฉพาะบางประการ (เช่น มี "ช่วงเวลา" ยาวก่อนที่ลำดับจะวนซ้ำ)
- ตัวสร้างตัวเลขสุ่มเทียมสร้างค่าที่ผ่านการทดสอบความเป็นสุ่ม
- มีตัวอย่างเพียงพอที่จะรับประกันผลลัพธ์ที่แม่นยำ
- มีการใช้เทคนิคการสุ่มตัวอย่างที่เหมาะสม
- อัลกอริทึมที่ใช้มีความถูกต้องสำหรับสิ่งที่กำลังจำลองอยู่
- มันจำลองปรากฏการณ์ที่กล่าวถึง
อัลกอริทึมการสุ่ม ตัวเลขสุ่มเทียมใช้ในการแปลงตัวเลขสุ่มเทียมที่มีการกระจายแบบสม่ำเสมอให้เป็นตัวเลขที่มีการกระจายตามการแจกแจงความน่าจะเป็นที่กำหนดลำดับที่มีความคลาดเคลื่อนต่ำมักถูกใช้แทนการสุ่มตัวอย่างแบบสุ่มจากพื้นที่ เนื่องจากช่วยให้ครอบคลุมอย่างสม่ำเสมอและโดยปกติจะมีลำดับการลู่เข้าที่เร็วกว่าการจำลองแบบมอนเตคาร์โลโดยใช้ลำดับแบบสุ่มหรือแบบสุ่มเทียม วิธีการที่ใช้ลำดับเหล่านี้เรียกว่า วิธี การ กึ่งมอนเตคาร์โล
เพื่อประเมินผลกระทบของคุณภาพตัวเลขสุ่มต่อผลลัพธ์การจำลองมอนเตคาร์โล นักวิจัยทางฟิสิกส์ดาราศาสตร์ได้ทดสอบตัวเลขสุ่มเทียมที่มีความปลอดภัยทางด้านการเข้ารหัสที่สร้างขึ้นโดยใช้ ชุดคำสั่ง RDRAND ของ Intel เมื่อเทียบกับตัวเลขสุ่มเทียมที่ได้จากอัลกอริธึม เช่นMersenne Twisterในการจำลองมอนเตคาร์โลของการระเบิดคลื่นวิทยุจากดาวแคระน้ำตาลไม่พบความแตกต่างทางสถิติอย่างมีนัยสำคัญระหว่างแบบจำลองที่สร้างขึ้นด้วยตัวสร้างตัวเลขสุ่มเทียมทั่วไปและ RDRAND สำหรับการทดลองที่ประกอบด้วยการสร้างตัวเลขสุ่ม 10 7 ตัว[ 61 ]
การจำลองแบบมอนเตคาร์โลเทียบกับสถานการณ์ "ถ้าหากว่า"
มีวิธีการใช้ความน่าจะเป็นที่ไม่ใช่การจำลองแบบมอนเตคาร์โลอย่างแน่นอน เช่น การสร้างแบบจำลองเชิงกำหนดโดยใช้การประมาณค่าจุดเดียว ตัวแปรที่ไม่แน่นอนแต่ละตัวภายในแบบจำลองจะได้รับการกำหนดค่าประมาณ "เดาที่ดีที่สุด" สถานการณ์ (เช่น กรณีที่ดีที่สุด แย่ที่สุด หรือเป็นไปได้มากที่สุด) สำหรับตัวแปรอินพุตแต่ละตัวจะถูกเลือกและบันทึกผลลัพธ์[ 62 ]
ในทางตรงกันข้าม การจำลองแบบมอนเตคาร์โลจะสุ่มตัวอย่างจากการกระจายความน่าจะเป็นสำหรับแต่ละตัวแปรเพื่อสร้างผลลัพธ์ที่เป็นไปได้หลายร้อยหรือหลายพันแบบ ผลลัพธ์จะถูกวิเคราะห์เพื่อหาความน่าจะเป็นของการเกิดผลลัพธ์ที่แตกต่างกัน[ 63 ]ตัวอย่างเช่น การเปรียบเทียบแบบจำลองต้นทุนการก่อสร้างในสเปรดชีตที่ดำเนินการโดยใช้สถานการณ์ "ถ้าหาก" แบบดั้งเดิม แล้วทำการเปรียบเทียบอีกครั้งด้วยการจำลองแบบมอนเตคาร์โลและการกระจายความน่าจะเป็นแบบสามเหลี่ยมแสดงให้เห็นว่าการวิเคราะห์แบบมอนเตคาร์โลมีช่วงที่แคบกว่าการวิเคราะห์แบบ "ถ้าหาก" ทั้งนี้เนื่องจากการวิเคราะห์แบบ "ถ้าหาก" ให้ความสำคัญกับสถานการณ์ทั้งหมดเท่ากัน (ดูการวัดปริมาณความไม่แน่นอนในด้านการเงินขององค์กร ) ในขณะที่วิธีการมอนเตคาร์โลแทบจะไม่สุ่มตัวอย่างในบริเวณที่มีความน่าจะเป็นต่ำมาก ตัวอย่างในบริเวณดังกล่าวเรียกว่า "เหตุการณ์ที่หายาก"
แอปพลิเคชัน
วิธีการมอนเตคาร์โลมีประโยชน์อย่างยิ่งสำหรับการจำลองปรากฏการณ์ที่มีความไม่แน่นอน สูง ในข้อมูลนำเข้า และระบบที่มีตัวแปรอิสระ ที่เชื่อมโยงกัน หลายตัว ขอบเขตการประยุกต์ใช้ ได้แก่:
วิทยาศาสตร์กายภาพ
| ฟิสิกส์เชิงคำนวณ |
|---|
วิธีการมอนเตคาร์โลมีความสำคัญมากในฟิสิกส์เชิงคำนวณเคมีเชิงฟิสิกส์และสาขาประยุกต์ที่เกี่ยวข้อง และมีการใช้งานที่หลากหลาย ตั้งแต่ การคำนวณ ควอนตัมโครโมไดนามิกส์ ที่ซับซ้อน ไป จนถึงการออกแบบแผ่นกันความร้อนและ รูปทรง แอโรไดนามิกส์ตลอดจนการสร้างแบบจำลองการขนส่งรังสีสำหรับการคำนวณปริมาณรังสี[ 64 ] [ 65 ] [ 66 ]
ฟิสิกส์เชิงสถิติ

ในฟิสิกส์เชิงสถิติการสร้างแบบจำลองโมเลกุลแบบมอนเตคาร์โลเป็นทางเลือกแทนพลศาสตร์โมเลกุลเชิง คำนวณ และวิธีการมอนเตคาร์โลใช้ในการคำนวณทฤษฎีสนามเชิงสถิติของระบบอนุภาคและพอลิเมอร์อย่างง่าย[ 38 ] [ 67 ] วิธีการ มอนเตคาร์โลควอนตัมแก้ปัญหาหลายอนุภาคสำหรับระบบควอนตัม[ 9 ] [ 10 ] [ 30 ]
วิทยาศาสตร์วัสดุรังสี
ในวิทยาศาสตร์วัสดุรังสีการประมาณการชนแบบไบนารีสำหรับการจำลองการฝังไอออนมักจะใช้แนวทางมอนเตคาร์โลเพื่อเลือกอะตอมที่ชนกันต่อไป[ 68 ]ในฟิสิกส์อนุภาค เชิงทดลอง วิธีการมอนเตคาร์โลถูกใช้ในการออกแบบเครื่องตรวจจับทำความเข้าใจพฤติกรรมของเครื่องตรวจจับ และเปรียบเทียบข้อมูลเชิงทดลองกับทฤษฎี ในฟิสิกส์ดาราศาสตร์ วิธี การเหล่านี้ถูกใช้ในลักษณะที่หลากหลาย เช่น การจำลองวิวัฒนาการของกาแล็กซี[ 69 ]และการส่งผ่านรังสีไมโครเวฟผ่านพื้นผิวของดาวเคราะห์ที่ขรุขระ[ 70 ]วิธีการมอนเตคาร์โลยังถูกใช้ในแบบจำลองกลุ่มซึ่งเป็นพื้นฐานของการ พยากรณ์อากาศ สมัยใหม่
วิศวกรรม
วิธีการมอนเตคาร์โลถูกนำมาใช้กันอย่างแพร่หลายในงานวิศวกรรมสำหรับการวิเคราะห์ความไวและ การวิเคราะห์ ความน่าจะเป็นเชิง ปริมาณ ในการออกแบบกระบวนการความจำเป็นนี้เกิดขึ้นจากพฤติกรรมเชิงโต้ตอบ เชิงเส้นตรง และไม่เป็นเส้นตรงของการจำลองกระบวนการทั่วไป ตัวอย่างเช่น:
- ในวิศวกรรมไมโครอิเล็กทรอนิกส์วิธีการมอนเตคาร์โลถูกนำมาใช้ในการวิเคราะห์ความแปรผันที่มีความสัมพันธ์และไม่มีความสัมพันธ์กันในวงจรรวมแบบอนาล็อกและดิจิทัล
- ในธรณีสถิติและธรณีโลหะวิทยาวิธีการมอนเตคาร์โลเป็นพื้นฐานในการออกแบบแผนผังกระบวนการแปรรูปแร่ และมีส่วนช่วยใน การวิเคราะห์ความเสี่ยง เชิงปริมาณ[ 22 ]
- ในพลศาสตร์ของไหลโดยเฉพาะพลศาสตร์ของก๊าซที่เบาบางซึ่งสมการโบลต์ซมันน์ได้รับการแก้ไขสำหรับการไหลของของไหลที่มีเลขคนุดเซน จำกัดโดยใช้วิธี การจำลองมอนเตคาร์โลโดยตรง[ 71 ]ร่วมกับอัลกอริธึมการคำนวณที่มีประสิทธิภาพสูง[ 72 ]
- ในหุ่นยนต์อัตโนมัติการระบุตำแหน่งด้วยวิธีมอนเตคาร์โลสามารถใช้กำหนดตำแหน่งของหุ่นยนต์ได้ โดยมักนำไปใช้กับตัวกรองแบบสุ่ม เช่นตัวกรองคาลมานหรือตัวกรองอนุภาคซึ่งเป็นหัวใจสำคัญของ อัลกอริธึม SLAM (การระบุตำแหน่งและการสร้างแผนที่พร้อมกัน)
- ในด้านโทรคมนาคมเมื่อวางแผนเครือข่ายไร้สาย การออกแบบจะต้องได้รับการพิสูจน์แล้วว่าใช้งานได้ในสถานการณ์ที่หลากหลาย ซึ่งขึ้นอยู่กับจำนวนผู้ใช้ สถานที่ตั้ง และบริการที่พวกเขาต้องการใช้เป็นหลัก โดยทั่วไปจะใช้วิธี Monte Carlo ในการสร้างผู้ใช้และสถานะต่างๆ เหล่านี้ จากนั้นจะประเมินประสิทธิภาพของเครือข่าย และหากผลลัพธ์ไม่เป็นที่น่าพอใจ การออกแบบเครือข่ายจะเข้าสู่กระบวนการปรับให้เหมาะสมที่สุด
- ในวิศวกรรมความน่าเชื่อถือการจำลองแบบมอนเตคาร์โลถูกนำมาใช้เพื่อคำนวณการตอบสนองระดับระบบ โดยพิจารณาจากการตอบสนองระดับส่วนประกอบ
- ในการประมวลผลสัญญาณและการอนุมานแบบเบย์เซียนตัวกรองอนุภาคและเทคนิค Monte Carlo แบบลำดับเป็นกลุ่มของวิธีการอนุภาคสนามเฉลี่ยสำหรับการสุ่มตัวอย่างและการคำนวณการกระจายความน่าจะเป็นภายหลังของกระบวนการสัญญาณโดยพิจารณาจากการสังเกตที่มีเสียงรบกวนและบางส่วนโดยใช้การวัดเชิงประจักษ์แบบโต้ตอบ[ 73 ]
การเปลี่ยนแปลงสภาพภูมิอากาศและแรงผลักดันการแผ่รังสี
คณะกรรมการระหว่างรัฐบาลว่าด้วยการเปลี่ยนแปลงสภาพภูมิอากาศอาศัยวิธีการมอนเตคาร์โลใน การวิเคราะห์ ฟังก์ชันความหนาแน่นความน่าจะเป็นของแรงผลักดันการแผ่รังสี[ 74 ]
ชีววิทยาเชิงคำนวณ
วิธีการ Monte Carlo ถูกนำมาใช้ในสาขาชีววิทยาเชิงคำนวณ ต่างๆ เช่นการอนุมานแบบ Bayesian ในวิวัฒนาการหรือการศึกษาระบบชีวภาพ เช่น จีโนม โปรตีน[ 75 ]หรือเยื่อหุ้มเซลล์[ 76 ] ระบบเหล่านี้สามารถศึกษาได้ในกรอบงานแบบหยาบหรือ แบบ ab initioขึ้นอยู่กับความแม่นยำที่ต้องการ การจำลองด้วยคอมพิวเตอร์ช่วยให้สามารถตรวจสอบสภาพแวดล้อมเฉพาะที่ของโมเลกุลเพื่อดูว่าปฏิกิริยาเคมี บางอย่าง เกิดขึ้นหรือไม่ ตัวอย่างเช่น ในกรณีที่ไม่สามารถทำการทดลองทางกายภาพได้ สามารถทำการ ทดลองเชิงความคิดได้ เช่น การทำลายพันธะ การแนะนำสิ่งเจือปนในตำแหน่งเฉพาะ การเปลี่ยนแปลงโครงสร้างเฉพาะที่/โดยรวม หรือการแนะนำสนามภายนอก
กราฟิกคอมพิวเตอร์
การติดตามเส้นทางแสง (Path tracing ) หรือที่บางครั้งเรียกว่าการติดตามรังสีแบบมอนเตคาร์โล (Monte Carlo ray tracing) เป็นการเรนเดอร์ฉาก 3 มิติโดยการสุ่มติดตามเส้นทางแสงที่เป็นไปได้ การสุ่มตัวอย่างพิกเซลใดๆ ซ้ำๆ จะทำให้ค่าเฉลี่ยของตัวอย่างเหล่านั้นลู่เข้าสู่คำตอบที่ถูกต้องของสมการการเรนเดอร์ ในที่สุด ทำให้เป็นหนึ่งในวิธีการเรนเดอร์กราฟิก 3 มิติที่มีความแม่นยำทางกายภาพมากที่สุดวิธีหนึ่งที่มีอยู่
สถิติประยุกต์
มาตรฐานสำหรับการทดลองมอนเตคาร์โลในสถิติถูกกำหนดโดย Sawilowsky [ 77 ]ในสถิติประยุกต์ วิธีการมอนเตคาร์โลอาจใช้เพื่อวัตถุประสงค์อย่างน้อยสี่ประการ:
- เพื่อเปรียบเทียบสถิติการแข่งขันสำหรับตัวอย่างขนาดเล็กภายใต้เงื่อนไขข้อมูลที่สมจริง แม้ว่าข้อผิดพลาดประเภทที่ 1และคุณสมบัติของกำลังของสถิติจะสามารถคำนวณได้สำหรับข้อมูลที่ดึงมาจากการแจกแจงทางทฤษฎีแบบคลาสสิก ( เช่นเส้นโค้งปกติการแจกแจงโคชี ) สำหรับเงื่อนไขเชิงเส้นกำกับ ( เช่นขนาดตัวอย่างอนันต์และผลกระทบของการรักษาที่เล็กมาก) แต่ข้อมูลจริงมักไม่มีการแจกแจงดังกล่าว[ 78 ]
- เพื่อนำเสนอวิธีการทดสอบสมมติฐานที่มีประสิทธิภาพมากกว่าการทดสอบแบบแม่นยำ เช่นการทดสอบการเรียงสับเปลี่ยน (ซึ่งมักคำนวณได้ยาก) ในขณะเดียวกันก็มีความถูกต้องแม่นยำมากกว่าค่าวิกฤตสำหรับการแจกแจงเชิงอะซิมโทติก
- เพื่อสุ่มตัวอย่างจากความน่าจะเป็นภายหลังในการอนุมานแบบเบย์เซียนตัวอย่างนี้จะประมาณและสรุปคุณลักษณะที่สำคัญทั้งหมดของความน่าจะเป็นภายหลังนั้น
- เพื่อให้ได้ค่าประมาณแบบสุ่มที่มีประสิทธิภาพของเมทริกซ์ Hessian ของฟังก์ชันลอการิทึมความน่าจะเป็นเชิงลบ ซึ่งอาจนำมาหาค่าเฉลี่ยเพื่อสร้างค่าประมาณของเมทริกซ์ข้อมูล Fisher [ 79 ] [ 80 ]
วิธีการมอนเตคาร์โลเป็นทางออกที่อยู่ระหว่างการสุ่มแบบประมาณและการทดสอบการเรียงสับเปลี่ยนการทดสอบการสุ่ม แบบประมาณนั้น อาศัยชุดย่อยที่กำหนดไว้ของการเรียงสับเปลี่ยนทั้งหมด (ซึ่งอาจต้องใช้การจัดการอย่างมากในการระบุการเรียงสับเปลี่ยนที่ได้รับการพิจารณาแล้ว) ในขณะที่วิธีการมอนเตคาร์โลนั้นอาศัยจำนวนการเรียงสับเปลี่ยนที่สุ่มเลือกมาตามจำนวนที่กำหนด (โดยยอมเสียความแม่นยำไปเล็กน้อยหากการเรียงสับเปลี่ยนนั้นถูกเลือกซ้ำสองครั้งหรือมากกว่านั้น เพื่อแลกกับประสิทธิภาพที่ไม่ต้องคอยติดตามว่าการเรียงสับเปลี่ยนใดถูกเลือกไปแล้วบ้าง)
ปัญญาประดิษฐ์สำหรับเกม
วิธีการ Monte Carlo ได้รับการพัฒนาเป็นเทคนิคที่เรียกว่าการค้นหาต้นไม้ Monte-Carloซึ่งมีประโยชน์สำหรับการค้นหาการเคลื่อนไหวที่ดีที่สุดในเกม การเคลื่อนไหวที่เป็นไปได้จะถูกจัดเรียงในต้นไม้ค้นหาและมีการจำลองแบบสุ่มจำนวนมากเพื่อประเมินศักยภาพในระยะยาวของการเคลื่อนไหวแต่ละครั้ง ตัวจำลองกล่องดำแสดงถึงการเคลื่อนไหวของฝ่ายตรงข้าม[ 81 ]วิธีการค้นหาต้นไม้ Monte Carlo (MCTS) มีสี่ขั้นตอน: [ 82 ]
- เริ่มต้นจากโหนดรากของต้นไม้ เลือกโหนดลูกที่เหมาะสมที่สุดไปเรื่อยๆ จนกว่าจะถึงโหนดใบ
- ขยายโหนดใบและเลือกโหนดลูกหนึ่งโหนด
- เล่นเกมจำลองโดยเริ่มจากโหนดนั้น
- ใช้ผลลัพธ์จากเกมจำลองนั้นเพื่ออัปเดตโหนดและโหนดบรรพบุรุษของมัน
ผลสุทธิตลอดเกมจำลองหลายเกมคือ ค่าของโหนดที่แสดงถึงการเคลื่อนไหวจะเพิ่มขึ้นหรือลดลง ซึ่งหวังว่าจะสอดคล้องกับว่าโหนดนั้นแสดงถึงการเคลื่อนไหวที่ดีหรือไม่ การค้นหาต้นไม้แบบมอนเตคาร์โลถูกนำมาใช้ประสบความสำเร็จในการเล่นเกมต่างๆเช่นโกะ [ 83 ] Tantrix [ 84 ] Battleship [ 85 ] Havannah [ 86 ]และArimaa [ 87 ]
การออกแบบและภาพประกอบ
วิธีการมอนเตคาร์โลยังมีประสิทธิภาพในการแก้สมการเชิงอนุพันธ์อินทิกรัลคู่ของสนามรังสีและการขนส่งพลังงาน ดังนั้นวิธีการเหล่านี้จึงถูกนำมาใช้ใน การคำนวณ การส่องสว่างทั่วโลกที่สร้างภาพที่สมจริงของแบบจำลอง 3 มิติเสมือนจริง โดยมีการประยุกต์ใช้ในวิดีโอเกมสถาปัตยกรรมการออกแบบภาพยนตร์ที่สร้างด้วยคอมพิวเตอร์และเอฟเฟกต์พิเศษทางภาพยนตร์[ 88 ]
การค้นหาและกู้ภัย
หน่วยยามฝั่งสหรัฐฯใช้ระเบียบวิธีมอนเตคาร์โลภายในซอฟต์แวร์จำลองคอมพิวเตอร์SAROPSเพื่อคำนวณตำแหน่งที่เป็นไปได้ของเรือระหว่าง ปฏิบัติการ ค้นหาและกู้ภัยการจำลองแต่ละครั้งสามารถสร้างจุดข้อมูลได้มากถึงหนึ่งหมื่นจุดซึ่งกระจายแบบสุ่มตามตัวแปรที่กำหนด[ 89 ]
จากนั้นจึงสร้างรูปแบบการค้นหาโดยอาศัยการคาดการณ์จากข้อมูลเหล่านี้เพื่อเพิ่มประสิทธิภาพความน่าจะเป็นของการกักกัน (POC) และความน่าจะเป็นของการตรวจจับ (POD) ซึ่งรวมกันแล้วจะเท่ากับความน่าจะเป็นโดยรวมของความสำเร็จ (POS) ในที่สุดสิ่งนี้ทำหน้าที่เป็นการประยุกต์ใช้การกระจายความน่าจะเป็น ในทางปฏิบัติ เพื่อให้ได้วิธีการช่วยเหลือที่รวดเร็วและมีประสิทธิภาพที่สุด ช่วยประหยัดทั้งชีวิตและทรัพยากร[ 90 ]
การเงินและธุรกิจ
การจำลองแบบมอนเตคาร์โล (Monte Carlo simulation) นิยมใช้ในการประเมินความเสี่ยงและความไม่แน่นอนที่จะส่งผลต่อผลลัพธ์ของทางเลือกในการตัดสินใจต่างๆ การจำลองแบบมอนเตคาร์โลช่วยให้นักวิเคราะห์ความเสี่ยงทางธุรกิจสามารถรวมผลกระทบทั้งหมดของความไม่แน่นอนในตัวแปรต่างๆ เช่น ปริมาณการขาย ราคาสินค้าและค่าแรง อัตราดอกเบี้ยและอัตราแลกเปลี่ยน รวมถึงผลกระทบของเหตุการณ์ความเสี่ยงเฉพาะเจาะจง เช่น การยกเลิกสัญญาหรือการเปลี่ยนแปลงกฎหมายภาษี
วิธีการมอนเตคาร์โลในด้านการเงินมักใช้ในการประเมินการลงทุนในโครงการในระดับหน่วยธุรกิจหรือระดับองค์กร หรือการประเมินมูลค่าทางการเงินอื่นๆ สามารถใช้ในการสร้างแบบจำลองตารางเวลาโครงการโดยการจำลองจะรวบรวมการประมาณการสำหรับระยะเวลาในกรณีที่เลวร้ายที่สุด กรณีที่ดีที่สุด และระยะเวลาที่เป็นไปได้มากที่สุดสำหรับแต่ละงาน เพื่อกำหนดผลลัพธ์สำหรับโครงการโดยรวม[ 91 ]วิธีการมอนเตคาร์โลยังใช้ในการกำหนดราคาออปชั่น การวิเคราะห์ความเสี่ยงจากการผิดนัดชำระหนี้[ 92 ] [ 93 ]นอกจากนี้ยังสามารถใช้เพื่อประเมินผลกระทบทางการเงินของการแทรกแซงทางการแพทย์ได้อีกด้วย[ 94 ]
กฎ
ใช้วิธี Monte Carlo ในการประเมินคุณค่าที่เป็นไปได้ของโครงการที่เสนอเพื่อช่วยให้ผู้ร้องหญิงในวิสคอนซินประสบความสำเร็จในการยื่นคำร้องขอ คำสั่ง ห้ามการคุกคามและการใช้ความรุนแรงในครอบครัวโครงการนี้เสนอให้ช่วยเหลือผู้หญิงให้ประสบความสำเร็จในการยื่นคำร้องโดยการให้การสนับสนุนที่มากขึ้น ซึ่งอาจช่วยลดความเสี่ยงของการข่มขืนและการทำร้ายร่างกายได้ อย่างไรก็ตาม มีตัวแปรหลายอย่างที่ไม่สามารถประเมินได้อย่างสมบูรณ์แบบ รวมถึงประสิทธิภาพของคำสั่งห้าม อัตราความสำเร็จของผู้ร้องทั้งที่มีและไม่มีการสนับสนุน และอื่นๆ อีกมากมาย การศึกษาได้ทำการทดลองที่เปลี่ยนแปลงตัวแปรเหล่านี้เพื่อให้ได้ค่าประมาณโดยรวมของระดับความสำเร็จของโครงการที่เสนอโดยรวม[ 95 ]
บรรณารักษศาสตร์
วิธีการ Monte Carlo ยังถูกนำมาใช้เพื่อจำลองจำนวนการตีพิมพ์หนังสือตามประเภท หนังสือ ในมาเลเซีย การจำลอง Monte Carlo ใช้ข้อมูลการตีพิมพ์หนังสือระดับชาติที่เผยแพร่ก่อนหน้านี้และราคาหนังสือตามประเภทหนังสือในตลาดท้องถิ่น ผลลัพธ์ของ Monte Carlo ถูกนำมาใช้เพื่อกำหนดว่าชาวมาเลเซียชื่นชอบหนังสือประเภทใด และถูกนำมาใช้เพื่อเปรียบเทียบการตีพิมพ์หนังสือระหว่างมาเลเซียและญี่ปุ่น[ 96 ]
คนอื่น
นาซิม นิโคลัส ทาเลบเขียนเกี่ยวกับเครื่องกำเนิดตัวเลขแบบมอนเตคาร์โลในหนังสือของเขาเรื่องFooled by Randomness ที่ตีพิมพ์ ในปี 2001 โดยยกให้เป็นตัวอย่างจริงของการทดสอบทัวริงแบบย้อนกลับ กล่าวคือ มนุษย์สามารถถูกประกาศว่าไร้สติปัญญาได้หากไม่สามารถแยกแยะลายมือของพวกเขาออกจากลายมือที่สร้างขึ้นโดยเครื่องกำเนิดตัวเลขได้
การประยุกต์ใช้ทางคณิตศาสตร์
โดยทั่วไป วิธีการมอนเตคาร์โลใช้ในคณิตศาสตร์เพื่อแก้ปัญหาต่างๆ โดยการสร้างตัวเลขสุ่มที่เหมาะสม (ดูเพิ่มเติมที่การสร้างตัวเลขสุ่ม ) และสังเกตสัดส่วนของตัวเลขเหล่านั้นที่ตรงตามคุณสมบัติบางประการ วิธีนี้มีประโยชน์สำหรับการหาคำตอบเชิงตัวเลขของปัญหาที่ซับซ้อนเกินกว่าจะแก้ได้ด้วยวิธีวิเคราะห์ การประยุกต์ใช้ที่พบได้บ่อยที่สุดของวิธีการมอนเตคาร์โลคือการหาปริพันธ์แบบมอนเตคาร์โล
การบูรณาการ


อัลกอริทึม การอินทิเกรตเชิงตัวเลขแบบกำหนดทำงานได้ดีในมิติจำนวนน้อย แต่จะพบปัญหาสองประการเมื่อฟังก์ชันมีตัวแปรจำนวนมาก ประการแรก จำนวนการประเมินฟังก์ชันที่จำเป็นจะเพิ่มขึ้นอย่างรวดเร็วตามจำนวนมิติ ตัวอย่างเช่น หากการประเมิน 10 ครั้งให้ความแม่นยำที่เพียงพอในมิติเดียวจะต้องใช้จุด 10,100จุดสำหรับ 100 มิติ ซึ่งมากเกินไปที่จะคำนวณได้ นี่เรียกว่าคำสาปของมิติ ประการที่สอง ขอบเขตของบริเวณหลายมิติอาจซับซ้อนมาก ดังนั้นจึงอาจไม่สามารถลดปัญหาให้เหลือการอินทิเกรตแบบวนซ้ำได้ [ 97 ] 100มิติไม่ใช่เรื่องผิดปกติแต่อย่างใด เนื่องจากในปัญหาทางฟิสิกส์หลายๆ ปัญหา "มิติ" เทียบเท่ากับระดับความเป็นอิสระ
วิธีการมอนเตคาร์โลช่วยให้สามารถแก้ไขปัญหาการเพิ่มขึ้นแบบทวีคูณของเวลาในการคำนวณได้ ตราบใดที่ฟังก์ชันที่กล่าวถึงนั้นมีพฤติกรรมที่ดี พอสมควร ก็สามารถประมาณค่าได้โดยการสุ่มเลือกจุดในพื้นที่ 100 มิติ และหาค่าเฉลี่ยของค่าฟังก์ชันที่จุดเหล่านี้ ตามทฤษฎีบทขีดจำกัดกลางวิธีนี้แสดงให้เห็นถึงการลู่เข้า กล่าวคือ การเพิ่มจำนวนจุดที่สุ่มตัวอย่างเป็นสี่เท่าจะทำให้ข้อผิดพลาดลดลงครึ่งหนึ่ง โดยไม่คำนึงถึงจำนวนมิติ[ 97 ]
การปรับปรุงวิธีการนี้ ซึ่งเรียกว่าการสุ่มตัวอย่างความสำคัญในทางสถิติ เกี่ยวข้องกับการสุ่มจุดแบบสุ่ม แต่บ่อยขึ้นในบริเวณที่อินทิกรัลมีขนาดใหญ่ การทำเช่นนี้อย่างแม่นยำจะต้องทราบค่าอินทิกรัลอยู่แล้ว แต่สามารถประมาณค่าอินทิกรัลได้โดยใช้อินทิกรัลของฟังก์ชันที่คล้ายกัน หรือใช้ขั้นตอนแบบปรับตัวได้ เช่นการสุ่มตัวอย่างแบบแบ่งชั้นการสุ่มตัวอย่างแบบแบ่งชั้นแบบวนซ้ำการสุ่มตัวอย่างแบบร่มแบบปรับตัวได้[ 98 ] [ 99 ]หรืออัลกอริทึม VEGAS
วิธีการที่คล้ายกันคือวิธีควาซี-มอนเตคาร์โลซึ่งใช้ลำดับความคลาดเคลื่อนต่ำลำดับเหล่านี้จะ "เติม" พื้นที่ได้ดีกว่าและสุ่มตัวอย่างจุดที่สำคัญที่สุดบ่อยขึ้น ดังนั้นวิธีควาซี-มอนเตคาร์โลจึงมักจะลู่เข้าสู่ปริพันธ์ได้เร็วกว่า วิธีการอีกประเภทหนึ่งสำหรับการสุ่มตัวอย่างจุดในปริมาตรคือการจำลองการเดินแบบสุ่มเหนือปริมาตรนั้น ( มอนเตคาร์โลแบบลูกโซ่มาร์คอฟ ) วิธีการดังกล่าวรวมถึง อัลกอริทึม เมโทรโพลิส-เฮสติงส์การสุ่มตัวอย่างแบบกิบส์ อัลกอริทึมของหวังและแลนเดาและระเบียบวิธี MCMC ประเภทปฏิสัมพันธ์ เช่นตัวสุ่มตัวอย่างมอนเตคาร์โลแบบลำดับ[ 100 ]
การจำลองและการปรับให้เหมาะสม
อีกหนึ่งการประยุกต์ใช้ที่มีประสิทธิภาพและเป็นที่นิยมอย่างมากสำหรับตัวเลขสุ่มในการจำลองเชิงตัวเลขคือการเพิ่มประสิทธิภาพเชิงตัวเลขปัญหาคือการลด (หรือเพิ่ม) ฟังก์ชันของเวกเตอร์บางตัวซึ่งมักจะมีหลายมิติ ปัญหาหลายอย่างสามารถกำหนดได้ในลักษณะนี้ ตัวอย่างเช่น โปรแกรม หมากรุกคอมพิวเตอร์อาจถูกมองว่าเป็นการพยายามหาชุดของการเดินหมาก 10 ครั้งที่สร้างฟังก์ชันการประเมินที่ดีที่สุดในตอนท้าย ในปัญหาพนักงานขายเดินทางเป้าหมายคือการลดระยะทางที่เดินทางให้น้อยที่สุด นอกจากนี้ยังมีการประยุกต์ใช้ในการออกแบบทางวิศวกรรม เช่นการเพิ่มประสิทธิภาพการออกแบบแบบสหสาขาวิชาชีพมีการนำไปใช้กับแบบจำลองกึ่งหนึ่งมิติเพื่อแก้ปัญหาพลศาสตร์ของอนุภาคโดยการสำรวจพื้นที่การกำหนดค่าขนาดใหญ่อย่างมีประสิทธิภาพ เอกสารอ้างอิง[ 101 ]เป็นการทบทวนอย่างครอบคลุมเกี่ยวกับประเด็นต่างๆ ที่เกี่ยวข้องกับการจำลองและการเพิ่มประสิทธิภาพ
ปัญหา พนักงานขายเดินทางจัดเป็นปัญหาการหาค่าเหมาะสมที่สุดแบบดั้งเดิม กล่าวคือ ข้อมูลทั้งหมด (ระยะทางระหว่างจุดหมายปลายทางแต่ละแห่ง) ที่จำเป็นในการกำหนดเส้นทางที่ดีที่สุดนั้นเป็นที่ทราบแน่ชัด และเป้าหมายคือการพิจารณาทางเลือกการเดินทางที่เป็นไปได้ทั้งหมดเพื่อหาทางเลือกที่มีระยะทางรวมน้อยที่สุด แต่ถ้าหากเป้าหมายไม่ใช่การลดระยะทางรวมที่เดินทางไปยังจุดหมายปลายทางแต่ละแห่ง แต่เป็นการลดเวลารวมที่ใช้ในการเดินทางไปยังจุดหมายปลายทางแต่ละแห่ง นี่จะเกินกว่าการหาค่าเหมาะสมที่สุดแบบดั้งเดิม เนื่องจากเวลาในการเดินทางนั้นไม่แน่นอน (การจราจรติดขัด เวลาในแต่ละวัน ฯลฯ) ดังนั้น เพื่อกำหนดเส้นทางที่ดีที่สุด จึงจำเป็นต้องใช้การจำลองที่แตกต่างออกไป: การหาค่าเหมาะสมที่สุดเพื่อทำความเข้าใจช่วงเวลาที่เป็นไปได้ในการเดินทางจากจุดหนึ่งไปยังอีกจุดหนึ่งก่อน (ในกรณีนี้แสดงด้วยการกระจายความน่าจะเป็นแทนที่จะเป็นระยะทางที่เฉพาะเจาะจง) จากนั้นจึงหาค่าเหมาะสมที่สุดของการตัดสินใจในการเดินทางเพื่อระบุเส้นทางที่ดีที่สุดโดยคำนึงถึงความไม่แน่นอนนั้นด้วย
ปัญหาผกผัน
การกำหนดปัญหาผกผัน ในเชิงความน่าจะเป็น นำไปสู่การกำหนดการกระจายความน่าจะเป็นในปริภูมิแบบจำลอง การกระจายความน่าจะเป็นนี้รวม ข้อมูล ก่อนหน้าเข้ากับข้อมูลใหม่ที่ได้จากการวัดพารามิเตอร์ที่สังเกตได้ (ข้อมูล) บางอย่าง เนื่องจากในกรณีทั่วไป ทฤษฎีที่เชื่อมโยงข้อมูลกับพารามิเตอร์ของแบบจำลองเป็นแบบไม่เชิงเส้น ความน่าจะเป็นภายหลังในปริภูมิแบบจำลองจึงอาจอธิบายได้ยาก (อาจมีหลายยอด บางค่าโมเมนต์อาจไม่ถูกกำหนด ฯลฯ)
ในการวิเคราะห์ปัญหาผกผัน การสร้างแบบจำลองความน่าจะเป็นสูงสุดมักไม่เพียงพอ เนื่องจากโดยปกติแล้วต้องการข้อมูลเกี่ยวกับกำลังการแยกแยะของข้อมูล ในกรณีทั่วไปมีการสร้างแบบจำลองพารามิเตอร์จำนวนมาก และการตรวจสอบ ความหนาแน่นของความน่า จะเป็นส่วนย่อยที่สนใจอาจทำได้ยากหรือไม่เป็นประโยชน์เลย แต่เป็นไปได้ที่จะสร้างแบบจำลองจำนวนมากแบบสุ่มเทียมตามการแจกแจงความน่าจะเป็นภายหลังและวิเคราะห์และแสดงแบบจำลองในลักษณะที่ข้อมูลเกี่ยวกับความน่าจะเป็นสัมพัทธ์ของคุณสมบัติของแบบจำลองจะถูกส่งไปยังผู้ดู ซึ่งสามารถทำได้โดยใช้วิธีมอนเตคาร์โลที่มีประสิทธิภาพ แม้ในกรณีที่ไม่มีสูตรที่ชัดเจนสำหรับการแจกแจง ก่อนหน้า ก็ตาม
วิธีการสุ่มตัวอย่างความสำคัญที่รู้จักกันดีที่สุด คือ อัลกอริทึมเมโทรโพลิส สามารถขยายความได้ และวิธีนี้ทำให้สามารถวิเคราะห์ปัญหาผกผัน (ซึ่งอาจไม่เป็นเชิงเส้นสูง) ที่มี ข้อมูล เบื้องต้นที่ ซับซ้อน และข้อมูลที่มีการกระจายสัญญาณรบกวนแบบใดก็ได้[ 102 ] [ 103 ]
ปรัชญา
McCracken ได้ทำการนำเสนอวิธีการ Monte Carlo ในรูปแบบที่เป็นที่นิยม[ 104 ] Elishakoff [ 105 ]และ Grüne-Yanoff และ Weirich [ 106 ]ได้อภิปรายปรัชญาทั่วไปของวิธีการนี้
ดูเพิ่มเติม
- มอนเตคาร์โลสนามเสริม
- วิธีมอนเตคาร์โลทางชีววิทยา – วิธีการจำลองการขนส่งไอออน
- การจำลองโดยตรงแบบมอนเตคาร์โล – วิธีมอนเตคาร์โล
- วิธีการมอนเตคาร์โลแบบไดนามิก
- เออร์โกดิซิตี้ – สาขาหนึ่งของคณิตศาสตร์ที่ศึกษาเกี่ยวกับระบบพลวัต
- อัลกอริทึมทางพันธุกรรม – อัลกอริทึมเชิงแข่งขันสำหรับการค้นหาในพื้นที่ปัญหา
- มอนเตคาร์โลเชิงจลน์ – วิธีการจำลองทางสถิติ
- รายชื่อซอฟต์แวร์ฟิสิกส์เชิงคำนวณ
- รายชื่อซอฟต์แวร์ Monte Carlo แบบโอเพนซอร์ส
- รายชื่อซอฟต์แวร์สำหรับการสร้างแบบจำลองโมเลกุลแบบมอนเตคาร์โล
- วิธีการอนุภาคแบบสนามเฉลี่ย – อัลกอริทึมการแก้ปัญหาเชิงความน่าจะเป็น
- วิธีมอนเตคาร์โลสำหรับการขนส่งโฟตอน – การประยุกต์ใช้ในการสร้างแบบจำลอง
- วิธีการมอนเตคาร์โลสำหรับการขนส่งอิเล็กตรอน
- โปรแกรมจำลองการขนส่งอนุภาค N ด้วยวิธีมอนเตคาร์โล – ชุดซอฟต์แวร์สำหรับจำลองกระบวนการทางนิวเคลียร์
- วิธีของมอร์ริส – การวิเคราะห์ในสถิติประยุกต์
- วิธีมอนเตคาร์โลแบบหลายระดับ
- วิธีควาซี-มอนเตคาร์โล – กระบวนการอินทิเกรตเชิงตัวเลข
- ลำดับโซโบล – ลำดับประเภทหนึ่งในการวิเคราะห์เชิงตัวเลข
- การเรียนรู้ความแตกต่างเชิงเวลา – แนวคิดการเขียนโปรแกรมคอมพิวเตอร์
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ วิธีมอนเตคาร์โล
วิธีการมอนเตคาร์โล หรือที่เรียกว่า การทดลองมอนเตคาร์โล หรือ การจำลองมอนเตคาร์โล เป็นกลุ่มของ อัลก อริธึมการ คำนวณ ที่ใช้ การสุ่มตัวอย่าง ซ้ำๆ เพื่อให้ได้ผลลัพธ์เชิงตัวเลข...
ภาพรวม
ชื่อนี้มาจาก คาสิโนมอนเตคาร์โล ใน โมนาโก ซึ่ง นักคณิตศาสตร์ Stanisław Ulam ผู้พัฒนาวิธีการนี้ ได้รับแรงบันดาลใจจากนิสัย การพนัน ของลุงของเขาวิธีการมอนเตคาร์โลถูกนำไปใช้อย่างกว้างขวางในสาขาวิทยาศาสตร์ วิศวกรรม และคณิตศาสตร์ต่างๆ เช่น ฟิสิกส์ เคมี ชีววิทยา...
แอปพลิเคชัน
วิธีการมอนเตคาร์โลมักใช้ใน ปัญหา ทางฟิสิกส์ และ คณิตศาสตร์ และมีประโยชน์มากที่สุดเมื่อการใช้วิธีการอื่นทำได้ยากหรือเป็นไปไม่ได้ วิธีการมอนเตคาร์โลส่วนใหญ่ใช้ในปัญหา 3 ประเภทหลัก ได้แก่ [ 2 ] การเพิ่มประสิทธิภาพ การบูร ณาการเชิงตัวเลข และการสร้างการสุ่มจาก...
มอนเตคาร์โลแบบง่าย
สมมติว่าเราต้องการทราบค่าที่คาดหวังของประชากร (และรู้ว่ามีอยู่จริง) แต่ไม่มีสูตรในการคำนวณ วิธี Monte Carlo แบบง่ายจะให้ค่าประมาณของโดยการจำลองและหาค่าเฉลี่ยของผลลัพธ์จากการจำลอง วิธีนี้ไม่มีข้อจำกัดเกี่ยวกับการกระจายความน่าจะเป็นของข้อมูลป้อนเข้าในการจำลอง...