29
259201 Computer Programming for Engineers Week 8 Engineering Problem#1

259201 Computer Programming for Engineers

Embed Size (px)

DESCRIPTION

259201 Computer Programming for Engineers. Week 8 Engineering Problem#1. ปัญหาด้านการจัดการสินค้าคงคลัง (Inventory Problem). การผลิต (Production) คือ การแปลงสภาพของวัตถุดิบ ด้วยกระบวนการต่างๆ เพื่อให้ได้มาซึ่งสินค้าหรือผลิตภัณฑ์ที่ตรงตามความต้องการของลูกค้า โดยอาศัยทรัพยากรต่างๆในระบบการผลิต - PowerPoint PPT Presentation

Citation preview

Page 1: 259201 Computer Programming for Engineers

259201Computer Programming for Engineers

Week 8 Engineering Problem#1

Page 2: 259201 Computer Programming for Engineers

ปั�ญหาด้�านการจั�ด้การสิ�นค้�าค้งค้ลั�ง (Inventory Problem)

การผลั�ต (Production) ค้�อ การแปัลังสิภาพของวั�ตถุ�ด้�บ ด้�วัยกระบวันการต!างๆ เพ�$อให�ได้�มาซึ่)$งสิ�นค้�าหร�อผลั�ตภ�ณฑ์,ที่.$ตรงตามค้วัามต�องการของลั/กค้�า โด้ยอาศั�ยที่ร�พยากรต!างๆในระบบการผลั�ต

วั�ตถุ�ด้�บ จั)งเปั2นปั�จัจั�ยสิ3าค้�ญของระบบการผลั�ตในภาค้อ�ตสิาหกรรม แลัะเปั2นสิ!วันหน)$งในการก3าหนด้ราค้าของสิ�นค้�า

ด้�งน�4น การจั�ด้การเพ�$อลัด้ต�นที่�นของการจั�ด้การวั�ตถุ�ด้�บ จั)งเปั2นอ.กที่างเลั�อกหน)$งในการเพ�$มโอกาสิในการที่3าก3าไรให�แก!องค้,กร

Page 3: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

เราสิามารถุแบ!งต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง ออกเปั2น 3 ปัระเภที่หลั�กๆ ได้�แก! ต�นที่�นราค้าของวั�ตถุ�ด้�บ (บาที่/ชิ้�4น) ต�นที่�นในการสิ�$งซึ่�4อแต!ลัะค้ร�4ง (บาที่/ค้ร�4ง )

เชิ้!น ต�นที่�นการขนสิ!ง เปั2นต�น ต�นที่�นในการเก6บร�กษาวั�ตถุ�ด้�บ (บาที่/ชิ้�4น/ปั8 )

เชิ้!น ต�นที่�นค้!าเชิ้!าพ�4นที่.$เก6บสิ�นค้�า , เง�นเด้�อนของพน�กงานที่.$ด้/แลัค้ลั�งสิ�นค้�า เปั2นต�นหน!วัยของต�นที่�นในการเก6บร�กษาวั�ตถุ�ด้�บ อาจัเปั2น บาที่/ชิ้�4น/เด้�อน หร�อ บาที่/ชิ้�4น/วั�น ก6ได้�ข)4นอย/!ก�บค้วัามเหมาะสิมของการหม�นเวั.ยนวั�ตถุ�ด้�บในค้ลั�ง

Material Cost

Ordering Cost

Holding Cost

Page 4: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

ร�านขายก9วัยเต.:ยวั วั�เค้ราะห,ต�นที่�นที่.$เก�ด้ข)4นของลั/กชิ้�4นหม/ พบวั!า ในการซึ่�4อแลัะเก6บร�กษาลั/กชิ้�4นหม/ของที่.$ร �าน ม.ต�นที่�นต!างๆ ด้�งน.4 ต�นที่�นค้!าลั/กชิ้�4นหม/ ก�โลักร�มลัะ 140 บาที่ ในการซึ่�4อลั/กชิ้�4นหม/แต!ลัะค้ร�4ง เสิ.ยค้!าน34าม�นรถุ 15 บาที่/ค้ร�4ง ต/�เย6นที่.$ใชิ้�ในการเก6บลั/กชิ้�4น ก�นไฟเฉลั.$ยวั�นลัะ 25 บาที่ แลัะสิามารถุเก6บ

