6  การโปรแกรมเชิงเส้น (Linear Programming (LP))

Modified

6 พฤษภาคม 2568

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

LP คือเทคนิคทางคณิตศาสตร์ สำหรับการหา “ค่าที่ดีที่สุด” (เช่น กำไรสูงสุด, ต้นทุนต่ำสุด)
โดยมีเงื่อนไขข้อจำกัด (constraints) ที่เป็น สมการเชิงเส้น หรือ อสมการเชิงเส้น

6.1 องค์ประกอบของ Linear Programming

1. ฟังก์ชันวัตถุประสงค์ (Objective Function)

เป้าหมาย คือ minimize ฟังก์ชันเชิงเส้น

รูปทั่วไป: minmaxZ=c1x1+c2x2++cnxn โดยที่

  • Z คือฟังก์ชันวัตถุประสงค์

  • c1,c2,,cn คือสัมประสิทธิ์ (เช่น กำไรต่อหน่วย, ต้นทุนต่อหน่วย)

  • x1,x2,,xn คือ ตัวแปรตัดสินใจ (Decision Variables)

2. ข้อจำกัด (Constraints)

เป็น สมการเชิงเส้น หรือ อสมการเชิงเส้น
โดยมีรูปทั่วไป: a11x1+a12x2++a1nxn (,=,) b1a21x1+a22x2++a2nxn (,=,) b2am1x1+am2x2++amnxn (,=,) bm โดยที่

  • aij คือสัมประสิทธิ์ข้อจำกัด

  • bi คือค่าคงที่ในข้อจำกัด

  • m คือจำนวนข้อจำกัด

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

3. เงื่อนไขตัวแปรไม่ติดลบ (Non-negativity Constraints)

ตัวแปรต้องเป็นค่าบวกหรือศูนย์:

x10,x20,,xn0

เพราะ ในความจริง เช่น จำนวนสินค้าผลิตได้ไม่เป็นลบ เป็นต้น

6.2 รูปเมทริกซ์ของ Linear Programming (Matrix Form)

รูปทั่วไปของ LP ใน Matrix Form

Maximize (or Minimize)Z=cTx

อสมการข้อจำกัด: Axb และ x0

อธิบายสัญลักษณ์:

สัญลักษณ์ ความหมาย
c เวกเตอร์สัมประสิทธิ์ในฟังก์ชันวัตถุประสงค์ (ขนาด n×1)
x เวกเตอร์ตัวแปรตัดสินใจ (ขนาด n×1)
A เมทริกซ์สัมประสิทธิ์ข้อจำกัด (ขนาด m×n)
b เวกเตอร์ค่าข้อจำกัดฝั่งขวา (RHS) (ขนาด m×1)

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

6.3 การหาคำตอบด้วยชุดคำสั่ง lpSolve

ชุดคำสั่ง ipSolve

lpSolve คือ แพ็กเกจในภาษา R สำหรับการแก้ ปัญหา Linear Programming (LP) และ Integer Linear Programming (ILP)

  • ใช้สำหรับ หา “ค่าที่ดีที่สุด” (maximize หรือ minimize) ของฟังก์ชันวัตถุประสงค์

  • ภายใต้ข้อจำกัดที่เป็น สมการเชิงเส้น หรือ อสมการเชิงเส้น

  • สามารถใช้แก้:

    • LP ปกติ (ตัวแปรเป็นจำนวนจริง)

    • ILP (ตัวแปรเป็นจำนวนเต็ม)

    • Transportation problems

    • Assignment problems

6.3.1 การติดตั้งและการเรียกใช้งานชุดคำสั่ง lpSolve

การติดตั้ง

install.packages("lpSolve")

การเรียกใช้งาน

library(lpSolve)
ตัวอย่างการทำงานของ lpSolve

maxZ=3x1+5x2 ข้อจำกัด: 2x1+x2100x1+3x290x1,x20

วิธีทำ แปลงเป็นเมทริกซ์

เวกเตอร์ c=[35], ตัวแปร x=[x1x2], เมทริกซ์ข้อจำกัด A=[2113],

เวกเตอร์ฝั่งขวา b=[10090]

การหาคำตอบด้วย lpSolve:

# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(3, 5)
# 2 เมตริกซ์ข้อจำกัด A
A <- matrix(c(2, 1, 1, 3), nrow = 2, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("<=", "<=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(100, 90)
# 5 หาคำตอบ
result <- lp(  direction = "max",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = A,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # ค่าตัวแปร x1 และ x2 ตามลำดับ
[1] 42 16
result$objval    # ค่าสูงสุดของ Z
[1] 206

6.4 ตัวอย่างประเภทปัญหาเศรษฐศาสตร์ที่ใช้ LP

Linear Programming ในเศรษฐศาสตร์ = ใช้ แก้ปัญหาการตัดสินใจอย่างมีข้อจำกัด
โดยมุ่งหา “การจัดสรรทรัพยากรอย่างเหมาะสมที่สุด” ภายใต้เงื่อนไขต่าง ๆ เช่น

  • เพิ่มกำไรสูงสุด

  • ลดต้นทุนต่ำสุด

  • ใช้ทรัพยากรจำกัดให้ได้ผลลัพธ์ดีที่สุด

6.4.1 การผลิต (Production)

โรงงานผลิตสินค้าสามชนิด

บริษัทแห่งหนึ่งผลิตสินค้า A, B และ C
สินค้า A ทำกำไร 6 บาทต่อหน่วย, สินค้า B ทำกำไร 8 บาทต่อหน่วย, และสินค้า C ทำกำไร 5 บาทต่อหน่วย แต่ละหน่วยของสินค้าใช้ทรัพยากรดังนี้:

  • วัตถุดิบ: สินค้า A ใช้ 2 หน่วย, B ใช้ 1 หน่วย, C ใช้ 1 หน่วย

  • แรงงาน: สินค้า A ใช้ 1 ชั่วโมง, B ใช้ 3 ชั่วโมง, C ใช้ 2 ชั่วโมง

  • เครื่องจักร: สินค้า A ใช้ 2 ชั่วโมง, B ใช้ 2 ชั่วโมง, C ใช้ 1 ชั่วโมง

โรงงานมีวัตถุดิบ 100 หน่วย, เวลาแรงงาน 120 ชั่วโมง และเครื่องจักร 150 ชั่วโมง บริษัทควรผลิตสินค้าแต่ละชนิดเท่าใดเพื่อให้กำไรสูงสุด?

วิธีทำ เขียนเป็นตารางสรุปได้ดังนี้

รายการ สินค้า A สินค้า B สินค้า C
กำไรต่อหน่วย (บาท) 6 8 5
การใช้วัตถุดิบ (หน่วย) 2 1 1
การใช้แรงงาน (ชั่วโมง) 1 3 2
การใช้เครื่องจักร (ชั่วโมง) 2 2 1
ข้อจำกัดรวม 100 (วัตถุดิบ) 120 (แรงงาน) 150 (เครื่องจักร)

ฟังก์ชันเชิงคณิตศาสตร์ maxZ=6A+8B+5C ข้อจำกัด: 2A+B+C100A+3B+2C1202A+2B+C150A,B,C0 เมตริกซ์รูปแบบ

c=[685],x=[ABC],Π=[211132221],b=[100120150]

ต้องเปลี่ยนเปลี่ยนชื่อเมตริกซ์ A เป็น Π เพื่อป้องกันการสับสนกับสินค้า A

การหาคำตอบด้วย lpSolve:

# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(6, 8, 5)
# 2 เมตริกซ์ข้อจำกัด Pi
Pi <- matrix(c(2, 1, 1, 
              1, 3, 2,
              2, 2, 1), nrow = 3, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("<=", "<=", "<=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(100, 120, 150)
# 5 หาคำตอบ
result <- lp(  direction = "max",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = Pi,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # สินค้า A B และ C ตามลำดับ
[1] 36 28  0
result$objval    # ค่าสูงสุดของ Z
[1] 440

6.4.2 การลงทุน (Investment)

การลงทุนในโครงการ

นักลงทุนมีงบลงทุน 1,000 บาท มี 3 โครงการ A, B และ C ให้เลือกลงทุน

  • ผลตอบแทนต่อหน่วยลงทุน:

    • A: 12%, B: 10%, C: 15%
  • ความเสี่ยงต่อหน่วย:

    • A: 0.5 หน่วย, B: 0.8 หน่วย, C: 0.3 หน่วย กำหนดให้:
  • เงินลงทุนรวมไม่เกิน 1,000 บาท

  • ความเสี่ยงรวมไม่เกิน 500 หน่วย

  • ต้องลงทุนในโครงการ A อย่างน้อย 100 บาท

ควรลงทุนในแต่ละโครงการอย่างไรเพื่อให้ผลตอบแทนสูงสุด?

วิธีทำ ตารางสรุปข้อมูลการลงทุน

รายการ โครงการ A โครงการ B โครงการ C
ผลตอบแทนต่อหน่วยลงทุน (%) 12% 10% 15%
ความเสี่ยงต่อหน่วย 0.5 หน่วย 0.8 หน่วย 0.3 หน่วย

ตารางสรุปเงื่อนไขข้อจำกัด

เงื่อนไข ข้อมูล
เงินลงทุนรวม ไม่เกิน 1,000 บาท
ความเสี่ยงรวม ไม่เกิน 500 หน่วย
เงินลงทุนในโครงการ A อย่างน้อย 100 บาท

ฟังก์ชันเชิงคณิตศาสตร์ maxZ=0.12A+0.10B+0.15C ข้อจำกัด: A+B+C10000.5A+0.8B+0.3C500A100A,B,C0 เมตริกซ์รูปแบบ c=[0.120.100.15]Π=[1110.50.80.3100],x=[ABC],b=[1000500100]

ต้องเปลี่ยนเปลี่ยนชื่อเมตริกซ์ A เป็น Π เพื่อป้องกันการสับสนกับโครงการ A

การหาคำตอบด้วย lpSolve:

# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(0.12, 0.10, 0.15)
# 2 เมตริกซ์ข้อจำกัด Pi
Pi <- matrix(c(1, 1, 1, 
              0.5, 0.8, 0.3,
              -1, 0, 0), nrow = 3, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("<=", "<=", "<=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(1000, 500, -100)
# 5 หาคำตอบ
result <- lp(  direction = "max",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = Pi,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # โครงการ A B และ C ตามลำดับ
[1] 100   0 900
result$objval    # ค่าสูงสุดของ Z
[1] 147

6.4.3 การขนส่ง (Transportation)

ปัญหาการขนส่งสินค้า

โรงงานสองแห่ง A และ B มีสินค้าพร้อมส่งรวม 700 หน่วย

  • โรงงาน A มีสินค้า 300 หน่วย และโรงงาน B มีสินค้า 400 หน่วย

  • สินค้าจะถูกส่งไปยังตลาด 3 แห่งคือ ตลาด 1, ตลาด 2 และตลาด 3

ความต้องการสินค้า:

  • ตลาด 1 ต้องการ 250 หน่วย

  • ตลาด 2 ต้องการ 200 หน่วย

  • ตลาด 3 ต้องการ 250 หน่วย

ค่าขนส่งต่อหน่วย:

  • จาก A ไป ตลาด 1 = 2 บาท, ตลาด 2 = 4 บาท, ตลาด 3 = 5 บาท

  • จาก B ไป ตลาด 1 = 3 บาท, ตลาด 2 = 1 บาท, ตลาด 3 = 7 บาท

โรงงานควรจัดการขนส่งสินค้าอย่างไรเพื่อให้ต้นทุนการขนส่งต่ำที่สุด?

วิธีทำ ส่งสินค้าจากคลัง A (300 หน่วย) และ B (400 หน่วย) ไปยังตลาด 1, 2, 3 ค่าขนส่งต่อหน่วย:

ตลาด 1 ตลาด 2 ตลาด 3
คลัง A 2 4 5
คลัง B 3 1 7

ความต้องการ:

  • ตลาด 1 ต้องการ 250

  • ตลาด 2 ต้องการ 200

  • ตลาด 3 ต้องการ 250

กำหนดให้ xij คือจำนวนสินค้าจากคลัง i ไปยังตลาด j โดยที่ i={A,B} และ j=1,2,3

ฟังก์ชันเชิงคณิตศาสตร์ minZ=2xA1+4xA2+5xA3+3xB1+1xB2+7xB3 ข้อจำกัด: xA1+xA2+xA3300xB1+xB2+xB3400xA1+xB1=250xA2+xB2=200xA3+xB3=250xij0

รูปแบบเมตริกซ์

เวกเตอร์ x=[xA1,xA2,xA3,xB1,xB2,xB3]T c=[245317],A=[111000000111100100010010001001],x=[xA1xA2xA3xB1xB2xB3],b=[300400250200250]

การหาคำตอบด้วย lpSolve:

# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(2, 4, 5, 3, 1, 7)
# 2 เมตริกซ์ข้อจำกัด Pi
Pi <- matrix(c(1, 1, 1, 0, 0, 0,
               0, 0, 0, 1, 1, 1,
               1, 0, 0, 1, 0, 0,
               0, 1, 0, 0, 1, 0,
               0, 0, 1, 0, 0, 1), nrow = 5, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("<=", "<=", "=", "=", "=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(300, 400, 250, 200, 250)
# 5 หาคำตอบ
result <- lp(  direction = "min",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = Pi,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # x_A1, x_A2, x_A3, x_B1, x_B2, x_B3
[1]  50   0 250 200 200   0
result$objval    # ค่าต่ำสุดของ Z
[1] 2150

6.4.4 การใช้ทรัพยากร (Resource Allocation) แรงงาน

การจัดสรรแรงงานในโรงงาน

โรงงานมีแรงงาน 80 คน ต้องจัดสรรคนทำงาน 3 ประเภท ได้แก่ งาน A, งาน B และงาน C

รายได้ต่อคน:

  • งาน A = 100 บาท

  • งาน B = 120 บาท

  • งาน C = 90 บาท

กำหนดเงื่อนไข:

  • งาน A ต้องมีแรงงานไม่น้อยกว่า 10 คน

  • งาน B ต้องมีแรงงานไม่น้อยกว่า 20 คน

  • จำนวนแรงงานในงาน C ต้องไม่น้อยกว่าจำนวนแรงงานในงาน A

ควรจัดสรรแรงงานในแต่ละงานอย่างไรเพื่อให้รายได้รวมสูงสุด?

วิธีทำ โรงงานมีแรงงาน 80 คน ต้องกระจายไปยังงาน A, B, และ C

  • รายได้ต่อหน่วยแรงงาน:

    • งาน A: 100 บาท

    • งาน B: 120 บาท

    • งาน C: 90 บาท

  • เงื่อนไข:

    • งาน A ต้องใช้ไม่น้อยกว่า 10 คน

    • งาน B ต้องใช้อย่างน้อย 20 คน

    • งาน C ต้องใช้คนไม่น้อยกว่างาน A

ฟังก์ชันเชิงคณิตศาสตร์ maxZ=100x1+120x2+90x3 ข้อจำกัด: x1+x2+x3=80x1+x2+x3=80x110x110x220x220x3x1x1+x30xi0

รูปแบบเมตริกซ์ c=[10012090],x=[x1x2x3],A=[111100010101],b=[8010200]

การหาคำตอบด้วย lpSolve:

# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(100, 120, 90)
# 2 เมตริกซ์ข้อจำกัด A
A <- matrix(c(1,  1, 1, 
             -1,  0, 0,
              0, -1, 0,
             -1,  0, 1), nrow = 4, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("=", "<=", "<=", "<=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(80, -10, -20, 0)
# 5 หาคำตอบ
result <- lp(  direction = "max",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = A,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # x1, x2 x3 ตามลำดับ
[1] 10 70  0
result$objval    # ค่าสูงสุดของ Z
[1] 9400

6.4.5 การใช้ทรัพยากร (Resource Allocation) งบประมาณ

การจัดสรรงบประมาณการตลาด

บริษัทควรจัดสรรงบประมาณอย่างไรในแต่ละช่องทางเพื่อให้ผลตอบแทนรวมสูงสุด? ถ้าบริษัทมีงบการตลาด 500,000 บาท ต้องกระจายงบประมาณไปยัง 3 ช่องทาง ได้แก่ โฆษณาทีวี, โฆษณาออนไลน์ และกิจกรรมอีเวนต์ โดยมีผลตอบแทนการลงทุน และเงื่อนไขงบประมาณดังนี้

ช่องทางโฆษณา ผลตอบแทนการลงทุน (ROI) เงื่อนไขงบประมาณ
โฆษณาทีวี 15% ต่อบาท ไม่เกิน 200,000 บาท
โฆษณาออนไลน์ 20% ต่อบาท ไม่น้อยกว่า 100,000 บาท
กิจกรรมอีเวนต์ 10% ต่อบาท ไม่เกิน 150,000 บาท

วิธีทำ บริษัทมีงบการตลาด 500,000 บาท ต้องแจกจ่ายให้กิจกรรมโฆษณา 3 ช่องทาง:
ทีวี (x1), ออนไลน์ (x2) และอีเวนต์ (x3)

  • ผลตอบแทน (ROI ต่อหน่วย): 0.15, 0.20, 0.10

  • ข้อจำกัด:

    • ทีวีลงทุนไม่เกิน 200,000

    • ออนไลน์อย่างน้อย 100,000

    • อีเวนต์ไม่เกิน 150,000

สามารถเขียนฟังก์ชันเชิงคณิตศาสตร์ maxZ=0.15x1+0.20x2+0.10x3 ข้อจำกัด: x1+x2+x3=500000x1200000x2100000x3150000xi0,i=1,2,3 รูปแบบเมตริกซ์ c=[0.150.200.10]x=[x1x2x3]A=[111100010001]b=[500000200000100000150000]

การหาคำตอบด้วย lpSolve:

# กำหนดให้แสดงผลลัพธ์เป็นตัวเลขไม่เกิน 999 ตำแหน่ง
options(scipen = 999)
# 0 เลือกใช้ชุดคำสั่ง loSolve
library(lpSolve)
# 1 กำหนดเวกเตอร์สัมประสิทธิ์ Coef
Coef <- c(0.15, 0.20, 0.10)
# 2 เมตริกซ์ข้อจำกัด A
A <- matrix(c(1, 1, 1, 
              1, 0, 0,
              0, -1, 0,
              0, 0, 1), nrow = 4, byrow = TRUE)
# 3 เวคเตอร์ทิศทางข้อจำกัด
directions <- c("=","<=" ,"<=","<=")
# 4 เมตริกซ์ b (ใช้เวคเตอร์ได้เลย)
b <- c(500000, 200000, -100000, 150000)
# 5 หาคำตอบ
result <- lp(  direction = "max",       # min หรือ max
             objective.in = Coef,       # เวกเตอร์สัมประสิทธิ์ Coef
                const.mat = A,          # เมตริกซ์ข้อจำกัด A
                const.dir = directions, # เวคเตอร์ทิศทางข้อจำกัด
                const.rhs = b)          # เมตริกซ์ b 
# ุ6 แสดงผลลัพธ์
result$solution  # ค่าตัวแปร x1 x2 และ x3 ตามลำดับ
[1]      0 500000      0
result$objval    # ค่าสูงสุดของ Z
[1] 100000

6.5 แบบฝึกหัด Linear Programming

ข้อ 1: การผลิตสินค้า A และ B

  • A ใช้วัตถุดิบ 2 หน่วย, แรงงาน 3 ชม.

  • B ใช้วัตถุดิบ 3 หน่วย, แรงงาน 2 ชม.

  • จำกัด: วัตถุดิบไม่เกิน 60 หน่วย, แรงงานไม่เกิน 80 ชม.

  • กำไร: A = 40, B = 50

ข้อ 2: ร้านอาหารปรุงอาหาร X และ Y

  • X ใช้เวลา 4 ชม./หน่วย, Y = 3 ชม./หน่วย

  • เวลาทั้งหมดไม่เกิน 90 ชม.

  • รายได้: X = 200, Y = 150

ข้อ 3: การจัดงบโครงการ A และ B

  • A ใช้งบ 5,000 บาท, คะแนน 60

  • B ใช้งบ 8,000 บาท, คะแนน 100

  • งบทั้งหมดไม่เกิน 100,000 บาท

ข้อ 4: กิจกรรมโรงเรียน

  • A ใช้เวลาครู 2 ชม., B = 3 ชม.

  • ครูให้เวลากับนักเรียนไม่เกิน 50 ชม.

  • กิจกรรมรวมไม่เกิน 30 ครั้ง

ข้อ 5: การใช้พื้นที่คลังสินค้า

  • P ใช้ 5 ตร.ม., Q = 8 ตร.ม.

  • ใช้พื้นที่ไม่เกิน 100 ตร.ม.

  • กำไร: P = 30, Q = 40

ข้อ 6: โรงงานน้ำดื่มบรรจุขวด

  • ขวดเล็ก: น้ำ 0.6 ลิตร, เวลา 2 นาที

  • ขวดใหญ่: น้ำ 1.5 ลิตร, เวลา 3 นาที

  • มีน้ำ 300 ลิตร, เวลา 600 นาที

  • กำไร: เล็ก = 8 บาท, ใหญ่ = 15 บาท

ข้อ 7: การจัดโฆษณาสื่อ

  • สื่อ A ใช้ 2 ชม./สัปดาห์, สื่อ B = 3 ชม.

  • เวลาทั้งหมดไม่เกิน 40 ชม.

  • สื่อ A เข้าถึงคน 500 คน, B = 700 คน

ข้อ 8: การจัดคนในงานนิทรรศการ

  • แผนก A ใช้พื้นที่ 10 ตร.ม., B = 15 ตร.ม.

  • พื้นที่ไม่เกิน 200 ตร.ม.

  • A ได้ความพึงพอใจ 40, B = 60

ข้อ 9: การจัดคาบเรียน

  • คาบบรรยาย: 2 ชม./คาบ

  • คาบปฏิบัติ: 3 ชม./คาบ

  • มีเวลาเรียนรวมไม่เกิน 60 ชม.

  • คาบบรรยายได้ประโยชน์ 5 หน่วย, ปฏิบัติ = 8 หน่วย

ข้อ 10: การผลิตเก้าอี้และโต๊ะ

  • เก้าอี้ใช้ไม้ 3 หน่วย, โต๊ะ = 5 หน่วย

  • ไม้มีรวม 150 หน่วย

  • กำไร: เก้าอี้ = 30, โต๊ะ = 50

ข้อ 11: โรงงานผลิตขนม

  • ขนม A ใช้เวลา 2 ชม., B = 3 ชม.

  • เวลาไม่เกิน 120 ชม.

  • รายได้: A = 10, B = 15

ข้อ 12: บริษัทให้บริการ A และ B

  • A ใช้พนักงาน 1 คน, B = 2 คน

  • มีพนักงาน 100 คน

  • รายได้ต่อบริการ: A = 400, B = 700

ข้อ 13: การวางแผนคลังสินค้า

  • A ใช้ที่เก็บ 4 หน่วย, B = 6 หน่วย

  • พื้นที่ไม่เกิน 180 หน่วย

  • กำไร: A = 20, B = 25

ข้อ 14: กิจกรรมสันทนาการ

  • กีฬา: ใช้ 3 ชม./กิจกรรม

  • ศิลปะ: ใช้ 2 ชม./กิจกรรม

  • เวลาไม่เกิน 90 ชม.

  • คะแนน: กีฬา = 10, ศิลปะ = 8

ข้อ 15: การผลิตหมวกและเสื้อ

  • หมวก: ผ้า 1 หน่วย, เสื้อ = 3 หน่วย

  • ผ้ามี 90 หน่วย

  • กำไร: หมวก = 25, เสื้อ = 40

ข้อ 16: การจัดพนักงานเข้าเวร

  • เวรกลางวัน: ใช้ 5 คน, กลางคืน = 3 คน

  • มีพนักงาน 60 คน

  • กลางวันให้ productivity 100, กลางคืน = 80

ข้อ 17: การเลือกลงทุน A และ B

  • A ต้องลงทุน 10,000, B = 15,000

  • ทุนรวมไม่เกิน 200,000

  • ผลตอบแทน: A = 1.2x, B = 1.5x

ข้อ 18: การใช้เวลาฝึกอบรม

  • หลักสูตร A = 4 ชม., B = 6 ชม.

  • เวลาไม่เกิน 240 ชม.

  • คะแนนทักษะ: A = 60, B = 90

ข้อ 19: โรงงานผลิตปูนซีเมนต์

  • A ใช้หิน 3 หน่วย, B = 2 หน่วย

  • หินไม่เกิน 300 หน่วย

  • รายได้: A = 50, B = 35

ข้อ 20: การจัดกิจกรรมอบรมครู

  • ครูสอนเนื้อหาใช้เวลา 2 ชม., สอนเทคนิค = 4 ชม.

  • เวลาครูรวมไม่เกิน 100 ชม.

  • คะแนน: เนื้อหา = 30, เทคนิค = 50