[lecture notes in computer science] progress in artificial intelligence volume 1323 || parla: a...

9
Parla: A Cooperation Language for Cognitive Multi-agent Systems A. C. P. L. da Costa G. Bittencourt Laborat6rio de Controle e MicroinformAtica Departamento de Engenharia El~trica Universidade Federal de Santa Catarina 88040-900 - Florian6polis - SC - Brazil E-mail: { loureiro [ gb }~lcmi.ufsc.br Abstract. One of the main goals of Distributed Artificial Intelligence is to devise methods to join a community of Computational Agents into a Multi-Agent System, where these agents can cooperate to reach common goals. Cooperation in a Cognitive Agent community is usually supported by an Agent Communication Language (ACL) which allows the agents to exchange knowledge and information through a computer network. In this paper, we propose Parla, a high level agent communication language to cognitive multi-agent systems. This language is based on a standard message format, that contains the necessary information for the message integrity, network security and groupware services to be implemented. These services can either be performed by the lower layers of the system or be included in the high level agent communication support. This mes- sage format has a specific slot to store the cooperation language expres- sions. These expressions consist of a primitive name and an argument, which should be a valid expression of a knowledge representation formal- ism supported by the cognitive agent. The following aspects of the Parla language are presented: language layers, agent communication support requirements, message format, primitive set and primitive semantics. To demonstrate the language use, a cooperation example among four agents is presented. In this example, each agent has its own specific domain of knowledge but, because of global interdependences, cooperation is nec- essary. This example refers to the recomposition of part of the South Brazil's electrical network. Content Areas: Agent-Oriented Programming, Distributed AI, Expert Systems, Planning and Scheduling.

Upload: amilcar

Post on 09-Dec-2016

216 views

Category:

Documents


3 download

TRANSCRIPT

Parla: A Cooperation Language for Cognitive Multi-agent Systems

A. C. P. L. da C o s t a G. B i t t e n c o u r t

Laborat6rio de Controle e MicroinformAtica Departamento de Engenharia El~trica

Universidade Federal de Santa Catar ina 88040-900 - Florian6polis - SC - Brazil E-mail: { loureiro [ gb }~lcmi.ufsc.br

A b s t r a c t . One of the main goals of Distributed Artificial Intelligence is to devise methods to join a community of Computational Agents into a Multi-Agent System, where these agents can cooperate to reach common goals. Cooperation in a Cognitive Agent community is usually suppor ted by an Agent Communication Language (ACL) which allows the agents to exchange knowledge and information through a computer network. In this paper, we propose Parla, a high level agent communication language to cognitive multi-agent systems. This language is based on a s tandard message format, that contains the necessary information for the message integrity, network security and groupware services to be implemented. These services can either be performed by the lower layers of the system or be included in the high level agent communication support . This mes- sage format has a specific slot to store the cooperation language expres- sions. These expressions consist of a primitive name and an argument, which should be a valid expression of a knowledge representation formal- ism supported by the cognitive agent. The following aspects of the Par la language are presented: language layers, agent communication suppor t requirements, message format, primitive set and primitive semantics. To demonstrate the language use, a cooperation example among four agents is presented. In this example, each agent has its own specific domain of knowledge but, because of global interdependences, cooperation is nec- essary. This example refers to the recomposition of par t of the South Brazil 's electrical network.

Content Areas: Agent-Oriented Programming, Dis t r ibuted AI, Exper t Systems, Planning and Scheduling.

208

1 Introduct ion

The problem that has originally motivated our research in cognitive multi-agent systems [10] is the recomposition of an electricity transmission network after a blackout has affected part of the network [4]. This task is performed usually by sub-station operators that should follow a pre-determined procedure according to the specific situation of the sub-station in the network. Each of these proce- dures can be independently codified into an expert system. For practical reasons, these procedures minimize the communication between operators, in detriment of optimal operation of the network. In this kind of problem, each electricity sub-station has its own domain of knowledge. Indeed, given sub-station A, it is not important if it is receiving the necessary electrical energy from unite C or D, the point is whether the received electrical energy is sufficient or not. In the case it is not, the preoccupation is to find out some other station to supply the rest of the necessary electrical energy in this moment. On the other hand, there are global priorities and restrictions that depend on external parameters such as the season, day of the week and hour of the day. Then in our case the question is how Cognitive Agents, with a local domain of knowledge but a global interde- pendence, should interact and interoperate to perform an intelligent behavior.

Interaction and interoperation among Cognitive Agents to reach common goals require more than a common language understood by these agents. Ob- jectively, the Cooperative behavior in an Agent Community effectively requires the following three elements: a common language; a common understanding of the knowledge and/or information exchanged; and, finally, the ability to ex- change whatever is included in the two last elements [6]. In Cognitive Agents Communities, the two last elements refer directly to the knowledge base and knowledge communication mechanisms present in each Agent. In this case, a common knowledge representation formalism is paramount to allow these ele- ments to be effective. The first element, a common language, usually consists in a primitive set, known by all Agents in the community, that informs what is being exchanged and what should be done with this knowledge or information.

Some ACL have already been developed, e.g., KQML [6], a language that provides a message format and message handling protocol supporting run-time knowledge sharing and interaction among agents. Exist yet another ACL, Co- ordination Language COOL [1], based on KQML, that includes describing coor- dinator protocol describing. But KQML requires special agent to provide some functions as: association of physical address with symbolic names; registration of databases and/or services offered and sought by agents; and communication services. Beside this a three layers structure is adopted in this language, content layer, message layer and communication layer. The content layer bears the ac- tual content of the message, the knowledge or informations. The communication level encodes a set of message which describe the lower level communication parameters (e.g., sender, recipient and communication identifier). The message layer determines the kind of interaction the agents perform. Then another mes- sage format and layer attributions is proposed in Parla Language allowing that the special agent features, required by KQML, should be reduced and this new

209

requirement should take part of Agent Communication Support or to use a dis- t r ibuted programming environment, like ISIS toolkit [2], to play this role.

This paper presents an ACL called Parla. This language is part of a pub- lic domain environment for the development of Cognitive Multi-Agent Systems, called Expert-Coop [3] [5]. This environment has been used to implement a Cog- nitive MAS to recompose an electricity transmission network after a blackout has affected part of network. The paper presents the syntax and semantics of the language primitives, the agent communication support requirements and the language layer. Finally, a cooperation example among four agents is presented. In this example, each agent has its own specific domain of knowledge but, because of global interdependences, cooperation is necessary. This example refers to the recomposition a part , called 'Area 1, of the South Brazil's electrical network.

2 C o o p e r a t i o n L a n g u a g e

2.1 M e s s a g e F o r m a t

The communication process in the Agent Community is performed by message exchange. All these messages are built according to a standard message format.

(MESSAGE (TO ...)(FROM ...)(TIME-STAMP ...) (ROUND ...)(BODY ...) (GRADE ...)(PRIORITY ...)(ALPHA ...))

This format consists in a message object with the following slots:

- f r o m - the sender agent name. - to - the recipient agent name or group name. - t i m e - s t a m p - the message time stamp. - b o d y - Any valid Parla primitives followed by one knowledge Representation

formalism. - r o u n d - contract competition identifiers, when using Contract Competit ion

as cooperation strategy. - g r a d e - a grade, or one of uncertainty representation, to be associated with

a given proposal during Contract Competition. - p r i o r i t y - the priority level of the contract competition. - a l p h a - The Alpha slot is used to associate an alpha cut to a contract

competition. Once this alpha cut is associated to a contract competition, the winner proposal must have been a Grade higher than the respective alpha value.

Among these slots, to , f r o m , t i m e - s t a m p and b o d y must be present in all messages and the others - g r ade , r o u n d , a l p h a and p r i o r i t y - are optional. The syntax of the Parla Messages is the following:

210

Message Layer

Communication Layer

Fig. 1. Message Layer Structure

2.2 Language Layer

The Parla Language presents two layers (figure 1) : the message layer and the communication layer, like most of the ACL's. The message layer holds a language primitive (e.g., request, announce, confirm, etc) followed by one argument that should be one of knowledge representation formalism supported by the MAS environment. In Expert-Coop's case, first-order logic, frames or semantic network formalisms are supported. These primitives inform the Agent what should be done with the knowledge passed as an argument. The message layer holds the logical address of the message target. This address can be an agent's name point- to-point communication, an agent's group name for a multicast, or all to make a broadcast. Then from the message layer view point, that is same Agent view point. The Parla language supports all the ACL communication types: broadcast, multicast and point-to-point. Three other messages slots are held by the message layer: Round (Rd) that consists in the Contract Competition identification, Grade (Gd), a numerical or fuzzy, like in the Expert-Coop [5] environment, evaluation that is associated to a Contract Competition Proposal and Alpha an alpha cut [9] associated to a Contract Competition. The communication layer encodes some message features which describe the low level communications parameter, such as message's sender and message time stamp.

2.3 Agent Communication Support Requirements

There are some requirements on the Agent Communication Support, to ensure the following assumptions: (i) Total Event Ordering to guarantee that messages will be handle according to the "first in, first out" order [8]; Realiable Broadcast [7], to ensure that messages will be received by all active agents; and a System Fault Tolerance Algorithm to keep an active agents list in all agents. These re- quirements should be implemented in the Agent Communication Support, such as in Expert-Coop. On the other hand this requirements could be guaranteed using a distributed programming environment, like the ISIS Toolkit [2]. When us- ing a distributed programming environment, the environment primitives should be invoked by the Agent Communication Support.

211

2 . 4 P r i m i t i v e s

The Parla Language is composed by the following primitive set:

{ ACCEPT, ANNOUNCE, CONFIRM, REFUSE, INFORM REQUEST, REPLY, RECALL, SUBSCRIBE, UNSUBSCRIBE}

The expressions of the language consists in one of these primitives, followed by an argument. The argument should be a knowledge or information fragment represented in one of knowledge representation formalisms supported by the Agent Community. Each primitive treats its argument according to its function.

- A N N O U N C E - The Announce primitive is used to communicate to all active Agents that a Contract Competition was opened. The Contract Com- petit ion's Object is passed as argument and it should be represented in one of knowledge representation formalism supported by the Agent Community. This primitive automatically requires that value ALL is a t t r ibuted to the TO slot and the current time stamp to the ROUND slot.

- A C C E P T - the Accept primitive is used by the Agents to inform the Agent tha t has broadcasted a given Announce, that the announced Contract Com- petit ion Object may be accepted. When an Agent uses the A C C E P T primi- tive, he should at tr ibute to the ROUND slot the value received in the respec- tive ANNOUNCE message. An evaluation grade or a fuzzy value, should be associated to the GRADE message slot. Finally, the appropriate knowledge or information fragment about the Contract Competition Object must be passed as argument.

- C O N F I R M - the Confirm primitive is used, by the Agent who has opened a Contract Competition, to inform another Agent that it wins the Con- t ract Competition identified be ROUND slot value. As in ACCEPT primitive knowledge or information about Contract Competition Object must have be passed as argument.

- R E F U S E - the Refuse primitive is used by the Agents to inform the Agent tha t has broadcasted a given Announce, tha t the announced Contract Com- petit ion Object was not accept. When an Agent uses the Refuse primitive, he must at tr ibute to the ROUND slot the vMue received in the respective ANNOUNCE message. In this case, a GRADE slot value is not necessary. A knowledge or information fragment about the Contract Competit ion Object must be passed as argument.

- I N F O R M - The Inform primitive is used to communicate a fact, informa- tion or knowledge. This primitive do not require an answer. The respective knowledge or information fragment must be passed as argument.

- R E Q U E S T - Request primitive is used to solicit an information or knowl- edge from another agent. The solicited external information or knowledge, must be passed as argument.

- R E P L Y - Reply primitive is used to return an information or knowledge, solicited by another agent. The information or knowledge must be passed as argument.

212

- R E C A L L - the Recall primitive is used by the Agent, who has opened a Contract Competition, to inform another Agent that it lost the Contract Competition identified be ROUND slot value. As in the Recall primitive as knowledge or information fragment about the Contract Competition Object must be passed as argument.

- S U B S C R I B E - the Subscribe primitive is used by an external Agent to ask one of the active Agents of the Community to take part of the Community as a member. Two important informations must be passed in the knowledge or information fragment: the new Agent's name and its host name.

- U N S U B S C R I B E - the Unsubscribe primitive is used by an Agent to ask another active Agent of the Community to leave the Community. In this case, only the agent's name is necessary to be passed in the knowledge or information fragment.

3 E x a m p l e

To illustrate the Parla Language use as a ACL in a Cognitive Multi-Agent Com- munity, an cooperation example among four Agents is presented. In this ex- ample, each agent has a specific domain of knowledge, but they have a global interdependence that makes cooperation necessary. This example refers to the recomposition of part of the South Brazil's electrical network, after a blackout has affected this area.

Part of the, so called, Area 1 electrical network is represented in figure 2. Three p lan t s - Salto Santiago (UHSS), Segredo (SGD) and Governador Bento Munhoz (GBM) - and two substations - Areia (ARE) and Ivapora (IVP) - axe represented. All these plants have four electrical generators. According to the fluent recomposition process, to send electrical energy from UHSS to IVP the plant operator must be sure that at least four of twelve electrical generators have been synchronized, that the transmission lines LT-SGD, LT-ITA, LT-ARE and LT-ARE-1 have been turned on and that the connection between LT-ARE and LT-ARE-1 has been made by ARE.

The proposed recomposition Cognitive Multi-Agent System consists in the allocation of an agent in Ivapora IVP, and one in each of the following plants: Segredo SGD, Governador Bento Munhoz GBM and Salto Santiago UHSS.

Once the request to recompose the IVP transmission line is made by the IVP agent, the UHSS agent requests information from GBM agent and SGD agent about the state of their electrical generators. If the synchronized electrical generators number, in the agent community, is not enough (e.g., UHSS 1, SGD 1 and GBM 1) a contract competition is opened by UHSS agent and, once a winner has been chosed to supply the necessary number of synchronized electrical generators, they are turned on, then the IVP agent request is replayed and the IVP transmission line is recomposed. The complete sequence of messages exchanged during one of the situations above described is shown in table 1.

213

[ Message Body (REQUEST ((logic (recompose It uhss-ivp)))) (REQUEST ((logic (synchronized-generators x y)))) (REPLY ((logic (synchronized-generators sgd 0)))) (REPLY ((logic (synchronized-generators gbm 0)))) (ANNOUNCE ((logic (synchronize-generator x 2)))) (ACCEPT ((logic (synchronize-generator gbm 2)))) (ACCEPT ((logic (synchronize-generator sgd 2)))) (ACCEPT ((logic (synchronize-generator uhss 2)))) (CONFIRM ((logic (synchronize-generator gbm 2)))) (RECALL ((logic (synchronize-generator x 2)))) (REQUEST ((logic (synchronized-generators x y)))) (REPLY ((logic (synchronized-generators sgd 0)))) (REPLY ((logic (synchronized-generators gbm 2)))) (ANNOUNCE ((logic (synchronize-generator x 2)))) (REFUSE ((logic (synchronize-generator gbm 2)))) (REFUSE ((logic (synchronize-generator sgd 2)))) (REFUSE ((logic (synchronize-generator uhss 2)))) (RECALL ((logic (synchronize-generator x 2)))) (ANNOUNCE ((logic (synchronize-generator x 1)))) (ACCEPT ((logic (synchronize-generator gbm 1)))) (ACCEPT ((logic (synchronize-generator sgd 1)))) (ACCEPT ((logic (synchronize-generator uhss 1)))) (CONFIRM ((logic (synchronize-generator uhss 1)))) (RECALL ((logic (synchronize-generator x 1)))) (REQUEST ((logic (synchronized-generators x y)))) (REPLY ((logic (synchronized-generators sgd 0)))) (REPLY ((logic (synchronized-generators gbm 2)))) (ANNOUNCE ((logic (synchronize-generator x 1)))) (ACCEPT ((logic (synchronize-generator gbm 1)))) (ACCEPT ((logic (synchronize-generator sgd 1)))) (ACCEPT ((logic (synchronize-generator uhss 1)))) (CONFIRM ((logic (synchronize-generator uhss 1)))) (RECALL ((logic (synchronize-generator x 1)))) (REQUEST ((logic (synchronized-generators x y)))) (REPLY ((logic (synchronized-generators sgd 1)))) (REPLY ((logic (synchronized-generators gbm 2)))) (REPLY ((logic (recomposed ! t uhss-ivp))))

IVP UHSS SGD GBM UHSS GBM SGD

UHSS UHSS UHSS UHSS SGD GBM UHSS[ GBM SGD UHSS UHSS UHSS GBM SGD UHSS UHSS UHSS UHSS SGD GBM UHSS GBM SGD UHSS UHSS UHSS UHSS SGD GBM UHSS

To UHSS 1 PLAN 8 UHSS 12 UHSS 15 PLAN 26 28 UHSS 26 1.0 35 UHSS 26 0.7 37 UHSS 26 0.8 42 GBM 26 0.8 44

LOOSERS 26 0.6 48 PLAN 59 UHSS 62 UHSS 65 PLAN 72 74 UHSS 72 79 UHSS 72 82 UHSS 72 84 PLAN 72 0.6 89 PLAN 96 98 UHSS 96 0.6 103 UHSS 96 0.6 106 UHSS 96 [0.8 108 UHSS 96 0.8 110

LOOSERS 96 0.6 114 PLAN 123 UHSS 126 UHSS 129 PLAN 137 139 UHSS 137 0.6 143 UHSS 137 0.8 147 UHSS 137 0.6 149 SGD 137 0.8 151

LOOSERS 137 0.6 155 PLAN 163 UHSS 166 UHSS 169 IVP 174

Table 1. UHSS Message Log

214

LT-ITA [ UHSS DDDD[ I LT-SGD

LT-ARE-1

LT-ARE22

ARE

LT-IVP IVP

Fig. 2. Fragment of the Electrical Network ~rea i

, ,

4 C o n c l u s i o n a n d F u t u r e W o r k s

The Parla is presented here as an ACL to Cognitive Agents Communities. The initial primitive set has been developed to an Cognitive Multi-Agent System that uses Contract Competition as cooperation strategy. The language primitive set should be esily encreased to cover other situations. We intend to include new primitives in Parla Language to make it able to cover another agents cooperation strategies. The main advantage of Parla Language is that network services and group services should be implemented either in Agent Communication Support or use a distributed environment programming to play this role. Parla Language is part of Expert-Coop, a public domain environment to Cognitive Multi-Agent System implementation using Contract Competition as agent cooperation strat- egy. This environment has been used to implement a Cognitive MAS to solve electricity network recomposition problem, like the presented example.

A c k n o w l e d g m e n t s

The authors are grateful to all those that helped in the development of this paper, in particular the LCMI team, the Eletrosul staff and the anonymous referees. The second author is partially supported by Conselho Nacional de Desenvolvimento Cientifico e TecnolSgico (CNPq), grant No. 352017/92-9.

215

References

1. M. Barbuceanu and M. S. Fox. Cool:a language for describimg coordination in multi agent. EIL working paper, pages 1-15, 1994.

2. K. Birman. The process group approach to realiable distributed computing. Com- munications of the ACM, 36(12):37-53, 1993.

3. G. Bittencourt and A.C.P.L. Costa. Expert coop: An environment for cognitive multi-agent system. Accepted in IFAC'97, March 1997.

4. D. Cockburn and N. R. Jennings. Archon: A distributed artificial intelligence sys- tem for industrial applications. Foundations of Distributed Artificial Intelligence, pages 319-344, 1996.

5. A.C.P.L. Costa. Expet Coop: Um Ambiente para Desenvolvimento de Sistemas Multi-Agente Cognitivos. Master Thesis, Universidade Federal de Santa Catarina, Laborat6rio de Controle e Micro Inform~tica, Brazil, 1997. T. Finin, Y. Labrou, and J. Mayfield. KQML as an Agent Communication Lan- guage. MIT Press, Cambridge, 1995. P. Jalote. Fault Tolerance in Distributed System. PTR Prentice Hall, Englewood Cliffs, New Jersey, 1994. L. Lamport. Time, clocks, and ordering of events. Communications of ACM, 21(7):558-565, July 1978. S. Sandri, D. Dubois, and H. Prade. Elicitation, pooling and assessement of expert judments using possibility theory. IEEE Transactions on Fuzzy Systems, 1995. J.S. Sichman, Y. DEMAZEAU, and O. BOISSER. When can knowledge-based systems be called agents? Anais do IX Seminario Brasileiro de Inteligencia Arti- ficial, pages 172-185, Outubro 1992. ISSN 0104-6500.

6.

7.

8.

9.

10.