Технический форум по робототехнике.
setar » 23 май 2012, 23:06
Коллеги, а имеет ли кто либо опыт работы с "роем"?
Не обязательно с физическим воплощением, меня скорее алгоритмы интересуют.
Может работы интересные по теме попадались, может быть даже ОС (операционная система) управления роем (или ОС-рой ) ?
Angel71 » 24 май 2012, 04:08
свои наработнки по ботам я бы роем не назвал - у меня сейчас всё скорее ближе к очень простенькому клиент-серверну. врядли сильно много нового и полезного, на всякий вкратце опишу. в общем для боевых миссий есть примерно такая последовательность: сидим на станции -> приняли миссию -> полетели делать миссию -> делаем миссию -> летим на станцию -> "сдаём" миссию агенту -> летит собирать вкусняшки, оставшиеся после убийства "неписи" -> летит на базу -> всё с начала.когда чары очень молодые, они очень долго выполняют некоторые миссии или вообще некоторые не могут выполнить. в самом начале сделал без всякого сервера, просто в настройках прописал "летать во флоте=да/нет" и имя персонажа, который управляет флотом. последовательность действий примерно такая же осталась, добавилось только отправка (код использовал из простенького примера чата) собщений "взять ракеты такие-то", "вылетаем со станции и летим в такую-то систему". прилетели, управляющий флотом "варпает" всех на букмарку миссии и все начинают отстреливать "красные крестики". некоторая "непись" иногда может делать всякие пакости: набрасывать сетку (снижает скороть полёта), набрасывать дизварп (нельзя смыться, уйдя в варп), высасывать капу (энергию, без которй не будут работать щиты, оружие,...), сбивает прицел (не может стрелять) и т.д. в таких случаях всем рассылается сообщение, с айди таких кораблей и все вмиг переключаются на их отстрел. когда всех перебили или выполнили всё из файла описания миссии, управляющий флотом отсылает сообщение "летим на базу". у этого варианта "на скорую руку" были недостатки и немного переделал. сейчас всё клиент-серверное. запустился бот, отслал запрос серверу и в ответ получил в какой режим ему перейти - выполнение миссий, вывоз лута на торговую станцию, если игра вылетела, то вернуться к выполнению последней стадии,...). т.е. сервер распределяет кому что делать, кто во флоте/нет, через него боты общаются во флоте, хранит настройки для каждого чара, кэширует нужные данные, ведёт статистику и т.д. использовать мелкомягковский dss/ccr тулкит не решился - всё очень на хорошем уровне, а вот забросят они этот проект или нет + что с лицензиями убдет непонятно.
хз, вроде реализовать примерно такое хоть для пылесосов, хоть для беспилотников не сильно сложно и без всяких ос. имхо главное выбрать канал общения, структуру сети, проработать сообщения, решить, нужен ли режим ведущий/ведомый или переключать в нужный момент. хотя если в фреймворке уже заложен функционал работы с сетью и сообщениями с нужным уклоном, то будет намного проще.
а вот именно рой из простеньких агентов без всяких серверов сложней сделать. по рою букмарк почти никогда не делал, но по теме немного подчерпнуть можно тут:
http://ru.wikipedia.org/wiki/Роевой_интеллект,
многоагентные системы
d3xr » 16 авг 2012, 00:01
del
Последний раз редактировалось
d3xr 29 апр 2013, 23:38, всего редактировалось 1 раз.
setar » 16 авг 2012, 03:03
пришли на почту плиз
Romikgy » 16 авг 2012, 03:06
мне перешли))
Angel71 » 16 авг 2012, 03:24
в паблик плиз, хотя бы список литературы.
Duhas » 16 авг 2012, 12:41
+1 к паблику..
noonv » 16 авг 2012, 13:08
не совсем понимаю - при чём тут алгоритм пчелиных колоний? О_о
Duhas » 16 авг 2012, 14:36
вы с ним знакомы ? мы вероятно нет..
d3xr » 16 авг 2012, 23:02
Алгоритмы роя частиц, алгоритмы колоний (пчелиных, муравьиных) - суть одна у всех, реализация разная
Последний раз редактировалось
d3xr 29 апр 2013, 23:39, всего редактировалось 1 раз.
kran » 17 авг 2012, 01:01
setar писал(а):Коллеги, а имеет ли кто либо опыт работы с "роем"?
Не обязательно с физическим воплощением, меня скорее алгоритмы интересуют.
Может работы интересные по теме попадались, может быть даже ОС (операционная система) управления роем (или ОС-рой ) ?
Да сейчас чуть ли не любая ОС - рой. Одноранговую сеть чуть ли на автомате делают.
Вопрос скорее в том, что считать роем. Скорее всего придётся вводить ограничение по вычислительной мощности и/или объёму памяти. При этом добавляя какие-то минимальные требования по пропускной способности для коммутации. Предел расстояния коммуникации тоже важен.
Потому что если таких ограничений не будет - выгоднее все мозги расположить в одном агенте. Получим как минимум двухранговую сеть. При этом командир (матка) может бэкапить вычисления на других агентов. В случае выхода из строя командира можно провести выборы (или заранее распределить очерёдность, или иную процедуру назначения командира определить, по обстоятельствам). Т.е. единоначалие не так уж страшно с точки зрения надёжности, достаточно лишь ввести принцип "незаменимых у нас нет".
Я просто немножно баловался самописной стратегией, просто ползали точки по экрану, перестреливались.
Нужно также определиться с целью коммуникаций - нужно ли вообще это роение. У меня смысл был в манёврах - окружение, заманивание в ловушку. Поскольку агенты роя (юниты) были физически одноранговыми - с одинаковой скоростью и убойной мощью на одинаковом расстоянии, с одинаковой защитой - то преимущество и в конечном счёте победу давали правильные позиционные построения.
Я специально ограничил канал коммуникаций визуальным контактом, причём в очень ограниченном пространстве (а дальше - тьма, или "туман войны", как принято говорить). Хотел со временем перейти к "пчелиным танцам" - к передаче информации перемещением одного агента в поле зрения другого. (Но до этого не дошло. Однако к выборам вожаков я успел прийти.) А вообще я ввёл это ограничение как раз по той причине, что понимал - если коммуникации (или что-нибудь другое) не ограничивать, то смысла в вычислениях всем роем не будет - гораздо эффективнее всё обсчитывать одним агентом, владеющим полной информацией, и раздавать приказы, мгновенно и на бесконечное расстояние - алгоритм бога. Ведь если бог всемогущ, т.е. его могущество бесконечно (относительно маленькой задачки), то нет смысла складывать несколько бесконечностей, умножая количество богов - одного более чем достаточно.
Angel71 » 17 авг 2012, 01:29
знаете что означает слово "опт"? а теперь попробуйте сформулировать определение и при этом чётко разграничить по количеству, весу, габаритам, форме, цене и т.д. стакан семечек опт? а один автомобиль? а тонна угля? а мешок картошки? вот по этому все эти характеристики не имеют ни малейшего значения. важно только, что товар покупается с целью перепродажи. всякие скидки за красивые глаза или относительно крупные покупки или постоянным клиентам или ... но без цели перепродать это продажа со скидкой, маркетинг и прочее, но никак не опт. намёк понимаете? или разминочку? 1 микроскопическая бактерия, 1 клетка организма, 1 муравей, 1 саранча, 1 крыса, 1 человек. а теперь миллиард бактерий, клеток и прочей микроскопичности. по отдельности как ни крути, но они "безмозглые". а вместе? в одном из вариантов мутировавшие когда-то бактерии стали растениями. и без разницы, что кому-то трудно разглядеть в примитивной водоросли, арбузе, шиповнике, коштане, яблоне,... с одной стороны растение, с другой взаимодействие различных бактерий и клеток. до сих пор считаете что этот дружный коллектив безмозглым и примитивным? они не получили просто возможность чуть упростить своё выживание.
они научились общаться (в прямом смысле) и взаимодействовать не только между собой в растении, а еще и между растениями. дождь видели? аха, еще скажите, что растения ни с того ни с сего прям драгоценную влагу решились испарять. пчёлок на цветке видели? а всякие офощи и фрукты ели? неплохо научились манипулировать как для примитивной клетки/бактерии? но это всё относительно простое поведение. а теперь по возрастающей до высших животных. добрались до себя любимого? тириллиарды примитивных клеток и прочих организмов, постоянно помогающих и воюющих друг с другом. на следующем уровене опять же без взаимодействия с другими организмами это не более чем бесполезная биомасса. по всему свету побегаете и кучу чудных материалов добудете, моторчкик сделаете, книжку придумаете или прям сразу хитрую железку, которая n-нанометровые микрухи будет делать?
т.е. эти все гигагерцы, гигабайты, расстояния, пропускные способности бесполезные критерии.
kran » 17 авг 2012, 06:10
1 бактерия, 1 клетка - вообще разные вещи.
1 муравей, 1 саранча - близко, но разница тоже существенная. Сезонная, да ещё не каждый год.
1 крыса, 1 человек - вот это почти одно и то же... если не считать... не, не разум - дальнюю связь.
Миллиард бактерий - слизь какая-то, фу...
Миллиард клеток - а чо миллиард, можно больше - секвойя! Мегатонны биомассы. И про этом одно целое.
Взаимодействие.
Какое ёмкое слово. Действовать вместе, взаимно помогая друг другу достичь цели этого действия.
Ну так вот не все типы бактерий взаимодействуют, это скорее исключение из правил. А клетки потому и клетки, что они как правило между собой взаимодействуют (но тоже есть исключения).
Персики сегодня ел... уммм... Это клетки. А бактерии... ну квас пил (это не совсем бактерии, но почти). Вот клетки "хотели" сделать персик, нужно им было, для размножения. А бактериям пофик было, получится квас или нет. Ну просто так получилось. Плевать им на качество кваса и будет ли он вообще. Ещё раз поясню: разница в том, что клетки взамодействуют, чтобы получить персик, а бактерии просто жрут и срут, поодиночке. Это не вся разница, кстати, есть другие - специализация, например.
Есть совсем не связанные между собой сущности, каким бы целым это явление не казалось - падающие капли типа дождь. А есть целое - состоящее из частей, но целое, типа многоклеточное.
А есть нечто промежуточное - рой. И в этом весь смак, вся уникальность явления. Это отдельные сущности, но действующие как целое. И для нас, многоклеточных, это выглядит как чудо. Стая птиц, поворачивая туда-сюда без всякого лидера. Муравейник, построенный без архитекторов и прорабов. Иногда мы путаем это чудо с другим - с тем же дождём. Мы одушевляем то сам дождь, его характер и голос, то отдельные капли, как они ползают по стеклу как живые. Но не надо путать. Это всё-таки совсем разные чудеса - дождь и мы сами.
Кстати, я вообще вот от кого не ожидал возражений, так это от Angel71. Сам же так хорошо расписывал, как организовал взаимодействие ботов. Сам же написал, что от одноранговой сети пришёл к архитектуре клиент-сервер. Да и то с самого начала был вожак. Я-то начинал с действительно одноранговой сети, с равенства и братства. Причём свою игру я сам и контролировал, поэтому я с самого начала стремился задать такие условия, чтобы сражались не два шахматиста, а сами пешки. А потом сам же непроизвольно изобрёл способы обойти свои же ограничения. И появились пешки, которые чуть более равнее других, а потом и некие виртуальные шахматисты, которыми стали избранные пешки... Ничего не напоминает, кстати?
Так и в природе - от бактерий к рою, от роя к многоклеточным. Многоклеточные снова в рой, а рой многоклеточных... Так, ладно, не отвлекаться.
Вопрос-то был к топик-стартеру. И примерно такой: что именно не даст рою стать многоклеточным или хотя бы армией с полководцем? В чём ограничения? Потому что лучший алгоритм роя - "стань единым целым". А вот ограничения, поставленные как условия задачи, уже позволят выбирать из других алгоритмов. Заодно эти условия задачи позволят перейти от абстрактных теорий к конкретной практике, со всякими граммами и битами в секунду. Или интерес как раз абстрактный, теоретический? Даже в этом случае я пытаюсь подвести к мысли, что рой бывает разным - разные виды ограничений дадут разные виды роя. Соответственно - разные алгоритмы.
Dmitry__ » 17 авг 2012, 06:26
Вот вы тут матом ругаетесь, а потом этими же руками хлеб в столовой будете брать
setar » 17 авг 2012, 06:34
мне интересны скорее алгоритмы взаимодействия, "язык управления" что ли.