กลับไปหน้าบทความ

อ่าน 4 นาที

การเพิ่มประสิทธิภาพแบบมีข้อจำกัด

ใน การหาค่าเหมาะสม ที่สุดทางคณิตศาสตร์การหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด (ในบางบริบทเรียกว่าการหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด )...

การเพิ่มประสิทธิภาพแบบมีข้อจำกัด

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

ความสัมพันธ์กับปัญหาการแก้ข้อจำกัด

ปัญหาการหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด (COP) เป็นการขยายความที่สำคัญของ แบบจำลอง ปัญหาความพึงพอใจตามข้อจำกัด แบบคลาสสิก (CSP) [ 1 ] COP เป็น CSP ที่มีฟังก์ชันวัตถุประสงค์ที่ต้องหาค่าเหมาะสมที่สุด มีการใช้อัลกอริธึมหลายตัวเพื่อจัดการส่วนของการหาค่าเหมาะสมที่สุด

รูปแบบทั่วไป

ปัญหาการลดค่าแบบมีข้อจำกัดทั่วไปสามารถเขียนได้ดังนี้: [ 2 ]

นาที เอฟ(x)คุณเจอีที ทีโอ จีฉัน(x)=ฉันสำหรับ ฉัน=1,,nข้อจำกัดความเท่าเทียมกัน ชม.เจ(x)เจสำหรับ เจ=1,,ข้อจำกัดความไม่เท่าเทียมกัน{\displaystyle {\begin{array}{rcll}\min &~&f(\mathbf {x} )&\\\mathrm {subject~to} &~&g_{i}(\mathbf {x} )=c_{i}&{\text{สำหรับ }}i=1,\ldots ,n\quad {\text{ข้อจำกัดความเท่าเทียมกัน}}\\&~&h_{j}(\mathbf {x} )\geq d_{j}&{\text{สำหรับ }}j=1,\ldots ,m\quad {\text{ข้อจำกัดความไม่เท่าเทียมกัน}}\end{array}}}

ที่ไหนจีฉัน(x)=ฉัน เอฟโอ ฉัน=1,,n{\displaystyle g_{i}(\mathbf {x} )=c_{i}~\mathrm {for~} i=1,\ldots ,n}และชม.เจ(x)เจ เอฟโอ เจ=1,,{\displaystyle h_{j}(\mathbf {x} )\geq d_{j}~\mathrm {for~} j=1,\ldots ,m}คือข้อจำกัดที่ต้องปฏิบัติตาม (เรียกว่าข้อจำกัดที่เข้มงวด ) และเอฟ(x){\displaystyle f(\mathbf {x} )}คือฟังก์ชันเป้าหมายที่ต้องได้รับการปรับให้เหมาะสมที่สุดภายใต้ข้อจำกัดต่างๆ

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

วิธีการแก้ปัญหา

อัลกอริทึมการเพิ่มประสิทธิภาพแบบไม่มีข้อจำกัดจำนวนมากสามารถปรับให้เข้ากับกรณีที่มีข้อจำกัดได้ โดยส่วนใหญ่มักใช้วิธีการลงโทษอย่างไรก็ตาม ขั้นตอนการค้นหาที่ดำเนินการโดยวิธีแบบไม่มีข้อจำกัดอาจไม่เหมาะสมสำหรับปัญหาที่มีข้อจำกัด ส่งผลให้ไม่มีการบรรจบกัน ซึ่งเรียกว่าปรากฏการณ์มาราโตส[ 3 ]

ข้อจำกัดความเท่าเทียมกัน

วิธีการทดแทน

