Điều hành dự án bằng phương pháp PERT-PCM và ứng dụng giải bài toán lập lịch thi công
Trang 1Chương mở đầu
GIỚI THIỆU CHUNG VỀ NHIỆM VỤ
Đề tài “Điều hành dự án bằng phương pháp PERT-PCM và ứng dụng giải bài tốn lập lịch thi công công trình”, bao gồm
- Tìm hiểu phương pháp PERT-PCM (phương pháp sơ đồ mạng lưới).- Ứng dụng giải bài tốn lập lịch thi công công trình.
+ Lưu trữ lịch thi công các dự án
+ Cho biết thới gian bắt đầu một dự án và thời gian kết thúc dự án+ Thêm một số hạng mục khi dự án đang được thi công
+ Bỏ một số hạng mục khi dự án đang thi công+ Đưa ra lịch thi công các hạng mục tối ưu nhất
Trang 2Chương I
ĐIỀU HÀNH DỰ ÁN BẰNG PHƯƠNG PHÁP PERT-CMP
(Phương pháp sơ đồ mạng lưới)
Dự án (Project) là một tập hợp các hoạt động (Activity) liên quan với nhau
và phải được thực hiện theo một thứ tự nào đó cho đến khi hồn thành tồn bộ các
hoạt động Hoạt động được hiểu như là một việc đòi hỏi thời gian, và nguyên liệu
(Resource) để hồn thành Trước kia để điều hành dự án người ta thường dùng biểu
đồ Gantt (Gantt bar chart), là một đồ thị gồm các đường kẻ ngang, biểu thị điểm
khởi công và kết thúc hoạt động Nhược điểm của biểu đồ là không xác định được
quan hệ giữa các hoạt động, nên không áp dụng được cho các dự án lớn scale project), đòi hỏi đặt kế hoạch (planning), điều hành thực hiện (scheduling) vakiểm tra (controlling) một cách hệ thống và hiệu quả, thậm chí phải tối ưu hố hiệu
(large-quả (về thời gian và tiết kiệm nguyên liệu) Vì vậy, gần như đồng thời vào năm1956-1958, hai phương pháp kế hoạch, điều hành và kiểm tra dự án đã ra đời.
Phương pháp đường găng hoặc phương pháp đường tới hạn (Critical path method,
viết rắt là CPM) được E.I.du Pont de Nemous và công ty xây dựng của ông đưa ra.
Phương pháp thứ hai có tên là Kỹ thuật xem xét và đánh giá dự án (Projectevaluation and review technique, viết tắt là PERT) là kết quả nghiên cứa của một
công ty tư vấn theo đặt hàng của hải quân Mỹ, dùng để điều hành các hoạt độngnghiên cứu và phát triển chương trình tên lửa đối cực Hai phương pháp được hìnhthành độc lập nhưng rất giống nhau, cùng nhằm vào mục đích điều hành thời gianlà chính Sự khác nhau chính là trong CPM thời gian ước lượng cho công việc,
được coi là tất định (Deterministic), còn trong PERT có thể là ngẫu nhiên
(Probabilistic) Ngồi ra CPM có tính đến quan hệ thời gian Ngày nay, khi đã phát
triển lên, hai phương pháp được coi là một, dưới một tên chung là Phương phápđiều hành dự án PERT-CPM, hoặc Phương pháp sơ đồ mạng lưới hoặc hệ thốngkiểu PERT (PERT-type system) Nó được dùng để thực hiện rất nhiều kiểu dự án,
từ xây dựng, lập trình máy tính, sản xuất phim đến vận động tranh cử chính trịhoặc các cuộc giải phẫu phức tạp.
Phương pháp điều hánh dự án PERT-CPM gồm ba pha (tức là ba khâu): kế
hoạch, điều hành và kiểm tra điều chỉnh Pha kế hoạch có nội dung là lập một sơ
đồ mạng lưới (arrow network diagram hoặc arrow diagram), tương tự một đồ thị cóhướng Pha này mở đầu bằng việc tách dự án thành nhiều hoạt động riêng và địnhthời gian hồn thành chúng Trong mạng, mỗi cung có hướng biểu diễn hoạt độngvà cả sơ đồ mạng biểu thị mối quan hệ giữa các hoạt động Mỗi nút biểu thị một
biến cố hoặc sự kiện (event), đánh dấu hồn thành một số hoạt động (activity) là các
cung đi vào nút, và bắt đầu các hoạt động ứng với các cung ra khỏi nút.
Pha điều hành (scheduling phase) có nhiệm vụ xây dựng biểu đồ thời gian, chỉ
rõ thời điểm bắt đầu và kết thúc của mỗi hoạt động và mối quan hệ giữa các hoạtđộng Nói riêng, điều quan trọng là phải tính chính xác các hoạt động tới hạn, tứclà găng (critical), cần chú ý đặc biệt khi thực hiện, để tồn bộ dự án được hồn thànhđúng hạn.
Trang 3Pha kiểm tra bao gồm việc sử dụng sơ đồ mạng lưới, và biểu đồ thời gian đểtheo dõi và báo cáo định kì tiến triển của dự án Nếu cần thì phải phân tích lại vàxác định sơ đồ mới cho phần dự án còn lại.
I Lập sơ đồ mạng lưới
Như trên đã nói, pha đầu của phương pháp PERT-CPM là lập kế hoạch thểhiện ở một sơ đồ mạng lưới, biểu diễn như một đồ thị có hướng Hãy xét một dự ánxây dựng một tồ nhà Việc tách dự án thành các hoạt động như đào đất, xây móng,xây tường thô, lợp mái, đặt đường dây điện … là do kiến trúc sư hoặc kỹ sư xâydựng làm Dựa vào đó, người quản lý dự án lập được sơ đồ mạng lưới như H.1.1.Các số bên cạnh cung là thời gian thực hiện hoạt động đó.
Qua sơ đồ mạng lưới H.1.1 ta thấy rõ mối quan hệ giữa các hoạt động về thờigian Chẳng hạn hoạt động (6, 8) là trát ngồi-phải sau (4, 6) là lợp mái, nhưng độclập với (5, 7) là chỉnh tường trong Cũng vậy (4, 7) độc lập với (4, 5) và (5, 7) Ở
đây có hai hoạt động giả (dummmy activity) với thời gian để thực hiện bằng 0
được đưa vào để đảm bảo qui tắc sơ đồ.
Cung giả (11, 12), ký hiệu bởi đường đứt đoạn, đưa vào để đảm bảo qui tắckhông có hai hoạt động cùng biến cố bắt đầu và kết thúc, tức là không có 2 cung cócùng gốc và ngọn (tức là đồ thị đơn) Việc sơn tường trong và làm sàn có cùngbiến cố dầu là nút 9, tức là biến cố lát ván tường xong, và biến cố cuối là nút 12(làm sàn và sơn tường xong, bắt đầu hồn thiện trong) Do đó ta phải thêm nút 11 làbiến cố giả và cung giả (11, 12).
Cung giả (5, 8) để chỉ rằng hoạt động (4, 5) phải hồn thành trước khi bắt đầuhoạt động (8, 10) (nếu bỏ cung giả này thì thời điểm làm hai việc là độc lập).
Cung giả này là phục vụ cho qui tắc sơ đồ mạng lưới phải thể hiện đủ quan hệthứ tự cần có.
Nếu quan hệ thời gian có dạng: việc x2 bắt đầu khi xong 1/3 việc x1, việc x3 bắtđầu khi xong một nửa x1, thì ta phải thêm các nút đánh dấu các biến cố xong 1/3x1
và xong 1/2x1 đó như ở H1.2.
Khởi công 2 Đào móng 4 Xây móng
1
Trang 44 Chỉnh thẳng tường ngồiĐặt dây điện 7
7 Trát ngồi 5 Chỉnh thẳng tường trong
9 Sơn ngồi 8 Ép ván lát tường
Làm sàn 4 5 Sơn tường Hồn thiện ngồi 2 0 Hồn thiện trong
II Phân tích các chỉ tiêu thời gian Xác định đường căng.
Pha điều hành có nhiệm phân tích các chỉ tiêu thời gian và đưa ra các bảng vàsố liệu cần thiết trên sơ đồ mạng lưới Nếu trong dự án phải điều hành cả nguyênliệu (hoặc nhân lực) thì phải xét cả các chỉ tiêu đó, ta sẽ nói đến ở mục sau.
II.1 Tính các thời điểm.
Chỉ tiêu ở đây là thời điểm sớm của biến cố (earliest time for an event) là thờiđiểm biến cố xảy ra khi mọi hoạt động trước nó được bắt đầu sớm nhất có thể.Thời điểm sớm của biến cố i thường ký hiệu là Ei Các Ei được tính theo hướngtăng (forward pass), tức là đi từ nút khởi công theo thứ tự tăng của nút i Như vậyvới nút khởi công 1 thì E1 = 0 Đến nút 2 trong sơ đồ H1.1 thì E2 rõ ràng bằng 2 vìbiến cố hồn thành hoạt động (1, 2) phải là E1 + t12, ở đây t12 là thời gian thực hiệnhoạt động (1, 2) Việc tính E3, E4, E5, E6, E9, E10 và E11 cũng tương tự vì các núttương ứng chỉ có một cung vào, khi đó:
Ei = Ej + tji
Ở đây j là nút ngay trước i Chẳng hạn E6 + t46 = 16 + 6 = 22 Nếu có nhiềucung vào nút, tức là nhiều hoạt động kết thúc tại biến cố, thì từ định nghĩa Ei rõ
X2 X3
Trang 5ràng đây là thời điểm mọi hoạt động đó vừa xong cả, tức là phải lấy maximum củacác tổng Chẳng hạn
E7 = max {E4 + t45,E5 + t57} = max {16 + 7, 20 + 5} = 25,E8 = max {E5 + t58,E6 + t68} = max {20 + 0, 22 + 7} = 29Tổng quát, công thức tính Ei cho mọi trường hợp là :
Ei = maxmax {Ej + tji}, j
ở đây j là các nút ngay trước i, tức là có cung nối tới i Các Ei được ghi ở H.1.3 làsố đầu trong ngoặc ở mỗi nút.
Thời điểm muộn (latest time) của biến cố j là thời điểm muộn nhất mọi cungđi vào biến cố j đều hồn thành mà không làm thay đổi thời điểm kết thúc dự ánsớm nhất có thể, ký hiệu là Lj Đối lại với Ej, các Lj được tính theo hướng lùi(backward pass), tức là đi từ nút kết thúc Theo định nghĩa, ở nút kết thúc thì En =Ln, ở thí dụ H.1.1 là E13 = L13 = 44 nếu ở biến cố chỉ có một cung ra, tức là mộthoạt động được bắt đầu thì, thời điểm muộn là :
Lj =Li - tji,
Tức là thời điểm muộn của nút ngay sau nó trừ đi thời gian thực hiện hoạt động nốihai nút Các biến cố 12, 11, 10, 8, 7, 6, 3, 2 và 1 ở H.1.1 là trường hợp này Nếu cónhiều cung ra khỏi
biến cố, thì theođịnh nghĩa ta có :
Lj =min{Lii-tji}Ở đây min theo cácnút i ngay sau j vàtji là thời gian thựchiện hoạt động nối(j, i) Các nút 9, 5, 4là ở trường hợpnày, chẳng hạn :
L9 = min {L11 – t9 11,L12 – t9 12} = min(38 – 4, 38 - 5) = 33Hãy chú ý sự ‘’đốixứng ‘‘ của quátrình tính Ei và Lj.Các Lj được ghi ởsố thứ 2 trongngoặc ở mỗi núttrong H.1.3.
II.2 Tính thời
gian dự trữ.
Trong thời gian dựtrữ (slack hoặcfloat) của một biếncó là hiệu thời điểmmuộn và thời điểm
Trang 5
(44, 44)6
(38, 42)(29, 33)(22, 26)(0, 0)
(2, 2)
(6, 6)(16, 16)
(20, 20)
(25, 25)
(33, 33)
14
Trang 6sớm của nó : di = Li – Ei Thời gian dự trữ (slack hoặc float) của hoạt động đượcchia làm hai loại Thời gian dự trữ chung (total slack hoặc total float) của hoạtđộng (i, j) là :
TFij = Lj – Ei – tij.
TFij chỉ là thời gian có thể trì hỗn của hoạt động (i,j) mà không ảnh hưởng đến thờiđiểm kết thúc cả dự án Vì nó bằng thời gian tối đa dành cho hoạt động (i, j) là Lj -Ei trừ đi thời gian để
thực hiện là tij Thời gian dự trữ độc lập (free float hoặc free slack), ký hiệu là FFij,cũng là ký hiệu thời gian dành cho (i, j) và thời gian thực hiện là tij, nhưng với giảthiết là mọi hoạt động đều bắt đầu sớm có thể, vậy :
FFij = Ej – Ei – tij.
Trên sơ đồ mạng lưới thì di là hiệu hai số trong ngoặc ở nút i, thường được ghibằng số trong ô vuông cạnh nút Thời gian dự trữ chung của hoạt động TFij đượcghi trong ô vuông cạnh ở mỗi cung Còn thời gian dự trữ độc lập của hoạt độngFFij ít quan trọng hơn, thường không ghi, xem H.1.3.
II.3 Đường găng (đường tới hạn)
Các hoạt động có thời gian dự trữ chung bằng 0 cần được chú ý đặc biệt vìtrì hỗn nó sẽ ảnh hưởng đến thời gian kết thúc dự án Từ đó có :
Định nghĩa II.3.1 Đường găng hoặc đường tới hạn (critical path) là một
đường đi từ nút khởi công đến nút kết thúc mà mọi hoạt động trên đường đều cóthời gian dự trữ chung bằng 0 (Chẳng hạn trên H.1.3 có một đường găng là 1 –> 2–> 3 –> 4 –>5 –> 7 –> 9 –> 12 –> 13 ) hoạt động (i, j có TFij = 0 được gọi là hoạtđộng găng (critital activity) Biến cố i có di =0 được gọi là biến cố găng (criticalevent).
Một số tính chất quan trọng của đường găng là như sau.1 Mỗi dự án đều có ít nhất một đường găng.
2 Tất cả các hoạt động (i, j) có TFij = 0, tức là mọi hoạt động găng đềuphải nằm trên đường găng.
3 Mọi biến cố găng, tức là biến cố i có di = 0, đều phải nằm trên đườnggăng Biến có không găng không thể nằm trên đường găng.
4 Đường nối nút khởi công đến nút kết thúc mà mọi biến cố trên đó đềugăng có thể không phải đường găng vì có thể có hoạt động không găng.Chẳng hạn đường 1 –> 2 –> 3 –> 4 –> 7 –> 9 –> 12 –> 13 không găngvì TF47 = 2.
5 Đường găng là đường dài nhất trong các đường nối nút khởi công đếnnút kết thúc.
Điều 5 này là rõ từ định nghĩa vì ở nút khởi công và kết thúc hai thời điểmsớm và muộn trùng nhau và thời gian hồn thành dự án chính là hiệu thời gian ở hainút (ở H.1.3 là 44 - 0) Đường găng là đường gồm các hoạt động không có dự trữnên tổng chiều dài, tức là thời gian thực hiện, là tồn bộ thời gian thực hiện dự án (ởH.1.3 là 44), nên phải dài nhất Trên H.1.3 đường găng được tô đậm.
Một thí dụ dự án có nhiều đường găng là sơ đồ ở H.1.3 nhưng với t46 thay từ6 thành 10 Khi đó thời gian dự trữ của các hoạt động (6, 8), (8, 10) và (10, 13) vàthời gian dự trữ của các biến cố 6, 8 và 10 đều thay từ 4 thành 0 Lúc này đường 1–> 2 –> 3 –> 4 –> 6 –> 8 –> 10 –> 13 là đường găng thứ hai.
Các chỉ tiêu thời gian của dự án ở H.1.3 được ghi vào bảng 1.1
Hình 1.3
Trang 7Biến cố Thời điểm
sớm Thời điểmmuộn Thời giandự trữ Hoạt động Thời gian dựtrữ chung
Bảng1.1 Chỉ tiêu thời gian xây nhà
Ngồi các chỉ tiêu chính nói trên, khi cần các thông tin chi tiết hơn để điều hànhdự án, người ta cũng đưa ra một số khái niệm về thời gian khác nữa như sau.
Thời điểm khởi công sớm (earliest start) của hoạt động (i, j) là thời sớm củanút gốc: ESij = Ei.
Thời điểm hồn thành sớm (earliest completion) của hoạt động (i, j) là ECij = Ei
TP = tijG tijP TG TP ,ở đây GG
ijTt
là độ dài đường găng và tP TP
ij là độ dài đường P, là tổng thờigian thực hiện hoạt động trên đường P.
Hệ số găng (critital coefficient) biểu thị mức độ căng thẳng về thời gian củamột đường P nối nút khởi công và kết thúc, không phải đường găng G, được địnhnghĩa là
ở đây TPG là độ dài quãng đường (tức là một phần của đường) mà P trùng với G.Rõ ràng O < KP < 1 và KP càng gần 1 thì thời hạn thực hiện các hoạt động khônggăng trong P càng chặt chẽ.
Trang 8Hai định nghĩa trên đây của đường đi có thể mở rộng cho đường P có nút đầuvà cuối trùng với nút trong đường găng, không cần là nút khởi công và kết thúccủa cả dự án.
Thí dụ II.1 Ở dự án trên H.1.3, đường găng dược tô đậm Thời điểm hồnthành sớm EC68 = E6 + t68 = 22 + 7 = 29 = E8, EC10, 13 = 40 < E13 = 44 Thời điểmkhởi công muộn LS46 = L6 – t46 = 26 – 6 = 20 > L4 = 16 Bây giờ giả sử P là đườngđi 1 –> 2 –> 3 –> 4 –> 5 –> 6 –> 8 –> 10 –> 13 thì TP = P
Nên thời gian dự trữ của P là TG – TP = 44 – 40 = 40 Hệ số găng là
KP = 404 1011 (không có quãng chung với đường găng) Gọi Q là đường 1 –> 2 –>3 –> 4 –> 7 –> 9 –> 12 –> 13 thì TQ = 42, KQ = 4442 3535 97 1011
Ta thấy mặc dùTQ > TP nhưng thời hạn thực hiện các hoạt động không găng trong P lại chặt chẽhơn hoạt động không găng (4, 7) duy nhất của Q Nguyên nhân là (4, 7) là khônggăng duy nhất, nên mọi sự nới lỏng của Q đều dồn cho hoạt động này.
Chú ý rằng các dữ liệu thời gian quan trọng nhất là các chỉ tiêu có trong bảng1.1 Ở bảng này cũng cho thấy đường găng (đường gồm các hoạt động găng, tức làcó thời gian dự trữ chung bằng 0).
II.4 Biểu đồ thời gian
Một cách truyền thống, bên cạnh sơ dồ lưới bảng, để theo dõi điều hành thờigian cho dự án là dùng biểu đồ thời gian (time chart) Ta hãy xét cách vẽ và sửdụng biểu đồ thời gian qua một thí dụ.
Thí dụ II.2 Xét dự án ở H.1.4, và bảng 1.2 tương ứng (chú ý là hoạt động giả(4, 5) lại là hoạt động găng.)
(1, 2)(1, 3)(2, 4)(3, 4)(3, 5)(4, 5)(4, 6)(4, 7)(5, 6)(5, 7)(6, 7)
080
Trang 9Bảng 1.2
Biểu đồ thời gian cho H.1.5 Ở đây chỉ có ttrục hồnh là thời gian Cao độkhông quan trọng Ta biểu diễn các hoạt động găng phía trên Độ dài (thời gian) làcố định, chặt chẽ cho các hoạt động găng Hoạt động giả (4, 5) có độ dài bằng 0nên biểu diễn bằng đoạn đứng.
Mỗi hoạt động không găng biểu diễn ở độ cao khác nhau để nhìn rõ vì cáchoạt động này có độ cơ động và được điều hành bằng biểu đồ thời gian.
2
2
325
Hình: 1.5
Biểu đồ được vẽ từ các Ei và Li ở Bảng1.2 (hoạt động găng hay không găng thìtheo TFij bằng 0 hay khác 0) Các số không có vòng chỉ thời gian thực hiện củahoạt động Chẳng hạn hoạt động (1, 2) thực hiện trong 2 đơn vị thời gian, đượcphép xê dịch trong khoảng thời gian 4 đơn vị (từ 0 đến 4) Xét sâu hơn thì sự xêdịch có tự do trong khoảng thời gian này không là phụ thuộc vào FFij = TFij NếuFFij = TFij thì hoạt động (i, j) có thể cơ động tuỳ ý trong khoảng thời gian vẽ biểuđồ Nếu FFij < TFij thì hoạt động (i, j) chỉ được bắt đầu muộn hơn thời điểm khởicông sớm ESij một khoảng thời gian không quá FFij thì mới không ảnh hưởng đếncác hoạt động ngay sau nó (duy nhất) là
(2, 4) mới được xê dịch tuỳ ý trong khoảng thời gian 2 đến 6 Nếu (1, 2) thực hiệnlùi lại khoảng 1 đến 3 chẳng hạn, thì ảnh hưởng đến hoạt động (2, 4) Mặc dù cóFF24 = TF24 nhưng lúc này có chỉ còn được xê dịch thực hiện trong khoảng từ 3 đến6.
III Điều khiển nhân lực.
Các hoạt động không găng được phép xê dịch nhất định, nhất là khi FFij = TFij.Có thể sắp đặt chúng đáp ứng các yêu cầu khác nữa Ngồi thời gian ra, chẳng hạnnhân lực, nguyên liệu, chi phí …Về mặt tốn học xử lý yêu cầu loại nào cũng vậy.Ở đây ta nói theo ngôn ngữ nhân lực chẳng hạn.
770 2 3 4 6 10 13 16 19
Trang 10Thí Dụ III.1 Giả sử nhân lực cho các hoạt động của dự án ở Thí Dụ II.2 đòihỏi như sau:
(3, 5) (4, 7) (4, 6) (3, 4) (5, 7)
3 4 6 10 11 13 14 17 19
Trang 11
(3, 4) (5, 7)
(1, 3) (4, 6) (6, 7)
(5, 6)H I.6 (b)
Thời Gian
Trang 12min Giả sử cựctiểu là 0
Khi đó độ dài đường găng mới, tức là thời gian hồn thành dự án mới,là
ở đây tổng lấy trên mọi hoạt động găng.V Dự án có tính ngẫu nhiên.
Trong các mục trên ta đã coi thời gian thực hiện các hoạt động tij là xác địnhhồn tồn từ đầu, khi lập sơ đô mạng lưới Do đó ta có mô hình tất định(detreministic model) Trong thực tế, nhiều yếu tố bất định phải được tính đến, dođó thời gian thực hiện hoạt động (i, j) là một biến ngẫu nhiên (random variable),mà ta chỉ xác định được phân bố xác suất (probability distributtion) qua kinhnghiệm và sớ liệu thống kê Từ đó dẫn đêùn phải sử dụng mô hình ngẫu nhiênhoặc gọi khác là mô hình xác suất (probabilistic model) Việc tính tốn các chỉ tiêuđể điều hành dự án có hai nhiệm vụ chính Một là tính kỳ vọng (mean hoặcexpected value) của các đại lượng cần tính, chẳng hạn thời gian thực hiện hoạtđộng (activity time), thời gian hồn thành dự án (project time), và phương sai(variance) của các đại lượng này Hai là tính xác suất của biến cố nào đó, chẳnghạn biến cố là dự án hồn thành trước thời điểm T.
Thời gian thực hiện mỗi hoạt động, thường gọi tắt là thời gian hoạt động,trong mô hình ngẫu nhiên thường được giả thiết là xác định được ba yêùu tố sau.
Trang 13Thời gian lạc quan (optimistic time) ký hiệu là a, là thời gian cần để làm xong khi
hoạt động được thực hiện thuận lợi nhất Thời gian này rất khó đạt được Theo lý
thuyết thống kê, thì đây thực chất là cận dưới (lower bound) của phân bố xác suất.Thời gian bi quan (pressimistic time), ký hiệu là b, là thời gian cần để xong hoạtđộng khi tiên hành gặp trục trặc nhất, tức là cận trên (upper bound) của phân bốxác suất Thời gian hợp lý nhất (most likely time), ký hiệu là m, là thời gian hiện
thực nhất, tức là có xác suất lớn nhất (đỉnh cao nhất của hàm mật độ) Ba lượngtrên chưa đủ để xác định phân bố xác suất của thời gian hoạt động Do đó chưa đủđể xác định kỳ vọng te tức là giá trị trung bình theo xác suất, và phương sai 2 đặctrưng cho độ lệch khỏi te của thời gian hoạt động Mô hình cần hai gải thiết phùhợp thực tế sau đây.
Giả thiết 1 b - a, tức là độ dài khoảng mà thời gian hoạt động có thể lấy, bằng
6 lần độ lệch chuẩn (standard deviasion), tức là ta có phương sai
22 ( )
Điều này đúng cho nhiều biến ngẫu nhiên hay gặp.
Giả thiết 2 Phân bố xác suất của mỗi thời gian hoạt động đêøu là phân bố beta
(beta distribution).
Ta hãy nhắc lại vài kiến thức xác suất Mỗi đại lương ngẫu nhiên x có hai hàm
quan trọng nhất Hàm mật độ xác suất (probability density fuction) f(x), a x b,và hàm phân bố tích luỹ (cumulative distribution function) F(X), gọi là hàm phân
bố Ở đây giả thiết là x chỉ lấy giá trị trong [a, b] Ta có các quan hệ sau
ở đây xe là kỳ vọng và 2 là phương sai của biến ngẫu nhiên x, P {…} là xác suấtcủa biến cố {…} Mỗi một trong hàm mật độ hoặc hàm phân phối đặc trưng hồntồn cho biến ngẫu nhiên Kỳ vọng và phương sai là các đại lượng quan trọng Tacũng nói là hàm mật độ (hoặc hàm phân bố), xác định hồn tồn phân bố xác suất.Phân bố beta (beta distribution) là một trong các phân bố xác suất phổ biến nhất,xác định bởi hàm mật độ sau, nếu 0 x 1,
ở đây , là tham số, (.) là hàm đặc biệt gamma và B(., ) là hàm đặc biệt beta,được định nghĩa bằng tích phân phụ thuộc tham số
Trang 14f(x) < >
=1, =2 = =2, =2==1
m 1 x
Hình 1.8
Nếu y lấy giá trị trên [a, b] và có phân bố theo beta thì hàm mật độ nhân đượctừ (4.2) bằng đổi biến y = a + (b - a)x Chẳng hạn, hàm mật độ của phân bố betacó dạng như H.1.8 với 1, 1 và a = 0, b = 1.
Phân bố chuẩn (normal distribution) là phân bố xác suất phổ biến nhất, định
nghĩa bởi hàm mật độ sau.
2
ở đây tham số chính là kỳ vọngvà 2 chính là phương sai của biếnngẫu nhiên x có phân bố chuẩn.Khi đó biến
z có phân bó làphân bớ chuẩn với kỳ vọng 0,phương sai là 1 Hàm mật độ củaphân bố chuẩn có dạng ở H.1.9
Các biến ngẫu nhiên x1, …, xn được gọi là độc lập (independent) nếu.P{x1 X1, …, xn Xn} = P{x1 Xn},
Định nghĩa giới hạn trung tâm (centrer – limit thoerem) nói rằng với các điềukiện khá nhẹ, tổng các biến ngẫu nhiên độc lập luôn có phân bố chuẩn (không phụthuộc vào phân bố của từng biến ngẫu nhiên).
Trở lại mô hình ngẫu nhiên điều hành dự án Để tính kỳ vọng te của thời gianhoạt động, người ta giả thiết là điểm giữa
ba
chiếm tỷ trọng bằng nửa điểm hợplý nhất m Khi đó
bam
Trang 15gian lạc quan, bi quan và hợp lý nhất theo bảng1.3 Khi đó phương sai và kỳ vọngcủa các thời gian hoạt động, tình theo công thức (4, 1) và (4, 3) được ghi ở hai cộtcuối.
Hoạt động Thời gian
lạc quan a hợp lý nhấtThời gianm
Thời gian
bi quan b Kỳ vọng t
e Phươngsai 2
(1, 2)(2, 3)(3, 4)(4, 5)(4, 6)(4, 7)(5, 7)(6, 8)(7, 9)(8, 10)(9, 11)(9, 12)(10, 13)(12, 13)
Bảng 1.3
Nhận xét rằng cột kỳ vọng ở Bảng1.3, do thí dụ được xây dựng đặc biệt, trùnghồn tồn với các thời gian hoạt động trong mô hình tất định đã xét ở H.1 Do đóđường găng xây dựng trên các thời gian hoạt động kỳ vọng trùng với đường găngcủa mô hình tất định ở H.1.2 và thời gian của đường găng này là 44.
Tuy nhiên để xác định kỳ vọng và phương sai của thời gian dự án, ta cần thêmhai giả thiết sau.
Giả thiết 3 Các thời gian hoạt động là các biến ngẫu nhiên độc lập.
Giả thiết 4 Đường găng xây dựng trên các thời gian hoạt động kỳ vọng, luôn
đòi hỏi thời gian (hồn thành mọi hoạt động trên nó) lớn hơn các đường khác.
Tính thật chi ly trong các thí dụ cụ thể thì hai giả thiết 3 và 4 có thể khôngđúng Chẳng hạn, ở Thí dụ V.1, nếu sảy ra thời gian bi quan ở mọi hoạt động thìđường găng đã tính là 69 (ngày) Còn đường 1 –> 2 –> 3 –> 4 –> 5 –> 7 –> 9 –>12 –> 13 có thời gian bi quan là 70 Tuy vậy người ta vẫn chấp nhận các giảthuyết xấp xỉ này Khi đó, vì kỳ vọng và phương sai của tổng các biến ngẫu nhiên
Trang 16là tổng của các kỳ vọng và phương sai nên ta có: Kỳ vọng và phương sai của thờigian dự án là tổng các kỳ vọng và phương sai của các thời gian hoạt động trênđường găng (xây dựng theo các kỳ vọng) Đến đây ta nhận xét rằng một trong cáccách áp dụng thực tế là dùng các kỳ vọng của các biến, rồi áp dụng mọi tính tốn vàlý luận ở các mục trước vào các kỳ vọng, thay cho các biến tất định.
Ở Thí dụ V.1 kỳ vọng và phương sai của thời gian dự án là 44 và 9, vì đườnggăng là 1 –> 2 –> 3 –> 4 –> 5 –> 7 –> 9 –> 12 –> 13
Bây giờ ta xét vấn đề quan trọng là tính xác suất để dự án hồn thành trước mộtthời hạn bắt buộc (deadline) Theo định lý giới hạn trung tâm, thời gian dự án làbiến ngẫu nhiên có phân bố chuẩn Do đó ta tính được xác suất P(x X), thườngđược tính sẵn để tra theo bảng Chẳng hạn Bảng A1 ở cuối sách cho biết P {x xe
+ K}, ở đây là độ lệch chuẩn Do đó K là đơn vị lệch chuẩn.
Thí dụ, hãy tính xác suất để thời gian xây nhà ở Thí dụ V.1 không quá 47ngày Ta thấy 47 = 44 + 3.1 = xe + K nên K = 1 Theo bảng thì P {x 47} =0,1584 Do đó xác suất cần tìm là 1 – 0,1584 0,84.
Phương pháp điều hành dự án có tính ngẫu nhiên trên đây thường được gọi làphương pháp ba ước lượng PERT (PERT three estimate method).
Nếu cần tính các yếu tố thời gian ở các biến cố trung gian (không chỉ thời gianhồn thành dự án, tức là biến cố cuối) thì ta lý luận như sau Trước hết tính kỳ vọngvà phương sai của thời điểm sớm i của biến cố i Nếu chỉ có một đường từ khởicông đến i thì, do các hoạt động là độc lập kỳ vọng của i ký hiệu là E(i), bằngtổng các kỳ vọng te của thời gian các hoạt động dẫn đến i Khi có nhiều đường dẫnđến i thì người ta coi xấp xỉ (để đơn giản) E(i) và Var(i) là tổng các te và 2 củacác hoạt động theo đường đến i có tổng E(i) dài nhất Nếu có nhiều đường vớicùng E(i) thì Var(i) quy ước lấy lượng của đường có tổng các 2 dái nhất.
Bây giờ hãy tính xác suất để biến cố i xong trước thời gian bắt buộc Ti chotrước Theo định lý giới hạn trung tâm i tuân theo phân bố chuẩn, ta chỉ việc trabảng các xác suất ứng với phân bố chuẩn để tính P{i Ti} Cụ thể, để tra bảng,quy về trường hợp đại lương z có phân bố chuẩn với kỳ vọng 0 và phương sai 1như sau:
ở đây (( ))
VI Dự án có thoả hiệp thời gian – Cước phí.
Trong các mục trước ta trình bày về các dựa án có yêu cầu chủ yếu là điềuhành thời gian Theo ngôn ngữ ban đầu thì đây là phương pháp PERT, các thờigian ở đây có thể xét như các biến tất định hoặc ngẫu nhiên Còn phương phápđường găng PCM thì đặt ngang nhau về thời gian và cước phí Mục tiêu chính củaPCM là chọn cách thoả hiệp thời gian thực hiện mỗi hoạt động (theo ngôn ngữhình học) tức là biết đường cong thời gian – cước phí (time – cost curve) của mỗihoạt động Trong mô hình tốn học (xấp xỉ thô tình trạng thực tế) người ta giả thiếtquan hệ thời gian và cước phiù là tuyến tính Do đó chỉ cần biết hai điểm Người tachọn hai điển nút như sau:
Trang 17Điểm chuẩn (normal point) có toạ độ là thời gian và cước phí của hoạt độngkhi nó được tiến hành trong điều kiện bình thường, tức là chuẩn, không có cướcphí bổ xung tăng cường (như làm ngồi giờ, tăng thiết bị nhân lực …) Cực điểm(crash point) là điểm ứng với thời gian và cước phí khi đầu tư hết mức để thời gianthực hiện hoạt động ngắn nhất có thể Mọi điểm trung gian giữa điểm chuẩn và cựcđiểm, tức là mọi cách thoả hiệp thời gian cước phí (time – cost trade - off) đều coilà chấp nhận được, xem H.1.10.
Hình 1.10
Đường cong thời gian – cước phí của hoạt động (i, j).
Các ký hiệu trên H.1.10 rõ ràng như sau Dij là dij là thời gian chuẩn và thờigian cực điểm CDij và Cdij là cước phí chuẩn (normal cost) và cước phí cực điểm(crash cost), đều của hoạt động (i, j) Gọi xij (thời gian thực hiện hoạt động (i, j)) làbiến quyết định (decision variable) của bài tốn mà ta cần tính Gọi Sij là độ xiên,tức là hệ số góc đường thẳng biểu thị đường cong thời gian – cước phí , tức là:
jmax
Trang 18Trường hợp không có thời hạn bắt buộc T cho trước, tức là cần tìm thoả hiệptốt nhất giữa tổng cước phí và tổng thời gian dự án, người ta coi T là tham số vàgiải quy hoạch tuyến tính tham số để được nghiệm tối ưu như hàm của T.
VII Kiểm tra hiệu chỉnh dự án.
Sau khi dùng phương pháp điều hành dự án PERT – CPM xác định được sơ đồmạng lưới, các biểu đồ và bảng tính các chỉ tiêu và dự án đang được tiến hành,người quản lý luôn phải theo dõi, kiểm tra Điều kiện lao động thực tế có thể nhiềubất ngờ Khi cần thiết có thể phải dùng phương pháp PERT – CPM lại, dựa trêncác dữ liệu mới, để tính tốn cho phần còn lai của dự án Sau đó điều hành dự ántheo các biểu đồ và bảng tính mới.
Trang 19CHƯƠNG 2
CƠ SỞ VỀ LÝ THUYẾT ĐỒ THỊ
I Một số khái niệm cơ bản.
Lý thuyết độ thị là một lĩnh vực nghiên cứu đã có từ lâu và có nhiều ứng dụnghiện đại Những tư tưởng cơ bản của lý thuyết đồ thị được đề xuất vào những nămđầu của thế kỷ 18 bởi nhà tốn học lỗi lạc người Thụy Sỹ Euler Chính ông là ngườisử dụng đồ thị để giải bài tốn nổi tiếng về cái cầu ở thành phố Konigsberg.
Đồ thị được sử dụng để giải các bài tốn trong nhiều lĩnh vực khác nhau Chẳnghạn, đồ thị có thể sử dụng để xác định các mạch vòng trong vấn đề giải tích mạchđiện Chúng ta có thể phân biệt các hợp chất hóa học hữu cơ khác nhau với cùngcông thức phân tử nhưng khác nhau về cấu trúc phân tử nhờ đồ thị Chúng ta cóthể xác định xem hai máy tính trong mạng có thể trao đổi thông tin được với nhaukhông nhờ mô hình đồ thị của mạng máy tính Đồ thị có trọng số trên các cạnh cóthể sử dụng để giải bài tốn như: Tìm đường đi ngắn nhất giữa hai thành phố trongmột mạng giao thông Chúng ta còn sử dụng đồ thị để giải các bài tốn về lập lịch,thời khóa biểu, và phân bố tần số cho các trạm phát thanh và truyền hình…
1.1 Định nghĩa đồ thị.
Đồ thị là một cấu trúc rời rạc bao gồm các đỉnh và các cạnh nối các đỉnh này.Chúng ta phân biệt các loại đồ thị khác nhau bởi kiểu và số lượng cạnh nối haiđỉnh nào đó của đồ thị Để có thể hình dung được tại sao lại cần đến các loại đồ thịkhác nhau, chúng ta sẽ nêu ví dụ sử dụng chúng để mô tả một mạng máy tính Giảsử ta có một mạng gồm các máy tính và các kênh điện thoại (gọi tắt là kênh thoại)nối các máy tính này
Định nghĩa 1: Đơn đồ thị vô hướng G = (V,E) bao gồm V là tập hợp các đỉnh
và E là tập hợp các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi làcác cạnh.
Trong trường hợp giữa hai máy tính nào đó thường xuyên phải truyền tải
nhiều thông tin người ta phải nối hai máy tính này bởi nhiều kênh thoại
Định nghĩa 2: Đa đồ thị vô hướng G = (V,E) bao gồm là tập các đỉnh, và E là
họ các cặp không có thứ tự gồm hai phần tử khác nhau của V gọi là các cạnh Haicạnh e1 và e2 được gọi là cạnh lặp nếu chúng cùng tương ứng với một cặp đỉnh
Rõ ràng mỗi đơn đồ thị đều là đa đồ thị, nhưng không phải đa đồ thị nào cũnglà đơn đồ thị, vì đa đồ thị có thể có 2 (hoặc nhiều hơn) cạnh nối một cặp đỉnh nàođó.
Trong mạng máy tính có thể có những kênh thoại nối một máy nào đó vớichính nó (chẳng hạn với mục đích thông báo) Mạng như vậy được cho trong hình3 Khi đó đa đồ thị không thể mô tả được mạng như vậy, bởi vì có những khuyên(cạnh nối một đỉnh với chính nó ) Trong trường hợp này chúng ta cần sử dụng đếncác khái niệm giả đồ thị vô hướng, được định nghĩa như sau:
Định nghĩa 3: Giả đồ thị vô hướng G = (V,E) bao gồm V là tập các đỉnh, và E
là họ các cặp không có thứ tự gồm hai phần tử (không nhất thiết phải khác nhau)của V gọi là các cạnh Cạnh e được gọi là khuyên nếu có dạng e = (u,u)
Trang 20Định nghĩa 4: Đơn đồ thị có hướng G =(V,E) bao gồm V là tập các đỉnh, và E
là tập các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung
Nếu trong mạng có thể có đa kênh thoại một chiều, ta phải sử dụng đến kháiniệm đa đồ thị có hướng:
Định nghĩa 5: Đa đồ thị có hướng G= (V,E) bao gồm V là tập các đỉnh, và E là
họ các cặp có thứ tự gồm hai phần tử khác nhau của V gọi là các cung Hai cung e1
và e2 tương ứng với cùng một cặp đỉnh được gọi là cung lặp
Chúng ta chủ yếu sẽ làm việc với đơn đồ thị vô hướng và đơn đồ thị có hướng.
1.2 Các thuật ngữ cơ bản.
Trước tiên ta xét thuật ngữ mô tả các đỉnh và các cạnh của đồ thị vô hướng
Định nghĩa 1: Hai đỉnh u và v của đồ thị vô hướng G được gọi là kề nhau nếu
(u,v) là cạnh của đồ thị G Nếu e = (u,v) là cạnh của đồ thị thì ta nói cạnh này làliên thuộc với hai đỉnh u và v, hoặc cũng nói là cạnh e là nối đỉnh u và đỉnh v,đồng thời các đỉnh u và v sẽ được gọi là các đỉnh đầu của cạnh (u,v).
Để có thể biết bao nhiêu cạnh liên thuộc với một đỉnh, ta đưa vào định nghĩasau:
Định nghĩa 2: Ta gọi bậc của đỉnh v trong đồ thị vô hướng là số cạnh liên
thuộc với nó và sẽ kí hiệu là deg(v)
vm deg()2
Định lý 1: Giả sử G = (V,E) là đồ thị vô hướng với m cạnh Khi đó.
Chứng minh Rõ ràng mỗi cạnh e = (u,v) được tính một lần trong deg(u) và
một lần trong deg(v) Từ đó suy ra tổng tất cả các bậc của các đỉnh bằng hai lần sốcạnh
Thí dụ 2: Đồ thị với n đỉnh và mỗi đỉnh có bậc là 6 có bao nhiêu cạnh?.
Giải: Theo định lý 1, ta có 2m = 6n Từ đó suy ra số cạnh của đồ thị là 3n Hệ quả: Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa là có bậc là số lẻ) là một
Chứng minh: Thực vậy gọi O và U tương ứng là tập đỉnh bậc lẻ và tập
đỉnh bậc chẵn của đồ thị Ta có:
Trang 21Do deg(v) là chẵn với v là đỉnh trong U nên tổng thứ hai trong vế phải ở trênlà số chẵn Từ đó suy ra tổng thứ nhất (chính là tổng bậc của các đỉnh bậc lẻ) cũngphải là số chẵn, do tất cả các số hạng của nó là số lẻ, nên tổng này phải gồm một sốchẵn các số hạng Vì vậy, số đỉnh bậc lẻ phải là số chẵn Ta xét các thuật ngữtương tự cho đồ thị có hướng
Định nghiã 3: Nếu e = (u, v) là cung của đồ thị có hướng G thì ta nối hai đỉnh
u và v là kề nhau, và nói cung (u,v) nối đỉnh u với đỉnh v hoặc cũng nói cung nàylà đi ra khỏi đỉnh u và đi vào đỉnh v Đỉnh u(v) sẽ được gọi là đỉnh đầu (cuối) củacung (u, v).
Tương tự như khái niệm bậc, đối với đồ thị có hướng ta có khái niệm bán bậcra (vào) của một đỉnh
Định nghĩa 4: Ta gọi bán bậc ra (bán bậc vào) của các đỉnh v trong đồ thị có
hướng là số cung của đồ thị đi ra khỏi nó (đi vào nó) và ký hiệu là deg+(v)(deg(v))
Định lý 2: Giả sử G = (V,E) là đồ thị có hướng Khi đó
vVv vVv E
Rất nhiều tính chất của đồ thị có hướng không phụ thuộc vào hướng trên cáccung của nó Vì vậy, trong nhiều trường hợp sẽ thuận tiện hơn nếu ta bỏ qua hướngtrên các cung của đồ thị Đồ thị vô hướng thu được bằng cách bỏ qua hướng trêncác cung được gọi là đồ thị vô hướng tương ứng với dồ thị có hướng đã cho.
1.3 Đường đi, chu trình, đồ thị liên thông.
Định nghĩa 1: Đường đi độ dài n từ đỉnh u đến đỉnh v, trong đó n là số nguyên
dương, trên đồ thị vô hướng G =(V,E) là dãy x0, x1, … ,xn-1,xn trong đó u =x0,v=xn , (xi, xi+1) E, i= 0, 1, 2… , n-1 Đường đi nói trên còn có thể biểu diễn dướidạng dãy các cạnh: (x0, x1), (x1, x2), …, (xn-1, xn).
Đỉnh u gọi là đỉnh đầu còn đỉnh v gọi là đỉnh cuối của đường đi Đường đi cóđỉnh đầøu trùng với đỉnh cuối (tức là u= v) được gọi là chu trình Đường đi haychu trình được gọi là đơn nếu như không có cạnh nào bị lặp lại
Định nghĩa 2: Đường đi độ dài n từ đỉnh u đến đỉnh v trong đó n là số nguyên
dương, trên đồ thị vô hướng G =(V, A) là dãy x0, x1, … ,xn-1,xn trong đó u =x0,v=xn , (xi, xi+1) A, i= 0, 1, 2… , n-1 Đường đi nói trên còn có thể biểu diễn dướidạng dãy các cung: (x0, x1), (x1, x2), …, (xn-1, xn).
Đỉnh u gọi là đỉnh đầu còn đỉnh v gọi là đỉnh cuối của đường đi Đường đi cóđỉnh đầøu trùng với đỉnh cuối (tức là u= v) được gọi là chu trình Đường đi haychu trình được gọi là đơn nếu như không có cung nào bị lặp lại
Định nghĩa 3: Đồ thị vô hướng G= (V,E) được gọi là liên thông nếu luôn tìm
được đường đi giữa hai đỉnh bất kỳ của nó
Như vậy hai máy tính bấy kỳ trong mạng có thể trao đổi thông tin được vớinhau khi và chỉ khi đồ thị tương ứng vơi mạng này là đồ thị liên thông.
Định nghĩa 4: Ta gọi đồ thị con của đồ thị G= (V,E) là đồ thị H = (W,F) trong
đó W V và FE.
Trong trường hợp đồ thị là liên thông, nó sẽ rã ra thành một số đồ thị con liênthông đôi một không có đỉnh chung Những đồ thị con liên thông như vậy ta sẽ gọilà các thành phần liên thông của đồ thị.
Trang 22Định nghĩa 5: Đỉnh v được gọi là đỉnh rẽ nhánh nếu việc loại bỏ v cùng với
các cạnh liên thuộc với nó khỏi đồ thị làm tăng số thành phần liên thông của đồ thị.Cạnh e được gọi là cầu nếu việc loại bỏ nó khỏi đồ thị làm tăng số thành phần liênthông của đồ thị.
Định nghĩa 6: Đồ thị có hướng G= (V,A) được gọi là liên thông mạnh nếu
luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó.
Định nghĩa 7: Đồ thị có hướng G =(V,A) được gọi là liên thông yếu nếu đồ thị
vô hướng tương ứng với nó là đồ thị vô hướng liên thông
Rõ ràng nếu đồ thị là liên thông mạnh thì nó cũng là liên thông yếu, nhưng điềungược lại là không luôn đúng.
Định lý1: Đồ thị vô hướng liên thông là định hướng được khi và chỉ khi mỗi
cạnh của nó nằm trên ít nhất một chu trình.
Chứng minh: Điều kiện cần, giả sử (u, v) là một cạnh của đồ thị Sự tồn tại
đường đi có hướng từ u đến v và ngược lại suy ra (u, v) phải nằm trên ít nhất mộtchu trình
Điều kiện đủ, thủ tục sau đây cho phép định hướng các cạnh của đồ thi để thu
được đồ thị có hướng liên thông mạnh Giả sử C là chu trình nào đó trong đồ thị.
Định hướng các cạnh trên chu trình này theo một hướng đi vòng theo nó Nếu tất
cả các cạnh của đồ thị đã được định hướng thì kết thúc thủ tục Ngược lại chọn e là
cạnh chưa định hướng có chung đỉnh với ít nhất một trong số các cạnh đã định
hướng Theo giả thiết tìm đựơc chu trình C’ chứa cạnh e định nghĩa các cạnh chưađịnh hướng của C’ theo một hướng dọc theo chu trình này (không định hướng lạicác cạnh đã có hướng) Thủ tục trên sẽ lặp lại cho đến khi tất cả các cạnh của đồthị được định hướng Khi đó ta thu được đồ thị có hướng liên thông mạnh.
II Biểu diễn đồ thị trên máy tính.
Để lưu trữ đồ thị và thực hiện các thuật tốn khác nhau với đồ thị trên máy tínhcần phải tìm những cấu trúc dữ liệu thích hợp để mô tả đồ thị Việc chọn cấu trúcdữ liệu nào để biểu diễn đồ thị có tác động rất lớn đến hiệu quả của thuật tốn Vìvậy, việc chọn lựa cấu trúc dữ liệu để biểu diễn đồ thị phụ thuộc vào từng tìnhhuống cụ thể (bài tốn và thuật tốn cụ thể ) Ở phần này ta sẽ xét một số phươngpháp cơ bản để biểu diễn đồ thị trên máy tính, đồng thời cũng phân tích một cáchngắn gọn những ưu điểm cũng như những nhược điểm của chúng
2.1 Ma trận kề, Ma trận trọng số.
Xét đơn đồ thị vô hướng G = (V,E), với tầp đỉnh V= {1, 2, …,n} tập cạnh E ={e1, e2,…, em} Ta gọi ma trận kề của đồ thị G là (0, 1) ma trận A = {aij: i,j = 1, 2,… ,n}với các phần tử được xác định theo quy tắc sau đây:
aij =0 nếu (i,j) E và aij =1 nếu (i,j) E, i,j =1, 2,…,n
Thí dụ1: Ma trận kề củae đồ thị vô hướng cho trong hình 1 là:
1 2 3 4 5 6
Trang 22
0 1 1 0 0 01 0 1 0 1 01 1 0 1 0 00 0 1 0 1 10 1 0 1 0 1
Trang 232 Tổng các phần tử trên dòng i (cột j) của ma trận kề chính bằng bậc của đỉnh i
(đỉnh j)
3 Nếu ký hiệu aij , i,j = 1, 2,…, n Là các phần tử của ma trận Ap = A.A….A plà thừa số, khi đó aijp, i,j = 1, 2,…, n cho ta số đường đi khác nhau từ đỉnh i đếnđỉnh j qua p –1 đỉnh trung gian.
Ma trận kề của đồ thị có hướng được định nghĩa một cách hồn tồn tương tự.
Thí dụ 2: Đồ thị có hướng G1 cho trong hình 1 có ma trận kề là ma trận sau.1 2 3 4 5 6
Lưu ý rằng ma trận kề của đồ thị có hướng không phải là ma trận đối xứng.
Chú ý: Trên đây chúng ta chỉ xét đơn đồ thị Ma trận kề của đa đồ thị có thể
xây dựng hồn tồn tương tự, chỉ khác, là thay vì ghi 1 vào vị trí a[i, j] nếu (i, j) là
cạnh của đồ thị, chúng ta sẽ ghi k là số cạnh nối hai đỉnh i và j.
Trong rất nhều vấn đề ứng dụng của lý thuyết đồ thị, mỗi cạnh e= (u, v) của đồthị được gán với một con số c(e) (còn viết là c (u, v)) gọi là trọng số của cạnh e.Đồ thị trong trường hợp như vậy được gọi là đồ thị trọng số Trong đồ thị có trọngsố, thay vì ma trận kề, để biểu diễn đồ thị ta dùng ma trận trọng số.
C = c[i,j], i,j=1,2,…,n.
Với c(i, j)= c[i, j], nếu (i, j) E và c[i, j] = nếu (i, j) E 0 1 1 0 0 0
0 0 0 0 0 00 1 0 1 0 00 0 0 0 0 00 0 0 1 0 10 0 0 0 1 0
Trang 24Trong đó số , tùy từng trường hợp cụ thể, có thể được đặt bằng một trong cácgiá trị sau: 0, +, -
Ưu điểm lớn nhất của phương pháp biểu diễn đồ thị bằng ma trận kề (hoặcbằng ma trận trọng số) là để trả lời câu hỏi: hai đỉnh u, v có kề nhau trên đồ thị haykhông, chúng ta chỉ phải thực hiện một phép so sánh Nhược điểm lớn nhất củaphương pháp này là không phụ thuộc vào số cạnh của đồ thị, ta luôn phải sử dụngn2 đơn vị bộ nhớ để lưu trữ ma trận kề của nó
Chú ý: trong trường hợp đồ thị có trọng số ta cần thêm m đơn vị bộ nhớ để lưutrữ trọng số của các cạch.
For u Ke(v) do…
Chẳng hạn, trên PASCAL có thể mô tả danh sách này như sau (Gọi là cấu trúc
Forward star ):
Const
m = 100; {m – số cạnh}n = 100; {n – số đỉnh}var
Ke: array {1 m} of integer ;Tro: array {1 n+1} of integer ;
Trong đó Tro [i] ghi nhận vị trí bắt đầu của danh sách kề của đỉnh i, i = 1, 2, …n,Tro[n+1] = 2m + 1.
III Bài tốn tìm đường đi ngắn nhất.
Trong các ứng dụng thực tế, bài tốn tìm đường đi ngắn nhất giữa hai đỉnh củađồ thị liên thông có một ý nghĩa to lớn, có thể dẫn về bài tốn như vậy nhiều bài tốnthực tế quan trọng Ví dụ, bài tốn chọn một hành trình tiết kiệm nhất (theo tiêuchuẩn khoảng cách hoặc thời gian hoặc chi phí) trên một mạng giao thông đườngbộ, đường thủy hoặc đường không; bài tốn chọn một phương pháp tiết kiệm nhấtđể đưa một hệ động lực lực từ trạng thái xuất phát đến một trạng thái đích, bài tốn
Trang 25lập lịch thi công các công đoạn trong công trình thi công lớn, bài tốn lựa chọnđường truyền tin với chi phí nhỏ nhất trong mạng thông tin, …hiện nay có rấtnhiều phương pháp để giải các bài tốn như vậy Thế nhưng thông thường các thuậttốn được xây dựng dựa trên lý thuyết đồ thị tỏ ra là các thuật tốn có hiệu quả nhất.Trong phần này ta sẽ xét một số thuật tốn như vậy.
3.1 Các khái niệm mở đầu.
Trong phần này ta chỉ xét đồ thị có hướng G = (V,E), |V| = n, |E| = m với cáccung được gán trọng số, nghĩa là mỗi cung (u, v) thuộc E của nó đựơc đặt tươngứng với một số thực a (u, v) gọi là trọng số của nó, chúng ta sẽ đặt a(u, v)= , nếu(u, v) E Nếu dãy v0, v1,…vp là một đường đi trên G, đồ thị độ dài của nó đượcđịnh nghĩa là tổng sau.
1, )(
Tức là, đồ dài của đường đi chính là tổng trọng số trên các cung của nó (chúý rằng nếu chúng ta gán trọng số cho tất cả các cung đều bằng 1, thì ta được địnhnghĩa độ dài của đường đi như là số cung của đường đi giống như các phần trướcta đã xét ).
Bài tốn tìm đường đi ngắn nhất trên đồ thị dưới dạng tổng quát có thể phát biểunhư sau:
Tìm đường đi có độ dài nhỏ nhất từ một đỉnh xuất phát s V đến đỉnh cuối(đích) t V Đường đi như vậy ta sẽ gọi là đường đi ngắn nhất từ s đến t còn độdài của nó ta sẽ ký hiệu là d(s, t) và còn gọi là khoảng cách từ s đến t (khoảngcách định nghĩa như vậy có thể là số âm ) Nếu như không tồn tại đường đi từ sđến t thì ta sẽ đặt d(s, t) = Rõ ràng, nếu như mỗi chu trình trong đồ thị đều có độdài dương, thì trong đường đi ngắn nhất không có đỉnh nào bị lặp lại (đường đikhông có đỉnh nào lặp lại sẽ được gọi là dường đi cơ bản) Mặt khác, nếu đồ thị cóchu trình với độ dài âm (chu trình như vậy, để ngắn gọn ta gọi là chu trình âm ) thìkhoảng cách giữa một số cặp đỉnh nào đó của đồ thị có thể là không xác định, bởivì bằng cách đi vòng theo chu trình này một số đủ lớn lần, ta có thể chỉ ra đường đigiữa các đỉnh này có độ dài nhỏ hơn bất cứ số thực cho trước nào Trong cáctrường hợp như vậy, có thể đặt vấn đề tìm đường đi cơ bản ngắn nhất, tuy nhiênbài tốn đặt ra sẽ trở nên phức tạp hơn rất nhiều, bởi vì nó chứa bài tốn xét sự tồntại đường đi Hamilton trong đồ thị như là một trường hợp riêng.
Trước hết cần chú ý rằng nếu biết khoảng cách từ s đến t, trong trường hợptrọng số không âm, có thể tìm được một cách dễ dàng, để tìm đường đi chỉ cần đểý là đối với cặp đỉnh s, t V tùy ý (s t) luôn tìm được v đỉnh sao cho:
d(s, t) = d(s, v) + a(v, t).
Thực vậy, đỉnh v như vậy chính là đỉnh đi trước đỉnh t trong đường đi ngắnnhất từ s đến t Tiếp theo ta lại có thể tìm được đỉnh u sao cho d(s, v)= d(s, u) +a(u, v), … từ giả thiết về tính không âm của các trọng số dễ dàng suy ra rằng dãy t,v, u,… không chứa đỉnh lặp lại và chứa đỉnh kết thúc ở đỉnh s Rõ ràng dãy thuđược xác định (nếu lật ngược thứ tự các đỉnh trong nó) đường đi ngắn nhất từ s đếnt
3.2 Đường đi ngắn nhất xuất phát từ một đỉnh
Trang 26Phần lớn các thuật tốn tìm khoảng cách giữa hai đỉnh s và t được xây dựng nhờkỹ thuật tính tốn mà ta có thể mô tả đại thể như sau: từ ma trận trọng số a{u, v}, u,v V, ta tính cận trên d{v} của khoảng cách từ s đến tất cả các đỉnh v V , mỗikhi phát hiện
d{u}+a[u, v] < d[v] (1)
Cận trên d[v] sẽ được là tốt lên : d[v]=d[u] + a[u, v].
Quá trình đó sẽ kết thúc khi nào chúng ta không làm tốt thêm được bất cứ cậntrên nào Khi đó rõ ràng giá trị của mỗi d[v] sẽ cho ta khoảng cách từ đỉnh đượcgọi là nhãn của đỉnh v, còn việc tính lại các lại các cận trên này sẽ gọi là phép gánnhãn cho đồ thị và tồn bộ thủ tục thường gọi là thủ tục gán nhãn Nhận thấy rằngđể tính khoảng cách từ s đến t, ở dây, ta phải tính khoảng cách từ s đến tất cả cácđỉnh còn lại của đồ thị Hiện nay vẫn chưa biết thuật tốn nào cho phép tìm đườngđi ngắn nhất giữa hai đỉnh làm việc thật sự hiệu quả hơn những thuật tốn tìmđường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh còn lại.
Sơ đồ tính tốn mà ta vừa mô tả còn chưa là xác định bởi vì còn phải chỉ ra thứtự chọn các đỉnh u và v để kiểm tra điều kiện (!) thứ tự chọn này có ảnh hưởng rấtlớn đến hiệu quả của thuật tốn
Bây giờ ta sẽ mô tả thuật tốn Ford-Bellman tìm đường ngắn nhất từ đỉnh s đếntất cả các đỉnh còn lại của đồ thị Thuật tốn làm việc trong trường hợp trọng số củacác cung là tùy ý, nhưng giả thiết rằng trong đồ thị không có chu trình âm
Procedure Ford-Bellman; (*
Đầu vào: đồ thị có hướng G=(V,E) với n đỉnh
s V là đỉnh xuất phát.
a[u,v],u,v V ma trận trọng số :
Giả thiết : đồ thị không có chu trình âm:
Đầu ra : khoảng cách từ đỉnh s đến tất cả các đỉnh còn lại d[v], v
Truoc[v],v V , ghi nhận đỉnh trước v trong đường đi ngắn nhất từ s đến v
(* Khởi tạo *)for v V dobegin
d[v]: =a[s, v]: truoc[v]: =s: end;
for k:=1 to n – 2 do for v V \[s] do
for u V do
if d[v] > d[u] + a[u,v] thenbegin
d[v]:=d[u]+a[u,v]: truoc[v]:=u;end;
end.
Trang 27Tính đúng đắn của thuật tốn có thể chứng minh trên cơ sở nguyên lý tối ưu củaqua hoạch động rõ ràng là độ phước tạp tính tốn của thuật tốn là O(n3) lưu ý ràngchúng ta có thể chấm dứt vòng lặp theo K khi phát hiện trong quá trình thực hiệnhai vòng lặp trong không có biến d[t] nào bị đổi giá trị việc này có thể xảy ra với k< n-2 và điều đó làm tăng hiệu quả của thuật tốn trong việc giải các bìa tốn thực tế.Tuy nhiên, cái tiến đó không thực sự cải thiện được đánh giá độ phức tạp của bảnthân thuật tốn Đối với đồ thị thưa thớt hơn là sử dụng danh sách kề Ke(v), v V,để biểu diễn đồ thị, khi đó vòng lặp theo u cần viết lại dưới dạng
For u ke(v) do
If d[v] > d[u]+a[u, v] then begin
d[u]:= d[u]+a[u, v]; truoc[v]:=u;
trong trường hợp này ta thu được thuật tốn với độ phức tạp O (n.m).
3.3 Đường đi ngắn nhất giữa tất cả các cặp đỉnh
Rõ ràng ta có thể giải bài tốn tìm đường đi ngắn nhất giữa tất cả các cặpđỉnh của đồ thị bằng cách sử dụng n lần thuật tốn mô tả ở mục trước, trong đó ta sẽchọn s lần lượt là các đỉnh của độ thị Rõ ràng, khi đó ta thu được thuật tốn với độphức tạp là O(n3) (nếu sử dụng thuật tốn Ford-Bellman) hoặc O(n3) đối với trườnghợp trọng số không âm hoặc đồ thị không có chu trình Trong trường hợp tổngquát, sử dụng thuột tốn Ford-Bellman n lần không phải là cách làm tốt nhất Ở đâyta sẽ mô tả một thuật tốn giải bài tốn trên với độ phức tạp tính tốn O(n3): Thuật tốnFloyd Thuật tốn được mô tả dưới đây.
Procedure Floyd
(* Tìm đường đi ngắn nhất giữa các cặp đỉnh
Đầu vào:Đồ thị cho bởi ma trận trọng số a{i,j},i,j=1,2….,n.
.Đầu ra:Ma trận đường đi ngắn nhất giữa các cặp đỉnh d{i, j}=1,2….n,
trong đó d{i, j} cho độ dài đường đi ngắn nhất từ i đến j.Ma trận ghi nhận đường đi
Trong đó p{i,j}ghi nhận đỉnh đi trước đỉnh jTrong đường đi ngắn nhất từ i đến j.
*) Begin
(*khởi tạo*)
for i:=1 to n do for j:=1 to n do begin
d{i, j}:=a{i, j};p{i, j}:=i; end;
(*bước lặp *)for k:=1 to n do for i:=1 to n do
for j:=1 to n do
Trang 28if d{i, j}>d{i, k}+d{k, j} then begin
d{i, j}:=d{i, k}+d{k, j};p{i, j}:= p{k, j};
end;end;
Rõ ràng độ phức tạp tính tốn của thuật tốn là O(n3).
Trang 29trên cung này được gán bằng t[i].
Thêm vào đồ 2 đỉnh 0 và n +1 tương ứng với hai sự kiện đặc biệt: đỉnh số 0
tương ứng với công đoạn Lễ khởi công, nó phải được thực thực hiện trước tất cảcác công đoạn khác, và đỉnh n+1 tương ứng với công đoạn Cắt băng khánh thànhcông trình, nó phải thực hiện sau tất cả các công đoạn, với t[0] = t[n+1] = 0 (trên
thực tế chỉ cần nối đỉnh 0 với tất cả đỉnh có bán bậc vào bằng 0 và nối tất cả cácđỉnh có bán bậc ra bằng 0 với đỉnh n+1) Gọi đồ thị thu được là G Rõ ràng bàitốn đặt ra vấn đề bài tốn tìm đường đi dài nhất từ đỉnh 0 đến tất cả các đỉnh cònlại trên đồ thị G Do đồ thị G rõ ràng không chứa chu trình, nên để giả bài tốn đặtra có thể áp dụng các thuật tốn được nêu ở trên.
1 Thí dụ: Ta có bảng các hạng mục được cho trong bảng dưới đây.
Hạng mục t[i] Hạng mục phải hồn thành trước1
101510301 2152010
1 2,342,35,65
0 1 : 00 1 2 : 100 3 : 00 1 2 4 : 250 1 2 4 5 : 550 3 6 : 100 1 2 4 5 : 55Đưa về bài tốn đồ thị có hướng, các đỉnh là các hạng mục như hình sau: