"ЖУРНАЛ РАДИОЭЛЕКТРОНИКИ" ISSN 1684-1719, N 7, 2016

оглавление              текст:   html,   pdf   

УДК 519.682.5

О проблеме введения средств распределённого многоагентного программирования в логический язык со строгой типизацией

 

А. А. Морозов, О. С. Сушкова, А. Ф. Полупанов

Институт радиотехники и электроники им В.А. Котельникова РАН

 

Статья поступила в редакцию 5 июля 2016 г.

 

Аннотация. Рассмотрена проблема введения средств многоагентного программирования в логический язык со строгой (сильной) типизацией. Для обеспечения корректного взаимодействия агентов предложен подход на основе комбинированной системы типов, идея которого заключается в том, что принцип статической проверки типов в логическом языке смягчается, а именно, проверка корректности использования объекта, полученного из другой программы (агента), откладывается до тех пор, пока он не понадобится для удалённого вызова предикатов. Во всех остальных случаях осуществляется статическая проверка типов. На основе предложенного подхода реализовано расширение объектно-ориентированного логического языка Акторный Пролог, поддерживающее распределённое программирование. Конечной целью создания этого расширения языка является разработка средств распределённого логического программирования для многоагентной обработки видеоинформации и распределённого интеллектуального видеонаблюдения.

Ключевые слова: распределённое логическое программирование, агентное логическое программирование, Акторный Пролог, строгая типизация, комбинированная система типов, номинативная система типов, структурная система типов, статическая проверка типов, динамическая проверка типов, удалённый вызов предиката, объектно-ориентированное логическое программирование, децентрализованное логическое программирование, параллельное логическое программирование, логический агент, трансляция Пролога в Джаву, интеллектуальное видеонаблюдение.

Abstract. The paper addresses the problem of the development of agent logic programming means. The Actor Prolog object-oriented logic language extension that supports distributed logic programming and remote predicate calls is described. This is intended for the multi-agent visual surveillance system implementation, that is, for the development of logic programs (agents) that acquire, analyze the video stream semantics in real time, and communicate with each other to facilitate the analysis and share obtained information / conclusions. The Actor Prolog language has a strong type system that is an important feature of the language and it is necessary for the fast and reliable executable code generation. Thus, the contradiction between the language strong type system and the idea of the software agents' independency was a problem to be resolved in the course of adapting the Actor Prolog language to the multi-agent paradigm. The problem of incorporation of distributed multi-agent programming means into the strongly typed logic language is considered. The approach to the multi-agent interaction based on the dynamic and static typing fusion is proposed. The language distinguishes instances of classes (the own worlds) created in a logic program and class instances created in other agents (the foreign worlds). The static type-checking and standard features of a nominative type system are implemented for all the own worlds like in the conventional Actor Prolog. At the same time, the dynamic type-checking and elements of a structural type system are implemented for all the foreign worlds. The program separates clearly the own and foreign worlds including the own worlds that were transmitted to other agents and then returned home. This mechanism combines the advantages of the static type-checking for the high-performance code generation with the flexibility of the dynamic type-checking that is necessary for the multi-agent systems programming.

Keywords: distributed logic programming, agent logic programming, Actor Prolog, strong typing, combined type system, nominative type system, structural type system, static type-checking, dynamic type-checking, remote predicate call, object-oriented logic programming, decentralized logic programming, concurrent logic programming, logical agent, Prolog to Java translation, intelligent visual surveillance.