ลั/กชิ้�4นได้�สิ/งสิ�ด้ 100 ก�โลักร�ม ค้�ด้เปั2นค้!าไฟ = 25/100 = 0.25 บาที่/กก./วั�น

เจั�าของร�านวั�เค้ราะห,ต�นที่�นลั/กชิ้�4นหม/ ได้�ด้�งน.4 Material Cost = ค้!าลั/กชิ้�4นหม/ = 140 บาที่/ก�โลักร�ม Ordering Cost = ค้!าน34าม�นในการซึ่�4อลั/กชิ้�4นแต!ลัะค้ร�4ง = 15 บาที่ /

ค้ร�4ง Holding Cost = ค้!าไฟต/�เย6นที่.$ใชิ้�เก6บลั/กชิ้�4น = 0.25 บาที่ / กก . /

วั�น

Page 5: 259201 Computer Programming for Engineers

เจั�าของร�านพบวั!า โด้ยเฉลั.$ยแลั�วัใน 1 เด้�อน จัะต�องใชิ้�ลั/กชิ้�4นหม/ในการที่3าก9วัยเต.:ยวั 60 ก�โลักร�ม เจั�าของร�านจัะซึ่�4อลั/กชิ้�4นหม/ค้ร�4งลัะก.$ก�โลักร�ม ? แลัะค้วัรซึ่�4อเด้�อนลัะก.$ค้ร�4ง ? จั)งจัะที่3าให�ต�นที่�นต3$าที่.$สิ�ด้

หากก3าหนด้ให� จั3านวันลั/กชิ้�4นหม/ที่.$อย/!ในต/�เย6นโด้ยเฉลั.$ยแลั�วั ม.จั3านวันเที่!าก�บ ค้ร)$งหน)$งของการสิ�$งซึ่�4อแต!ลัะค้ร�4ง ซึ่�4อค้ร�4งเด้.ยวั ค้ร�4งลัะ 60 ก�โลักร�ม? ซึ่�4อ 2 ค้ร�4ง ค้ร�4งลัะ 30 ก�โลักร�ม ? ซึ่�4อ 3 ค้ร�4ง ค้ร�4งลัะ 20 ก�โลักร�ม? ซึ่�4อ 4 ค้ร�4ง ค้ร�4งลัะ 15 ก�โลักร�ม?

การสั่��งซื้อแบบไหนที่��จะที่�าให�ต้�นที่�นต้��าที่��สั่�ด???......

......

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 6: 259201 Computer Programming for Engineers

เจั�าของร�านจั)งได้� ใชิ้�โปัรแกรม MATLAB ชิ้�$อ meatball.m ในการค้3านวัณค้!าใชิ้�จั!ายที่.$เก�ด้ข)4น ด้�งน.4

N = input('Number of Ordering (order/month): ');Q = input('Quantity per order (unit/order): ');M = input('Input material cost (baht/unit): ');O = input('Input ordering cost (baht/order): ');H = input('Input holding cost (baht/unit/day): ');MC = Q*N*M;OC = N*O;HC = Q/2*H*30;TC = MC+OC+HC;fprintf('Total Cost is: %.0f baht/month \n',TC)

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 7: 259201 Computer Programming for Engineers

เจั�าของร�านที่3าการ Trial and error ใสิ!จั3านวันค้ร�4ง แลัะปัร�มาณการซึ่�4อแต!ลัะค้ร�4ง ได้�ผลัลั�พธ์, ด้�งน.4

Minimum cost

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 8: 259201 Computer Programming for Engineers

จัะม.วั�ธ์.ใด้บ�าง ที่.$เจั�าของร�าน ไม!ต�องเสิ.ยเวัลัาที่ด้ลัองสิ�!มค้!าต�วัเลัขใสิ!ลังไปัเอง?

โปัรแกรมสิามารถุหาค้3าตอบที่.$เปั2นต�นที่�นที่.$ต3$าที่.$สิ�ด้ ได้�อย!างไร???

สิ�งเกต�จั3านวันการสิ�$งซึ่�4อ แลัะปัร�มาณการสิ�$งซึ่�4อต!อค้ร�4ง ที่.$สิ�มพ�นธ์,ก�บต�นที่�น

