Tôi đã gặp một vấn đề trong lớp học ngày hôm qua (lớp học định hướng kinh doanh, không phải khoa học máy tính) và tôi thấy nó thú vị từ góc độ thuật toán.
Vấn đề xảy ra như thế này:
Giả sử có một tầng cửa hàng với N phòng khác nhau và bạn có N phòng ban khác nhau cần phải đi trong những phòng đó. Các phòng ban và các phòng đều có cùng kích thước, vì vậy bất kỳ bộ phận nào cũng có thể đi trong bất kỳ phòng nào. Có một khoảng cách di chuyển được biết từ mỗi phòng đến phòng khác. Ngoài ra còn có một số chuyến đi cần thiết từ bộ phận này sang bộ phận khác (các chuyến đi được tính giống nhau cho dù họ xuất phát từ phòng nào, vì vậy chuyến đi từ A đến B tương đương với chuyến đi từ B đến A). Dựa vào những đầu vào đó, hãy xác định cách bố trí các phòng ban vào các phòng giúp giảm thiểu thời gian đi lại.
Cách tốt nhất để tiếp cận vấn đề này theo thuật toán là gì? Đã có một thuật toán hoặc lớp thuật toán cụ thể được thiết kế để giải quyết loại vấn đề này chưa? Liệu loại vấn đề này có một tên trong khoa học máy tính?
Tôi không tìm kiếm bạn để thiết kế một thuật toán để giải quyết vấn đề này, mặc dù bạn có thể làm như vậy nếu bạn muốn. Tôi tự hỏi nếu đây là một không gian vấn đề đã được xác định rõ và nghiên cứu về mặt thuật toán và nếu có thì có một số liên kết để nghiên cứu thêm. Tôi có thể thấy rất nhiều cấu trúc dữ liệu và thuật toán khác nhau có thể áp dụng cho điều này và tôi tò mò phương pháp nào sẽ là "tốt nhất".
Và đừng lo lắng, bạn không làm bài tập về nhà cho tôi. Đây không phải là một vấn đề bài tập về nhà, vì đây là một khóa học kinh doanh và chúng tôi chỉ đơn giản là thảo luận về các khái niệm và không cố gắng giải quyết vấn đề bằng thuật toán.