Saturday, June 21, 2008

Example : Linear programming 1

การจัดการส่วนผสมของผลิตภัณฑ์
โรงงานผลิตสารเคมีต้องการเตรียมสารเคมีจำนวน 1200 กิโลกรัม เพื่อส่งให้ลูกค้าโดยมีเกณฑ์ว่า สารเคมีที่ผลิตได้ ต้องมีส่วนผสมของสาร A อย่างน้อยที่สุด 50 กิโลกรัม มีส่วนประกอบของสาร B ไม่เกิน 60 กิโลกรัม โรงงานมีวัตถุดิบ 3 ชนิด คือ P,Q,R แต่ละชนิดมีส่วนประกอบของสาร A และ B พร้อมราคาดังนี้

สาร ------- P --------- Q ---------- R
A --------- 3% ------- 4% -------- 4%
B--------- 50% ------ 20% ------- 5%
ราคา------ 40 ------- 60 ---------- 30 บาท/100 กก

ทางโีรงงานควรใช้วัตถุดิบแต่ละชนิด ปริมาณเท่าใด จึงทำให้ต้นทุนต่ำสุด

สร้างตัวแบบแทนระบบของปัญหา
ตัวแปรตัดสินใจ

X1 เป็นปริมาณของวัตถุดิบ P ที่ใช้ในการผลิต (หน่วย : 100 กก.)
X2 เป็นปริมาณของวัตถุดิบ Q ที่ใช้ในการผลิต (หน่วย : 100 กก.)
X3 เป็นปริมาณของวัตถุดิบ R ที่ใช้ในการผลิต (หน่วย : 100 กก.)

เป้าหมาย ทางโรงงานต้องการเสียต้นทุนต่ำสุด
ต้นทุนวัตถุดิบ P,Q,R คือ 40 , 60 , 30 ต่อ 100 กก.
ให้ Z เป็นต้นทุนรวม
:. ฟังก์ชันจุดประสงค์คือ Min Z = 40X1+60X2+30X3

เงื่อนไขบังคับ

ก. โรงงานต้องการเตรียมสารเคมีจำนวน 1200 กก. และเนื่องจากหน่วยของ X เป็น 100 กก. ดังนั้น
X1+X2+X3=12

ข. สารเคมีที่ผลิตไ้ด้ต้องมีส่วนประกอบของสาร A อย่างน้อย 50 กก. สาร A มีในวัตถุดิบ P,Q,R อย่า่งละ 3% , 4% , 4% ตามลำดับ จะได้
3X1+4X2+4X3 >= 50

ค. สารเคมีที่ผลิตได้ต้องมีส่วนประกอบของสาร B ไม่เกิน 60 กก. สาร B มีในวัตถุดิบ P,Q,R อย่างละ 50% , 20% , 5% ตามลำดับ
50X1+20X2+5X3 <= 60 เมื่อนำ ฟังก์ชันจุดประสงค์ และ เงื่อนไขบังคับมาเขียนรวมกันจะได้ ตัวแบบแทนปัญหา ดังนี้

Minimize

Z=40X1+60X2+30X3

Subject to
X1+X2+X3 = 12
3X1+4X2+4X3 >= 50
50X1+20X2+5X3 <= 60

X1,X2,X3 >=0

Monday, June 16, 2008

linear programming II

Linear programming, sometimes known as linear optimization, is the problem of maximizing or minimizing a linear function over a convex polyhedron specified by linear and non-negativity constraints. Simplistically, linear programming is the optimization of an outcome based on some set of constraints using a linear mathematical model.
Linear programming is implemented in Mathematica as LinearProgramming[c, m, b], which finds a vector which minimizes the quantity Cx subject to the constraints mx >=b and xi >=0 for x = (x1,...,xn) .
Linear programming theory falls within convex optimization theory and is also considered to be an important part of operations research. Linear programming is extensively used in business and economics, but may also be used to solve certain engineering problems.
Examples from economics include Leontief's input-output model, the determination of shadow prices, etc., an example of a business application would be maximizing profit in a factory that manufactures a number of different products from the same raw material using the same resources, and example engineering applications include Chebyshev approximation and the design of structures (e.g., limit analysis of a planar truss).
Linear programming can be solved using the simplex method (Wood and Dantzig 1949, Dantzig 1949) which runs along polytope edges of the visualization solid to find the best answer. Khachian (1979) found a O(x^5) polynomial time algorithm. A much more efficient polynomial time algorithm was found by Karmarkar (1984). This method goes through the middle of the solid (making it a so-called interior point method), and then transforms and warps. Arguably, interior point methods were known as early as the 1960s in the form of the barrier function methods, but the media hype accompanying Karmarkar's announcement led to these methods receiving a great deal of attention.
Linear programming in which variables may take on integer values only is known as integer programming.

Standard form
  • A linear function to be maximized
    e.g. maximize C1X1+C2X2

  • Problem constrints of the following form
    e.g.
    a11X1 + a12X2 <= b1
    a21X1 + a22X2 <= b2
    a31X1 + a32X2 <= b3

  • Non-negative variable
    e.g.
    X1 >= 0
    X2 >= 0

The proble is usually expressed in matrix form,and then becomes :

maximize C^Tx
subject to Ax <= b , x >= 0

Augmented form (slack form)

This form introduces non-negative slack variables to replace inequalities with equalities in the constraints.


Maximize Z in:
X,Xs >= 0
where Xs are the newly introduced slack variables, and Z is the variable to be maximized.

Duality

maimize C^T X
subject to Ax <= b , x >=0

The corresponsding dual problem is:

minimize b^T y
subject to A^T y >= c , y >= 0


where y is used instead of x as variable vector.

Saturday, May 24, 2008

Introduction

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

2 ความหมายของการวิจัยดำเนินงาน
การวิจัยดำเนินงานเป็นการหาคำตอบที่ดีที่สุดให้กับปัญหาเชิงปริมาณ (quantitative) ทางการบริหารจัดการ โดยใช้ตัวแบบทางคณิตศาสตร์ มาช่วย ภายใต้เงื่อนไขบังคับด้านต่างๆที่เกี่ยวข้อง

3 ขั้นตอนของการวิจัยดำเนินงาน

1. กำหนดปัญหา (Define the problem)
2. สร้างตัวแบบแทนระบบของปัญหา (Model Formulating)
3. หาผลลัพธ์จากตัวแบบ (Derive solutions from the model)
4. ตรวจสอบตัวแบบและผลลัพธ์ (Testing the model and evaluating the solutions)
5. การนำผลลัพธ์ไปใช้ (Implementing)

4 การประยุกต์ใช้การวิจัยดำเนินงาน

