Tải bản đầy đủ (.pdf) (67 trang)

quy hoạch động và ứng dụng lý thuyết đồ thị

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 67 trang )

TRƢỜNG ĐẠI HỌC CẦN THƠ
KHOA SƢ PHẠM
BỘ MÔN SP TOÁN HỌC
------------

LUẬN VĂN TỐT NGHIỆP

Đề tài:

QUY HOẠCH ĐỘNG VÀ ỨNG DỤNG LÝ
THUYẾT ĐỒ THỊ

Giáo viên hướng dẫn

Sinh viên thực hiện

ThS. Hồ Hữu Hòa

Phạm Huyền Trang
MSSV: 1110144
Lớp: SP Toán –Tin k37

Cần Thơ, 2015

0


MỤC LỤC
Nội dung

Trang



PHẦN MỞ ĐẦU ........................................................................................................ 4
PHẦN NỘI DUNG .................................................................................................... 6
Chƣơng I: Bài toán tối ƣu hóa tổng quát và phân loại các bài toán. ................... 6
1.Bài toán tối ưu hóa tổng quát và phân loại các bài toán .......................................... 6
1.1.Bài toán tối ưu hóa tổng quát. ...................................................................... 6
1.2.Phân loại bài toán. ........................................................................................ 7
2.Vấn đề mô hình hóa toán học. .................................................................................. 7
2.1.Xây dựng mô hình toán học cho một vấn đề thực tế. ................................... 7
2.2.Một số mô hình thực tế................................................................................. 9
Chƣơng II: Các nguyên tắc cơ bản của quy hoạch động và quá trình nhiều giai
đoạn. ......................................................................................................................... 13
1.Phương pháp phương trình truy toán và các nguyên tắc cơ bản của Quy hoạch
động. .......................................................................................................................... 13
1.1.Bài toán phân phối một chiều và phương trình truy toán. .......................... 13
1.2.Các nguyên tắc cơ bản của Quy hoạch động.............................................. 14
2.Quy trình nhiều giai đoạn và phương trình hàm. ................................................... 15
2.1.Quá trình nhiều giai đoạn. .......................................................................... 15
2.2.Xây dựng phương trình hàm. ..................................................................... 17
2.3.Sơ đồ tính.................................................................................................... 17
Chƣơng III: Đại cƣơng về đồ thị. ........................................................................... 19
1.Các khái niệm cơ bản ............................................................................................. 19
1.1.Đồ thị. ......................................................................................................... 19
1.2.Biểu diễn đồ thị. ........................................................................................ 19
1.3.Bậc của đỉnh trong đồ thị ........................................................................... 22

1


2.Đồ thị có hướng ...................................................................................................... 22

2.1.Định nghĩa. ................................................................................................. 22
2.2.Bậc của đỉnh trong đồ thị có hướng. .......................................................... 23
3.Tính chất liên thông của đồ thị đồ thị .................................................................... 24
3.1.Định nghĩa. ................................................................................................. 24
3.2.Định lí. ........................................................................................................ 24
3.3.Tính liên thông trong đồ thị ........................................................................ 25
Chƣơng IV: Cây. ..................................................................................................... 28
1.Các khái niệm cơ bản ............................................................................................. 28
1.1.Cây và rừng. ............................................................................................... 28
1.2.Định lý về điều kiện đủ của cây ................................................................. 28
1.3.Cây có gốc .................................................................................................. 29
2.Cây khung .............................................................................................................. 29
2.1.Định nghĩa .................................................................................................. 29
2.2.Định lí. ........................................................................................................ 30
2.3.Cây khung bé nhất. ..................................................................................... 30
Chƣơng V: Các bài toán. ........................................................................................ 31
1.Bài toán tìm đường đi ngắn nhất ............................................................................ 31
1.1. Phương pháp quy hoạch động ................................................................... 31
1.2. Phương pháp đồ thị.................................................................................... 33
2.Bài toán trung tâm về tổ chức thi công .................................................................. 41
2.1.Bài toán ....................................................................................................... 41
2.2.Mô hình đồ thị của bài toán Gant ............................................................... 41
2.3.Mô hình đồ thị bài toán Pert ....................................................................... 44
2.4.So sánh hai mô hình của bài toán Gant và Pert .......................................... 45
3.Cây khung với trọng lượng nhỏ nhất ..................................................................... 45

2


3.1.Bài toán với cây trọng lượng nhỏ nhất ....................................................... 45

3.2.Các phương pháp giải ................................................................................. 46
4.Bài toán luồng cực đại trong mạng ........................................................................ 49
4.1.Khái niệm về mạng..................................................................................... 49
4.2.Luồng trên mạng ........................................................................................ 50
4.3.Bài toán ....................................................................................................... 51
4.4.Thuật toán Ford-Fullkerson ........................................................................ 51
5.Bài toán phân phối tài nguyên ................................................................................ 54
6. Bài toán xác định chế độ khoang giếng tối ưu. ..................................................... 61
6.1. Thiết lập bài toán ....................................................................................... 62
6.2.Phương pháp giải ........................................................................................ 62
6.3. Chương trình và kết luận ........................................................................... 63

PHẦN KẾT LUẬN
TÀI LIỆU THAM KHẢO

3


PHẦN MỞ ĐẦU
1. Lý do chọn đề tài:
Tốiưu hóa là một lĩnh vực toán học nghiên cứu về thuật toán giải các bài toán cực
trị. Nó là một phần kiến thức không thể thiếu được cho những người làm việc trong
các lĩnh vực ứng dụng của khoa học và kỹ thuật. Trong lý thuyết tối ưu, một trong
những bài toán đầu tiên được nghiên cứu trọng vẹn cả về phương diện lý thuyết lẫn
thuật toán là bài toán Quy hoạch tuyến tính. Ngay từ khi ra đời, Quy hoạch tuyến
tính đã chiếm một vị trí hết sức quan trọng; nó là một môn toán ứng dụng rất cần
thiết đối với sinh viên thuộc nhiều ngành học khác nhau. Từ lâu các giải thuật của
bài toán Quy hoạch tuyến tính đã tìm được phương án tối ưu trong các bài toán gắn
liền với cuộc sống thực tế của con người.
Thời gian gần đây xuất hiện một phương pháp tìm lời giải tối ưu cũng đang phát

