Challenge for ANAC 2022

Design a negotiation agent for bilateral negotiation that can learn from every previous encounter while the tournament progresses. The highest scoring agents based on individual utility and social welfare win.

In previous years of ANL, either no learning across negotiation sessions was allowed, or learning options were limited. e.g.Learning over identically repeated negotiation sessions. This year we aim to provide as much flexibility as possible while. At every negotiation, agents obtain a directory path where they can save and load anything they want. This state is stored as a file on disk and the path is passed to the agent every time a negotiation is initiated.

Event

The competition takes place during IJCAI 2022, July 2022, in Vienna, Austria. There will be $600 in prize money for ANL participants. This prize money will be distributed to 1st and 2nd place of each category.

Preliminary

A negotiation setup consists of a set of rules (protocol) to abide by, an opponent to negotiate against, and a problem (scenario) to negotiate over. We describe all three components in this section.

Negotiation Protocol.

The Alternating Offers Protocol(AOP) is used as negotiation rules Here, the starting agent has to make an opening offer after which the agents take turns while performing one of 3 actions:

To prevent agents from negotiating indefinitely, a deadline of 60 seconds is set.

Opponents.

The opponents will be agents that are submitted by other competitors in the ANL.

Scenario.

The scenario consists of a discrete outcome space (or domain) and a preference profile per agent. This preference profile is used as a utility function to map the problem space to a utility value for that agent. Here, 0 and 1 are the worst and best utility, respectively, obtained by the agent. The negotiations are performed under incomplete information, meaning that the utility function of the opponent is unknown.

Platform

Entrants to the competition have to develop and submit an autonomous negotiating agent in Python that runs on GeniusWebPython. GeniusWeb is a negotiation platform in which you can develop general negotiating agents as well as create negotiation domains and preference profiles. The platform allows you to simulate negotiation sessions and run tournaments. A basic example agent that can handle the current challenge can be found on GitHub. We aim to provide a quick-start and FAQ on this GitHub page, which we will improve incrementally based on feedback received via (e.g. Discord).

Evaluation

If the agents reach an agreement, then the utility of that outcome is the score for an agent. This utility is usually different for both agents. A utility of 0 is obtained if no agreement is reached. This can occur for one of three reasons:

Utility

At the end of the tournament, the average utility of every agent is calculated. The agent with the highest average utility wins the utility category.

Social Welfare

The social welfare is the sum of the utilities of the agents that were involved in a negotiation session. Both agents obtain the same score for social welfare. The agent with the highest average social welfare over all negotiation sessions wins the social welfare category. The goal of this measure to emphasis on the cooperative challenge that negotiation agents face.

Rules of encounter

Learning & data storage

You are allowed to store data in a directory that is provided to your agent. You can use this storage for learning purposes. NOTE: Due to parallelisation, your agent will be run against every unique opponent concurrently. Take this into account when saving and loading data.

As already described in the frame above, all agent combinations will negotiate in parallel on a randomly generated negotiation problem. Starting the next round is blocked until all the agents have finished their negotiation session. This allows all agents to have knowledge on all opposing agents at the start of every next session. A total of 50 negotiation sessions are ran.

Example tournament with agents (A={A,B,C,D}). The negotiation problem that the agents are negotiating over are randomly generated and never repeated.

 

Submission

Participants submit their agent source code in Python package format and academic report (optionally) in a zipped folder. Please submit your application through the following link: Submission Form

Academic report

Each participant has the option to prepare a 2-4 page report describing the design of their agent according to academic standards. The best teams that submit a report will be given the opportunity to give a brief presentation describing their agent at IJCAI 2022.

Furthermore, proceedings of the competition are planned to be published in a special issue. The report will be evaluated by the organisers of this league. For eligibility, the design should provide a contribution to the negotiation community. The report should address the following aspects:

 

Fact Sheet

Important dates

Important links

Contact

Advisers (alphabetic)