1. การจัดสรรทรัพยากร ได้แก่ การผลิต การสั่งซื้อสินค้ามาขายให้ได้กำไรสูงสุด หรือมีต้นทุนต่ำสุด โดยใช้ Linear Programming
2. การขนส่ง การวางแผนการขนส่งจากแหล่งผลิตไปยังสถานที่เก็บหรือส่งให้ลูกค้าให้ใช้เวลาน้อยที่สุด หรือเสียค่าใช้จ่ายน้อยที่สุด โดยใช้เทคนิคเกี่ยวกับการขนส่ง (Transportation) มาช่วยหาคำตอบ
3. การมอบหมายงาน เพื่อให้งานเสร็จเร็วที่สุด มีคุณภาพดีที่สุด
4. การวิเคราะห์ข่ายงาน การควบคุมโครงงาน ( project )
5. การตัดสินใจภายใต้ความไม่แน่นอนและความเสี่ยง ในการตัดสินใจทางธุรกิจว่าจะเลือกทางเลือกใด ภายใต้สภาวะการณ์ต่างๆ
6. การตัดสินใจภายในการแข่งข้น โดยใช้ Game Theory
7. การบริหารสินค้าคงคลัง เป็นการตัดสินใจเกี่ยวกับการบริหารปริมาณสินค้าคงคลัง เพื่อให้เพียงพอกับความต้องการของลูกค้า โดยเสียค่าใช้จ่ายในการเก็บรักษาสินค้า หรือค่าใช้จ่ายในการสั่งซื้อน้อยที่สุด และไม่เสียโอกาสในการทำกำไร
8. ระบบแถวคอย ระบบแถวคอยเป็นส่วนหนึ่งของการขายสินค้าและบริการ การหาจำนวนผู้ให้บริการที่เหมาะสม โดยใช้ Queuing Theory มาประยุกต์ใช้
9. การจำลองสถานการณ์ เป็นการใช้เทคนิคการเลียนแบบระบบในชีวิตจริงเพื่อหาคำตอบหรือผลลัพธ์ของทางเลือกต่างๆเพื่อประกอบการตั้ดสินใจ ในกรณีที่ไม่สามารถรอให้สถานการณ์จริงเกิดขึ้นได้บ่อยๆ

การวิเคราะห์ข่ายงาน [ Network Analysis ]

การวิเคราะห์ข่ายงานเป็นเทคนิคการหาผลเฉลยที่เหมาะสมที่สุดของปัญหาที่สามารถเขียนในรูปของข่ายงานได้ ปัญหาเหล่านี้เช่น การผลิตสินค้า การกระจายสินค้า การจัดการทรัพยากร การติดตั้งอุปกรณ์อำนวยความสะดวก การวางแผนโครงการ หรือแม้แต่การวางแผนการเงิน เทคนิคที่จะนำมาศึกษามีอยู่ 4 แบบคือ
1. การหาระยะทางสั้นที่สุด ( Shortest Route Technique )
2. ต้นไม้แบบทอดข้ามที่เล็กที่สุด (Minimal Spanning Tree Technique)
3. การหาสายงานสูงสุด (Maximal Flow Technique)
4. การบริหารโครงงานด้วย ระเบียนวิธีวิถีวิกฤต (Critical Path Method :CPM)
และเทคนิคการประเมินค่าและควบคุมโครงงาน (Program Evaluation and Review Technique)

1. นิยาม
- ข่ายงาน (network) ประกอบด้วยเซ็ทของจุดและเส้นซึ่งเชื่อมระหว่างจุด เราเรียกจุดว่า บัพ(node) เขียนแทนด้วยวงกลมล้อมรอบต้วเลข
- เส้นที่เชื่อระหว่างบัพเรียกว่า เส้นเชื่อม (arc) เขียนแทนด้วยเส้นลูกศร
- การเรียกชื่อเส้นเชื่อมจะเรียกหมายเลขบัพที่อยู่ส่วนต้นและส่วนท้ายของเส้นเชื่อม
- เรียก บัพแรกว่า บัพเริ่มต้น (source node)
- เรียก บัพสุดท้ายว่า บัพปลายทาง (Sink node)
- สิ่งที่ไหลจากบัพหนึ่งไปอีกบัพหนึ่งเรียกว่า สายงาน (Flow)
- ถ้าสายงานไหลผ่านเส้นเชื่อมไปในทิศทางเดียวเรียกเส้นเชื่อมนั้นว่า เส้นเชื่อมแบบมีทิศทาง (directed arc)
- ถ้าสายงานไหลผ่านเส้นเชื่อมได้ทั้งไปและกลับเรียกเส้นเชื่อมนั้นว่า เส้นเชื่อมแบบไร้ทิศทาง (undirected arc)
- กิจกรรมเทียม (dummy activity) คือกิจกรรมที่ไม่ได้ปฏิบัติจริง เวลาและทรัพยากรของกิจกรรมเป็นศูนย์ แสดงกิจกรรมเทียมด้วยเส้นประ
- วิถี (path) เป็นลำดับของเส้นเชื่อมจากบัพเริ่มต้น ไปยัง บัพปลายทาง โดยบัพเริ่มต้นของแต่ละเส้นเชื่อมเป็นบัพสิ้นสุดของเส้นเชื่อมก่อนหน้านี้
- ลูกโซ่ (chain) คือวิถีที่เชื่อมบัพทุกบัพ โดยทุกเส้นเชื่อมไม่จำเป็นต้องมุ่งสู่บัพปลายทาง
- วัฏจักร (cycle) คือลูกโซ่ที่ทุกบัพเชื่อมต่อถึงกันหมด หรือเรียกว่า closed chain
- วงจร (circuit) คือวิถี ซึ่งบัพเริ่มต้นและบัพสุดท้ายเป็นบัพเดียวกัน หรือเรียกว่า closed path ทุกวงจรเป็นวัฏจักร แต่วัฏจักรไม่จำเป็นต้องเป็นวงจร
- ข่ายงานเชื่อมโยง (connected network) คือข่ายงานที่บัพทุกคู่ มีวิถีหรือโซ่อย่างน้อย 1 อันเชื่อมโยงอยู่
- ต้นไม้ (tree) คือข่ายงานเชื่อมโยงที่ไม่มีวัฏจักร
- ต้นไม้แบบทอดข้าม (spanning tree) คือ ข่ายงานเชื่อมโยงที่ประกอบด้วยบัพ n บัพ และเส้นเชื่อม n-1 เส้น และไม่มีวัฏจักรเกิดขึ้นในข่ายงานนี้
- ความจุของเส้นเชื่อม (arc capacity) คือปริมาณสายงานที่มากที่สุดที่เป็นไปได้บนเส้นเชื่อมนั้น source node จะมีปริมาณสายงานออกจากบัพมากกว่าปริมาณสายงานที่เข้าสู่บัพ sink node จะมีปริมาณสายงานเข้าสู่ node มากกว่าปริมาณสายงานออกจาก node ส่วน node ระหว่างกลาง (intermediate node) มีปริมาณสายงานเข้าเท่ากับปริมาณสายงานออกจาก node

2. การหาระยะทางสั้นที่สุด (Shortest-Route)
เป็นการหาวิถีจาก node เริ่มต้นไปยัง node ปลายทาง เป็นวิถีที่มีระยะทางที่สั้นที่สุดซึ่งไม่จำเป็นต้องผ่านทุก node
มีขั้นตอนดังนี้
1. เริ่มจากnodeเริ่มต้น เลือกnodeที่เชื่อมกับnodeเริ่มต้นและมีระยะทางสั้นที่สุด สมมุติให้เป็น node j node ที่ถูกเลือกเรียกว่า Solved node ส่วนnodeที่ยังไม่ถูกเลือกเรียกว่า Unsolved node รวมระยะทางไว้ที่nodeล่าสุด
2. จาก node ที่ถูกเลือกแล้ว (solved node) ที่มีอยู่ พิจารณาnode ที่ยังไม่ถูกเลือก (Unsolved node) ทุกnodeที่เชื่อมกับ nodeที่ถูกเลือกไว้แล้ว เลือกnodeที่เชื่อมต่อแล้วมีระยะทางจาก nodeเริ่มต้นถึงnode นั้นน้อยที่สุดเชื่อมแล้วรวมระยะทางไว้ที่nodeล่าสุด
3. ตรวจดูว่าวิถีที่มีอยู่ถึง nodeปลายทางหรือยัง ถ้าถึงnodeปลายทางแล้วให้รวมระยะทางทั้งหมด ถ้ายังไม่ถึงnodeปลายทาง ก็ทำซ้ำตั้งแต่ขั้นที่สอง

