IPB
ЛогинПароль:

> Поиск еды ..., Муравьи
сообщение
Сообщение #1


поиск
****

Группа: Пользователи
Сообщений: 347
Пол: Мужской
Реальное имя: nir

Репутация: -  2  +


Я решил поэксперементировать и реализовать некое сущестово, которое осущ. поиск еды на матрице.
В принципе все легко, но я решил сделать с минимум хода то есть без правил левой-правой ноги, обхода спиралью и тд.
Я заполнил матрицу едой и сделал массив из 4 функций: право, лево, верх и вниз.
По моему условию животное "слепое" те не видит, где еда.
Пока я сделал след. :наугад берется команда если она выполнена успешно(не врезались в стену) и
съедена еда, то команда выполняется еще раз(мне кажется что это логично и для простейшего существа).
Если стена или нет еды выберается наугад команда, пока не найдем еду. Так же я пытался записываь команды которые привели к нахождению еды и если ннет еды то выполнять их.

Сам вопрос, какой алгоритм поиска пищи у насекомых или какие нибудь идеи.? Я искал про муравьев, но увы не нашел,
хотя искал не очень долго. У меня есть пару мыслей : к примеру помечать клетки, где мы оно было и если встретили их идти от них до стены... бррррр бред.Ведь насекомые вроде не дигаются спиралью от центра норки ?
ps
Самое главное, что оно слепое, и без обояния. !nnn.gif но с памятью на команды.


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ну, примерно так:
1. Задаешься радиусом видимости (для примера 3 клетки в каждую сторону).
2. Задаешься, во сколько раз радиус "унюхиваемости" больше радиуса видимости (например, в 2.5-3 раза).
3. Вычисляешь СКО (в данном случае 8 клеток).
4. Делаешь для распределения массив весов:
4.1. Заводишь двумерный массив по 3 СКО в каждую сторону от середины, т.е. 49х49 (3*8 + 1 + 3*8).
4.2. Вычисляешь интеграл для каждой ячейки по формуле в зависимости от радиуса (расстояния до центральной ячейки).
4.3. При необходимости - нормируешь, но, думаю, в данном случае не нужно.
5. Массив весов готов.

Для вычисления потенциала:
1. Заводишь вспомогательное поле размером равное полю, по которому будут бродить муравьи (вещ.тип).
2. Перед началом вычисления очищаешь поле (обнуляешь).
3. Пробегаешь по всем клеткам основного поля. Если есть еда, то прибавляешь к полю потенциала вспомогательное поле, отцентрировав его по рассматриваемой ячейке, и домножив на количество еды.
4. В полученном поле находишь градиент в тех точках, где расположены муравьи. В принципе, для оптимизации можно и потенциал вычислять только в окрестностях этих точек (+/- одна ячейка).

Для пояснения приведу одномерный пример.
Пусть у нас Гаусс: 0 1 2 5 2 1 0
Пусть поле имеет ширину 10 клеток и в нем в точке 4 расположено 2 ед. еды, а в точке 8 - 3 единицы.
Обнуляем: 0 0 0 0 0 0 0 0 0 0
От 4-й точки: 0 0 2 4 10 4 2 0 0 0
От 8-й точки: 0 0 0 0 0 0 3 6 15 6
Суммируем: 0 0 2 4 10 4 5 6 15 6
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
renesko1   Поиск еды ...   14.05.2008 0:35
hardcase   Вообще подобная задача решается с помощью генетиче…   14.05.2008 12:52
Lapp   Порождаются всевозможные перемещения муравья и ген…   14.05.2008 14:47
andriano   Честно говоря, не совсем понятна цель данного меро…   14.05.2008 15:51
klem4   Я бы сделал муравью всетаки область видимости/унюх…   14.05.2008 18:59
andriano   Мне кажется "видимость" и "унюхивае…   14.05.2008 19:41
renesko1   Графически я реализовал в первую очередь, опирясь …   14.05.2008 21:41
andriano   renesko1, ты задавай конкретные вопросы, иначе неп…   14.05.2008 21:55
renesko1   Ясно. Я про "распределение по Гауссу с диспер…   14.05.2008 22:15
andriano   Ну, примерно так: 1. Задаешься радиусом видимости …   14.05.2008 23:05
renesko1   Те берем и делаем квадрат 3*3(пример) центр 3 пере…   15.05.2008 21:40
andriano   Не совсем понял, что ты собираешься делать. Карты,…   16.05.2008 1:04
renesko1   Со структурой ты здорово придумал. Зрение секторно…   16.05.2008 1:43
andriano   Что значит "находим"? "Находим…   16.05.2008 2:40


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 13:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name