II- NHIỆM VỤ VÀ NỘI DUNG: 9 Xây dựng một phương pháp tiến độ thỏa mãn các tính chất trong dự án xây dựng với những công tác lặp lại không đơn vị có thứ tự lặp thay đổi.. Trong điều kiện
TỔNG QUAN NGHIÊN CỨU
Giới thiệu
Trong lĩnh vực xây dựng, những dự án được chia ra thành những đơn vị tuần tự liên quan đến những công tác lặp lại như nhau thường yêu cầu một nguồn lực lớn được sử dụng theo cách thức tuần tự và do đó việc quản lý nguồn lực hiệu quả rất quan trọng trong việc cực tiểu hóa tổng chi phí thực hiện dự án và về sau nó ảnh hưởng trực tiếp chi phí dự án và cũng như gián tiếp bởi việc đáp ứng chi phí tài chính yêu cầu và những ngày đáp ứng trung gian Những dự án loại này thường được xem xét rủi ro cao, bởi vì những nguyên do thuộc về bản chất tự nhiên không nhận biết trước được, sự dính líu tiềm tàng liên quan đến những tranh cãi về luật, điều kiện thời tiết không dự báo được Những nhân tố này có thể gây ra trì hoãn tổng thể thời gian hoàn thành dự án và vượt chi phí, do đó quản lý nguồn lực và các mốc thời gian đáp ứng từng phần trở thành vấn đề thật sự quan trọng Đã từ lâu CPM được sử dụng phổ biến nhất cho việc lên kế hoạch hoạch định và kiểm tra những dự án như vậy Từ khi được phát triển bởi Dupont, Inc., trong những năm 50 của thế kỷ 20, CPM là công cụ quản lý hoạch định tiêu chuẩn và phổ biến trong những dự án xây dựng Những giới thiệu rõ ràng và đầy đủ về CPM có thể được tìm thấy trong nhiều nguồn khác nhau Trong một CPM điển hình, tổng thời gian của một dự án đang tiếp diễn được xác định dựa vào giả thuyết những công tác tương lai sẽ tiến triển như hoạch định bất kể kết quả hoàn thành trong quá khứ Ví dụ tại thời điểm dự đoán, ngày hoàn thành thật sự của công tác đã kết thúc và phần trăm hoàn thành của công tác đang tiếp diễn được cập nhật vào trong sơ đồ mạng cập nhật Sau đó, ngày bắt đầu và kết thúc của những công tác còn lại được tính toán một cách xác định tương ứng với mối quan hệ phụ thuộc và thời gian ước đoán nguyên gốc của từng công tác Những thiếu sót này đã được phê phán từ những năm 60
Những dự án nhiều đơn vị có thể được hoạch định sử dụng kỹ thuật CPM đã được chấp thuận phổ biến nhưng việc sử dụng liên tục nguồn lực xuyên qua những đơn vị (units) lặp lại không thể được đảm bảo khi sơ đồ mạng CPM này được sử dụng
Hình 2.1 Sơ đồ mạng CPM có 3 công tác lặp lại những công tác tương tự nhau từ đơn vị này đến đơn vị kia thể hiện ràng buộc mối quan hệ kỹ thuật trong sơ đồ mạng Ví dụ, công tác B1, C1 và A2 không thể bắt đầu cho đến khi công tác A1 kết thúc Đường đứt nét liên kết công tác tương tự nhau từ đơn vị này đến đơn vị kia thể hiện ràng buộc tính có sẵn của nguồn lực Ví dụ, công tác A2 không thế bắt đầu cho đến khi tổ đội từ công tác A1 đã sẵn sàng
Chú ý rằng đơn vị 1 và 3 có 5 công tác (A, B, C, D và E) nhưng đơn vị 2 không có công tác B Đơn vị 2 cũng khác biệt đó là thời gian của từng công tác riêng biệt không giống như trong đơn vị 1 và 3 Những khác biệt này phản ánh những khối lượng công việc khác nhau cần thiết để hoàn thành những công tác này trong các đơn vị Những khối lượng khác biệt này có thể do tính chủ quan người quản lý dự án chia ra các đơn vị hay do đặc thù của tính kỹ thuật (Ví dụ: các đơn vị của các nhà cao tầng thường được chia mỗi đơn vị là một tầng nhà)
Giải pháp trong hình 2.1 dẫn đến kết quả thời gian dự án là 18 ngày và đường găng bao gồm công tác A1, C1, C2, D3 và E3 Một cách điển hình, mỗi đơn vị trong một sơ đồ mạng lặp lại chứa những công tác có thời gian như nhau và đường găng trải qua suốt sơ đồ mạng công tác trong đơn vị đầu tiên cho đến khi một công tác với thời gian dài nhất được tìm thấy Kế đến, đường này trải qua những công tác tương tự nhau trong đơn vị kế tiếp cho đến khi đơn vị sau cùng trong trình tự được đến và tiếp tục xuyên qua sơ đồ mạng đơn vị sau cùng cho đến khi công tác sau cùng kết thúc Nếu ba đơn vị trong hình 2.1 giống nhau, đường công tác bao gồm công tác A1, C1, C2, C3, D3 và E3 Sự thay đổi trong đường này bao gồm công tác D2 và không có C3 như mong muốn bị gây ra bởi vì sự khác biệt những công tác trong đơn vị 2
Những mối liên kết trong sơ đồ mạng CPM đảm bảo cả hai ràng buộc mối quan hệ phụ thuộc kỹ thuật và yêu cầu có sẵn của nguồn lực được đáp ứng Tuy nhiên, ràng buộc liên tục của nguồn lực không thể tượng trưng trực tiếp trong sơ đồ mạng CPM vì thế việc sử dụng không bị gián đoạn của nguồn lực từ đơn vị này đến đơn vị kia không thể được đảm bảo Điều này cũng dễ hiểu bởi vì bản thân phương pháp CPM hoạch định được dẫn hướng bởi thời gian và ít hoặc không quan tâm đến nguồn lực Hoạch định thể hiện trong hình 2.1 cung cấp việc sử dụng liên tục của nguồn lực cho công tác C Công tác C1 bắt đầu vào ngày thứ
3 và kết thúc vào ngày thứ 7, công tác C2 bắt đầu vào ngày thứ 7 và kết thúc vào ngày thứ 10, công tác C3 bắt đầu ngày 10 và kết thúc vào ngày 14 vì vậy việc sử dụng nguồn lực không bị gián đoạn từ ngày 3 đến ngày 14 (chú ý rằng việc sử dụng nguồn lực liên tục hoặc là không được yêu cầu hoặc không thể ước đoán) Đối với công tác D, thời gian hoạch định không cung cấp việc sử dụng nguồn lực liên tục Công tác D1 được hoạch định kết thúc vào ngày thứ 9 nhưng bắt đầu công tác D2 không được hoạch định để bắt đầu cho đến khi một ngày trễ hơn (vào ngày 10) Do đó, có khoảng trống 1 ngày trong việc sử dụng nguồn lực cần thiết cho công tác D Tương tự, tính liên tục của nguồn lực được cung cấp bởi hoạch định của công tác A, nhưng không đạt được cho công tác B và E
Khi việc sử dụng không liên tục của nguồn lực cần thiết, những công tác có gián đoạn trong tính liên tục của nguồn lực có thể được hoạch định lại bằng cách sử dụng thời gian dự trữ của chúng Ví dụ, thời gian dự trữ tổng cộng một ngày của công tác D1 được sử dụng và D1 có thể hoạch định lại để bắt đầu vào ngày thứ 8 và kết thúc vào ngày thứ 10 Trong những dự án lớn với những công tác lặp lại, việc phân tích từng công tác đã hoàn thành và sửa chữa hay hiệu chỉnh sơ đồ mạng CPM được yêu cầu để đảm bảo tính liên tục của nguồn lực, một quá trình như thế là cồng kềnh và đầy khả năng lỗi có thể xảy ra
Có thể kết luận từ hình 2.1 rằng sơ đồ mạng CPM cho những dự án với những đơn vị lặp lại có dáng vẻ bậc thang với mỗi bậc là một sơ đồ mạng phụ bao gồm những công tác và mối quan hệ phụ thuộc cho một đơn vị Bởi vì đồ thị CPM thể hiện tất cả những mối liên kết giữa những công tác tương tự nhau trong những đơn vị liên tiếp và số lượng của liên kết, như thế số nút sẽ lớn và sơ đồ mạng sẽ xuất hiện nhiều phức tạp không cần thiết
Những kỹ thuật khác tập trung vào việc sử dụng nguồn lực như RSM đã được đề nghị như là một phương pháp thích hợp hơn cho việc hoạch định và kiểm soát những dự án lặp lại Tuy nhiên, quyết định hoạch định cho những dự án lặp lại là phức tạp hơn vì một vài yếu tố chi phí liên quan đến những khía cạnh khác nhau của dự án (nghĩa là tổng thời gian dự án, sự lãng phí nguồn lực, phân phối mang tính thời gian của những đơn vị dự án, chi phí tài chính) phải được xem xét và cân bằng bởi nhà quản lý dự án để đạt được hoạch định hiệu quả chi phí
2.2 Bản chất phức tạp của những dự án lặp lại tuyến tính:
Trong nhiều ví dụ, những dự án xây dựng bao gồm một bộ những công trình mà được lặp lại tuần tự tại nhiều vị trí khác nhau hoặc những đơn vị (công trường xây dựng) Sau khi một công tác hoàn tất tại một vị trí, nó được lặp lại trong khu vực tiếp theo Những công tác này theo một trình tự logic và kỹ thuật được dẫn hướng trình tự và chịu một vài ràng buộc thời gian và khoảng cách ấn định bởi những lý do bên trong (như kỹ thuật và quản lý) hoặc bên ngoài mà vẫn duy trì trong suốt toàn bộ đời sống dự án
Trong suốt những thập niên vừa qua nhiều thuật ngữ khác nhau đã được sử dụng để miêu tả những dự án như thế Phổ biến nhất giữa những thuật ngữ đó là Linear Repetitive Programming (LRP) với thuật ngữ tuyến tính ban đầu ám chỉ chủ yếu những dự án có công tác lặp lại liên tục theo phương ngang như dự án đường cao tốc, cầu, hầm tunnel, đường xe lửa, hệ thống đường ống, cống… trong khi thuật ngữ lặp lại miêu tả những dự án xây dựng có công tác được lặp lại trong những đơn vị lặp lại riêng biệt theo phương đứng như trong trường hợp nhà cao tầng Những phương pháp khác nhau đã được đề nghị cho việc lên kế hoạch, hoạch định và kiểm tra tiến trình dự án xây dựng của những dự án loại này Sự phát triển của Repetitive Scheduling method (RSM) bởi Harris và Ioannou (1998) [1] có thể được áp dụng cho cả 2 loại dự án này, là mốc lịch sử cho việc phân loại dự án thành những mục đặc trưng như LRPs Mặc dù cơ cấu phân chia công việc của LRP có thể mở rộng ra hàng trăm công tác Điều này được nhóm lại trong một vài nhóm công tác được lặp lại trong một vài đơn vị El-Rayes và Moselhi
(1998) [2] kiểm tra một trường hợp thực tế của việc thi công đường bao gồm 5 nhóm công tác lặp lại trong 15 đơn vị
Phương pháp được sử dụng thường xuyên nhất cho việc thiết kế lên kế hoạch, hoạch định và kiểm soát cho những dự án xây dựng là sơ đồ mạng dựa vào PERT/CPM Tuy nhiên, từ 1970 nhiều nhà nghiên cứu khác nhau đã thách thức khả năng của nó trong việc chứng tỏ khả năng không phù hợp của phương pháp này, cùng lúc đó những nghiên cứu của họ đã dẫn đến sự phát triển của những phương pháp thay thế thích hợp hơn cho những tiến trình xây dựng Ashley 1980 [3]; Selinger 1980 [4]; Birrell 1980 [5]; Johnston 1981[6]; Stradal và Cacha
1982 [7]; Russell và Caselton 1988 [8]; Reda 1990 [9]; Harmelink và Rowings
2.3 Các phương pháp lập tiến độ khác nhau:
Biểu đồ thanh ngang (Bar chart), phương pháp đường cân bằng (LOB), phương pháp hoạch định tuyến tính (RSM) và phương pháp đường găng (CPM) đã trở thành một trong những phương pháp phổ biến nhất của việc hoạch định các dự án xây dựng Mặc dù biểu đồ thanh ngang được sử dụng một cách rộng rãi cho việc truyền đạt thông tin liên lạc trên công trường ở cấp độ công nhân bởi vì tính đơn giản của nó (dễ hiểu và trực quan) và phương pháp LOB/RSM được sử dụng cho việc hoạch định những thành phần của dự án mang tính chất lặp lại, CPM được thừa nhận như là một công cụ thích hợp nhất cho việc hoạch định sơ đồ mạng của công việc Điều này có được bởi vì khả năng thể hiện mối quan hệ thứ tự giữa những công việc, việc tìm hiểu những công tác trên đường găng cung cấp thời gian dự trữ cho các công việc và dẫn tới việc phân bổ sử dụng nguồn lực một cách hữu hiệu và chủ động nhất Tuy nhiên, phân tích sơ đồ mạng cũng đã được mô tả bởi những sự phê phán của nó như không đủ khả năng để miêu tả bản chất lặp lại của những dự án tuyến tính Trong đó, CPM xử lý việc thực hiện công tác mạng CPM tương ứng của dự án tuyến tính nhanh chóng bị thất bại Một mạng tượng trưng cho một dự án lặp lại bao gồm M công tác, P mối quan hệ thứ tự, nó được lặp lại trong N đơn vị khi ấy sẽ có (M.N) công tác và (P.N + M(N-1)) mối quan hệ thứ tự như được minh họa trong ví dụ trong phần sau (hình 2.1) Như thể hiện mạng gồm 6 công tác (A, B, C, D, E, F) M = 6 và cũng gồm 6 đơn vị lặp lại
N = 6 Khi ấy mạng sẽ gồm 36 (6x6) công tác và 42 (7x6+6(6-1)) mối quan hệ phụ thuộc Với một số lượng lớn các công tác và mối quan hệ phức tạp như thế, nhà quản lý gặp rất nhiều khó khăn trong việc hoạch định và quản lý hiệu quả dự án
E ẹễN Về 6 ẹễN Về 5 ẹễN Về 4 ẹễN Về 3 ẹễN Về 2 ẹễN Về 1
Hình 2.2 Sơ đồ mạng có công tác lặp lại
Các phương pháp lập tiến độ khác nhau
Biểu đồ thanh ngang (Bar chart), phương pháp đường cân bằng (LOB), phương pháp hoạch định tuyến tính (RSM) và phương pháp đường găng (CPM) đã trở thành một trong những phương pháp phổ biến nhất của việc hoạch định các dự án xây dựng Mặc dù biểu đồ thanh ngang được sử dụng một cách rộng rãi cho việc truyền đạt thông tin liên lạc trên công trường ở cấp độ công nhân bởi vì tính đơn giản của nó (dễ hiểu và trực quan) và phương pháp LOB/RSM được sử dụng cho việc hoạch định những thành phần của dự án mang tính chất lặp lại, CPM được thừa nhận như là một công cụ thích hợp nhất cho việc hoạch định sơ đồ mạng của công việc Điều này có được bởi vì khả năng thể hiện mối quan hệ thứ tự giữa những công việc, việc tìm hiểu những công tác trên đường găng cung cấp thời gian dự trữ cho các công việc và dẫn tới việc phân bổ sử dụng nguồn lực một cách hữu hiệu và chủ động nhất Tuy nhiên, phân tích sơ đồ mạng cũng đã được mô tả bởi những sự phê phán của nó như không đủ khả năng để miêu tả bản chất lặp lại của những dự án tuyến tính Trong đó, CPM xử lý việc thực hiện công tác mạng CPM tương ứng của dự án tuyến tính nhanh chóng bị thất bại Một mạng tượng trưng cho một dự án lặp lại bao gồm M công tác, P mối quan hệ thứ tự, nó được lặp lại trong N đơn vị khi ấy sẽ có (M.N) công tác và (P.N + M(N-1)) mối quan hệ thứ tự như được minh họa trong ví dụ trong phần sau (hình 2.1) Như thể hiện mạng gồm 6 công tác (A, B, C, D, E, F) M = 6 và cũng gồm 6 đơn vị lặp lại
N = 6 Khi ấy mạng sẽ gồm 36 (6x6) công tác và 42 (7x6+6(6-1)) mối quan hệ phụ thuộc Với một số lượng lớn các công tác và mối quan hệ phức tạp như thế, nhà quản lý gặp rất nhiều khó khăn trong việc hoạch định và quản lý hiệu quả dự án
E ẹễN Về 6 ẹễN Về 5 ẹễN Về 4 ẹễN Về 3 ẹễN Về 2 ẹễN Về 1
Hình 2.2 Sơ đồ mạng có công tác lặp lại
Mục tiêu của CPM là cực tiểu thời gian dự án thông qua việc xác định đường găng (Critical Path) và tối ưu hóa việc đánh đổi thời gian/chi phí của dự án bằng cách rút ngắn những công tác găng Do đó, phương pháp CPM không thể đảm bảo tính liên tục của công việc cho những công tác lặp lại và đường găng của mà quan tâm đến việc giám sát vị trí và năng suất lao động của mỗi tổ đội khi nó đang tiến triển theo toàn bộ chiều dài dự án Ngoài ra, việc rút ngắn đường găng sẽ không thích hợp đối với dự án có công tác lặp lại vì nó có thể làm thay đổi năng suất lao động của một công tác trong một vài đơn vị tạo thêm những gián đoạn công việc
Việc sử dụng cân bằng nguồn lực đối với hoạch định CPM của dự án có công tác lặp lại vẫn không đảm bảo tính liên tục của công việc (Selinger 1980 [4]; Reda 1990 [9]; Russell và Wong 1993 [11]) Kỹ thuật này chỉ chủ yếu tiếp cận vấn đề này với cùng một nguồn lực được sử dụng cho nhiều công tác, thực hiện một giả thuyết ban đầu đó là tính có sẵn không giới hạn của nguồn lực trong việc phát triển hoạch định dự án và việc phân bố nguồn lực đòi hỏi phải xem xét lại việc hoạch định dự án để tuân thủ ràng buộc tính có sẵn của nguồn lực Tuy nhiên, vấn đề chính của dự án có công tác lặp lại là không phải khả năng của nguồn lực mà được xác định riêng biệt với những công tác cụ thể nhưng với hoạch định của nó
Sau cùng, trong kỹ thuật hoạch định truyền thống như PERT/CPM hiệu quả học tập không tính đến khi thời gian ước đoán tạo ra cho những công tác riêng lẽ
Những phương pháp thay thế đã được đề nghị cho phương pháp hoạch định tuyến tính được bắt nguồn chính từ mô hình đồ thị trên trục X-Y, với một trục chỉ thời gian và trục kia chỉ tiến trình công việc Những phương pháp này có thể được tổ chức thành 3 mục chính sau:
9 Dựa vào kỹ thuật đường cân bằng áp dụng chủ yếu cho những dự án riêng biệt
9 Dựa vào phương pháp hoạch định tuyến tính (LSM) thích hợp hơn cho những dự án liên tục
9 Kết hợp những kỹ thuật trước đây với những kỹ thuật nghiên cứu hoạt động khác như là chương trình năng động, chương trình xác suất,
Trong khi tất cả những kỹ thuật này vượt trội tính không thích hợp của PERT/CPM nhưng chúng thất bại trong việc đạt được sự chấp thuận rộng rãi và sử dụng thực tiễn Lý do chính cho sự chấp thuận hạn chế của chúng là:
9 Chúng phức tạp hơn cái mà chúng nên có
9 Không có một thuật toán (tiến trình) chấp thuận cho việc xác định đường găng của dự án để xác định thời gian hoàn thành (Harris và Ioannou 1998 [1]; Harmelink và Rowings 1998 [10] Sự thiếu sót của thuật toán xác định đường găng có thể được quy kết cho sự thật là trong tất cả những phương pháp này sự giả định ngầm là mọi công tác phải được xem xét như găng để kiểm soát tốt hơn một dự án (Peer 1974) Tuy nhiên, những nổ lực đáng kể đã được thực hiện trong những năm gần đây hướng đến việc phát triển một thuật toán chấp nhận và chính xác để xác định đường găng trong LRPs (Harmelink và Rowings 1998 [10])
Hoạch định cho dự án có công tác lặp lại (RSM) đã được giới thiệu bởi Harris và Ioannou (1998) [1] và đã được phát triển thêm trong những năm sau đó Lương Đức Long 2009 [12]) Nó cũng dựa vào việc mô tả đồ thị của dự án trên trục X-Y và mục tiêu của nó là kết hợp những phương pháp hiện tại vào một phương pháp thống nhất mà đảm bảo sử dụng nguồn lực liên tục RSM có thể được sử dụng cho việc hoạch định cả hai loại dự án rời rạc và liên tục Cho dự án rời rạc, những đơn vị lặp lại (tiến triển công việc) thường vẽ trên trục Y và thời gian dự án trải qua trên trục X, trong khi đối với dự án liên tục thời gian được vẽ trên trục Y và những đơn vị lặp lại trên trục X
RSM theo khái niệm mối quan hệ công tác của CPM và chấp thuận ba loại công tác như là những yếu tố cơ bản của phương pháp đồ thị cho việc hoạch định dự án tuyến tính Chúng là:
9 Các công tác khối tượng trưng cho công việc chiếm giữ một khu vực cụ thể trên một giai đoạn nào đó
9 Công tác thanh được định nghĩa là công tác không lặp lại
Hơn nữa, 3 mối liên hệ được định nghĩa cho việc kiểm soát mối liên hệ giữa các công tác:
9 Tính liên tục của tổ đội
RSM cũng giới thiệu thuật ngữ kiểm soát trình tự và kiểm soát điểm cho việc xác định những công tác găng thuộc về trình tự kiểm soát không những trong trường hợp sự trì hoãn ảnh hưởng thời gian hoàn thành dự án mà còn trong trường hợp sự trì hoãn tạo ra gián đoạn trong việc sử dụng nguồn lực (gián đoạn công việc) RSM sử dụng phương pháp hệ thống kéo (sẽ được giới thiệu chi tiết trong phần sau) với thời gian kết thúc của công tác đi trước được kéo hướng về để gặp bắt đầu của công tác đi sau mục đích là để đạt được tính liên tục của công việc và sử dụng nguồn lực không gián đoạn nó trái ngược với hệ thống đẩy CPM với bắt đầu của mỗi công tác được đẩy đến thời điểm để duy trì mối quan hệ thứ tự với công tác trước Mục tiêu của RSM không phải là cực tiểu thời gian dự án nhưng đạt được tính liên tục của tổ đội điều này đồng nghĩa với việc cực tiểu chi phí dự án Trong những dự án xây dựng, cực tiểu tổng chi phí có lẽ đáng quan tâm hơn việc giảm thời gian dự án Tuy nhiên, sự giả thuyết này có thể không đúng vì kéo dài thời gian dự án có thể dẫn đến không những trì trệ gây trễ thời gian dự án theo kế hoạch và bị phạt mà còn dẫn đến doanh thu bị mất Đặc biệt trong những dự án liên quan đến rủi ro cao của việc trì hoãn lâu dài bởi vì sự tranh cãi liên quan đến luật hoặc những điều khác gây ra đáp ứng những phần của dự án và làm chúng phải hoạt động thiết yếu để tránh những mất mát tài chính nghiêm trọng Do đó, người quản lý dự án cần có sự xem xét đánh đổi giữa chi phí gia tăng khi kéo dài thời gian dự án do việc tuân thủ tính liên tục của tổ đội và chi phí gia tăng khi xảy ra lãng phí của tổ đội
Trải qua nhiều thập niên, đã có rất nhiều phương pháp khác nhau được đề xuất nhằm đưa ra một công cụ hay phương pháp thích hợp trong việc tìm ra một cách thức tối ưu trong vấn đề hoạch định những dự án có công tác lặp lại Điển hình nhất là một số phương pháp sau đây: phương pháp LOB (Carr và Meyer
1974 [13], Arditi và Albulak 1986 [14], Reda 1990 [9]) hay phương pháp LSM/RSM (Selinger 1980 [4], Johnston 1981 [6], Chrzanowski và Johnston 1986 [15], Russell và Wong 1993 [11], Eldin và Senouci 1994 [16]) Điều này chứng tỏ rằng hoạch định cho dự án có các công tác lặp lại thật sự là mối quan tâm của các nhà quản lý dự án ệ Tuy nhiờn hầu hết cỏc phương phỏp trờn đều khụng đề cập đến dự ỏn cú tính chất lặp lại không đơn vị “ non-unit” nên những vấn đề về “ non- unit” rất hạn chế, chỉ có Rong-yau Huang và Kuo-Shun Jun 2005 [17] là có nghiên cứu tuy nhiên khó áp dụng do dùng phương pháp hình học minh họa Nghiên cứu này xây dựng một phương pháp tiến độ cho những dự án có công tác lặp lại không đơn vị “non-unit” ( tức là lặp lại theo công tác chứ không phải lặp lại cả một đơn vị ) bằng phương pháp số sau đó tự động hóa thuật giải bằng phần mềm Visual Studio 2010.
CƠ SỞ LÝ THUYẾT
Giới thiệu về tiến độ dự án
– 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 hoàn thành toàn bộ các hoạt động “Dự án là một nhóm các công việc được thực hiện theo một quy trình nhất định để đạt được mục tiêu đề ra, có thời điểm bắt đầu và kết thúc được ấn định trước và sử dụng tài nguyên có giới hạn ” (theo Quản lý dự án xây dựng của Đỗ Thị Xuân Lan, trang 13)
– Cho nên hoạt động được hiểu như là một việc đòi hỏi thời gian, và nguyên liệu (Resource) để hoàn thành và việc hoạch định là rất quan trọng của công tác Quản lý dự án Kế hoạch cung cấp thông tin, phối hợp công việc của các bên tham gia dự án và thiết lập tiêu chuẩn cho hệ thống kiểm soát dự án để theo dõi khối lượng, chi phí và thời gian của dự án
– Trong quá trình thực hiện dự án.nhiều công việc không thể thực hiện hiệu quả do các gián đoạn và và chậm trễ Ngoài ra khối lượng công việc phải làm lại do những thay đổi phải làm lại làm suy giảm hiệu quả làm việc Vì vậy lập kế hoạch cần xác định rõ công việc của mỗi người tham gia dự án và ảnh hưởng công việc giữa các thành viên Đồng thời kế hoạch phải mô tả rõ ràng các việc cần làm trước khi bắt đầu thực hiện
– Tiến độ của dự án là một phương tiện hiệu quả ngăn ngừa các lỗi trên và hạn chế được sự chậm trễ trong công việc, nguyên nhân làm vượt chi phí dự án, chậm tiến độ và phát sinh tranh chấp Tiến độ góp phần định hướng công việc rõ ràng chủ động hơn cho các tổ đội thi công góp phần tăng năng suất và hiệu quả trong lao động.
Các phương pháp lập tiến độ truyền thống
– Có nhiều phương pháp lập tiến độ khác nhau phụ thuộc vào quy mô và mức độ phức tạp của dự án, yêu cầu của Chủ Đầu Tư và thời gian hoàn thành dự án, trong đó có hai phương pháp được dùng phổ biến nhất là tiến độ ngang (tiến độ Gantt) và tiến độ mạng
3.2.1 Phương pháp lập tiến độ ngang (tiến độ GANTT) :
– Tiến độ ngang được sáng lập bởi Henry L.Gantt trong chiến tranh thế giới thứ nhất, đó là một phương pháp tiến độ dạng đồ thị theo trục thời gian, gồm các đường kẻ ngang, biểu thị điểm khởi công và kết thúc hoạt động
– Ưu điểm của tiến độ ngang (Gantt) :
+ Là phương pháp hiệu quả dùng để lập tiến độ tổng thể dự án, được sử dụng rất phổ biến, nó dễ sử dụng, dễ hiểu và không đòi hỏi nhiều kỹ năng quản lý
+ Đây là cách sử dụng tốt nhất cho những dự án không phức tạp và có mối quan hệ giữa các công việc đơn giản, không cần có mối quan hệ qua lại giữa các công việc Kỹ thuật đồ thị này hình thành cơ sở việc thiết lập nguồn lực
– Nhược điểm của tiến độ ngang :
+ Sử dụng hạn chế trong lập tiến độ chi tiết Không thể hiện được mối quan hệ qua lại giữa các công việc nên mất nhiều thời gian và khó cập nhật tiến độ thực tế và khó dự báo được tác động của các công việc thay đổi đối với thời hạn hoàn thành dự án
+ Khi một công việc trong tiến độ ngang thay đổi thì sẽ không tự động điều chỉnh những công việc tiếp theo sau
+ Tiến độ ngang cũng không hợp nhất chi phí hay tài nguyên với thời gian, trong khi những giá trị này rất quan trọng cho công việc quản lý thiết kế và thi công một dự án xây dựng
– Sau đây là một ví dụ về tiến độ ngang về kế hoạch thi công ngôi nhà cấp 4
0 Chuẩn bị mặt bằng và thiết bị Đào đất
Thi công đài móng và giằng móng
Thi công dầm sàn tầng trệt
Thi công cột tầng trệt
Thi công dầm sàn tầng mái
Thi công hoàn thiện kiến trúc và M&E
3.2.2 Phương pháp sơ đồ mạng :
– Một trong những thành tựu to lớn của ngành xây dựng trong nữa cuối thế kỷ
20 là việc áp dụng sơ đồ mạng trong việc lập kế hoạch tiến độ xây dựng Sơ đồ mạng bắt nguồn từ lý thuyết đồ thị với hai yếu tố cơ bản là công việc và sự kiện nên còn được gọi là phương pháp Graph, nó là một công cụ toán học hiện đại, một sơ đồ bao gồm toàn bộ khối lượng của một bài toán lập kế hoạch,diễn tả kế hoạch tiến độ một dự án, thể hiện một cách lôgic trình tự kỹ thuật và mối liên hệ về tổ chức giữa các công tác sản xuất, ấn định thời gian thực hiện các công tác và tối ưu hóa kế hoạch đề ra Trong quá trình quản lý và thực hiện kế hoạch ta vẫn có thể điều chỉnh sơ đồ mạng cho sát với thực tế Để lập được sơ đồ mạng cần phân tích tỷ mỉ trình tự công việc, những mối liên hệ bắt buộc về công nghệ hoặc lôgic về tổ chức Vì vậy không bỏ sót bất kỳ công việc nào và có được một kế hoạch tiến độ khoa học, chính xác
– Vì sơ đồ mạng là một mô hình toán học động, thể hiện toàn bộ dự án xây dựng thành một thể thống nhất, chặt chẽ trong đó thấy rõ vị trí của từng công việc đối với mục tiêu chung và sự ảnh hưởng lẫn nhau giữa các công việc nên có thể áp dụng các phương pháp toán học vào việc phân tích, xây dựng và điều khiển kế hoạch Vì vậy dễ dàng lập được các thuật toán và viết các chương trình cho máy tính điện tử kể cả việc tự động hóa thiết kế
– Có 2 phương pháp cơ bản để vẽ sơ đồ mạng :
+ Sơ đồ mạng công việc trên mũi tên (Activity On Arrow-AOA)
Công tác được biểu diễn bằng mũi tên, sự kiện được biểu diễn bằng nút vòng tròn Với sơ đồ mạng này tồn tại công tác ảo
Cách thể hiện tên công tác trên sơ đồ mạng mũi tên
+ Sơ đồ mạng công việc trên nút (Activity On Node - AON)
Công tác được biểu diễn bằng nút vòng tròn, sự kiện được biểu diễn bằng mũi tên Sơ đồ dạng này không tồn tại các công tác ảo và thường được sử dụng trong việc lập trình các phần mềm trong máy tính
Cách thể hiện tên công tác trên sơ đồ mạng mũi tên
– Sơ đồ mạng là tên chung của nhiều phương pháp có sử dụng lý thuyết mạng
3.2.2.1 Phương pháp kỹ thuật đánh giá và kiểm tra hiệu suất hoạt động (Project evaluation and review technique) PERT :
"Kỹ thuật đánh giá và xem xét chương trình (dự án)" (Program Evaluation and Review Technique hay viết tắt là PERT), được phát triển bởi hãng Booz- Allen & Hamilton thuộc thành phần của Hải quân Hoa Kỳ (hợp tác cùng với công ty Lockheed) trong chương trình chế tạo tên lửa xuyên lục địa Polaris trang bị cho tàu ngầm năm 1958 Tham gia chương trình có khoảng 200 nhà cung ứng,
9000 nhà thầu, hàng ngàn nhà bác học và công nhân kỹ thuật bậc cao Dự kiến
A nên thời gian thực hiện dự án đã giảm xuống còn 4 năm Sau đó kỹ thuật quản lý này đã lan rộng một cách nhanh chóng sang nhiều doanh nghiệp tư nhân
Trong phần này, những vấn đề cơ bản về quy tắc lập mạng, tính toán thời gian,…cũng giống như CPM Ta chỉ nêu những điểm khác biệt nổi bật nhất có trong phương pháp PERT a) Ước lượng thời gian hoàn thành công việc
Có hai phương pháp chính để dự tính : phương pháp tất định và phương pháp ngẫu nhiên Phương pháp tất định bỏ qua những yếu tố bất định trong khi phương pháp ngẫu nhiên tính đến sự tác động của các nhân tố ngẫu nhiên khi dự tính thời hạn thực hiện các công việc
Trên thực tế, có rất nhiều dự án mà công việc chưa có định mức hoặc định mức chưa phù hợp với thực tiễn Theo như phương pháp ngẫu nhiên mà cụ thể là áp dụng trong sơ đồ PERT, khi lập kế hoạch thi công, người ta dựa trên kinh nghiệm để ước lượng thời gian hoàn thành công việc Vì vậy, thời gian đó không xác định, ta phải lấy thời gian trung bình mong muốn ( Te ) kèm theo một đại lượng đo sự không xác định của thời gian này làm thời gian thực hiện công việc
Sự không xác định đó có thể biểu thị bằng độ lệch tiêu chuẩn (σ) hoặc phương sai (V) của thời gian Ta phải dùng hàm phân phối xác suất để xác định số liệu mỗi công việc
Có 3 ước lượng thời gian được đặt ra và được nằm trong đường cong lý thuyết:
- Thời gian lạc quan (a) là thời gian ước lượng ít nhất để hoàn thành công việc trong những điều kiện thuận lợi nhất;
- Thời gian bi quan ( b) là thời gian ước lượng lớn nhất để hoàn thành công việc trong điều kiện khó khăn nhất;
PHƯƠNG PHÁP TIẾN ĐỘ CHO DỰ ÁN XÂY DỰNG CÓ CÔNG TÁC LẶP LẠI KHÔNG THUẦN NHẤT CÓ THỨ TỰ LẶP THAY ĐỔI
Quy trình nghiên cứu
XÁC ĐỊNH VẤN ĐỀ NGHIẾN CỨU
Xác định mối quan hệ giữa các công tác và thời gian thực hiện các công tác đó
Thiết kế sơ đồ mối quan hệ giữa các công tác
Tham khảo các nghiên cứu trước, sách báo, internet và các tài liệu nước ngoài
Tham khảo ý kiến chuyên gia và những người có nhiều kinh nghiệm
Tiến hành phát triển thuật toán
Lập trình dựa trên mô hình và thuật toán
Kiểm tra kết quả bằng cách thay đổi nhiều lần thứ tự các công tác
So sánh với kết quả tính được từ excel Đánh giá kết quả tối ưu đạt được Đề xuất một số biện pháp quản lý và kiểm soát
Quy trình nghiên cứu là lập kế hoạch cụ thể quy trình quan sát, đo đạc, thu thập và phân tích dữ liệu cần thiết để đạt được mục tiêu nghiên cứu Quy trình nghiên cứu như là một bản kế hoạch mà trong đó ta cần cụ thể hoá nội dung, quy trình và thời gian thực hiện nghiên cứu Trong quy trình nghiên cứu dữ liệu và phương pháp thu thập phải phù hợp và đáp ứng mục tiêu nghiên cứu Nói cách khác tuỳ theo quy mô và mục tiêu nghiên cứu mà nhà nghiên cứu phải cân đối một cách phù hợp nhất ba yếu tố cơ bản là: giá trị thông tin, độ chính xác của thông tin thu được và chi phí để thực hiện nghiên cứu đó
Sau khi xác định các các vấn đề nghiên cứu đã được xác định ở chương 1, tiến hành xác định các mối quan hệ giữa các công tác và thời gian thực hiện các công tác đó bằng cách tham khảo ý kiến chuyên gia và những người có kinh nghiệm Thiết kế thuật toán dựa vào các mối quan hệ giữa các công tác,sử dụng ngôn ngữ lập trình Visual C# để tính toán tiến độ tối ưu đạt được, tiến hành phân tích số liệu, thảo luận, kiến nghị và đề xuất một số biện pháp quản lý và kiểm soát tiến độ dựa trên các kết quả thu được.
Mô tả vấn đề lập tiến độ những dự án với những công tác có tính chất lặp lại trong đơn vị không thuần nhất
lặp lại trong đơn vị không đồng nhất
Phương pháp tiến độ lặp lại hiệu quả hơn phương pháp đường găng truyền thống (CPM) trong việc lập mô hình và lập kế hoạch Chúng tạo được sự liên tục trong việc sử dụng tài nguyên trong suốt quá trình thi công Hơn thế nữa, hầu hết những phương pháp tiến độ lặp lại đều phát triển dựa vào tiền đề là một dự án lặp lại bao gồm nhiều đơn vị sản xuất đồng nhất Một mạng lưới đơn vị được lặp lại sau đó cho mỗi đơn vị sản xuất giống như trong hình dưới đây.Thông thường thì một tổ đội thi công được thiết kế cho mỗi công tác trong mạng lưới đơn vị Trong điều kiện lí tưởng thì tổ đội thi công sẽ thực hiện cùng một công tác môt cách liên tục trong những đơn vị sản xuất ở các vị trí khác nhau
Tuy nhiên, trong thực tế thì những đơn vị sản xuất trong nhiều dự án lặp lại có thể không được xuất hiện Chẳng hạn như trong một dự án đóng cọc, điều kiện đất là khác nhau tại những vi trí mỗi cọc dẫn đếm độ sâu của các cọc là không hoàn toàn giống nhau Trong dự án lắp đặt ống, số lượng hố đào và số tiết diện ống phải thi công thông thường là không bằng nhau, điều này làm cho việc xác định đơn vị sản xuất lặp lại trở nên khá cứng nhắc Cũng vậy,các phương pháp xây dựng khác nhau có thể cần những công cụ và tổ đội tài nguyên khác nhau, do đó thời gian lắp đặt ống cũng khác nhau cho những tiết diện khác nhau Trong xây dựng chưng cư, việc thiết kế nội bộ bên trong mỗi nhà có thể khác nhau, hơn thế nữa khối lượng làm việc yêu cầu (ví dụ khối lượng xây tường, khối lượng trần…) cũng như thời gian và chi phí cũng khác nhau Hơn thế nữa, thậm chí trong một dự án lặp lại điển hình với nhiều đơn vị sản xuất giống nhau, nó thường bao gồm nhiều phần nhỏ công việc có bản chất không lặp lại
Một thuật toán cho việc lâp tiến độ và kế hoạch cho dự án có công tác lặp lại trong những đơn vị sản xuất không đồng nhất ( không giống nhau) được phát triển
Thay vì những đơn vị sản xuất lặp lại được tập trung xem xét như các phương pháp truyền thống khác ( tiến độ dây truyền, LOB), thì phương pháp này tập trung xác định một nhóm công tác lặp lại hoặc tương tự và sử dụng chúng cho việc lập tiến độ
4.2.2 Mô tả vấn đề lập tiến độ những dự án với những công tác có tính chất lặp lại có thứ tự lặp thay đổi theo đơn vị không đồng nhất
4.2.2.1 Gi ớ i thi ệ u d ự án v ớ i nh ữ ng công tác có tính ch ấ t l ặ p l ạ i có th ứ t ự l ặ p thay đổ i theo đơn vị không đồng nhất lại không thuần nhất (Non-Units ) được định nghĩa như một dự án lặp lại trong cùng nhóm công tác Ví dụ như hình minh hoa dưới đây thể hiện cụ thể các nhóm công tác trong một dự án lặp lại Mỗi nhóm công tác chứa những công tác có cùng một chức năng nhiệm vụ, nhưng khác nhau về tài nguyên sử dụng, điều kiện thi công, thời gian, chi phí Mối quan hệ giữa các nhóm công tác cũng như giữa những công tác trong các nhóm công tác khác nhau cũng được xác định Không có một ràng buộc cứng nhắc nào giữa các công tác không cùng một nhóm công tác.Ví dụ trong công tác xây cầu có 3 nhóm công tác là công tác xây móng, công tác xây trụ và công tác xây sàn Trong mỗi nhóm công tác lại chứa những công tác giống nhau cho các nhịp cầu khác nhau Trong mỗi nhịp cầu, móng phải được xây trước và tiếp theo là cột được xây trước sàn ( tức là các nhóm công tác có quan hệ logic với nhau ), nhưng trong cùng một công tác xây móng thì không có sự ràng buộc phải xây móng nào trước ( trong một nhóm thì trình tự có thể thay đổi không nhất thiết phải làm theo thứ tự từ đầu tới cuối )
Một dự án xây dựng với những công tác lặp lại có thứ tự lặp thay đổi có những đặc điểm riêng biệt sau:
- Các công tác trong cùng một nhóm công tác là tương tự nhau nhưng không đồng nhất ( tức là cùng tính chất nhưng có thể khác nhau về khối lượng ) Những công tác riêng lẻ trong cùng một nhóm công tác đều chung một chức năng nhiệm vụ nhưng chúng lại khác nhau về thời gian thực hiện, cách sử dụng nguồn tài nguyên và chi phí thực hiện
- Mối quan hệ logic giữa các công tác được tổng quát hoá Trong phương pháp tiến độ lặp lại truyền thống, mỗi công tác trong cùng một mạng đơn vị đi theo cùng một thứ tự thực hiện Chẳng hạng trong Hình 1 công tác 1 thực hiện theo thứ tự từ đơn vị 1 sau đó là đến đơn vị 2 và tiếp tục theo thứ tự như vậy ( ở đây mỗi đơn vị là một bước lặp ) Các công tác còn lại khác buộc bởi những thứ tự trên nhưng các công tác này được tổng quát hoá hơn, điểu này gần gũi hơn trong thực tế thi công ngoài công trình
- Không tồn tại mối quan hệ cứng nhắc nào giữa các công tác trong cùng một nhóm công tác ( tức là công tác A không cần phải làm trong đơn vị 1 xong mới tới đơn vị 2 như trong các phương pháp lặp truyền thống) Bằng cách thay đổi thứ tự thực hiện công tác trong một nhóm công tác thì tiến độ và chi phí dự án sẽ có kết quả khác nhau Tuy nhiên,thứ tự thực hiện tốt nhất để có được tiến độ và chi phí tối ưu không kiếm được bằng trực quan Trong phương pháp tiến độ cho dư án có công tác lặp lại có thứ tự lặp thay đổi, thứ tự thực hiện các công tác trong một nhóm công tác được phân công từ đầu, thứ tự đó được được quyết định bởi người quản lí dự án
- Nhiều tổ đội thi công có thể đươc thuê trong một nhóm công tác Trong phương pháp tiến độ lặp lại truyền thống chỉ có một tổ đội thực hiện một công tác trong cùng nhóm công tác.Trong phương pháp truyền thống không xét đến việc tính toán cho nhiều tổ đội thi công, không xét đến thiết bị, nhân công là có thể giống nhau hoặc khác nhau, cũng như phương pháp thi công, điều này phụ thuộc vào yêu cầu của dự án và năng lực của tổ đội thi công Phương pháp này cho phép xem xét nhiều tổ đội/thiết bị khác nhau thực hiện cho một nhóm công tác ( ví dụ nhóm công tác đào đất có thể sử dụng 2 tổ đội với 2 loại máy lớn và nhỏ khác nhau để thự thi tại những vị trí phù hợp) Việc sử dụng nguồn tài nguyên khác nhau sẽ ảnh hưởng đến tiến độ dự án cũng như chi phí và thời gian thực hiện dự án
- Thời gian và chi phí cho việc thay đổi tổ đội thi công khác nhau giữa những công tác trong cùng một nhóm công tác cũng được xem xét Sự tập kết, phân phối và thay đổi tổ đội thi công khác nhau trong công trường là không thể tránh được, điều này ảnh hưởng tới thời gian và chi phí thực hiện dự án Từ đó, phương pháp tiến độ cho dư án có công tác lặp lại có thứ tự lặp thay đổi cho phép sử dụng nhiều tổ đội thi công khác nhau trong cùng một nhóm công tác và không có sự bắt buộc cứng nhắc trong mối quan hệ giữa các công tác Điều này là cần thiết để đưa vào tính toán thời gian và chi phí cho việc tập kết, phân phối và thay đổi tổ đội thi công
4.2.2.2 Thu ậ t toán đề xu ấ t và ví d ụ
F i j là thời điểm bắt dầu, và thời điểm kết thúc của công tác i ( i=1, ,N) tại vị trí j ( j=1, ,Q) do tổ đội tài nguyên thứ k thực hiện
• d i j k , là thời gian thực hiện công tác i tại vị trí j ( đơn vị tính bằng ngày ) do tổ đội tài nguyên thứ k thực hiện
• m i k j j , ', là thời gian di chuyển tài nguyên của công tác i từ vị trí j’ tới vị trí j do tổ đội tài nguyên thứ k thực hiện (đơn vị tính bằng ngày )
• m in i k , là thời gian di chuyển tài nguyên vào công tác i do tổ đội tài nguyên thứ k thực hiện (đơn vị tính bằng ngày )
• m out i k , là thời gian di chuyển tài nguyên vào công tác i do tổ đội tài nguyên thứ k thực hiện (đơn vị tính bằng ngày ) a) Nếu công tác i không có công tác t nào đứng trước:
Trong đó: i = → 1 I ( I là số công tác lặp ) j= →1 J ( J là số vị trí trong một công tác lặp i ) j’ là vị trí thực hiện trước vị trí j b) Nếu công tác i có công tác t nào đứng trước:
Trong đó: ắ j * là cỏc vị trớ mà cụng tỏc t phải thỏa để cú thể làm cụng tỏc i ắ j’, j’’ la cỏc vị trớ đứng trước vị trớ j trong cựng một cụng tỏc i ắ t là cụng tỏc đứng trước cụng tỏc i
- Một ví dụ đơn giản để minh hoạ cho phương pháp tiến độ cho dư án có công tác lặp lại có thứ tự lặp thay đổi, chẳng hạn trong thi công một hệ thống ống ngầm dưới mặt đất gồm 5 hố đào và 4 đường ống ngầm với minh hoạ cụ thể như hình 4
Hình 4: Sơ đồ bố trí hố đào
- Theo sơ đồ ta co 3 nhóm công tác như sau:
Nhóm công tác A1: thi công đào đất các hố đào ệ bao gồm cụng tỏc A1-1, A1-2, A1-3, A1-4, A1-5
Nhóm công tác A2: thi công khoan đặt đường ống ệ bao gồm cụng tỏc A2-1, A2-2, A2-3, A2-4
Nhóm công tác A3: thi công lấp đất các hố đào ệ bao gồm cỏc cụng tỏc A3-1, A3-2, A3-3, A3-4, A3-5
Nhóm công tác A1 do tổ đội R1-1 thực hiện
Nhóm công tác A3 do tổ đội R3-1 thực hiện
- Các công tác trong cùng một nhóm công tác được bố trí theo sơ đồ của hình 5:
Hình 5: Sơ đồ bố trí các công tác
GIỚI THIỆU VỀ PHẦN MỀM TÍNH TOÁN VÀ ỨNG DỤNG
Giới thiệu về phần mềm tính toán
Đề tài nghiên cứu về việc ứng dụng các thuật toán để đưa ra tiến độ tối ưu đối với dự án xây dựng nên nghiên cứu có đóng góp một phần về mặt học thuật, trong đó sử dụng phần mềm Visual Studial 2010 và ngôn ngữ lập trình Visual
C#.Net để lập tiến độ cho dự án, đề tài có nhiều ứng dụng về mặt thực tiễn ệ Tạo giao diện cho phần mềm namespace MyApp this.components = new System.ComponentModel.Container(); this.panel1 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); this.btnSave = new System.Windows.Forms.Button(); this.btnSetting = new System.Windows.Forms.Button(); this.btnCal = new System.Windows.Forms.Button(); this.grdTask = new System.Windows.Forms.DataGridView(); this.contextMenuStrip1 = new
System.Windows.Forms.ContextMenuStrip(this.components); this.Cut = new System.Windows.Forms.ToolStripMenuItem(); this.Copy = new System.Windows.Forms.ToolStripMenuItem(); this.Paste = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip2 = new System.Windows.Forms.MenuStrip(); this.englishToolStripMenuItem = new
System.Windows.Forms.ToolStripMenuItem(); this.tiengVietToolStripMenuItem = new
System.Windows.Forms.ToolStripMenuItem(); this.In = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.resource = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.tskName = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.duration = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.start = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.finish = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.predecessor = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.LastFinPre = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.earliest = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.SkdStart = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.SkdEnd = new
System.Windows.Forms.DataGridViewTextBoxColumn(); this.panel1.SuspendLayout(); this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.grdTask)).BeginInit(); this.contextMenuStrip1.SuspendLayout(); this.menuStrip2.SuspendLayout(); this.SuspendLayout();
// this.panel1.AutoSizeMode System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.panel1.Controls.Add(this.panel2); this.panel1.Controls.Add(this.grdTask); this.panel1.Controls.Add(this.menuStrip2); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(1179, 641); this.panel1.TabIndex = 0;
// this.panel2.AutoSize = true; this.panel2.Controls.Add(this.btnSave); this.panel2.Controls.Add(this.btnSetting); this.panel2.Controls.Add(this.btnCal); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(1179, 46); this.panel2.TabIndex = 3;
// this.btnSave.Location = new System.Drawing.Point(677, 8); this.btnSave.Name = "btnSave"; this.btnSave.Size = new System.Drawing.Size(75, 23); this.btnSave.TabIndex = 3; this.btnSave.Text = "Save DB"; this.btnSave.UseVisualStyleBackColor = true; this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
// this.btnSetting.Anchor ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.Anch orStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left))); this.btnSetting.Location = new System.Drawing.Point(472, 8); this.btnSetting.Name = "btnSetting"; this.btnSetting.Size = new System.Drawing.Size(75, 23); this.btnSetting.TabIndex = 2; this.btnSetting.Text = "Setting"; this.btnSetting.UseVisualStyleBackColor = true; this.btnSetting.Click += new
System.EventHandler(this.btnSetting_Click);
// this.btnCal.Location = new System.Drawing.Point(570, 8); this.btnCal.Name = "btnCal"; this.btnCal.Size = new System.Drawing.Size(75, 23); this.btnCal.TabIndex = 0; this.btnCal.Text = "Calculate"; this.btnCal.UseVisualStyleBackColor = true; this.btnCal.Click += new System.EventHandler(this.btnCal_Click);
// this.grdTask.ClipboardCopyMode System.Windows.Forms.DataGridViewClipboardCopyMode.EnableWitho utHeaderText; this.grdTask.ColumnHeadersHeightSizeMode System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.
AutoSize; this.grdTask.Columns.AddRange(new
System.Windows.Forms.DataGridViewColumn[] { this.In, this.resource, this.start, this.finish, this.predecessor, this.LastFinPre, this.earliest, this.SkdStart, this.SkdEnd}); this.grdTask.Dock = System.Windows.Forms.DockStyle.Fill; this.grdTask.Location = new System.Drawing.Point(0, 24); this.grdTask.Name = "grdTask"; this.grdTask.Size = new System.Drawing.Size(1179, 617); this.grdTask.TabIndex = 1; this.grdTask.CellMouseClick += new
System.Windows.Forms.DataGridViewCellMouseEventHandler(this.grdT ask_CellMouseClick); this.grdTask.RowValidated += new
System.Windows.Forms.DataGridViewCellEventHandler(this.grdTask_R owValidated); this.grdTask.KeyDown += new
System.Windows.Forms.KeyEventHandler(this.grdTask_KeyDown);
// this.contextMenuStrip1.Items.AddRange(new
System.Windows.Forms.ToolStripItem[] { this.Cut, this.Paste}); this.contextMenuStrip1.Name = "contextMenuStrip1"; this.contextMenuStrip1.Size = new System.Drawing.Size(103, 70);
// this.Cut.Name = "Cut"; this.Cut.Size = new System.Drawing.Size(102, 22); this.Cut.Text = "Cut"; this.Cut.Click += new System.EventHandler(this.Cut_Click);
// this.Copy.Name = "Copy"; this.Copy.Size = new System.Drawing.Size(102, 22); this.Copy.Text = "Copy"; this.Copy.Click += new System.EventHandler(this.Copy_Click);
// this.Paste.Name = "Paste"; this.Paste.Size = new System.Drawing.Size(102, 22); this.Paste.Text = "Paste"; this.Paste.Click += new System.EventHandler(this.Paste_Click);
// this.languageToolStripMenuItem.DropDownItems.AddRange(new
System.Windows.Forms.ToolStripItem[] { this.englishToolStripMenuItem, this.tiengVietToolStripMenuItem}); this.languageToolStripMenuItem.Name = "languageToolStripMenuItem"; this.languageToolStripMenuItem.Size = new System.Drawing.Size(71,
// this.In.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.In.HeaderText = "IN"; this.In.Name = "In"; this.In.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.In.SortMode System.Windows.Forms.DataGridViewColumnSortMode.Automatic; this.In.Width = 30;
// this.resource.HeaderText = "Resource"; this.resource.Name = "resource"; this.resource.Width = 150;
// this.tskName.HeaderText = "Task Name"; this.tskName.Name = "tskName"; this.tskName.Width = 250;
// this.duration.HeaderText = "Duration"; this.duration.Name = "duration"; this.duration.Width = 80;
// this.start.HeaderText = "Start"; this.start.Name = "start"; this.start.Width = 80;
// this.finish.HeaderText = "Finish"; this.finish.Name = "finish"; this.finish.Width = 80;
// this.predecessor.HeaderText = "Predecessor"; this.predecessor.Name = "predecessor";
// this.LastFinPre.HeaderText = "Last Finish Time of Preceding"; this.LastFinPre.Name = "LastFinPre";
// this.earliest.HeaderText = "Earliest"; this.earliest.Name = "earliest"; this.earliest.Width = 80;
// this.SkdStart.HeaderText = "Schedule Start"; this.SkdStart.Name = "SkdStart"; this.SkdStart.Width = 80;
// this.SkdEnd.HeaderText = "Schedule End"; this.SkdEnd.Name = "SkdEnd"; this.SkdEnd.Width = 80;
#endregion private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Button btnCal; private System.Windows.Forms.DataGridView grdTask; private System.Windows.Forms.Button btnSetting; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; private System.Windows.Forms.ToolStripMenuItem Cut; private System.Windows.Forms.ToolStripMenuItem Copy; private System.Windows.Forms.ToolStripMenuItem Paste; private System.Windows.Forms.Button btnSave; private System.Windows.Forms.MenuStrip menuStrip2; private System.Windows.Forms.DataGridViewCheckBoxColumn In; private System.Windows.Forms.DataGridViewTextBoxColumn resource; private System.Windows.Forms.DataGridViewTextBoxColumn tskName; private System.Windows.Forms.DataGridViewTextBoxColumn duration; private System.Windows.Forms.DataGridViewTextBoxColumn start; private System.Windows.Forms.DataGridViewTextBoxColumn finish; privateSystem.Windows.Forms.DataGridViewTextBoxColumn predecessor; private System.Windows.Forms.DataGridViewTextBoxColumn LastFinPre; private System.Windows.Forms.DataGridViewTextBoxColumn earliest; private System.Windows.Forms.DataGridViewTextBoxColumn SkdStart; private System.Windows.Forms.DataGridViewTextBoxColumn SkdEnd; ệ Cỏc bước tớnh toỏn namespace MyApp
* Calculate schedule based on inputed data private void btnCal_Click(object sender, EventArgs e) int row = 0; try calculate(ref row); catch(Exception ex) if (lang == "EN")
MessageBox.Show("Error: " + ex.Message + " at Row: " + row,
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); else
MessageBox.Show("Lỗi: " + ex.Message + " xảy ra tại dòng số: " + row, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
* Calculate data for selected row
* private void calculate(ref int rowIdx) anchorList.Clear(); filledData.Clear(); clearCalculatedData(); if (data.Count > 0) getEntrance(); int length = 0; for (int i = 0; i < anchorList.Count - 1; i++) rowIdx = anchorList[i]; length = anchorList[i + 1] - anchorList[i]; for (int j = 0; j < length; j++) rowIdx++;
//Call recursive to fill data fillDataFinal(j + anchorList[i], anchorList[i]);
//Call recursive to fill schedule - start & end fillSchedule(anchorList[i], anchorList[i + 1] - anchorList[i]); length = grdTask.RowCount - 1 - anchorList[anchorList.Count - 1]; rowIdx = anchorList[anchorList.Count - 1]; for (int j = 0; j < length; j++) rowIdx++;
//Call recursive to fill data fillDataFinal(j + anchorList[anchorList.Count - 1], anchorList[anchorList.Count - 1]); fillSchedule(anchorList[anchorList.Count - 1], grdTask.RowCount - 1 - anchorList[anchorList.Count - 1]); float totalDur = 0; for (int i = 0; i < grdTask.RowCount - 1; i++)
//Call recursive to identify total duration totalDur = Math.Max(totalDur,
MessageBox.Show("Total duration is: " + totalDur, "Information",
MessageBoxButtons.OK, MessageBoxIcon.Information); else
MessageBox.Show("Tổng cộng thời gian là: " + totalDur, "Thông
Tin", MessageBoxButtons.OK, MessageBoxIcon.Information);
* Clear calculated data in grid
*/ private void clearCalculatedData() if (grdTask.RowCount > 1) for (int i = 0; i < grdTask.RowCount - 1; i++) grdTask.Rows[i].Cells[7].Value = null; grdTask.Rows[i].Cells[8].Value = null; grdTask.Rows[i].Cells[9].Value = null; grdTask.Rows[i].Cells[10].Value = null;
*/ private void getEntrance() for (int row = 0; row < grdTask.RowCount - 1; row++) if (grdTask.Rows[row].Cells[0].Value != null &&
(Boolean)grdTask.Rows[row].Cells[0].Value) if (!anchorList.Contains(row)) anchorList.Add(row);
* Fill Schedule Start + Schedule End (column 10, 11)
* p - row which is entrance point
* p_2 - number of row from p to next entrance point
*/ private void fillSchedule(int p, int p_2)
//Get max value of earliest float max = 0; for (int i = 1; i < p_2; i++) if (grdTask.Rows[p + i].Cells[8].Value != null) max = Math.Max(max, (float)grdTask.Rows[p + i].Cells[8].Value); grdTask.Rows[p].Cells[9].Value = max; for (int i = 0; i < (p_2 - 1); i++) grdTask.Rows[p + i].Cells[10].Value = (float)grdTask.Rows[p + i].Cells[3].Value + (float)grdTask.Rows[p + i].Cells[9].Value; grdTask.Rows[p + i + 1].Cells[9].Value = grdTask.Rows[p + i].Cells[10].Value; grdTask.Rows[p + p_2 - 1].Cells[10].Value = (float)grdTask.Rows[p + p_2 - 1].Cells[3].Value + (float)grdTask.Rows[p + p_2 - 1].Cells[9].Value;
*/ private void fillData(int row, ref int anchorVal) if (row >= grdTask.RowCount) return; if (grdTask.Rows[row].Cells[0].Value == null ||
!(Boolean)grdTask.Rows[row].Cells[0].Value)
String preTask = (String)grdTask.Rows[row].Cells[6].Value; if (String.IsNullOrEmpty(preTask)) grdTask.Rows[row].Cells[4].Value = 0; grdTask.Rows[row].Cells[5].Value grdTask.Rows[row].Cells[3].Value; grdTask.Rows[row].Cells[7].Value = 0;
//Calculate Anchor Value int preVal = 0; for (int i = anchorVal; i < row; i++) preVal += (int)grdTask.Rows[i].Cells[3].Value; grdTask.Rows[row].Cells[8].Value = 0 - preVal; filledData.Add(row); return; else
String[] preTasks = preTask.Split(','); int maxDurVal = 0; int maxFinVal = 0; for (int i = 0; i < preTasks.Length; i++)
//Look up index int idx = int.Parse(preTasks[i]) - 1;
//Ignore case make infinitive loop if (idx = anchorVal) continue; if (filledData.Contains(idx)) maxDurVal = Math.Max(maxDurVal,
(int)grdTask.Rows[idx].Cells[3].Value); maxFinVal = Math.Max(maxFinVal,
(int)grdTask.Rows[idx].Cells[5].Value); else int anc = 0; fillData(idx, ref anc); maxDurVal = Math.Max(maxDurVal,
(int)grdTask.Rows[idx].Cells[3].Value); maxFinVal = Math.Max(maxFinVal,
(int)grdTask.Rows[idx].Cells[5].Value);
Ứng dụng phần mềm
Ta sử dụng số liệu của ví dụ dùng trong chương 4 ắ Bước 1: Chạy file MyApp.exe ắ Bước 2: sau khi xuất hiện giao diện ban đầu của chương trỡmh, ta kick vào phần setting để nhập ma trận dữ liệu đầu vào
Sau đó ta tiến hành nhập dữ liệu đầu vào cho 3 tổ đội tài nguyên R1, R2, R3
Sau khi nhập xong ta ấn nút Save để lưu lại ắ Bước 3:Ta tiến hành nhập dữ liệu cho 3 cột như hỡnh dưới,lưu ý rằng ở cột Resource thì trong cùng một nhóm công tác phải để dấu click như hình vẽ để đảm bảo tính lien tục tài nguyên và thứ tứ làm việc trong nhóm công tác đó Trong cột Predecessor ta nhập những công tác (t) đứng trước công tác (i) ắ Bước 4: Sauk hi hoàn tất việc lập dữ liệu ta ấn nỳt Calculate để tiến hành tinh toán Trong ví dụ này ta tính toán cho trường hợp 3 của ví dụ trên, kết quả cho thấy thời gian hoàn thành dự án là 28 ngày ắ Bước 5: Ấn nỳt save DB để lưu kết quả
ỨNG DỤNG VÀO CÔNG TRÌNH THỰC TẾ Ở VIỆT NAM
ỨNG DỤNG VÀO CÔNG TRÌNH XÂY DỰNG
Một ví dụ thực tế để minh hoạ cho phương pháp tiến độ cho dư án có công tác lặp lại không thuần nhất ( Non – Units ) có thứ tự lặp thay đổi, đây là công trình thi công hố ga (một hệ thống ống ngầm dưới mặt đất) của một tòa nhà ở quận Bình
Chánh ( Thành Phố Hồ Chí Minh ) gồm 14 hố ga và 13 đường ống ngầm với hình vẽ sơ đồ thi công cụ thể như hình dưới đây
Hình 5: Sơ đồ bố trí hố đào
- Theo sơ đồ ta có 3 nhóm công tác như sau:
Nhóm công tác A1: thi công đào đất các hố ga ệ bao gồm cụng tỏc A1-1, A1-2, A1-3, A1-4, A1-5,…, A1-14
Nhóm công tác A2: thi công khoan đặt đường ống ệ bao gồm cụng tỏc A2-1, A2-2, A2-3, A2-4,…, A2-13
Nhóm công tác A3: thi công lấp đất các hố đào ệ bao gồm cỏc cụng tỏc A3-1, A3-2, A3-3, A3-4, A3-5,…,A3-15
Nhóm công tác A1 do tổ đội R1-1 hoặc R1-2 thực hiện ( hoặc cả 2 tổ đội cùng thực hiện)
Nhóm công tác A2 do tổ đội R2-1 hoặc R2-2 thực hiện ( hoặc cả 2 tổ đội cùng thực hiện)
Nhóm công tác A3 do tổ đội R3-1 hoặc R3-2 thực hiện ( hoặc cả 2 tổ đội cùng thực hiện)
- Các công tác trong cùng một nhóm công tác được bố trí theo sơ đồ của hình 6:
Hình 6: Sơ đồ bố trí các công tác
- Trong ví dụ này gồm 3 nhóm công tác và 14 công tác cụ thể,các công tác này được sử dụng để chứng minh và phát triển thuật toán.Mối quan hệ logic giữa các công tác với nhau được thể hiện ở hình 7 Bảng 6 thể hiện thời gian thực hiện của mỗi công tác và thời gian di chuyển tài nguyên giữa các công tác với nhau ( các tổ đội khác nhau thì thời gian thực hiện và di chuyển khác nhau )
- Chúng ta có 4 trường hợp được xét đến ắ Trường hợp 1: mỗi nhúm cụng tỏc chỉ do 1 tổ đội thực hiện lần lượt là R1-1, R2-1, R3-1, trong trường hợp này không xét đến thời gian di chuyển tài nguyên giữa các công tác ắ Trường hợp 2 : mỗi nhúm cụng tỏc do 2 tổ đội thực hiờn R1-1, R1-2, R2-1, R2-1, R3-1, R3-2 nhưng trong trường hợp này công tác A1-4, trong trường hợp này không xét đến thời gian di chuyển tài nguyên giữa các công tác ắ Trường hợp 3: giống trường hợp 1 nhưng cú xột đến thời gian di chuyển tài nguyên giữa các công tác ắ Trường hợp 4: giống trường hợp 2 nhưng cú xột đến thời gian di chuyển tài nguyên giữa các công tác
- Từ thuật toán ta có thời gian hoàn thành dự án cho các trường hợp 1, 2 và
3 lần lượt la 118.29, 62.24 và 128.17 và 68.54 ngày
Hình 7: Mối quan hệ giữa các công tác ắ Trường hợp 1: mỗi nhúm cụng tỏc chỉ do 1 tổ đội thực hiện lần lượt là
R1-1, R2-1, R3-1, trong trường hợp này không xét đến thời gian di chuyển tài nguyên giữa các công tác
Bảng 6: Thời gian thực hiện các công tác do các tổ đội thực hiện ( Đơn vị: Ngày)
Bảng 7: Bảng tính thời gian hoàn thành dự án cho trường hợp 1
Trường hợp 1 ắ Trường hợp 2: mỗi nhúm cụng tỏc do 2 tổ đội thực hiờn R1-1, R1-2,
R2-1, R2-1, R3-1, R3-1, trong trường hợp này không xét đến thời gian di chuyển tài nguyên giữa các công tác
Bảng 8: Bảng tính thời gian hoàn thành dự án cho trường hợp 2
Trường hợp 2 ắ Trường hợp 3: mỗi nhúm cụng tỏc chỉ do 1 tổ đội thực hiện lần lượt là R1-
1, R2-1, R3-1, trong trường hợp này xét đến thời gian di chuyển tài nguyên giữa các công tác
Bảng 8: Thời gian di chuyển giữa các do các tổ đội thực hiện theo thứ tự
Bảng 9: Bảng tính thời gian hoàn thành dự án cho trường hợp 3
Sử dụng Microsoft Project Ứng dụng phần mềm ệ Dữ liệu đầu vào cho trường hợp này là R1-1, R2-1, R3-1 ệ Kết quả tớnh toỏn: ắ Trường hợp 4: mỗi nhúm cụng tỏc do 2 tổ đội thực hiờn R1-1, R1-2, R2-1, R2-1, R3-1, R3-1, trong trường hợp này xét đến thời gian di chuyển tài nguyên giữa các công tác
Bảng 10: Bảng tính thời gian hoàn thành dự án cho trường hợp 4
Sử dụng Microsoft Project Ứng dụng phần mềm ệ Dữ liệu đầu vào cho trường hợp này thờm 3 tổ đội là R1-2, R2-2, R3-2 ệ Kết quả tớnh toỏn:
KẾT LUẬN VÀ KIẾN NGHỊ
– Xem xét được những công tác trong một nhóm công tác cùng chung một chức năng nhưng chúng khác nhau về thời gian thực hịên, tài nguyên sử dụng và chi phí
– Xem xét được quan hệ thứ tự công việc là tổng quát Không có sự ràng buộc cứng nhắc về trình tự của những công tác trong một nhóm công tác Để đưa ra những trình tự hợp lý cho những công tác thành viên trong cùng một nhóm để tạo ra những tiến độ với thời gian và chi phí tốt nhất
– Xét đến khả năng nhiều tổ đội có thể được sử dụng trong một nhóm công tác, sự đa dạng này sẽ ảnh hưởng lên việc lập kế hoạch các công tác cũng như thời gian dự án và chi phí dự án
– Duy trì tính liên tục trong việc sử dụng tài nguyên
– Luận văn chỉ xét đến việc công tác này kết thúc thì công tác khác bắt đầu liền,cần xem xét tính toán thêm trường hợp có thời gian gián đoạn ( chẳng hạn công tác sau chi co thể bắt đầu khi công tác trước kết thúc được 2 ngày )
[1] Harris B., and Ioannou P (1998), “Scheduling projects with repeating activities.”
[2] El-Rayes and Moselhi, Optimizing resource ultilization for repetitive construction projects , J.Constr Eng Manage., ASCE, 127(1), 18–27
[3] Ashley, D B (1980)”Simulation of Repetitive Unit Construction,” Journal of the Construction Division, ASCE, 106(CO2), 185-194
[4] Selinger, S (1980) “Construction planning for linear projects,” Journal of the
[5] Birrel, G E (1980) “Construction Planning-Beyond the Critical Path,” Journal of the Construction Division, ASCE, 106(CO3), 389-407
[6] W.Johnston, Liner scheduling method foe highway construction, J Constr Div.,
[7] Stradal and Cacha, Time space scheduling method, J Constr Div., ASCE 108 ( CO3)
[8] Russell and Caselton, Extensions to linear scheduling optimization,.J.Civ.Eng.Manag
[9] Reda, R (1990) “RPM: repetitive project modelling,” Journal of Construction Engineering and Management, ASCE, 116(2), 316-330
[10] D.J Harmelink, J.E Rowings (1998), “Linear scheduling model: development of controlling activity path”, Constr Engrg and Mgmt., ASCE, 124 (4) 263–268
[11] Russell, A D., and Wong, W C M (1993) “New Generation of Planning Structures.” Journal of Construction Engineering and Management, ASCE, 119(2), 196-214
[12] Luong Duc Long, Ario Ohsato “A Genetic Algorithm- Based Method for Scheduling
Repetitive Construction Projects”, Automation in Construction, AUTCON, Elsevier, (SCI), Vol.18, No.4, 2009, pp 499-511
[13] Carr R.I and Meyer W.L (1974), “Planning construction of repetitive building units” J Constr Div Am Soc Civ Eng., 100(3), 403-412
[14] Arditi, D., and Albulak M Z (1979) “Comparison of Network Analysis with Line of Balance in a Linear Repetitive Construction Project,” Proceedings of the Sixth INTERNET Congress, Vol 2, Garmisch-Partenkirchen, W Germany, 13-25
[15] Chrzanowski, E N., and Johnston D W (1986) “Application of Linear Scheduling,” Journal of Construction Engineering and Management, ACSE, 112(4), 476-491
[16] Eldin and Senouci, Scheduling and control of liner projects, Can.J.Civ.Eng.21 (1994) 219-220
[17] Rong-yau Huang và Kuo-Shun Jun ( 2005 ) “ Automation in Construction,