triển mạnh mẽ đó là phương pháp Quy hoạch động. Nếu như phương pháp Quy
hoạch tuyến tính bị ràng buộc bởi các hàm mục tiêu là tuyến tính và phải dựa trên
nguyên tắc chính xác, phải biết rõ đường đi một cách chính xác đến kết quả cuối
cùng thì phương pháp Quy hoạch động không phải vậy. Phương pháp quy hoạch
động không cần phải biết rõ đường đi một cách chính xác đến kết quả cuối cùng
nhưng nó vẫn cho ta các kết quả tối ưu.
Sự xuất hiện của Quy hoạch động gắn liền với tên tuổi của nhà bác học Mỹ
R.Bellman mà trong những năm 50 của thế kỷ này đã áp dụng cho một bài toán thực
tế một số công cụ mà sau này gọi là nguyên tắc tối ưu. Chính nhờ sự đơn giản và
tường minh của nguyên tắc này mà phương pháp Quy hoạch động tỏ ra đặt biệt hấp
dẫn.
Ngoài sự hỗ trợ hiệu quả của nguyên tắc tối ưu thì lý thuyết đồ thị cũng tỏ ra hiệu
qua trong việc hỗ trợ giải quyết các bài toán Quy hoạch động. Lý thuyết đồ thị đã
đưa ra công cụ đồ thị để thực hiện các phương pháp khác nhau của Quy hoạch
động. Thật vậy, do giải pháp tìm kiếm của quy hoạch động là đi chuyển từng bước
và cho phép quay lui nên các thành phần của đồ thị như: đỉnh, cung (cạnh), đường
đi phục vụ rất hiệu quả các ý tưởng này. Vì vậy, các khái niệm và tính chất cơ bản
của đồ thị sẽ là các kiến thức rất quan trọng trước khi xét các bài toán của Quy
hoạch động.
Quy hoạch động và lý thuyết đồ thị là phần kiến thức mới mẻ đối với sinh viên sư
phạm bộ môn Toán. Với mong muốn tìm hiểu và khai thác sâu hơn về kiến thức
môn Quy hoạch động và ứng dụng của Lý thuyết đồ thị để mở rộng tầm hiểu biết
của bản thân nên em quyết định chọn đề tài “Quy hoạch động và ứng dụng lý thuyết
đồ thị”.
2. Mục đích nghiên cứu:
4


Hệ thống lại một cách chi tiết vấn đề lý thuyết liên quan đến Quy hoạch động, xây
dựng hệ thống bài tập vận dụng để từ đó thấy được tầm quan trọng và tính thực tế

của nó đối với các lĩnh vực khoa học kỹ thuật, các hoạt động của đời sống xã hội.
3. Nội dung nghiên cứu:
- Nghiên cứu các kiến thức liên quan đến bài toán Quy hoạch động: phân loại các
bài toán, các nguyên tắc cơ bản của Quy hoạch động, khái niệm về đồ thị, cây.
- Nghiên cứu các thuật toán để giải bài toán Quy hoạch động và một số bài tập
vận dụng các thuật toán.
4. Phƣơng pháp nghiên cứu:
- Phương pháp nghiên cứu lý luận: Sưu tầm tài liệu, nghiên cứu tài liệu sau đó
phân tích tổng hợp hệ thống hóa lại các kiến thức.
- Phương pháp lấy ý kiến: tham khảo ý kiến của người hướng dẫn.

5


PHẦN NỘI DUNG
CHƢƠNG I: BÀI TOÁN TỐI ƢU HÓA TỔNG QUÁT VÀ PHÂN LOẠI
CÁC BÀI TOÁN.
1. Bài toán tối ƣu hóa tổng quát và phân loại các bài toán.
Khi tiến hành kế hoạch sản xuất, điều khiển các hệ thống và thiết kế kỹ thuật mà
biết dựa trên các nguyên tắc cực trị ta sẽ tiết kiệm được vật tư tiền vốn, tài nguyên
sức lao động, thời gian và tăng hiệu quả giải quyết các vấn đề đặt ra.
Trên cơ sở đó chúng ta đã tìm ra được cơ sở lý thuyết và các phương pháp thực
hành để giải quyết các vấn đề đó mang tên là Tối Ưu Hóa hay còn gọi là Quy hoạch
toán học.
1.1.

Bài toán tối ƣu hóa tổng quát.

Bài toán tối ưu hóa tổng quát được phát biểu như sau:
Cực đại hóa (cực tiểu hóa) hàm:


f ( x)  max(min)

(1.1)

g i ( x)(, , )bi , i  1, m

(1.2)

x  X  Rn

(1.3)

Với các điều kiện:

Bài toán (1.1) + (1.3) được gọi là một quy hoạch, hàm f(x) được gọi là hàm mục
tiêu, các gi ( x), i  1, m được gọi là các hàm ràng buộc, mổi đẳng thức hoặc bất đẳng
thức trong hệ (1.2) được gọi là một ràng buộc. Tập hợp:

D  {x  X | g i ( x)(, , )bi , i  1, m}

(1.4)

được gọi là miền ràng buộc (hay miền chấp nhận được). Mỗi điểm

x  ( x1 , x2 ,..., xn )  D được gọi là một phương án (hay một lời giải chấp nhận được).
Một phương án x*  D đạt cực đại (hay cực tiểu) của hàm mục tiêu, cụ thể là:

f ( x*)  f ( x), x  D (đối với bài toán max)


f ( x*)  f ( x), x  D (đối với bài toán min)
được gọi là phương án tối ưu (lời giải tối ưu). Khi đó giá trị f (x*) được gọi là giá
trị tối ưu của bài toán.

6


1.2.

Phân loại bài toán.

