ANAC 2015: Automated Negotiation
January 22, 2015

1Introduction

The negotiation agent will follow “Stacked Alternating Offers Protocol for Multi-Lateral Negotiation(SAOPMN)”. According to this protocol, the first agent will starts the negotiation with an offer that isobserved by all others immediately. When an offer is made, the next party in the line can take the following
actions:• Make a counter offer (thus rejecting and overriding the previous offer)• Accept the offer• Walk away (e.g. ending the negotiation without any agreement)
In this competition, all utility functions are additive. For example, if there are four issues to negotiate
about, the utility function can be computed by a weighted sum of the values associated with each of theseissues. So, let bid = hi1 , i2 , i3 , i4 i be a particular bid. Then the utility u(bid) = u(i1 , i2 , i3 , i4 ) (given weights
w1 , w2 , w3 , w4 ) can be calculated by: u(i1 , i2 , i3 , i4 ) = w1 · u(i1 ) + w2 · u(i2 ) + w3 · u(i3 ) + w4 · u(i4 )The outcome space of a negotiation, i.e. all possible bids, can be plotted on a graph which indicates theutility of all agents on the y axes and the round numbers on the x axes. An example is provided in Figure 1.

Figure 1: Trace of a three party negotiation
What sets the negotiations considered in this assignment apart from other negotiations is the fact that allagents have exactly the same deadline for achieving a deal and all agents "know" this.
1

2

Setting up the environment

Download the latest version of eclipse from https://eclipse.org/downloads/. (If you are unfamiliar withthe different flavors of Eclipse, use "Eclipse IDE for Java Developers", which will contain what we need for
Genius development).
To run Genius, you need to download the latest version, 5.2.0 from the following link
http://ii.tudelft.nl/genius/?q=article/releases.
For a step-by-step guide on how to set up the project, please refer to the appendix at Section 3.1.
Try to run the existing agent against itself to get an idea of what the program can do for you. For
this practical assignment we will focus on the options Multi-Party Negotiation and Multi-PartyTournament. The former sets up a single multilateral negotiation and displays it’s trace, while the later will
run a tournament of multiple negotiations to get a statistically meaningful result.
The next step is to get Genius working in Eclipse so that you can start writing you own agent. Please
note that although Genius will work in most editors, Eclipse is the only editor officially supported for thiscompetition, this means that for other editors, we might not be able to help you if anything does not work.
You should also make sure that the agent you provide in is runnable on our machines, which will run Eclipse
and Java 7 under Windows.
If your followed the step-by-step guide in Chapter 3.1, your Eclipse should be set up correctly. If you want
to set it up manually, make sure that the genius jar is added to the build path and run the program using theNegoGUIApp main method from the root of the project.
Now you can change the agent’s class name from groupn to your group name (for example group3), alsochange the package name to your group name. Lastly you need to open partyrepository.xml in the root
folder and edit the classpath value to your group name.

2.1

Competition

Agents may be disqualified if they violate the spirit of fair play. In particular, the following behaviors arestrictly prohibited: designing an agent in such a way that it benefits some specific other agent, starting newThreads, or hacking the API in any way.

Contact
If you have any questions or problems, feel free to email them to R.Aydogan@tudelft.nl orD.W.J.Festen@student.tudelft.nl3Appendix

3.1

Get Genius up and running in Eclipse

1. If you do not have Eclipse IDE, please download the latest version of eclipse from https://eclipse.org/downloads/.
You need to use "Eclipse IDE for Java Developers", which will contain what we need for Genius development and make use that you have Java 7.
2. After downloading the Genius 5.2.0 skeleton project, import this project as an existing project in Eclipse(See Figure 2 and Figure 3).
3. To run the Genius in Eclipse, you need to choose “Run as Java application” option and specify“NegoGuiApp” for the Java application (See Figure4 and Figure 5).
4. You can work on the template agent class "groupn.java". If you want to change the name of this class,please do not forget to update the partyrepository.xml in the root folder accordingly.
23.2

Create a negotiation domain in Genius

To create a negotiation domain, you can do the followings:
1. Run Genius
2. Right click on the “Scenarios” tab and choose “New domain” (See Figure 6)
3. Name your domain
4. Click “Add issue” button
5. Name the issue and enter the possible values for this issue (See Figure 7)
6. Repeat 4-5 as much as you need.
7. Click “Save changes” button

3.3

Create a negotiation profile in Genius

1. Run Genius
2. Right click on the “Scenarios” tab and choose “New preference profile” (See Figure 9)
3. Choose weights
4. Click “Save changes” button

3

Figure 2: How to run genius - Part 1

4

Figure 3: How to run genius - Part 2

5

Figure 4: How to run genius - Part 3

Figure 5: How to run genius - Part 4

6

Figure 6: How to create a negotiation domain - Part 1

Figure 7: How to create a negotiation domain - Part 2

7

Figure 8: How to create a new preference profile - Part 1

Figure 9: How to create a new preference profile - Part 28Figure 10: How to create a new preference profile - Part 39