Bản dịch tự động sơ bộ, chất lượng thấp: có thể còn lỗi và câu chữ chưa tự nhiên. Bản này sẽ được thay bằng bản dịch tốt hơn. Bản gốc →
20
Về việc đổ đầy và mua chai
M. L. Gerver
Mọi người đã xong: anh ấy đã hâm nóng bữa tối,
Vystro ngồi xuống - ngồi xuống học bài,
«Kvant» đọc - chà đạp bóng đá…
Cối xay. “Sương mù, hay những câu chuyện về đầu mũi tên”
Một người làm rất nhiều việc khác nhau mỗi ngày. Anh ấy đến trường vào buổi sáng (nếu anh ấy là học sinh), trở về nhà - bữa trưa đã được hâm nóng, v.v. (xem phần ngoại truyện). Bạn thường có thể trao đổi mọi thứ xung quanh: đầu tiên là chơi bóng đá - sau đó làm bài tập về nhà, ăn trưa trước - sau đó khởi động…
Dừng lại! Có điều gì đó không ổn trong bữa tối - không phải mọi thứ trên thế giới đều có thể sắp xếp lại được.
Điều này cũng áp dụng cho những việc phục vụ hoàn toàn: cần cẩu tầm cao không liên quan gì đến công trường cho đến khi đặt xong móng nhà; Không thể cùng lúc cày, lưới, đập lúa “để giảm thời gian”…
Thực tế là sự chậm trễ trong một nhiệm vụ có thể cản trở việc bắt đầu những nhiệm vụ khác phải được tính đến khi lập kế hoạch - ví dụ: khi ước tính lượng lớn thời gian mà một nhóm lớn các công việc có liên quan đến nhau sẽ cần. Sự thay thế sử dụng một ví dụ hài hước để cho thấy loại bài toán toán học nào có thể gặp trong trường hợp này.
- Sản xuất bài toán
Họ mang chai đến dây chuyền tự động, rất nhiều: N cái. Và có 2 máy trên đường dây: I và II. Tôi đổ đầy chai, II – mua hàng
21
gầm lên. Các chai có khác nhau: cổ rộng và cổ hẹp, cao, bụng bầu là không chuẩn. Đối với mỗi chai, chúng tôi biết phải mất bao lâu để đổ đầy và mất bao lâu để niêm phong nó.
Dây chuyền tự động sẽ hoạt động trong bao lâu kể từ khi chai đầu tiên bắt đầu được đổ đầy cho đến khi chai cuối cùng được đóng nắp? Điều này phụ thuộc vào thứ tự các chai sẽ rơi vào máy (ví dụ: đối với 6 chai thì có đơn hàng như vậy). Vì vậy, có hai câu hỏi nảy sinh:
Làm thế nào để xác định nhanh thứ tự thời gian vận hành của dây chuyền sẽ ngắn nhất? Và con số trong thời gian ngắn nhất này là bao nhiêu?
- Ví dụ số
Hãy bắt đầu với một ví dụ: đường đi của một lô 6 chai được đặc trưng bởi bảng 1.
Chúng ta hãy cố gắng cho các chai vào máy theo đúng thứ tự được chỉ định trong bảng: đầu tiên là chai thứ 1, sau đó là chai thứ 2, v.v. cho đến chai thứ 6. Sau đó máy móc sẽ hoạt động như thế này.
Sau 7 giây, máy rót sẽ rót đầy chai thứ 1 (Hình 1), sau 7 + 9 = 16 s. - Lần thứ 2, sau 16 + 3 = 19 giây. - Lần thứ 3, sau 19 + 2 = 21 giây. - Lần 4, sau 21 + 11 = 32 s. - Lần thứ 5, sau 32 + 5 = 37 s. - thứ 6*).
Máy đóng nắp sẽ làm xong chai thứ nhất trong thời gian 7 + 10 = 17 giây. và chỉ khi đó anh ta mới có thể lấy chai thứ hai (do đó, chai này sẽ đầy trong cả giây). Anh ta sẽ uống hết chai thứ 2 trong 17 + 8 = 25 giây. (như vậy chai thứ 3 sẽ được tha trong khi chờ nút chai 6 giây). Sau 25 + 1 = 26 giây. chai thứ 3 sẽ mở nút trong 26 + 4 = 30 s. - Thứ 4. Bây giờ máy niêm phong có thể lấy chai thứ 5, nhưng chai đó, như chúng ta biết, vẫn chưa đầy nên máy mất 2 s. tha thứ mà không làm gì cả. Sau 32 + 6 = 38 giây. chai thứ 5 sẽ được đóng nút và sau 38 + 12 = 50 s, cuối cùng là chai thứ 6.
Hãy xây dựng bảng phụ 2.
*) Người ta tin rằng, sau khi đổ đầy chai, máy có thể bắt đầu đổ đầy vào lần tiếp theo mà không lãng phí một giây nào.
22
Các số trong cột đầu tiên của nó đã quen thuộc với chúng ta: nó được viết ở đây trong bao nhiêu giây máy sẽ đổ đầy chai đầu tiên, hai chai đầu tiên, ba chai đầu tiên, v.v. Cột này có được bằng cách cộng tuần tự (từ trên xuống dưới) các số trong cột thứ hai của bảng 1. Sẽ thuận tiện hơn khi đọc cột thứ hai của bảng 2 từ trên xuống dưới: để có được cột này, hãy cộng các số từ cột thứ ba của bảng 1. Cột thứ ba 2 là tổng của hai cột đầu tiên của nó. cột.
Cột thứ hai của Bảng 2 có ý nghĩa như sau: nếu máy II làm việc mà không quét thì nó sẽ đóng nắp tất cả các chai trong 41 giây; nếu anh ta đóng nút tất cả các chai bắt đầu từ chai thứ 2 mà không nhìn, anh ta sẽ mất 31 giây.; Phải mất 23 giây để đóng nút mà không cần dùng hết chai, bắt đầu từ chai thứ 3. vân vân.
Trong ví dụ của chúng tôi, máy II chỉ hoạt động mà không xem sau khi chai thứ 5 chạm vào nó. Sau đó nó được nộp (xem hàng 5 của Bảng 2) sau 32 giây. sau khi bắt đầu hoạt động của dây chuyền tự động; sau đó, máy II làm việc trong 18 giây nên toàn bộ dây chuyền vận hành kéo dài 50 giây. (xem cột thứ ba của Bảng 2).
Trong đoạn 5, chúng ta sẽ quay lại ví dụ này và bây giờ chúng ta sẽ trình bày cách tính thời gian hoạt động của dây chuyền tự động trong trường hợp chung - với điều kiện là thứ tự cấp chai cho ăn trên dây chuyền được chỉ định.
- Thời gian vận hành đường dây tự động
Trong ví dụ của chúng tôi, 50 giây. là số lớn nhất trong cột thứ ba của Bảng 2. Điều này không phải ngẫu nhiên: điều sau đây đúng.
Phát biểu 1. Đặt thời gian đổ đầy và đóng nắp chai theo bảng 3 và để các chai rơi vào máy theo thứ tự được chỉ định trong bảng này. Hãy xây dựng bảng phụ 4 dựa trên bảng 3 (tương tự cách làm ở trên, bảng 2 được xây dựng từ bảng 1).
Khi đó thời gian vận hành của dây chuyền tự động bằng số lớn nhất ở cột thứ 3 Bảng 4.
Bằng chứng. Hãy vẽ hai đường thẳng nằm ngang: I và II (Hình 2.) Trên đường thẳng I chúng ta sẽ đặt sang một bên (tiếp theo
23
ở bên phải) các đoạn (có độ dài ). Trên đường thẳng , chúng ta vẽ (cũng từ trái sang phải) các đoạn (có độ dài ). Chúng tôi sẽ đặt điểm trên cùng một chiều dọc với , và sau đó - đối với bất kỳ , nào - chúng tôi sẽ đặt điểm trên cùng một chiều dọc với các điểm đúng hơn từ các điểm và (điều này tương ứng với thực tế là máy bắt đầu làm tắc chai tiếp theo khi nó đã đầy và khi chai trước đó đã bị đóng nút). Chúng ta hãy chiếu trực giao trên trục thời gian ngang các điểm vào các điểm và điểm vào điểm . Rõ ràng là thời gian hoạt động của dây chuyền tự động trong trường hợp ta đang xét.
Độ dài đoạn trên trục sẽ được ký hiệu là ; thì .
Có thể có khoảng cách giữa các đoạn trên đường và điểm nằm trên cùng một chiều dọc với hoặc ở bên phải; do đó . Do đó, ().
Hãy lấy khoảng cách ngoài cùng bên phải giữa các đoạn . Ở bên phải của nó là các đoạn , tạo thành một đoạn “rắn” (không có khoảng trống) *) có chiều dài . Vì không trùng với (chúng cách nhau một khoảng cách) nên nằm trên cùng một chiều dọc với và . Vì vậy, .
Do đó, bằng giá trị lớn nhất của các số (). Mệnh đề 1 đã được chứng minh.
Bảng 4 được xây dựng từ bảng 3 đã cho cực kỳ nhanh chóng: 2 cột đầu tiên
24
- Thứ tự tốt nhất
Đầu tiên xét trường hợp có hai chai.
Giả sử thời gian điền và mua của một trong số chúng lần lượt bằng và , còn đối với cái còn lại, lần lượt là và . Vậy thì thứ tự nào tốt hơn - thứ tự được chỉ ra trong bảng 5 hay thứ tự được chỉ ra trong bảng 5'?
Thời gian hoạt động của dây chuyền ở phương án thứ nhất (Bảng 5) tương ứng với . Trong bảng 4 ký hiệu cho
Theo Tuyên bố 1, thời gian bằng số lớn hơn trong các số và :
Chúng ta hãy biểu thị tổng bằng . Khi đó công thức của có thể được viết lại như sau:
(nếu các số và khác với thì các số và sẽ lớn hơn).
Tất nhiên, một công thức tương tự cũng đúng cho , trong đó là thời gian vận hành đường dây trong tùy chọn thứ hai (Bảng 5’):
Vì vậy, nếu thì .
Nói cách khác, đối với thứ tự tốt nhất được xác định theo quy tắc sau: chọn nhiều nhất từ các số và ; nếu là hoặc thì tùy chọn đầu tiên sẽ tốt hơn (Bảng 5), nhưng nếu là hoặc thì tùy chọn thứ hai (Bảng 5’). Nghĩa là, khi trong bảng biểu thị thứ tự tốt nhất, hầu hết các số phải ở phía trên bên trái hoặc phía dưới bên phải.
Trong trường hợp tùy ý thì câu cuối được khái quát như sau.
Phát biểu 2. Thứ tự “tốt nhất” có thể được xác định theo các quy tắc sau. Chúng ta hãy chọn nhiều số nhất trong Bảng 3. Nếu số này là thì chai thứ phải được phục vụ theo hàng của chai đầu tiên; nếu con số này là thì chai phải được phục vụ cuối cùng trên hàng. Tìm hiểu càng nhiều càng tốt số phận của chai thứ bằng cách xóa dòng thứ khỏi Bảng 3. Trong số các số còn lại (), chúng ta lại chọn nhiều nhất trong số các số . Nếu nó bằng thì chai thứ sẽ được gửi đến đầu hàng đợi và nếu nó bằng thì chai thứ sẽ được gửi đến cuối hàng đợi (được tạo thành bởi tất cả các chai ngoại trừ chai thứ ). Cứ thế cho đến chai cuối cùng.
Chúng ta sẽ chứng minh khẳng định 2 trong đoạn 6 và bây giờ áp dụng khẳng định 1 và 2 vào ví dụ của mình.
*) Nếu có một số số như vậy, bạn có thể lấy bất kỳ số nào trong số đó.
25
- Ví dụ số (cuối)
Tên theo các con số chỉ thời gian ở Bảng 1 là 1. Đây là thời điểm đóng nút chai thứ 3. Vì vậy, chúng tôi sẽ gửi chai thứ 3 đến cuối hàng. Hãy gạch bỏ dòng thứ 3 trong bảng 1 và tìm lại số tên. Lần này bằng 2 - đây là lúc đổ đầy chai thứ 4. Theo quy định của chúng tôi, chúng tôi gửi chai thứ 4 đến đầu hàng đợi. Tiếp tục làm tương tự ta thu được bảng 1'.
Đường dây sẽ hoạt động trong bao lâu theo đơn đặt hàng mới? Chúng ta hãy soạn, như thường lệ, bảng 2′.
Số lượng tối đa trong cột thứ 3 là 44. Đây là thời gian của dòng công việc. So với trật tự cũ chúng ta được 6 giây.
Lưu ý: Hãy sắp xếp lại 2 hàng cuối cùng của bảng 1 (tức là đặt chai thứ 3 và chai thứ 5). Bốn dòng đầu tiên trong bảng 1′ và 2′ sẽ không thay đổi, nhưng hai dòng cuối cùng sẽ giống như trong bảng 1” và 2” ở trang 26.
Theo Phát biểu 1 thì thời gian hoạt động của thước vẫn là 44 s. Vì vậy, có thể nói rằng nhiều đơn hàng khác nhau là “tốt nhất”. Tuyên bố 2 cho phép bạn nhanh chóng tìm thấy một trong số chúng.
- Bằng chứng Tuyên bố 2
Hãy lần lượt chọn hai hàng trong Bảng 3 và hoán đổi chúng (xem Bảng 6 và 6′).
Hãy xem Bảng 4 thay đổi như thế nào. Nếu chúng ta sắp xếp lại các hàng có số i và (i+1), thì với k < i và với k > i + 1 các số và
Bảng 2′
26
Bảng 1"
| 3 | 3 | 1 |
| :— | :— | :— |
| 5 | 11 | 6 |
Bảng 2"
| 23+3=26 | 6+1=7 | 26+7=33 |
| :— | :— | :— |
| 26+11=37 | 6 | 37+6=43 |
Bảng 3'
| | | |
| :— | :— | :— |
| | | |
không thay đổi. Các thay đổi sẽ chỉ xảy ra ở các dòng được đánh số và (xem bảng 7 và 7’).
Như vậy
Ký hiệu bằng và sử dụng công thức cho và từ bước 4, ta tìm được
Số lớn nhất trong số (tại và ) chúng ta biểu thị bằng . Thời gian vận hành đường dây trong hai so sánh
Chúng tôi biểu thị các biến thể loại trừ lẫn nhau bằng và . Sau đó, theo Tuyên bố 1,
Rõ ràng là nếu thì .
Trong phần 4 chúng ta đã chứng minh rằng nếu .
Do đó, kết quả vừa thu được có thể được biểu diễn như sau:
Bổ đề. Chúng ta hãy chọn hai hàng liền kề tùy ý trong Bảng 3 (xem.
*) Lưu ý rằng nếu thì không nhất thiết phải là . Người ta có thể tuân theo đó và sau đó bất kể số và nào lớn hơn.
Bảng 4**
| | | |
| :— | :— | :— |
| | | |
Bảng 5'
| | | |
| :— | :— | :— |
| | | |
26
27
6). Nếu vì họ
min (a, d) ≥ min (b, c),
khi đó những dây chuyền này có thể được sắp xếp lại (xem Bảng 6’), và thời gian vận hành của dây chuyền sẽ không tăng lên.
Điều này đã ngụ ý câu 2 từ điểm 4. Hãy chứng minh điều đó.
Hãy bắt đầu với hai ghi chú đơn giản.
- Thứ tự mà chúng ta đạt được khi áp dụng các quy tắc ở đoạn 4, không phụ thuộc vào thứ tự chúng được sắp xếp ban đầu. Vì vậy, chỉ cần chứng minh Tuyên bố 2 trong trường hợp lệnh nêu trong Bảng 3 đã được “khóc” (chính xác hơn là một trong những lệnh “đã khóc” *).
- Giả sử rằng, bằng cách áp dụng nhất quán các quy tắc của bước 4, chúng ta đã quyết định (ở một số bước) di chuyển một số chai đến gần cuối hàng: từ vị trí thứ i đến thứ (i + s). thì điều này có thể được thực hiện theo s giai đoạn: đầu tiên di chuyển chai đã chọn đến vị trí (i + 1), sau đó đến vị trí (i + 2), v.v. Điều tương tự cũng đúng nếu chúng ta phải di chuyển một số chai đến gần đầu hàng: điều này cũng có thể được thực hiện trong một số giai đoạn, chỉ hoán đổi các chai gần đó. Nếu bạn chắc chắn rằng bổ đề có thể áp dụng được ở từng giai đoạn thì sẽ chứng minh được rằng việc tuân theo các quy tắc của bước 4 không làm tăng thời gian hoạt động của đường thẳng. Theo nhận xét trước, đây là điều duy nhất còn lại cần xác minh để chứng minh Tuyên bố 2.
Nghe này, khi một chai được chuyển đến đầu hoặc cuối hàng, chai hoàn hảo cũng được coi là theo cách tương tự. Hãy xem xét, ví dụ, thứ hai trong số họ.
Giả sử, theo quy tắc ở điểm 4, tại một bước nào đó, người ta quyết định chuyển một số chai từ vị trí thứ i sang vị trí thứ (i + s), và ở bước này, hàng thứ i và (i + 1)-th được chỉ định trong Bảng 6. Khi đó số b là số nhỏ nhất trong số đó.
*) Xem ghi chú ở cuối đoạn 5.
những con số biểu thị thời gian đổ đầy và đóng nắp đối với tất cả các chai chưa được đặt vào vị trí cuối cùng tại thời điểm này. Cụ thể, b = min(a, b, c, d). Do đó, min (a, d) ≥ min (b, c). Điều này có nghĩa là bổ đề có thể áp dụng được. Theo cách tương tự, nó đã được chứng minh rằng nó có thể áp dụng được ở bất kỳ giai đoạn nào. Như vậy chứng minh đã hoàn tất.
Ở sự khác biệt
- Ở đoạn 3, chúng ta đã tính toán rằng nếu chỉ định thứ tự cung cấp chai cho dây chuyền tự động thì thời gian vận hành của dây chuyền được tính bằng 3N - 2 phép cộng (trong đó N là số chai). Bạn cần thực hiện bao nhiêu hành động để xác định thứ tự “ai đã khóc”?
Nếu chúng ta gọi “hành động” là việc chọn số nhỏ nhất trong một bảng gồm hai cột và số hàng tùy ý, thì sẽ cần có N hành động (xem câu 2 trong đoạn 4). Miễn là N không lớn thì định nghĩa về “hành động” này là hợp lý - ví dụ: chúng ta có thể giả sử rằng khi tổng hợp bảng 1’ từ bảng 1 trong đoạn 5, chúng ta thực sự đã tiêu thụ N hành động (N = 6). Đối với N lớn, việc tìm số nhỏ nhất trong bảng sẽ sắp xếp lại chai một cách rõ ràng bằng một hành động cơ bản, do đó, “hành động” được gọi hợp lý hơn là so sánh hai số (và chọn số nhỏ nhất trong số đó). Cần bao nhiêu thao tác so sánh như vậy để xác định được thứ tự nhỏ nhất?
- Bạn có thể xem xét “bài toán về chai” không phải cho hai mà cho n máy. (Trong tài liệu toán học, lời giải hậu duệ của bài toán được gọi là “Johnson’s bài toán với n = 2”.)
Với n > 2 (thêm nữa với n = 3) điều này bài toán vẫn chưa được giải. Điều này phần lớn được giải thích bởi những điều sau đây. Khi n = 2, việc thêm chai thứ (N + 1) vào N chai đã được sắp xếp theo sự hiện diện không ảnh hưởng đến thứ tự tương đối của N chai đầu tiên. Đối với n > 2, điều này có vẻ đúng: đối với n = N = 3, bạn có thể đặt thời gian a_i, b_i, c_i (i = 1, 2, 3) để xử lý ba chai theo cách “khi có chai thứ 3”, chai thứ 1 phải được nạp đến vạch thứ 2 và “trong trường hợp không có chai thứ 3”, ngược lại, chai thứ 2 phải được nạp đến vạch bằng với thứ nhất. Đưa ra một ví dụ để hỗ trợ điều này.
- Kiểm tra rằng, với n = 3, các chai được sắp xếp theo cách tốt nhất có thể được đưa vào từng máy theo cùng một thứ tự. Đối với n > 3, điều này không còn nhất thiết phải xảy ra nữa: để giảm thiểu thời gian vận hành của dây chuyền, đôi khi nó có thể gặp một chai khác được xử lý bởi máy A chưa hoàn chỉnh và đưa nó đến máy B tiếp theo sau chai ra khỏi máy A muộn hơn máy này. Đưa ra một ví dụ có liên quan.