สำหรับปัญหาที่ง่ายมาก เช่น ฟังก์ชันของตัวแปรสองตัวที่อยู่ภายใต้ข้อจำกัดความเท่าเทียมกันเพียงข้อเดียว วิธีที่ใช้งานได้จริงที่สุดคือการใช้วิธีการแทนที่[ 4 ]แนวคิดคือการแทนที่ข้อจำกัดลงในฟังก์ชันเป้าหมายเพื่อสร้างฟังก์ชันประกอบที่รวมผลกระทบของข้อจำกัดไว้ด้วย ตัวอย่างเช่น สมมติว่าเป้าหมายคือการเพิ่มค่าสูงสุดเอฟ(x,y)=xy{\displaystyle f(x,y)=x\cdot y}ขึ้นอยู่กับx+y=10{\displaystyle x+y=10}ข้อจำกัดดังกล่าวหมายความว่าy=10x{\displaystyle y=10-x}ซึ่งสามารถนำไปแทนที่ในฟังก์ชันเป้าหมายเพื่อสร้างได้พี(x)=x(10x)=10xx2{\displaystyle p(x)=x(10-x)=10x-x^{2}}เงื่อนไขจำเป็นอันดับแรกให้ผลลัพธ์ดังนี้พีx=102x=0{\displaystyle {\frac {\partial p}{\partial x}}=10-2x=0}ซึ่งสามารถหาคำตอบได้x=5{\displaystyle x=5}และด้วยเหตุนี้y=105=5{\displaystyle y=10-5=5}.

ตัวคูณลากรางจ์

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

ข้อจำกัดความไม่เท่าเทียมกัน

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

การเขียนโปรแกรมเชิงเส้น

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

การเขียนโปรแกรมแบบไม่เชิงเส้น

ถ้าฟังก์ชันเป้าหมายหรือข้อจำกัดบางส่วนเป็นแบบไม่เชิงเส้น และข้อจำกัดบางส่วนเป็นอสมการ ปัญหาดังกล่าวจะเป็นปัญหาการเขียนโปรแกรมแบบไม่เชิงเส้น

การเขียนโปรแกรมเชิงกำลังสอง

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

เงื่อนไข KKT

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

แตกกิ่งและผูกมัด

การหาค่าเหมาะสมที่สุดภายใต้ข้อจำกัดสามารถแก้ไขได้ด้วยอัลก อริทึม แบบ Branch-and-Boundซึ่งเป็นอัลกอริทึมแบบย้อนกลับ (Backtracking) ที่เก็บค่าใช้จ่ายของวิธีแก้ปัญหาที่ดีที่สุดที่พบระหว่างการทำงาน และใช้ค่าใช้จ่ายนั้นเพื่อหลีกเลี่ยงส่วนหนึ่งของการค้นหา กล่าวคือ เมื่อใดก็ตามที่อัลกอริทึมพบวิธีแก้ปัญหาบางส่วนที่ไม่สามารถขยายเพื่อสร้างวิธีแก้ปัญหาที่มีค่าใช้จ่ายดีกว่าค่าใช้จ่ายที่ดีที่สุดที่เก็บไว้ อัลกอริทึมจะย้อนกลับแทนที่จะพยายามขยายวิธีแก้ปัญหานั้น

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

ในทางกลับกัน ต้นทุนที่ประเมินไว้จะต้องไม่ต่ำกว่าต้นทุนที่แท้จริงที่สามารถได้รับจากการขยายโซลูชัน เพราะมิฉะนั้นอัลกอริทึมอาจย้อนกลับในขณะที่มีโซลูชันที่ดีกว่าโซลูชันที่ดีที่สุดที่พบมาแล้ว ดังนั้น อัลกอริทึมจึงต้องการขอบเขตบนของต้นทุนที่สามารถได้รับจากการขยายโซลูชันบางส่วน และขอบเขตบนนี้ควรมีค่าน้อยที่สุดเท่าที่จะเป็นไปได้

วิธีการที่แตกต่างไปจากแนวทางนี้เรียกว่าวิธีของ Hansen ซึ่งใช้วิธีช่วงเวลา[ 5 ]โดยพื้นฐานแล้วจะใช้ข้อจำกัดรูปสี่เหลี่ยมผืนผ้า

ฟังก์ชันขอบเขตตัวเลือกแรก

วิธีหนึ่งในการประเมินขอบเขตบนสำหรับคำตอบบางส่วนคือการพิจารณาข้อจำกัดแบบอ่อนแต่ละข้อแยกกัน สำหรับข้อจำกัดแบบอ่อนแต่ละข้อ จะถือว่าค่าสูงสุดที่เป็นไปได้สำหรับการกำหนดค่าใดๆ ให้กับตัวแปรที่ยังไม่ได้กำหนดค่าคือค่าใดค่าหนึ่ง ผลรวมของค่าเหล่านี้คือขอบเขตบน เนื่องจากข้อจำกัดแบบอ่อนไม่สามารถมีค่าสูงกว่านี้ได้ และมีความแม่นยำเพราะค่าสูงสุดของข้อจำกัดแบบอ่อนอาจได้มาจากการประเมินที่แตกต่างกัน กล่าวคือ ข้อจำกัดแบบอ่อนอาจมีค่าสูงสุดสำหรับx=เอ{\displaystyle x=a}ในขณะที่ข้อจำกัดอีกประการหนึ่งคือค่าสูงสุดสำหรับx={\displaystyle x=b}.

