УДК 004.021 ЛОГИЧЕСКИЙ ВЫВОД В СТАТИЧЕСКОМ РОЕ Воробьев В.В.

advertisement
УДК 004.021
ЛОГИЧЕСКИЙ ВЫВОД В СТАТИЧЕСКОМ РОЕ
Воробьев В.В., аспирант
МИЭМ НИУ ВШЭ
e-mail:gatus86@mail.ru
1. ВВЕДЕНИЕ
Одним
из
приоритетных
направлений
современной
робототехники является групповая робототехника.
Наибольший интерес в данной области представляет собой
попытки реализации эффекта эмерджентности, который заключается в
том, что система из множества простых объектов способна решать
сложные задачи, которые не способен решать ни один, ни малое
количество этих простых объектов.
Существует ряд попыток решать данную задачу, например в
работе [6] представлен подход к построению коллектива роботов,
который имеет гетерогенный характер, т.е. некоторые члены
коллектива представляют собой роботов-транспортировщиков, другие
– роботов-разведчиков, а третьи имеют возможность забираться по
вертикальным поверхностям. По отдельности каждый из роботов не
способен выполнить задачу: найти, взять и перевезти определенный
предмет в определенную зону, но, действуя сообща, коллектив
способен справится с задачей.
Достаточно интересной представляется работа [7] где описан
коллектив из ста роботов, способных производить исследования
некоторой заранее неизвестной области, планируя и распределяя
между собой текущие задачи.
В работе [9] представлен ряд алгоритмов распределения задач в
гомогенной группе роботов, что, в той или иной мере, позволяет
говорить о наличие в коллективе эффекта эмерджентности.
Кроме того, в работе [8] рассмотрены различного рода микро- и
макроскопические ограничения группы роботов, которые сильно
влияют на появление системного эффекта.
Вышеперечисленные работы являются малой толикой работ по
данной тематике, однако позволяют понять общее направление
исследований по ней: некоторые результаты в данной области
действительно представляют достаточно большой интерес, однако
общее состояние дел, в частности реализации системного эффекта,
оставляет желать лучшего.
В связи с этим возникла необходимость рассмотреть хотя бы
предварительный перечень вопросов, которые необходимо решить для
появления эмерджентных свойств [3].
Большой интерес из этого перечня вызывает вопрос реализации
логического вывода в структуре, называемой статическим роем.
Статический рой – структура, представляющая собой полученные в
некоторый момент времени схемы соединения членов роя. При этом
структура роя ее членам не известна.
Отдельно стоит отметить тот факт, что на рой наложены
ограничения по коммуникационным возможности его членов, т. е.
каждый элемент роя может общаться только с фиксированным числом
своих соседей.
Нельзя не отметить и тот факт, что реализация логического
вывода в духе ПРОЛОГ, хоть эта схема и универсальна, сопряжена с
тем, что все ресурсы сети и, что немаловажно, медленных
коммуникационных каналов, будут заняты исключительно логическим
выводом [3]. Однако если контролировать этот процесс, то такая схема
становится вполне работоспособной, что и демонстрирует данная
работа.
2. ПОСТАНОВКА ЗАДАЧИ
В статическом рое существует узел, которому необходимо
доказать некое утверждение. Факты и правила, необходимые для
доказательства данного утверждения равномерно распределены между
узлами роя. В качестве более конкретного примера можно взять
пример классической процедуры логического вывода, представленной
в [1]. При этом, не трогая его структуры, заменим факты и правила из
данного примера на факты и правила, которые будут лучше отражать
робототехническую проблематику.
большой(брусок).
большой(ящик).
маленький(камень).
коричневый(брусок).
черный(камень).
серый(ящик).
темный(Z):-черный(Z).
темный(Z):-коричневый(Z).
%Предложение 1
%Предложение 2
%Предложение 3
%Предложение 4
%Предложение 5
%Предложение 6
%Предложение 7.
%Любой черный объект
%является темным
%Предложение 8
?-темный(X), большой(X)
%Любой коричневый объект
%является темным
%Кто одновременно темный
%и большой?
Рассмотрим пример подробнее. Предположим, что есть
несколько роботов и некоторая область (сцена), которую им
необходимо исследовать. В данной области находятся предметы:
коричневый брусок, черный камень и серый ящик. Каждый из роботов,
исследуя данную область, может установить некоторые факты или
отношения, например, установить, что камень имеет черный цвет. В
примере фактами являются предложения с первого по шестое.
Однако из-за особенностей среды (например, меняющаяся
освещенность) и сенсоров робота иногда может возникать некоторая
неопределенность, например в цветовосприятии. Из-за этого возникает
ситуация, когда нельзя однозначно определить цвет поверхности, но
можно оценить ее яркость (например, “темная” или “светлая”).
Безусловно, поменяв угол зрения или подъехав ближе, робот сможет
однозначно определить цвет, при этом сформируется правило, что
данный цвет характеризует данная яркость. В примере правилами
являются предложения семь и восемь.
Закончив исследование сцены, роботы собираются в
статический рой, который реализует процедуру логического вывода. В
примере программа должна ответить на вопрос, “Какой из предметов
сцены является одновременно темным и большим?”.
Конфигурация статического роя, в который соберутся роботы,
зависит от трех параметров:
1.Количество членов роя.
2.Максимальное количество каналов связей у каждого члена
роя. Данный параметр показывает максимальное количество
соседей, которых может иметь данная особь.
3.Максимальный объем памяти каждого члена роя. Данный
параметр показывает максимальное количество фактов и
правил, которые может хранить у себя каждая особь.
В качестве примера, возьмем коллектив из восьми членов роя,
каждый из которых может хранить только одно правило или факт.
Максимальное количество каналов связи сократим до 3х, при этом,
одной из многочисленных конфигураций роя станет конфигурация,
представленная на рис.1.
Рис.1. Конфигурация роя
Здесь кружками показаны элементы статического роя, линии –
каналы связи между ними, а цифрами показаны номера предложений
из примера [1], которые хранят в своей памяти данные элементы.
Отдельно стоит отметить, что увеличение количества хранимых
фактов или правил внутри каждого члена роя повлияет лишь на время
выполнения процедуры логического вывода. При этом увеличение
этого времени станет заметно в том случае, когда поиск предложения,
сопоставимого с целевым утверждением внутри элемента роя станет
сопоставимо со временем передачи целевого утверждения по каналам
связи между соседями.
Количество элементов роя и количество каналов связи
аналогично влияют на время выполнения процедуры логического
вывода: чем больше членов роя, тем дольше будет производиться
данная процедура. Однако их большое количество не влияет на логику
работы всей системы, поэтому пример из восьми агентов удобен для ее
демонстрации.
Наличие большого количества каналов связи в данном случае
потенциально может снизить время выполнения данной процедуры,
однако это произойдет лишь в том случае, если агенты расположены
таким образом, чтобы было задействовано максимальное число
каналов. В случае если агенты расположены неудачно (например, в
линию), это никак не повлияет на время выполнения процедуры
логического вывода.
Отдельно стоит отметить тот факт, что процедура логического
вывода в работе реализована в виде модели, т.е. не затрагиваются такие
робототехнические аспекты как пропускная способность каналов связи
и их надежность (предполагается, что доставляется 100% пакетов).
3. МЕХАНИЗМ ПОИСКА ПО БАЗЕ ДАННЫХ
СТАТИЧЕСКОГО РОЯ
Как уже было сказано выше, фрагментарное хранение
наблюдаемых фактов, правил и т.д. в статическом рое не позволяет
говорить о том, что это является, в общем случае, распределенной
базой данных [3]. Следовательно, необходим некий механизм,
позволяющий интерпретировать базы данных отдельных элементов
роя, как одну базу данных всего статического роя, не загружая при
этом каналы связи. Система, реализующая данный механизм
достаточно подробно описана в [2], здесь будут упомянуты ее общие
принципы:
 Принцип №1..В статическом рое есть инициирующий узел