ปร�มาณการสั่��งซื้อ

จ�านวนคร�งที่��ซื้อ

ต้�นที่�นว�ต้ถุ�ด�บ

ต้�นที่�นในการสั่��งซื้อ

ต้�นที่�นการจ�ดเก#บ

ต้�นที่�นรวม

60 1 84

00 15 225

86 40

30 2 84

00 30

112 5

8542.

5

20 3 84

00 45 75

85 20

15 4 84

00 60

562. 5

8516.

25

12 5 84

00 75 45

85 20

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 9: 259201 Computer Programming for Engineers

จั�ด้ที่.$ต�นที่�นต3$าที่.$สิ�ด้จัากสิถุานการณ,ที่�4งหมด้ที่.$ที่ด้สิอบ

หมายเหต�: เน�$องจัากต�นที่�นค้!า วั�ตถุ�ด้�บ ม.ค้!าเที่!าก�นหมด้ในที่�กกรณ. จั)งไม!ได้�น3ามาพ�จัารณาในการเข.ยนกราฟ

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 10: 259201 Computer Programming for Engineers

เจั�าของร�าน จั)งที่ด้ลัองเปัลั.$ยนปัร�มาณการสิ�$งซึ่�4อต!อค้ร�4งไปัเร�$อยๆ ต�4งแต! 1 kg – 60 kg แลัะเข.ยนกราฟ

จั�ด้ที่.$ต�นที่�นต3$าที่.$สิ�ด้จัากสิถุานการณ,ที่�4งหมด้ที่.$ที่ด้สิอบ

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 11: 259201 Computer Programming for Engineers

เจั�าของร�านได้�พ�ฒนาโปัรแกรม จัากโปัรแกรมเด้�มที่.$ม.อย/! โด้ยให�โปัรแกรมเพ�$มจั3านวันการสิ�$งซึ่�4อลั/กชิ้�4นหม/ที่.ลัะ 1 kg เพ�$อค้3านวัณหาต�นที่�นที่.$เก�ด้ข)4นที่�4งหมด้ แลั�วัเลั�อกปัร�มาณการสิ�$งซึ่�4อที่.$ที่3าให�ต�นที่�นต3$าที่.$สิ�ด้

เจั�าของร�านก9วัยเต.:ยวั ค้วัรออกแบบให�โปัรแกรมที่3างานอย!างไรบ�าง???

เม�$อต�องการผลัลั�พธ์,ของโปัรแกรม ด้�งน.4

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 12: 259201 Computer Programming for Engineers

OutputQ = ปัร�มาณในการซึ่�4อลั/กชิ้�4นต!อค้ร�4ง (kg/order)N = จั3านวันค้ร�4งในการซึ่�4อลั/กชิ้�4นต!อเด้�อน (order/month)TC = ต�นที่�นรวัมในการจั�ด้ซึ่�4อจั�ด้เก6บลั/กชิ้�4น (baht/month)

InputD = ปัร�มาณลั/กชิ้�4นที่.$ต�องการใชิ้�ตลัอด้ที่�4งเด้�อน = 60 kg/monthM = ต�นที่�นลั/กชิ้�4นต!อก�โลักร�ม = 140 baht/kgO = ต�นที่�นในการซึ่�4อลั/กชิ้�4นต!อค้ร�4ง = 15 baht/orderH = ต�นที่�นในการจั�ด้เก6บลั/กชิ้�4น (โด้ยเฉลั.$ยม.ลั/กชิ้�4นอย/!ในต/�เย6น Q/2) = 0.25 baht.kg/day หร�อ = 0.25 baht/kg/day * 30 day/month = 7.5 baht/month

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 13: 259201 Computer Programming for Engineers

วั�ธ์.ที่.$ 1: ให�โปัรแกรมค้3านวัณต�นที่�นกรณ.ที่.$สิ� $งซึ่�4อลั/กชิ้�4นหม/

ต�4งแต! 1 kg – 60 kg แลัะเก6บค้!าต�นที่�น ปัร�มาณสิ�$งซึ่�4อ แลัะจั3านวันการสิ�$งซึ่�4อ ที่.$ต3$าที่.$สิ�ด้ไวั�

สิร�ปัปัร�มาณสิ�$งซึ่�4อ จั3านวันค้ร�4งในการสิ�$งซึ่�4อ แลัะต�นที่�นที่.$ต3$าที่.$สิ�ด้

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 14: 259201 Computer Programming for Engineers

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 1

Order QuantityOrder Quantity

Annual CostAnnual Cost

Holding Cost Curve

Holding Cost Curve

Total Cost Curve

Total Cost Curve

Order (Setup) Cost CurveOrder (Setup) Cost Curve

Optimal Optimal Order Quantity (Q*)Order Quantity (Q*)

TC(1)

TC(2)

minTC

TC(3)

หาต�นที่�นที่.$เก�ด้ข)4นในที่�กๆ จั�ด้ แลั�วัเปัร.ยบเที่.ยบวั!าเปั2นค้!าต3$าสิ�ด้หร�อไม!

......

...... ........................

Page 15: 259201 Computer Programming for Engineers

D = input('Input demand of material (unit/month): ');M = input('Input material cost (baht/unit): ');O = input('Input ordering cost (baht/order): ');H = input('Input holding cost (baht/unit/day): ');minTC = 100000;for i = 1:D Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2*H*30; TC = MC+OC+HC; if TC < minTC minTC = TC; Qo = Q; %Qo คอ ปร�มาณการสั่��งซื้อที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด No = N; %No คอ จ�านวนคร�งในการซื้อของที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด TCo = TC; % TCo คอ ต้�นที่�นที่��ต้��าที่��สั่�ดที่��เก�ดข%น endendfprintf('The best quantity is: %.2f kg/order \n',Qo)fprintf('Number of order is: %.2f order/month \n',No)fprintf('Total Cost is: %.0f baht/month \n',TCo)

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 1

Page 16: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

วั�ธ์.ที่.$ 2: ให�โปัรแกรมค้3านวัณต�นที่�นกรณ.ที่.$สิ� $งซึ่�4อลั/กชิ้�4นหม/ เร�$มจัาก 1 kg โปัรแกรมค้3านวัณต�นที่�นที่.$เก�ด้ข)4น จัากปัร�มาณการสิ�$งซึ่�4อน�4นๆ โปัรแกรมที่3าการเปัร.ยบเที่.ยบ วั!าต�นที่�นที่.$เก�ด้ข)4นต3$ากวั!าปัร�มาณ

การสิ�$งซึ่�4อก!อนหน�าน�4นหร�อไม!หากต�นที่�นที่.$เก�ด้ข)4นต3$ากวั!าปัร�มาณสิ�$งซึ่�4อก!อนหน�า ให�ร�นโปัรแกรมต!อไปัหากต�นที่�นที่.$เก�ด้ข)4นสิ/งกวั!า ปัร�มาณการสิ�$งซึ่�4อก!อนหน�าน�4น แสิด้งวั!าปัร�มาณการสิ�$งซึ่�4อก!อนหน�าน.4 เปั2นปัร�มาณการสิ�$งซึ่�4อที่.$ต3$าที่.$สิ�ด้แลั�วั ให�โปัรแกรมออกจัากลั/ปั

สิร�ปัปัร�มาณการสิ�$งซึ่�4อที่.$ต3$าที่.$สิ�ด้ จั3านวันค้ร�4งในการสิ�$งซึ่�4อ แลัะต�นที่�นที่.$ต3$าที่.$สิ�ด้

Page 17: 259201 Computer Programming for Engineers

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 2

Order QuantityOrder Quantity

Annual CostAnnual Cost

Holding Cost Curve

Holding Cost Curve

Total Cost Curve

Total Cost Curve

Order (Setup) Cost CurveOrder (Setup) Cost Curve

Optimal Optimal Order Quantity (Q*)Order Quantity (Q*)

TC(1)

TC(2) TC(i)

TC(3)TC(i-1)

Total Cost เม�$อเที่.ยบก�บปัร�มาณการสิ�$งซึ่�4อก!อนหน�า เร�$มม.ค้!ามากข)4น แสิด้งวั!า TC (i-1) ม.ค้!าต3$าสิ�ด้

......

......

โปัรแกรมออกจัากลั/ปั

แลัะไม!ร�นในสิ!วันน.4ต!อ

Page 18: 259201 Computer Programming for Engineers

