2 Điều kiện cần và đủ của giải pháp tối ưu đối với một số vấn
2.1.2 Điều kiện cần và đủ của vấn đề 1k P
Cj
Định lý 2.1.2 Điều kiện cần và đủ của vấn đề tối ưu hoá tổng thời gian
hoàn thành các công việc trên mô hình máy đơn là các công việc phải được sắp xếp tuân theo quy tắc SPT.
Chứng minh. Giả sử đã cho n công việc được sắp xếp theo thứ tự π như
sau:
Công việc(Tj) T1 T2 ... Ti−1 Ti Ti+1 ... Tj−1 Tj Tj+1 ... Tn
Thời gian thực hiện(pj) p1 p2 ... pi−1 pi pi+1 ... pj−1 pj pj+1 ... pn
Trong đó, p1 ≤ p2 ≤ ... ≤ pn tức là các công việc trong dãy π = (T1, T2, ..., Ti, ..., Tj, ..., Tn) đã được sắp xếp theo quy tắc SPT. Ta chứng
minh π là trình tự sắp xếp tối ưu. Tức là, theo trình tự đó, tổng thời gian hoàn thành các công việc đạt giá trị nhỏ nhất.
Giả sử trong π ta đổi vị trí bất kỳ của hai công việc Tj và Ti cho nhau ta được dãy π0 = (T1, T2, ..., Tj, ..., Ti, ..., Tn). Khi đó, dễ thấy rằng hiệu của tổng thời gian hoàn thành theo dãy π0 với tổng thời gian hoàn thành theo dãy π sẽ là n X j=1 Cj ! π0 − n X j=1 Cj ! π = (pj −pi) (j −i) ≥ 0 ⇒ n X j=1 Cj ! π0 ≥ n X j=1 Cj ! π .
Do vậy, π là dãy trình tự sắp xếp tối ưu.
Ngược lại, giả sử π00 là một dãy tối ưu sắp xếp thực hiện gia công cho n công việc: T1, T2, ..., Tn theo thứ tự như sau:
Công việc T100 T200 T300 ... Tn00 Thời gian thực hiện p001 p002 p003 ... p00n Khi đó tổng thời gian hoàn thành của dãy công việc là:
C00 = np001 + (n−1)p002 +...+p00n.
Rõ ràng rằng với p1 ≤ p2 ≤ ... ≤ pn thì C00 đạt giá trị nhỏ nhất khi và chỉ khi
p100 =p1 ... pn00 = pn
Điều đó nghĩa là, dãy n công việc: T1, T2, ..., Tn phải được sắp xếp theo thứ tự không giảm của thời gian gia công (tức là p1 ≤ p2 ≤ ... ≤ pn). Như vậy dãy n công việc T1, T2, ..., Tn được sắp xếp theo quy tắc SPT.
xếp thực hiện tối ưu là T2 −→ T5 −→T3 −→ T4 −→T1:
Công việc (Tj) T2 T5 T3 T4 T1
Thời gian thực hiện tương ứng (pj), (Đơn vị tính: phút) 4 6 7 11 12
Tổng thời gian hoàn thành của 5 công việc là: 5
P
n=1
Cj = 4 + 10 + 17 + 28 + 40 = 99 (phút)
Vậy phần này đã trình bày về vấn đề tối thiểu hoá tổng thời gian hoàn thành các công việc trên mô hình máy đơn, đồng thời chứng minh được điều kiện cần và đủ của vấn đề tối ưu, đối với vấn đề này đó là quy tắc SPT. Tức là, nếu sắp xếp các công việc theo thứ tự không giảm của thời gian thực hiện để gia công, thì tổng thời gian hoàn thành các công việc sẽ đạt giá trị nhỏ nhất. Ngược lại, nếu một dãy các công việc thực hiện có tổng thời gian hoàn thành là nhỏ nhất thì khi đó dãy sắp xếp các công việc tuân theo quy tắc SPT.
2.2 Vấn đề tối thiểu hóa tổng thời gian hoàn thành gia công
các công việc có trọng số khác nhau trên mô hình máy đơn
(1kP
wjCj)
(xem [3])
2.2.1 Vấn đề 1kP
wjCj
Trước hết, chúng tôi đưa ra một số kí hiệu như sau:
Tj là công việc thứ j trong một dãy các công việc đưa ra; pj là thời gian gia công (thực hiện) của công việc Tj ; ωj là trọng số của của công việc Tj.
Cj =Pj
s=1ps là thời gian hoàn thành của công việc Tj.
Khi đó, Pnj=1wjCj là tổng thời gian hoàn thành các công việc có trọng số khác nhau từ T1 đến Tn.
Xét bài toán sau: Tính tổng thời gian hoàn thành của các công việc có trọng số khác nhau được sắp thứ tự lần lượt từ công việc T1 −→ T2 −→ T3 −→ T4 −→T5 với các dữ liệu cho theo bảng sau:
Công việc (Tj) T1 T2 T3 T4 T5
Thời gian thực hiện tương ứng (pj) (Đơn vị tính: phút) 12 4 7 11 6
Trọng số (ωj) 4 2 5 5 6
Khi đó, tổng thời gian hoàn thành 5 công việc có trọng số khác nhau là:
P5
j=1ωjCj = 4.12 + 2.16 + 5.23 + 5.34 + 6.40 = 605 (phút)
Mặt khác, nếu thay đổi thứ tự các công việc thànhT2 −→T3 −→ T1 −→
T5 −→ T4
Khi đó, tổng thời gian hoàn thành 5 công việc có trọng số khác nhau là: 5
P
n=1
ωjCj = 2.4 + 5.11 + 4.23 + 6.29 + 5.40 = 529(phút) < 605 (phút)
Như vậy, có thể thấy rằng, khi thay đổi thứ tự thực hiện các công việc, thì tổng thời gian hoàn thành của tất cả các công việc (có thể) khác nhau. Vậy, vấn đề đặt ra là, khi thực hiện gia công một tập hợp các công việc với thời gian thực hiện các công việc đã được định sẵn, thì thứ tự thực hiện của các công việc đó nên sắp xếp thế nào để tổng thời gian hoàn thành các công việc có trọng số khác nhau đạt giá trị nhỏ nhất? Vì vậy, cực tiểu hóa thời gian hoàn thành gia công của các nhiệm vụ có trọng số khác nhau là một trong những hàm mục tiêu quan trọng của vấn đề trình tự sắp xếp trên máy đơn. Đó là vấn đề 1kP
wjCj
2.2.2 Điều kiện cần và đủ của vấn đề 1kP
wjCj Đối với vấn đề
1kXwjCj
Áp dụng quy tắc WSPT (Weight Shortest Processing Time first) ta đạt được trình tự sắp xếp tối ưu. Theo quy tắc này, các nhiệm vụ dựa vào thứ tự không tăng của tỷ số wj/pj để gia công n. Đối với trường hợp các wj
tương đương nhau quy tắc WSPT trở thành quy tắc SPT. Ta có
ωj
pj ≥ ωj+1 pj+1
Nếu ωj =constant ⇒ 1 pj ≥ 1 pj+1 ⇔ pj ≤ pj+1
Định lý 2.2.1 Quy tắc WSPT tạo thành trình tự tối ưu đối với vấn đề
2.2
Chứng minh. Giả sử trong dãy trình tự tối ưu π không tuân theo quy
tắc WSPT khi đó trong dãy trình tự này tồn tại ít nhất hai nhiệm vụ cạnh nhau Tj và Tk (Tj đứng trước Tk) sao cho wj/pj < wk/pk. Giả sử nhiệm vụ Tj bắt đầu gia công vào thời điểm t. Ta thay đổi thứ tự trong π như sau: đối với hai nhiệm vụ Tj và Tk giữ nguyên vị trí các nhiệm vụ khác ta được một dãy trình tự khác, giả sử là π0.
Theo hình 2.1 trong dãy π0, thời gian bắt đầu gia công của Tk là t, Tj ngay sau Tk.
Hình 2.1: Sơ đồ thay đổi vị trí gia công của nhiệm vụTj vàTk
Để thấy rằng, sự khác biệt về tổng thời gian hoàn thành các nhiệm vụ có trọng số khác nhau, trên π và π0 chỉ phụ thuộc vào tổng thời gian hoàn thành đối với nhiệm vụ Tj vàTk trong dãy trình tựπ, thời gian hoàn thành (của các nhiệm vụ có trọng số khác nhau) của Tj và Tk là
(t+pj)wj + (t+pj +pk)wk
Còn trong dãy trình tự π0 là
Do đó, chênh lệch của tổng thời gian hoàn thành (của các nhiệm vụ có trọng số khác nhau) của hai dãy trình tự là
(P wjCj)π −(P wjCj)π0 = (t+pj)wj + (t+pj +pk)wk −(t+pk)wk −(t+pk +pj)wj = wkpj −wjpk = pjpk wk pk − wj pj
Do vậy trình tự π không phải là trình tự tối ưu. Điều này mâu thuẫn với giả thiết. Vậy ta có điều phải chứng minh.
Ví dụ 2.2.2 Xét vấn đề trình tự sắp xếp 1kP wjCj, trong đó n = 5, p = (12,4,7,11,6), w = (4,2,5,5,6). Theo quy tắc WSPT; T1 = ω1 p1 = 1 3; T2 = w2 p2 = 1 2; T3 = w3 p3 = 5 7; T4 = w4 p4 = 5 11;T5 = w5 p5
= 1; ta đã được trình tự tối ưu là[T5, T3, T2, T4, T1]. Tổng thời gian hoàn thành của các nhiệm vụ có trọng số khác nhau là:
5
P
n=1
ωjCj = 6.6 + 13.5 + 17.2 + 28.5 + 40.4 = 435 (phút)
2.3 Vấn đề tối thiểu hóa thời gian trễ tối đa của các công việc
có thời gian đến như nhau trên mô hình máy đơn (1kLmax)
2.3.1 Vấn đề 1kLmax
(xem [2])
Trước hết, chúng tôi đưa ra một số kí hiệu như sau:
Tj là công việc thứ j trong một dãy các công việc đưa ra; pj là thời gian gia công (thực hiện) của công việc Tj ; dj thời gian hoàn thành hạn định đối với công việc Tj;
Cj =Pj
s=1ps là thời gian hoàn thành của công việc Tj. Thời gian trễ tối đa (maximum lateness):
Lmax = max{Lj}
trong đó, Lj = Cj −dj, là thời gian chậm trễ của nhiệm vụ Tj.
tự lần lượt từ công việc T1 −→T2 −→T3 −→ T4 −→T5 −→ T6 với các dữ liệu cho theo bảng sau:
Công việc Tj T1 T2 T3 T4 T5 T6
Thời gian thực hiện tương ứng (pj) (Đơn vị tính: phút) 3 1 4 1 3 2 Thời gian hoàn thành hạn định tương ứng (dj) 2 10 6 4 11 12
Khi đó, thời gian chậm trễ của các công việc Tj là: L1 = 1; L2 = −6; L3 = 2; L4 = 5; L5 = 1; L6 = 2
Vậy trễ tối đa Lmax = 5
Mặt khác, nếu thay đổi thứ tự các công việc thànhT1 −→T3 −→ T4 −→
T2 −→ T5 −→T6.
Khi đó, thời gian chậm trễ của các công việc Tj là: L1 = 1; L3 = 1; L4 = 4; L2 = −1; L5 = 1; L6 = 2
Vậy trễ tối đa Lmax = 4
Như vậy, có thể thấy rằng, khi thay đổi thứ tự thực hiện các công việc, thì thời gian trễ tối đa (có thể) khác nhau. Vậy vấn đề đặt ra là, khi thực hiện gia công một tập hợp các công việc với thời gian hoàn thành hạn định đối với các công việc đã được định sẵn, thì thứ tự thực hiện của các công việc đó nên sắp xếp thế nào để thời gian trễ tối đa là nhỏ nhất? Sau đây chúng ta nghiên cứu vấn đề đó.
Vấn đề trình tự trễ tối đa của các nhiệm vụ có thời gian đến như nhau:
1kLmax.
Vấn đề này được giải quyết bằng cách sắp xếp các nhiệm vụ theo quy tắc ưu tiên kỳ hạn sớm nhất (Earliest Due Date first, gọi tắt là EDD) ta sẽ thu được trình tự tối ưu. Theo quy tắc này, các nhiệm vụ được sắp xếp theo trình tự không giảm của các dj.
2.3.2 Điều kiện đủ để vấn đề 1kLmax là tối ưu
Một điều kiện đủ nổi tiếng của giải pháp tối ưu là trình tự EDD:dπ(1) ≤ dπ(2) ≤ ... ≤ dπ(n) [xem 3,4,5].
vấn đề 1kLmax.
Chứng minh. Ta chứng minh bất kỳ trình tự nào không thoả mãn quy
tắc EDD đều có thể chuyển hoá thành trình tự thoả mãn quy tắc EDD mà hàm mục tiêu là không tăng.
Giả sử rằng mỗi trình tự tối ưu π bất kỳ đều không thoả mãn quy tắc EDD. Khi đó, trong trình tự này, ít nhất có 2 nhiệm vụ cạnh nhau Tj và Tk trong đó Tj đứng trước Tk và dj > dk.
Giả sử nhiệm vụ Tj bắt đầu được gia công tại thời điểm t. Khi đó, Lj =t+pj −dj
Lk = t+pj +pk−dk.
Trong trình tự π ta thay đổi như sau: thay đổi vị trí của hai nhiệm vụ Tj và Tk, giả sử ngoài vị trí của tất cả các nhiệm vụ khác. Ta thu được trình tự π0 trong đó, thời gian bắt đầu gia công của nhiệm vụ Tk là t và Tj được gia công ngay sau khi thúc Tk.
Do đó
L0j =t+pj +pk −dj L0k = t+pk −dk
do dj > dk nên Lk > L0j và Lk > L0k. Vì vậy Lmax > L0max.
Điều này chỉ ra rằng, bất kỳ trình tự nào không thoả mãn quy tắc EDD đều có thể chuyển hoá thành trình tự thoả mãn quy tắc EDD mà hàm mục tiêu không tăng. Điều phải chứng minh.
Ví dụ 2.3.2 Xét vấn đề 1 k Lmax, trong đó n = 6, p = (3,1,4,1,3,2),
d = (2,10,6,4,11,12).
Theo quy tắc EDD ta tìm được trình tự tối ưu là [T1, T4, T3, T2, T5, T6]. Trễ tối đa Lmax = 2.
2.3.3 Điều kiện cần và đủ của vấn đề 1kLmax
(xem [5])
Định nghĩa 2.3.3 Đối với một trình tự sắp xếp π cho trước, một công việc
Định lý 2.3.4 Một trình tự sắp xếp π là tối ưu đối với vấn đề 1kLmax nếu và chỉ nếu có một công việc chủ chốt Tπ(r) sao cho dπ(i) ≤ dπ(r) với ∀i < r.
Chứng minh. Giả sử một trình tự sắp xếp π là một giải pháp tối ưu.
Chúng ta chứng minh điều kiện cần bằng cách đánh số các công việc chủ chốt của π. Đầu tiên, xét trường hợp chỉ có một công việc chủ chốt. Nếu có tồn tại một i < r sao cho dπ(i) > dπ(r), thì π = (..., π(i), ..., π(r), ...) có thể thay đổi thành π0 = (..., π(r), π(i), ...). Dễ thấy thời gian trễ của Tπ(i) đối với π0 nhỏ hơn Tπ(r) đối với π và thời gian trễ của các công việc khác không tăng là không tăng. Vì vậy Lmax(π0) < Lmax(π), điều này mâu thuẫn với sự tối ưu của π. Tiếp theo, giả sử điều kiện cần giữ nguyên tất cả các trình tự tối ưu nhỏ hơn k công việc chủ chốt và xét trường hợp π có k ≥ 2
công việc chủ chốt. Nếu khẳng định không giữ nguyên đối với π, thì đối với công việc chủ chốt đầu tiên Tπ(r), tồn tại i < r sao cho dπ(i) > dπ(r). Như vậy, chúng ta có thể thay đổi công việc Tπ(i) tới vị trí ngay sau Tπ(r) và làm cho Tπ(r) không còn là công việc chủ chốt nữa. Kết quả này trong một trình tự tối ưu π0 có ít hơn k công việc chủ chốt. Điều này mâu thuẫn với giả thiết quy nạp. Ngược lại, giả sử có một công việc chủ chốt Tπ(r) sao cho dπ(i) ≤ dπ(r), ∀i < r. Chúng ta có thể giả sử rằng dπ(r) ≤ dπ(j),
∀j > r. Nếu điều này không đúng đối với một vài j, thì
Lπ(r) =Cπ(r)−dπ(r) < Cπ(j)−dπ(j) = Lπ(j)
mâu thuẫn với Lπ(r) = Lmax(π) do vậy dπ(i) ≤ dπ(r) ≤ dπ(j), ∀i < r < j.
Như vậy chúng ta có thể sắp xếp lại thứ tự các công việc trước π(r) và các công việc sau π(r) tương ứng, theo quy tắc EDD và có được một trình tự sắp xếp mớiπ0. Doπ0 tuân theo quy tắc EDD vậy nó là tối ưu. Và do thứ tự sắp xếp ở trên không làm thay đổi Lπ(r), dẫn đến Lmax(π) ≤ Lmax(π0)
và như vậy π cũng là tối ưu. Định lí được chứng minh.
d = (2,10,6,4,11,12).
Biết thời gian trễ tối đa (maximum lateness): Lmax = max{Lj}
trong đó, Lj = Cj −dj, là thời gian chậm trễ của nhiệm vụ Tj. Ta có: d1 < d4 < d3 < d2 < d5 < d6
Theo quy tắc EDD ta tìm được trình tự tối ưu là [T1, T4, T3, T2, T5, T6]. Với C1 = 3; C4 = 4; C3 = 8; C2 = 9; C5 = 12; C6 = 14
Ta có L1 = 1; L4 = 0; L3 = 2; L2 = 1; L5 = 1; L6 = 2
Trễ tối đa Lmax = 2.
2.4 Vấn đề tối thiểu hóa thời gian gia công tối đa của công việc
trên mô hình máy đơn với thời gian tham gia vào quá trình
gia công bất kì (1|rj|Cmax )
(xem [5])
2.4.1 Vấn đề 1|rj|Cmax
Vấn đề 1|rj|Cmax là vấn đề thời gian gia công tối đa với thời gian tham gia vào quá trình gia công bất kì. Ở đây, thời gian đạt đến của công việc Tj là rj ≥ 0 với (j = 1,2, ..., n). Đối với một trình tự sắp xếp π, thời gian hoàn thành của công việc Tπ(i) là
Cπ(i) = rπ(1)+pπ(1), i = 1 max{Cπ(i−1), rπ(i)}+pπ(i), i ≥ 2 Ví dụ 2.4.1 Xét vấn đề trình tự sắp xếp 1|rj|Cmax với n = 4, p =
(3,1,2,4), r = (5,2,9,10). Tính tổng thời gian gia công tối đa của các công việc được sắp thứ tự lần lượt từ công việc T1 −→T2 −→ T3 −→T4.
Ta có
C1 = 5 + 3 = 8 C2 = 8 + 1 = 9 C3 = 9 + 2 = 11 C4 = 11 + 4 = 15 X Cj = 43
Mặt khác, nếu thay đổi thứ tự các công việc thànhT2 −→T1 −→ T4 −→ T3. Ta có Khi đó C2 = 2 + 1 = 3 C1 = 5 + 3 = 8 C4 = 10 + 4 = 14 C3 = 14 + 2 = 16 X Cj = 41
Như vậy, khi ta thay đổi thứ tự thực hiện các công việc, thì thời gian