Optimization101 การหาค่าเหมาะสมคืออะไร? ทำไมใครๆ ก็พูดถึง?

Optimization101 การหาค่าเหมาะสมคืออะไร? ทำไมใครๆ ก็พูดถึง?

หลายครั้งเราคงเคยได้ยิน หรือได้เห็นการพูดถึงคำว่า Optimization, การทำ Optimize, SEO (Search Engine Optimization) หรืออื่นๆ ในหัวข้อต่างๆ มากมาย ซึ่งในบางครั้งก็มีกความหมายสื่อไปในแนวทางเดียวกัน แต่ในบางครั้งก็ถูกพูดถึงในบริบทที่แตกต่าง

คำถามก็คือ,, แล้วจริงๆ คำว่า “การหาค่าที่เหมาะสม” นี้คืออะไร แล้วเราสามารถหาสิ่งนี้ หรือเข้าถึงสิ่งนี้ในบริบทที่เราต้องการได้อย่างไรค่ะ^^

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

โดยที่โมเดลการทำ Optimize มีหลากหลายประเภทตามลักษณะของปัญหาแต่ละอย่าง,, ซึ่งบทความนี้เราจะมาดูรายละเอียดของแต่ละโมเดล เพื่อให้สามารถเลือกให้โมเดลได้เหมาะสมกับปัญหา หรือคำตอบที่เราต้องการ,, ดังนี้ค่ะ

#1 Linear Programming (LP)

LP หรือการโปรแกรมเชิงเส้น เป็นการแก้ปัญหา “การหาค่าเหมาะสมที่สุด” ที่มีข้อจำกัดเป็นสมการเชิงเส้น (Linear Constraints) และฟังก์ชันวัตถุประสงค์ (Objective Function) ที่เป็นเชิงเส้นด้วย

อ่านมาถึงตรงนี้หลายๆ ท่านคงมีคำถามว่า เป็น Contraints และ Objective Function คืออะไร=>> เพื่อให้เข้าใจชัดเจนขึ้น นิกขออธิบายเพิ่มเติมดังนี้ค่ะ =>

  1. Constriants หรือ ข้อจำกัด คือเงื่อนไขหรือข้อบังคับที่จำกัดการเลือกตัวแปรที่เป็นไปได้ในการแก้ปัญหา Optimize โดย Constriants จะระบุถึงสิ่งที่ต้องปฏิบัติตาม หรือขอบเขตที่ต้องอยู่ในกรณีที่เราพยายามหาคำตอบ เช่น ข้อจำกัดของทรัพยากร, เวลา, งบประมาณ, หรือเงื่อนไขต่าง ๆ ที่กำหนดไว้ ซึ่ง Constriants มักจะแสดงเป็นสมการหรืออสมการเชิงเส้น เช่น:
    • ข้อจำกัดทางกายภาพ เช่น ปริมาณวัตถุดิบหรือลิมิตของกำลังการผลิต
    • ข้อจำกัดเชิงเศรษฐศาสตร์ เช่น งบประมาณในการผลิต
    • ข้อจำกัดทางการคำนวณ เช่น เวลาการประมวลผล
      ตัวอย่าง: บริษัทต้องการผลิตสินค้าสองประเภทโดยมีข้อจำกัดของทรัพยากร เช่น วัตถุดิบและเวลาการผลิต ซึ่งมีเป้าหมายคือการหาปริมาณการผลิตที่จะให้ผลกำไรสูงสุดภายใต้ข้อจำกัดของทรัพยากร เป็นต้น
  2. Objective Function หรือ ฟังก์ชันวัตถุประสงค์ คือฟังก์ชัน/สมการทางคณิตศาสตร์ที่ใช้กำหนดเป้าหมายของปัญหา Optimization ซึ่งเราต้องการหาค่าที่ทำให้ฟังก์ชันนี้มีค่ามากที่สุด (Maximization) หรือมีค่าน้อยที่สุด (Minimization) ขึ้นอยู่กับลักษณะของปัญหา
    ตัวอย่าง:
    • ในปัญหาการเพิ่มผลกำไร ฟังก์ชันวัตถุประสงค์จะเป็นการหาผลรวมของกำไรทั้งหมดที่เราต้องการเพิ่มสูงสุด
    • ในปัญหาการลดต้นทุน ฟังก์ชันวัตถุประสงค์จะเป็นการหาผลรวมของค่าใช้จ่ายทั้งหมดที่เราต้องการลดลงต่ำสุด

