**การหาค่าเหมาะที่สุดแบบเฟ้นสุ่ม** (อังกฤษ:Stochastic Optimization) เป็นวิธีการหาค่าเหมาะที่สุดโดยการสร้างและใช้ตัวแปรสุ่ม
สำหรับปัญหาในกลุ่มนี้ จะใช้ตัวแปรสุ่มในขั้นตอนการคำนวณหาค่าเหมาะที่สุดสำหรับปัญหานั้นๆ

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

การหาค่าที่เหมาะสมที่สุดภายใต้ความไม่แน่นอน
-------------------------------------------

เพื่ออธิบายปัญหาบางอย่างที่เกี่ยวข้องในการหาค่าที่เหมาะสมที่สุดภายใต้ความไม่แน่นอน เราจะใช้การอธิบายผ่านการยกตัวอย่างปัญหา สมมติว่าเราต้องการหาค่าที่มากที่สุดของ G (x, ω) โดยที่ขอนิยามค่าต่างๆ ดังนี้

* x หมายถึงการตัดสินใจที่จะทำ
* X หมายถึงจำนวนชุดของการตัดสินใจที่เป็นไปได้ทั้งหมด
* ω หมายถึงผลลัพธ์ที่ไม่สามารถรู้ได้ระหว่างการตัดสินใจ และ
* Ω หมายถึงชุดของผลลัพธ์ที่เป็นไปได้ทั้งหมด

จากปัญหาดังกล่าว มีการหาค่าที่เหมาะสมที่สุดภายใต้ความไม่แน่นอนอยู่หลายวิธี ซึ่งบางส่วนจะแสดงในตัวอย่างต่อไป

ตัวอย่างปัญหา
-------------

**ตัวอย่างปัญหา Newsvendor** หลายบริษัทขายสินค้าตามฤดูกาล เช่น บทความแฟชั่น ที่นั่งของสายการบิน ของประดับตกแต่งวันคริสต์มาส นิตยสารและหนังสือพิมพ์ ผลิตภัณฑ์เหล่านี้มีลักษณะการขายที่ค่อนข้างสั้น หลังจากหมดฤดูกาล มูลค่าของผลิตภัณฑ์ก็จะลดลงอย่างมากมาย บ่อยครั้งที่มีการตัดสินใจผลิต หรือซื้อผลิตภัณฑ์ ก่อนที่ฤดูกาลขายจะเริ่มต้น เพราะเมื่อฤดูกาลขายเริ่มต้นแล้ว จะไม่มีเวลามานั่งเปลี่ยนแปลงหรือดำเนินการการตัดสินใจนั้น เนื่องจากจะทำให้ปริมาณของผลิตภัณฑ์ที่จะได้รับไม่ตรงตามเป้าหมาย แต่ในระหว่างฤดูกาล ผู้ที่ตัดสินใจสามารถตัดสินใจแบบอื่นๆที่ทำให้เกิดผลดีมากขึ้นได้ เช่น ปรับเปลี่ยนราคาและยอดขายของผลิตภัณฑ์ที่มีช่วงฤดูกาลยาว พฤติกรรมดังกล่าว เป็นที่คุ้นเคยในหลายๆอุตสาหกรรม ซึ่งสถานการณ์ดังกล่าวก็คือการตัดสินใจทำก่อนสินค้าติดตลาด ดังนั้นการตัดสินใจต้องทำโดยไม่ทราบถึงผลที่จะเกิดขึ้น
สมมติว่า ผู้จัดการมีการตัดสินใจผลิตสินค้าตามฤดูกาล ตามการสั่งซื้อสินค้า ดังนั้นการตัดสินใจตัวแปร x คือตัวเลขค่าลบแทนปริมาณการสั่งซื้อ ค่าใช้จ่ายสำหรับผลิตภัณฑ์ของบริษัท c คือต้นทุนต่อหน่วยของผลิตภัณฑ์ ให้ R คือราคาต่อหน่วยของผลิตภัณฑ์ที่สามารถขายในฤดูกาล(รายได้) หลังจากฤดูกาลขาย ผลิตภัณฑ์ที่เหลือสามารถจำหน่ายในราคาค่าซาก คือ s และโดยปกติ s < R ให้ D คือความต้องการใช้ผลิตภัณฑ์ที่ตามการสั่งซื้อ ถ้าค่า D หรือค่าความต้องการสูงกว่าปริมาณการสั่งซื้อ x แล้ว ผลิตภัณฑ์จะถูกขายหมดและไม่มีหลงเหลืออยู่เมื่อหมดฤดูกาล เมื่อรวมรายได้แล้ว จะได้กำไรเท่ากับ{\displaystyle RX} และ {\displaystyle RX-CX=(r-C)x} ตามลำดับ ถ้า D หรือค่าความต้องการน้อยกว่าปริมาณการสั่งซื้อ x แล้ว ปริมาณของผลิตภัณฑ์ที่มีเหลือเมื่อหมดฤดูกาลคือ x – D ดังนั้น เมื่อรวมรายได้แล้ว จะได้กำไรคือ
{\displaystyle RD+S(x--D)} และ {\displaystyle RD+S(x--D)--CX=(s--c)x+(R--S)D} ตามลำดับ
ดังนั้นจะได้กำไร

ผู้จัดการต้องการตัดสินใจ x เพื่อเพิ่มกำไร G (x, D) แต่ไม่รู้ว่า D เป็นอย่างไร หรืออาจบอกได้ว่าไม่แน่นอนในตอนนี้
สังเกตว่า ถ้า r ≤ c และ s ≤ c แล้ว บริษัทจะไม่ได้กำไรจากการซื้อและขายผลิตภัณฑ์ กำหนดปริมาณการสั่งซื้อที่ดีที่สุดคือ x\* = 0 โดยไม่คำนึงถึง D นอกจากนี้ถ้า s ≥ c แล้ว ผลิตภัณฑ์ที่ยังไม่ได้ขายเมื่อหมดฤดูกาล สามารถขายในราคาอย่างน้อยเท่ากับต้นทุนของผลิตภัณฑ์ เพื่อที่จะได้ปริมาณการสั่งซื้อที่เหมาะสมที่สุดโดยไม่คำนึงถึง D นี่เป็นตัวอย่างที่ถูกต้องและชัดเจน ดังนั้นเราจึงสมมติได้ว่าส่วนที่เหลือคือ s < c < r. ภายใต้สมมติฐานนี้ กำหนดให้ D ≥ 0 ฟังก์ชัน G(•,D) เป็นตัวแบบเชิงเส้นเป็นช่วง มีความชันเป็นบวก r - c สำหรับ x < D และความชันเป็นลบ s - c สำหรับ x > D ดังนั้นถ้าทราบความต้องการของ D จะได้การตัดสินใจที่ดีที่สุดในการเลือกปริมาณการสั่งซื้อ x \* = D
อย่างไรก็ตาม ถ้าไม่รู้ D แล้ว จะทำให้ปัญหายากขึ้น บางครั้งผู้จัดการอาจต้องการป้องกันผลที่เลวร้ายที่สุด สมมติว่าผู้จัดการคิดว่า D จะอยู่ในช่วง [a, b] โดย a < b นั่นคือ ขอบเขตบนและล่างสำหรับความต้องการที่ผู้จัดการรู้ ในกรณีเพื่อป้องกันสถานการณ์ที่เลวร้ายที่สุด ผู้จัดการอาจกำหนดค่า x ที่ให้ผลกำไรที่ดีที่สุดภายใต้ผลที่เลวร้ายที่สุด นั่นคือค่ามากสุดของซึ่งนำไปสู่ปัญหา max – min ดังนี้