Một trong những phương pháp thông dụng nhất để giải bài toán đặt ra là phương
pháp điểm diện, tức là: tính giá trị hàm mục tiêu f (x) trên tất cả các phương án,
sau đó so sánh các giá trị tính được để tìm ra giá trị tối ưu và phương án tối ưu của
bài toán. Tuy nhiên cách giải này khó có thể thực hiện được, ngay cả khi kính thước
của bài toán (có số biến n ràng buộc m) là không lớn, bởi vì tập D thông thường
gồm một số rất lớn các phần tử, trong nhiều trường hợp là không đếm được.
Vì vậy cần phải có những nghiên cứu trước về mặt lý thuyết để có thể tách ra từ bài
toán tổng quát những bài toán “dễ giải”. Khi nghiên cứu lý thuyết đó thường là:
-

Nghiên cứu các tính chất của các thành phần bài toán (hàm mục tiêu, các hàm
ràng buộc, các biến số, các hệ số,…).
Các điều kiện cần và đủ của cực trị.
Các điều kiện tồn tại lời giải chấp nhận được.
Tính chất của các đối tượng nghiên cứu.

Các tính chất của các thành phần của bài toán và đối tượng nghiên cứu giúp ta phân
loại các bài toán. Một bài toán tối ưu (quy hoạch tối ưu) được gọi là:
-


-

-

Quy hoạch tuyến tính hàm mục tiêu f (x) và tất cả các ràng buộc gi ( x), i  1, m là
tuyến tính. Một trường hợp riêng quan trọng của Quy hoạch tuyến tính là Bài
toán vận tải.
Quy hoạch tham số nếu các hệ số trong biểu thức của hàm mục tiêu và các ràng
buộc vào tham số.
Quy hoạch động nếu đối tượng xét là các quá trình có nhiều giai đoạn nói chung,
hay các quá trình phát triển theo thời gian nói riêng hay là trường hợp hàm mục
tiêu có dạng tách biến.
Quy hoạch phi tuyến nếu f (x) hoặc có ít nhất một trong các hàm g i (x) là phi

tuyến hoặc cả hai trường hợp đó cùng xảy ra.
- Quy hoạch rời rạc nếu miền ràng buộc D là tập rời rạc. Trong trường hợp riêng
khi các biến chỉ nhận giá trị nguyên ta có Quy hoạch nguyên. Một trường hợp
riêng của Quy hoạch nguyên là quy hoạch biến Booles khi các biến số chỉ nhận
giá trị 1 hoặc 0.
- Quy hoạch đa mục tiêu nếu trên cùng một miền ràng buộc ta xét nhiều hàm mục
tiêu khác nhau.
2. Vấn đề mô hình hóa toán học.
2.1. Xây dựng mô hình toán học cho một vấn đề thực tế.

7


Viêc mô hình hóa toán học cho một bài toán có thể chia làm 4 bước:
-


-

-

-

Bước 1: Xây dựng mô hình định tính cho vấn đề thực tế tức là xác định các yếu
tố có ý nghĩa quan trọng nhất và xác lập các quy luật mà chúng ta phải tuân theo.
Nói một các khác là phát biểu mô hình bằng lời, bằng biểu đồ, các điều kiện về
kinh tế, tự nhiên, xã hội, các mục tiêu cần đạt được.
Bước 2: Xây dựng mô hình toán học cho vấn đề đang xét, tức là diễn tả lại dưới
dạng ngôn ngữ toán học cho mô hình định tính. Khi có một hệ thống ta chọn các
biến số đặc trưng cho trạng thái của hệ thống. Mô hình toán học thiết lập mối
liên hệ giữa các biến số và các hệ số điều khiển hiện tượng. Việc làm quan trọng
ở bước này là phải xác định hàm mục tiêu, tức là một đặc trưng càng lớn (càng
nhỏ) của nó tương ứng với hiệu quả càng tốt hơn giải quyết được vấn đề mà
người nhận lời giải mong muốn. Tiếp theo đó là phải diễn tả bằng các phương
trình hoặc bất phương trình các điều kiện kinh tế, kỹ thuật,… đó là các ràng
buộc toán học mà các biến số phải tuân theo.
Bước 3: Sử dụng các công cụ toán học để khảo sát và giải quyết bài toán hình
thành trong bước 2. Căn cứ và mô hình đã xây dựng cần phải chọn hoặc xây
dựng phương pháp giải cho phù hợp. Tiếp đó cụ thể hóa phương pháp bằng các
thuật toán tối ưu. Vì các bài toán thực tế thường có kích thước lớn nên không thể
giải bằng tay mà phải sử dụng máy tính điện tử. Vậy cần chương trình hóa thuật
toán bằng ngôn ngữ lập trình phù hợp. Sau đó đưa lên máy tính điện tử để chạy
và in ra kết quả.
Bước 4: Phân tích và kiểm định lại các kết quả tính toán thu được trong bước 3,
trong bước này cần xác định mức độ phù hợp của mô hình và kết quả tính toán
với vấn đề thực nghiệm hoặc áp dụng phương pháp phân tích chuyên gia. Ở đây

có thể xảy ra một trong hai khả năng sau:

Khả năng 1: Mô hình và kết quả tính toán phù hợp với thực tế. Khi đó cần lập một
bảng tổng kết ghi rõ cách đặt vấn đề, mô hình toán học, thuật toán tối ưu, chương
trình, các chuẩn bị số liệu để đưa vào máy tính, nghĩa là toàn bộ các công việc cần
thiết cho việc áp dụng mô hình và kết quả để giải quyết vấn đề thực tế đặt ra. Trong
trường hợp mô hình cần được sử dụng nhiều lần thì phải xây dựng hệ thống phần
mềm đảm bảo giao diện thuận lợi giữa người sử dụng và máy tính điện tử, không
đòi hỏi người sử dụng phải có trình độ chuyên môn cao về Tin học.
Khả năng 2: Mô hình và kết quả bài toán không phù hợp với thực tế. Trong trường
hợp này cần phải xem xét lại các nguyên nhân của nó. Có thể nêu ra 4 nguyên nhân
sau:

8


 Nguyên nhân 1: Các kết quả tính toán trong bước 3 chưa có đủ độ chính xác cần
thiết. Khi đó cần phải xem xét lại các thuật toán cũng như các chương trình tính
toán đã viết và sử dụng.
 Nguyên nhân 2: Các số liệu ban đầu (các hệ số, thông số) không phản ánh đúng