(ИУ), который, например, был выбран с помощью процедуры,
описанной в [4]. Он формирует или принимает извне список
целевых утверждений, которые необходимо доказать. ИУ сразу
передает первое целевое утверждение своим соседям и начинает
поиск в своей базе данных. Соседи, в свою очередь, производят
те же действия. Узел, который передает целевое утверждение
соседям, считается ими их “предком”, а он их считает своими
“потомками”.
 Принцип №2.Если ИУ находит предложение, чья голова
сопоставима с целевым утверждением, он все равно ждет ответа
от своих соседей. Таким образом, если появится необходимость
произвести возврат, ИУ уже будет иметь другие варианты
предложений.
 Принцип №3.Члены роя не передают целевое утверждение
тому узлу, от которого они его приняли и ждут подтверждение о
принятии целевого утверждения на обработку от своих соседей.
Это позволяет избежать зацикливаний, когда они все время
обрабатывают одно и то же целевое утверждение.
 Принцип №4.В случае если узлу больше некому передать
целевое утверждение, и он не смог найти сопоставимых
предложений в своей базе данных, он передает своему “предку”
сигнал о том, что данная ветка поиска тупиковая. Тот, в свою
очередь, принимая ответы от всех “потомков”, анализирует их, и
если ответа нет, то также передает сигнал о тупиковой ветке
поиска уже своему “предку” и т.д. Это также позволяет избежать
“зависания” поиска в случае если целевое утверждение
невозможно доказать.
Таким образом, можно представить базы данных отдельных
элементов статического роя как общую базу данных всего роя.
Отдельно стоит упомянуть, что в соответствии с принципом №1 в
статическом рое должен быть инициирующий узел (ИУ). В принципе,
не имеет значения, какой из узлов станет ИУ, так как это не влияет
даже на время выполнения процедуры логического вывода. В данном
примере ИУ будет узел под №4.
4. ЛОГИЧЕСКИЙ ВЫВОД
Рассмотрим механизм логического вывода по шагам. При этом
на каждом шаге будем рассматривать и то, как это делает классический
ПРОЛОГ [1], и то, как это происходит в статическом рое,
представленном на рис.1.
 Шаг 1. ПРОЛОГ просматривает все предложения