มันไม่ยากที่จะมองว่า g (x) = G (x, a) และด้วยเหตุนี้ x\* = a เป็นค่าที่เหมาะสมที่สุดจากกรณีสถานการณ์ที่เลวร้ายที่สุด เป็นที่ชัดเจนว่า ในหลายกรณีจะมีการตัดสินใจที่ยึดติดแบบเดิมๆเกินไป
บางครั้งผู้จัดการอาจยังต้องการเสี่ยงตัดสินใจภายใต้ความเป็นไปได้ที่เลวร้ายที่สุด โดยคิดว่าจะให้ผลลัพธ์ที่ดี และเป็นการตัดสินใจที่ดีที่สุดที่สามารถเป็นไปได้ สำหรับทุกๆผลลัพธ์ของ D ใดๆ กำหนดให้ แสดงผลกำไรที่ดีที่สุด และถูกเรียกว่าค่าข้อมูลที่เหมาะสมที่สุดด้วย การตัดสินใจที่เหมาะสมกับข้อมูลที่สมบูรณ์แบบ x\* = D บางครั้งถูกเรียกว่า รอและดูวิธีการแก้ปัญหา สมมติว่าผู้จัดการฝ่าย เลือกที่จะสั่งซื้อ x เพื่อให้กำไรเป็น G (x, D) จำนวนของกำไรที่บริษัทจะไม่ได้ เพราะตัดสินใจผิดพลาดคือ {\displaystyle g\*(D)-G(x,D)} ผู้จัดการอาจกำหนดค่าของ x ที่ช่วยลดส่วนของกำไรที่เสียไป สำหรับ x ใดๆ เนื่องจากผู้จัดการฝ่ายต้องการที่จะกำหนดค่าของ x ที่ช่วยลดส่วนของกำไรที่เสียไป จึงนำไปสู่ปัญหา min - max ต่อไปนี้

  

ค่าที่เหมาะสมที่สุดของปัญหานี้คือ {\displaystyle x\*=[(c-s)a+(r-c)b]/(r-s)} กำหนดให้ x\* เป็นการรวมของ a และ b และทำให้ a < x\* < b ค่าซากที่มากที่สุดที่สูญเสียไปต่อหน่วย c – s ค่าขอบเขตล่างของ x\* คือ a และกำไรที่มากที่สุดต่อหน่วย r - c ค่าขอบเขตบนของ x\* คือ b ดูเหมือนว่าการตัดสินใจที่เหมาะสมที่สุดจะเป็น x\* = a
สิ่งที่แย่ที่สุดของตัวแปรทั้งสองคือ ไม่มีข้อมูลเบื้องต้นเกี่ยวกับความต้องการ D ยกเว้นขอบเขตบนและล่าง ในบางสถานการณ์ เหตุการณ์นี้อาจจะเป็นกรณีที่แย่ที่สุด ที่ต้องกำหนดขนาดความต้องการที่ไม่รู้ โดยต้องไม่ให้ **มีขนาดใหญ่เกินไป**
อีกวิธีหนึ่งในการตัดสินใจภายใต้ความไม่แน่นอน ซึ่งแตกต่างจากวิธีกรณีที่แย่ที่สุดที่ได้อธิบายไว้ข้างต้น เป็นวิธีการหาค่าที่เหมาะสมโดยการสุ่ม ซึ่งเราจะระบุในส่วนที่เหลือของบทความนี้ สมมติว่าความต้องการ D ถูกมองว่าเป็นตัวแปรสุ่ม นั่นหมายความว่าเราจะรู้การแจกแจงความน่าจะเป็นของ D หรืออย่างน้อยสามารถประมาณโดยใช้ข้อมูลเก่าๆ และ / หรือข้อมูลที่เคยปรากฏมาก่อนหน้านี้ F(w) ≡ ℙ(D ≤ w) จากผู้จัดการ ให้ เป็นฟังก์ชันการแจกแจงสะสม (CDF) ของ D จากนั้นสามารถหาค่าที่เหมาะสมจากฟังก์ชันค่าเฉลี่ย นั่นคือ ค่าคาดหวังของกำไรที่มากที่สุด {\displaystyle \operatorname {E} [G(x,D)]=\int \_{0}^{\infty }G(x,w)\,\operatorname {d} F(w).} ซึ่งนำไปสู่โปรแกรมการสุ่ม
  