3. การหาต้นไม้แบบทอดข้ามที่เล็กที่สุด (Minimal Spanning Tree)
spanning tree คือ ข่ายงานเชื่อมโยงที่มี n node และมีเส้นเชื่อม n-1 เส้น spanning tree จึงมีได้หลายแบบ แต่แบบที่มีระยะทางรวมสั้นที่สุดคือต้นไม้แบทอดข้ามที่เล็กที่สุด (minimal spanning tree) มีขั้นตอนการหาดังนี้
1. เลือก node ใดๆ 1 node แล้วเชื่อมnodeกับnodeอื่นที่มีระยะทางในการเชื่อมสั้นที่สุด
2. จากnodeที่เชื่อมแล้วทั้งหมด พิจารณาว่าสามารถเชื่อมกับ nodeที่ยังไม่ถูกเชื่อมได้กี่ode เลือกnodeที่ยังไม่ถูกเชื่อมที่ระยะทางห่างจากnodeที่เชื่อมแล้วน้อยที่สุด ถ้ามีมากกว่า 1node ก็เลือก nodeใดๆก็ได้
3. ตรวจสอบว่าทุกnodeถูกเชื่อมหมดหรือยัง ถ้าเชื่อมหมดแล้วรวมระยะทางทั้งหมด ถ้ายังเชื่อมไม่หมดให้ย้อนกลับไปทำขั้นที่ 2 อีก

4.การหาสายงานสูงสุด (Maximal Flow)
เป็นการหาปริมาณสายงานจากnodeเริ่มต้นไปยังnodeปลายทางให้มากที่สุดเท่าที่ความจุของแต่ละเส้นเชื่อมจะมีให้ได้ หลักการคือส่งสายงานจากnodeเริ่มต้นไปให้มากที่สุดจนถึง nodeปลายทางแล้วพิจารณาความจุ (capacity) ของเส้นเชื่อมว่ายังมีสายงานเหลืออยู่(residual) ให้ส่งสายงานไปจนถึงnodeปลายทางได้หรือไม่ ทำการตกแต่ง (argment) วิถีที่มีอยู่ จนกว่าจะเพิ่มสายงานอีกไม่ได้
ขั้นตอนดังนี้
1.พิจารณาวิถีจากnodeเริ่มต้นไปยังnodeปลายทางทุกวิถีที่เป็นไปได้ เลือกวิถีที่ส่งสายงานได้มากที่สุด คือมีความจุของเส้นเชื่อมที่น้อยที่สุดในวิถีนั้นมากกว่าวิถีอื่นๆ
2.ปรับความจุที่เหลือในแต่ละเส้นเชื่อมของวิถีที่ส่งสายงานไปล่าสุด
3.ตรวจสอบดูว่ายังมีวิถีใดบ้างที่มีสายงานตกค้างอยู่ ที่สามารถส่งสายงานไปจนถึงnodeปลายทางได้ ถ้าไม่มีวิถีที่ส่งสายงานไปจนถึงnodeปลายทางได้อีก แสดงว่าได้สายงานสูงสุดแล้ว รวมปริมาณสายงานทั้งหมดที่ส่งไป แต่ถ้ายังมีวิถีทที่ส่งสายงานไปจนถึงnodeปลายทางได้อีก ให้กลับไปทำข้อ 1 ใหม่

5. การบริหารโครงงานด้วยระเบียบวิธีวิถีวิฤต และเทคนิคการควบคุมโครงการ(CPM และ PERT)
คือการควบคุมให้งานเสร็จภายในเวลาที่กำหนด
5.1 แผนภูมิแกนท์ (Grant Chart)
-เหมาะกับโครงงานที่มีกิจกรรมไม่ซับซ้อนนัก
-แสดงความสัมพันธ์ชองกิจกรรมกับเวลา

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

5.2 ระเบียบวิธีวิถีวิกฤต ( Critical Path Method :CPM)
ระเบียบวิธีวิถีวิฤต เป็นตัวแบบข่ายงานชนิดตัวแบบเชิงกำหนด (deterministic model) กล่าวคือ เวลาของกิจกรรมต่างๆในโครงงานและค่าใช้จ่ายของแต่ละกิจกรรม ทราบค่าแน่นอน วิธีนี้จึงมักใช้กับโครงงานประเภทที่เคยมีผู้ทำมาก่อน หรือหน่วยงานมีความคุ้นเคยกบกิจกรรมต่างๆในโครงงานทำให้สามารถประมาณเวลาของกิจกรรม และค่าใช้จ่ายได้แม่นยำ

วิถีวิกฤต (critical path) คือเส้นทางที่ประกอบด้วยกิจกรรมของข่ายงานตั้งแต่nodeเริ่มต้นจนถึงnodeปลายทาง โดยที่แต่ละกิจกรรมบนเส้นทางนี้ไม่สามารถยืดหยุ่นเวลาของกิจกรรมได้เลย ดังนั้นหากกิจกรรมใดบนวิถีวิกฤตล่าช้าจะส่งผลให้โครงงานทั้งโครงงานล่าช้า

การหาวิถีวิกฤต มีขั้นตอนดังนี้
1. คำนวณเวลาเริ่มต้นที่เร็วที่สุด (Earliest start time : ES) คือเวลาที่กิจกรรมบนข่ายงานเริ่มต้นได้เร็วที่สุด โดยไม่กระทบต่อกิจกรรมก่อนหน้านี้
2. คำนวณเวลาเสร็จเร็วที่สุด (Earliest finish time : EF) คือเวลาที่กิจกรรมจะเสร็จได้เร็วที่สุด
3. คำวนวณเวลาเริ่มต้นที่ช้าที่สุด (Latest start time : LS) คือเวลาที่กิจกรรมจะเริ่มต้นได้ อย่างช้าที่สุดโดยไม่ทำให้โครงงานทั้งโครงงานล่าช้า
4. คำนวณเวลาเสร็จที่ช้าที่สุด (Latest finish time : LF) คือเวลาที่กิจกรรมจะเสร็จได้อย่างช้าที่สุด โดยไม่ทำให้โครงงานทั้งโครงงานล่าช้า
5. คำนวณเวลาที่เหลือ (slack time) ของแต่ละกิจกรรม จากผลต่างของเวลาเริ่มต้นช้าที่สุด (LS) กับเวลาเริ่มต้นเร็วที่สุด(ES) หรือคำนวณจากผลต่างของเวลาเสร็จช้าที่สุด (LF) กับเวลาเสร็จเร็วที่สุด (EF)
slack = LS-ES = LF - EF

6. พิจารณากิจกรรมที่ไม่มีเวลาเหลือ คือ slack=0 เป็นกิจกรรมวิฤต
7. พิจารณาเส้นทางที่ประกอบด้วยกิจกรรมวิกฤต เป็นวิถีวิกฤต

