Đến nội dung


perfectstrong

Đăng ký: 30-09-2010
Offline Đăng nhập: Hôm qua, 22:41
****-

Chủ đề của tôi gửi

Làm thế nào để tổng thời gian hoàn thành là ít nhất?

28-06-2022 - 05:13

Bạn sở hữu một chiếc máy gia công tại một cửa hàng. Buổi sáng bạn mở cửa đón khách. Bạn không biết khi nào khách tới, nhưng khi khách hàng $i$ đến vào thời điểm $r_i$, bạn có thể biết được rằng cần phải dùng $p_i$ thời gian để hoàn thành công việc. Lúc bấy giờ, bạn phải đưa ra quyết định: thực hiện một công việc ($i$ hoặc một công việc nào đó chưa làm), hoặc chờ (bao lâu tùy ý bạn). Phải nhớ rằng một khi đã bắt đầu, bạn không thể dừng máy lại để chuyển cho người khác.

Là một người nhanh nhạy, bạn biết ngay việc thiếu thông tin sẽ khiến bạn không thể đưa ra quyết định tối ưu. Tuy nhiên, bạn vẫn muốn tìm một chiến thuật để đảm bảo rằng, dù trong tình huống tệ nhất, bạn cũng không quá xa với kế hoạch tối ưu nếu biết trước mọi thông tin.

Vậy bạn phải làm thế nào? Và trong tình huống xấu nhất, lịch trình của bạn sẽ tệ thế nào?


Đồ thị có tối đa bao nhiêu cạnh?

19-02-2022 - 17:30

Cho trước một đồ thị $G$ có $n$ đỉnh. Trên đỉnh thứ $i$ ta viết số $i$. Bây giờ ta nối các cạnh sao cho không tồn tại tam giác nào có 3 đỉnh $i,j,k$ thỏa mãn $i+j+k \vdots n$.

Hỏi $G$ có tối đa bao nhiêu cạnh?


Làm thế nào để mọi người ít chờ nhất?

30-11-2021 - 04:58

Giả sử bạn làm nhân viên quầy thu ngân ở siêu thị. Có $n$ khách hàng đến trước bạn chờ tính tiền. Nhìn vào lượng vật phẩm trong giỏ hàng của họ, bạn nhẩm tính được người $i$ sẽ tốn $p_i$ thời gian để quét xong mã và tính tiền, không kể thời gian đệm giữa hai người khách liên tiếp. Tiếp tục giả sử rằng, bạn có thể tùy ý sắp xếp thứ tự của $n$ khách hàng này. Vậy phương án nào là tối ưu nhất để:

a) Tổng thời gian chờ của mọi người là nhỏ nhất?

b) Tổng thời gian chờ của mọi người là nhỏ nhất, biết rằng một số khách hàng là khách hàng trung thành của cửa hàng, và thời gian chờ của họ sẽ được nhân lên theo hệ số $w_i$ với $w_i$ là trọng số cho biết mức độ quan trọng của khách hàng $i$.

 

===

Liên quan tới "Bài toán sắp xếp" ở đây: https://diendantoanh...i-toán-sắp-xếp/


Làm thế nào để ít trễ hạn nộp nhất?

27-11-2021 - 23:16

Giả sử bạn có $n$ bài tập cần phải nộp cho giáo viên. Bài tập $i$ có hạn nộp là $d_i$. Sau khi nhìn qua các bài tập, bạn ước lượng được để làm xong bài tập $i$, bạn cần có $p_i$ thời gian. Vậy thì bạn nên làm các bài tập theo thứ tự nào để tối ưu nhất?

a) Thời gian trễ hẹn trễ nhất là nhỏ nhất? (Thời gian trễ hẹn là 0 nếu bài nộp đúng hoặc trước hạn, và bằng hiệu số của thời gian nộp thực sự và hạn nộp)

b) Ít bài trễ hạn nhất?

 

===

Liên quan tới "Bài toán sắp xếp" ở đây: https://diendantoanh...i-toán-sắp-xếp/


Bài toán sắp xếp

01-10-2021 - 03:39

BÀI TOÁN SẮP XẾP

 

 

 

Richard Walter Conway, William L. Maxwell, et Louis W. Miller.
Theory of Scheduling. Dover, 2003.

 

 

Chúng ta gặp những bài toán sắp xếp cực kỳ thường xuyên. Chúng xuất hiện mỗi khi chúng ta phải quyết định thực hiện các công việc theo thứ tự nào. Mỗi bài toán có thể liên quan tới một thứ khác nhau, ví dụ: lô hàng ở một nhà máy sản xuất, máy bay chờ đợi lệnh hạ cánh, khách khứa ngồi trước cửa kính ở quầy tiếp khách trong ngân hàng, chương trình để chạy trong máy tính, hay đơn giản là công việc dọn nhà chiều thứ bảy. Luận điểm của chúng tôi đó là, bất kể tính chất của một công việc cụ thể cần xác định thứ tự thực hiện, thì luôn luôn tồn tại sự tương đồng căn bản với bài toán sắp xếp.

 

