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

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


поиск
****

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

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


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

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


--------------------
typedef void Śūnyatā ;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 14.05.2008 19:05
Сообщение #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   Поиск еды ...   13.05.2008 20:35
hardcase   Вообще подобная задача решается с помощью генетиче...   14.05.2008 8:52
Lapp   Порождаются всевозможные перемещения муравья и ген...   14.05.2008 10:47
andriano   Честно говоря, не совсем понятна цель данного меро...   14.05.2008 11:51
klem4   Я бы сделал муравью всетаки область видимости/унюх...   14.05.2008 14:59
andriano   Мне кажется "видимость" и "унюхивае...   14.05.2008 15:41
renesko1   Графически я реализовал в первую очередь, опирясь ...   14.05.2008 17:41
andriano   renesko1, ты задавай конкретные вопросы, иначе неп...   14.05.2008 17:55
renesko1   Ясно. Я про "распределение по Гауссу с диспер...   14.05.2008 18:15
andriano   Ну, примерно так: 1. Задаешься радиусом видимости ...   14.05.2008 19:05
renesko1   Те берем и делаем квадрат 3*3(пример) центр 3 пере...   15.05.2008 17:40
andriano   Не совсем понял, что ты собираешься делать. Карты,...   15.05.2008 21:04
renesko1   Со структурой ты здорово придумал. Зрение секторно...   15.05.2008 21:43
andriano   Что значит "находим"? "Находим...   15.05.2008 22:40


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

 



- Текстовая версия 8.07.2025 2:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"