204512-53/lecture9
จดบันทึกคำบรรยายโดย:
นายนววิธ นวลขาว รหัสนักศึกษา 5214550162
นายธีระชัย ราชมณี รหัสนักศึกษา 5214550138
นายอรรณพ กอบกิจ รหัสนักศึกษา 5214550359
Matrix Chain Multiplication
โจทย์ของการคูณเมตริกซ์คือ ต้องการคูณเมตริซ์ n ตัว ยิ่ง n มากการจัดการคูณยิ่งลำบาก
เมื่อ m คือขนาดของเมตริกซ์
ถ้า Anm × Bmp ความเร็วในการคูณเมตริกซ์ A B = O (n×m×p)
1.ดังนั้นการจัดลำดับของการคูณจะมีผลต่อความเร็ว โดยการจัดลำดับนั้น ก็คือการจัดกลุ่มของการคูณ (Associative)
2.รูปแบบการคูณครั้งสุดท้ายมีได้ n-1 แบบ
ในการจัดกลุ่มของการคุณ ต้องดูกรณีที่เป็นไปได้ว่ามีกี่กรณีที่สามารถนำเมตริซ์มาคูณกันได้
พิจารณา 
 เมื่อเริ่มแบ่งกลุ่มจะได้ว่า
จากนั้นคูณหาผลลัพธ์เพื่อดูว่าการจัดกลุ่มแบบไหนจัดการได้ง่ายสุด
สมมุติให้มีการคูณกันของ 5 เมตริกซ์
เราสามารถแบ่งแยกออกเป็นปัญหาย่อยได้
เมื่อเราแบ่งกลุ่มการคูณออกไปเรื่อยๆ จะสังเกตุว่าเกิดรูปแบบการคูณขึ้นซ้ำ ซึ่งหากเราวิเคราะห์และจัดการกับกรณีที่เกิดซ้ำๆได้ จะมีผลในเรื่องของความเร็ว หมายความว่าจำนวนครั้งในการคูณก็จะลดลง
ดังนั้นวิธีการที่จะนิยามปัญหานั้นเริ่มด้วย
1.แตกปัญหาใหญ่ออกมาเป็นปัญหาย่อยๆ
2.แปลงปัญหาย่อยให้อยู่ในรูป abstract
เรานิยามปัญหานี้ว่า
กำหนดให้ Xij แทนจำนวนครั้งของการคูณที่น้อยที่ใดในการคำนวณ 
m : คือจำนวนครั้ง
ตัวอย่าง
A1 × A2 × A3 × A4 × A5 ให้หา X15 กำหนดค่า row/column ของแต่ละเมตริกซ์เป็น
(10×100) × (100×20) × (20×400) × (400×200) × (200×100) ตามลำดับ
วิธีที่ง่ายคือตีตาราง
เมื่อ i=j คือการคูณตัวเองผลลัพธ์เป็นศูนย์
สังเกตุว่า 
 หรือ 
 ค่าจะเท่ากัน ในการคิดเราสามารถคิดตัวใดตัวหนึ่งแทนได้ 
จากตารางจึงคิดแค่ส่วนเดียวคือส่วนที่ไม่ระบายสี เทคนิคที่ช่วยจำกรณีเกิดการซ้ำของการคูณในการทำ recursion คือ Memorization
Linear Programming
แบบจำลองทางคณิตศาสตร์วิเคราะห์ปัญหาการวางแผน(planning)
การผลิตและการจัดการภายใต้ข้อจำกัด (Subject to) ของปัจจัยการผลิตชนิดต่างๆ เพื่อเลือกทางเลือกที่มีความเหมาะสมมากที่สุด
(อันได้แก่ กำไรสูงสุดหรือต้นทุนต่ำสุด)
ทบทวน
สมการเชิงเส้น คือ ความสัมพันธ์ของตัวแปร 
 เช่น
ตัวอย่าง
โรงงานรับผลิตรองเท้าข้างซ้ายและข้างขวา ให้
S.B.  		
		ต้องผลิตจำนวนรองเท้าข้างซ้ายเท่ากับข้างขวา
	จำนวนเพชรที่ใช้ในการผลิต คือ ข้างซ้าย 2 เม็ต ข้างขวา 1 เม็ด โดยมีจำนวนเพชรทั้งหมด1000 เม็ด
Linear Programming: Max Flow
f1, ….,f7 โดย f1, ….f7 ≥ 0
Objective : max f1+f6
	f1 ≤ 20, f2 ≤ 10, f6 ≤ 20
	f6 = f2+f4 , f6+f4 = f7+f5
Linear Programiming : Max Flow
	Node V = { 1,2…..,n } , source S, Sink 
Capacity C : VxV -> R
ตัวแบ่ง : V u,v f(u,v) แทน flow จากโนด u ไป v
Subject to
                       ∀ u,v   f (u,v)  = - f (v,u)
                       ∀ u,v   f (u,v)  ≤  C (u,v)
                       ∀ u,v ไม่เป็นสมาชิก {s,t}   
Shortest Paths by Linear Programming
ให้กราฟ G = (V,E) , Source S, Destination t, ความยาว l : E-> R
Maximize D(t)
เงื่อนไข