สรุปก็คือ,, Objective Function (ฟังก์ชันวัตถุประสงค์) คือเป้าหมายที่เราต้องการให้บรรลุ เช่น การหากำไรสูงสุดหรือต้นทุนต่ำสุด และ Constraints (ข้อจำกัด) คือข้อจำกัดหรือเงื่อนไขที่ต้องปฏิบัติตามในการหาคำตอบ เช่น การใช้ทรัพยากรที่มีอยู่อย่างจำกัด นั่นเองค่ะ

เมื่อเข้าใจเรื่อง Objective Function และ Constraints กันแล้ว เรามาต่อกันที่เรื่องการใช้ Linear Programming โมเดลในการค่าเหมาะสมที่สุดกันค่ะ

กล่าวคือ Linear Programming (LP) คือวิธีการแก้ปัญหา Optimization ซึ่งมีฟังก์ชันวัตถุประสงค์ (Objective Function) และข้อจำกัด (Constraints) เป็นสมการเชิงเส้นทั้งหมด โดยปัญหา LP ที่เราพบเจอบ่อยๆ มักเกี่ยวข้องกับการหา “ค่าเหมาะสมที่สุด” ของตัวแปรที่เกี่ยวข้อง เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดตามฟังก์ชันวัตถุประสงค์(อันนี้เป็น Keyword สำคัญนะคะ^^) ภายใต้ข้อจำกัดที่กำหนด ซึ่งย้ำอีกครั้งว่าองค์ประกอบของ LP มีดังนี้ค่ะ

  1. ฟังก์ชันวัตถุประสงค์ (Objective Function): เป็นสมการเชิงเส้นที่เราต้องการหาค่ามากที่สุด (maximize) หรือน้อยที่สุด (minimize)
  2. ข้อจำกัด (Constraints): เป็นชุดของสมการหรืออสมการที่กำหนดขอบเขตของตัวแปร ตัวแปรเหล่านี้ต้องปฏิบัติตามข้อจำกัดเสมอ
  3. ตัวแปรการตัดสินใจ (Decision Variables): คือตัวแปรที่เราต้องการหาค่าที่เหมาะสมที่สุดเพื่อให้ฟังก์ชันวัตถุประสงค์เป็นไปตามเป้าหมาย

และเพื่อให้เห็นภาพชัดเจนขึ้น,, ขออนุญาตยกตัวอย่างการใช้งาน LP กับงานด้าน Marketing ดังนี้ค่ะ

#การใช้งาน Linear Programming สำหรับงาน Opimization ด้านการตลาด

บริษัทต้องการวางแผนการจัดสรรงบโฆษณาผ่านช่องทางต่าง ๆ เพื่อเพิ่มยอดขายให้มากที่สุดภายใต้ข้อจำกัดของงบประมาณและทรัพยากร เช่น จำนวนชั่วโมงการทำงานของทีมการตลาด หรือข้อจำกัดของเวลาในการโฆษณาในแต่ละช่องทาง

ฟังก์ชันวัตถุประสงค์: สมมติว่า บริษัทมีสองช่องทางในการโฆษณา คือ โฆษณาทางโทรทัศน์ (x1) และ โฆษณาออนไลน์ (x2) โดยมีเป้าหมายที่จะเพิ่มยอดขายมากที่สุด กำไรที่เกิดจากการโฆษณาทางโทรทัศน์อยู่ที่ 50×1 และจากโฆษณาออนไลน์อยู่ที่ 240×2 ดังนั้น ฟังก์ชันวัตถุประสงค์ที่เราได้มาจะเป็น:

โดยที่ Z คือยอดขายที่คาดว่าจะเพิ่มขึ้น และ x1, x2 คือจำนวนเงินที่ใช้ไปกับแต่ละช่องทาง

ข้อจำกัด (Constraints):