thực tế giá cả hoặc chi phí trên thị trường hoặc các mức vật tư, các số liệu khác
về công suất, khả năng máy móc, dự trữ tài nguyên,.. lúc này cần điều chỉnh lại
một cách nghiêm túc, chính xác.
 Nguyên nhân 3: Mô hình định tính chưa phản ánh được đầy đủ hiện tượng trong
thực tế. Nếu vậy cần rà soát lại bước 1 xem có yếu tô hoặc quy luật nào còn bị
bỏ sót không?
 Nguyên nhân 4: Việc xây dựng mô hình toán học ở bước 2 chưa thỏa đáng. Cần
phải xây dựng lại cho phù hợp- mức độ tăng dần từ tuyến tính đến phi tuyến
tính, từ tĩnh đến động, từ nhất định đến ngẫu nhiên.
2.2. Một số mô hình thực tế.

2.2.1. Bài toán Quy hoạch tuyến tính.
Đề bài: Một công ty muốn sản suất hai loại sản phẩm mới A và B bằng các nguyên
liệu I, II và III. Suất chi phí nguyên liệu để sản xuất các sản phẩm đó cho trong bảng
sau, có ý nghĩa:
-

Để sản xuất 1 đơn vị sản phẩm A cần dùng 2 đơn vị nguyên liệu I và 1 đơn vị
nguyên liệu II.
Để sản xuất 1 đơn vị sản phẩm B cần dùng 1 đơn vị nguyên liệu I và 2 đơn vị
nguyên liệu II và 1 đơn vị nguyên liệu III.

Ban giám đốc công ty có dự trữ các loại nguyên liệu I, II và III tương ứng là 8, 7 và
3. Tiền lãi 1 đơn vị sản phẩm A là 4 triệu đồng, 1 đơn vị sản phẩm B là 5 triệu
đồng. Cần thiết lập kế hoạch sản xuất sao cho công ty thu được nhiều tiền lãi lớn
nhất trên cơ sở hạn chế về nguyên liệu.
Sản phẩm
Nguyên liệu
I
II
III
Chú thích:

x1 : lượng sản phẩm loại A.

x 2 : lượng sản phẩm loại B.

9

A


B

2
1
0

1
2
1


Mô hình bài toán có dạng:

f ( x)  4 x1  5x2  max
với các ràng buộc:

2 x1  x 2  8
x  2x  7
 1
2

x 2  3

 x1  0, x 2  0

(ràng buộc về nguyên liệu I)
(ràng buộc về nguyên liệu II)
(ràng buộc về nguyên liệu III)
(ràng buộc về dấu của biến số)


Bài toán lập kế hoạch sản xuất tối ưu tổng quát phát biểu như sau:
Giả sử một xí nghiệp sản xuất n loại sản phẩm và sử dụng m loại nguyên liệu khác
nhau.
Ta đưa vào các ký hiệu sau:

x j : lượng sản phẩm loại j ( j  1, n) mà xí nghiệp sản xuất.

c j : tiền lãi (hay giá bán) của đơn vị sản phẩm j ( j  1, n) .
a ij : suất chi phí tài nguyên loại i để sản xuất một đơn vị sản phẩm loại
j ( j  1, n) .

bi : lượng dữ trự tài nguyên loại i (i  1, m) .
Trong các điều kiện đã cho hãy xác định các giá trị x j ( j  1, m) sao cho tổng tiền lãi
(hay tổng giá trị sản lượng hàng hóa) là lớn nhất với số tài nguyên hiện có.
Mô hình toán học có dạng:
n

c x
j 1

j

j

 max

Với các điều kiện:

n
 aij x j  bi , i  1, m

 j 1
 x  0, j  1, n
 j

10


2.2.2. Bài toán vận tải.
Có m kho hàng cùng chứa một loại hàng hóa (đánh số i  1, m ) lượng hàng có ở
kho i là ai , (i  1, m) . Gọi kho i là điểm phát i . Cónđịa điểm tiêu thụ loại hàng trên
(đánh số j  1, n ) với nhu cầu tiêu thụ ở điểm j là b j , ( j  1, n) . Gọi điểm tiêu thụ
jlà điểm thuj.
Biết cij cước phí vận chuyển một đơn vị hàng hóa từ điểm phát i đến điểm thuj,
(i  1, m, j  1, n) . Hàng có thể vận chuyển từ điểm phát i bất kỳ đến điểm

thujbất kỳ.
Hãy lập kế hoạch vận chuyển hàng hóa từ điểm phát đến các điểm thu sao cho tổng
chi phí vận chuyển là nhỏ nhất với các điều kiện: các điểm phát thì phát hết hàng
hóa các điểm thu thì thỏa mãn nhu cầu.
Ký hiệu x ij là lượng hàng vận chuyển từ điểm phát iđến điểm thuj. Khi đó ta có mô
hình toán học:
m

n

 c
i 1 j 1

với các điều kiện sau:


ij

xij  min

n
 xij  ai , i  1, m
 j 1

m
 xij  b j , j  1, n
 i 1
 x  0, i  1, m, j  1, n
 ij



Ngoài ra còn điều kiện cân bằng thu phát:
m

n

 a  b
j 1

i

i 1

j


2.2.3. Bài toán cái túi.
Một người đi du lịch muốn đem theo một cái túi nặng không quá b kilogam có n đồ
vật mà anh ta dự định đem theo. Mỗi một đồ vật loại j có khối lượng a j kilogam

11


và giá trị cj, người đi du lịch muốn chất vào túi các đồ vật sao cho tổng giá trị đồ vật
đem theo là lớn nhất.
Ký hiệuxj là số đồ vật loại j sẽ chất vào trong túi, ta có bài toán sau :
n

c
j 1

j

x j  max

n
 a j x j  b
 j 1

 x j  0, j  1, n

 x j : nguyên , j  1, n

2.2.4. Bài toán Quy hoạch động.
Bài toán quy hoạch động:
Xét bài toán phân bổ tài nguyên:

Có một loại tài nguyên trữ lượng b cần phân phối cho n đơn vị sản xuất. Biết rằng
nếu phân phối cho đơn vị thứ j một lượng tài nguyên x j thì hiệu quả mang lại là