การคำนวณหา ES , EF
กิจกรรมแรกของโครงงานจะมีเวลาเริ่มต้นเป็น 0 เพราะไม่ต้องรอกิจกรรมอื่น จึงเริ่มต้นได้เลย
เวลาเสร็จเร็วที่สุดของกิจกรรมแรกคือ ผลบอกของเวลาเริ่มต้นที่เร็วที่สุด กับเวลาของกิจกรรมนั้น (dij) = EF = ES + dij
สำหรับกิจกรรมอื่นๆเวลาเริ่มต้นที่เร็วที่สุด คือ ค่าที่สูงสุด ของเวลาเสร็จเร็วที่สุดของกิจกรรมทั้งหมดก่อนหน้าที่เข้าสู่ node ของกิจกรรมนี้
ESjk = Max(EFij)

การคำนวณ ES , EF จากกิจกรรมแรกถึงกิจกรรมสุดท้ายเรียกว่าการคำนวณไปข้างหน้า (forward pass)

การคำนวณหา LS , LF
จะทำการคำนวณหลังจากการคำนวณ ES , EF ตลอดโครงงานแล้ว โดยเริ่มต้นจากกิจกรรมสุดท้ายย้อยไปจนถึงกิจกรรมแรกเรียกว่าการคำนวณย้อนหลัง (backward pass)

ขั้นแรกที่กิจกรรมสุดท้าย ให้ เวลาเสร็จช้าที่สุด (LF) เท่ากับ เวลาเสร็จเร็วที่ด (EF) และ เวลาเริ่มต้นช้าที่สุด LS คือผลต่างของ เวลาเสร็จช้าที่สุด (LF) กับเวลาของกิจกรรมนั้น (dij) จะได้
LS = LF - dij

ขั้นต่อไปที่กิจกรรมอื่นๆ เวลาเสร็จที่ช้าที่สุดของกิจกรรมที่เข้าสู่ node คือ ค่าที่ที่สุด ของเวลาเริ่มต้นช้าที่สุดของทุกกิจกรรมที่ออกจากnode นี้

5.3 เพิร์ต (PERT : Program Evaluation and Review Technique)

Linear Programming

Linear Programming (กำหนดการเชิงเส้น)

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

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

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

โครงสร้างของตัวแบบกำหนดการเชิงเส้น (Structure of the Linear Programming Model)

ตัวแบบกำหนดการเชิงเส้น (Formulation of Linear Programming Models)
1. ตัวแปรซึ่งไม่ทราบค่าและต้องการหาคำตอบ เรียกว่า ตัวแปรตัดสินใจ (Decision variables) ตัวแปรทุกตัวต้องไม่เป็นค่าลบ (non-negative restriction)
2. ฟังก์ชันจุดประสงค์ หรือ สมการเป้าหมาย (Objective Function) ซึ่งแสดงเป้าหมายของการหาคำตอบว่าต้องการหาค่าสูงสุดหรือค่าต่ำสุด เขียนในรูปฟังก์ชันของตัวแปรตัดสินใจ
3. สมการหรืออสมการแสดงเงื่อนไขบังคับ หรือ เรียกว่า การสร้างข้อจำกัด (Constraints)

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

รูปทั่วไปของตัวแบบกำหนดการเชิงเส้น

รูปแบบทั่วไปของตัวแบบกำหนดการเชิงเส้น กำหนดให้มีตัวแปรตัดสินใจ n ตัว (X1,...,Xn) มีเงื่อนไขบังคับด้าน ต่างๆ m เงื่อนไข
Z เป็นค่าของฟังก์ชันจุดประสงค์
Cj เป็นค่าการเปลี่ยนแปลงของ Z เมื่อ Xj เปลี่ยนไป 1 หน่วย ( ถ้า Z เป็นผลกำไรรวม Cj ก็เป็นกำไรต่อหน่วย , ถ้า Z เป็นต้นทุนรวม Cj ก็เป็นต้นทุนต่อหน่วย )
bi เป็นทรัพยากรชนิดที่ i ที่มีอยู่
aij เป็นปริมาณทรัพยากรชนิดที่ i ที่ตัวแปร Xj ใช้ไปในการผลิต 1 หน่วย
รูปย่อ

กรณีหาค่าต่ำสุด


รูปย่อ

( การหาค่าสูงสุด คือ ประโยชน์ที่ได้รับ และ การหาค่าต่ำสุดคือ เสียประโยชน์ )

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

ก. ระบุตัวแปรตัดสินใจ คือ ตัวแปรที่ต้องการหาคำตอบ มีทั้งหมดกี่ตัว โดยมากใช้ Xj แทนตัวแปรตัดสินใจตัวที่ j

ข. ระบุสัมประสิทธิ์ของตัวแปรตัดสินใจในฟังก์ชันจุดประสงค์ ใช้ Cj แทนสัมประสิทธิ์ของตัวแปรตัดสินใจ
ถ้าเป้าหมายคือการหากำไรสูงสุด Cj หมายถึงกำไรต่อหน่วยของสินค้า j

ถ้าเป้าหมายคือการหาต้นทุนต่ำสุด Cj หมายถึงต้นทุนต่อหน่วยของสินค้า

ค. สร้างฟังก์ชันจุดประสงค์ ฟังก์ชันจุดประสงค์คือการนำเป้าหมายมาเขียนในรูปฟังก์ชันของตัวแปรตัดสินใจ เช่น

ให้ X1 แทนจำนวนวนการผลิตโต๊ะ
X2 แทนจำนวนการผลิดตู้
Z = กำไรรวม
ขาย โต๊ะได้กำไรตัวละ 300 บาท ขายตู้ได้กำไรตัวละ 500 บาท
กำไร = Z = 300X1 + 500X2 เป็นฟังก์ชันจุดประสงค์ของปัญหาว่า ควรผลิตโต๊ะและตู้ อย่างละเท่าไรจึงจะได้กำไรสูงสุด

ง. ระบุปริมาณทรัพยากรที่มีอยู่ (bi) หรือเรียกว่าRHS (Right Hand Side) เช่นมีไม้อยู่ทั้งหมด 10,000 เมตร มีแรงงานอยู่ทั้งหมด 2400 ชม เป็นต้น

จ. หาปริมาณการใช้ทรัพยากร แต่ละชนิดของการผลิดสินค้าแต่ละชนิด (aij) เช่น ผลิตโต๊ะ 1 ตัวต้องใช้ไม้ 100 ตารางเมตร และแรงงาน 10 ชม ผลิตตู้ 1 ตัวต้องใช้ไม้ 150 เมตร และแรงงาน 12 ชม

ฉ. สร้างเงื่อนไขบังคับของทรัพยากรที่มีอยู่โดยใช้ข้อมูลจากข้อ ง และ จ

เช่น ผลิตโต๊ะ 1 ตัวต้องใช้ไม้ 100 ตารางเมตร จะได้ ผลิตโต๊ะ X1 ตัวใช้ไม้ 100X1 ตารางเมตร

วิธีการที่ใช้ในกำหนดการเชิงเส้น
แบ่งเป็น 2 แบบ คือ
1. แบบสองตัวแปร
2. แบบมากกว่าสองตัวแปร
แบบ 2 ตัวแปรมี 3 ประเภทคือ
1.1 วิธีจำกัดขอบข่ายของคำตอบ
1.2 วิธีอนุมานทางคณิตศาสตร์
1.3 วิธีกราฟ

