Роевой интеллект. Проект “Орущие букашки”

Расшифровка видео
0:01
Всем привет.
0:02
Продолжаю эксперименты с роевым интеллектом.
0:05
Сейчас на экране вы видите след феромона от десятков
0:10
тысяч муравьёв.
0:11
Меняй настройки, я могу менять, как всё это выглядит.
0:14
Но об этом проекте я расскажу в одном из следующих роликов.
0:19
А сегодня я представляю проект роевого интеллекта,
0:23
под кодовым названием “Орущие букашки”.
0:27
Откроем википедию и прочитаем определение:
0:30
Кстати, здесь есть пометка, что:
0:33
“Точное определение роевого интеллекта всё еще не сформулировано.”
0:37
Итак.
0:38
Каждый агент следует очень простым правилам.
0:41
Нет какой-то централизованной системы управления, но
0:45
локальные взаимодействия приводят к возникновению
0:48
интеллектуального группового поведения.
0:51
Под интеллектом имеется в виду не то, что рой агентов
0:54
начнёт поднимать филосовские вопросы.
0:57
А то что они совместно будут выполнять задачу , решение
1:01
которой не вытекает из простого алгоритма агента,
1:05
но проявляется в их совместных действиях.
1:08
Ну а сегодняшняя задача для орущих букашек, это
1:12
искать ресурсы и доставлять их на базу.
1:14
Сейчас на экране вы видите, к чему мы придём к концу
1:19
ролика.
1:20
Агенты ищут ресурс и доставляют его на базу.
1:23
Алгоритм агента очень прост.
1:25
Агент слеп, кривоват и может связаться только с ближайшими
1:29
агентами, но, действуя вместе, они
1:32
быстро находят ресурс и короткий путь до базы.
1:36
Тема интересная, исследователи пробуют разные подходы.
1:40
На мой взгляд, широкое распространение это получит, когда агенты
1:44
будут физически расположенны на разных устройствах и
1:48
будет проблема создать централизованное управление.
1:52
Мои варианты, где это может применятся в реальности?
1:55
Во первых, у военных с их бесконечными финансовыми
2:00
ресурсами.
2:01
Они уже давно интересуются этой темой, а боевые дроны
2:04
сейчас бурно развиваются.
2:07
Интернет вещей – благодатная почва для этого.
2:10
Процессоры и датчики встраиваются везде.
2:13
И все эти устройства могут локально связываться и
2:16
совместно обеспечивать лучшую оптимизацию в индустрии
2:19
и более комфортную и безопасную жизнь для людей.
2:23
Беспилотный транспорт.
2:25
Когда беспилотных автомобили станет много, то автомобили
2:29
смогут создавать локальные сети на сложном участке
2:32
дороге, что бы совместно находить наиболее оптимальный
2:36
алгоритм прохождения этого участка.
2:39
Наука.
2:40
Связь под водой ограниченна и возможно только локально,
2:45
через визуальный и аудио канал.
2:47
Но огромный рой недорогих, беспилотных подводных
2:50
аппаратов, имеющих связь только с ближайщими соседями,
2:54
самостоятельно развернётся в заданном регионе, что
2:57
бы собирать информацию о температуре, течении,
3:00
солёности по всей толще воды и передавать её учёным
3:04
через свою же сеть.
3:06
Так можно собрать огромный массив актуальной информации
3:10
о состоянии океана.
3:12
И всю эту информацию нужно будет как то обрабатывать
3:15
и здесь нужны специалисты по Data Science.
3:18
Поэтому Data Science – одна из самых востребованных профессий
3:23
в IT.
3:24
И при чём высокооплачиваемая.
3:25
Если вам нравится нейроные сети и машинное обучение,
3:30
хотите работать с большими данными
3:31
и получить интересную, востребованную профессию,
3:35
то приглашаю вас на полный курс по Data Science от SkillFactory.
3:39
На годовом курсе вы с нуля научитесь программировать
3:42
на Python, освоите нужные разделы
3:45
математики, классическое машинное обучение, нейронные
3:48
сети, а самое главное научитесь строить модели, которые
3:52
помогают бизнесу принимать решения на основе данных.
3:56
Мне очень понравилось, что у SkillFactory очень удобный
4:00
формат учёбы: можно идти в своем темпе,
4:02
регулировать нагрузку, можно на время заморозить
4:05
курс.
4:06
Преподаватели — это люди, которые сами работают в
4:09
Data Science.
4:11
Каждому участнику будет приписан наставник, который
4:14
будет помогать и отвечать на вопросы,
4:17
а карьерный центр поможет вам оформить резюме и начать
4:21
проходить собеседования.
4:23
Если вы все еще в раздумьях, идти ли в SkillFactory, посмотрите
4:27
отзывы в гугле и других независимых сайтах.
4:31
Больше о программе курса можно почитать по ссылке,
4:35
которую я оставлю в описании.
4:36
А если запишетесь на него до 20 мая, то по моему промокоду
4:41
получите существенную кидку.
4:43
Ну а мы возвращаемся к орущим букашкам.
4:49
Это наш агент у него есть направление куда он шагает
4:53
и его задача – курсировать
4:55
между пунктами “А” и “Б”.
4:58
Сейчас ему нужно найти пункт “А”.
5:00
Так как пунктов всего 2 то у агента имеется 2 счётчика,
5:06
в которых записано условное количество шагов до каждого
5:11
пункта.
5:12
Каждый ход эти счётчики увеличивается на единицу,
5:15
неважно В каком направлении идёт агент.
5:18
И каждый ход он выкрикивает значение одного из своих
5:22
счётчиков, к которому прибавляет 50.
5:24
50 – эта максимальная дистанция на который его крик может
5:29
быть услышан.
5:30
Он как-бы оповещает всех кто его слышит, что вам
5:34
до этого пункта столько же шагов как и мне плюс
5:37
ещё 50.
5:38
Агент ничего не видит, двигается на ощупь и должен уткнуться
5:43
в пункт, чтобы понять, что он пришёл.
5:47
Вот Агент наткнулся на один из пунктов, возможно
5:50
случайно.
5:51
Он обнуляет счётчик соответствующей этому пункту.
5:54
Если это именно тот пункт, который он искал то он разворачивается
5:59
на 180 градусов и продолжает двигаться дальше.
6:03
Теперь ему надо найти пункт “Б”.
6:07
А вот здесь происходит магия.
6:09
Его слышит второй агент находящейся в радиусе 50
6:13
шагов.
6:14
Он сравнивает услышанное значение со значением из
6:18
своего счётчика.
6:19
Если услышанные значения меньше, то второй агент
6:23
обновляет свой счётчик, соответсвующий пункту
6:26
“А”, записывает значение, которое услышал.
6:30
То есть теперь он считает что от него до пункта “А”
6:34
51 шаг. 50 шагов до первого агента
6:38
и ещё один шаг до пункта “А”.
6:40
Если бы второй агент двигался в пункт “А”, то Он повернулся
6:44
бы по направлению крика, но сейчас он идёт в пункт
6:48
“Б”.
6:49
Теперь второй агент оповещает окружающих, что им до пункта
6:53
“А” 101 шаг, то есть 50 шагов до него и от него до пункта
6:58
“А” 51 шаг.
7:00
Это услышал 3 агент.
7:02
Он обновляет свой счётчик и так как он идёт в пункт
7:06
“А”, он поворачивается по направлению крика.
7:09
Заметьте, что у третьего агенту направление стало
7:12
даже хуже, чем было.
7:14
Так будет часто локально происходить.
7:16
Но глобально, абстрактный роевой интеллект будет
7:21
видеть всю картину через градиент значений счётчиков
7:25
у агентов и в итоге все агенты придут туда, куда
7:30
шли.
7:31
Итак алгоритм Агентаю Сделай шаг,увеличь все
7:35
счетчики на единицу.
7:37
Если наткнулся на один из пунктов, обнули счётчик,
7:41
соответствующий этому пункту.
7:43
Если это пункт к которому ты шел, развернись на 180
7:47
градусов и поменяй цель в голове к которой идёшь.
7:52
Крикни значения одного из своих счётчиков плюс
7:54
максимальное расстояние, на котором тебя могут услышать.
7:59
Послушай, что кричат другие.
8:01
Если услышал значение меньше, чем в твоём счетчике, то
8:05
обнови соответствующей счётчик.
8:08
и повернись по направлению крика, если тебе нужно в
8:11
этот пункт.
8:16
Первая реализация.
8:17
Здесь агент должен курсировать между двумя кружочками.
8:22
Принцип немножко отличается от того что я перед этим
8:24
написал, но картинка получилась интересная, поэтому я здесь
8:28
её покажу.
8:30
На поле 1600 агентов.
8:33
Крик слышен на дистанции 38 пиксель
8:37
Для понимание масштабы я поставлю линейку со шкалой
8:40
в 38 пиксель и кружочки с таким же радиусом.
8:45
На экране отображаются линии связывающие того
8:48
кто кричит и того, кто слышит, но при условии что крик
8:52
привел к обновлению счётчика.
8:55
Главное отличие в том, что Агент кричит только, когда
8:58
обновится один из его счётчиков, поэтому инициализация
9:02
волны криков происходит от одного из пунктов и далее
9:06
волна проходит там где позволяет расстояние между
9:09
агентами.
9:11
Через какое-то время начинают формироваться что-то похожее
9:15
на дорожки.
9:17
Запускаю видео.
9:19
Большую часть времени угрюмые агенты ходят в тишине, но
9:23
даже такие необщительная агенты умудряются в конце-концов
9:26
выстроить дорожку.
9:28
Критически важным здесь является количество агентов
9:31
на единицу площади, а также дальность крика.
9:35
Уменьшение дальности даже на один пиксель приводит
9:38
к тому, что дорожка создаётся заметно дольше.
9:42
Сейчас я ускорил воспроизведение, чтобы было видно что со
9:46
временем в дорожка стремится стать прямой.
9:49
Также у системы есть свойства прямо вытекающего из принципа
9:53
работы, при наличии двух дорожек, более длинная
9:56
дорожка отмирает сразу же.
9:58
В конце я пришёл к выводу что агенты должны каждый
10:02
ход сообщать состояние одного из своих счётчиков.
10:06
Теперь покажу некоторые интересные моменты, которые
10:10
вывел во время экспериментов У нас есть две синих базы
10:15
с правой стороны и оранжевые ресурсы с левой стороны.
10:18
Запускаем агентов.
10:20
Агенты нашли все пункты но смотрите что происходит.
10:23
Центральный ресурс находится ближе к базам, чем другие
10:27
ресурсы и поэтому агенты предпочитают идти только
10:30
к нему.
10:31
А центральные ресурс находится ближе к той к базе что сверху,
10:36
поэтому агенты предпочитают нести ресурс именно на
10:39
эту базу.
10:40
Это именно то свойство которым я говорил: длинные
10:44
пути быстро отмирают.
10:46
Иногда это полезно иногда вредно.
10:50
Например в финальной реализации каждому агенту точно задаётся,
10:55
какой из ресурсов он должен принести,
10:58
чтобы он не отвлекался на ближний.
11:00
И ещё один момент. дорожка сформировалась.
11:04
Я ставлю ресурс рядом с дорожкой, но ввиду того,
11:07
что агенты слепые, они будут ходить мимо.
11:10
Поэтому в финальной версии, часть агентов являются
11:15
разведчиками, которые не занимаются доставкой ресурса,
11:19
а просто обследует окрестность и помогают транслировать
11:22
сообщения.
11:24
И ещё один трюк.
11:26
Ресурс исчез и теперь агенты начинают двигаться широким
11:30
веером, что помогает быстрее найти новый ресурс.
11:33
А происходит это из-за того, что после каждого шага,
11:38
у них случайным образом направление меняется на
11:41
небольшой угол.
11:42
Прямо ходить они не умеют.
11:45
А теперь посмотрите, что бы произошло если бы они
11:50
умели ходить прямо.
11:51
И последний момент.
11:56
Агенты не только должны ходить кривоватенько, но
11:59
и иметь разную скорость.
12:02
Если задать всем одинаковую скорость, то дорожка начинает
12:06
разрушаться, превращаюсь в группу которая кочует
12:09
то к одному пункту а затем, все вместе, к другому.
12:14
Вроде описал все моменты и мы переходим к финальной
12:17
реализация проекта “Орущих букашек”.
12:21
Итак легенда. это три вида ресурсов: красный
12:25
зелёный и синий.
12:27
Так выглядят букашки, каждая из них знает, какой ресурс
12:30
она должна найти.
12:31
А так они выглядят когда схватили ресурс и несут
12:35
его назад к Королеве.
12:37
Также среди букашек встречается разведчики которые снуют
12:41
по округе, не обращай внимания на крики.
12:44
Но если уж они наткнулись на ресурс то несут его Королеве.
12:48
А это Королева, оранжевый кружок по центру показывает
12:53
уровень её здоровье.
12:56
Поехалию
12:57
Чтобы жизнь не казалась мёдом, ресурсы постоянно
13:01
двигаются, мало того и сама Королева постоянно находится
13:05
в движении, смещается в сторону самого дальнего
13:08
ресурса.
13:09
У букашек есть срок жизни, в итоге они погибают и Королеве
13:14
надо пополнять колонию.
13:16
Если ей принести все три ресурса, то она может создать
13:22
новую букашку или, с некоторой вероятностью,
13:25
потратить ресурс на продление своей жизни.
13:28
Мало того, любая букашка оказавшиеся за 1000 шагов
13:34
от Королевы может объявить Королевой себя и начать
13:38
выкрикивать по округе, что до Королевы всего 50
13:42
шагов, забирать ресурсы у подошедших букашек и
13:45
клепать новых.
13:47
На экране вы уже видите появление новых Королев.
13:50
Букашки, кстати не разбирают, где своя Королева где чужая
13:55
и несёт туда где ближе.
13:57
Вновь возникшему Королевам необходимо быстро получить
14:00
все три ресурса, чтобы успеть продлить свою жизнь.
14:04
Здесь всё зависит от удачи, нужно оказаться рядом с
14:08
ресурсами и чтобы вокруг было много букашек.
14:13
Ресурсы достаточно малой ёмкости и рой агентов разрывают
14:16
их на части буквально за несколько секунд.
14:20
Мало какому ресурсу удаётся уйти, если его обнаружат
14:24
рой.
14:25
Единственное спасение, если рядом окажется такой
14:28
же ресурс и букашки переключаться на него.
14:30
Ну а дальше начинаются мои фантазии.
14:35
Есть караваны, осталось научиться их грабить и
14:38
относить добычу своей Королеве.
14:40
Или нет.
14:41
Пусть это будет экономическая симуляция и каждая Королева
14:45
назначает свою цену за каждый ресурс.
14:49
Букашка должна решить: нести недалеко и дёшево,
14:52
либо далеко, но дорого и с возможностью быть ограбленным.
14:57
И всё это, чтобы накопить денег на домик себе на старости.
15:01
Кстати про строительство.
15:03
Хотелось бы, чтобы Букашки не только носили ресурсы,
15:07
но и что-то строили.
15:09
В Википедия есть интересная статья про термитники.
15:12
За несколько сотен лет они достигают высоты 5 и
15:16
более метров.
15:17
И в этой статье есть алгоритм как он строится,
15:21
Руководствуясь этим алгоритмом, тысячи неорганизованных
15:25
насекомых строят сложный многоярусный лабиринт.
15:29
У них нет ни планов, ни чертежей.
15:32
Но я его так и не понял.
15:36
Будем думать, ну а на этом всё, всем пока.

Поделиться: