Приветствую вас, друзья. Мы продолжаем наш курс по основам искусственного интеллекта и с вами опять я, Роман Душкин. В прошлом видео мы изучили экспертные системы и их продолжение - системы поддержки принятия решений. Это было интересно и познавательно. А сегодня я хочу представить вам еще более интересную тему, многоагентные системы. Погнали! В рамках искусственного интеллекта выделяется агентный подход, суть его довольно простая. Вместо того, чтобы пытаться формализовать такие сложные понятия, как разум, интеллект, сознание, надо сделать что-то более простое и полезное. Этим простым и полезным оказалось понятие рациональности или рациональное поведение. Хотя, конечно же, и тут не все так просто. Тем не менее, давайте подумаем, как можно определить рациональное поведение. Формализовать рациональное поведение можно различными способами, проще всего это можно сделать при помощи функции выбора достижения оптимальной цели с минимизацией затраченных на это ресурсов. Цель обычно можно выразить в числовом виде, но даже качественную цель можно описать формально. Например, если есть первоначальная цель описанная - "как стать отличником в восьмом классе", то формализуется она примерно так: все годовые оценки должны быть пятерками. Процесс достижения цели определяется разного рода методами оптимизации, которые для многих задач проработаны очень глубоко. А для отдельных аналитически доказана эффективность некоторых методов. И, таким образом, рациональное поведение сводится к решению минимаксной задачи: максимизировать значение целевой функции при минимизации затрат ресурсов. Все! Причем же здесь агентный подход в рамках искусственного интеллекта? Очень просто. Рациональный агент это кибернетическая машина, которая имеет систему управления, непрерывно получающую информацию с сенсорных устройств и воздействующую на окружающую среду при помощи исполнительных устройств, показывая при этом рациональное поведение, которое мы определили ранее. При этом подход не определяет сущность сенсорных систем исполнительных устройств. Их природа может быть произвольной. Например, муравьи, пчелы могут рассматриваться в качестве агентов. У них есть нервная система в качестве системы управления, органы чувств в качестве сенсоров и жало с лапками и крыльями в качестве исполнительных устройств. Поэтому агентный подход одинаково применим как к чисто программным сущностям, работающим в некоторой виртуальной среде, так и к программно-аппаратным комплексам, работающим в нашей реальности. Агентный подход интересен тем, что в его рамках можно использовать эволюционные алгоритмы, которые выращивают и отбирают рациональных агентов, исходя из степени их приспособленности к работе в своей среде и к достижению цели. Во время взаимодействия агента осуществляется отбор наиболее успешных, которые затем используются для генерации нового поколения агентов, среди которых опять применяются те же самые процедуры оценки отбора. В итоге, наиболее успешное поколение решает задачи и достигает целей наиболее эффективным образом. Это идеальный вариант, который сегодня сложно достижим, но стремиться к нему интересно. Так же агентный подход лежит в основе так называемых многоагентных систем, в рамках которых осуществляется общее целеполагание на более высоком уровне, нежели уровень каждого агента в отдельности. После этого каждому индивидуальному агенту дается свобода действий в определенных рамках, в которых он имеет возможности, альтернативы по разработке и реализации различных стратегий достижения своей частной цели. Например, если рассматривать уже упомянутых муравьев и пчел, то многоагентными системами в их случаях будут муравьиная куча и рой, соответственно. У этих систем есть главная цель: выжить в окружающем мире и распространить свои гены, в то время как у каждой отдельной особи, кроме матки, такой цели нет. Многоагентная система - это система образована из нескольких взаимодействующих друг с другом автономных и интеллектуальных агентов. Тут важно именно то, что агентов должно быть несколько, то есть хотя бы двое. И они должны взаимодействовать друг с другом и, самое главное, то, что агенты действуют рационально, то есть пытаются достигнуть свою цель затратив на это минимально возможное количество ресурсов с учетом всех ограничений накладываемых средой самой многоагентной системы. Когда какой-либо агент пытается получить то, что ему непосредственно недоступно, то он может начать опрашивать либо близких к нему агентов, либо всех агентов системы о помощи. Это может быть просьба о предоставлении того, что ему нужно, либо просьба выполнить какое-либо действие, либо еще какая-то просьба. Что происходит далее? Агенты вокруг опрашивающего оценивают его просьбу на предмет способности ее выполнить, а потом те из них, кто готов выполнить просьбу, отправляют агенту стоимость выполнения, выражаемую в тех самых ресурсах, минимизацию затрат которых надо обеспечить. Изначально агент выбирает исполнителя с учетом стоимости оценки качества исполнения. Если консенсус достигнут, первый агент передает ресурсы, второй выполняет, остальные получают отказ. Например, в улье главное обеспечить выживаемость потомства и когда личинка пчелы просит у няньки пищу, та приносит мед и кормит ее. Здесь можно остановиться и подумать, какие примеры агентов и многоагентных систем могут быть? В животном мире все просто, социальные насекомые, стадные животные, человек. В мире информационных технологий все немного сложнее. Разработать программных агентов несложно так, чтобы они взаимодействовали в какой-либо виртуальной среде. А что, если программно-технические агенты действуют в нашей реальности? Тогда люди, всякие объекты инфраструктуры тоже входят в состав среды, в которой они действуют и с которой взаимодействуют. А быть может люди сами могут быть включены в состав многоагентной системы. Тут открывается очень много возможностей. В качестве примеров автономных агентов в этом случае можно привести промышленных роботов на производстве, пассажирский транспорт, автономные автомобили, боевые дроны. Давайте рассмотрим менее зрительный пример. Вот я упомянул общественный пассажирский транспорт. Где здесь могут быть применены технологии многоагентных систем? К примеру, задача обеспечения приоритетного проезда перекрестков и светофоров подвижным единицами пассажирского транспорта. Изучим светофор на объект на перекрестке. Он управляется контролером, который может быть рассмотрен в качестве агента одного из типов. Этот агент умеет выполнять важные функции, переключать огни светофоров, менять длительности фаз, включать стрелку на правый поворот с полосы для общественного транспорта и так далее. Другой тип агента - это подвижная единица пассажирского транспорта, которая по своему маршруту везет людей. Этот агент всегда знает, сколько людей находится внутри подвижной единицы, а также насколько он отстает или опережает график своего маршрута. Кроме того, у этого агента есть ресурсы, то количество денег, которые заплатили воспользовавшиеся его услугами люди. И вот с конкурирующих направлений к перекрестку подъезжает несколько автобусов, в одном мало людей и он не опаздывает по своему графику, в другом людей много и он чуть-чуть опаздывает. Второй агент при приближении к перекрестку запрашивает у контролера текущий график переключения фаз, после чего понимает, что если протянуть текущую фазу на 30 секунд, то он успеет проехать перекресток и немного сократить отставание по графику. В этот момент агент отправляет на контролер запрос о продлении фазы на 30 секунд, контролер рассылает всем приближающимся подвижным единицам предложение по изменению графика. Второй агент понимает, что если это предложение будет принято и исполнено, то он отстанет от графика на несколько секунд и тогда он отправляет на контролер просьбу не принимать новый график, а также сумму, которую он готов заплатить за это. Надо отметить, что первый агент также послал сумму, которую он готов потратить за то, чтобы контролер протянул фазу. Контролер принимает решение с учетом того, что отступление от установленной программы также стоит каких-то ресурсов, поэтому в расчет идет не только размер предлагаемой всеми приближающимися агентами платы. Здесь может быть несколько итераций обмена сообщениями между агентами и тогда может быть устроено что-то типа аукциона, в том числе и с учетом новых агентов, которые могут приблизиться к перекрестку, пока первоначальные занимались переговорами. Но контролер может и самостоятельно и сразу принять решение и сообщить об этом всем окружающим агентам, разослав новый график и тот интервал времени, в течение которого изменение графика больше невозможно. А что происходит снаружи этой системы? А снаружи этой многоагентной системы водитель автобуса подъезжает к перекрестку и видит, что светофор, который, казалось бы, уже должен переключиться, продолжает гореть для него. Водитель проезжает и следует дальше по своему маршруту, а пассажиры внутри салона вообще ничего не замечают. Вот примерно так и должны работать современные интеллектуальные системы делая жизнь человека удобнее и лучше. В общем, если возвратиться на общий уровень рассуждений, агенты взаимодействуют друг с другом и с окружающей средой, обмениваются информацией, выполняя запросы других агентов. Здесь вполне может быть использована идея так называемого "роевого интеллекта", когда каждая отдельная особь, то есть агенты, интеллектом не обладают. Но в целом рой, то есть множество агентов, многоагентных система, обладает определенными интеллектуальными способностями. Роевой интеллект - это децентрализованная самоорганизующаяся и интеллектуальная система, состоящая из множества агентов. На мета уровне такой системы ставится цель и далее каждый автономный агент получает свое собственное задание, решение совокупности которых должно приблизить систему к достижению поставленной цели. Сущность роевого интеллекта заключается в том, что каждый агент сам по себе является очень простым, даже примитивным устройством, в то время как в рамках их взаимодействия рождается сложность и появляется интеллектуальное поведение у всей системы в целом. Общий принцип роевого интеллекта пока еще только разрабатывается, но на текущий момент уже создано полтора десятка алгоритмов. Это одна из самых динамично развивающихся областей в искусственном интеллекте и робототехнике. Да и вообще сегодня многоагентная система является одним из наиболее интересных направлений исследований в рамках искусственного интеллекта и смежных наук. Они применяются для решения задач моделирования, оптимизации, управления в компьютерных играх, на транспорте различной дальности и в логистических системах, робототехнике разных направлений. Так что все это очень интересно. Так, что-то я разошелся. Конечно, тема многоагентных систем и роевого интеллекта крайне интересная. Но, давайте, завершим это занятие, а за деталями приходите на специализированный курс в рамках нашей специализации. С вами был Роман Душкин, до новых встреч и пока.