1. วิธีจำกัดขอบข่ายของคำตอบ
- ทำได้โดยสร้างตารางแสดงค่าของตัวแปรตั้งแต่ 0,1,2,...
- ภายใต้ตารางแสดงผลลัพธ์ ที่เกิดจากการแทนค่าตัวแปรในสมการวัตถุประสงค์
- ใช้สมการหรืออสมการของข้อจำกัดตัดช่วงตัวเลขที่เป็นไปได้ออก ดังนั้นจะเหลือค่าภายในตารางที่เรียกว่า feasible solution ผลลัพธ์ ที่ให้ค่าสูงสุดหรือ ต่ำสุดหาจากผลลัพธ์ที่เป็นไปได้ โดยดูจากค่าที่อยู่ที่่บริเวณริมรอบๆเส้นดังกล่าว

2. วิธีอนุมานทางคณิตศาสตร์
เป็นการสมมติค่าของตัวแปรหนึ่งให้เป็นค่าสูงสุด หรือ ต่ำสุดตามขอบเขตของตัวแปรนั้น แล้วหาค่าที่เป็นไปได้ของอีกตัวแปรหนึ่ง ทำจนกว่าจะได้ค่าของสมการวัตถุประสงค์ซึ่งให้สมมติสลับกันไป

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

3. การคำนวณด้วยกราฟ
ให้นำตัวแบบที่สร้างไว้แล้วนั้นมา plot graph แล้วพิจรณาขอบเขตที่เป็นไปได้ โดยพิจรณาจากข้อจำกัด เมื่อได้ขอบเขตดังกล่าวแล้ว ให้พิจรณาค่าที่ต้องการเพื่อให้ได้เป้าหมายที่วางไว้ การพิจารณาขอบเขตที่เป็นไปได้ ต้องนำข้อจำกัดที่เขียนอยู่ในรูปอสมการเส้นตรงมาพิจรณาเป็นเส้นๆไป

Friday, May 23, 2008

ตัวแบบแถวคอย (Queuing Models)

โครงสร้างของตัวแบบแถวคอย
ก. การเข้ารับบริการ (Arrivals)
ข. แถวคอย (Queue)
ค. คุณลักษณะของหน่วยบริการ (Service facility characteristics)

การเข้ารับบริการ
การหาความน่าจะเป็นที่จะมีผู้มารับบริการ x ราย

P(x)=e^-λ * λ^X / X!

โดย X = ตัวแปรเชิงสุ่มแทนจำนวนผู้มารับบริการต่อหน่วยเวลา
P(x) = ความน่าจะเป็นที่จะมีผู้มารับบริการ x ราย
λ = อัตราการมาถึงโดยเฉลี่ยต่อหน่วยเวลา
e = 2.7183






การจำลองสถานการณ์ (Simulation)

เป็นเทคนิคการหาคำตอบของปัญหาจากการเลียนแบบระบบการปฏิบัตการในชีวิตจริง เนื่องจากไม่สามารถรอให้เกิดเหตุการจริงได้
การจำลองสถานการณ์ มีวัตถุประสงค์หลัก 2 ประการ คือ
1. เพื่อใช้ในการเรียนรู้และฝึกทักษะ
2. เพื่อเตรียมสารสนเทศ ( infomation ) สำหรับประกอบการตัดสินใจ

1. การจำลองแบบมอนติคาร์โล (Monte Carlo Simulation)
เป็นการจำลองสถานการณ์เพื่อใช้กับระบบที่ค่าของตัวแปรเกิดขึ้นด้วยความน่าจะเป็นต่างๆกันโดยใช้เลขสุ่ม เป็นเครื่องมือ มีวิธีการดังนี้
1. กำหนดตัวแปรสำคัญของระบบ
2. ระบุการแจกแจงความน่าจะเป็นของตัวแปรสำคัญแต่ละตัว
3. สร้างตารางการแจกแจงความน่าจะเป็นสะสมของตัวแปรสำคัญแต่ละตัว
4.กำหนดช่วงของเลขสุ่มสำหรับตัวแปรแต่ละตัว
5.สร้างเลขสุ่ม
6.ดำเนินการจำลองสถานการณ์

ตัวแปรสำคัญของแต่ละระบบที่จะทำการจำลองเช่น

-การจำลองระบบสินค้าคงคลัง
1.ปริมาณความต้องการสินค้าต่อหน่วยเวลา
2.เวลาที่ต้องรอสินค้ามาส่ง (lead time)

-การจำลองสถานการณ์ระบบแถวคอย
1.เวลาระหว่างการมาถึงของผู้รับบริการ
2.เวลาที่ให้บริการ

-การจำลองสถานการณ์การควบคุมโครงงาน
1.เวลาที่กิจกรรมแต่ละกิจกรรมใช้
2.จำนวนพนักงานหรือคนงานที่ขาดงานต่อวัน

2.การจำลองสถานการณ์ของการควบคุมสินค้าคงคลัง
จะนำการจำลองสถานการณ์เข้ามาใช้กรณีที่ตัวแบบมีความน่าจะเป็นเข้ามาเกี่ยวข้อง (Probabilistic model) คือมีความไม่แน่นอนของปริมาณความต้องการสินค้า หรือเวลาที่ต้องรอสินค้าที่สั่งไปมาส่ง (lead time)
2.1 กรณีที่ปริมาณความต้องการสินค้าไม่แน่นอน สั่งสินค้าแล้วได้รับทันที
2.2 กรณีที่ปริมาณความต้องการสินค้าไม่แน่นอน แต่เวลาที่ต้องรอสินค้าที่สั่งคงที่
2.3 กรณีที่ปริมาณความต้องการสินค้าไม่แน่นอน เวลาที่รอสินค้าที่สั่งคงที่ และมีการส่งสินค้าชดเชยให้ลูกค้า
2.4 กรณีปริมาณความต้องการสินค้าไม่แน่นอน และเวลาที่ต้องรอสินค้ามาส่งไม่แน่นอน

3.การจำลองสถานการณ์ของระบบแถวคอย
3.1 การจำลองสถานการณ์ของระบบแถวคอยที่มีผู้ให้บริการคนเดียว และการบริการขั้นตอนเดียว

4.การใช้สถิติวิเคราะห์ในการจำลองสถานการณ์
4.1 การหาช่วงเชื่อมั่น (Confidence interval)
4.2 การหาจำนวนรอบของการจำลองสถานการณ์



การควบคุมสินค้าคงคลัง [ Inventory Control ]

สินค้าคงคลัง หมายถึงทรัพยากรที่องค์กรถือครองไว้ในช่วงเวลาหนึ่ง เพื่อการผลิต การจำหน่าย หรือ เพื่อการบริหารองค์กร

