- Lecture 6
Lecture 6
กําหนดการเชิงเสน กําหนดการเชิงเสน
( (Linear Programming) Linear Programming)
Lecture 6 Lecture 6 - - PowerPoint PPT Presentation
Lecture 6 Lecture 6 (Linear Programming) Linear Programming) (
( (Linear Programming) Linear Programming)
อสมการเสนตรงสองตัวแปรเขียนไดหลายแบบดังนี้
a, b, c = คาคงที่ และ a,b ≠ 0
≥ + + > + + ≤ + + < + + c by ax c by ax c by ax c by ax
คําตอบของสมการเสนตรง y = mx + c คือจุดทุกจุดบน
เสนตรงของสมการ
คําตอบของอสมการเสนตรง y < mx + c คือจุดทุกจุดบน
พื้นที่ใตเสนตรงของสมการ y = mx + c
คําตอบของอสมการเสนตรง y ≤ mx + c คือจุดทุกจุดบน
เสนตรงของสมการ y = mx + c รวมถึงจุดทุกจุดบนพื้นที่ใต เสนตรงดังกลาว
คําตอบของอสมการเสนตรง y > mx + c คือจุดทุกจุดบน
พื้นที่เหนือเสนตรงของสมการ y = mx + c
คําตอบของอสมการเสนตรง y ≥ mx + c คือจุดทุกจุดบน
เสนตรงของสมการ y = mx + c รวมถึงจุดทุกจุดบนพื้นที่ เหนือเสนตรงดังกลาว
กําหนดการเชิงเสน คือ ระเบียบวิธีทางคณิตศาสตร
ฟงกชั่นที่เราตองการหาคําตอบเรียกวาฟงกชั่น
หาคาสูงสุดของฟงกชั่น P = 3x + y ภายใตเงื่อนไข
ดังตอไปนี้
12 3 2 8 2 ≥ ≥ ≤ + ≤ + y x y x y x
Objective function: P = 3x + y y = -3x + P
คําตอบของสมการคือจุดสัมผัส (tangent point) ระหวาง
เสนตรง y = -3x + P กับพื้นที่ที่เปนไปได (feasible region)
คําตอบของสมการยังสามารถหาไดโดยการหา
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
4 4 3 11 2 3 3 12 4 3 3 = + = = + = = + = = + = D Z C Z B Z A Z
เกษตรกรรายหนึ่งใชปุยสองประเภทในการเพาะปลูก โดยปุยแต
ละประเภทมีราคาตอกระสอบและสวนประกอบของธาตุอาหารตอ กระสอบดังแสดงในตาราง ถาเกษตรกรรายนี้ตองการทําตนทุน ใหต่ําสุดโดยที่ยังคงจํานวนธาตุอาหารเอาไวใหไมต่ํากวาที่ กําหนดไว เขาควรจะซื้อปุยอยางละกี่กระสอบ
ให x แทนจํานวนปุยสําหรับพืชที่โตเร็ว และ y แทน
ฟงกชั่นเปาหมายคือ C = 8x + 6y
ฟงกชั่นนี้ใหคาต่ําสุดที่จุด (40,20) ฟงกชั่นนี้ไมมีคาสูงสุดเนื่องจากพื้นที่ที่เปนไปไดไร
ขอบเขต
เมื่อพื้นที่ที่เปนไดกวางขวางมาก จะทําใหฟงกชั่นเปาหมายเพิ่ม
คาไดไมจํากัด
เงื่อนไข
80 2 200 2 5 160 2 3 ≥ ≥ ≥ + ≥ + ≥ + y x y x y x y x
ทําใหฟงกชั่น Z = 8x - 3y มีคาต่ําสุดภายใต
x + y ≤ 5 x ≥ 0 y ≥ 0
ถาฟงกชั่นเปาหมายเลื่อนไปทับซอนกับสวนใดสวน
ตัวอยาง: หาคาต่ําสุดของ Z = 2x + 4y ภายใต
x - 4y ≤ 8 x + 2y ≤ 16 x,y ≥ 0
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
(max) 32 8 4 2 (max) 32 4 4 8 2 8 2 4 2 = + = = + = = + = C Z B Z A Z
เปนการหาคําตอบของระบบสมการเสนตรงภายใต
แทนคาคําตอบที่เปนไปไดพื้นฐาน (basic feasible
solution) ในฟงกชั่นเปาหมาย (objective function) แลวดูวาคาที่ไดตรงตามเปาหมายหรือไม
ถาไมระบบก็จะเคลื่อนที่ไปยังคําตอบถัดไปจนกระทั่งได
คําตอบที่ตองการ
ปญหากําหนดการเชิงเสนแบบมาตรฐานนั่นคือการหาคาสูงสุด
(maximum) ของ ภายใตเงื่อนไขดังนี้
โดย x and b ≥ 0
+ + + ≤ + + + ≤ + + + ≤ + + +
m n mn m m n n n n n n
b x a x a x a b x a x a x a b x a x a x a b x a x a x a
2 1 1 1 1 2 12 1 11 1 1 2 12 1 11 1 1 2 12 1 11
. .
n nx
2 1 1
สมมติวาอสมการเงื่อนไขอยูในรูปมาตรฐาน เชน
2x + 3y ≤ 12 ⇔ (2) x,y ≥ 0 (1) และ (2) สามารถเขียนในรูปของสมการดังนี้ ถา (1) เปนจริง 2x + y + s = 8; s ≥ 0 ตองเปนจริงดวย ถา (2) เปนจริง 2x + 3y + t = 12; t ≥ 0 ตองเปนจริงดวย s และ t คือตัวแปรสแล็ค ถา x = y = 0 แลว s = 8, t = 12 ⇐ นี่คือคําตอบที่เปนไปได
พื้นฐาน
ตองการหาคาสูงสุดของ Z = 3x + y ภายใต
2x + y ≤ 8 ⇔ 2x + y + s = 8 2x + 3y ≤ 12 ⇔ 2x + 3y + t = 12 x,y ≥ 0
เขียนระบบสมการดังกลาวไดใหมเปน
2x + y + s + 0t +0Z = 8 2x + 3y + 0s + t +0Z= 12
ตาราง simplex เบื้องตนจะเปนดังนี้
x x x x y y y y s s s s t t t t Z Z Z Z x 2 1 1 8 s 2 3 1 12 Z
1 6
คําตอบที่มีอยางนอยตัวไมทราบคาสองตัวมีคาเปน
ตัวไมทราบคาใน BFS ที่เปนศูนยคือตัวแปรที่ไมใชฐาน
(non-basic variable)
ตัวไมทราบคาใน BFS ที่ไมเปนศูนยคือตัวแปรฐาน
(basic variable)
เริ่มตนโดยการเปรียบเทียบคาสัมประสิทธิ์ในแถว
สุดทายของตารางเบื้องตน (ยกเวนตัวสุดทายซึ่งเปนคา สัมประสิทธิ์ของ Z) ซึ่งเราเรียกวา indicators
คอลัมนของ indicator ที่เปนลบมากที่สุด (pivot column) จะ
บงชี้ถึงตัวแปรใหมที่จะเขามาแทนที่ตัวแปรฐานเดิม (entering variable) (เลือกตามใจชอบถามี pivot column มากกวาหนึ่ง)
x จากตารางกอนหนา
ถาเรานําตัวเลขที่เปนบวกใน pivot column ทุกตัวยกเวนแถว
สุดทายมาเปนตัวหารและนําตัวเลขในคอลัมนสุดทายของแตละ แถวเปนตัวตั้ง) แถวที่มีผลหารนอยที่สุด (pivot row) จะบงชี้ถึง ตัวแปรฐานที่จะออกไป (departing variable)
หลังจากนั้นเราจะทําตัวเลขในตารางที่จุด pivot ใหเปน 1
สวนตัวที่เหลือในคอลัมนเดียวกันใหเปน 0 โดยใชวิธีการ เดียวกับ reduced matrix
ผลลัพธที่ไดจะเปนตาราง simplex ใหม โดยมี BFS
เปลี่ยนไปจากเดิม (x=4, y=0, s=4, t=0) x x x x y y y y s s s s t t t t Z Z Z Z x 1 .5 .5 4 s 2
1 4 Z .5 1.5 1 12
ถาตัว indicators ของตารางใหมมีคาไมเปนลบ
ถาไมก็เริ่มตนกระบวนการทั้งหมดใหมจนกวาจะได จากตาราง simplex ที่สอง เราไดคําตอบของระบบ
สมการแบบมีเงื่อนไขแลว นั่นคือ Z จะมีคาสูงสุด (12) เมื่อ x = 4 และ y = 0
หาคาสูงสุดของ ภายใตเงื่อนไข
;x1, x2 ≥ 0
คาสูงสุดของ Z = 95
+ − ≤ + ≤ + 12 3 35 2 20
2 1 2 1 2 1
x x x x x x
− − 12 35 20 1 4 5 1 3 1 1 2 1 1 1
3 2 1 3 2 1 2 1
Z s s s R Z s s s x x B
− − 95 52 15 5 1 1 3 1 4 5 1 1 1 1 2 1
3 1 2 3 2 1 2 1
Z s x x R Z s s s x x B
2 1
4 5 x x Z + =
ตองการหาคาสูงสุดของ Z = x + 2y ภายใตเงื่อนไข
ดังตอไปนี้
x + y ≤ 9 ⇔ x + y + s = 9 x - y ≥ 1 ⇔ x – y - a + b = 1 x, y, s, a, b ≥ 0 s และ a เปน slack variable b เปน artificial variable
x=y=0 ไมอยูใน BFS (x - y - a = 1 จะไมเปนจริง ดังนั้นเราจึง
ตองบวก b เขาไป)
BFS: x=y=a=0, s=9, b=1
แทนที่จะหาคาสูงสุดของ Z ใหหาคาสูงสุดของ W
x + y ≤ 9 ⇔ x + y + s = 9 x - y ≥ 1 ⇔ x – y - a + b = 1 x, y, s, a, b ≥ 0
เขียนระบบสมการดังกลาวไดใหมเปน
x + y + s + 0a + 0b +0W = 9 x - y + 0s - a + b + 0W= 12
ตาราง simplex แรกจะเปนดังนี้ กอนเขากระบวนการ simplex แบบปกติ ใหใชเทคนิค
reduced matrix ทําใหสัมประสิทธิ์ของตัว artificial variable ในแถวสุดทายเปน 0 และสัมประสิทธิ์ของ W เปน 1
เนื่องจากใน BFS นั้น b = 1 ⇒ W = -M
x x x x y y y y s s s s a a a a b b b b W W W W S 1 1 1 9 b 1
1 1 W
M 1
เขากระบวนการ simplex แบบปกติ จนกระทั่ง b
ทําไปเรื่อยจนกระทั่งตัว indicators ไมเปนลบ เรา
เพิ่ม artificial variable เขาไปแตไมตองเพิ่ม slack
x + 2y + 2z = 6 x + 2y + 2z + b = 6
x,y,z ≥ 0
W = Z - Mb - Mc -x - 3y + 2z + Mb + Mc + W = 0 b และ c เปน artificial variable a เปน slack variable
การหาคาต่ําสุดของ f(x) คือการหาคาสูงสุดของ -f(x)
min f = - max(-f)
ตัวอยาง: หาคาต่ําสุดของ
ภายใตเงื่อนไข ดังนี้
2 1
2x x Z + =
≥ + − ≥ + − , 2 1 2
2 1 2 1 2 1
x x x x x x
− + − − − M M M M M W t t R W t t s s x x B 3 1 2 2 3 1 2 1 1 1 1 1 1 1 1 2
2 1 2 1 2 1 2 1
+ − − − − − − 4 1 2 2 3 1 1 1 1 1 1 2 1 1 1 1
1 2 2 1 2 1 2 1
M M W s x R W t t s s x x B
BSF จะอยูในสภาวะลดรูปก็ตอเมื่อตัวแปรฐานตัว
ในตาราง simplex ชุดใหม
BFS ชุดใหมใหม = BFS ชุดเดิม เพียงแตตัวแปรฐาน (basic
variable) จะกลายมาเปนตัวแปรที่ไมใชฐาน (non-basic variable)
BFS ชุดใหมจะไมทําใหคาฟงกชั่นเปาหมายเพิ่มขึ้นจากเดิม
สภาวะลดรูปของ BFS จะเกิดขึ้นเมื่อผลหารสองตัว
เกิดขึ้นเมื่อไมมีผลหารที่เปนไปไดในตาราง simplex ตัวอยาง: หาคาสูงสุดของ
ภายใตเงื่อนไข
3 2 1
4 x x x Z − + =
≤ + + − ≤ − + − , , 12 6 3 30 2 6 5
3 2 1 3 2 1 3 2 1
x x x x x x x x x
30 1 1
6 3 1
2
5
s s
2 1 3 2 1 2 1
R Z s s s x x B
4 6 1 9
1
14
4 3 7 3 1 3 1 2 1 3 2 1 2 1
Z x s R Z s s s x x B
อาจเกิดขึ้นเมื่อ BFS ในตาราง simplex ตาราง
เช็คไดโดยใหตัวแปรดังกลาวเปนตัวแปรเขา (entering
variable) แลวดูวาตาราง simplex ใหมไดคําตอบชุด ใหมที่ใหคาสูงสุดของฟงกชั่นเทาเดิมหรือไม
เมื่อกระบวนการแบบ simplex ไมสามารถกําจัดตัวแปร
artificial ไดหมด
ตัวอยาง: หาคาสูงสุดของ ภายใตเงื่อนไขดังนี้
2 13
2 x x Z =
≤ + ≥ + − , 1 2
2 1 2 1 2 1
x x x x x x
− − + − − − M M M M W s t R W t s s x x B 2 1 1 2 1 1 1 1 2 1 1 1 1
2 1 1 2 1 2 1
+ + − − − − M M M M W s t R W t s s x x B 1 1 1 2 1 1 1 1 1 1 1 1 1 2
2 1 1 2 1 2 1
Natt Koowattanatianchai 37
Email: Email: Email: Email: Email: Email: Email:
fbusnwk@ku.ac.th fbusnwk@ku.ac.th fbusnwk@ku.ac.th fbusnwk@ku.ac.th fbusnwk@ku.ac.th fbusnwk@ku.ac.th fbusnwk@ku.ac.th
Homepage: Homepage: Homepage: Homepage: Homepage: Homepage: Homepage:
http:// http:// http:// http:// http:// http:// http://fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm fin.bus.ku.ac.th/nattawoot.htm
Mobile: Mobile: Mobile: Mobile: Mobile: Mobile: Mobile:
087 087 087 087 087 087 087-
5393525 5393525 5393525 5393525 5393525 5393525 5393525
Office: Office: Office: Office: Office: Office: Office:
ชั้น ชั้น ชั้น ชั้น ชั้น ชั้น ชั้น 9 9 9 9 9 9 9 9 ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ ตึกใหมคณะบริหารธุรกิจ