c j ( x j ), j  1, n .
Hãy lập kế hoạch phân phối trữ lượng tài nguyên b cho n đơn vị sản xuất sao cho
tổng hiệu quả là lớn nhất.
Mô hình trong bài toán có dạng:
n

c
j 1

j

n

x
j 1

j

( x j )  max
b

x j  0, j  1, n

12


CHƢƠNG II: CÁC NGUYÊN TẮC CƠ BẢN CỦA QUY HOẠCH

ĐỘNG VÀ QUY TRÌNH NHIỀU GIAI ĐOẠN.
1. Phƣơng pháp phƣơng trình truy toán và các nguyên tắc cơ bản của Quy
hoạch động.
1.1. Bài toán phân phối một chiều và phƣơng trình truy toán.
1.1.1. Bài toán phân phối.
Trong thực tế có nhiều tài nguyên khác nhau: nhân công, tiền, máy, nhiên liệu…
mỗi tài nguyên có thể sử dụng theo nhiều cách và cho nhiều hiệu quả khác nhau,
vấn đề đặt ra là cần phân phối các tài nguyên đó như thế nào để hiệu quả sử dụng
tổng cộng lại là lớn nhất.
Ta xét quá trình phân phối một tài nguyên. Có một tài nguyên trữ lượng a, có N
cách sử dụng. Nếu sử dụng x i đơn vị theo cách thứ i (i  1,2,..., N ) thì sẽ được hiệu
quả do bằng hàm  i ( xi ) . Hãy qui định số đơn vị x i cần dùng theo mỗi cách i để
tổng hiệu quả là lớn nhất.
Mô hình bài toán có dạng:
N

max i ( xi )  max R( x1 , x2 ,..., xN )

(2.1)

i 1

N
 xi  a
 i 1
 x  0, i  1, N
 i

(2.2)
(2.3)


xi và  i ( xi ) thường được biểu thị bởi những đơn vị đo khác nhau: chẳng hạn xi là
nhiên liệu thì  i ( xi ) là tốc độ; x i là tiền thì  i ( xi ) là máy, độ tin cậy. Độ lớn của
hiệu quả phụ thuộc vào số lượng tài nguyên sử dụng (a) và quá trình được lựa chọn
(N).
1.1.2 Phƣơng trình truy toán.
Để nghiên cứu bài toán trên ta lồng nó vào một họ các quá trình phân phối nào đó.
Thay cho một bài toán với số lượng tài nguyên a cho trước và số cách sửdụng N cố
định, ta xét một họ các bài toán như vậy, trong đó a và N thay đổi, tức là ta chuyển
quá trình tĩnh thành quá trình động.

13


Vì cực đại cùa hàm R( x1 , x2 ,..., xN ) chỉ phụ thuộc vào a và N, ta gọi trị tối ưu của bài
toán là f N (a) thì f N (a)  max R( x1 , x2 ,..., xN ) trong đó xi thỏa mãn (2.2) và (2.3). Khi N
thay đổi hãy tìm mối liên hệ giữa các hàm f N (a) . Vì ở đây ta biết ngay f1 (a)  1 (a) nên
có thể nói rõ hơn là: 1 (a) với a thay đổi, hãy tìm mối liên hệ giữa f 2 và f1 ,…, f N và f N 1
?
Giả sử xN : 0  xN  a là lượng tài nguyên quyết định đối với quá trình thứ N. Khi đó
bất kỳ xN như thế nào, số lượng còn lại a  xN sẽ được sử dụng để sao cho nhận
được thu nhập tối ưu của N  1 quá trình theo định nghĩa là f N 1 (a  xN ) nên sự quyết
định xN cho quá trình thứ N đi đến thu nhập tổng cộng đối với N quá trình:

 N ( xN )  f N 1 (a  xN )
Phương trình truy toán là:
N
 xi  a
f N (a)  max R( x1 , x2 ,..., xN )   i 1
 x  0, i  1, N

 i
 N 1
 xi  a  xN
 max [max R( x1 , x2 ,..., xN )]   i 1
0 x N  a
 x  0, i  1, N  1
 i
 N 1

  xi  a  xN
 max  N ( xN )  max i ( xi )   i 1
0 x N  a
i 1

  x  0, i  1, N  1
 j
N 1

Ta suy ra

f N (a)  max{ N ( xN )  f N 1 (a  xN )}, N  2,3,...;0  xN  a

(2.4)

Như vậy ta đã được bài toán cực trị của N biến về bài toán cực trị 1 biến và phương
trình (2.4) gọi là phương trình truy toán của quy hoạch động. Đó là ý nghĩa cơ bản
của phương pháp quy hoạch động giải bài toán cực trị bằng phương pháp phương
trình truy toán.
Biết f1 (a)  1 (a) , dựa vào phương trình truy toán (1.4) ta tìm được f 2 (a) , sau đó lại
thay f 2 (a) vào (2.4) ta tìm được f 3 (a) ,… cứ như vậy cho tới khi tìm được f N (a) .

Cơ sở của việc làm này là nguyên tắc tối ưu tổng quát mà ta xét trong mục sau đây.
14


1.2.

Các nguyên tắc cơ bản của Quy hoạch động.

Quy hoạch động là việc quy hoạch từng giai đoạn của quá trình nhiều giai đoạn mà
trong đó sau mỗi giai đoạn ta chỉ tối ưu hóa một bước. Tuy nhiên khi quy hoạch
một quá trình nhiều giai đoạn ở mỗi bước ta phải lựa chọn điều kiện trên cơ sở
không phải xuất phát từ lợi ích nhỏ hẹp của chính bước đó mà từ lợi ích chung của
toàn bộ quá trình.
1.2.1. Nguyên tắc đánh số từ dƣới lên.
Đối với giai đoạn cuối có thể làm cho nó tốt nhất mà không lo hậu quả. Khi đó giai
đoạn này trở nên ổn định mà ta có thể xét giai đoạn ở trước nó và cứ tiếp tục cho tới
lúc ta đi được tới gian đoạn đầu của quá trình.
1.2.2. Nguyên tắc thông số hóa bài toán.
Ở giai đoạn cuối cùng ta chưa biết kết quả nên ta phải đặt ra giả thuyết cho giai
đoạn này rồi ứng với giả thuyết đó ta tìm điều kiện tối ưu hóa cho giai đoạn cuối
cùng. Ở các bước khác tình hình xảy ra như vậy. Do đó quá trình điều khiển tối ưu
sẽ phụ thuộc vào các thông số đặc trưng cho kết quả ở bước trước.
1.2.3. Nguyên tắc lồng.
Ta lồng bài toán đang xét vào họ các bài toán. Họ các bài toán này nhờ có các tham
số nên ta giải được. ta cứ giải những bài toán thuộc họ này với các tham số khác
nhau cho tới khi gặp được tham số tương ứng với bài toán xuất phát thì xong.
1.2.4. Nguyên tắc tối ƣu hóa (Bellman).
Dáng điệu tối ưu có tính chất là: dù trạng thái ban đầu và điều khiển ban đầu có
dạng như thế nào thì điều khiển tiếp theo cũng là tối ưu đối với trạng thái thu được
trong kết quả tác động những điều khiển ban đầu.

Nhờ các nguyên tắc trên mà ta có thể viết ra một dãy các phương trình truy toán cho
phép chuyển việc giải một bài toán phức tạp gồm n biến số về giải n bài toán một
biến số.
2. Quá trình nhiều giai đoạn và phƣơng trình hàm.
2.1. Quá trình nhiều giai đoạn.
Xét một quá trình gồm n giai đoạn và đánh số bắt đầu từ giai đoạn cuối.
P(n  1)

P(n)

n

q(n)

)

P(k  1)

P(k )





k

q(k )

15


P(0)

P(1)

2

1

q(1)


Để xác định một quá trình n giai đoạn cần 6 yếu tố:
2.1.1. Vecto trạng thái.
Giải sử vecto trạng thái sản phẩm tham gia vào quá trình ở giai đoạn (n) chính là
trạng thái ban đầu của quá trình là P(n)  ( P1 (n),..., Ps (n)) .
Khi giai đoạn n kết thúc ta nhận được vecto trạng thái:

P(n  1)  ( P1 (n  1),..., Ps (n  1))
Có thể gọi trạng thái ban đầu của giai đoạn n  1 .
2.1.2. Vecto điều khiển.
Đối với giai đoạn n, trạng thái thu được

P(n  1) không

chỉ phụ thuộc vào trạng thái

ban đầu P(n) mà còn phụ thuộc vào vecto điều khiển.

q(n)  (q1 (n),..., qr (n))
Hệ vecto (q(n), q(n  1),..., q(1)) gọi là một chiến lược.

2.1.3. Phƣơng trình của quá trình.
Nếu P(k ) và q(k ) đã xác định và chọn thì ta thu được trạng thái xác định P(k  1) .
Có mối quan hệ hàm.
P(k  1)  T [ P(k ), q(k )]; k  1, m

2.1.4. Ràng buộc của quá trình.
Ngoài phương trình trên P(k ) và q(k ) còn phải thỏa mãn các ràng buộc của phương
trình: Ri ( P(n),..., p(1)); q(n),..., q(1))  0; i  1, m .
2.1.5. Hàm mục tiêu của phƣơng trình.
Ký hiệu hàm mục tiêu của quá trình là:

f ( P(n),..., P(0); q(n),..., q(1))
Trong nhiều trường hợp hàm mục tiêu có dạng:
n

 g ( P(k ), q(k ))
k 1

k

2.1.6. Các thông số của quá trình.
Là những hằng số xác định quá trình. Nếu xác định chính xác các thông số thì có
thể xác lập được mối quan hệ giữa chiến lược tối ưu hóa và quá trình và do đó có

16


thể nhận biết 2 quá trình có cùng một họ hay không? Nếu chúng cùng họ thì ta có
thể dựa trên chiến lược tối ưu của quá trình trên mà suy ra chiến lược tối ưu của quá
trình sau.

2.2.

Xây dựng phƣơng trình hàm.

Ký hiệu f k ( P(k )) là thu nhập tối đa của k giai đoạn, nếu trạng thái nào là P(k ) và vùng
chiến lược tối ưu.
Chia quá trình k giai đoạn thành hai phần: giai đoạnkvà k  1 giai đoạn còn lại và giả
sử k  1giai đoạn còn lại được điều khiển tối ưu.
Ký hiệu g k ( P(k ), q(k )) là thu nhập ở giai đoạn k .
Áp dụng nguyên tắc tối ưu ta có thể lập luận như sau.
Dùng điều khiển q(k ) nào đó cho giai đoạn k thì thu nhập của k giai đoạn là

gk ( P(k ), q(k ))  f k 1 ( P(k  1))
Nhưng theo phương trình của quá trình P(k  1)  T ( P(k ), q(k )) .
Vì vậy có thể viết thu nhập của cả k giai đoạn là:
gk ( P(k ), q(k ))  f k 1[T ( P(k ), q(k ))]

(2.5)

Chọn q(k ) sao cho đạt max của (2.5), nhưng max của (2.5) chính là f k ( P(k )) . Do đó
ta có f k ( P(k ))  max{g k ( P(k ), q(k ))  f k 1[T ( P(k ), q(k ))]}
q(k )

(2.6)

Phương trình (2.6) gọi là phương trình hàm của quy hoạch động.
Cho f 0 ( P(0))  0 thì từ (2.6) ta xác định được f1 ( P(t )), t  1,2,... Đến khi ta nhận được

f n ( P(n)) thì bài toán được giải xong.
2.3. Sơ đồ tính.

2.3.1. Viết phƣơng trình hàm.
Viết phương trình hàm cho trạng thái cuối cùng của quá trình gọi f1 ( P(1)) là giá trị cực
đại của hiệu quả ở bước này:
f1 ( P(1))  max{g1 ( P(1), q(1))  f 0 ( P(0))}
q (1)

17


Tìm g1 ( P(1), q(1)) từ bộ rời rạc các giá trị của nó với một số khác các giái trị xác
định của

P(1) và q(1) từ

miền chấp nhận được tương ứng. Vì rằng f 0 ( P(0))  0 (hiệu

quả không có nữa vì quá trình đã kết thúc) nên f1 ( P(1))  max g1 ( P(1), q(1))
q ( 2)