D = input('Input demand of material (unit/month): ');M = input('Input material cost (baht/unit): ');O = input('Input ordering cost (baht/order): ');H = input('Input holding cost (baht/unit/day): ');for i = 1:D Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2*H*30; TC(i) = MC+OC+HC; if i >1 if TC(i)> TC (i-1) Qo = i-1; %Qo คอ ปร�มาณการสั่��งซื้อที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด No = D/(i-1); %No คอ จ�านวนคร�งในการซื้อของที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด TCo = TC(i-1); % TCo คอ ต้�นที่�นที่��ต้��าที่��สั่�ดที่��เก�ดข%น break end endenddisp('---------------------------------------------------')fprintf('The best quantity is: %.2f kg/order \n',Qo)fprintf('Number of order is: %.2f order/month \n',No)fprintf('Total Cost is: %.2f baht/month \n',TCo)disp('===================================================')

ข�อด้. ของวั�ธ์.ที่.$ 2 ค้�อ เม�$อเจัอค้3าตอบแลั�วั โปัรแกรมจัะออกจัากลั/ปัที่�นที่. ไม!จั3าเปั2นต�องร�นจันค้รบที่�กรอบ

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 2

Page 19: 259201 Computer Programming for Engineers

เปัร.ยบเที่.ยบผลัลั�พธ์,จัากวั�ธ์.ค้�ด้ที่.$ 1 แลัะ 2

จัากการเปัร.ยบเที่.ยบ พบวั!า การซึ่�4อลั/กชิ้�4นค้ร�4ง 15 หร�อ

16 kg ที่3าให�เก�ด้ต�นที่�นเที่!าก�น ค้�อ 8,516.25 บาที่

น�$นแสิด้งวั!า เจั�าของร�านจัะเลั�อกซึ่�4อค้ร�4งลัะ 15 หร�อ 16 kg ก6ไม!ต!างก�น

พ�จัารณาจั3านวันค้ร�4งในการสิ�$งซึ่�4อ4 ค้ร�4ง/เด้�อน = ซึ่�4อที่�กๆ 7.5 วั�น3.75 ค้ร�4ง/เด้�อน = ซึ่�4อที่�กๆ 8 วั�น

ด้�งน�4น เจั�าของร�านจัะเลั�อกที่างเลั�อกใด้ก6ได้� ต�นที่�นที่.$เก�ด้ข)4นเที่!าก�น

Page 20: 259201 Computer Programming for Engineers

ต�วัอย!างที่.$ 1: Inventory Problem

บร�ษ�ที่ผลั�ตเฟอร,น�เจัอร, ต�องการค้3านวัณหาปัร�มาณการสิ�$งซึ่�4อ ในการสิ�$งซึ่�4อวั�สิด้�ของการผลั�ตโค้มไฟ ที่.$ที่3าให�เก�ด้ต�นที่�นในการสิ�$งซึ่�4อ แลัะการจั�ด้เก6บวั�สิด้�น�อยที่.$สิ�ด้ ซึ่)$งค้!าใชิ้�จั!ายต!างๆ ของวั�สิด้�ในการผลั�ตโค้มไฟ ได้�แก! ราค้าวั�ตถุ�ด้�บที่.$ใชิ้�ที่3าโค้มไฟ = 120 บาที่/ชิ้�4น ค้!าใชิ้�จั!ายในการสิ�$งซึ่�4อ = 160 บาที่/ค้ร�4ง ค้!าใชิ้�จั!ายในการเก6บร�กษา = 40 บาที่/ชิ้�4น/ปั8

หากค้วัามต�องการของลั/กค้�าเที่!าก�บ 6,000 ชิ้�4น/ปั8 บร�ษ�ที่ค้วัรสิ�$งซึ่�4อปั8ลัะก.$ค้ร� 4ง ค้ร�4งลัะก.$ชิ้�4น แลัะที่3าให�เก�ด้ต�นที่�นเที่!าใด้

Page 21: 259201 Computer Programming for Engineers

น�กศั)กษาสิามารถุแก�ไข/ด้�ด้แปัลัง จัากโปัรแกรม meatball2.m หร�อ meatball3.m

จัะต�องม.การแก�ไขโปัรแกรมที่.$บรรที่�ด้ใด้บ�าง ??? หากต�องการผลัลั�พธ์, ด้�งน.4