последовательно от начала к концу и ищет предложение, у
которого голова сопоставима с утверждением.
В статическом рое ИУ отправляет целевое утверждение
темный(X) соседям и начинает поиск сопоставимого
предложения у себя. Соседи производят аналогичные действия
при получении целевого утверждения от своих “предков”. Это
полностью соответствует указанному выше принципу №1. (рис.
2)
(а)
(б)
Рис.2. Отправка целевого утверждения темный(X) соседям.
Графическое представление (а), программное (б)
 Шаг 2. ПРОЛОГ находит предложение №7 темный(Z):черный(Z).
Замена
первого
целевого
утверждения
конкретизированным телом предложения №7 – порождение
нового списка целевых утверждений черный(X), большой(Х).
В соответствии с принципами 1-4 члены статического роя
находят предложения №7 и №8 темный(Z):-черный(Z) и
темный(Z):-коричневый(Z) и возвращают их в ИУ (рис 3).
(а)
(б)
Рис.3. Возврат в ИУ найденных предложений, сопоставимых с
темный(X). Графическое представление (а), программное (б)
В ИУ заменяется целевое утверждение темный(X), большой(Х)
на черный(X), большой(Х) так как оно нашлось раньше. Как
альтернатива сохраняется темный(Z):-коричневый(Z).
 Шаг 3. Так как изменилось целевое утверждение ПРОЛОГ