1. บริษัทมีงบประมาณจำกัดอยู่ที่ 100,000 บาท ดังนั้นข้อจำกัดเรื่องงบประมาณเป็นดังนี้

    ที่สมมติว่าโฆษณาทางโทรทัศน์ใช้เงิน 10,000 บาทต่อหน่วย และโฆษณาออนไลน์ใช้เงิน 8,000 บาทต่อหน่วย

    2. ข้อจำกัดของเวลาที่บริษัทมีสำหรับทีมการตลาดอาจเป็น เช่น บริษัทมีเวลาสำหรับทีมการตลาดทั้งหมด 200 ชั่วโมง และต้องใช้เวลาในการวางแผนและดำเนินงานของโฆษณาทางโทรทัศน์และออนไลน์ ดังนั้นข้อจำกัดเรื่องเวลาอาจจะเป็นดังนี้

    3. ข้อจำกัดทางลอจิสติกส์ อาจมีการจำกัดว่าบริษัทต้องโฆษณาทางออนไลน์อย่างน้อย 5 หน่วย ดังนั้นเราจะมีข้อจำกัดเพิ่มเติมคือ

    ซึ่งเมื่อเราได้ Objective Function และ Constraints เรียบร้อยแล้ว รายละเอียดในเชิงคำนวณ เมื่อใช้วิธีการ Linear Programming เพื่อแก้ปัญหาคือ เราจะทำ Optimization คำตอบของสมการวัตถุประสงค์ ซึ่งสำหรับกรณีนี้จะเป็นการหาค่าที่ดีที่สุดสำหรับ x1 และ x2 ที่ทำให้ฟังก์ชันวัตถุประสงค์ Z เพิ่มขึ้นสูงสุดภายใต้ข้อจำกัดต่าง ๆ เช่น งบประมาณ เวลา และเงื่อนไขของการโฆษณา

    และเมื่อมาถึงตรงนี้ก็ง่ายมากค่ะ,, สำหรับท่านไหนที่สามารถนำไปเขียนโปรแกรมต่อที่ภาษาใดๆ ก็ตามเช่น Python, etc., ก็สามารถนำไปทำต่อ ตลอดจนสามารถ Visualize ออกมาได้เลย

    Optimization101 การหาค่าเหมาะสมคืออะไร? ทำไมใครๆ ก็พูดถึง?
    Budget Optimization ด้านการตลาดที่เหมาะสมสำหรับช่องทางต่างๆ โดยโปรแกรมภาษา Python ด้วย LP Model
    credit: Melody Yang

    หรือหากเพื่อนๆ ท่านไหนที่คุ้นเคยกับ Microsoft excel ก็สามารถใช้ Excel ในการทำ Optimization ปัญหานี้ได้เช่นเดียวกันตามโจทย์ที่กล่าวถึงข้างต้นดังนี้ค่ะ

    1. ใช้ฟังก์ชัน “Solver” ซึ่งเป็นเครื่องมือที่สามารถช่วยหาคำตอบที่เหมาะสมที่สุดภายใต้ฟังก์ชันวัตถุประสงค์และข้อจำกัดที่กำหนดไว้,, ย้ำรายละเอียดอีกรอบ ดังนี้

    • บริษัทต้องการวางแผนการจัดสรรงบโฆษณาไปยังโฆษณาทางโทรทัศน์และออนไลน์
    • กำไรต่อหน่วยจากโฆษณาทางโทรทัศน์คือ 50 บาท และจากโฆษณาออนไลน์คือ 40 บาท
    • งบประมาณทั้งหมดที่มีคือ 100,000 บาท
    • บริษัทมีเวลาของทีมการตลาดจำกัดที่ 200 ชั่วโมง
    • ต้องมีการลงทุนในโฆษณาออนไลน์อย่างน้อย 5 หน่วย

    2. สร้างตารางข้อมูลตามภาพด้านล่างเพื่อทำ Optimization (หรือทำแบบอื่นก็ได้นะคะ,, ภาพด้านล่างเป็นเพียงตัวอย่างค่ะ)

    โดยตารางนี้จะมีตัวแปรคือ x1 และ x2 ซึ่งจะอยู่ในเซลล์ B3 และ B4 ตามลำดับ ซึ่งเราจะใช้ตัวแปรนี้ในการคำนวณยอดขายที่เพิ่มขึ้นและทรัพยากรที่ใช้ไปค่ะ

    3. การตั้งฟังก์ชันวัตถุประสงค์ของการทำ Optimization

    โดยเราจะตั้ง Objective Function ในเซลล์หนึ่ง เช่น D5 ให้คำนวณฟังก์ชันวัตถุประสงค์ (ยอดขายที่เพิ่มขึ้น) โดยใช้สูตร:

    4. ตั้ง Constiants รายละเอียดดังนี้

    • งบประมาณทั้งหมด โดยพิมพ์สูตรในเซลล์ E5 ดังนี้: =B3*10000 + B4*8000 (ซึ่งต้องไม่เกิน 100,000 บาท)
    • เวลาทั้งหมดของทีมการตลาด โดยพิมพ์สูตรในเซลล์ F5 ดังนี้: =B3*2 + B4*1 (ซึ่งต้องไม่เกิน 200 ชั่วโมง)
    • ข้อจำกัดอื่น ๆ เช่น จำนวนขั้นต่ำของโฆษณาออนไลน์ เช่นกรณ์อยากให้งบช่องทางออนไลน์มากกว่าจะได้ B4 ≥ 5B

    5. ใช้ Solver เพื่อแก้ปัญหา LP Optimization โดยมีขั้นตอนดังนี้ค่ะ

    5.1 เปิดใช้งาน Solver:

    1. ไปที่เมนู “File” > “Options”
    2. เลือก “Add-ins” จากนั้นที่ด้านล่างของหน้าต่าง ให้เลือก “Excel Add-ins” แล้วกด “Go”
    3. ติ๊กเลือก “Solver Add-in” แล้วกด “OK”

    5.2 การตั้งค่า Solver:

    1. ไปที่ “Data” > “Solver”
    2. ในช่อง “Set Objective” ให้เลือกเซลล์ที่คำนวณฟังก์ชันวัตถุประสงค์ (เช่น D5)
    3. เลือก “Max” เพื่อหาค่าสูงสุดของฟังก์ชันวัตถุประสงค์
    4. ในช่อง “By Changing Variable Cells” ให้เลือกเซลล์ตัวแปร B3 และ B4
    5. ในช่อง “Subject to the Constraints” ให้เพิ่มข้อจำกัดโดยการกด “Add”:
      • เพิ่มข้อจำกัดเรื่องงบประมาณ เช่น E5≤100000
      • เพิ่มข้อจำกัดเรื่องเวลาของทีมการตลาด เช่น F5≤200
      • เพิ่มข้อจำกัดเรื่องจำนวนโฆษณาออนไลน์ เช่น B4≥B5
    6. เลือก “Simplex LP” เป็นวิธีการแก้ปัญหา Optimization นี้ค่ะ หลังจากนั้นก็กด “Solve” ได้เลย^^

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

    ซึ่งจากโจทย์นี้การจัดสรรงบโฆษณาที่ได้จากการใช้ Solver ใน Excel โดยจำนวนหน่วยที่จัดสรรให้กับโฆษณาทางโทรทัศน์ (TV Ads) และโฆษณาออนไลน์ (Online Ads) จะได้เป็น โฆษณาทางโทรทัศน์ได้รับการจัดสรร 5 หน่วย และโฆษณาออนไลน์ได้รับการจัดสรร 9 หน่วย ตามภาพด้านบนค่ะ^^

      สำหรับในบทความนี้เป็น Optimization 101 ค่ะ ซึ่งตั้งต้นนิกตั้งใจว่าจะเป็น Optimize Model ให้ครบทุกโมเดลในบทความเดียว แต่นอกจากความเข้าใจในหลักการและสมการจะมีความสำคัญแล้ว การนำไปใช้งานจริงก็มีความสำคัญมากๆ เช่นเดียวกันค่ะ ใน 101#1 นี้เลยจะพาทุกท่านไปเข้าใจโมเดลแรก นั่นคือ Linear Programming =>> และ #ต่อๆ ไปจะเป็น Nonlinear Programming (NLP), Integer Programming (IP), Dynamic Programming (DP), Stochastic Optimization และ Particle Swarm Optimization (PSO) ค่ะ,, ซึ่งเพื่อนๆ ที่สนใจสามารถติดามได้ที่ https://www.everydaymarketing.co/ ในสัปดาห์ต่อไปนะคะ <(^-^)>

      Panaya Sudta

      Hi, I am Nick,,,,Panaya Sudta (●'◡'●) Engineer during the daytime. Researcher at night. Reader in spare time. (❁´◡`❁) วิศวกร/นักวิจัย/ Market research ค่ะ หวังเป็นอย่างยิ่งว่าจะได้แชร์มุมมองกันนะคะ

      Leave a Reply

      Your email address will not be published. Required fields are marked *