Thực thi thuật toán Bellman-Ford

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số bài toán tối ưu trên đồ thị và ứng dụng (Trang 36 - 42)

3 ỨNG DỤNG: BÀI TOÁN LẬP KẾ HOẠCH

2.7 Thực thi thuật toán Bellman-Ford

Giá trị d được viết trong các đỉnh. Các hình 2.7.b đến 2.7.e là kết quả của mỗi bước thực hiện thuật toán.

Kết thúc thuật toán, ta thu được đường đi ngắn nhất từ s tới các đỉnh là đường được tô đậm.

2.4 SO SÁNH

Dựa vào các kết quả nêu trên cho thấy, với cùng một bài toán thì thuật toán Di-jkstra có thời gian chạy tốt hơn so với thuật toán Bellman-Ford, song lại không giải quyết được bài toán chứa cạnh trọng số âm. Do đó, thuật toán Bellman-Ford thường được sử dụng trong bài toán chứa cạnh có trọng số âm.

Cả hai thuật toán này đều giải quyết bài toán tìm đường đi ngắn nhất nguồn đơn. Sự khác biệt chính của hai thuật toán là thuật toán Dijkstra không thể xử lý các cạnh có trọng số âm. Thuật toán Bellman-Ford có thể xử lý vấn đề đó. Tuy nhiên, phải nhắc lại rằng, nếu có một chu trình âm thì không có đường đi ngắn nhất.

CHƯƠNG 3

ỨNG DỤNG: BÀI

TOÁN LẬP KẾ HOẠCH

Trong thực tế, việc lập kế hoạch tiến độ là một trong những công cụ chính của quản lý dự án. Các hoạt động của dự án có thể được lập kế hoạch tiến độ với mức độ chi tiết khác nhau. Dự án là một tập hợp các hoạt động liên quan với nhau và phải được thực hiện theo một thứ tự nào đó cho đến khi hoàn thành toàn bộ các hoạt động. Hoạt động được hiểu là một việc đòi hỏi thời gian, nguyên liệu để hoàn thành. Việc lập kế hoạch cho biết thời điểm hoàn thành công việc. Cách tiếp cận cơ bản của các kỹ thuật lập kế hoạch là xây dựng một mạng lưới các công việc và mối liên hệ giữa chúng nhằm biểu diễn trình tự giữa các công việc trong dự án. Đồng thời cần xác định rõ các nhiệm vụ cần hoàn thành trước hay sau.

Một số thuật ngữ được dùng phổ biến:

Công việc (Task/Activity): là một nhiệm vụ hay một tập hợp các nhiệm vụ cụ thể

mà dự án yêu cầu, nó tiêu dùng các nguồn lực và cần thời gian để hoàn thành. Sự

thể ghi nhận trạng thái kết thúc của các công việc tại một thời điểm cụ thể. Các sự kiện không sử dụng nguồn lực.

Đường (Path): là một chuỗi các công việc liên tiếp nhau giữa hai sự kiện trong mạng.

Đường tới hạn (Critical path): là các công việc, hay đường mà nếu nó trễ sẽ kéo dài thời gian hoàn thành dự án. Mỗi đường tới hạn của dự án có nghĩa là trình tự các công việc tới hạn (và sự kiện tới hạn) mà nối sự kiện bắt đầu dự án với sự kiện kết thúc dự án.

3.1 MÔ TẢ BÀI TOÁN

Một dự án có thể chia thành nhiều công việc T1; : : : ; Tn. Trong đó mỗi công việc có một khoảng thời gian dự kiến hoàn thành.

Công việc T1 cần c1 đơn vị thời gian thực hiện Công việc T2 cần c2 đơn vị thời gian thực hiện . . .

Giữa các công việc có thể có ràng buộc về thời gian, thứ tự, nguồn lực. Trong khuôn khổ luận văn, ta không xét đến việc nguồn lực của dự án: con người, máy móc, . . . , nên giả sử nguồn lực là vô tận, có thể chạy song song nhiều công việc. Có một số ràng buộc về thời gian như sau:

Tj phải thực hiện sau Ti,

Tl phải thực hiện xong trước thời điểm xl, . . .

Mục tiêu của bài toán: tính toán ngày kết thúc dự án sao cho sớm nhất. Ta cần tìm các thời điểm d1; d2; : : : ; dn; f1; f2; : : : ; fn sao cho:

+ Ti được bắt đầu thực hiện tại thời điểm di và kết thúc tại thời điểm fi.

+ Tất cả các ràng buộc đều được thỏa mãn.

Dễ thấy, fi = di + ci.

Khi đó, khoảng thời gian kết thúc f := maxffig là bé nhất.

Ví dụ 3.1.1. Trong bảng 3.1 là một ví dụ về một dự án có 11 công việc với các ràng buộc như sau:

Bảng 3.1: Ví dụ mô hình dự án

Công việc Thời gian thực hiện Ràng buộc T 1 2 NA T2 2 NA T3 2 NA T4 3 Sau T1 T 5 4 Sau T1 T 6 7 Sau T2 T7 6 Sau T2 T8 4 Sau T4; T5 T9 10 Sau T3 T 10 3 Sau T7; T8 T 11 4 Sau T6; T7; T10

3.2 MÔ HÌNH ĐỒ THỊ

Đồ thị có nhiều ứng dụng trong việc lập lịch, với bài toán tìm đường đi dài nhất, ta sẽ đề cập tới ứng dụng của nó về lập lịch sử dụng phương pháp thế năng hoặc sơ đồ mạng PERT. Ta có thể mở rộng bài toán tìm đường đi ngắn nhất thành bài toán tìm đường đi dài nhất bằng cách thay vì tìm trọng số nhỏ nhất, ta sẽ đi tìm trọng số lớn nhất cho các đỉnh.

Phương pháp giải bằng đồ thị giúp trả lời các câu hỏi: + Dự án sẽ hoàn thành khi nào?

+ Mỗi hoạt động của dự án nên được bắt đầu vào thời điểm nào và kết thúc vào thời điểm nào?

+ Những hoạt động nào của dự án phải kết thúc đúng thời hạn để tránh cho toàn bộ dự án bị kết thúc chậm hơn so với kế hoạch? + Liệu có thể chuyển các nguồn lực dữ trữ từ các hoạt động không

"tới hạn" sang hoạt động tới hạn (các hoạt động phải hoàn thành đúng tiến độ) mà không ảnh hưởng tới dự án?

3.2.1 Phương pháp thế năng

Đồ thị Conjunctive là một cặp (G; w) trong đó:

+ G = (V; E) là một đồ thị có hướng sao cho V = fs = v0; v1; v2; : : : ; vn; vn+1 = tg, đỉnh s là nguồn, đỉnh t là đích.

thỏa mãn 8vi 6= s; t: tồn tại đường đi dương từ s đến vi và tồn tại đường đi dương từ vi đến t.

Một hàm thế năng trên G là một hàm q : V ! R sao cho:

1. q(s) = 0;

2. Với mọi cạnh (u; v) : q(u) + w(u; v) q(v) ( )

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số bài toán tối ưu trên đồ thị và ứng dụng (Trang 36 - 42)