Bạn và một người bạn đã lạc mất nhau trong một buổi hòa nhạc, và cả hai đều không chắc chắn về phía trước. Chính thức, mỗi cái đều ở một số tọa độ nguyên và chỉ có thể đi về phía tọa độ cao hơn hoặc giữ nguyên vị trí.
Giả sử bạn và bạn của bạn đang theo cùng một thuật toán chính xác (và không, bạn có thể không nói "if (name ==" R B ") làm gì đó :)) và khoảng cách ban đầu giữa hai bạn là (không phải là được biết đến với bạn).
Thuật toán giảm thiểu khoảng cách đi bộ dự kiến cho đến khi bạn và bạn của bạn gặp nhau là gì?
Bạn có thể cho rằng cả bạn bè và bản thân bạn đều di chuyển với tốc độ không đổi.
Một ví dụ thuật toán đơn giản sẽ là một cái gì đó như:
Ở giai đoạn (bắt đầu từ ):
- Đi bộ bước sang phải wp hoặc chờđơn vị thời gian khác.
Để xem thuật toán này làm cho bạn bè gặp xác suất 1 hãy xem xét những gì xảy ra ở giai đoạn . Thậm chí nếu người bạn đó là bước về phía trước luôn đi và người kia luôn ở lại tại chỗ, khoảng cách giữa hai sẽ là:
Do đó, ở lần lặp , người bạn chọn đi bộ sẽ bao gồm khoảng cách 3 log 3 x + 1 = 3 x , do đó có xác suất 1 , người bạn đứng đằng sau sẽ bắt kịp và họ sẽ gặp nhau.
Một tối ưu hóa đơn giản (để giảm khoảng cách đi bộ) sẽ là, thay vì đi bộ bước, đi bộ c x bước, trong đó c được đưa ra bởi: 2 + 1
Do đó tối ưu cho thuật toán này là c = 3 + √
Thật không may, trong khi thuật toán này đảm bảo rằng bạn bè sẽ gặp xác suất 1, khoảng cách đi bộ dự kiến là vô hạn, đó là điều tôi muốn tránh nếu có thể.
Có một thuật toán hiệu quả hơn?