Tôi là một sinh viên làm việc trên một mô phỏng kiến cho một dự án khóa học. Thuật toán cho nó (rõ ràng) là một thuật toán đàn kiến. Tôi biết có nhiều dạng thuật toán khác nhau nhưng tất cả chúng đều quá chi tiết về mặt toán học đối với chúng tôi nên chúng tôi đã thực hiện một cách tiếp cận mà chúng tôi có:
- Một con kiến được sinh ra tại một thuộc địa và phải thu thập thức ăn từ một nguồn để duy trì thuộc địa.
- Tất cả các loài kiến đều tương tự nhau.
- Vùng mà kiến di chuyển là lưới 1000x1000, vì vậy mọi điểm lưới đóng vai trò là điểm hợp lệ để kiến chiếm. Bây giờ, tất cả các thuật toán mà tôi đã gặp đều liên quan đến việc xử lý các đỉnh và cạnh riêng biệt nhưng vì chúng tôi đang hạn chế chuyển động của kiến chỉ bốn hướng (lên, xuống, trái, phải) Tôi đoán rằng chúng tôi không đặt pheromone ở đâu.
- Các điểm lưới được đề cập ở trên lưu trữ pheromone.
- Một con kiến chỉ giảm pheromone nếu nó đang mang thức ăn.
- Đối với một con kiến ở một vị trí (i, j), nó quyết định nơi sẽ di chuyển trong bước tiếp theo bằng cách lấy số lượng pheromone trên bốn nút liền kề của nó trong một công thức xác suất đơn giản, nghĩa là xác suất di chuyển đến một nút được đưa ra bởi (lượng pheromone tại nút liền kề cụ thể) / (tổng số lượng pheromone trong 4 nút liền kề).
- Một con kiến không thể quay trở lại vị trí nó vừa xuất phát. Nó chỉ có thể làm như vậy nếu nó ở một địa điểm có thức ăn hoặc nó ở thuộc địa của nó.
Bây giờ mối quan tâm của tôi là (và những gì thực sự xảy ra trong chương trình của chúng tôi) rằng khi một con kiến FIRST đạt đến một vị trí có thức ăn và nhặt nó lên, thì bằng cách thuật toán của chúng tôi hoạt động, nó có thể di chuyển đến bất cứ đâu! Điều này là do nó sẽ chỉ để lại dấu vết pheromone, một khi nó có thức ăn chứ không phải trước đó và vì nó là con kiến đầu tiên, không có dấu vết hiện có.
Nếu con kiến có thể di chuyển đến bất cứ nơi nào, thì con kiến tiếp cận nguồn thức ăn sau nó cũng sẽ có xu hướng đi theo nó .. NGAY CẢ NẾU nó không di chuyển trở lại thuộc địa. Điều này đánh bại mục đích của toàn bộ thuật toán.
Vì vậy, câu hỏi của tôi là
- Là mối quan tâm trên có giá trị? Nếu không thì tại sao? Nếu có thì làm thế nào để đối phó với nó?
- Chúng ta có cần thực hiện một số thay đổi trong hiểu biết cơ bản về thuật toán để thực sự làm cho nó hoạt động không?
- Một số điều tinh tế nhưng quan trọng khác mà những người mới như tôi có thể bỏ lỡ trong trường hợp này là gì?