<< Chapter < Page Chapter >> Page >
Chương này trình bày cách xây dựng mô hình quy hoạch tuyến tính của những bài toán dạng đơn giản. Đây là những kiến thức quan trọng để xây dựng mô hình cho những bài toán phức tạp hơn trong thực tế sau này. Các khái niệm về ‘’ lồi’’ đuợc trình bày để làm cơ sở cho phương pháp hình học giải quy hoạch tuyến tính. Một ví dụ mở đầu được trình bày một cách trực quan để làm rõ khái niệm về phương án tối ưu của quy hoạch tuyến tính.

LÝ THUYẾT CƠ BẢN VỀ QUY HOẠCH TUYẾN TÍNH

Giới thiệu bài toán quy hoạch tuyến tính

Có thể tạm định nghĩa quy hoạch tuyến tính là lĩnh vực toán học nghiên cứu các bài toán tối ưu mà hàm mục tiêu (vấn đề được quan tâm) và các ràng buộc (điều kiện của bài toán) đều là hàm và các phương trình hoặc bất phương trình tuyến tính. Đây chỉ là một định nghĩa mơ hồ, bài toán quy hoạch tuyến tính sẽ được xác định rõ ràng hơn thông qua các ví dụ .

Các bước nghiên cứu và ứng dụng một bài toán quy hoạch tuyến tính điển hình là như sau :

a- Xác định vấn đề cần giải quyết, thu thập dữ liệu.

b- Lập mô hình toán học.

c- Xây dựng các thuật toán để giải bài toán đã mô hình hoá bằng ngôn ngữ thuận lợi cho việc lập trình cho máy tính.

d- Tính toán thử và điều chỉnh mô hình nếu cần.

e- Áp dụng giải các bài toán thực tế.

Bài toán vốn đầu tư

Người ta cần có một lượng (tối thiểu) chất dinh dưỡng i=1,2,..,m do các thức ăn j=1,2,...,n cung cấp. Giả sử :

aij là số lượng chất dinh dưỡng loại i có trong 1 đơn vị thức ăn loại j

(i=1,2,...,m) và (j=1,2,..., n)

bi là nhu cầu tối thiểu về loại dinh dưỡng i

cj là giá mua một đơn vị thức ăn loại j

Vấn đề đặt ra là phải mua các loại thức ăn như thế nào để tổng chi phí bỏ ra ít nhất mà vẫn đáp ứng được yêu cầu về dinh dưỡng. Vấn đề được giải quyết theo mô hình sau đây :

Gọi xj  0 (j= 1,2,...,n) là số lượng thức ăn thứ j cần mua .

Tổng chi phí cho việc mua thức ăn là :

z = j = 1 n c j x j = c 1 x 1 + c 2 x 2 + . . . . . . + c n x n size 12{z= Sum cSub { size 8{j=1} } cSup { size 8{n} } {c rSub { size 8{j} } x rSub { size 8{j} } } =c rSub { size 8{1} } x rSub { size 8{1} } +c rSub { size 8{2} } x rSub { size 8{2} } + "." "." "." "." "." "." +c rSub { size 8{n} } x rSub { size 8{n} } } {}

Vì chi phí bỏ ra để mua thức ăn phải là thấp nhất nên yêu cầu cần được thỏa mãn là :

min z = j = 1 n c j x j = c 1 x 1 + c 2 x 2 + . . . . . . + c n x n size 12{"min z"= Sum cSub { size 8{j=1} } cSup { size 8{n} } {c rSub { size 8{j} } x rSub { size 8{j} } } =c rSub { size 8{1} } x rSub { size 8{1} } +c rSub { size 8{2} } x rSub { size 8{2} } + "." "." "." "." "." "." +c rSub { size 8{n} } x rSub { size 8{n} } } {}

Lượng dinh dưỡng i thu được từ thức ăn 1 là : ai1x1 (i=1m)

Lượng dinh dưỡng i thu được từ thức ăn 2 là : ai2x2

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

Lượng dinh dưỡng i thu được từ thức ăn n là : ainxn

Vậy lượng dinh dưỡng thứ i thu được từ các loại thức ăn là :

ai1x1+ai2x2+...+ainxn (i=1m)

Vì lượng dinh dưỡng thứ i thu được phải thỏa yêu cầu bi về dinh dưỡng loại đó nên ta có ràng buộc sau :

ai1x1+ai2x2+...+ainxn  bi (i=1m)

Khi đó theo yêu cầu của bài toán ta có mô hình toán sau đây :

min z = j = 1 n c j x j = c 1 x 1 + c 2 x 2 + . . . . . . + c n x n size 12{"min z"= Sum cSub { size 8{j=1} } cSup { size 8{n} } {c rSub { size 8{j} } x rSub { size 8{j} } } =c rSub { size 8{1} } x rSub { size 8{1} } +c rSub { size 8{2} } x rSub { size 8{2} } + "." "." "." "." "." "." +c rSub { size 8{n} } x rSub { size 8{n} } } {}

a 11 x 1 + a 12 x 2 + . . . + a 1n x n b 1 a 21 x 1 + a 22 x 2 + . . . + a 2n x n b 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a m1 x 1 + a m2 x 2 + . . . + a mn x n b m x j 0 ( j = 1,2, . . . ,n ) { { { { size 12{alignl { stack { left lbrace a rSub { size 8{"11"} } x rSub { size 8{1} } +a rSub { size 8{"12"} } x rSub { size 8{2} } + "." "." "." +a rSub { size 8{"1n"} } x rSub { size 8{n} }>= b rSub { size 8{1} } {} # right none left lbrace a rSub { size 8{"21"} } x rSub { size 8{1} } +a rSub { size 8{"22"} } x rSub { size 8{2} } + "." "." "." +a rSub { size 8{"2n"} } x rSub { size 8{n} }>= b rSub { size 8{2} } {} # right none left lbrace "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." "." {} #right none left lbrace a rSub { size 8{"m1"} } x rSub { size 8{1} } +a rSub { size 8{"m2"} } x rSub { size 8{2} } + "." "." "." +a rSub { size 8{"mn"} } x rSub { size 8{n} }>= b rSub { size 8{m} } {} # right none left lbrace x rSub { size 8{j} }>= "0 " \( j="1,2," "." "." "." ",n" \) {} # right no } } lbrace } {}

Bài toán lập kế hoạch sản xuất

Từ m loại nguyên liệu hiện có người ta muốn sản xuất n loại sản phẩm

Giả sử :

aij là lượng nguyên liệu loại i dùng để sản xuất 1 sản phẩm loại j

(i=1,2,...,m) và (j=1,2,..., n)

bi là số lượng nguyên liệu loại i hiện có

cj là lợi nhuận thu được từ việc bán một đơn vị sản phẩm loại j

Vấn đề đặt ra là phải sản xuất mỗi loại sản phẩm là bao nhiêu sao cho tổng lợi nhuận thu được từ việc bán các sản phẩm lớn nhất trong điều kiện nguyên liệu hiện có.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Quy hoạch tuyến tính. OpenStax CNX. Aug 08, 2009 Download for free at http://cnx.org/content/col10903/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Quy hoạch tuyến tính' conversation and receive update notifications?

Ask