การแก้ปัญหาค่าที่เหมาะสมไม่ใช่เรื่องยากในปัจจุบัน กำหนดให้ D ≥ 0 ฟังก์ชัน G(•,D) มีลักษณะเว้า (ตัวแบบเชิงเส้นเป็นช่วง) ดังนั้นมูลค่าที่คาดหวัง g (.) ก็ต้องเว้าด้วย สมมติว่าในขณะที่ F (.) ต่อเนื่องที่จุด x > 0 นั่นคือ เมื่อใช้การอินทิเกรดแยกส่วนจะคำนวณได้ว่า

  

ฟังก์ชัน g (.) ลักษณะกราฟเว้าอย่างต่อเนื่อง จากสมการ (5) ถ้า F (°) ต่อเนื่องที่ x จะเป็นไปได้ว่า g (.) เป็นอนุพันธ์ที่ x iff F (.) อย่างต่อเนื่องที่ x ซึ่งในกรณีนี้

  

ในทางกลับกัน เป็นฟังก์ชันการแจกแจงสะสม (CDF) ของ F ซึ่งถูกกำหนดว่า
เนื่องจากฟังก์ชัน g(.) มีลักษณะเว้า ซึ่งสอดคล้องกับ x\* > 0 เป็นการหาค่าที่ดีที่สุดของสมการที่ (4) นั่นคือ g’ (x\*) = 0 โดยมีเงื่อนไขว่า g(.) เป็นอนุพันธ์ที่ x\* กำหนดให้ s < c < r จาก 0 < (r − c)/(r − s) < 1 ดังนั้นคำตอบที่ดีที่สุดของสมการ (4) จะได้ว่า

  

จากสมการ ถ้า F (°) เป็นฟังก์ชันต่อเนื่องที่ x \*
เห็นได้ชัดว่าหากมีความรู้ด้านการกระจายความน่าจะเป็นของความต้องการ D แล้วจะได้รูปสมการที่ง่ายขึ้น ซึ่งคล้ายกับ CDF ของ F (°) จะไม่สามารถประมาณค่าที่ดีที่สุดได้ แต่จะเป็นการแก้ปัญหาที่ดีที่สุด
ค่าอื่นๆที่ได้จากการแก้ปัญหาสมการที่ (4) ผู้จัดการฝ่ายพยายามที่จะหากำไรที่ดีที่สุดจากค่าเฉลี่ย อย่างไรก็ตามเมื่อคิดถึงผลกำไร G (x \*, D) อาจจะแตกต่างจาก g (x \*) ขึ้นอยู่กับส่วนที่เราสนใจของความต้องการ D กรณีนี้อาจเกิดขึ้นถ้า G (x \*, D) ถูกมองว่าเป็นตัวแปรสุ่ม จะมีความแปรปรวนขนาดใหญ่ซึ่งอาจจะวัดได้จาก Var [G (x \*, D)] ดังนั้นหากผู้จัดการต้องการที่จะควบคุมความแปรปรวน เขาจะต้องพิจารณาปัญหาการเพิ่มประสิทธิภาพดังต่อไปนี้
  

ค่าสัมประสิทธิ์ β ≥ 0 หมายถึงค่าน้ำหนักที่ให้กับการตัดสินใจ ถ้า β มีขนาดใหญ่ ปัญหาดังกล่าวข้างต้นจะมีความแปรปรวนของกำไรน้อยที่สุด ในขณะที่ β = 0 นั่นคือสมการ (8) เกิดขึ้นพร้อมกับสมการ (4) เนื่องจากมีการกำหนดค่าความแปรปรวนเป็น Var [G (x, D)] ≡ IE [(g (x, D) - IE [G (x, D)]) 2] ซึ่งเท่ากับค่าคาดหวังของมัน ค่าที่ได้จาก (8) จะคล้ายกับ ค่าที่คาดหวังที่ได้จาก (4) ดังนั้นการหาค่าคาดหวังที่ดีที่สุดคือ G (x, D) ซึ่งใช้ได้กับ การหาค่าเฉลี่ย ค่าความแปรปรวน ตำแหน่งของข้อมูล และเกือบทุกๆด้านของตัวแปรสุ่มที่น่าสนใจ
จากตัวอย่างการหาค่าที่ดีที่สุดนี้ สามารถนำไปใช้ได้กับการตัดสินใจภายใต้สภาวะการที่ไม่แน่นอนได้ ตัวแปรสุ่ม D ใช้แทนความหมายของค่าเฉลี่ย μ = IE [D] แล้วทำการกำหนดปัญหาดังนี้