ต�วัอย!างที่.$ 1: Inventory Problem

Page 22: 259201 Computer Programming for Engineers

ต�วัอย!างที่.$ 2: Advanced Inventory Problem จัากต�วัอย!างที่.$ 1 หากผ/�ผลั�ตวั�ตถุ�ด้�บ จั�ด้สิ!งวั�ตถุ�ด้�บให�

เปั2นกลั!อง โด้ย 1 กลั!อง บรรจั� จั3านวันวั�ตถุ�ด้�บ 1 โหลั ด้�งน�4น ปัร�มาณการสิ�$งซึ่�4อที่.$ซึ่�4อจัร�ง จัะไม!เที่!าก�บปัร�มาณ

การสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ที่.$ค้3านวัณได้� เชิ้!น ถุ�าปัร�มาณการสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ = 18 ชิ้�4น (อย/!

ระหวั!าง 1 โหลั แลัะ 2 โหลั)จัะต�องพ�จัารณาวั!า ซึ่�4อ 12 ชิ้�4น หร�อ 24 ชิ้�4น ที่.$จัะที่3าให�ต�นที่�นต3$ากวั!าก�น12 ชิ้�4น

12 ชิ้�4น

12 ชิ้�4น

** 18 ชิ้�น **

ปร�มาณการสั่��งซื้อที่��ด�ที่��สั่�ด

จ�านวนที่��ซื้อได� (Upper case)

จ�านวนที่��ซื้อได� (Lower case)

เปร�ยบเที่�ยบต้�นที่�น

Page 23: 259201 Computer Programming for Engineers

ด้�งน�4น เม�$อค้3านวัณปัร�มาณการสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ได้�แลั�วั จัะต�องปั�ด้ให�เปั2นจั3านวันที่.$บรรจั�ในกลั!องได้�พอด้. (บรรจั�กลั!องลัะ 12 ชิ้�4น) ตรวัจัสิอบเง�$อนไข วั!าจั3านวันที่.$ค้3านวัณได้�หาร 12 ลังต�วัหร�อไม! mod(Qo,12)

ค้3านวัณต�นที่�นกรณ. Lower Case LBox = floor(Qo/12); LQ = 12*LBox; LN = D/LQ; LTC = (LQ*LN*M)+(LN*O)+(LQ/2*H);

ค�าสั่��ง floor ใชิ้�ในการป)ดเศษของสั่มาชิ้�กของอาร,เรย,ลง

ค�าสั่��ง mod(x,y) ใชิ้�ในการต้รวจสั่อบว.า x หารด�วย y ลงต้�วหรอไม. ถุ�าหารลงต้�ว ผลล�พธ์,ของ mod จะม�ค.าเที่.าก�บ 0

Material cost Ordering cost Holding cost

ปัร�มาณการสิ�$งซึ่�4อด้�าน Lower

จั3านวันค้ร�4งในการสิ�$งซึ่�4อ ด้�าน Lower

ต�นที่�นรวัมในการสิ�$งซึ่�4อ ด้�าน Lower

ต�วัอย!างที่.$ 2: Advanced Inventory Problem

Page 24: 259201 Computer Programming for Engineers

ค้3านวัณต�นที่�นกรณ. Upper Case UBox = ceil(Qo/12); UQ = 12*UBox; UN = D/UQ; UTC = (UQ*UN*M)+(UN*O)+(UQ/2*H);

จัากน�4นที่3าการเปัร.ยบเที่.ยบ LTC แลัะ UTC วั!าต�นที่�นด้�านใด้น�อยกวั!า

เลั�อกที่างเลั�อกที่.$ที่3าให�เก�ด้ต�นที่�นต3$ากวั!า สิร�ปัแลัะปัระมวัลัผลั

ค�าสั่��ง ceil ใชิ้�ในการป)ดเศษของสั่มาชิ้�กของอาร,เรย,ข%น

Material cost Ordering cost Holding cost

ปัร�มาณการสิ�$งซึ่�4อด้�าน Upper

จั3านวันค้ร�4งในการสิ�$งซึ่�4อ ด้�าน Upper

ต�นที่�นรวัมในการสิ�$งซึ่�4อ ด้�าน Lower

ต�วัอย!างที่.$ 2: Advanced Inventory Problem

