การเขียนโปรแกรมเชิงเส้นในวิทยาศาสตร์ข้อมูลคืออะไร: ภาพรวม
เผยแพร่แล้ว: 2022-09-21Data Science ได้เติบโตขึ้นเป็นสาขาสหวิทยาการอย่างแท้จริงที่ยืมมาจากวิทยาการคอมพิวเตอร์ คณิตศาสตร์ การวิเคราะห์ข้อมูล สถิติ ฯลฯ ความก้าวหน้าได้ช่วยให้ธุรกิจต่างๆ ทั่วโลกสามารถตัดสินใจได้โดยใช้ข้อมูลสำรองมากขึ้น ด้วยเหตุนี้ วันนี้บริษัทต่างๆ ได้ตระหนักถึงความสำคัญของข้อมูลที่พวกเขาได้รับตลอดหลายปีที่ผ่านมา
นักวิทยาศาสตร์ข้อมูลใช้เครื่องมือขั้นสูงเพื่อประเมินสถานการณ์ทางธุรกิจในปัจจุบันโดยใช้ข้อมูลที่มีอยู่ หาความสัมพันธ์ และค้นหารูปแบบที่ชาญฉลาด วิธีนี้เรียกว่าการวิเคราะห์เชิงพรรณนา นอกจากนี้ นักวิทยาศาสตร์ด้านข้อมูลยังศึกษาผลกระทบและสาเหตุ โดยคำนึงถึงตัวแปรตามและตัวแปรอิสระต่างๆ ที่รู้จักกันในชื่อ Predictive Analytics
เนื่องจาก Predictive Analytics ทำงานโดยการระบุความสัมพันธ์ของเหตุและผล จึงเป็นประโยชน์สำหรับการตัดสินใจอย่างชาญฉลาดสำหรับอนาคต อย่างไรก็ตาม สิ่งนี้ไม่ตรงไปตรงมาอย่างที่คิด ทุกธุรกิจมีตัวแปรมากมายที่ต้องจัดการ – รวมถึงข้อมูลเชิงลึกในปัจจุบัน ข้อจำกัด และอื่นๆ
ตรวจสอบใบรับรองวิทยาศาสตร์ข้อมูลของเราเพื่อเพิ่มทักษะให้กับตัวคุณเอง
ในการทำนายอย่างแม่นยำ คุณต้องพิจารณาตัวแปรเหล่านี้และหาทางออกที่เหมาะสมที่สุด นี่คือที่มาของ Linear Programming การเขียนโปรแกรมเชิงเส้นเป็นเทคนิคสำคัญที่ทำงานด้วยอัลกอริธึมและช่วยให้นักวิทยาศาสตร์ข้อมูลสามารถค้นหาวิธีแก้ปัญหาที่เหมาะสมที่สุดสำหรับปัญหาต่างๆ การเขียนโปรแกรมเชิงเส้นจะพิจารณาตัวแปร ความเสมอภาค และความไม่เท่าเทียมกันที่จำเป็นทั้งหมดเพื่อมาสู่การแก้ปัญหาขั้นสุดท้าย ซึ่งทำให้แน่ใจได้ว่าการคาดคะเนจะเข้าใจผิดได้
ในบทความนี้ เรามาดูกันดีกว่าว่า Linear Programming คืออะไร วิธีการต่างๆ ของ Linear Programming และตัวอย่างปัญหาของ Linear Programming!
สำรวจปริญญาวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
Executive Post Graduate Program in Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้านวิทยาศาสตร์ข้อมูลเพื่อการตัดสินใจทางธุรกิจ | วิทยาศาสตรมหาบัณฑิต สาขา Data Science จาก University of Arizona |
หลักสูตรประกาศนียบัตรขั้นสูงด้าน Data Science จาก IIITB | หลักสูตรประกาศนียบัตรวิชาชีพด้าน Data Science และ Business Analytics จาก University of Maryland | องศาวิทยาศาสตร์ข้อมูล |
การเขียนโปรแกรมเชิงเส้นในการวิเคราะห์เชิงทำนาย
ก่อนที่จะเริ่มต้นด้วยเทคนิค สิ่งสำคัญคือต้องสังเกตว่าการเขียนโปรแกรมในบริบทของ Linear Programming ไม่ได้หมายถึงการเขียนโปรแกรมคอมพิวเตอร์หรือซอฟต์แวร์ ในทางกลับกัน Linear Programming เป็นเทคนิคการเพิ่มประสิทธิภาพ (Linear Optimization) ที่เป็นประโยชน์ในการค้นหาผลลัพธ์ที่ดีที่สุดจากแบบจำลองทางคณิตศาสตร์ ในการกำหนดโปรแกรมเชิงเส้นตรง สิ่งสำคัญคือต้องมีความเข้าใจในองค์ประกอบพื้นฐานของโปรแกรมเชิงเส้นตรง ซึ่งรวมถึง:
- ตัวแปรการตัดสินใจ: หมายถึงตัวแปรที่เราต้องการที่จะกำหนด ซึ่งก็คือค่าที่ไม่รู้จัก
- ฟังก์ชันวัตถุประสงค์: หมายถึงฟังก์ชันเชิงเส้นที่แสดงถึงปริมาณที่ต้องลดขนาดหรือขยายให้ใหญ่สุด
- ข้อจำกัด: นี่คือชุดของความไม่เท่าเทียมกันหรือความเท่าเทียมกันที่แสดงถึงข้อจำกัดทั้งหมดในตัวแปรการตัดสินใจของเรา
- ข้อจำกัดที่ไม่เป็นลบ: หมายถึงจุดสำคัญของข้อจำกัดที่ค่าของตัวแปรการตัดสินใจไม่เป็นค่าลบ
ด้วยเงื่อนไขพื้นฐานที่ตกลงกัน ตอนนี้เรามาดูกันว่าจะใช้แนวทางใดได้บ้างในขณะที่แก้ปัญหา Linear Programming
ทักษะด้านวิทยาศาสตร์ข้อมูลสำคัญที่ต้องเรียนรู้ในปี 2022
เอสแอล. ไม่ | ทักษะด้านวิทยาศาสตร์ข้อมูลอันดับต้นๆ ที่ควรเรียนรู้ในปี 2022 | |
1 | ใบรับรองการวิเคราะห์ข้อมูล | ใบรับรองสถิติเชิงอนุมาน |
2 | ใบรับรองการทดสอบสมมติฐาน | ใบรับรองการถดถอยโลจิสติก |
3 | ใบรับรองการถดถอยเชิงเส้น | พีชคณิตเชิงเส้นสำหรับการรับรองการวิเคราะห์ |
การแก้ปัญหาการเขียนโปรแกรมเชิงเส้น
เราสามารถปฏิบัติตามสี่ขั้นตอนเหล่านี้เพื่อแก้ปัญหา Linear Programming ได้สำเร็จ:
- การระบุตัวแปรการตัดสินใจ
- การพัฒนาฟังก์ชันวัตถุประสงค์
- การระบุข้อจำกัด
- ระบุข้อจำกัดที่ไม่เป็นลบ
เราจะเจาะลึกลงไปในขั้นตอนเหล่านี้ในภายหลังเมื่อเราดูตัวอย่างที่แก้ไขแล้วของ Linear Programming แต่ก่อนหน้านั้น มาดูวิธีต่างๆ ที่คุณสามารถใช้แก้ปัญหา Linear Programming ได้ มีสี่วิธีกว้าง ๆ ให้เลือก:
- วิธีการแบบกราฟิก : วิธีการแบบกราฟิกเป็นวิธีพื้นฐานที่สุดที่ใช้ในการแก้ปัญหาการเขียนโปรแกรมเชิงเส้นในสองตัวแปร ส่วนใหญ่จะใช้เมื่อมีตัวแปรการตัดสินใจเพียงสองตัวแปรที่ต้องพิจารณา วิธีการแบบกราฟิกเกี่ยวข้องกับการสร้างชุดของความไม่เท่าเทียมกันเชิงเส้นและอยู่ภายใต้เงื่อนไขหรือข้อจำกัดที่เกี่ยวข้อง จากนั้น สมการจะถูกพล็อตบนระนาบ XY และพื้นที่ของจุดตัดที่เกิดขึ้นจากการพล็อตสมการเชิงเส้นทั้งหมดเป็นพื้นที่ที่เป็นไปได้ พื้นที่นี้ระบุค่าของแบบจำลองและให้โซลูชันที่เหมาะสมที่สุด
- Simplex Method: นี่เป็นวิธีที่มีประสิทธิภาพในการแก้ปัญหา Linear Programming และเป็นไปตามขั้นตอนแบบวนซ้ำเพื่อให้ได้วิธีแก้ปัญหาที่เหมาะสมที่สุด ในแนวทางนี้ ตัวแปรที่จำเป็นจะถูกแก้ไขจนกว่าจะถึงค่าสูงสุดหรือต่ำสุด (ตามที่ต้องการ) สำหรับฟังก์ชันวัตถุประสงค์เริ่มต้น
- วิธีมุมตะวันตกเฉียงเหนือและต้นทุนน้อยที่สุด: เป็นวิธีการเฉพาะประเภทที่ใช้สำหรับปัญหาการขนส่งเป็นหลัก เพื่อกำหนดวิธีที่ดีที่สุดในการขนส่งสินค้าหรือสินค้า ด้วยเหตุนี้ นี่เป็นวิธีการเพิ่มประสิทธิภาพที่สะดวกสำหรับปัญหาอุปสงค์และอุปทาน สมมติฐานสำหรับวิธีนี้คือมีผลิตภัณฑ์เดียวเท่านั้น อย่างไรก็ตาม ความต้องการผลิตภัณฑ์นี้มาจากแหล่งต่างๆ ซึ่งทั้งหมดรวมกันเป็นอุปทานทั้งหมด ดังนั้นวิธีนี้จึงมุ่งที่จะลดต้นทุนการขนส่ง
- การแก้ปัญหาโดยใช้ R: R เป็นหนึ่งในเครื่องมือที่ใช้กันอย่างแพร่หลายมากที่สุดสำหรับวิทยาศาสตร์ข้อมูลและการวิเคราะห์ข้อมูล R ทำให้ง่ายต่อการเพิ่มประสิทธิภาพในโค้ดเพียงไม่กี่บรรทัดโดยใช้แพ็คเกจ IpSolve
- การแก้ปัญหาโดยใช้เครื่องมือโอเพนซอร์ส: วิธีสุดท้ายใช้เครื่องมือโอเพนซอร์ซที่มีอยู่มากมายสำหรับปัญหาการปรับให้เหมาะสม ตัวอย่างหนึ่งของเครื่องมือโอเพนซอร์สคือ OpenSolve ซึ่งเป็นเครื่องมือเพิ่มประสิทธิภาพเชิงเส้นสำหรับ Excel และทำงานได้อย่างราบรื่นสำหรับตัวแปรสูงสุด 100 ตัว นอกจากนั้น CPLEX, MATLAB, Gurobi เป็นต้น เป็นเครื่องมือโอเพนซอร์ซที่มีประโยชน์อื่นๆ
อ่านบทความวิทยาศาสตร์ข้อมูลยอดนิยมของเรา
เส้นทางอาชีพ Data Science: คู่มืออาชีพที่ครอบคลุม | การเติบโตของอาชีพ Data Science: อนาคตของการทำงานอยู่ที่นี่ | เหตุใด Data Science จึงมีความสำคัญ 8 วิธีที่ Data Science นำคุณค่ามาสู่ธุรกิจ |
ความเกี่ยวข้องของวิทยาศาสตร์ข้อมูลสำหรับผู้จัดการ | แผ่นโกงวิทยาศาสตร์ข้อมูลขั้นสูงสุดที่นักวิทยาศาสตร์ข้อมูลทุกคนควรมี | 6 เหตุผลที่คุณควรเป็นนักวิทยาศาสตร์ข้อมูล |
วันหนึ่งในชีวิตของ Data Scientist: พวกเขาทำอะไร? | Myth Busted: Data Science ไม่ต้องการการเข้ารหัส | Business Intelligence vs Data Science: อะไรคือความแตกต่าง? |
ตัวอย่างการแก้กราฟิกของการเขียนโปรแกรมเชิงเส้น
ในช่วงเทศกาลประจำปี บริษัทคำนึงถึงสองปัจจัย – X และ Y – เพื่อสร้างชุดผู้ใช้ น้ำหนักของบรรจุภัณฑ์ทั้งหมดต้อง 5 กก. และต้องไม่เกิน 4 กก. ของ Y และอย่างน้อย X X และ Y อย่างน้อย 2 กก. มีส่วนทำให้เกิดกำไรทั้งหมดดังนี้ – Rs. 5 / กก. สำหรับ X และ 6 / กก. สำหรับ Y
เรามาลองแก้ปัญหา Linear Programming นี้กันเพื่อให้ได้ส่วนผสมที่ดีที่สุดซึ่งส่งผลให้บริษัทมีกำไรสูงสุด
1. การทำงานกับหน้าที่หลักของเรา
เป้าหมายการเพิ่มประสิทธิภาพของปัญหาของเราคือการเพิ่มผลกำไรสูงสุด ส่วนแบ่งกำไรของ X และ Y มอบให้เราในคำชี้แจงปัญหา ตอนนี้,
- ให้ X . หนึ่งกิโลกรัม
- ให้ b กก. ของ Y
- ฟังก์ชันวัตถุประสงค์ของเราจะกลายเป็น -> c = 5*a + 6*b และเราจำเป็นต้องเพิ่มค่า c ให้สูงสุด
เรามี a, b เป็นตัวแปรในการตัดสินใจ ในขณะที่ c เป็นฟังก์ชันที่เราต้องการ
2. การพัฒนาข้อจำกัดจากปัญหา
เราได้รับข้อจำกัดต่อไปนี้ในปัญหา:
- น้ำหนักห่อของขวัญต้อง 5 กก. => a + b = 5
- Y น้อยกว่า 4 กก. และ X อย่างน้อย 2 กก. => x>=2; ย<=4
3. ข้อจำกัดที่ไม่เป็นลบ
ปริมาณสำหรับ X และ Y ควรเป็นค่าบวก => a, b>0
ตอนนี้ ให้เราสรุปปัญหาทั้งหมดอย่างรวดเร็วตามที่เราได้อธิบายไปแล้ว:
เราจำเป็นต้องเพิ่มประสิทธิภาพ c = 5a+6b ภายใต้สองเงื่อนไขต่อไปนี้:
- a+b=5
- ก>=2
- ข<=4
เรากำลังใช้วิธีการแบบกราฟิกเพื่อแก้ปัญหานี้ ดังนั้นให้เราพิจารณากราฟ 2 มิติที่มีแกน XY แล้วลองพล็อตสมการและอสมการ เราจะมีสิ่งต่อไปนี้กับเรา:
- a + b = 5 เป็นเส้นตรงที่ตัดแกน x ที่ (5,0) และแกน y ที่จุด (0,5) เนื่องจากเรามีเครื่องหมายความเท่าเทียมกันในนิพจน์ เรามั่นใจว่าขอบเขตที่เป็นไปได้อยู่ในพื้นที่ของจุดตัดของเส้นเหล่านี้
- a >= 2 คือการตัดแกน x เป็นเส้นตรงเป็น (2,0) เนื่องจากการแสดงออกของเรามีมากกว่าข้อจำกัด พื้นที่ที่เป็นไปได้ของเราจึงตกอยู่ที่ RHS ของสายงานของเรา
- b <= 4 เป็นเส้นตรงที่ตัดแกน y ที่ (0,4) เนื่องจากเรามีข้อจำกัดน้อยกว่า พื้นที่ที่เป็นไปได้ของเราคือพื้นที่ด้านล่างเส้น
- สุดท้าย เนื่องจาก a และ b เป็นค่าบวกทั้งคู่ พื้นที่ที่เรากังวลคือจตุภาคแรก
หากคุณได้พล็อตเส้นและข้อจำกัดเหล่านี้บนแผ่นกราฟ คุณจะมีพื้นที่สุดท้ายที่ตรงตามเงื่อนไขที่จำเป็นทั้งหมด สองจุดที่อยู่บนสุดของบรรทัดนี้คือข้อควรพิจารณาที่เป็นไปได้สำหรับการเพิ่มผลกำไรสูงสุด เหล่านี้คือคะแนน (2,3) และ (5,0) ในการค้นหาว่าสิ่งใดจากสองสิ่งนี้ให้ผลกำไรที่ดีกว่า เราสามารถใส่คะแนนในฟังก์ชันวัตถุประสงค์ของเราและดูว่าผลลัพธ์ใดให้ผลลัพธ์ที่ดีที่สุด:
- c = 5a + 6b ⬄ c = (5*2) +(6*3) = 28
- c = 5a + 6b ⬄ z = (5*5) +(6*0) = 25
อย่างที่คุณเห็น เราได้รับมูลค่ากำไรที่สูงขึ้นสำหรับออปชั่น A ดังนั้น โซลูชันของเราที่ให้ผลกำไรที่ดีที่สุดมีดังนี้ => 2 กก. ของแฟคเตอร์ X และ 3 กก. ของแฟคเตอร์ Y!
สรุปแล้ว
ไม่มีปัญหาในการเพิ่มประสิทธิภาพโดยเฉพาะอย่างยิ่งเมื่อเราพูดถึงบริบททางธุรกิจ ธุรกิจเผชิญกับความท้าทายในการเพิ่มประสิทธิภาพบ่อยกว่าที่พวกเขาต้องการ ด้วยเหตุนี้ วิธีการแบบกราฟิกจึงไม่เพียงพอที่จะแก้ปัญหาการปรับให้เหมาะสมทางเทคนิคเพิ่มเติม
คุณต้องเข้าใจเครื่องมือสำคัญหรือภาษาการเขียนโปรแกรมเพื่อดำเนินการปรับให้เหมาะสมเชิงเส้นกับปัญหาหลายตัวแปรได้สำเร็จ แต่ข่าวดีก็คือ การทำงานกับเครื่องมือหรือภาษาโปรแกรมที่เกี่ยวข้องนั้นไม่ใช่เรื่องยาก สาขาวิชาวิทยาศาสตร์ข้อมูลทั้งหมดยินดีเป็นอย่างยิ่ง ซึ่งช่วยให้ผู้คนจากภูมิหลังใดๆ สามารถสร้างอาชีพด้านวิทยาศาสตร์ข้อมูลได้ง่ายขึ้น หากพวกเขามีความสนใจ
ที่ upGrad เราได้แนะนำนักเรียนจากทั่วโลกด้วยภูมิหลังที่หลากหลาย และช่วยให้พวกเขาพัฒนาความรู้เชิงทฤษฎีที่เกี่ยวข้องและความเชี่ยวชาญเชิงปฏิบัติที่จำเป็นต่อการประสบความสำเร็จในด้านวิทยาศาสตร์ข้อมูล ตรวจสอบ Executive Post Graduate Program in Data Science สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโครงสร้างหลักสูตร หลักสูตร และความได้เปรียบของ upGrad!
1. การเขียนโปรแกรมเชิงเส้นเกี่ยวข้องกับการเขียนโปรแกรมคอมพิวเตอร์หรือไม่?
ไม่ การโปรแกรมเชิงเส้นหมายถึงการเพิ่มประสิทธิภาพภายใต้ข้อจำกัด ไม่เกี่ยวข้องกับการเขียนโปรแกรมคอมพิวเตอร์ในความหมายดั้งเดิมของคำ
2. เมื่อไหร่ที่ Linear Programming จำเป็นที่สุด?
คุณต้องการโปรแกรมเชิงเส้นตรงเมื่อปรับตัวแปรการตัดสินใจบางอย่างให้เหมาะสมภายใต้ข้อจำกัดต่างๆ มีประโยชน์ในระหว่างการวิเคราะห์เชิงคาดการณ์และช่วยให้ธุรกิจคาดการณ์ได้ดีขึ้น
3. การเขียนโปรแกรมเชิงเส้นจำเป็นต้องดำเนินการด้วยตนเองหรือไม่?
ไม่ มีเครื่องมือต่างๆ ทั้งโอเพ่นซอร์สและอื่น ๆ ที่สามารถช่วยคุณดำเนินการโปรแกรมเชิงเส้นได้