วิธีนี้[ 6 ]ดำเนินการอัลกอริทึม branch-and-bound บนn{\displaystyle n}ปัญหาที่n{\displaystyle n}คือจำนวนตัวแปร แต่ละปัญหาดังกล่าวเป็นปัญหาย่อยที่ได้จากการตัดตัวแปรออกไปตามลำดับx1,,xฉัน{\displaystyle x_{1},\ldots ,x_{i}}จากโจทย์เดิม พร้อมด้วยข้อจำกัดต่างๆ ที่เกี่ยวข้อง หลังจากแก้ปัญหาเรื่องตัวแปรแล้วxฉัน+1,,xn{\displaystyle x_{i+1},\ldots ,x_{n}}เมื่อแก้ปัญหาดังกล่าวได้แล้ว ต้นทุนที่เหมาะสมที่สุดสามารถนำมาใช้เป็นขอบเขตบนในการแก้ปัญหาอื่นๆ ต่อไปได้

โดยเฉพาะอย่างยิ่ง การประมาณการต้นทุนของโซลูชันที่มีxฉัน+1,,xn{\displaystyle x_{i+1},\ldots ,x_{n}}ต้นทุนของตัวแปรที่ไม่ได้กำหนดค่าจะถูกบวกเพิ่มเข้าไปในต้นทุนที่ได้จากตัวแปรที่ประเมินค่าแล้ว ในทางปฏิบัติแล้ว วิธีนี้เทียบเท่ากับการละเลยตัวแปรที่ประเมินค่าแล้วและแก้ปัญหาโดยใช้ตัวแปรที่ไม่ได้กำหนดค่า ยกเว้นว่าปัญหาหลังนี้ได้รับการแก้ไขแล้ว กล่าวโดยละเอียด ต้นทุนของข้อจำกัดแบบอ่อนที่มีทั้งตัวแปรที่กำหนดค่าแล้วและไม่ได้กำหนดค่าจะถูกประมาณการตามวิธีข้างต้น (หรือใช้วิธีอื่นใดก็ได้) ในขณะที่ต้นทุนของข้อจำกัดแบบอ่อนที่มีเฉพาะตัวแปรที่ไม่ได้กำหนดค่าจะถูกประมาณการโดยใช้คำตอบที่ดีที่สุดของปัญหาที่เกี่ยวข้อง ซึ่งทราบแล้วในขั้นตอนนี้

วิธีการค้นหาแบบตุ๊กตารัสเซียนดอลล์มีความคล้ายคลึงกับวิธีการเขียนโปรแกรมเชิงพลวัต (Dynamic Programming ) เช่นเดียวกับการเขียนโปรแกรมเชิงพลวัต วิธีการค้นหาแบบตุ๊กตารัสเซียนดอลล์จะแก้ปัญหาย่อยเพื่อแก้ปัญหาทั้งหมด แต่ในขณะที่การเขียนโปรแกรมเชิงพลวัตนำผลลัพธ์ที่ได้จากปัญหาย่อยมาผสานรวมกันโดยตรงเพื่อให้ได้ผลลัพธ์ของปัญหาทั้งหมด วิธีการค้นหาแบบตุ๊กตารัสเซียนดอลล์จะใช้ผลลัพธ์เหล่านั้นเป็นเพียงขอบเขตในระหว่างการค้นหาเท่านั้น

การกำจัดถัง