Bài toán sắp xếp rõ ràng sẽ được giải quyết, bởi vì hầu hết các công việc đều được thực hiện: máy bay hạ cánh, khách ngân hàng nhận/chuyển tiền, và chúng ta làm xong ít nhất vài việc nhà chiều thứ bảy. Tuy nhiên, đa số các bài toán này được giải theo cách ngẫu nhiên hoặc theo lề thói. Chúng ta còn không nhận ra cả sự tồn tại của bài toán đó, chứ đừng nói đến lời giải. Đôi khi, sự sắp xếp được quyết định hoàn toàn bừa bãi; nhiều lúc công việc được thực hiện theo thứ tự chúng xuất hiện. Khao khát công bằng cố hữu đã nâng cao giá trị của giải pháp "tới trước làm trước" (first-come, first-served) trong các bài toán sắp xếp tới một mức độ vô cùng bất xứng với hiệu năng vốn có của nó. Giải pháp ấy có thể thích hợp với những ông chủ bán vé xem phim, song không hẳn sẽ áp dụng tốt với các lô hàng bất động trên sàn nhà máy.

 

Phát biểu vấn đề và lời giải một cách chuẩn tắc cho một bài toán sắp xếp có lẽ là chuyện hiếm. Nếu có thì đại để sẽ như sau:

  • $\alpha$ là chuỗi hành động thực hiện $A$ trước rồi $B$.
  • $\beta$ là chuỗi hành động thực hiện $B$ trước rồi $A$.
  • Vì $\alpha$ được ưa thích hơn $\beta$ nên ta chọn "làm $A$ rồi $B$".

Dĩ nhiên chúng ta sẽ không biện luận rằng phân tích chuẩn tắc trên là thích đáng cho toàn thể bài toán sắp xếp trong đời sống thường nhật, tuy nhiên, đối với những vấn đề trong hoạt động công nghiệp, vận tải, cơ quan chính phủ cũng như tổ chức thì kết quả sắp xếp không phải là chuyện nhỏ nhặt, và chúng ta nên bỏ công sức để suy ngẫm một cách bài bản. Ấy thế các vấn đề đó lại bị giải quyết quá thường xuyên bằng thói quen chứ không phải giải thuật. Điều phối viên máy móc trong công xưởng, dầu là người quyết định những lô hàng nào trong dãy hàng chờ sẽ được làm, lại hay dùng các tiêu chí không liên quan mấy tới mục đích của công ty. Chương trình trên máy tính sẽ chạy theo thứ tự gửi tới CPU, một quy trình công bằng không thể cãi, nhưng ai cũng sẽ thấy rằng làm như vậy còn lâu mới đạt được tới tối ưu. Các chương sách tiếp theo sẽ chứng minh bằng lập luận đại số, ví dụ bằng số cụ thể và thử nghiệm trên máy tính, để cho chúng ta thấy có sự khác biệt đáng kể giữa các thứ tự sắp xếp khác nhau. Ít nhất thì trong một số bài toán thực tế, những khác biệt này ắt hẳn sẽ tạo ra sai khác phí tổn hoặc giá trị thành phẩm đủ lớn để chúng ta cân nhắc. Vấn đề ở đây không phải là quyết định xem có nên giải quyết một bài toán sắp xếp cụ thể nào đó, nên chọn thứ tự nào. Vấn đề là chúng ta sẽ xác định xem quyết định được đưa ra bằng phương pháp nào, bởi ai, và cho tiêu chí gì.

 

 

Vấn đề sắp xếp có lẽ không thiết yếu bằng các quyết định xem tác vụ nào kế tiếp, hoặc tác vụ đó được thực hiện ra sao khi việc tới. Tuy nhiên, nếu lựa chọn thứ tự hợp lý có thể cải thiện kết quả phần nào, thì chúng ta không nên bỏ qua cơ hội như thế. Dẫn chứng trong những chương kế tiếp sẽ chỉ ra rằng nếu áp dụng một cách phân loại, dù là đơn giản nhất, vào hệ thống đa nhiệm, thì chúng ta vẫn sẽ luôn tìm ra những khác biệt thú vị chỉ có thể xuất hiện do thay đổi thứ tự tác vụ. Trong nhiều trường hợp, nhiều giải thuật mặc dù hữu dụng và thực tiễn ngang nhau, lại có những đặc tính hiệu năng khác nhau đáng kể.

 

 

(Còn nữa)