Symbolic Negotiation Software

Welcome to the homepage of Symbolic Negotiation!

Introduction

The version of the software implements agents who broadcast their offers through a mediator agent. Anyway, we are working currently on a P2P implementation, which should provide more flexibility and (relatively) higher efficiency. Papers describing theoretical foundations of symbolic agent negotiation could be downloaded here.

Downloading and running the system

For running the system you need to download 3 software packages: JADE for the agent system infrastructure, RAPS for symbolic reasoning and the implementation of symbolically negotiating agents developed by Peep Küngas. In order to initiate problem solving you should develop agent specifications and run particular agents through JADE. While running the system you should invoke one mediator agent (symbolic_agents.MediatorAgent) and a number of negotiator agents (symbolic_agents.NegotiatorAgent). Each negotiator agent has its specification file name as an input.

Sample agent specifications are the following:
While writing your specification, please bear in mind that the Goal() statement has to be the last statement of a specification. Otherwise you end up with an exception.

For running a system with 2 negotiator agents under Linux the following script would do well (you probably have to modify the locations of the libraries used):

#!/bin/bash
export CLASSPATH=$HOME/JADE/jade/lib/jade.jar:$HOME/JADE/jade/lib/jadeTools.jar:$HOME/JADE/jade/lib/Base64.jar:$HOME/JADE/jade/lib/iiop.jar:$HOME/symbolic.jar:$HOME/RAPS.jar

java jade.Boot med_1:symbolic_agents.MediatorAgent neg_1:symbolic_agents.NegotiatorAgent\(/home/peep/JADE/neg_1.ll\) neg_2:symbolic_agents.NegotiatorAgent\(/home/peep/JADE/neg\_2.ll\)

For running the system under Windows the following file could be modified: negotiation.bat.

A possible system output:

.......

findSchedule>>neg_1@gruva.idi.ntnu.no:1099/JADE;exchange([Site], [Complete])>>neg_2@gruva.idi.ntnu.no:1099/JADE;getPassword>>neg_1@gruva.idi.ntnu.no:1099/JADE;login>>neg_2@gruva.idi.ntnu.no:1099/JADE;bookFlight>>neg_2@gruva.idi.ntnu.no:1099/JADE;
This plan solves the problems of the following coalition:
neg_1@gruva.idi.ntnu.no:1099/JADE
neg_2@gruva.idi.ntnu.no:1099/JADE

......

exchange([Site], [Complete])>>neg_2@gruva.idi.ntnu.no:1099/JADE;getPassword>>neg_1@gruva.idi.ntnu.no:1099/JADE;login>>neg_2@gruva.idi.ntnu.no:1099/JADE;findSchedule>>neg_1@gruva.idi.ntnu.no:1099/JADE;bookFlight>>neg_2@gruva.idi.ntnu.no:1099/JADE;
This plan solves the problems of the following coalition:
neg_1@gruva.idi.ntnu.no:1099/JADE
neg_2@gruva.idi.ntnu.no:1099/JADE

......

exchange([Site], [Complete])>>neg_2@gruva.idi.ntnu.no:1099/JADE;getPassword>>neg_1@gruva.idi.ntnu.no:1099/JADE;findSchedule>>neg_1@gruva.idi.ntnu.no:1099/JADE;login>>neg_2@gruva.idi.ntnu.no:1099/JADE;bookFlight>>neg_2@gruva.idi.ntnu.no:1099/JADE;
This plan solves the problems of the following coalition:
neg_1@gruva.idi.ntnu.no:1099/JADE
neg_2@gruva.idi.ntnu.no:1099/JADE

.......

The output should be interpreted as follows:

3 plans were found for solving the problems of agents. The first plan is a sequence <findSchedule, getPassword, login, bookFlight>, whereas after executing findSchedule, agents neg_1 and neg_2 exchange literals (units carrying information) Complete and Site. Notation service>>agent denotes that service service is provided by agent agent.

All plans are shared by agents neg1 and neg2, meaning that execution of any of those plans would solve the problems of both agents. It is now up to the agents to decide, which plan they should executed.

PS. You may get many identical solutions for solving agents' problems. This is because that many agents start symbolic negotiation at the same time and during symbolic negotiation the offers are broadcasted to all agents. This naturally leads to redundancy in search, since the same problem would be solved by many agents concurrently.

More symbolic negotiation examples

The following symbolic negotiation problems and agent specification were proposed and solved by the students of course TDT4280 at NTNU during Spring semester, 2004. Most of the reports and agent specifications are written in English, while some are in Norwegian. If I ever should get more time, I shall translate those in Norwegian to English, since they describe quite interesting/funny problems;) The negotiation problem specifications are arranged in the following way: "spec" directory includes the specification files and "report" directory includes the description of a particular symbolic negotiation domain.

No.
Domain size
Symbolic negotiation problem domain + report
1.
10 agents
Real estate development, maintenance and brokering
2.
4 agents
Anti-virus development
3.
4 agents
Seaworld
4.
10 agents
Modelling human society
5.
6 agents
Saturday evening/night
6.
4 agents
Contracting musicians for starting a band
7.
4 agents
Restaurant
8.
10 agents
Family
9.
10 agents
Simulation of plots from Twin Peaks
10.
4 agents
Gasoline station and pizzeria
11.
5 agents
Real estate
12.
12 agents
Collaborative document translation
13.
4 agents
Travelling
14.
4 agents
Health care
15.
10 agents
Airport
16.
4 agents
Food trade
17.
4 agents
Internet music business
18.
4 agents
Route planning


Further inquiries

For further questions and bug reports contact peep at idi ntnu no.