начинает просмотр программы заново и находит предложение
№5 черный(камень). У предложения нет тела, поэтому список
целей при конкретизации сокращается до большой(камень).
В статическом рое ИУ также заново начинает поиск (рис. 2) с
целью черный(Z) и тоже находит предложение №5
черный(камень).
Происходит
конкретизация
и
цель
сокращается до большой(камень). Результат возвращается в
ИУ (рис. 4).
(а)
(б)
Рис.4. Возврат в ИУ целевого утверждения большой(камень).
Графическое представление (а), программное (б)
 Шаг 4. ПРОЛОГ не находит цели большой(камень) и
отменяет конкретизацию большой(камень). Список целей
снова черный(X), большой(Х) и просмотр происходит с
предложения №5. Ни одно предложение не было найдено,
поэтому происходит возврат к шагу 2 и продолжение просмотра
программы ниже предложения №7. Найдено предложение №8
темный(Z):-коричневый(Z). Происходит замена целевого
выражения на коричневый(X), большой(Х).
В статическом рое также не найдено цели большой(камень),
поэтому ИУ берет уже найденную альтернативу темный(Z):коричневый(Z)
и
заменяет
целевое
выражение
коричневый(X), большой(Х). Дальнейшие шаги логического
вывода в статическом рое полностью аналогичны с
классическим логическим выводом ПРОЛОГа.
 Шаг 5. Просмотр программы/базы данных роя для
обнаружения предложения, сопоставимого с коричневый(X).
Найдено предложение коричневый(брусок). Список целей
уменьшается до большой(брусок).
 Шаг 6. Просмотр программы/базы данных роя и обнаружение