Trong kết quả sau bước đầu tiên ta biết được nghiệm q (1) và giá trị tương ứng của
hàm mục tiêu là f1 ( P(1)) .
2.3.2. Xét bƣớc thứ 2.
Gọi f 2 ( P(2)) là giá trị cực đại trong cả 2 bước 1 và 2 với trạng thái P(1) ở đầu bước 2
và quyết định q(1). Lúc đó f 2 ( P(2))  max{g 2 ( P(2), q(2))  f1 ( P(1))}
q ( 2)

2.3.3. Xét bƣớc thứ n.
Ta có f n ( P(n)) là giá trị tối ưu.
Lưu ý : việc ký hiệu trạng thái P(k ) có thể tùy từng bài toán.


18


CHƢƠNG III: ĐẠI CƢƠNG VỀ ĐỒ THỊ
1. Các khái niệm cơ bản.
1.1. Đồ thị.
Đồ thị G  (V , E ) là một bộ phận gồm 2 tập hợp V và E, trong đó V≠Ø, các phần
tử của V được gọi là các đỉnh (vertices), các phần tử của E được gọi là các cạnh
(edges), mỗi cạnh tương ứng với 2 đỉnh.
Nếu cạnh e tương ứng với 2 đỉnh v, w thì ta nói v và w là 2 đỉnh kề (hay 2 đỉnh liên
kết) với nhau. Ta cũng nói cạnh e tới hay liên thuộc với các đỉnh v và w. kí hiệu:
e  vw (hoặc e  vw hay e  wv ). Các cạnh vv tương ứng với 2 đỉnh trùng nhau
được gọi là một vành khuyên tại v.

Hai cạnh phân biệt cùng tương ứng với một cặp đỉnh được gọi là 2 cạnh song song
hay cạnh bội. Đồ thị không có cạnh song song và cũng không có vòng được gọi là
đơn đồ thị. Ngược lại là đa đồ thị.
Đồ thị mà mọi cặp đỉnh của nó đều kề nhau được gọi là đồ thị đầy đủ. Đơn đồ thị
đầy đủ gồm n đỉnh được kí hiệu: K n .
Đồ thị G'  (V ' , E ' ) được gọi là một đồ thị con của đồ thị G  (V , E ) nếu
E '  E;V '  V .
Đồ thị có số cạnh và số đỉnh hữu hạn được gọi là đồ thị hữu hạn, ngược lại là đồ thị
vô hạn.
1.2. Biểu diễn đồ thị.
1.2.1. Biểu diễn hình học.
Biểu diễn mỗi đỉnh của đồ thị bằng một điểm.
Một cạnh được biểu diễn bằng một đường nối 2 đỉnh liên thuộc với cạnh đó.
Ví dụ 1: Đồ thị G có V  {a, b, c, d , e}; E  {ab, ac, ad , bd , cd , ce} được biểu diễn
c
b

hình học sau:
a

e
d
Ví dụ 2: Đồ thị G có V  {u, v, x, y}; E  {uv, uv, ux, vx, xy, yy} được biểu diễn
y
v
hình học sau:
d

d

x
u
d

d

19


Chú ý: Khi biểu diễn hình học của đồ thị, giao của các cạnh chưa chắc là đỉnh của
đồ thị.
1.2.2. Biểu diễn bằng ma trận.
Người ta có thể biểu diễn đồ thị bằng ma trận. Có 2 kiểu ma trận thường được dùng
để biểu diễn đồ thị:
- Ma trận liên kết hay liền kề.
- Ma trận liên thuộc.
 Ma trận liền kề:

Cho G  (V , E ) có nđỉnh v1 , v2 , v3 ,..., vn . Ma trận liền kề của G tương ứng với thứ tự
của các đỉnh v1 , v2 , v3 ,..., vn là một ma trận vuông cấp n.

A  (aij ) n trong đó:
 1 nếu vi v j là một cạnh của G
aij  
 0 nếu vi v j khônglà một cạnh của G
Chú ý:
- Ma trận liền kề của một đồ thị khác nhau tùy thuộc vào thứ tự liên kết các
đỉnh. Do đó, có tới n! ma trận liền kề khác nhau của một đồ thị n đỉnh vì có
n! các sắp xếp n đỉnh.
-

Ma trận liền của một đồ thị là một ma trận đối xứng vì nếu vi được nối với

v j thì v j cũng được nối với vi và ngược lại nếu vi không được nối nới v j thì v j
cũng không được nối với vi .
-

Một vòng được tính là một cạnh từ đỉnh v vào đỉnh v.
B
d

A

Ví dụ: Đồ thị sau có ma trận liền kề là:

D
d


d

C
d

A B C D E
A
B
C
D
E

0
1
1
0
0

1
0
1
1
1

20

1
1
0
1

2

0
1
1
1
2

0
1
2
2
0

E
d


Ví dụ : Đồ thị có ma trận liền kề

0
1
1
1

1
0
0
1


1
0
1
1

1
1
theo thứ tự các đỉnh a, b, c, d là
0
0

a

b

d

c

 Ma trận liên thuộc:
Người ta còn dùng ma trận liên thuộc để biểu diễn đồ thị. Cho G  (V , E ) là một
đồ thị với v1 , v2 ,..., vn là các đỉnh và e1 , e2 ,.., en là các cạnh của G. Khi đó ma trận liên
thuộc của G theo thứ tự trên của V và E là một ma trận M  (mij ) nm với :

1 nếu cạnh e j nối với đỉnh vi
mij  
0 nếu cạnh e j không nối với đỉnh vi
Chú ý : Các ma trận liên thuộc cũng có thể biểu diễn được các cạnh bội và khuyên
(vòng). Các cạnh bội (song song) được biểu diễn trong ma trận liên thuộc bằng cách
dùng các cột có các phần tử giống hệt nhau vì các cạnh này được nối với cùng một

cặp đỉnh. Các vòng được biểu diễn bằng cách dùng một cột với đúng một phần tử
bằng 1 tương ứng với đỉnh nối khuyên đó.
e2
Ví dụ : Đồ thị

v 2 e4

v1

v3

e1

e3

e5

e6

e7

v5

v4

e8
Có ma trận liên thuộc là

e1


e2

e3

e4

e5

e6

e7

e8

v1

1

1

1

0

0

0

0


0

v2
v3

0

1

1

1

0

1

1

0

0

0

0

1

1


0

0

0

v4
v5

0

0

0

0

0

0

1

1

0

0


0

0

1

1

0

0

21


1.2.3. Biểu diễn bằng bảng.
Người ta có thể biểu diễn đồ thị không có cạnh bội bằng bảng hay còn gọi là danh
sách kề. Danh sách này chỉ rõ các đỉnh nối với mỗi đỉnh của đồ thị.
Ví dụ: Cho đồ thị G :

b
c

a

d

e
Danh sách liền kề được biểu diễn như sau:
Đỉnh

a
b
c
d
e

Đỉnh liền kề
b, e
a, c, e
b, d, e
c, d, e
a, b, c, d

Bậc của đỉnh trong đồ thị.

1.3.

Định nghĩa: Đỉnh v của đồ thị G được gọi là có bậc n nếu v kề với n đỉnh khác.
Ký hiệu: deg(v) hay d(v).
Mỗi vòng (khuyên) tại v được kề là 2 cạnh tới v.
Đỉnh có bậc 0 gọi là đỉnh cô lập.
Đỉnh có bậc 1 gọi là đỉnh treo.
Cạnh tới đỉnh treo gọi là cạnh treo.
Đồ thị mà mọi đỉnh đều là đỉnh cô lập gọi là đồ thị rỗng.
g
f
e
Ví dụ: Cho đồ thị sau:
-


a

c

d

b
Ta có: deg(a)= 4; deg(b) = 5; deg(c) = 4; deg(d) =0; deg(e) =1; deg(f) =4; deg(g)
=4.
2. Đồ thị có hƣớng:
2.1. Định nghĩa:

22


Một đồ thị G  (V , E ) gồm tập hợp các đỉnh V và tập hợp cách cạnh E bao gồm
các cặ,p sắp thứ tự của V. Cạnh e tương ứng với một cặp thứ tự (a, b) của hai đỉnh
a, b V được gọi là một cạnh có hướng từ a đến b.

Kí hiệu: e  ab , trong đó a được gọi là đỉnh đầu, b được gọi là đỉnh cuối.
Chú ý: Đỉnh đầu và đỉnh cuối của khuyên (vòng) là trùng nhau.
b
Ví dụ:
a

e

c

d


2.2. Bậc của đỉnh trong đồ thị có hƣớng:
2.2.1. Bậc vào: Cho G là đồ thị có hướng, bậc vào của đỉnh v được kí hiệu deg  (v)
hoặc d in (v) là số cạnh có đỉnh cuối là v.

2.2.2. Bậc ra:Cho G là đồ thị có hướng, bậc ra của v được kí hiệu deg (v) (hoặc

d out (v) ) là số cạnh có đỉnh đầu là v.
Chú ý: Một vòng tại một đỉnh góp thêm một đơn vị vào bậc vào và bậc ra của đỉnh
này.
Ví dụ:

b

a

e

-

d
d
(
a
)

0
,
d
(

a
)
 2.
Đối với đỉnh a: in
out

-

Đối với đỉnh b: d in (b)  4, d out (b)  1 .

-

Đối với đỉnh c: d in (c)  2, d out (c)  3 .

-

Đối với đỉnh d: d in (d )  1, d out (d )  2 .

-

Đối với đỉnh e: d in (e)  2, d out (e)  1 .

c

2.2.3. Định lí:
Cho G  (V , E ) là một đồ thị có hướng. Tổng bậc vào của các đỉnh bằng tổng bậc
ra và bằng số cạnh của đồ thị.
V

d

i 1

V

in

(vi )   d out (vi )  E
i 1

Chú ý: Một đồ thị có hướng được gọi là cân bằng nếu mọi đỉnh của nó đều có bậc
vào và bậc ra bằng nhau.

23


3. Tính chất liên thông của đồ thị.
3.1. Định nghĩa.
3.1.1. Đƣờng đi:
Đường đi có độ dài n từ đỉnh v0 đến vn là một số nguyên dương, trong một đồ thị vô
hướng là một dãy các cạnh liên tiếp v0 v1 , v1v2 ,..., vn 1vn . Đỉnh v0 được gọi là đỉnh đầu,
đỉnh vn được gọi là đỉnh cuối. Đường đi này được viết gọn: v0 v1v2 ...vn1vn . Khi chỉ cần
nêu ra đỉnh đầu v0 và đỉnh cuối vn , ta viết v0  vn .
 Một đường đi không qua cạnh nào lần thứ hai được gọi là đường đi đơn giản
(đường đi đơn).
 Một đường đi không qua đỉnh nào lần thứ hai gọi là đường đi sơ cấp.
 Lưu ý: Đường đi sơ cấp là đường đi đơn giản, nhưng đường đi đơn giản có thể
không là đường đi sơ cấp.
3.1.2. Chu trình:
Một đường đi khép kín (đỉnh đầu trùng đỉnh cuối) và có độ dài n  3 được gọi là
một chu trình.

 Chu trình không đi qua cạnh nào lần thứ hai gọi là chu trình đơn giản.
 Chu trình không đi qua đỉnh nào lần thứ hai (trừ đỉnh đầu trùng đỉnh cuối) được
gọi là chu trình sơ cấp.
Ví dụ:
a
b
c

f

e

d
3

3.2.

abcdbe là một đường đi đơn giản.
eabdc là một đường đi sơ cấp.
Định lý:

3.2.1. Định lí 1:Cho G  (V , E ) là một đồ thị vô hướng có V  3 và có v V
có d (v)  2 thì trong G luôn tồn tại một chu trình sơ cấp.
Chứng minh:
Vì G là một đồ thị hữu hạn, mỗi đường đi sơ cấp qua từng đỉnh không quá một lần,
nên số đường sơ cấp trong G là hữu hạn. Do đó, ta luôn xác định được đường đi sơ
cấp có độ dài cực đại trong các số đường đi sơ cấp có trong đồ thị G  (V , E ) .

24



×