การหาค่าเหมาะที่สุดแบบเฟ้นสุ่ม

จากวิกิพีเดีย สารานุกรมเสรี

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

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

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

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

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

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

ตัวอย่างปัญหา[แก้]

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

สมการ (1)

ผู้จัดการต้องการตัดสินใจ 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 ดังนี้

สมการ (2)

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

สมการ (3)

ค่าที่เหมาะสมที่สุดของปัญหานี้คือ  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 จากนั้นสามารถหาค่าที่เหมาะสมจากฟังก์ชันค่าเฉลี่ย นั่นคือ ค่าคาดหวังของกำไรที่มากที่สุด  \operatorname{E}[G(x,D)] = \int_{0}^{\infty} G(x,w )\,\operatorname {d}F(w) . ซึ่งนำไปสู่โปรแกรมการสุ่ม สมการ (4)
การแก้ปัญหาค่าที่เหมาะสมไม่ใช่เรื่องยากในปัจจุบัน กำหนดให้ D ≥ 0 ฟังก์ชัน G(•,D) มีลักษณะเว้า (ตัวแบบเชิงเส้นเป็นช่วง) ดังนั้นมูลค่าที่คาดหวัง g (.) ก็ต้องเว้าด้วย สมมติว่าในขณะที่ F (.) ต่อเนื่องที่จุด x > 0 นั่นคือ 400px เมื่อใช้การอินทิเกรดแยกส่วนจะคำนวณได้ว่า

สมการ(5)

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

สมการ(6)

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

สมการ(7)

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

สมการ (9)

กำหนดการเฟ้นสุ่ม[แก้]

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


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

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

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


อ้างอิง[แก้]

  1. S. Kirkpatrick; C. D. Gelatt; M. P. Vecchi (1983). "Optimization by Simulated Annealing". Science 220 (4598): 671–680. doi:10.1126/science.220.4598.671. PMID 17813860.  More than one of |number= และ |issue= specified (help)
  2. Battiti, Roberto; Gianpietro Tecchiolli (1994). "The reactive tabu search." (PDF). ORSA Journal on Computing 6 (2): 126–140. 
  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-0387212401. 
  5. Zhigljavsky, A. A. (1991). Theory of Global Random Search. Kluwer Academic. ISBN 0792311221. 
  6. W. Wenzel; K. Hamacher (1999). "Stochastic tunneling approach for global optimization of complex potential energy landscapes". Phys. Rev. Lett. 82: 3003. Bibcode:1999PhRvL..82.3003W. doi:10.1103/PhysRevLett.82.3003. 
  7. E. Marinari; G. Parisi (1992). "Simulated tempering: A new monte carlo scheme". Europhys. Lett. 19: 451. doi:10.1209/0295-5075/19/6/002. 
  8. Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley. ISBN 0201157675.