อัลกอริทึม การกำจัดแบบบัคเก็ตสามารถปรับใช้กับการเพิ่มประสิทธิภาพข้อจำกัดได้ ตัวแปรที่กำหนดสามารถถูกลบออกจากปัญหาได้โดยการแทนที่ข้อจำกัดแบบอ่อนทั้งหมดที่มีตัวแปรนั้นด้วยข้อจำกัดแบบอ่อนใหม่ ต้นทุนของข้อจำกัดใหม่นี้คำนวณโดยสมมติค่าสูงสุดสำหรับทุกค่าของตัวแปรที่ถูกลบออก กล่าวคือ ถ้าx{\displaystyle x}คือตัวแปรที่จะถูกลบออกซี1,,ซีn{\displaystyle C_{1},\ldots ,C_{n}}คือข้อจำกัดแบบอ่อนที่ควบคุมมันอยู่ และy1,,y{\displaystyle y_{1},\ldots ,y_{m}}ตัวแปรของพวกเขายกเว้นx{\displaystyle x}ข้อจำกัดแบบอ่อนตัวใหม่นี้กำหนดโดย:

ซี(y1=เอ1,,yn=เอn)=สูงสุดเอฉันซีฉัน(x=เอ,y1=เอ1,,yn=เอn).{\displaystyle C(y_{1}=a_{1},\ldots ,y_{n}=a_{n})=\max _{a}\sum _{i}C_{i}(x=a,y_{1}=a_{1},\ldots ,y_{n}=a_{n}).}

วิธีการกำจัดแบบบัคเก็ต (Bucket elimination) ทำงานโดยมีการเรียงลำดับตัวแปร (ตามอำเภอใจ) ตัวแปรแต่ละตัวจะเชื่อมโยงกับบัคเก็ตของข้อจำกัด โดยบัคเก็ตของตัวแปรนั้นจะประกอบด้วยข้อจำกัดทั้งหมดที่ตัวแปรนั้นมีค่าสูงสุดในลำดับ วิธีการกำจัดแบบบัคเก็ตจะดำเนินการจากตัวแปรสุดท้ายไปยังตัวแปรแรก สำหรับแต่ละตัวแปร ข้อจำกัดทั้งหมดในบัคเก็ตจะถูกแทนที่ตามวิธีการข้างต้นเพื่อลบตัวแปรนั้นออก จากนั้นข้อจำกัดที่ได้จะถูกนำไปใส่ในบัคเก็ตที่เหมาะสม

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • Bertsekas, Dimitri P. (1982). การหาค่าเหมาะสมที่สุดแบบมีข้อจำกัดและวิธีการตัวคูณลากรางจ์ นิวยอร์ก: Academic Press. ISBN 0-12-093480-9.
  • Dechter, Rina (2003). การประมวลผลข้อจำกัด . Morgan Kaufmann. ISBN 1-55860-890-7.
  • Madsen, K.; Nielsen, HB; Tingleff, O. (มีนาคม 2004). การหาค่าเหมาะสมที่สุดภายใต้ข้อจำกัด (PDF) (รายงานทางเทคนิค) (  ฉบับที่ 2). IMM/DTU. 4213. สืบค้นเมื่อ6 กันยายน 2025 .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Constrained_optimization&oldid=1341784298 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเพิ่มประสิทธิภาพแบบมีข้อจำกัด

ใน การหาค่าเหมาะสม ที่สุดทางคณิตศาสตร์การหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด (ในบางบริบทเรียกว่าการหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด )...

ความสัมพันธ์กับปัญหาการแก้ข้อจำกัด

ปัญหาการหาค่าเหมาะสมที่สุดแบบมีข้อจำกัด (COP) เป็นการขยายความที่สำคัญของ แบบจำลอง ปัญหาความพึงพอใจตามข้อจำกัด แบบคลาสสิก (CSP) [ 1 ] COP เป็น CSP ที่มี ฟังก์ชันวัตถุประสงค์ ที่ต้องหาค่าเหมาะสมที่สุด...

รูปแบบทั่วไป

ปัญหาการลดค่าแบบมีข้อจำกัดทั่วไปสามารถเขียนได้ดังนี้: [ 2 ]

วิธีการแก้ปัญหา

อัลกอริทึมการเพิ่มประสิทธิภาพแบบไม่มีข้อจำกัดจำนวนมากสามารถปรับให้เข้ากับกรณีที่มีข้อจำกัดได้ โดยส่วนใหญ่มักใช้ วิธีการลงโทษ อย่างไรก็ตาม ขั้นตอนการค้นหาที่ดำเนินการโดยวิธีแบบไม่มีข้อจำกัดอาจไม่เหมาะสมสำหรับปัญหาที่มีข้อจำกัด ส่งผลให้ไม่มีการบรรจบกัน...