กำหนดการเฟ้นสุ่ม
----------------

กำหนดการเฟ้นสุ่ม (อังกฤษ:Stochastic programming) คือการโปรแกรมทางคณิตศาสตร์อาจจะอยู่ในรูปของกำหนดการเชิงเส้น กำหนดการไม่เชิงเส้น กำหนดการจำนวนเต็ม กำหนดการเชิงผสมผสานเชิงจำนวนเต็ม โดยที่ข้อมูลนั้นเป็นแบบเฟ้นสุ่ม นั่นหมายถึงเราไม่ทราบค่าสัมประสิทธิ์ ที่แน่นอนของข้อมูลแต่จะทราบลักษณะการแจกแจงของข้อมูลแทนในขณะที่ข้อมูลที่เป็นแบบเชิงกำหนด เราจะทราบค่าของสัมประสิทธิ์ ดังนั้นกำหนดการเฟ้นสุ่มจึงเกี่ยวข้องกับสถานการณ์ที่มีความไม่แน่นอน

วิธีการค้นหาแบบสุ่ม
-------------------

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

* simulated annealing|Simulated annealing by S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi (1983)
* Reactive search optimization (RSO) by Roberto Battiti, G. Tecchiolli (1994), recently reviewed in the reference book
* วิธีการครอส-เอนโทรปี: Cross-entropy method by Rubinstein and Kroese (2004)
* Random search by Anatoly Zhigljavsky (1991)
* Stochastic tunneling
* Parallel tempering a.k.a. replica exchange
* Stochastic hill climbing
* Swarm algorithms
* Evolutionary algorithms
	+ Genetic algorithms by Holland (1975)
	+ Evolution strategies

อ้างอิง
-------

1. ↑  
S. Kirkpatrick; C. D. Gelatt; M. P. Vecchi (1983). "Optimization by Simulated Annealing". *Science*. **220** (4598): 671–680. Bibcode:1983Sci...220..671K. CiteSeerX 10.1.1.123.7607. doi:10.1126/science.220.4598.671. PMID 17813860. S2CID 205939.
2. ↑  
Battiti, Roberto; Gianpietro Tecchiolli (1994). "The reactive tabu search" (PDF). *ORSA Journal on Computing*. **6** (2): 126–140. doi:10.1287/ijoc.6.2.126.
3. ↑  
Battiti, Roberto; Mauro Brunato; Franco Mascia (2008). *Reactive Search and Intelligent Optimization*. Springer Verlag. ISBN 978-0-387-09623-0.
4. ↑  
Rubinstein, R. Y.; Kroese, D. P. (2004). *The Cross-Entropy Method*. Springer-Verlag. ISBN 978-0-387-21240-1.
5. ↑  
Zhigljavsky, A. A. (1991). *Theory of Global Random Search*. Kluwer Academic. ISBN 978-0-7923-1122-5.
6. ↑  
W. Wenzel; K. Hamacher (1999). "Stochastic tunneling approach for global optimization of complex potential energy landscapes". *Phys. Rev. Lett*. **82** (15): 3003. arXiv:physics/9903008. Bibcode:1999PhRvL..82.3003W. doi:10.1103/PhysRevLett.82.3003. S2CID 5113626.
7. ↑  
E. Marinari; G. Parisi (1992). "Simulated tempering: A new monte carlo scheme". *Europhys. Lett*. **19** (6): 451–458. arXiv:hep-lat/9205018. Bibcode:1992EL.....19..451M. doi:10.1209/0295-5075/19/6/002. S2CID 12321327.
8. ↑  
Goldberg, D. E. (1989). *Genetic Algorithms in Search, Optimization, and Machine Learning*. Addison-Wesley. ISBN 978-0-201-15767-3. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2006-07-19.

* เก็บถาวร 2010-06-30 ที่ เวย์แบ็กแมชชีน
* 
* 
* 
* เก็บถาวร 2012-01-18 ที่ เวย์แบ็กแมชชีน