1. การตัดสินใจเกี่ยวกับการควบคุมสินค้าคงคลัง
ซึ่งผู้บริหาร่ต้องทำการตัดสินใจหลักๆ 2 ประการคือ
1.จะสั่งสินค้าครั้งละเท่าไร
2. เมื่อไหร่จึงจะสั่งสินค้าเพิ่ม
โดยการตัดสินใจ 2 ประการนี้ต้องคำนึงถึงปัจจัยต่างๆที่เกี่ยวข้องได้แก่
ก. ค่าใช้จ่ายในการสั่งซื้อ (Ordering cost)
ข. ค่าใช้จ่ายในการเก็บรักษา (Storage cost)
ค. ค่าใช้จ่ายหรือค่าเสียโอกาสเมื่อสินค้าขาดมือ (Shortage cost) เกิดขึ้นเมื่อความต้องการสินค้ามีมากกว่าปริมาณสินค้าที่มีอยู่
ง. ความต้องการสินค้าในอนาคต (Feture demand)
จ. ผลกระทบของการได้รับส่วนลดเมื่อมีการสั่งซื้อสินค้าครั้งละมากๆ (Quantity discount)
ฉ. ผลกระทบของการต้องรอสินค้าที่สั่ง (Nonzero lead time) เวลาที่ต้องรอสินค้าที่สั่งอาจเป็นแบบคงที่ (Deterministic) หรือ แบบไม่คงที่ (Probabilistic)
ช. ผลกระทบจากนโยบายการสั่งซื้อ (Ordering policy) โดยทั่วไปมี 2 ระบบคือ
->1. ระบบจุดสั่งซื้อใหม่ (order point system)
->2. ระบบตรวจสอบเป็นระยะ (periodic review system)

2. ระบบสินค้าคงคลัง ABC
มีหลักการว่าจะแบ่งรายการสินค้าทั้งหมดขององค์กร ออกเป็น 3 กลุ่ม คือ
กลุ่ม A มีจำนวนรายการสินค้า 10% ของรายการทั้งหมด แต่มีมูลค้าทางการเงินประมาณ 70% ของเงินทุน จึงต้องมีการควบคุมดูแลระดับสินค้าอย่างใกล้ชิดไม่ให้เกิดสินค้าขาดมือ เป็นกลุ่มที่ต้องควบคุมด้วยการวิเคราะห์เชิงปริมาณ อย่างเข้มงวด
กลุ่ม B มีรายการสินค้า 20 % และ มูลค่าทางการเงิน 20% ของเงินทุน เป็นกลุ่มที่ไม่ต้องควบคุมเข้มงวดเท่ากลุ่ม A
กลุ่ม C มีรายการสินค้า 70% และ มูลค่าทางการเงิน 10% ของเงินทุนอาจไม่ควบคุม

3. ตัวแบบควบคุมสินค้าคงคลังเมื่อความต้องการสินค้าคงที่
(Deterministic Inventory Model)
- Ordering policy -> กำหนดจุดสั่งซื้อเพิ่ม
- ความต้องการสินค้าของลูกค้าเป็นสิ่งที่ทราบแน่นอน หรือคาดคะแนได้และมีค่าคงที่ในช่วงเวลาที่กำหนด

3.1 ปริมาณการสั่งซื้อที่ประหยัด
(Economic Order Quantity Model : EOQ)
- ใช้ในการควบคุมสินค้าคงคลังเพียงชนิดเดียว มีข้อตกลงเบื้องต้นดังนี้
ก. ปริมาณความต้องการสินค้าทราบแน่นอนและเป็นปริมาณคงที่ในช่วงเวลาที่ศึกษา
ข. ปริมาณการสั่งซื้อต่อครั้งเป็นค่าคงที่
ค. เวลาของการควบคุมสินค้าคงคลังเป็นช่วงเวลาต่อเนื่อง

3.2 ปริมาณการสั่งซื้อที่ประหยัดการณีได้รับสินค้าที่สั่งทันที (Zero lead time)

Q คือปริมาณการสั่งซื้อต่อครั้ง
D คือปริมาณความต้องการสินค้าต่อหน่วยเวลา

Q/D คือระยะเวลาระหว่างการสั่งซื้อสินค้า (Inventory Cycle)
คชจ. ที่เกิดขึ้น ประกอบด้วย
- คชจ. ในการสั่งซื้อ
- คชจ. ในการเก็บรักษาสินค้า

C* คชจ. รวมที่ต่ำที่สุด
Q* ปริมาณการสั่งซื้อที่ประหยัดที่สุด

การคำนวณหาปริมาณการสั่งซื้อที่ประหยัดที่สุด (Q*) ทำโดย
ให้
K= คชจ.ในการสั่งซื้อต่อครั้ง
H=คชจ.ในการเก็บรักษาสินค้าต่อหน่วยเวลา ต่อหน่วยสินค้า
TC = คชจ.รวม
D=ปริมาณความต้องการสินค้าในช่วงเวลาหนึ่ง
Q=ปริมาณการสั่งซื้อต่อครั้ง

จำนวนครั้งที่สั่งซื้อต่อหน่วยเวลา =ปริมาณความต้องการสินค้าต่อหน่วยเวลา (D) / ปริมาณการสั่งซื้อต่อครั้ง(Q)

จำนวนครั้งที่สั่งซื้อต่อหน่วยเวลา = D/Q

คชจ.ในการสั่งซื้อต่อหน่วยเวลา = คชจ.ในการสั่งซื้อต่อครั้ง x จำนวนครั้งที่สั่งซื้อต่อหน่วยเวลา
คชจ.ในการสั่งซื้อต่อหน่วยเวลา = K * D/Q

คชจ.ในการเก็บรักษา = (Q/2) * H

ปริมาณการสั่งซื้อที่ประหยัดที่สุด Q* = root(2KD/H)

คชจ.รวม TC= K(D/Q) + (Q/2)*H

เวลาระหว่างการสั่งซื้อแต่ละครั้ง = Q/D

3.3 ปริมาณการสั่งซื้อที่ประหยัดกรณีไม่ได้รับสินค้าที่สั่งทันที
(Non-zero lead time)

ก. เมื่อสินค้ามาครบเต็มจำนวนที่สั่ง
เพิ่ม ทำการคำนวณหาว่าเมื่อใดควรสั่งสินค้าเพิ่ม หมายถึงเมื่อสินค้าในคลังลดลงจนถึงปริมาณเท่าใดจึงควรสั่งเพิ่ม เพื่อให้สินค้ามาทันขาย

RQ = จุดที่ปริมาณสินค้าคงคลังเหลืออยู่ขณะที่สั่งซื้อเพิ่ม
L = เวลาที่รอให้สินค้าที่สั่งมาถึง (lead time)
d = ความต้องการสินค้า ต่อหน่วยเวลาระหว่างรอสินค้ามาส่ง

RQ = L*d

ข. เมื่อสินค้าทยอยมาถึง
- มีค่าที่เกี่ยวข้องอีกค่าหนึ่ง คือ อัตราการมาถึงของสินค้า หรือ อัตราการผลิต ซึ่งเป็นอัตราคงที่ในช่วงเวลาการผลิต และใช้หน่วยเดียวกับอัตราความต้องการสินค้า

ให้
p = อัตราการมาถึง หรือ อัตราการผลิตต่อหน่วยเวลา

tp = เวลาตั้งแต่เริ่มสั่งสินค้าจนกระทั่งสินค้ามาถึงครบ
td = เวลาตั้งแต่ได้รับสินค้าครบจนกระทั่งขายสินค้าหมด
Q = ปริมาณสินค้าที่สั่งต่อครั้ง

ดังนั้น ระยะเวลาระหว่างการสั่งสินค้า (Inventory cycle) = tp + td

คชจ. ในการสั่งซื้อ = K(D/Q)

ให้
t=ระยะเวลาที่ใช้ในการผลิตหรือระยะเวลาที่ต้องรอจนกว่าจะได้สินค้าครบ
= ประมาณที่สั่ง / อัตราการผลิต
= Q/p

D=อัตราความต้องการสินค้า
Dt=ปริมาณสินค้าที่ใช้ไปในระหว่างการผลิตหรือระหว่างการรอ
= อัตราความต้องการสินค้า x ระยะเวลาที่ต้องรอจนกว่าจะได้รับสินค้าครบ
= D * (Q/p)

เมื่อโรงงานส่งสินค้ามาครบปริมาณที่สั่ง
ให้
ML=ระดับปริมาณสินค้าที่มีมากที่สุด (Maximum Inventory Level)
= ปริมาณที่สั่ง - ปริมาณที่ใช้ไป
= Q - D(Q/p)
= Q(1-D/p)

ปริมาณสินค้าคงคลังโดยเฉลี่ย = 1/2 (ระดับปริมาณสินค้าที่มีมากที่สุด) = Q/2(1-D/p)

คชจ. ในการเก็บรักษา = คชจ.ในการเก็บรักษาต่อหน่วยเวลา * ปริมาณสินค้าคงคลังโดยเฉลี่ย = H*Q/2*(1-D/p)

จุดที่คชจ.ต่ำสุด เป็นจุดที่ คชจ.ในการสั่งซื้อ = คชจ.ในการเก็บรักษาสินค้าคงคลัง

K(D/Q) = H(Q/2)*(1-D/p)