большой(брусок). Результат возвращается в ИУ, список целей
становится пустым, что указывает на успешное завершение
вывода.
5. ЗАКЛЮЧЕНИЕ
Таким образом, решается одна из задач групповой
робототехники, а именно задача логического вывода, в структурах,
называемых статическими роям, которые характеризуются, в том
числе, неопределенностью их внутренней структуры.
Особенностью предложенного механизма является возможность
реализации логического вывода в условиях каналов связи с низкой
пропускной способностью между членами роя, которые при этом
остаются практически свободными и могут использоваться для
решения других задач.
Кроме того, демонстрация его работы
позволяет говорить о появлении, в некотором роде, эмерджентных
свойств: отдельные элементы роя не могут произвести процедуру
логического вывода, не имея полного набора правил и фактов у себя в
базе данных.
К недостаткам предложенного механизма стоит отнести его
относительно
невысокую
надежность,
которая
вытекает
исключительно из-за физической организацией каналов связи и их
связи при достаточно большом количестве членов роя.
Первый недостаток характеризуется исключительно выбранной
физической организацией каналов связи (например, передача по ИКканалу). Действительно, может возникнуть ситуация, когда один из
элементов роя неожиданно перестал отвечать на запросы всего роя и
его база данных становится недоступна для остальных его членов.
Решать данную проблему имеет смысл, используя дублирование
фактов и правил, и, использованием, например, нечеткого вывода.
Также рассматривается возможность применять для ее устранения
недоопределенные модели.
Простой возникает при большом количестве элементов
статического роя и характерен тем, что следующее целевое
утверждение не может быть обработано, пока не придет ответ от всех
элементов роя на предыдущее целевое утверждение, а никаких других
задач рой в данный момент не решает. Частично, данная проблема
решается путем использования рекурсивного логического вывода. Под
этим термином, применительно к статическому рою, автором
подразумевается возможность не возвращать ИУ найденное целевое
утверждение, в случае если оно является правилом, а инициировать
новый поиск, начиная с того узла где это правило было найдено, т.е.
создавать новый ИУ для этого целевого утверждения.
Временная сложность в условиях применения в статическом рое
будет зависеть исключительно от глубины поиска l, коэффициента
связи k, средней величины базы данных элемента роя N, количества
конъюнктов M, которые необходимо доказать и будет равна
O( M * (l * k  N )) . Действительно, задачу передачи целевого
выражения между членами роя можно свести к задачи поиска на графе
с коэффициентом ветвления b=1 и глубиной поиска l, временная
сложность которого O(l). Коэффициент k есть отношение времени
передачи по ИК-каналу к времени передачи с помощью других
физических реализаций (Wi-Fi, BlueTooth и др.). При моделировании
было выбрано k=1. Кроме того, иногда возникает ситуация когда время
на передачу целевого выражения до самого дальнего периферийного
узла O(l*k) будет меньше, чем поиск этого выражения внутри базы
данных члена роя, которое равно O(N), поэтому при расчете временной
сложности эти две величины должны быть учтены. Количество
конъюнктов M показывает размерность входной задачи: сколько раз
алгоритм должен выполнить логический вывод.
Пространственная сложность возникает при переборе базы
данных элементов роя, организованных как массив, и равна O(N ) .
Отдельно
стоит
упомянуть
параллельный
ПРОЛОГ.
Действительно, статический рой в своей основе это группа
вычислительных блоков, на которых теоретически можно было бы
осуществлять параллельный вывод. Однако стратегии мелкозернистого
распараллеливания приводят к большим затратам времени на
управление процессами вывода и обмен данными [5] между
элементами роя, что, в условиях каналов связи с низкой пропускной
способностью, является критичным. А существующие стратегии
крупнозернистого распараллеливания нереализуемы на данный момент
по причине того, что неизвестна структура роя, то есть невозможно
выделить вычислительный кластер.
Литература
1. Братко И. Программирование на языке Пролог для искусственного
интеллекта. - М.: Изд-во “МИР”, 1990.
2. Воробьев В.В. Поиск в статических роях // Материалы V Международной
научно-технической конференции “Открытые семантические технологии
проектирования интеллектуальных систем” (19-21 февраля 2015) Сб.
научных трудов. - Минск: БГУИР, 2015. - С. 489-494.
3. Карпов В.Э. Управление в статических роях. Постановка задачи // VII-я
Международная научно-практическая конференция "Интегрированные
модели и мягкие вычисления в искусственном интеллекте" (20-22 мая
2013) Сб. научных трудов. - В 3-т. - М: Физматлит, 2013. - Т.2. - С.730-739.
4. Карпов В.Э. Процедура голосования в однородных коллективах роботов //
XIV национальная конференция по искусственному интеллекту с
международным участием КИИ-2014 (24-27 октября 2014 г., Казань,
Россия): Труды конференции. В 3-т. - Казань: Изд-во РИЦ «Школа», 2014. Т.2. - С.159-167.
5. Кутепов В.П., Кумачев М.М. Параллельный логический вывод на
компьютерных системах // Искусственный интеллект и принятие решений.
– 2012. – №2. – С. 63-76.
6. Dorigo M., Floreano D., Gambardella L.M., Mondada F. et al. Swarmanoid: A
Novel Concept for the Study of Heterogeneous Robotic Swarms // IEEE
Robotics & Automation Magazine. - 2013. -Vol. 20, Issue 4. - P 60-71.
7. Konolige K., Fox D., Ortiz C. et al. Centibots: Centibots: Very Large Scale
Distributed Robotic Teams // Springer Tracts in Advanced Robotics. - 2006. Vol. 21. - P 131-140.
8. Kornienko S., Kornienko O., Levi P. Swarm Embodiment – A New Way for
Deriving Emergent Behavior in Artificial Swarms // Autonome Mobile Systeme
2005. - Springer Berlin Heidelberg, 2006. - P.25-32.
9. McLurkin J., Yamins D. Dynamic Task Assignment in Robot Swarms //
Robotics: Science and Systems. - Cambridge, MA: MIT Press, 2005. - Pp. 129136.
Download