Page 25: 259201 Computer Programming for Engineers

ผลัลั�พธ์,จัากต�วัอย!างที่.$ 2

ให�น�กศั)กษาที่ด้ลัองเข.ยนโปัรแกรม MATLAB ของต�วัอย!างน.4

Page 26: 259201 Computer Programming for Engineers
Page 27: 259201 Computer Programming for Engineers

เฉลัย ต�วัอย!างที่.$ 1 (lamp.m)D = input('Input demand of material (unit/year): ');M = input('Input material cost (baht/unit): ');O = input('Input ordering cost (baht/order): ');H = input('Input holding cost (baht/year): ');for i = 1:D Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2*H; TC(i) = MC+OC+HC; if i >1 if TC(i)> TC (i-1) Qo = i-1; %Qo คอ ปร�มาณการสั่��งซื้อที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด No = D/(i-1); %No คอ จ�านวนคร�งในการซื้อของที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด TCo = TC(i-1); % TCo คอ ต้�นที่�นที่��ต้��าที่��สั่�ดที่��เก�ดข%น MCo = Qo*No*M; OCo = No*O; HCo = Qo/2*H; break end endenddisp('---------------------------------------------------')fprintf('The best quantity is: %.2f units/order \n',Qo)fprintf('Number of order is: %.2f orders/year \n',No)fprintf('Total Cost is: %.2f baht/year \n',TCo)fprintf('\t Total material cost is: %.2f baht/year\n',MCo)fprintf('\t Total ordering cost is: %.2f baht/year\n',OCo)fprintf('\t Total holding cost is: %.2f baht/year\n',HCo)disp('===================================================')

Page 28: 259201 Computer Programming for Engineers

เฉลัย ต�วัอย!างที่.$ 2 (lamp2.m) สิ!วันที่.$ 1/2D = input('Input demand of material (unit/year): ');

M = input('Input material cost (baht/unit): ');O = input('Input ordering cost (baht/order): ');H = input('Input holding cost (baht/year): ');for i = 1:D Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2*H; TC(i) = MC+OC+HC; if i >1 if TC(i)> TC (i-1) Qo = i-1; %Qo คอ ปร�มาณการสั่��งซื้อที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด No = D/(i-1); %No คอ จ�านวนคร�งในการซื้อของที่��ที่�าให�เก�ดต้�นที่�นต้��าที่��สั่�ด

if mod(Qo,12) == 0 TCo = TC(i-1); MCo = Qo*No*M; OCo = No*O; HCo = Qo/2*H; else % ค�านวณด�าน Lower case LBox = floor(Qo/12); LQ = 12*LBox; LN = D/LQ; LTC = (LQ*LN*M)+(LN*O)+(LQ/2*H); % ค�านวณด�าน Upper case UBox = ceil(Qo/12); UQ = 12*UBox; UN = D/UQ; UTC = (UQ*UN*M)+(UN*O)+(UQ/2*H);

ต้รวจสั่อบว.า Qo หารด�วย 12 ลงต้�วหรอไม.

ค�านวณต้�นที่�นกรณ� Lower case

Page 29: 259201 Computer Programming for Engineers

เฉลัย ต�วัอย!างที่.$ 2 (lamp2.m) สิ!วันที่.$ 2/2% เปร�ยบเที่�ยบต้�นที่�น LTC และ UTC

if LTC < UTC Qo = LQ; Box = LBox; No = LN; TCo = LTC; MCo = LQ*LN*M; OCo = LN*O; HCo = LQ/2*H; else Qo = UQ; Box = UBox; No = UN; TCo = UTC; MCo = UQ*LN*M; OCo = UN*O; HCo = UQ/2*H; end end break end endenddisp('---------------------------------------------------')fprintf('The best quantity is: %.2f units/order or %.2f boxes/order \n',Qo,Box)fprintf('Number of order is: %.2f orders/year \n',No)fprintf('Total Cost is: %.2f baht/year \n',TCo)fprintf('\t Total material cost is: %.2f baht/year\n',MCo)fprintf('\t Total ordering cost is: %.2f baht/year\n',OCo)fprintf('\t Total holding cost is: %.2f baht/year\n',HCo)disp('===================================================‘)

เปร�ยบเที่�ยบต้�นที่�น กรณ� Lower และ Upper case