ปริมาณการสั่งซื้อที่ประหยัดที่สุด = Q*=root(2KD/H(1-D/p)

คชจ.รวมในการสั่งซื้อ = TC = K(D/Q) + H(Q/2)* (1-D/p)

3.4 ปริมาณการสั่งซื้อที่ประยัด กรณีมีส่วนลดตามปริมาณการสั่งซื้อ
(Quantity Discounts)

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

คชจ.รวม = ต้นทุดสินค้า + คชจ.ในการสั่งซื้อ + คชจ.ในการเก็บรักษา

ให้
C=ต้นทุสสินค้าต่อหน่วย
D=ปริมาณความต้องการสินค้า ต่อหน่วยเวลา
I=คชจ.ในการเก็บรักษาสินค้ากรณีมีส่วนลด หน่วยเป็น % ของต้นทุนสินค้าต่อหน่วย(C)

ต้นทุนสินค้า = CxD
คชจ. ในการสั่งซื้อ = K(D/Q)
คชจ. ในการเก็บรักษา = H(Q/2)
คชจ. รวม = CD + K(D/Q) + H(Q/2)
ปริมาณการสั่งซื้อที่ประยัดที่สุด = Q*=root(2KD/IC)

ขั้นตอนการหาปริมาณสั่งซื้อที่ประหยัดที่สุดมีดังนี้
1. คำนวณปริมาณการสั่งซื้อที่ประหยัดสุดของแต่ละช่วงที่กำหนด
2. ในแต่ละช่วงการลด ถ้าปริมาณการสั่งซื้อที่คำนวณได้ต่ำกว่าค่าต่ำสุดที่จะได้ส่วนลด ให้ปรับตัวเลขเป็นค่าต่ำสุดของช่วงนั้นๆ
3. คำนวณค่าใช้จ่ายรวมของปริมาณการสั่งซื้อแต่ละช่วง
4. จากข้อ 3 พิจารณาค่าใช้จ่ายรวมที่ต่ำสุดและ เลือกปริมาณการสั่งซื้อที่ให้ค่าใช้จ่ายความต่ำสุด

3.5 ปริมาณการสั่งซื้อที่ประหยัด กรณีเมื่อสินค้าขาดมือ (Shortage Allowed)
เนื่องจาก demand มากกว่าสินค้าที่มีอยู่ ทำให้เกิดเหตุการณ์ 2 อย่างคือ
1. ลูกค้าไปซื้อสินค้านั้นที่อื่น ทำให้ขาดกำไร
2. ลูกค้ารอสินค้าโดยการจองไว้ก่อน

M = ปริมาณสูงสุดของสินค้าในคลังสินค้า
Q = ปริมาณที่สั่ง/ครั้ง
ปริมาณสินค้าขาดมือ = Q-M
D = ปริมาณความต้องการสินค้าต่อปี

ระยะเวลาตั้งแต่มีสินค้าปริมาณ M จนถึงสินค้าหมด = M/D
ระยะเวลาระหว่างการสั่งสินค้าสินค้า = Q/D

จำนวนครั้งที่สั่งต่อปี = D/Q ครั้ง หรือเรียกว่าจำนวนรอบต่อปี
คชจ.ในการเก็บรักษาต่อปี = คชจ.ในการเก็บรักษาต่อรอบ * จำนวนรอบต่อปี
โดย
คชจ.ในการเก็บรักษาต่อรอบ = ปริมาณสินค้าคงคลังโดยเฉลี่ย * คชจ.ในการเก็บรักษา = MMH/2D

คชจ.ในการเก็บรักษาต่อปี = MMH/2Q

S=คชจ.ที่เกิดขึ้นเนื่องจากสินค้าขาดมือ(shortage cost) 1 ชิ้นต่อปี

คชจ.ซื้งเกิดขึ้นจากสินค้าขาดมือต่อปี = คชจ.จากสินค้าขาดมือ * จำนวนรอบต่อปี

ปริมาณสินค้าขาดมือโดยเฉลี่ย = Q-M / 2

ช่วงเวลาที่สินค้าขาดมือ ในช่วงหนึ่ง = Q-M /D

คชจ.จากสินค้าขาดมือต่อรอบ = ปริมาณสินค้าขาดมือโดยเฉลี่ย * คชจ.ที่เกิดขึ้นจากสินค้าขาดมือในระหว่างเวลาที่สินค้าขาดมือ

คชจ.จากสินค้าขาดมือต่อรอบ = (Q-M/2)*(Q-M/D) * S = (Q-M) กำลัง2 *S / 2D

คชจ.ซื้งเกิดขึ้นจากสินค้าขาดมือต่อปี = (Q-M)กำลัง2*S / 2Q

คชจ.ในการสั่งซื้อต่อปี = K(D/Q)

คชจ.รวมต่อปี = คชจ.ในการสั่งซื้อต่อปี + คชจ.ในการเก็บรักษาต่อปี + คชจ.จากสินค้าขาดมือต่อปี
Q* = root(2KD(H+S))/HS

M* = root(2KDS/H(H+S)

ปริมาณสินค้าขาดมือสูงสุด = Q* - M*

หากเป็นกรณีที่ลูกค้าสั่งจองไว้แล้วมารับสินค้าเมื่อสินค้ามาถึง หรือ จัดส่งตามไปให้ลูกค้าที่สั่งจอง Q*-M* จะเป็นปริมาณสินค้าสูงสุดที่ลูกค้าจอง

4. ตัวแบบควบคุมสินค้าคงคลังเมื่อความต้องการสินค้าไม่คงที่
(Probabilistic Inventory Model)
- ปริมาณความต้องการสินค้าแต่ละระดับมีความน่าจะเป็นกำกับอยู่

4.1 การสำรองพิเศษ (Safety stock)
ก. เมื่อความต้องการสินค้าระหว่างรอสินค้าที่สั่งเพิ่มแจกแจงแบบไม่ต่อเนื่อง
(A discrete distribtion for demand during lead time)
- ความต้องการสินค้าไม่คงที่ หมายความว่าปริมาณความต้องการสินค้าเป็นตัวแปรเชิงสุ่ม
- พิจารณาว่าควรมีปริมาณการสำรองพิเศษเท่าใดจังเสี่ยงน้อยที่สุดกับการขาดโอกาสกำไร และ ไม่ต้องเสียคชจ.ในการเก็บรักษามากเกินจำเป็น

SL(safety stock level) = ปริมาณสำรองพิเศษ
พิจารณาจาก
1.คชจ.เมื่อสินค้าขาดมือ(Shortage cost)
2.คชจ.ในการเก็บรักษาสินค้าสำรองพิเศษ (Safety stock cost)

การมีสินค้าสำรองพิเศษทำให้คชจ.เมื่อสินค้าขาดมือลดลง แต่เพิ่มค่าเก็บรักษา การกำหนดปริมาณสินค้าสำรองพิเศษ จึงพิจารณาจากระดับที่ทำให้คชจ.สองชนิดรวมกันต่ำที่สุด โดยมีข้อตกลงเบื้องต้น(assumption)ว่า
ก. ปริมาณความต้องการสินค้าไม่คงที่
ข. ช่วงเวลารอสินค้าที่สั่งเพิ่มมาส่ง (lead time) คงที่

ข. เมื่อความต้องการสินค้าระหว่างรอสินค้าที่สั่งเพิ่มแจกแจงแบบต่อเนื่อง
(A continuous distribution for demand during lead time)

4.2 ตัวแบบสินค้าคงคลัง แบบช่วงเวลาเดียว
(Single-period Inventory Model)

1.การวิเคราะห์ผลตอบแทน (Payoff analysis)
เป็นการพิจารณาปริมาณสั่งซื้อที่ระดับต่างๆว่าให้ผลตอบแทน หรือ ผลกำไรคาดหวังเป็นเท่าใด แล้วเลือกปริมาณการสั่งซื้อที่ให้ผลตอบแทนคาดหวังสูงสุพด ต้องคำนึงถึง ต้นทุน และ มูลค่าสินค้าที่ตกค้างด้วย
ให้

Q=ปริมาณการสั่งซื้อ
D=ยอดขายหรือปริมาณความต้องการสินค้า
V=มูลค่าสินค้าตกค้าง(ราคา/หน่วย)
P=ราคาขาย/หน่วย
C=ต้นทุน/หน่วย
G=กำไร

ถ้า D มากกว่าหรือเท่ากับ Q จะได้ G=รายได้ - ต้นทุน = PQ-CQ = (P-C)Q
ถ้า D น้อยกว่า Q จะได้ G= รายได้ - ต้นทุน + รายได้จากสินค้าตกค้าง = PD - CQ + V(Q-D)

EP(Qi) = ค่าคาดหวังของผลกำไร (expected profit) ณ ปริมาณการสั่งซื้อต่างๆกัน
= sum ตั้งแต่ j=1 ถึง n (GijP(Dj))

โดย Gij คือ กำไรที่ได้ ณ ปริมาณสั่งซื้อ Qi และขาย Dj
P(Dj) คือค่าความน่าจะเป็นของยอดขาย j
การวิเคราะห์ผลตอบแทนจะเลือกค่า EP(Qi) ที่มีค่าสูงสุด

2.การวิเคราะห์ส่วนเพิ่ม (Marginal analysis)
- เป็นการวิเคราะห์มูลค่าของหน่วยสินค้าที่เพิ่มขึ้น
- การคำนวณโอกาสที่จะขายสินค้าหน่วยที่เพิ่มนี้ได้จะช่วยในการตัดสินใจว่าควรสั่งซื้อสินค้าจำวนวนเท่าใด จึงได้รับผลตอบแทนที่ดีที่สุด
ให้
Q= ปริมาณการสั่งซื้อ
MP= กำไรที่ได้จากการขายสินค้า 1 หน่วยที่สั่งเพิ่มขึ้น (marginal profit) = ราคาขาย - ต้นทุนสินคา
ML= การสูญเสีย หรือ การขาดกำไรจากการที่ขายสินค้าหน่วยที่สั่งเพิ่มไม่ได้ (marginal loss) = ต้นทุนสินค้า - มูลค่าสินค้าที่ตกค้าง
D=ปริมาณความต้องการสินร้า
P(Dมากกว่าหรือเท่ากับQ) = ความน่าจะเป็ฯชนที่ปริมาณความต้องการสินค้ามากกว่าหรือเท่ากับปริมาณที่สั่งไว้ = ความน่าจะเป็นที่จะขายสินค้าหน่วยที่เพิ่มได้

ค่าคาดหวังกำไรของหน่วยที่เพิ่มขึ้น (expected marginal profit)
=กำไรหน่วยที่เพิ่มขึ้น * ความน่าจะเป็นที่จะขายสินค้าหน่วยที่เพิ่มได้
=MP*P(Dมากกว่าหรือเท่ากับQ)

ค่าคาดหวังการสูญเสียของหน่วยที่สั่งเพิ่ม(expected marginal loss)
=การสูญเสียของหน่วยที่เพิ่ม * ความน่าจะเป็นที่จะขายสินค้าหน่วยที่เพิ่มไม่ได้
=MP*P(Dนอ้ยกว่าQ)

กำไรคาดหวัง (expected incremental profit) = MP*P(Dมากกว่าหรือเท่ากับQ) - MP*P(Dนอ้ยกว่าQ)
แต่ P(Dนอ้ยกว่าQ) = 1 - P(Dมากกว่าหรือเท่ากับQ)

กำไรคาดหวัง = MP* P(Dมากกว่าหรือเท่ากับQ) - ML * { 1 - P(Dมากกว่าหรือเท่ากับQ) }

ถ้าค่าคาดหวังกำไรของหน่วยที่เพิ่มขึ้น มากกว่าหรือเท่ากับ ค่าคาดหวังการสูญเสียของหน่วยที่สั่งเพิ่มก็จะสั่งสินค้าเพิ่ม
นั่นคือ กำไรคาดหวัง มากว่า 0
ถ้ากำไรคาดหวัง = 0

จะได้ P(Dมากกว่าหรือเท่ากับQ) = ML/ML+MP

ทฤษฎีการตัดสินใจและทฤษฎีเกม

ทฤษฎีการตัดสินใจและทฤษฎีเกม

บรรณานุกรม

- วิชา or203 http://e-book.ram.edu/e-book/inside/html/dlbook.asp?code=OR203

Linear Programming :

- รายวิชา OR333 การโปรแกรมเชิงเส้น (Linear Programming) http://e-book.ram.edu/e-book/inside/html/dlbook.asp?code=OR333

- http://mit-ocw-thai.eng.chula.ac.th/OcwWeb/Civil-and-Environmental-Engineering/1-224JCarrier-SystemsFall2003/PDF/LectureNotes/lecture02.pdf

- การประยุกต์ใช้โปรแกรมเส้นตรง(Linear Programming) ในการวางแผนฟาร์ม http://www.oae.go.th/model/Anusorn/lp.htm