อ่าน 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 แบบง่ายจะให้ค่าประมาณของโดยการจำลองและหาค่าเฉลี่ยของผลลัพธ์จากการจำลอง วิธีนี้ไม่มีข้อจำกัดเกี่ยวกับการกระจายความน่าจะเป็นของข้อมูลป้อนเข้าในการจำลอง...