Competition Settings and Quick Start Guide
Competition Settings
Rules
Challenge: agents can make use of bids in previous negotiation sessions. Therefore, we explicitly permit the use of local file and a popular machine learning library (scikit-learn).
- Platform: Genius Genius 9.1.1
- The number of agents: 2
- Protocol: Alternative Offer Protocol (AOP)
- Negotiation time: 10 sec.
- The number of negotiations on the same configuration: 100
- Taking over information:
We permit agents to use the default functions (storageexample/GroupX.java including Genius) of loading and reserving the previous negotiation sessions as STANDARD mode. We also permit agents to read/write the local file “your_agent_name.txt” in order to take over the information on past negotiation sessions. The utility of bids, bids’ information, time can take over. We won’t permit taking over the preference information at all. The local file will be removed every time when the opponents or the preferences are changed.
- Using Python:
We permit agents to call a Python process.
Parameters of Domains and Profiles
- The number of issues: n=5
- The number of values for each issue: ni=5
- Parameter generation:
- βw∼Dirichlet
- βvj∼Beta
- Reservation value: TBD
- Discounting factor: TBD
Evaluation
The performance of the agents will be determined by the average individual utilities gained by each agent, and the average social welfares (the sum of individual utilities of each agent) gained by each agent, separately. That means, we have two categories for the winners: individual utility winners and social welfare winners. The teams of the top performing agents will be notified, and the final results and awards will be announced at PRIANAC session. It is expected that teams that make it through to the finals will have a representative attending PRIANAC session. We reserve the right to disqualify agents under certain circumstances. Teams in the final will be given the opportunity to give a brief presentation describing their agent at the session.
Environment(TBD)
- OS: CentOS
- RAM: 64GB
- CPU: 3.6GHz
- Platform: Genius 9.1.1
- Java: version 1.8.0
- Python
- Python 3.6.6
- numpy 1.12.1
- scipy 1.15.1
- scikit-learn 0.19.2
- To use other packages, your agent has to include the source code of the packages.
Quick Start Guide for Automated Negotiation
Negotiation Domain
Domains define negotiation spaces which represent valid bids. In multi-issue negotiations adopted in PRIANAC, domains consist of issues and values of each issue. Agents select a value for each issue and propose it. A set of selected value is called bid.
A simple example is lunch-domain. Issues are Food and Drink, and values are Hamburger, Pizza, and so on. A bid is represented as (Hamburger,Cola).
Issue |
Value 1 |
Value 2 |
Food |
Hamburger |
Pizza |
Drink |
Cola |
Beer |
Utility Function
Let n be the number of issues and βwi(∑ni=0βwi=1.0) be the weight of each issue i. Utility function U(ω) of bid ω is
U(ω)=∑i=1nβwiui(ωi)
, where
ωi∈{0,1}ni is a chosen value in issue
i represented as a one-hot vector.
For each issue
i, let
ni be the number of values of the issue and utility function
ui(ωi) be
ui(ωi)=∑j=1niβvjωij
, where βvj is an evaluation value of j and normalized to satisfy max({βvj∣1≤j≤ni,j∈ℕ})=1.0.
Agents have unique βw and βv to represent its preference. These parameters are defined in a profile.
Now, let us consider lunch-domain. We assume βwi and βvj as the following table. Utility function U(ω) of bid ω=(Hamburger,Beer) is
U(ω)=βwFoodβvHamburger+βwDrinkβvBeer=0.91.
Issue |
Value 1 |
Value 2 |
βwFood=0.3 |
βvHamburger=0.7 |
βvPizza=1.0 |
βwDrink=0.7 |
βvCola=0.2 |
βvBeer=1.0 |
We can explain utility function in vector notation. In lunch-domain, let ω=(is_Hamburger,is_Pizza,is_Cola,is_Beer) be a bid and β=(βwFoodβvHamburger,βwFoodβvPizza,βwDrinkβvCola,βwDrinkβvBeer) be weights and evaluation values.
Utility function U(ω) of bid ω is
U(ω)=βTω.
Hamburger |
Pizza |
Cola |
Beer |
is_Hamburger=1 |
is_Pizza=0 |
is_Cola=0 |
is_Beer=1 |
Hamburger |
Pizza |
Cola |
Beer |
βwFoodβvHamburger=0.21 |
βwFoodβvPizza=0.30 |
βwDrinkβvCola=0.14 |
βwDrinkβvBeer=0.70 |
Negotiation Protocol
The negotiation protocol adopted in PRIANAC is Alternating Offers Protocol (AOP). In AOP, agents take one of the following actions alternately.
- Accept: accept opponent’s bid
- Offer: reject opponent’s bid and propose new bid
- EndNegotiation: end the negotiation without an agreement
Negotiations end in the following cases.
- An agent takes Accept.
- An agent takes EndNegotiation.
- The deadline has passed.
Each agent obtains utility U(ω) when Accept for ω is performed. In other cases, each agent obtains a reservation value.
Time Representation
A Negotiation has timeline t, which is normalized to the range [0;1]. t=0 represents the time of starting a negotiation, and t=1 means the deadline.
Discount Factor
Discount factor decreases agent’s utility depending on t. Discounted utility UD(ω,t) is
UD(ω,t)=U(ω)⋅δt
, where δ(0≤δ≤1) is a discount coefficient define in a profile. δ=1.0 means utility is independent of t.
Reservation Value
Reservation value is utility of agents when negotiations failed. Reservation value is defined in profiles. Considering discount factor, utility in failed negotiations is
RVD(t)=RV⋅δt
, where RV(0≤RV≤1) is a reservation value define in a profile.
Useful Links
Following pages would help you when you make an agent.